From ptisnovs at icedtea.classpath.org Fri Jul 1 02:22:12 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 01 Jul 2011 09:22:12 +0000 Subject: /hg/icedtea6: S7029152: Ideal nodes for String intrinsics miss m... Message-ID: changeset 643ec5879fdd in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=643ec5879fdd author: ptisnovs date: Fri Jul 01 11:22:01 2011 +0200 S7029152: Ideal nodes for String intrinsics miss memory edge optimization. diffstat: ChangeLog | 7 + Makefile.am | 3 +- NEWS | 1 + patches/openjdk/7029152-String_intrinsics_miss_optimization.patch | 379 ++++++++++ 4 files changed, 389 insertions(+), 1 deletions(-) diffs (425 lines): diff -r 0bb30eda4814 -r 643ec5879fdd ChangeLog --- a/ChangeLog Wed Jun 29 23:30:27 2011 +0100 +++ b/ChangeLog Fri Jul 01 11:22:01 2011 +0200 @@ -1,3 +1,10 @@ +2011-07-01 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/7029152-String_intrinsics_miss_optimization.patch: + Backport of 7029152 fix. + 2011-06-29 Andrew John Hughes * NEWS: Updated with latest bug fixes. diff -r 0bb30eda4814 -r 643ec5879fdd Makefile.am --- a/Makefile.am Wed Jun 29 23:30:27 2011 +0100 +++ b/Makefile.am Fri Jul 01 11:22:01 2011 +0200 @@ -381,7 +381,8 @@ patches/hotspot/$(HSBUILD)/powerpc-stacksize.patch \ patches/jtreg-remove-test-6987555.patch \ patches/jtreg-remove-test-6991596.patch \ - patches/hotspot/$(HSBUILD)/7036220-shark_llvm_29_headers.patch + patches/hotspot/$(HSBUILD)/7036220-shark_llvm_29_headers.patch \ + patches/openjdk/7029152-String_intrinsics_miss_optimization.patch else ICEDTEA_PATCHES += \ patches/hotspot/$(HSBUILD)/no-precompiled-headers.patch \ diff -r 0bb30eda4814 -r 643ec5879fdd NEWS --- a/NEWS Wed Jun 29 23:30:27 2011 +0100 +++ b/NEWS Fri Jul 01 11:22:01 2011 +0200 @@ -44,6 +44,7 @@ - S7047069: Array can dynamically change size when assigned to an object field - S6796786: invalid FP identity transform - (a - b) -> b - a - S7042070: Typo in Test6796786.java + - S7029152: Ideal nodes for String intrinsics miss memory edge optimization * Bug fixes - PR637: make check should exit with an error code if any regression test failed. - G356743: Support libpng 1.5. diff -r 0bb30eda4814 -r 643ec5879fdd patches/openjdk/7029152-String_intrinsics_miss_optimization.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/7029152-String_intrinsics_miss_optimization.patch Fri Jul 01 11:22:01 2011 +0200 @@ -0,0 +1,383 @@ +# HG changeset patch +# User kvn +# Date 1301512129 25200 +# Node ID f9424955eb1894f874b73cb7596f19ee53a79149 +# Parent 63997f575155c27cbc193a345f814e5b59db5054 +7029152: Ideal nodes for String intrinsics miss memory edge optimization +Summary: In Ideal() method of String intrinsics nodes look for TypeAryPtr::CHARS memory slice if memory is MergeMem. Do not unroll a loop with String intrinsics code. +Reviewed-by: never + +diff -r 63997f575155 -r f9424955eb18 src/share/vm/opto/loopTransform.cpp +--- openjdk.orig/hotspot/src/share/vm/opto/loopTransform.cpp Wed Mar 30 07:47:19 2011 -0700 ++++ openjdk/hotspot/src/share/vm/opto/loopTransform.cpp Wed Mar 30 12:08:49 2011 -0700 +@@ -396,16 +396,16 @@ + // Return exact loop trip count, or 0 if not maximally unrolling + bool IdealLoopTree::policy_maximally_unroll( PhaseIdealLoop *phase ) const { + CountedLoopNode *cl = _head->as_CountedLoop(); +- assert( cl->is_normal_loop(), "" ); ++ assert(cl->is_normal_loop(), ""); + + Node *init_n = cl->init_trip(); + Node *limit_n = cl->limit(); + + // Non-constant bounds +- if( init_n == NULL || !init_n->is_Con() || ++ if (init_n == NULL || !init_n->is_Con() || + limit_n == NULL || !limit_n->is_Con() || + // protect against stride not being a constant +- !cl->stride_is_con() ) { ++ !cl->stride_is_con()) { + return false; + } + int init = init_n->get_int(); +@@ -428,7 +428,25 @@ + uint unroll_limit = (uint)LoopUnrollLimit * 4; + assert( (intx)unroll_limit == LoopUnrollLimit * 4, "LoopUnrollLimit must fit in 32bits"); + cl->set_trip_count(trip_count); +- if( trip_count <= unroll_limit && body_size <= unroll_limit ) { ++ if (trip_count > unroll_limit || body_size > unroll_limit) { ++ return false; ++ } ++ ++ // Do not unroll a loop with String intrinsics code. ++ // String intrinsics are large and have loops. ++ for (uint k = 0; k < _body.size(); k++) { ++ Node* n = _body.at(k); ++ switch (n->Opcode()) { ++ case Op_StrComp: ++ case Op_StrEquals: ++ case Op_StrIndexOf: ++ case Op_AryEq: { ++ return false; ++ } ++ } // switch ++ } ++ ++ if (body_size <= unroll_limit) { + uint new_body_size = body_size * trip_count; + if (new_body_size <= unroll_limit && + body_size == new_body_size / trip_count && +@@ -448,13 +466,13 @@ + bool IdealLoopTree::policy_unroll( PhaseIdealLoop *phase ) const { + + CountedLoopNode *cl = _head->as_CountedLoop(); +- assert( cl->is_normal_loop() || cl->is_main_loop(), "" ); ++ assert(cl->is_normal_loop() || cl->is_main_loop(), ""); + + // protect against stride not being a constant +- if( !cl->stride_is_con() ) return false; ++ if (!cl->stride_is_con()) return false; + + // protect against over-unrolling +- if( cl->trip_count() <= 1 ) return false; ++ if (cl->trip_count() <= 1) return false; + + int future_unroll_ct = cl->unrolled_count() * 2; + +@@ -485,21 +503,21 @@ + // Non-constant bounds. + // Protect against over-unrolling when init or/and limit are not constant + // (so that trip_count's init value is maxint) but iv range is known. +- if( init_n == NULL || !init_n->is_Con() || +- limit_n == NULL || !limit_n->is_Con() ) { ++ if (init_n == NULL || !init_n->is_Con() || ++ limit_n == NULL || !limit_n->is_Con()) { + Node* phi = cl->phi(); +- if( phi != NULL ) { ++ if (phi != NULL) { + assert(phi->is_Phi() && phi->in(0) == _head, "Counted loop should have iv phi."); + const TypeInt* iv_type = phase->_igvn.type(phi)->is_int(); + int next_stride = cl->stride_con() * 2; // stride after this unroll +- if( next_stride > 0 ) { +- if( iv_type->_lo + next_stride <= iv_type->_lo || // overflow +- iv_type->_lo + next_stride > iv_type->_hi ) { ++ if (next_stride > 0) { ++ if (iv_type->_lo + next_stride <= iv_type->_lo || // overflow ++ iv_type->_lo + next_stride > iv_type->_hi) { + return false; // over-unrolling + } +- } else if( next_stride < 0 ) { +- if( iv_type->_hi + next_stride >= iv_type->_hi || // overflow +- iv_type->_hi + next_stride < iv_type->_lo ) { ++ } else if (next_stride < 0) { ++ if (iv_type->_hi + next_stride >= iv_type->_hi || // overflow ++ iv_type->_hi + next_stride < iv_type->_lo) { + return false; // over-unrolling + } + } +@@ -511,24 +529,33 @@ + // Key test to unroll CaffeineMark's Logic test + int xors_in_loop = 0; + // Also count ModL, DivL and MulL which expand mightly +- for( uint k = 0; k < _body.size(); k++ ) { +- switch( _body.at(k)->Opcode() ) { +- case Op_XorI: xors_in_loop++; break; // CaffeineMark's Logic test +- case Op_ModL: body_size += 30; break; +- case Op_DivL: body_size += 30; break; +- case Op_MulL: body_size += 10; break; +- } ++ for (uint k = 0; k < _body.size(); k++) { ++ Node* n = _body.at(k); ++ switch (n->Opcode()) { ++ case Op_XorI: xors_in_loop++; break; // CaffeineMark's Logic test ++ case Op_ModL: body_size += 30; break; ++ case Op_DivL: body_size += 30; break; ++ case Op_MulL: body_size += 10; break; ++ case Op_StrComp: ++ case Op_StrEquals: ++ case Op_StrIndexOf: ++ case Op_AryEq: { ++ // Do not unroll a loop with String intrinsics code. ++ // String intrinsics are large and have loops. ++ return false; ++ } ++ } // switch + } + + // Check for being too big +- if( body_size > (uint)LoopUnrollLimit ) { +- if( xors_in_loop >= 4 && body_size < (uint)LoopUnrollLimit*4) return true; ++ if (body_size > (uint)LoopUnrollLimit) { ++ if (xors_in_loop >= 4 && body_size < (uint)LoopUnrollLimit*4) return true; + // Normal case: loop too big + return false; + } + + // Check for stride being a small enough constant +- if( abs(cl->stride_con()) > (1<<3) ) return false; ++ if (abs(cl->stride_con()) > (1<<3)) return false; + + // Unroll once! (Each trip will soon do double iterations) + return true; +diff -r 63997f575155 -r f9424955eb18 src/share/vm/opto/memnode.cpp +--- openjdk.orig/hotspot/src/share/vm/opto/memnode.cpp Wed Mar 30 07:47:19 2011 -0700 ++++ openjdk/hotspot/src/share/vm/opto/memnode.cpp Wed Mar 30 12:08:49 2011 -0700 +@@ -2617,54 +2617,24 @@ + } + + //============================================================================= +-// Do we match on this edge? No memory edges +-uint StrCompNode::match_edge(uint idx) const { +- return idx == 2 || idx == 3; // StrComp (Binary str1 cnt1) (Binary str2 cnt2) ++// Do not match memory edge. ++uint StrIntrinsicNode::match_edge(uint idx) const { ++ return idx == 2 || idx == 3; + } + + //------------------------------Ideal------------------------------------------ + // Return a node which is more "ideal" than the current node. Strip out + // control copies +-Node *StrCompNode::Ideal(PhaseGVN *phase, bool can_reshape){ +- return remove_dead_region(phase, can_reshape) ? this : NULL; +-} +- +-//============================================================================= +-// Do we match on this edge? No memory edges +-uint StrEqualsNode::match_edge(uint idx) const { +- return idx == 2 || idx == 3; // StrEquals (Binary str1 str2) cnt +-} +- +-//------------------------------Ideal------------------------------------------ +-// Return a node which is more "ideal" than the current node. Strip out +-// control copies +-Node *StrEqualsNode::Ideal(PhaseGVN *phase, bool can_reshape){ +- return remove_dead_region(phase, can_reshape) ? this : NULL; +-} +- +-//============================================================================= +-// Do we match on this edge? No memory edges +-uint StrIndexOfNode::match_edge(uint idx) const { +- return idx == 2 || idx == 3; // StrIndexOf (Binary str1 cnt1) (Binary str2 cnt2) +-} +- +-//------------------------------Ideal------------------------------------------ +-// Return a node which is more "ideal" than the current node. Strip out +-// control copies +-Node *StrIndexOfNode::Ideal(PhaseGVN *phase, bool can_reshape){ +- return remove_dead_region(phase, can_reshape) ? this : NULL; +-} +- +-//============================================================================= +-// Do we match on this edge? No memory edges +-uint AryEqNode::match_edge(uint idx) const { +- return idx == 2 || idx == 3; // StrEquals ary1 ary2 +-} +-//------------------------------Ideal------------------------------------------ +-// Return a node which is more "ideal" than the current node. Strip out +-// control copies +-Node *AryEqNode::Ideal(PhaseGVN *phase, bool can_reshape){ +- return remove_dead_region(phase, can_reshape) ? this : NULL; ++Node *StrIntrinsicNode::Ideal(PhaseGVN *phase, bool can_reshape) { ++ if (remove_dead_region(phase, can_reshape)) return this; ++ ++ Node* mem = phase->transform(in(MemNode::Memory)); ++ // If transformed to a MergeMem, get the desired slice ++ uint alias_idx = phase->C->get_alias_index(adr_type()); ++ mem = mem->is_MergeMem() ? mem->as_MergeMem()->memory_at(alias_idx) : mem; ++ if (mem != in(MemNode::Memory)) ++ set_req(MemNode::Memory, mem); ++ return NULL; + } + + //============================================================================= +diff -r 63997f575155 -r f9424955eb18 src/share/vm/opto/memnode.hpp +--- openjdk.orig/hotspot/src/share/vm/opto/memnode.hpp Wed Mar 30 07:47:19 2011 -0700 ++++ openjdk/hotspot/src/share/vm/opto/memnode.hpp Wed Mar 30 12:08:49 2011 -0700 +@@ -776,67 +776,69 @@ + static bool step_through(Node** np, uint instance_id, PhaseTransform* phase); + }; + +-//------------------------------StrComp------------------------------------- +-class StrCompNode: public Node { ++//------------------------------StrIntrinsic------------------------------- ++// Base class for Ideal nodes used in String instrinsic code. ++class StrIntrinsicNode: public Node { + public: +- StrCompNode(Node* control, Node* char_array_mem, +- Node* s1, Node* c1, +- Node* s2, Node* c2): Node(control, char_array_mem, +- s1, c1, +- s2, c2) {}; +- virtual int Opcode() const; ++ StrIntrinsicNode(Node* control, Node* char_array_mem, ++ Node* s1, Node* c1, Node* s2, Node* c2): ++ Node(control, char_array_mem, s1, c1, s2, c2) { ++ } ++ ++ StrIntrinsicNode(Node* control, Node* char_array_mem, ++ Node* s1, Node* s2, Node* c): ++ Node(control, char_array_mem, s1, s2, c) { ++ } ++ ++ StrIntrinsicNode(Node* control, Node* char_array_mem, ++ Node* s1, Node* s2): ++ Node(control, char_array_mem, s1, s2) { ++ } ++ + virtual bool depends_only_on_test() const { return false; } +- virtual const Type* bottom_type() const { return TypeInt::INT; } + virtual const TypePtr* adr_type() const { return TypeAryPtr::CHARS; } + virtual uint match_edge(uint idx) const; + virtual uint ideal_reg() const { return Op_RegI; } + virtual Node *Ideal(PhaseGVN *phase, bool can_reshape); + }; + ++//------------------------------StrComp------------------------------------- ++class StrCompNode: public StrIntrinsicNode { ++public: ++ StrCompNode(Node* control, Node* char_array_mem, ++ Node* s1, Node* c1, Node* s2, Node* c2): ++ StrIntrinsicNode(control, char_array_mem, s1, c1, s2, c2) {}; ++ virtual int Opcode() const; ++ virtual const Type* bottom_type() const { return TypeInt::INT; } ++}; ++ + //------------------------------StrEquals------------------------------------- +-class StrEqualsNode: public Node { ++class StrEqualsNode: public StrIntrinsicNode { + public: + StrEqualsNode(Node* control, Node* char_array_mem, +- Node* s1, Node* s2, Node* c): Node(control, char_array_mem, +- s1, s2, c) {}; ++ Node* s1, Node* s2, Node* c): ++ StrIntrinsicNode(control, char_array_mem, s1, s2, c) {}; + virtual int Opcode() const; +- virtual bool depends_only_on_test() const { return false; } + virtual const Type* bottom_type() const { return TypeInt::BOOL; } +- virtual const TypePtr* adr_type() const { return TypeAryPtr::CHARS; } +- virtual uint match_edge(uint idx) const; +- virtual uint ideal_reg() const { return Op_RegI; } +- virtual Node *Ideal(PhaseGVN *phase, bool can_reshape); + }; + + //------------------------------StrIndexOf------------------------------------- +-class StrIndexOfNode: public Node { ++class StrIndexOfNode: public StrIntrinsicNode { + public: + StrIndexOfNode(Node* control, Node* char_array_mem, +- Node* s1, Node* c1, +- Node* s2, Node* c2): Node(control, char_array_mem, +- s1, c1, +- s2, c2) {}; ++ Node* s1, Node* c1, Node* s2, Node* c2): ++ StrIntrinsicNode(control, char_array_mem, s1, c1, s2, c2) {}; + virtual int Opcode() const; +- virtual bool depends_only_on_test() const { return false; } + virtual const Type* bottom_type() const { return TypeInt::INT; } +- virtual const TypePtr* adr_type() const { return TypeAryPtr::CHARS; } +- virtual uint match_edge(uint idx) const; +- virtual uint ideal_reg() const { return Op_RegI; } +- virtual Node *Ideal(PhaseGVN *phase, bool can_reshape); + }; + + //------------------------------AryEq--------------------------------------- +-class AryEqNode: public Node { ++class AryEqNode: public StrIntrinsicNode { + public: +- AryEqNode(Node* control, Node* char_array_mem, +- Node* s1, Node* s2): Node(control, char_array_mem, s1, s2) {}; ++ AryEqNode(Node* control, Node* char_array_mem, Node* s1, Node* s2): ++ StrIntrinsicNode(control, char_array_mem, s1, s2) {}; + virtual int Opcode() const; +- virtual bool depends_only_on_test() const { return false; } + virtual const Type* bottom_type() const { return TypeInt::BOOL; } +- virtual const TypePtr* adr_type() const { return TypeAryPtr::CHARS; } +- virtual uint match_edge(uint idx) const; +- virtual uint ideal_reg() const { return Op_RegI; } +- virtual Node *Ideal(PhaseGVN *phase, bool can_reshape); + }; + + //------------------------------MemBar----------------------------------------- +diff -r 63997f575155 -r f9424955eb18 test/compiler/7029152/Test.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/hotspot/test/compiler/7029152/Test.java Wed Mar 30 12:08:49 2011 -0700 +@@ -0,0 +1,49 @@ ++/* ++ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++/** ++ * @test ++ * @bug 7029152 ++ * @summary Ideal nodes for String intrinsics miss memory edge optimization ++ * ++ * @run main/othervm -Xbatch Test ++ */ ++ ++public class Test { ++ ++ static final String str = "11111xx11111xx1x"; ++ static int idx = 0; ++ ++ static int IndexOfTest(String str) { ++ return str.indexOf("11111xx1x"); ++ } ++ ++ public static void main(String args[]) { ++ final int ITERS=2000000; ++ ++ for (int i=0; i References: <4E0C6E2A.7090100@redhat.com> Message-ID: <4E0DA4CA.9040404@redhat.com> On 06/30/2011 02:38 PM, Pavel Tisnovsky wrote: > Hi all, > > I'd like to push backport of "679308: Poor text rendering on translucent > image" fix into IcedTea6 HEAD. This fix and it's regression test were > successfully checked on RHEL 5.6 x86_64. > > > ChangeLog entry: > > 2011-06-30 Pavel Tisnovsky > > * Makefile.am: added new patches > * NEWS: updated with backports > * > patches/openjdk/6679308-Poor_text_rendering_on_translucent_image.patch: > Backport of 6679308. > > > > Can anybody please review this change? > > Thank you in advance, > Pavel > > > PS: I don't plan to send another patch today ;-) Give sense, works fine in f13. reviewed. J. From ptisnovs at icedtea.classpath.org Fri Jul 1 05:41:53 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 01 Jul 2011 12:41:53 +0000 Subject: /hg/icedtea6: S6679308: Poor text rendering on translucent image Message-ID: changeset 73e0d37b9ec3 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=73e0d37b9ec3 author: ptisnovs date: Fri Jul 01 14:41:45 2011 +0200 S6679308: Poor text rendering on translucent image diffstat: ChangeLog | 7 + Makefile.am | 3 +- NEWS | 1 + patches/openjdk/6679308-Poor_text_rendering_on_translucent_image.patch | 511 ++++++++++ 4 files changed, 521 insertions(+), 1 deletions(-) diffs (truncated from 577 to 500 lines): diff -r 643ec5879fdd -r 73e0d37b9ec3 ChangeLog --- a/ChangeLog Fri Jul 01 11:22:01 2011 +0200 +++ b/ChangeLog Fri Jul 01 14:41:45 2011 +0200 @@ -1,3 +1,10 @@ +2011-07-01 Pavel Tisnovsky + + * Makefile.am: added new patches + * NEWS: updated with backports + * patches/openjdk/6679308-Poor_text_rendering_on_translucent_image.patch: + Backport of 6679308. + 2011-07-01 Pavel Tisnovsky * Makefile.am: added new patch diff -r 643ec5879fdd -r 73e0d37b9ec3 Makefile.am --- a/Makefile.am Fri Jul 01 11:22:01 2011 +0200 +++ b/Makefile.am Fri Jul 01 14:41:45 2011 +0200 @@ -373,7 +373,8 @@ patches/openjdk/6785424-SecurityException_locating_physical_fonts.patch \ patches/openjdk/7047069-Array_can_dynamically_change_size.patch \ patches/openjdk/6796786-invalid_FP_identity_transform.patch \ - patches/openjdk/7042070-Typo_in_Test6796786.patch + patches/openjdk/7042070-Typo_in_Test6796786.patch \ + patches/openjdk/6679308-Poor_text_rendering_on_translucent_image.patch if WITH_ALT_HSBUILD ICEDTEA_PATCHES += \ diff -r 643ec5879fdd -r 73e0d37b9ec3 NEWS --- a/NEWS Fri Jul 01 11:22:01 2011 +0200 +++ b/NEWS Fri Jul 01 14:41:45 2011 +0200 @@ -45,6 +45,7 @@ - S6796786: invalid FP identity transform - (a - b) -> b - a - S7042070: Typo in Test6796786.java - S7029152: Ideal nodes for String intrinsics miss memory edge optimization + - S6679308: Poor text rendering on translucent image * Bug fixes - PR637: make check should exit with an error code if any regression test failed. - G356743: Support libpng 1.5. diff -r 643ec5879fdd -r 73e0d37b9ec3 patches/openjdk/6679308-Poor_text_rendering_on_translucent_image.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6679308-Poor_text_rendering_on_translucent_image.patch Fri Jul 01 14:41:45 2011 +0200 @@ -0,0 +1,535 @@ +# HG changeset patch +# User prr +# Date 1209423466 25200 +# Node ID d7accc312aec0905bb1ad1685c8aa8f66cfd84cb +# Parent f50304904b8f181be07595be0e88416186001088 +6679308: Poor text rendering on translucent image. +Reviewed-by: flar, campbell + +diff -r f50304904b8f -r d7accc312aec src/share/native/sun/java2d/loops/AlphaMacros.h +--- openjdk.orig/jdk/src/share/native/sun/java2d/loops/AlphaMacros.h Mon Apr 28 11:06:18 2008 -0700 ++++ openjdk/jdk/src/share/native/sun/java2d/loops/AlphaMacros.h Mon Apr 28 15:57:46 2008 -0700 +@@ -416,7 +416,8 @@ + MultiplyAndStore ## STRATEGY ## Comps(res, \ + srcF, res);\ + } \ +- if (!(DST ## IsPremultiplied) && resA && \ ++ if (!(DST ## IsOpaque) && \ ++ !(DST ## IsPremultiplied) && resA && \ + resA < MaxValFor ## STRATEGY) \ + { \ + DivideAndStore ## STRATEGY ## Comps(res, \ +@@ -475,7 +476,8 @@ + MultiplyAndStore ## STRATEGY ## Comps(res, \ + srcF, res); \ + } \ +- if (!(DST ## IsPremultiplied) && resA && \ ++ if (!(DST ## IsOpaque) && \ ++ !(DST ## IsPremultiplied) && resA && \ + resA < MaxValFor ## STRATEGY) \ + { \ + DivideAndStore ## STRATEGY ## Comps(res, res, resA); \ +@@ -797,7 +799,8 @@ + Store ## STRATEGY ## CompsUsingOp(res, +=, tmp); \ + } \ + } \ +- if (!(TYPE ## IsPremultiplied) && resA && \ ++ if (!(TYPE ## IsOpaque) && \ ++ !(TYPE ## IsPremultiplied) && resA && \ + resA < MaxValFor ## STRATEGY) \ + { \ + DivideAndStore ## STRATEGY ## Comps(res, res, resA); \ +@@ -831,7 +834,8 @@ + Postload ## STRATEGY ## From ## TYPE(pRas, DstPix, res); \ + MultiplyAddAndStore ## STRATEGY ## Comps(res, \ + dstF, res, src); \ +- if (!(TYPE ## IsPremultiplied) && resA && \ ++ if (!(TYPE ## IsOpaque) && \ ++ !(TYPE ## IsPremultiplied) && resA && \ + resA < MaxValFor ## STRATEGY) \ + { \ + DivideAndStore ## STRATEGY ## Comps(res, res, resA); \ +diff -r f50304904b8f -r d7accc312aec src/share/native/sun/java2d/loops/ByteGray.h +--- openjdk.orig/jdk/src/share/native/sun/java2d/loops/ByteGray.h Mon Apr 28 11:06:18 2008 -0700 ++++ openjdk/jdk/src/share/native/sun/java2d/loops/ByteGray.h Mon Apr 28 15:57:46 2008 -0700 +@@ -36,6 +36,8 @@ + typedef jubyte ByteGrayPixelType; + typedef jubyte ByteGrayDataType; + ++#define ByteGrayIsOpaque 1 ++ + #define ByteGrayPixelStride 1 + #define ByteGrayBitsPerPixel 8 + +diff -r f50304904b8f -r d7accc312aec src/share/native/sun/java2d/loops/FourByteAbgr.h +--- openjdk.orig/jdk/src/share/native/sun/java2d/loops/FourByteAbgr.h Mon Apr 28 11:06:18 2008 -0700 ++++ openjdk/jdk/src/share/native/sun/java2d/loops/FourByteAbgr.h Mon Apr 28 15:57:46 2008 -0700 +@@ -34,6 +34,8 @@ + typedef jint FourByteAbgrPixelType; + typedef jubyte FourByteAbgrDataType; + ++#define FourByteAbgrIsOpaque 0 ++ + #define FourByteAbgrPixelStride 4 + + #define DeclareFourByteAbgrLoadVars(PREFIX) +diff -r f50304904b8f -r d7accc312aec src/share/native/sun/java2d/loops/FourByteAbgrPre.h +--- openjdk.orig/jdk/src/share/native/sun/java2d/loops/FourByteAbgrPre.h Mon Apr 28 11:06:18 2008 -0700 ++++ openjdk/jdk/src/share/native/sun/java2d/loops/FourByteAbgrPre.h Mon Apr 28 15:57:46 2008 -0700 +@@ -34,6 +34,8 @@ + typedef jint FourByteAbgrPrePixelType; + typedef jubyte FourByteAbgrPreDataType; + ++#define FourByteAbgrPreIsOpaque 0 ++ + #define FourByteAbgrPrePixelStride 4 + + #define DeclareFourByteAbgrPreLoadVars(PREFIX) +diff -r f50304904b8f -r d7accc312aec src/share/native/sun/java2d/loops/Index12Gray.h +--- openjdk.orig/jdk/src/share/native/sun/java2d/loops/Index12Gray.h Mon Apr 28 11:06:18 2008 -0700 ++++ openjdk/jdk/src/share/native/sun/java2d/loops/Index12Gray.h Mon Apr 28 15:57:46 2008 -0700 +@@ -37,6 +37,8 @@ + typedef jushort Index12GrayPixelType; + typedef jushort Index12GrayDataType; + ++#define Index12GrayIsOpaque 1 ++ + #define Index12GrayPixelStride 2 + #define Index12GrayBitsPerPixel 12 + +diff -r f50304904b8f -r d7accc312aec src/share/native/sun/java2d/loops/Index8Gray.h +--- openjdk.orig/jdk/src/share/native/sun/java2d/loops/Index8Gray.h Mon Apr 28 11:06:18 2008 -0700 ++++ openjdk/jdk/src/share/native/sun/java2d/loops/Index8Gray.h Mon Apr 28 15:57:46 2008 -0700 +@@ -37,6 +37,8 @@ + typedef jubyte Index8GrayPixelType; + typedef jubyte Index8GrayDataType; + ++#define Index8GrayIsOpaque 1 ++ + #define Index8GrayPixelStride 1 + #define Index8GrayBitsPerPixel 8 + +diff -r f50304904b8f -r d7accc312aec src/share/native/sun/java2d/loops/IntArgb.h +--- openjdk.orig/jdk/src/share/native/sun/java2d/loops/IntArgb.h Mon Apr 28 11:06:18 2008 -0700 ++++ openjdk/jdk/src/share/native/sun/java2d/loops/IntArgb.h Mon Apr 28 15:57:46 2008 -0700 +@@ -38,6 +38,8 @@ + typedef jint IntArgbPixelType; + typedef jint IntArgbDataType; + ++#define IntArgbIsOpaque 0 ++ + #define IntArgbPixelStride 4 + + #define DeclareIntArgbLoadVars(PREFIX) +diff -r f50304904b8f -r d7accc312aec src/share/native/sun/java2d/loops/IntArgbBm.h +--- openjdk.orig/jdk/src/share/native/sun/java2d/loops/IntArgbBm.h Mon Apr 28 11:06:18 2008 -0700 ++++ openjdk/jdk/src/share/native/sun/java2d/loops/IntArgbBm.h Mon Apr 28 15:57:46 2008 -0700 +@@ -38,6 +38,8 @@ + typedef jint IntArgbBmPixelType; + typedef jint IntArgbBmDataType; + ++#define IntArgbBmIsOpaque 0 ++ + #define IntArgbBmPixelStride 4 + + #define DeclareIntArgbBmLoadVars(PREFIX) +diff -r f50304904b8f -r d7accc312aec src/share/native/sun/java2d/loops/IntArgbPre.h +--- openjdk.orig/jdk/src/share/native/sun/java2d/loops/IntArgbPre.h Mon Apr 28 11:06:18 2008 -0700 ++++ openjdk/jdk/src/share/native/sun/java2d/loops/IntArgbPre.h Mon Apr 28 15:57:46 2008 -0700 +@@ -36,6 +36,8 @@ + typedef jint IntArgbPrePixelType; + typedef jint IntArgbPreDataType; + ++#define IntArgbPreIsOpaque 0 ++ + #define IntArgbPrePixelStride 4 + + #define DeclareIntArgbPreLoadVars(PREFIX) +diff -r f50304904b8f -r d7accc312aec src/share/native/sun/java2d/loops/IntBgr.h +--- openjdk.orig/jdk/src/share/native/sun/java2d/loops/IntBgr.h Mon Apr 28 11:06:18 2008 -0700 ++++ openjdk/jdk/src/share/native/sun/java2d/loops/IntBgr.h Mon Apr 28 15:57:46 2008 -0700 +@@ -38,6 +38,8 @@ + typedef jint IntBgrPixelType; + typedef jint IntBgrDataType; + ++#define IntBgrIsOpaque 1 ++ + #define IntBgrPixelStride 4 + + #define DeclareIntBgrLoadVars(PREFIX) +diff -r f50304904b8f -r d7accc312aec src/share/native/sun/java2d/loops/IntRgb.h +--- openjdk.orig/jdk/src/share/native/sun/java2d/loops/IntRgb.h Mon Apr 28 11:06:18 2008 -0700 ++++ openjdk/jdk/src/share/native/sun/java2d/loops/IntRgb.h Mon Apr 28 15:57:46 2008 -0700 +@@ -38,6 +38,8 @@ + typedef jint IntRgbPixelType; + typedef jint IntRgbDataType; + ++#define IntRgbIsOpaque 1 ++ + #define IntRgbPixelStride 4 + + #define DeclareIntRgbLoadVars(PREFIX) +diff -r f50304904b8f -r d7accc312aec src/share/native/sun/java2d/loops/IntRgbx.h +--- openjdk.orig/jdk/src/share/native/sun/java2d/loops/IntRgbx.h Mon Apr 28 11:06:18 2008 -0700 ++++ openjdk/jdk/src/share/native/sun/java2d/loops/IntRgbx.h Mon Apr 28 15:57:46 2008 -0700 +@@ -36,6 +36,8 @@ + typedef jint IntRgbxPixelType; + typedef jint IntRgbxDataType; + ++#define IntRgbxIsOpaque 1 ++ + #define IntRgbxPixelStride 4 + + #define DeclareIntRgbxLoadVars(PREFIX) +diff -r f50304904b8f -r d7accc312aec src/share/native/sun/java2d/loops/LoopMacros.h +--- openjdk.orig/jdk/src/share/native/sun/java2d/loops/LoopMacros.h Mon Apr 28 11:06:18 2008 -0700 ++++ openjdk/jdk/src/share/native/sun/java2d/loops/LoopMacros.h Mon Apr 28 15:57:46 2008 -0700 +@@ -1610,8 +1610,12 @@ + MUL8(SRC_PREFIX ## A, mixValSrc); \ + MultMultAddAndStore4ByteArgbComps(dst, mixValDst, dst, \ + mixValSrc, SRC_PREFIX); \ +- Store ## DST ## From4ByteArgb(DST_PTR, pix, PIXEL_INDEX, \ +- dstA, dstR, dstG, dstB); \ ++ if (!(DST ## IsOpaque) && \ ++ !(DST ## IsPremultiplied) && dstA && dstA < 255) { \ ++ DivideAndStore4ByteArgbComps(dst, dst, dstA); \ ++ } \ ++ Store ## DST ## From4ByteArgbComps(DST_PTR, pix, \ ++ PIXEL_INDEX, dst); \ + } else { \ + Store ## DST ## PixelData(DST_PTR, PIXEL_INDEX, \ + FG_PIXEL, PREFIX); \ +@@ -1793,8 +1797,12 @@ + dstR = gammaLut[dstR]; \ + dstG = gammaLut[dstG]; \ + dstB = gammaLut[dstB]; \ +- Store ## DST ## From4ByteArgb(DST_PTR, pix, PIXEL_INDEX, \ +- dstA, dstR, dstG, dstB); \ ++ if (!(DST ## IsOpaque) && \ ++ !(DST ## IsPremultiplied) && dstA && dstA < 255) { \ ++ DivideAndStore4ByteArgbComps(dst, dst, dstA); \ ++ } \ ++ Store ## DST ## From4ByteArgbComps(DST_PTR, pix, \ ++ PIXEL_INDEX, dst); \ + } else { \ + Store ## DST ## PixelData(DST_PTR, PIXEL_INDEX, \ + FG_PIXEL, PREFIX); \ +diff -r f50304904b8f -r d7accc312aec src/share/native/sun/java2d/loops/ThreeByteBgr.h +--- openjdk.orig/jdk/src/share/native/sun/java2d/loops/ThreeByteBgr.h Mon Apr 28 11:06:18 2008 -0700 ++++ openjdk/jdk/src/share/native/sun/java2d/loops/ThreeByteBgr.h Mon Apr 28 15:57:46 2008 -0700 +@@ -34,6 +34,8 @@ + typedef jint ThreeByteBgrPixelType; + typedef jubyte ThreeByteBgrDataType; + ++#define ThreeByteBgrIsOpaque 1 ++ + #define ThreeByteBgrPixelStride 3 + + #define DeclareThreeByteBgrLoadVars(PREFIX) +diff -r f50304904b8f -r d7accc312aec src/share/native/sun/java2d/loops/Ushort4444Argb.h +--- openjdk.orig/jdk/src/share/native/sun/java2d/loops/Ushort4444Argb.h Mon Apr 28 11:06:18 2008 -0700 ++++ openjdk/jdk/src/share/native/sun/java2d/loops/Ushort4444Argb.h Mon Apr 28 15:57:46 2008 -0700 +@@ -34,6 +34,8 @@ + typedef jushort Ushort4444ArgbPixelType; + typedef jushort Ushort4444ArgbDataType; + ++#define Ushort4444ArgbIsOpaque 0 ++ + #define Ushort4444ArgbPixelStride 2 + + #define DeclareUshort4444ArgbLoadVars(PREFIX) +diff -r f50304904b8f -r d7accc312aec src/share/native/sun/java2d/loops/Ushort555Rgb.h +--- openjdk.orig/jdk/src/share/native/sun/java2d/loops/Ushort555Rgb.h Mon Apr 28 11:06:18 2008 -0700 ++++ openjdk/jdk/src/share/native/sun/java2d/loops/Ushort555Rgb.h Mon Apr 28 15:57:46 2008 -0700 +@@ -34,6 +34,8 @@ + typedef jushort Ushort555RgbPixelType; + typedef jushort Ushort555RgbDataType; + ++#define Ushort555RgbIsOpaque 1 ++ + #define Ushort555RgbPixelStride 2 + + #define DeclareUshort555RgbLoadVars(PREFIX) +diff -r f50304904b8f -r d7accc312aec src/share/native/sun/java2d/loops/Ushort555Rgbx.h +--- openjdk.orig/jdk/src/share/native/sun/java2d/loops/Ushort555Rgbx.h Mon Apr 28 11:06:18 2008 -0700 ++++ openjdk/jdk/src/share/native/sun/java2d/loops/Ushort555Rgbx.h Mon Apr 28 15:57:46 2008 -0700 +@@ -34,6 +34,8 @@ + typedef jushort Ushort555RgbxPixelType; + typedef jushort Ushort555RgbxDataType; + ++#define Ushort555RgbxIsOpaque 1 ++ + #define Ushort555RgbxPixelStride 2 + + #define DeclareUshort555RgbxLoadVars(PREFIX) +diff -r f50304904b8f -r d7accc312aec src/share/native/sun/java2d/loops/Ushort565Rgb.h +--- openjdk.orig/jdk/src/share/native/sun/java2d/loops/Ushort565Rgb.h Mon Apr 28 11:06:18 2008 -0700 ++++ openjdk/jdk/src/share/native/sun/java2d/loops/Ushort565Rgb.h Mon Apr 28 15:57:46 2008 -0700 +@@ -34,6 +34,8 @@ + typedef jushort Ushort565RgbPixelType; + typedef jushort Ushort565RgbDataType; + ++#define Ushort565RgbIsOpaque 1 ++ + #define Ushort565RgbPixelStride 2 + + #define DeclareUshort565RgbLoadVars(PREFIX) +diff -r f50304904b8f -r d7accc312aec src/share/native/sun/java2d/loops/UshortGray.h +--- openjdk.orig/jdk/src/share/native/sun/java2d/loops/UshortGray.h Mon Apr 28 11:06:18 2008 -0700 ++++ openjdk/jdk/src/share/native/sun/java2d/loops/UshortGray.h Mon Apr 28 15:57:46 2008 -0700 +@@ -36,6 +36,8 @@ + typedef jushort UshortGrayPixelType; + typedef jushort UshortGrayDataType; + ++#define UshortGrayIsOpaque 1 ++ + #define UshortGrayPixelStride 2 + #define UshortGrayBitsPerPixel 16 + +diff -r f50304904b8f -r d7accc312aec src/solaris/native/sun/java2d/loops/vis_FourByteAbgr.c +--- openjdk.orig/jdk/src/solaris/native/sun/java2d/loops/vis_FourByteAbgr.c Mon Apr 28 11:06:18 2008 -0700 ++++ openjdk/jdk/src/solaris/native/sun/java2d/loops/vis_FourByteAbgr.c Mon Apr 28 15:57:46 2008 -0700 +@@ -1936,6 +1936,7 @@ + for (j = 0; j < height; j++) { + mlib_u8 *src = (void*)pixels; + mlib_s32 *dst, *dst_end; ++ mlib_u8 *dst_start; + + if ((mlib_s32)dstBase & 3) { + COPY_NA(dstBase, pbuff, width*sizeof(mlib_s32)); +@@ -1943,8 +1944,14 @@ + } else { + dst = (void*)dstBase; + } ++ dst_start = (void*)dst; + dst_end = dst + width; + ++ /* Need to reset the GSR from the values set by the ++ * convert call near the end of this loop. ++ */ ++ vis_write_gsr(7 << 0); ++ + if ((mlib_s32)dst & 7) { + pix = *src++; + dd = vis_fpadd16(MUL8_VIS(srcG_f, pix), d_half); +@@ -1984,8 +1991,13 @@ + dst++; + } + ++ ADD_SUFF(IntArgbPreToIntArgbConvert)(dst_start, dst_start, ++ width, 1, ++ pRasInfo, pRasInfo, ++ pPrim, pCompInfo); ++ + if ((mlib_s32)dstBase & 3) { +- COPY_NA(pbuff, dstBase, width*sizeof(mlib_s32)); ++ COPY_NA(dst_start, dstBase, width*sizeof(mlib_s32)); + } + + PTR_ADD(dstBase, scan); +diff -r f50304904b8f -r d7accc312aec src/solaris/native/sun/java2d/loops/vis_FourByteAbgrPre.c +--- openjdk.orig/jdk/src/solaris/native/sun/java2d/loops/vis_FourByteAbgrPre.c Mon Apr 28 11:06:18 2008 -0700 ++++ openjdk/jdk/src/solaris/native/sun/java2d/loops/vis_FourByteAbgrPre.c Mon Apr 28 15:57:46 2008 -0700 +@@ -181,6 +181,7 @@ + d_half = vis_to_double_dup((1 << (16 + 6)) | (1 << 6)); + + srcG_f = vis_to_float(argbcolor); ++ ARGB2ABGR_FL(srcG_f); + + for (glyphCounter = 0; glyphCounter < totalGlyphs; glyphCounter++) { + const jubyte *pixels; +@@ -238,8 +239,33 @@ + mlib_u8 *src = (void*)pixels; + mlib_s32 *dst, *dst_end; + mlib_u8 *dst8; ++ mlib_u8* dst_start = dstBase; + +- ADD_SUFF(FourByteAbgrPreToIntArgbConvert)(dstBase, pbuff, width, 1, ++ /* ++ * Typically the inner loop here works on Argb input data, an ++ * Argb color, and produces ArgbPre output data. To use that ++ * standard approach we would need a FourByteAbgrPre to IntArgb ++ * converter for the front end and an IntArgbPre to FourByteAbgrPre ++ * converter for the back end. The converter exists for the ++ * front end, but it is a workaround implementation that uses a 2 ++ * stage conversion and an intermediate buffer that is allocated ++ * on every call. The converter for the back end doesn't really ++ * exist, but we could reuse the IntArgb to FourByteAbgr converter ++ * to do the same work - at the cost of swapping the components as ++ * we copy the data back. All of this is more work than we really ++ * need so we use an alternate procedure: ++ * - Copy the data into an int-aligned temporary buffer (if needed) ++ * - Convert the data from FourByteAbgrPre to IntAbgr by using the ++ * IntArgbPre to IntArgb converter in the int-aligned buffer. ++ * - Swap the color data to Abgr so that the inner loop goes from ++ * IntAbgr data to IntAbgrPre data ++ * - Simply copy the IntAbgrPre data back into place. ++ */ ++ if (((mlib_s32)dstBase) & 3) { ++ COPY_NA(dstBase, pbuff, width*sizeof(mlib_s32)); ++ dst_start = pbuff; ++ } ++ ADD_SUFF(IntArgbPreToIntArgbConvert)(dst_start, pbuff, width, 1, + pRasInfo, pRasInfo, + pPrim, pCompInfo); + +@@ -283,9 +309,7 @@ + dst++; + } + +- ADD_SUFF(IntArgbToFourByteAbgrPreConvert)(pbuff, dstBase, width, 1, +- pRasInfo, pRasInfo, +- pPrim, pCompInfo); ++ COPY_NA(pbuff, dstBase, width*sizeof(mlib_s32)); + + src = (void*)pixels; + dst8 = (void*)dstBase; +diff -r f50304904b8f -r d7accc312aec src/solaris/native/sun/java2d/loops/vis_IntArgb.c +--- openjdk.orig/jdk/src/solaris/native/sun/java2d/loops/vis_IntArgb.c Mon Apr 28 11:06:18 2008 -0700 ++++ openjdk/jdk/src/solaris/native/sun/java2d/loops/vis_IntArgb.c Mon Apr 28 15:57:46 2008 -0700 +@@ -428,6 +428,11 @@ + dst = (void*)dstBase; + dst_end = dst + width; + ++ /* Clearing the Graphics Status Register is necessary otherwise ++ * left over scale settings affect the pack instructions. ++ */ ++ vis_write_gsr(0 << 3); ++ + if ((mlib_s32)dst & 7) { + pix = *src++; + dd = vis_fpadd16(MUL8_VIS(srcG_f, pix), d_half); +@@ -467,6 +472,9 @@ + dst++; + } + ++ ADD_SUFF(IntArgbPreToIntArgbConvert)(dstBase, dstBase, width, 1, ++ pRasInfo, pRasInfo, ++ pPrim, pCompInfo); + PTR_ADD(dstBase, scan); + pixels += rowBytes; + } +diff -r f50304904b8f -r d7accc312aec src/solaris/native/sun/java2d/loops/vis_IntArgbPre.c +--- openjdk.orig/jdk/src/solaris/native/sun/java2d/loops/vis_IntArgbPre.c Mon Apr 28 11:06:18 2008 -0700 ++++ openjdk/jdk/src/solaris/native/sun/java2d/loops/vis_IntArgbPre.c Mon Apr 28 15:57:46 2008 -0700 +@@ -1193,10 +1193,6 @@ + dst++; + } + +- ADD_SUFF(IntArgbToIntArgbPreConvert)(dstBase, dstBase, width, 1, +- pRasInfo, pRasInfo, +- pPrim, pCompInfo); +- + PTR_ADD(dstBase, scan); + pixels += rowBytes; + } +diff -r f50304904b8f -r d7accc312aec test/java/awt/Graphics2D/DrawString/AlphaSurfaceText.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/test/java/awt/Graphics2D/DrawString/AlphaSurfaceText.java Mon Apr 28 15:57:46 2008 -0700 +@@ -0,0 +1,106 @@ ++/* ++ * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++/** ++ * @test ++ * @bug 6679308 ++ * @summary test drawing to Alpha surfaces ++ */ ++ From ptisnovs at redhat.com Fri Jul 1 07:47:25 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Fri, 01 Jul 2011 16:47:25 +0200 Subject: Reviewer needed: backport of 6842838 and 6882768 fixes into IcedTea6 HEAD Message-ID: <4E0DDDFD.2030909@redhat.com> Hi, I'd like to push backport of two fixes: - S6842838: 64-bit failure in handling invalid manifest in launcher. - S6882768: Test for 6842838 is broken ChangeLog entry: 2011-07-01 Pavel Tisnovsky * Makefile.am: added new patches * NEWS: updated with backports * patches/openjdk/6842838-64-bit_failure_in_handling_invalid_manifest.patch: * patches/openjdk/6882768-test_for_6842838_is_broken.patch: Backport of 6842838 and 6882768. Can anybody please review this change? Thank you in advance, Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 6842838_hg.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110701/5192fa21/6842838_hg.diff From bugzilla-daemon at icedtea.classpath.org Sat Jul 2 00:04:27 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sat, 02 Jul 2011 07:04:27 +0000 Subject: [Bug 749] New: sun.applet.PluginStreamHandler#handleMessage(String) really slow Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=749 Summary: sun.applet.PluginStreamHandler#handleMessage(String) really slow Product: IcedTea-Web Version: unspecified Platform: 64-bit OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: Plugin AssignedTo: dbhole at redhat.com ReportedBy: rickyepoderi at yahoo.es CC: unassigned at icedtea.classpath.org Testing an old portlet I worked with some time ago inside your plugin I've discovered that the communication from the browser to the JVM is extremely slow. I'm using debian packaged version 1.1 (testing). This applet renders scatter plots which can have a lot of data. More or less the applet works well when the number of points is not very big but when the points to draw are many (around ten thousand) it works painfully slow. The data is requested via browser and then received by the applet. Checking with jconsole I saw the time was consumed inside the following method sun.applet.PluginStreamHandler#handleMessage(String) and exactly in this loop: 161 // rest 162 for (int i = nextIndex; i < msgComponents.length; i++) { 163 rest += msgComponents[i]; 164 rest += " "; 165 } The problem here is that msgComponents var has more than 100.000 elements and the concatenating part lasts for more than 5 minutes. I did some changes in your code to try to increase performance. My idea is simple, I don't split the message and just pick up the pairs using indexOf and substring methods, the rest is again computed using substring. I've implemented a new readPair method in order to do that. Now icedtea plugin renders the plot more or less in the same time that the non-free plugin. I'm going to attach the patch right now. It's only an idea but please change the way you deal with the message in this method, it's really slow when it's very long (in my case more than 100.000 words). You can check the applet here: http://www.puertos.es/en/oceanografia_y_meteorologia/redes_de_medida/index.html Select Sea Level (this magnitude is the one with a lot of samples), select any gauge in the map and then mark Plot. The plot opens in a new div below. I'm not a current developer of the applet so please consider I have no access to the code. Thank you very much! -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Sat Jul 2 00:07:05 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sat, 02 Jul 2011 07:07:05 +0000 Subject: [Bug 749] sun.applet.PluginStreamHandler#handleMessage(String) really slow In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=749 --- Comment #1 from ricky 2011-07-02 07:07:05 --- Created an attachment (id=549) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=549) commented patch -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From tisnik at centrum.cz Mon Jul 4 05:24:03 2011 From: tisnik at centrum.cz (Pavel Tisnovsky) Date: Mon, 04 Jul 2011 14:24:03 +0200 Subject: RFC: Separation of JTreg tool into independent project Message-ID: <4E11B0E3.7040605@centrum.cz> Hi all, some time ago I discussed with Andrew John Hughes about the separation of JTreg tool from the IcedTea6 and IcedTea7 projects. In summary (ie how I understand this task): JTreg should be developed as independent project and in the future they should be synchronized with recent JTreg version (used by Oracle guys AFAIK). In the attachment there's very first version of patched Makefile.am from IcedTea6 HEAD. When user call command 'make jtreg' from command line, archive containing stable version of JTreg tool sources is downloaded into 'drops/' subdirectory, then this archive is unzipped into 'test/' subdirectory and then JTreg is compiled & run as usual. This functionality is similar as in the case of JAXP and JAXWS - these two parts of JDK are also separated from JDK sources. What do you think about this solution (which could be the same for IcedTea6 and IcedTea7, also *probably* for IcedTea-web)? Cheers, Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: Makefile.am.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110704/5d930891/Makefile.am.diff From bugzilla-daemon at icedtea.classpath.org Mon Jul 4 05:33:35 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 04 Jul 2011 12:33:35 +0000 Subject: [Bug 750] New: Crash of JVM when started BOS Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=750 Summary: Crash of JVM when started BOS Product: VisualVM Harness Version: 1.1 Platform: all OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: VisualVM AssignedTo: unassigned at icedtea.classpath.org ReportedBy: dmatijacic at gmail.com [root at mdrazen BOS-5.5.1]# ./BonitaStudio.sh >FULL BUILD STATS for: local_default_My Extensions > compiled 196 lines in 1217ms:161.0lines/s > parse: 246 ms (20.2%), resolve: 704 ms (57.8%), analyze: 0 ms (0.0%), generate: 111 ms (9.1%) # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x0019aadc, pid=4916, tid=3079370432 # # JRE version: 6.0_22-b22 # Java VM: OpenJDK Client VM (20.0-b11 mixed mode linux-x86 ) # Derivative: IcedTea6 1.10.2 # Distribution: Fedora release 15 (Lovelock), package fedora-58.1.10.2.fc15-i386 # Problematic frame: # C [UTF-16.so+0xadc] gconv+0x3cc # # An error report file with more information is saved as: # /opt/BOS-5.5.1/studio/hs_err_pid4916.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. # ./BonitaStudio.sh: line 9: 4916 Aborted (core dumped) ./BonitaStudio-linux -data ./workspace -vmargs -Dbonita_client_home="$source_path" $vmArgs -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From doko at ubuntu.com Mon Jul 4 05:50:27 2011 From: doko at ubuntu.com (Matthias Klose) Date: Mon, 04 Jul 2011 14:50:27 +0200 Subject: RFC: Separation of JTreg tool into independent project In-Reply-To: <4E11B0E3.7040605@centrum.cz> References: <4E11B0E3.7040605@centrum.cz> Message-ID: <4E11B713.4050705@ubuntu.com> On 07/04/2011 02:24 PM, Pavel Tisnovsky wrote: > Hi all, > > some time ago I discussed with Andrew John Hughes about the separation > of JTreg tool from the IcedTea6 and IcedTea7 projects. In summary (ie > how I understand this task): JTreg should be developed as independent > project and in the future they should be synchronized with recent JTreg > version (used by Oracle guys AFAIK). > > In the attachment there's very first version of patched Makefile.am from > IcedTea6 HEAD. When user call command 'make jtreg' from command line, > archive containing stable version of JTreg tool sources is downloaded > into 'drops/' subdirectory, then this archive is unzipped into 'test/' > subdirectory and then JTreg is compiled & run as usual. > > This functionality is similar as in the case of JAXP and JAXWS - these > two parts of JDK are also separated from JDK sources. > > What do you think about this solution (which could be the same for > IcedTea6 and IcedTea7, also *probably* for IcedTea-web)? you may want to contact Guillaume Mazoyer , who prepared a package for Debian, and see what could be shared/extracted into an IcedTea jtreg. Matthias From dbhole at redhat.com Mon Jul 4 15:35:14 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 4 Jul 2011 18:35:14 -0400 Subject: RFC: Patch for Bug#749 (sun.applet.PluginStreamHandler#handleMessage(String) really slow) Message-ID: <20110704223514.GB10339@redhat.com> Hi, This is a cleaned up version of the patch posted for Bug# 749: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=749 I have reviewed the patch myself and found no issues. The patch is fairly straightforward and if there are no emails by tomorrow, I will go ahead and commit to 1.0, 1.1 and HEAD. Cheers, Deepak -------------- next part -------------- diff -r 86abbf8be0b1 AUTHORS --- a/AUTHORS Thu Jun 23 15:29:45 2011 +0200 +++ b/AUTHORS Mon Jul 04 18:29:15 2011 -0400 @@ -3,6 +3,7 @@ Lillian Angel Deepak Bhole +Ricardo Mart?n Camarero Thomas Fitzsimmons Mark Greenwood Andrew John Hughes diff -r 86abbf8be0b1 ChangeLog --- a/ChangeLog Thu Jun 23 15:29:45 2011 +0200 +++ b/ChangeLog Mon Jul 04 18:29:15 2011 -0400 @@ -1,3 +1,12 @@ +2011-07-04 Deepak Bhole + + PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow + Patch from: Ricardo Mart?n Camarero (Ricky) + * plugin/icedteanp/java/sun/applet/PluginStreamHandler.java + (readPair): New function. + (handleMessage): Use readPair to incrementally tokenize message, rather + than using String.split(). + 2011-06-22 Jiri Vanek * tests/report-styles/jreport.xsl: part with classes statistics is now collapsable diff -r 86abbf8be0b1 NEWS --- a/NEWS Thu Jun 23 15:29:45 2011 +0200 +++ b/NEWS Mon Jul 04 18:29:15 2011 -0400 @@ -8,6 +8,10 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY +New in release 1.2 (2011-XX-XX): +* Plugin + - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow + New in release 1.1 (2011-XX-XX): * Security updates - S6983554, CVE-2010-4450: Launcher incorrect processing of empty library path entries diff -r 86abbf8be0b1 plugin/icedteanp/java/sun/applet/PluginStreamHandler.java --- a/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Thu Jun 23 15:29:45 2011 +0200 +++ b/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Mon Jul 04 18:29:15 2011 -0400 @@ -113,18 +113,60 @@ listenerThread.start(); } + /** + * Given a string, separates the first (space separated) token and puts the + * rest into another string. + * + * @param message The string to read + * @param start The position to start reading at + * @param array The array into which the first token and rest are to be placed + * @return Position where the next token starts + */ + + private int readPair(String message, int start, String[] array) { + + int end = start; + array[0] = null; + array[1] = null; + + if (message.length() > start) { + int firstSpace = message.indexOf(' ', start); + if (firstSpace == -1) { + array[0] = message.substring(start); + end = message.length(); + } else { + array[0] = message.substring(start, firstSpace); + if (message.length() > firstSpace + 1) { + int secondSpace = message.indexOf(' ', firstSpace + 1); + if (secondSpace == -1) { + array[1] = message.substring(firstSpace + 1); + end = message.length(); + } else { + array[1] = message.substring(firstSpace + 1, secondSpace); + end = secondSpace + 1; + } + } + } + } + + PluginDebug.debug("readPair: '", array[0], "' - '", array[1], "' ", end); + return end; + } + public void handleMessage(String message) throws PluginException { - int nextIndex = 0; int reference = -1; String src = null; String[] privileges = null; String rest = ""; + String[] msgComponents = new String[2]; + int pos = 0; + int oldPos = 0; - String[] msgComponents = message.split(" "); - - if (msgComponents.length < 2) + pos = readPair(message, oldPos, msgComponents); + if (msgComponents[0] == null || msgComponents[1] == null) { return; + } if (msgComponents[0].startsWith("plugin")) { handlePluginMessage(message); @@ -134,38 +176,38 @@ // type and identifier are guaranteed to be there String type = msgComponents[0]; final int identifier = Integer.parseInt(msgComponents[1]); - nextIndex = 2; // reference, src and privileges are optional components, // and are guaranteed to be in that order, if they occur + oldPos = pos; + pos = readPair(message, oldPos, msgComponents); // is there a reference ? - if (msgComponents[nextIndex].equals("reference")) { - reference = Integer.parseInt(msgComponents[nextIndex + 1]); - nextIndex += 2; + if ("reference".equals(msgComponents[0])) { + reference = Integer.parseInt(msgComponents[1]); + oldPos = pos; + pos = readPair(message, oldPos, msgComponents); } // is there a src? - if (msgComponents[nextIndex].equals("src")) { - src = msgComponents[nextIndex + 1]; - nextIndex += 2; + if ("src".equals(msgComponents[0])) { + src = msgComponents[1]; + oldPos = pos; + pos = readPair(message, oldPos, msgComponents); } // is there a privileges? - if (msgComponents[nextIndex].equals("privileges")) { - String privs = msgComponents[nextIndex + 1]; + if ("privileges".equals(msgComponents[0])) { + String privs = msgComponents[1]; privileges = privs.split(","); - nextIndex += 2; + oldPos = pos; } // rest - for (int i = nextIndex; i < msgComponents.length; i++) { - rest += msgComponents[i]; - rest += " "; + if (message.length() > oldPos) { + rest = message.substring(oldPos); } - rest = rest.trim(); - try { PluginDebug.debug("Breakdown -- type: ", type, " identifier: ", identifier, " reference: ", reference, " src: ", src, " privileges: ", privileges, " rest: \"", rest, "\""); From ahughes at redhat.com Mon Jul 4 18:07:06 2011 From: ahughes at redhat.com (Andrew John Hughes) Date: Tue, 5 Jul 2011 02:07:06 +0100 Subject: RFC: IcedTea7 JamVM selfhost patch - remove-sun.misc.Perf-debug-code In-Reply-To: <1309444645.10301.16.camel@xranby-ESPRIMO-P7935> References: <1309444645.10301.16.camel@xranby-ESPRIMO-P7935> Message-ID: <20110705010706.GA17947@shelob.middle-earth.co.uk> On Thu, Jun 30, 2011 at 04:37:25PM +0200, Xerxes R?nby wrote: > Hi team, > > The attached patch makes it possible for IcedTea 7 JamVM builds to be > selfhosting. > > Some OpenJDK 7 classes makes internal use of the unofficial > sun.misc.Perf API to keep track of startup time. sun.misc.Perf itself > implements its functionality by using some special jni calls inside of > Hotspot. > > By reducing the internal use of sun.misc.Perf in the OpenJDK 7 classes > makes it possible to use the OpenJDK 7 classes with non-Hotspot JVMs. > > > Ok to push? > > The alternative are to implement this unofficial sun.misc.Perf JNI API > in JamVM and in every other JVM that wants to use the OpenJDK classes. > > Cheers > Xerxes No. If this is needed for JamVM, it should be a JamVM-specific patch, not applied generally. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Mon Jul 4 18:19:48 2011 From: ahughes at redhat.com (Andrew John Hughes) Date: Tue, 5 Jul 2011 02:19:48 +0100 Subject: RFC: Separation of JTreg tool into independent project In-Reply-To: <4E11B0E3.7040605@centrum.cz> References: <4E11B0E3.7040605@centrum.cz> Message-ID: <20110705011948.GC17947@shelob.middle-earth.co.uk> On Mon, Jul 04, 2011 at 02:24:03PM +0200, Pavel Tisnovsky wrote: > Hi all, > > some time ago I discussed with Andrew John Hughes about the separation > of JTreg tool from the IcedTea6 and IcedTea7 projects. In summary (ie > how I understand this task): JTreg should be developed as independent > project and in the future they should be synchronized with recent JTreg > version (used by Oracle guys AFAIK). > Yes, but that's not what this patch seems to do. It just moves the source code out of the tree into a zip somewhere. I was envisaging jtreg being a separate project like the visualvm one with its own build infrastructure. You'd then point configure at an installed jtreg.jar. That could be built from the IcedTea jtreg project or alternatively, you could use the one Oracle provide if you were willing to accept the proprietary licensing this entails. > In the attachment there's very first version of patched Makefile.am from > IcedTea6 HEAD. When user call command 'make jtreg' from command line, > archive containing stable version of JTreg tool sources is downloaded > into 'drops/' subdirectory, then this archive is unzipped into 'test/' > subdirectory and then JTreg is compiled & run as usual. > > This functionality is similar as in the case of JAXP and JAXWS - these > two parts of JDK are also separated from JDK sources. > Yes, and it's one of the most annoying things Oracle have ever done, as there's no change visibility. I've been thinking about reverting it in the IcedTea tree so at least we can see the changes between zips if not at the changeset level. > What do you think about this solution (which could be the same for > IcedTea6 and IcedTea7, also *probably* for IcedTea-web)? > Why would IcedTea-Web need jtreg? > Cheers, > Pavel -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From bugzilla-daemon at icedtea.classpath.org Mon Jul 4 18:24:34 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Jul 2011 01:24:34 +0000 Subject: [Bug 745] Error Google App Engine Plugins In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=745 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #545|text/x-log |text/plain mime type| | -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Mon Jul 4 18:25:00 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Jul 2011 01:25:00 +0000 Subject: [Bug 745] Error Google App Engine Plugins In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=745 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #546|text/x-log |text/plain mime type| | -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Mon Jul 4 18:25:31 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Jul 2011 01:25:31 +0000 Subject: [Bug 745] Error Google App Engine Plugins In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=745 --- Comment #5 from Andrew John Hughes 2011-07-05 01:25:31 --- /opt/eclipse-javaee/configuration/org.eclipse.osgi/bundles/61/1/.cp/os/linux/x86/libunixfile_1_0_0.so suggests so and a personal install too by the looks of it. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From ahughes at redhat.com Mon Jul 4 18:28:18 2011 From: ahughes at redhat.com (Andrew John Hughes) Date: Tue, 5 Jul 2011 02:28:18 +0100 Subject: Reviewer needed: backport of 6842838 and 6882768 fixes into IcedTea6 HEAD In-Reply-To: <4E0DDDFD.2030909@redhat.com> References: <4E0DDDFD.2030909@redhat.com> Message-ID: <20110705012818.GF17947@shelob.middle-earth.co.uk> On Fri, Jul 01, 2011 at 04:47:25PM +0200, Pavel Tisnovsky wrote: > Hi, > > I'd like to push backport of two fixes: > > - S6842838: 64-bit failure in handling invalid manifest in launcher. > - S6882768: Test for 6842838 is broken > > > ChangeLog entry: > > 2011-07-01 Pavel Tisnovsky > > * Makefile.am: added new patches > * NEWS: updated with backports > * > patches/openjdk/6842838-64-bit_failure_in_handling_invalid_manifest.patch: > * patches/openjdk/6882768-test_for_6842838_is_broken.patch: > Backport of 6842838 and 6882768. > > > > Can anybody please review this change? > > Thank you in advance, > Pavel > > > Looks ok, assuming it builds. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Mon Jul 4 18:48:10 2011 From: ahughes at redhat.com (Andrew John Hughes) Date: Tue, 5 Jul 2011 02:48:10 +0100 Subject: RFC: Patch for Bug#749 (sun.applet.PluginStreamHandler#handleMessage(String) really slow) In-Reply-To: <20110704223514.GB10339@redhat.com> References: <20110704223514.GB10339@redhat.com> Message-ID: <20110705014810.GG17947@shelob.middle-earth.co.uk> On Mon, Jul 04, 2011 at 06:35:14PM -0400, Deepak Bhole wrote: > Hi, > > This is a cleaned up version of the patch posted for Bug# 749: > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=749 > > I have reviewed the patch myself and found no issues. The patch is > fairly straightforward and if there are no emails by tomorrow, > I will go ahead and commit to 1.0, 1.1 and HEAD. > > Cheers, > Deepak I've commented inline. The code itself looks ok, but it needs to be better documented. However, your comment about applying this patch, given no response disturbs me. We don't have a policy of doing this and I strongly think we should not do so. Please wait for a review, especially for release branch patches. You can't take no response after some short period (and 'tomorrow' is quite vague) as implicit approval of your patch. People do have other stuff to work on. > diff -r 86abbf8be0b1 AUTHORS > --- a/AUTHORS Thu Jun 23 15:29:45 2011 +0200 > +++ b/AUTHORS Mon Jul 04 18:29:15 2011 -0400 > @@ -3,6 +3,7 @@ > > Lillian Angel > Deepak Bhole > +Ricardo Mart?n Camarero > Thomas Fitzsimmons > Mark Greenwood > Andrew John Hughes > diff -r 86abbf8be0b1 ChangeLog > --- a/ChangeLog Thu Jun 23 15:29:45 2011 +0200 > +++ b/ChangeLog Mon Jul 04 18:29:15 2011 -0400 > @@ -1,3 +1,12 @@ > +2011-07-04 Deepak Bhole > + > + PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow > + Patch from: Ricardo Mart?n Camarero (Ricky) > + * plugin/icedteanp/java/sun/applet/PluginStreamHandler.java > + (readPair): New function. > + (handleMessage): Use readPair to incrementally tokenize message, rather > + than using String.split(). > + > 2011-06-22 Jiri Vanek > > * tests/report-styles/jreport.xsl: part with classes statistics is now collapsable > diff -r 86abbf8be0b1 NEWS > --- a/NEWS Thu Jun 23 15:29:45 2011 +0200 > +++ b/NEWS Mon Jul 04 18:29:15 2011 -0400 > @@ -8,6 +8,10 @@ > > CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY > > +New in release 1.2 (2011-XX-XX): > +* Plugin > + - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow > + > New in release 1.1 (2011-XX-XX): > * Security updates > - S6983554, CVE-2010-4450: Launcher incorrect processing of empty library path entries > diff -r 86abbf8be0b1 plugin/icedteanp/java/sun/applet/PluginStreamHandler.java > --- a/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Thu Jun 23 15:29:45 2011 +0200 > +++ b/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Mon Jul 04 18:29:15 2011 -0400 > @@ -113,18 +113,60 @@ > listenerThread.start(); > } > > + /** > + * Given a string, separates the first (space separated) token and puts the > + * rest into another string. > + * > + * @param message The string to read > + * @param start The position to start reading at > + * @param array The array into which the first token and rest are to be placed > + * @return Position where the next token starts > + */ This documentation is inaccurate. It puts a string up to the first space into the first element of the array, and then a string up to the second space into the second element of the array. So in the following cases: "foo" -> array[0] = "foo", array[1] = null "foo bar" -> array[0] = "foo", array[1] = "bar" "foo bar baz" -> array[0] = "foo", array[1] = "bar" Note that the second and third examples have identical output and anything after the second space is discarded. It wasn't immediately clear why this is so different to what split was doing. Reading the bug it seems this is done for performance reasons (so a regexp is not matched against a long string, creating a huge array). This should be documented in the Javadoc and probably in the Changelog too. > + > + private int readPair(String message, int start, String[] array) { > + > + int end = start; > + array[0] = null; > + array[1] = null; > + > + if (message.length() > start) { > + int firstSpace = message.indexOf(' ', start); > + if (firstSpace == -1) { > + array[0] = message.substring(start); > + end = message.length(); > + } else { > + array[0] = message.substring(start, firstSpace); > + if (message.length() > firstSpace + 1) { > + int secondSpace = message.indexOf(' ', firstSpace + 1); > + if (secondSpace == -1) { > + array[1] = message.substring(firstSpace + 1); > + end = message.length(); > + } else { > + array[1] = message.substring(firstSpace + 1, secondSpace); > + end = secondSpace + 1; > + } > + } > + } > + } > + > + PluginDebug.debug("readPair: '", array[0], "' - '", array[1], "' ", end); > + return end; > + } > + > public void handleMessage(String message) throws PluginException { > > - int nextIndex = 0; > int reference = -1; > String src = null; > String[] privileges = null; > String rest = ""; > + String[] msgComponents = new String[2]; > + int pos = 0; > + int oldPos = 0; > > - String[] msgComponents = message.split(" "); > - > - if (msgComponents.length < 2) > + pos = readPair(message, oldPos, msgComponents); > + if (msgComponents[0] == null || msgComponents[1] == null) { > return; > + } > > if (msgComponents[0].startsWith("plugin")) { > handlePluginMessage(message); > @@ -134,38 +176,38 @@ > // type and identifier are guaranteed to be there > String type = msgComponents[0]; > final int identifier = Integer.parseInt(msgComponents[1]); > - nextIndex = 2; > > // reference, src and privileges are optional components, > // and are guaranteed to be in that order, if they occur > + oldPos = pos; > + pos = readPair(message, oldPos, msgComponents); > > // is there a reference ? > - if (msgComponents[nextIndex].equals("reference")) { > - reference = Integer.parseInt(msgComponents[nextIndex + 1]); > - nextIndex += 2; > + if ("reference".equals(msgComponents[0])) { > + reference = Integer.parseInt(msgComponents[1]); > + oldPos = pos; > + pos = readPair(message, oldPos, msgComponents); > } > > // is there a src? > - if (msgComponents[nextIndex].equals("src")) { > - src = msgComponents[nextIndex + 1]; > - nextIndex += 2; > + if ("src".equals(msgComponents[0])) { > + src = msgComponents[1]; > + oldPos = pos; > + pos = readPair(message, oldPos, msgComponents); > } > > // is there a privileges? > - if (msgComponents[nextIndex].equals("privileges")) { > - String privs = msgComponents[nextIndex + 1]; > + if ("privileges".equals(msgComponents[0])) { > + String privs = msgComponents[1]; > privileges = privs.split(","); > - nextIndex += 2; > + oldPos = pos; > } > > // rest > - for (int i = nextIndex; i < msgComponents.length; i++) { > - rest += msgComponents[i]; > - rest += " "; > + if (message.length() > oldPos) { > + rest = message.substring(oldPos); > } > > - rest = rest.trim(); > - > try { > > PluginDebug.debug("Breakdown -- type: ", type, " identifier: ", identifier, " reference: ", reference, " src: ", src, " privileges: ", privileges, " rest: \"", rest, "\""); -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From bugzilla-daemon at icedtea.classpath.org Tue Jul 5 00:28:30 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Jul 2011 07:28:30 +0000 Subject: [Bug 712] [TRACKER] IcedTea7 2.0 release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=712 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |751 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Tue Jul 5 00:28:30 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Jul 2011 07:28:30 +0000 Subject: [Bug 716] IcedTea7 should bootstrap with IcedTea6 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=716 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |751 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Tue Jul 5 00:28:30 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Jul 2011 07:28:30 +0000 Subject: [Bug 751] New: IcedTea7 should bootstrap with IcedTea7 Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=751 Summary: IcedTea7 should bootstrap with IcedTea7 Product: IcedTea Version: 7-hg Platform: all OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: IcedTea7 AssignedTo: ahughes at redhat.com ReportedBy: ahughes at redhat.com CC: unassigned at icedtea.classpath.org Blocks: 712,716 IcedTea7 should be able to build with IcedTea7 in bootstrap mode. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Tue Jul 5 03:37:45 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Jul 2011 10:37:45 +0000 Subject: [Bug 751] IcedTea7 should bootstrap with IcedTea7 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=751 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED --- Comment #1 from Andrew John Hughes 2011-07-05 10:37:45 --- First failure; HotSpot compiles the serviceability agent with 1.6 options but our bootstrap patches bring in 1.7 JDK code: /mnt/builder/icedtea7/openjdk-boot/jdk/src/share/classes/java/lang/String.java:2333: error: diamond operator is not supported in -source 1.6 ArrayList list = new ArrayList<>(); Should be an easy fix to make it use 1.7 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Tue Jul 5 05:43:56 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Jul 2011 12:43:56 +0000 Subject: [Bug 751] IcedTea7 should bootstrap with IcedTea7 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=751 --- Comment #2 from Andrew John Hughes 2011-07-05 12:43:56 --- Fixed that, now the gjavah patch is causing trouble: ../../../src/share/native/sun/java2d/opengl/OGLContext.c: In function 'OGLContext_GetExtensionInfo': ../../../src/share/native/sun/java2d/opengl/OGLContext.c:872:18: error: 'sun_java2d_opengl_OGLContext_00024OGLContextCaps_CAPS_EXT_TEXRECT' undeclared (first use in this function) ../../../src/share/native/sun/java2d/opengl/OGLContext.c:872:18: note: each undeclared identifier is reported only once for each function it appears in ../../../src/share/native/sun/java2d/opengl/OGLContext.c:875:18: error: 'sun_java2d_opengl_OGLContext_00024OGLContextCaps_CAPS_EXT_FBOBJECT' undeclared (first use in this function) ../../../src/share/native/sun/java2d/opengl/OGLContext.c:878:18: error: 'sun_java2d_opengl_OGLContext_00024OGLContextCaps_CAPS_EXT_LCD_SHADER' undeclared (first use in this function) ../../../src/share/native/sun/java2d/opengl/OGLContext.c:881:18: error: 'sun_java2d_opengl_OGLContext_00024OGLContextCaps_CAPS_EXT_BIOP_SHADER' undeclared (first use in this function) ../../../src/share/native/sun/java2d/opengl/OGLContext.c:884:18: error: 'sun_java2d_opengl_OGLContext_00024OGLContextCaps_CAPS_EXT_GRAD_SHADER' undeclared (first use in this function) -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From andrew at icedtea.classpath.org Tue Jul 5 05:49:13 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 05 Jul 2011 12:49:13 +0000 Subject: /hg/icedtea: PR icedtea/751: Make IcedTea7 bootstrap IcedTea7 Message-ID: changeset 91be8105cfa7 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=91be8105cfa7 author: Andrew John Hughes date: Tue Jul 05 13:48:51 2011 +0100 PR icedtea/751: Make IcedTea7 bootstrap IcedTea7 2011-07-05 Andrew John Hughes PR icedtea/751 * Makefile.am: (ICEDTEA_BOOT_PATCHES): Include compile-for-7 patch if javac supports diamond. This makes the HotSpot build use source/target 7, allowing it to compile the JDK code it depends on. * javac.in: Add -XDignore.symbol.file=true when using javac to avoid numerous proprietary warnings. * patches/boot/compile-for-7.patch: Set SOURCE_LANGUAGE_VERSION/TARGET_CLASS_VERSION use 7 in HotSpot instead of 6. * patches/boot/hotspot-jdk-dependency.patch: Include the *nix- specific code in solaris/classes. diffstat: ChangeLog | 17 +++++++++++++ Makefile.am | 2 + javac.in | 3 +- patches/boot/compile-for-7.patch | 39 +++++++++++++++++++++++++++++++ patches/boot/hotspot-jdk-dependency.patch | 4 +- 5 files changed, 62 insertions(+), 3 deletions(-) diffs (109 lines): diff -r 9ec64ff41e91 -r 91be8105cfa7 ChangeLog --- a/ChangeLog Wed Jun 29 18:16:57 2011 +0100 +++ b/ChangeLog Tue Jul 05 13:48:51 2011 +0100 @@ -1,3 +1,20 @@ +2011-07-05 Andrew John Hughes + + PR icedtea/751 + * Makefile.am: + (ICEDTEA_BOOT_PATCHES): Include compile-for-7 + patch if javac supports diamond. This makes + the HotSpot build use source/target 7, allowing + it to compile the JDK code it depends on. + * javac.in: Add -XDignore.symbol.file=true + when using javac to avoid numerous proprietary + warnings. + * patches/boot/compile-for-7.patch: + Set SOURCE_LANGUAGE_VERSION/TARGET_CLASS_VERSION + use 7 in HotSpot instead of 6. + * patches/boot/hotspot-jdk-dependency.patch: + Include the *nix-specific code in solaris/classes. + 2011-06-29 Andrew John Hughes * acinclude.m4: diff -r 9ec64ff41e91 -r 91be8105cfa7 Makefile.am --- a/Makefile.am Wed Jun 29 18:16:57 2011 +0100 +++ b/Makefile.am Tue Jul 05 13:48:51 2011 +0100 @@ -398,6 +398,8 @@ if JAVAC_LACKS_DIAMOND ICEDTEA_BOOT_PATCHES += patches/boot/ecj-diamond.patch +else +ICEDTEA_BOOT_PATCHES += patches/boot/compile-for-7.patch endif ICEDTEA_BOOT_PATCHES += $(DISTRIBUTION_BOOT_PATCHES) diff -r 9ec64ff41e91 -r 91be8105cfa7 javac.in --- a/javac.in Wed Jun 29 18:16:57 2011 +0100 +++ b/javac.in Tue Jul 05 13:48:51 2011 +0100 @@ -20,7 +20,8 @@ push @bcoption, '-bootclasspath', glob '@abs_top_builddir@/bootstrap/jdk1.6.0/jre/lib/rt.jar' unless grep {$_ eq '-bootclasspath'} @ARGV; my @ecj_parms = ($ECJ_WARNINGS, @bcoption); -my @javac_parms = ($JAVAC_WARNINGS, '-Xprefer:source', '-J-Xmx1024m'); +my @javac_parms = ($JAVAC_WARNINGS, '-Xprefer:source', + '-XDignore.symbol.file=true', '-J-Xmx1024m'); # Work around ecj's inability to handle duplicate command-line # options and unknown javac options. diff -r 9ec64ff41e91 -r 91be8105cfa7 patches/boot/compile-for-7.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/boot/compile-for-7.patch Tue Jul 05 13:48:51 2011 +0100 @@ -0,0 +1,42 @@ +diff -r f7e8b10f51c6 make/linux/makefiles/rules.make +--- openjdk-boot/hotspot/make/linux/makefiles/rules.make Tue Jun 28 00:25:25 2011 +0100 ++++ openjdk-boot/hotspot/make/linux/makefiles/rules.make Tue Jul 05 11:59:08 2011 +0100 +@@ -139,8 +139,8 @@ + RUN.JAR$(MAKE_VERBOSE) += >/dev/null + + # Settings for javac +-BOOT_SOURCE_LANGUAGE_VERSION = 6 +-BOOT_TARGET_CLASS_VERSION = 6 ++BOOT_SOURCE_LANGUAGE_VERSION = 7 ++BOOT_TARGET_CLASS_VERSION = 7 + JAVAC_FLAGS = -g -encoding ascii + BOOTSTRAP_JAVAC_FLAGS = $(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION) + +diff -r f7e8b10f51c6 make/solaris/makefiles/rules.make +--- openjdk-boot/hotspot/make/solaris/makefiles/rules.make Tue Jun 28 00:25:25 2011 +0100 ++++ openjdk-boot/hotspot/make/solaris/makefiles/rules.make Tue Jul 05 11:59:08 2011 +0100 +@@ -131,8 +131,8 @@ + RUN.JAR$(MAKE_VERBOSE) += >/dev/null + + # Settings for javac +-BOOT_SOURCE_LANGUAGE_VERSION = 6 +-BOOT_TARGET_CLASS_VERSION = 6 ++BOOT_SOURCE_LANGUAGE_VERSION = 7 ++BOOT_TARGET_CLASS_VERSION = 7 + JAVAC_FLAGS = -g -encoding ascii + BOOTSTRAP_JAVAC_FLAGS = $(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION) + +diff -r f7e8b10f51c6 make/windows/makefiles/rules.make +--- openjdk-boot/hotspot/make/windows/makefiles/rules.make Tue Jun 28 00:25:25 2011 +0100 ++++ openjdk-boot/hotspot/make/windows/makefiles/rules.make Tue Jul 05 11:59:08 2011 +0100 +@@ -43,8 +43,8 @@ + !endif + + # Settings for javac +-BOOT_SOURCE_LANGUAGE_VERSION=6 +-BOOT_TARGET_CLASS_VERSION=6 ++BOOT_SOURCE_LANGUAGE_VERSION=7 ++BOOT_TARGET_CLASS_VERSION=7 + JAVAC_FLAGS=-g -encoding ascii + BOOTSTRAP_JAVAC_FLAGS=$(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION) + diff -r 9ec64ff41e91 -r 91be8105cfa7 patches/boot/hotspot-jdk-dependency.patch --- a/patches/boot/hotspot-jdk-dependency.patch Wed Jun 29 18:16:57 2011 +0100 +++ b/patches/boot/hotspot-jdk-dependency.patch Tue Jul 05 13:48:51 2011 +0100 @@ -7,8 +7,8 @@ - $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST) - $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST) -+ $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR):$(JDK_TOPDIR)/src/share/classes:$(GENSRCDIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST) -+ $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR):$(JDK_TOPDIR)/src/share/classes:$(GENSRCDIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST) ++ $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR):$(JDK_TOPDIR)/src/share/classes:$(JDK_TOPDIR)/src/solaris/classes:$(GENSRCDIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST) ++ $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR):$(JDK_TOPDIR)/src/share/classes:$(JDK_TOPDIR)/src/solaris/classes:$(GENSRCDIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST) $(QUIETLY) $(REMOTE) $(COMPILE.RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer $(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES) From xerxes at zafena.se Tue Jul 5 06:45:22 2011 From: xerxes at zafena.se (Xerxes =?ISO-8859-1?Q?R=E5nby?=) Date: Tue, 05 Jul 2011 15:45:22 +0200 Subject: RFC: IcedTea7 JamVM selfhost patch - remove-sun.misc.Perf-debug-code In-Reply-To: <20110705010706.GA17947@shelob.middle-earth.co.uk> References: <1309444645.10301.16.camel@xranby-ESPRIMO-P7935> <20110705010706.GA17947@shelob.middle-earth.co.uk> Message-ID: <1309873522.3727.5.camel@xranby-ESPRIMO-P7935> tis 2011-07-05 klockan 02:07 +0100 skrev Andrew John Hughes: > On Thu, Jun 30, 2011 at 04:37:25PM +0200, Xerxes R?nby wrote: > > Hi team, > > > > The attached patch makes it possible for IcedTea 7 JamVM builds to be > > selfhosting. > > > > Some OpenJDK 7 classes makes internal use of the unofficial > > sun.misc.Perf API to keep track of startup time. sun.misc.Perf itself > > implements its functionality by using some special jni calls inside of > > Hotspot. > > > > By reducing the internal use of sun.misc.Perf in the OpenJDK 7 classes > > makes it possible to use the OpenJDK 7 classes with non-Hotspot JVMs. > > No. If this is needed for JamVM, it should be a JamVM-specific patch, > not applied generally. OK, I have attached a new JamVM-specific patch that only get applied when performing a JamVM build. ChangeLog entry would be: 2011-07-05 Xerxes R?nby JamVM: Is self-hosting. * patches/jamvm/remove-sun.misc.Perf-debug-code.patch: New patch. * Makefile.am: (ICEDTEA_PATCHES): Apply new patch when building JamVM. * HACKING: Updated. * NEWS: Updated. Ok to push? Cheers Xerxes -------------- next part -------------- A non-text attachment was scrubbed... Name: jamvm-decouple-openjdk-from-hotspot.patch Type: text/x-patch Size: 4626 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110705/4dff7c9b/jamvm-decouple-openjdk-from-hotspot.patch From dbhole at redhat.com Tue Jul 5 08:16:16 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Tue, 5 Jul 2011 11:16:16 -0400 Subject: RFC: Patch for Bug#749 (sun.applet.PluginStreamHandler#handleMessage(String) really slow) In-Reply-To: <20110705014810.GG17947@shelob.middle-earth.co.uk> References: <20110704223514.GB10339@redhat.com> <20110705014810.GG17947@shelob.middle-earth.co.uk> Message-ID: <20110705151616.GD10339@redhat.com> * Andrew John Hughes [2011-07-04 21:48]: > On Mon, Jul 04, 2011 at 06:35:14PM -0400, Deepak Bhole wrote: > > Hi, > > > > This is a cleaned up version of the patch posted for Bug# 749: > > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=749 > > > > I have reviewed the patch myself and found no issues. The patch is > > fairly straightforward and if there are no emails by tomorrow, > > I will go ahead and commit to 1.0, 1.1 and HEAD. > > > > Cheers, > > Deepak > > I've commented inline. The code itself looks ok, but it needs to be > better documented. > > However, your comment about applying this patch, given no response > disturbs me. We don't have a policy of doing this and I strongly > think we should not do so. Please wait for a review, especially > for release branch patches. You can't take no response after some > short period (and 'tomorrow' is quite vague) as implicit approval > of your patch. People do have other stuff to work on. > The fix looked quite harmless so I didn't think much of it. Nonetheless, I will wait for approval next time. New patch with updated docs attached. Thanks for taking a look! Cheers, Deepak > > diff -r 86abbf8be0b1 AUTHORS > > --- a/AUTHORS Thu Jun 23 15:29:45 2011 +0200 > > +++ b/AUTHORS Mon Jul 04 18:29:15 2011 -0400 > > @@ -3,6 +3,7 @@ > > > > Lillian Angel > > Deepak Bhole > > +Ricardo Mart?n Camarero > > Thomas Fitzsimmons > > Mark Greenwood > > Andrew John Hughes > > diff -r 86abbf8be0b1 ChangeLog > > --- a/ChangeLog Thu Jun 23 15:29:45 2011 +0200 > > +++ b/ChangeLog Mon Jul 04 18:29:15 2011 -0400 > > @@ -1,3 +1,12 @@ > > +2011-07-04 Deepak Bhole > > + > > + PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow > > + Patch from: Ricardo Mart?n Camarero (Ricky) > > + * plugin/icedteanp/java/sun/applet/PluginStreamHandler.java > > + (readPair): New function. > > + (handleMessage): Use readPair to incrementally tokenize message, rather > > + than using String.split(). > > + > > 2011-06-22 Jiri Vanek > > > > * tests/report-styles/jreport.xsl: part with classes statistics is now collapsable > > diff -r 86abbf8be0b1 NEWS > > --- a/NEWS Thu Jun 23 15:29:45 2011 +0200 > > +++ b/NEWS Mon Jul 04 18:29:15 2011 -0400 > > @@ -8,6 +8,10 @@ > > > > CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY > > > > +New in release 1.2 (2011-XX-XX): > > +* Plugin > > + - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow > > + > > New in release 1.1 (2011-XX-XX): > > * Security updates > > - S6983554, CVE-2010-4450: Launcher incorrect processing of empty library path entries > > diff -r 86abbf8be0b1 plugin/icedteanp/java/sun/applet/PluginStreamHandler.java > > --- a/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Thu Jun 23 15:29:45 2011 +0200 > > +++ b/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Mon Jul 04 18:29:15 2011 -0400 > > @@ -113,18 +113,60 @@ > > listenerThread.start(); > > } > > > > + /** > > + * Given a string, separates the first (space separated) token and puts the > > + * rest into another string. > > + * > > + * @param message The string to read > > + * @param start The position to start reading at > > + * @param array The array into which the first token and rest are to be placed > > + * @return Position where the next token starts > > + */ > > This documentation is inaccurate. It puts a string up to the first space into the > first element of the array, and then a string up to the second space into the > second element of the array. > > So in the following cases: > > "foo" -> array[0] = "foo", array[1] = null > "foo bar" -> array[0] = "foo", array[1] = "bar" > "foo bar baz" -> array[0] = "foo", array[1] = "bar" > > Note that the second and third examples have identical output and anything after the > second space is discarded. > > It wasn't immediately clear why this is so different to what split was > doing. Reading the bug it seems this is done for performance reasons > (so a regexp is not matched against a long string, creating a huge > array). This should be documented in the Javadoc and probably in the > Changelog too. > > > + > > + private int readPair(String message, int start, String[] array) { > > + > > + int end = start; > > + array[0] = null; > > + array[1] = null; > > + > > + if (message.length() > start) { > > + int firstSpace = message.indexOf(' ', start); > > + if (firstSpace == -1) { > > + array[0] = message.substring(start); > > + end = message.length(); > > + } else { > > + array[0] = message.substring(start, firstSpace); > > + if (message.length() > firstSpace + 1) { > > + int secondSpace = message.indexOf(' ', firstSpace + 1); > > + if (secondSpace == -1) { > > + array[1] = message.substring(firstSpace + 1); > > + end = message.length(); > > + } else { > > + array[1] = message.substring(firstSpace + 1, secondSpace); > > + end = secondSpace + 1; > > + } > > + } > > + } > > + } > > + > > + PluginDebug.debug("readPair: '", array[0], "' - '", array[1], "' ", end); > > + return end; > > + } > > + > > public void handleMessage(String message) throws PluginException { > > > > - int nextIndex = 0; > > int reference = -1; > > String src = null; > > String[] privileges = null; > > String rest = ""; > > + String[] msgComponents = new String[2]; > > + int pos = 0; > > + int oldPos = 0; > > > > - String[] msgComponents = message.split(" "); > > - > > - if (msgComponents.length < 2) > > + pos = readPair(message, oldPos, msgComponents); > > + if (msgComponents[0] == null || msgComponents[1] == null) { > > return; > > + } > > > > if (msgComponents[0].startsWith("plugin")) { > > handlePluginMessage(message); > > @@ -134,38 +176,38 @@ > > // type and identifier are guaranteed to be there > > String type = msgComponents[0]; > > final int identifier = Integer.parseInt(msgComponents[1]); > > - nextIndex = 2; > > > > // reference, src and privileges are optional components, > > // and are guaranteed to be in that order, if they occur > > + oldPos = pos; > > + pos = readPair(message, oldPos, msgComponents); > > > > // is there a reference ? > > - if (msgComponents[nextIndex].equals("reference")) { > > - reference = Integer.parseInt(msgComponents[nextIndex + 1]); > > - nextIndex += 2; > > + if ("reference".equals(msgComponents[0])) { > > + reference = Integer.parseInt(msgComponents[1]); > > + oldPos = pos; > > + pos = readPair(message, oldPos, msgComponents); > > } > > > > // is there a src? > > - if (msgComponents[nextIndex].equals("src")) { > > - src = msgComponents[nextIndex + 1]; > > - nextIndex += 2; > > + if ("src".equals(msgComponents[0])) { > > + src = msgComponents[1]; > > + oldPos = pos; > > + pos = readPair(message, oldPos, msgComponents); > > } > > > > // is there a privileges? > > - if (msgComponents[nextIndex].equals("privileges")) { > > - String privs = msgComponents[nextIndex + 1]; > > + if ("privileges".equals(msgComponents[0])) { > > + String privs = msgComponents[1]; > > privileges = privs.split(","); > > - nextIndex += 2; > > + oldPos = pos; > > } > > > > // rest > > - for (int i = nextIndex; i < msgComponents.length; i++) { > > - rest += msgComponents[i]; > > - rest += " "; > > + if (message.length() > oldPos) { > > + rest = message.substring(oldPos); > > } > > > > - rest = rest.trim(); > > - > > try { > > > > PluginDebug.debug("Breakdown -- type: ", type, " identifier: ", identifier, " reference: ", reference, " src: ", src, " privileges: ", privileges, " rest: \"", rest, "\""); > > > -- > Andrew :) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > Support Free Java! > Contribute to GNU Classpath and IcedTea > http://www.gnu.org/software/classpath > http://icedtea.classpath.org > PGP Key: F5862A37 (https://keys.indymedia.org/) > Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 -------------- next part -------------- diff -r 86abbf8be0b1 AUTHORS --- a/AUTHORS Thu Jun 23 15:29:45 2011 +0200 +++ b/AUTHORS Tue Jul 05 11:12:20 2011 -0400 @@ -3,6 +3,7 @@ Lillian Angel Deepak Bhole +Ricardo Mart?n Camarero Thomas Fitzsimmons Mark Greenwood Andrew John Hughes diff -r 86abbf8be0b1 ChangeLog --- a/ChangeLog Thu Jun 23 15:29:45 2011 +0200 +++ b/ChangeLog Tue Jul 05 11:12:20 2011 -0400 @@ -1,3 +1,12 @@ +2011-07-05 Deepak Bhole + + PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow + Patch from: Ricardo Mart?n Camarero (Ricky) + * plugin/icedteanp/java/sun/applet/PluginStreamHandler.java + (readPair): New function. + (handleMessage): Use readPair to incrementally tokenize message, rather + than using String.split(). + 2011-06-22 Jiri Vanek * tests/report-styles/jreport.xsl: part with classes statistics is now collapsable diff -r 86abbf8be0b1 NEWS --- a/NEWS Thu Jun 23 15:29:45 2011 +0200 +++ b/NEWS Tue Jul 05 11:12:20 2011 -0400 @@ -8,6 +8,10 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY +New in release 1.2 (2011-XX-XX): +* Plugin + - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow + New in release 1.1 (2011-XX-XX): * Security updates - S6983554, CVE-2010-4450: Launcher incorrect processing of empty library path entries diff -r 86abbf8be0b1 plugin/icedteanp/java/sun/applet/PluginStreamHandler.java --- a/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Thu Jun 23 15:29:45 2011 +0200 +++ b/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Tue Jul 05 11:12:20 2011 -0400 @@ -113,18 +113,58 @@ listenerThread.start(); } + /** + * Given a string, reads the first two (space separated) tokens. + * + * @param message The string to read + * @param start The position to start reading at + * @param array The array into which the first two tokens are placed + * @return Position where the next token starts + */ + private int readPair(String message, int start, String[] array) { + + int end = start; + array[0] = null; + array[1] = null; + + if (message.length() > start) { + int firstSpace = message.indexOf(' ', start); + if (firstSpace == -1) { + array[0] = message.substring(start); + end = message.length(); + } else { + array[0] = message.substring(start, firstSpace); + if (message.length() > firstSpace + 1) { + int secondSpace = message.indexOf(' ', firstSpace + 1); + if (secondSpace == -1) { + array[1] = message.substring(firstSpace + 1); + end = message.length(); + } else { + array[1] = message.substring(firstSpace + 1, secondSpace); + end = secondSpace + 1; + } + } + } + } + + PluginDebug.debug("readPair: '", array[0], "' - '", array[1], "' ", end); + return end; + } + public void handleMessage(String message) throws PluginException { - int nextIndex = 0; int reference = -1; String src = null; String[] privileges = null; String rest = ""; + String[] msgComponents = new String[2]; + int pos = 0; + int oldPos = 0; - String[] msgComponents = message.split(" "); - - if (msgComponents.length < 2) + pos = readPair(message, oldPos, msgComponents); + if (msgComponents[0] == null || msgComponents[1] == null) { return; + } if (msgComponents[0].startsWith("plugin")) { handlePluginMessage(message); @@ -134,38 +174,38 @@ // type and identifier are guaranteed to be there String type = msgComponents[0]; final int identifier = Integer.parseInt(msgComponents[1]); - nextIndex = 2; // reference, src and privileges are optional components, // and are guaranteed to be in that order, if they occur + oldPos = pos; + pos = readPair(message, oldPos, msgComponents); // is there a reference ? - if (msgComponents[nextIndex].equals("reference")) { - reference = Integer.parseInt(msgComponents[nextIndex + 1]); - nextIndex += 2; + if ("reference".equals(msgComponents[0])) { + reference = Integer.parseInt(msgComponents[1]); + oldPos = pos; + pos = readPair(message, oldPos, msgComponents); } // is there a src? - if (msgComponents[nextIndex].equals("src")) { - src = msgComponents[nextIndex + 1]; - nextIndex += 2; + if ("src".equals(msgComponents[0])) { + src = msgComponents[1]; + oldPos = pos; + pos = readPair(message, oldPos, msgComponents); } // is there a privileges? - if (msgComponents[nextIndex].equals("privileges")) { - String privs = msgComponents[nextIndex + 1]; + if ("privileges".equals(msgComponents[0])) { + String privs = msgComponents[1]; privileges = privs.split(","); - nextIndex += 2; + oldPos = pos; } // rest - for (int i = nextIndex; i < msgComponents.length; i++) { - rest += msgComponents[i]; - rest += " "; + if (message.length() > oldPos) { + rest = message.substring(oldPos); } - rest = rest.trim(); - try { PluginDebug.debug("Breakdown -- type: ", type, " identifier: ", identifier, " reference: ", reference, " src: ", src, " privileges: ", privileges, " rest: \"", rest, "\""); From bugzilla-daemon at icedtea.classpath.org Tue Jul 5 08:19:40 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Jul 2011 15:19:40 +0000 Subject: [Bug 746] eclipse crashes on start due to native library failure in libxul.so In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=746 Deepak Bhole changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |spyworldxp at gmail.com --- Comment #4 from Deepak Bhole 2011-07-05 15:19:39 --- *** Bug 745 has been marked as a duplicate of this bug. *** -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Tue Jul 5 08:19:39 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Jul 2011 15:19:39 +0000 Subject: [Bug 745] Error Google App Engine Plugins In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=745 Deepak Bhole changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |DUPLICATE --- Comment #6 from Deepak Bhole 2011-07-05 15:19:39 --- (In reply to comment #5) > /opt/eclipse-javaee/configuration/org.eclipse.osgi/bundles/61/1/.cp/os/linux/x86/libunixfile_1_0_0.so > > suggests so and a personal install too by the looks of it. > Ah, thanks. This is an issue in Eclipse then. Closing as dupe of Bug# 746. Please see the second comment there for a workaround. *** This bug has been marked as a duplicate of bug 746 *** -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Tue Jul 5 12:28:03 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Jul 2011 19:28:03 +0000 Subject: [Bug 752] New: ImageFormatException extends Exception not RuntimeException Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=752 Summary: ImageFormatException extends Exception not RuntimeException Product: IcedTea Version: 6-hg Platform: 64-bit URL: https://bugs.launchpad.net/ubuntu/+source/batik/+bug/800 082 OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: IcedTea6 AssignedTo: unassigned at icedtea.classpath.org ReportedBy: james.page at ubuntu.com Operating System: OS - Ubuntu Development Release - Oneiric Ocelot java -version: java version "1.6.0_22" OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre2-0ubuntu2) OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode) Prior to 6b23 com.sun.image.codec.jpeg.ImageFormatException extended RuntimeException rather than Exception so it did not need to be caught or declared as throw in code that was using this internal API. >= 6b23 is class extends Exception - this has caused a couple of build failures in packages that use this package - see linked bug report in Ubuntu. This change was introduced with changeset http://icedtea.classpath.org/hg/icedtea6/rev/8720a7df46e3?revcount=120 It would appear that this makes the IcedTea6 implementation API different from the original Java 1.5 API for this class. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Tue Jul 5 12:50:49 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Jul 2011 19:50:49 +0000 Subject: [Bug 753] New: Zero FTBFS on stack_zero.cpp : Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=753 Summary: Zero FTBFS on stack_zero.cpp : Product: IcedTea Version: 7-hg Platform: all OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: Zero AssignedTo: unassigned at icedtea.classpath.org ReportedBy: drazzib at drazzib.com Hi, ZeroVM on icedtea hg just FTBFS on stack_zero.cpp with the following error : g++ -DLINUX -D_GNU_SOURCE -DCC_INTERP -DZERO -DAMD64 -DZERO_LIBARCH=\"amd64\" -DPRODUCT -I. -I/usr/local/build/buildslave/icedtea/icedtea7-full/build/zerovm/openjdk/hotspot/src/share/vm/prims -I/usr/local/build/buildslave/icedtea/icedtea7-full/build/zerovm/openjdk/hotspot/src/share/vm -I/usr/local/build/buildslave/icedtea/icedtea7-full/build/zerovm/openjdk/hotspot/src/cpu/zero/vm -I/usr/local/build/buildslave/icedtea/icedtea7-full/build/zerovm/openjdk/hotspot/src/os_cpu/linux_zero/vm -I/usr/local/build/buildslave/icedtea/icedtea7-full/build/zerovm/openjdk/hotspot/src/os/linux/vm -I/usr/local/build/buildslave/icedtea/icedtea7-full/build/zerovm/openjdk/hotspot/src/os/posix/vm -I../generated -DHOTSPOT_RELEASE_VERSION="\"21.0-b14\"" -DHOTSPOT_BUILD_TARGET="\"product\"" -DHOTSPOT_BUILD_USER="\"buildslave\"" -DHOTSPOT_LIB_ARCH=\"amd64\" -DJRE_RELEASE_VERSION="\"1.7.0_143-b143\"" -DHOTSPOT_VM_DISTRO="\"OpenJDK\"" -DDERIVATIVE_ID="\"IcedTea7 2.0pre+r9ec64ff41e91\"" -DDISTRIBUTION_ID="\"Built on Debian GNU/Linux 6.0.2 (squeeze) (Wed Jun 29 20:45:25 UTC 2011)\"" -DTARGET_OS_FAMILY_linux -DTARGET_ARCH_zero -DTARGET_ARCH_MODEL_zero -DTARGET_OS_ARCH_linux_zero -DTARGET_OS_ARCH_MODEL_linux_zero -DTARGET_COMPILER_gcc -DSHARK -I/usr/lib/llvm-2.7/include -DNDEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -DSHARK_LLVM_VERSION=27 -fpic -fno-rtti -fno-exceptions -D_REENTRANT -fcheck-new -fvisibility=hidden -m64 -pipe -g -O3 -fno-strict-aliasing -DVM_LITTLE_ENDIAN -D_LP64=1 -Werror -Wpointer-arith -Wsign-compare -c -MMD -MP -MF ../generated/dependencies/statSampler.o.d -o statSampler.o /usr/local/build/buildslave/icedtea/icedtea7-full/build/zerovm/openjdk/hotspot/src/share/vm/runtime/statSampler.cpp /usr/local/build/buildslave/icedtea/icedtea7-full/build/zerovm/openjdk/hotspot/src/cpu/zero/vm/stack_zero.cpp: In static member function 'static void ZeroStack::handle_overflow(Thread*)': /usr/local/build/buildslave/icedtea/icedtea7-full/build/zerovm/openjdk/hotspot/src/cpu/zero/vm/stack_zero.cpp:72: error: no matching function for call to 'Exceptions::throw_stack_overflow_exception(JavaThread*&, const char [110], int)' /usr/local/build/buildslave/icedtea/icedtea7-full/build/zerovm/openjdk/hotspot/src/share/vm/utilities/exceptions.hpp:147: note: candidates are: static void Exceptions::throw_stack_overflow_exception(Thread*, const char*, int, methodHandle) make[7]: *** [stack_zero.o] Error 1 Full log is here : http://builder.classpath.org/icedtea/buildbot/builders/icedtea7-squeeze-x86_64-full/builds/35/steps/compile/logs/stdio This API changes seems linked to upstream (ID:7009923) : http://hg.openjdk.java.net/jdk7/jdk7/hotspot/rev/01147d8aac1d (Zero has not been adapted to this new API) Cheers, -- Damien Raude-Morvan -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Tue Jul 5 12:51:01 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Jul 2011 19:51:01 +0000 Subject: [Bug 712] [TRACKER] IcedTea7 2.0 release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=712 Damien Raude-Morvan changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |drazzib at drazzib.com Depends on| |753 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Tue Jul 5 12:51:01 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Jul 2011 19:51:01 +0000 Subject: [Bug 753] Zero FTBFS on stack_zero.cpp : In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=753 Damien Raude-Morvan changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |712 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Jul 6 08:30:14 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 06 Jul 2011 15:30:14 +0000 Subject: [Bug 753] Zero FTBFS on stack_zero.cpp : In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=753 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks|712 | -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Jul 6 08:30:14 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 06 Jul 2011 15:30:14 +0000 Subject: [Bug 712] [TRACKER] IcedTea7 2.0 release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=712 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on|753 | Status|NEW |ASSIGNED --- Comment #1 from Andrew John Hughes 2011-07-06 15:30:13 --- Only those involved in IcedTea releases should add dependencies to this bug. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Jul 6 08:54:07 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 06 Jul 2011 15:54:07 +0000 Subject: [Bug 752] ImageFormatException extends Exception not RuntimeException In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=752 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ahughes at redhat.com AssignedTo|unassigned at icedtea.classpath|ahughes at redhat.com |.org | Platform|64-bit |x86_64 --- Comment #1 from Andrew John Hughes 2011-07-06 15:54:07 --- I'll look into fixing this. Note that the version concerned is a pre-release of IcedTea6 1.11 and not '6b23' which confused me at first (I thought you were referring to a proprietary Oracle JDK). What disturbs me is that this is not yet in a release of IcedTea6 yet, but you seem to have acquired it via an Ubuntu package. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From smohammad at redhat.com Wed Jul 6 12:36:32 2011 From: smohammad at redhat.com (Saad Mohammad) Date: Wed, 06 Jul 2011 15:36:32 -0400 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch Message-ID: <4E14B940.6080109@redhat.com> This is the updated patch for adding support of signed JNLP file. I have attached two patches. More Info: http://jcp.org/aboutJava/communityprocess/maintenance/jsr056/jnlp-7_0-changes.html (Change 3) Patch 1 Contains: - JNLPMatcher.java (renamed from JNLPVerify) - JNLPMatcherException.java (renamed from JNLPVerifyException) - Modification of Node.java - JNLPMatcherTest (Unit test that tests JNLPMatcher class) - Contains 10 templates JNLP files, 9 application JNLP files and one launching JNLP file for test (Resources for JNLPMatcherTest) Patch 2 Contains: - Modification to JNLPClassLoader.java CHANGELOG: 2011-07-06 Saad Mohammad * netx/net/sourceforge/jnlp/JNLPMatcher.java: Created this class to compare signed JNLP file with the launching JNLP file. When comparing, it has support for both method of signing of a JNLP file: APPLICATION_TEMPLATE.JNLP and APPLICATION.JNLP * netx/net/sourceforge/jnlp/JNLPMatcherException.java: Added a custom exception: JNLPMatcherException. Thrown if verifying signed JNLP files fails * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: Added JNLPMatcherException to methods that throws the custom exception. (initializeResources): Checks if there are any signed JNLP files within the signed jars. If signed JNLP file fails to match or fails to be verified, the application throws a JNLPMatcherException. * netx/net/sourceforge/jnlp/Node.java: Created a method that retrieves the attribute names of the Node and stores it in private string [] member. The method returns the attribute names. * tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java: This is a test case that tests the functionality of JNLPMatcher. It tests the algorithm with a variety of template and application JNLP files. * tests/netx/unit/net/sourceforge/jnlp/launchApp.jnlp: Launching JNLP file: This is the launching JNLP file used to compare with templates and application JNLP files in JNLPMatcherTest.java * tests/netx/unit/net/sourceforge/jnlp/templates/template0.jnlp: Test Template JNLP file: Contains CDATA * tests/netx/unit/net/sourceforge/jnlp/templates/template1.jnlp: Test Template JNLP file: An exact duplicate of the launching JNLP file * tests/netx/unit/net/sourceforge/jnlp/templates/template2.jnlp: Test Template JNLP file: Contains wildchars as attribute/element values * tests/netx/unit/net/sourceforge/jnlp/templates/template3.jnlp: Test Template JNLP file: Different order of element/attributes (but same value) * tests/netx/unit/net/sourceforge/jnlp/templates/template4.jnlp: Test Template JNLP file: Contains wildchars as values of ALL elements and attribute * tests/netx/unit/net/sourceforge/jnlp/templates/template5.jnlp: Test Template JNLP file: Contains comments * tests/netx/unit/net/sourceforge/jnlp/templates/template6.jnlp: Test Template JNLP file: Contains different attribute and element values * tests/netx/unit/net/sourceforge/jnlp/templates/template7.jnlp: Test Template JNLP file: Contains additional children in element * tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp: Test Template JNLP file: Contains fewer children in element * tests/netx/unit/net/sourceforge/jnlp/templates/template9.jnlp: Test Template JNLP file: All values are different from the launching JNLP file * tests/netx/unit/net/sourceforge/jnlp/application/application0.jnlp: Test Application JNLP file: Contains CDATA * tests/netx/unit/net/sourceforge/jnlp/application/application1.jnlp: Test Application JNLP file: An exact duplicate of the launching JNLP file * tests/netx/unit/net/sourceforge/jnlp/application/application2.jnlp: Test Application JNLP file: Different order of element/attributes (but same value) * tests/netx/unit/net/sourceforge/jnlp/application/application3.jnlp: Test Application JNLP file: Contains comments * tests/netx/unit/net/sourceforge/jnlp/application/application4.jnlp: Test Application JNLP file: Contains wildchars as attribute/element values * tests/netx/unit/net/sourceforge/jnlp/application/application5.jnlp: Test Application JNLP file: Contains a different attribute (codebase) value * tests/netx/unit/net/sourceforge/jnlp/application/application6.jnlp: Test Application JNLP file: Contains additional children in element * tests/netx/unit/net/sourceforge/jnlp/application/application7.jnlp: Test Application JNLP file: Contains fewer children in element * tests/netx/unit/net/sourceforge/jnlp/application/application8.jnlp: Test Application JNLP file: All values are different from the launching JNLP file * Makefile.am: (run-netx-unit-tests) Creates directories and copies resources (JNLP files) to test.build before running unit test: JNLPMatcherTest -- Cheers, Saad Mohammad -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: Patch1.patch Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110706/702aa2d4/Patch1.patch -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: Patch2.patch Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110706/702aa2d4/Patch2.patch From andrew at icedtea.classpath.org Wed Jul 6 12:45:31 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 06 Jul 2011 19:45:31 +0000 Subject: /hg/icedtea6-hg: 56 new changesets Message-ID: changeset 6db2808d2844 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=6db2808d2844 author: ptisnovs date: Thu Jun 09 18:32:28 2011 +0200 Added patch which ensures, that only one fontconfig file will be needed on particular RHEL version. changeset 43513a59c031 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=43513a59c031 author: Denis Lila date: Thu Jun 09 11:16:32 2011 -0400 Fix PR677 and RH711900 changeset 5754a0969579 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=5754a0969579 author: Denis Lila date: Thu Jun 09 13:26:53 2011 -0400 merge changeset 349dee8c337a in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=349dee8c337a author: Denis Lila date: Thu Jun 09 13:42:07 2011 -0400 Fix a date on the ChangeLog. changeset 78244a1d4649 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=78244a1d4649 author: ptisnovs date: Fri Jun 10 16:17:11 2011 +0200 Patch updated: use only major RHEL version, not minor one. changeset 0a4cdcd1c6c6 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=0a4cdcd1c6c6 author: ptisnovs date: Fri Jun 10 16:45:31 2011 +0200 Fix build failure. changeset 542e1eeba6ed in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=542e1eeba6ed author: Denis Lila date: Fri Jun 10 16:21:38 2011 -0400 Fix pulse audio header generation problem. changeset c86fdd28db8f in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=c86fdd28db8f author: Denis Lila date: Fri Jun 10 16:23:25 2011 -0400 merge changeset 1bb1af172bea in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=1bb1af172bea author: Denis Lila date: Fri Jun 10 17:42:18 2011 -0400 Fix whitespace. changeset d35c67901351 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=d35c67901351 author: Andrew John Hughes date: Fri Jun 10 22:53:54 2011 +0100 Security patches for 2011/06/07. 2011-05-23 Andrew John Hughes * Makefile.am: Add security patches. * patches/nio2.patch: Rerolled post-security patching. * patches/security/20110607/6213702.patch, * patches/security/20110607/6618658.patch, * patches/security/20110607/7012520.patch, * patches/security/20110607/7013519.patch, * patches/security/20110607/7013969.patch, * patches/security/20110607/7013971.patch, * patches/security/20110607/7016495.patch, * patches/security/20110607/7020198.patch, * patches/security/20110607/7020373.patch: New security patches. * patches/xjc.patch: Rerolled after 7013971. changeset c51663f190c9 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=c51663f190c9 author: Andrew John Hughes date: Fri Jun 10 22:58:13 2011 +0100 Merge changeset abce9adb58ce in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=abce9adb58ce author: Danesh Dadachanji date: Mon Jun 13 16:43:37 2011 -0400 Fix Makefile dependencies issue with xalan/xerces for F15 builds. changeset 038d0687d646 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=038d0687d646 author: Danesh Dadachanji date: Mon Jun 13 17:13:51 2011 -0400 Backed out changeset abce9adb58ce changeset cfb9d61da90f in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=cfb9d61da90f author: ptisnovs date: Tue Jun 14 11:18:01 2011 +0200 Make sure that the regression test openjdk/jdk/test/tools/jar/ChangeDir.java deletes all its work files. changeset e71f6f90abb6 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=e71f6f90abb6 author: ptisnovs date: Tue Jun 14 13:00:21 2011 +0200 Make sure that the regression test openjdk/jdk/test/sun/nio/ch/TempBuffer.java deletes all its work files. changeset c15364504892 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=c15364504892 author: Denis Lila date: Mon Jun 13 16:53:55 2011 -0400 Fix NPE in swing. changeset 855179997c0a in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=855179997c0a author: Denis Lila date: Mon Jun 13 16:58:32 2011 -0400 merge changeset 0e134aa56ccc in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=0e134aa56ccc author: Denis Lila date: Tue Jun 14 09:02:14 2011 -0400 merge changeset 78a0ce4fd551 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=78a0ce4fd551 author: ptisnovs date: Tue Jun 14 17:25:06 2011 +0200 Added patch which fixes regression test openjdk/jdk/test/sun/net/www/protocol/file/EncodedMultiByteChar.java changeset f2acaead4723 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=f2acaead4723 author: ptisnovs date: Wed Jun 15 16:38:01 2011 +0200 Added patch for a regression test openjdk/jdk/test/sun/misc/URLClassPath/FileLoaderTest.java changeset 8927956c3b6b in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=8927956c3b6b author: Denis Lila date: Wed Jun 15 10:35:39 2011 -0400 Fix build regression. changeset 7d491356b6d9 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=7d491356b6d9 author: Denis Lila date: Wed Jun 15 11:57:46 2011 -0400 merge changeset 830e2c11d9f3 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=830e2c11d9f3 author: Danesh Dadachanji date: Wed Jun 15 15:29:46 2011 -0400 Fix Makefile dependencies issue with xalan/xerces for F15 builds. changeset f5b82f792313 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=f5b82f792313 author: ptisnovs date: Thu Jun 16 13:19:25 2011 +0200 Regression test fix: Make sure that the regression test openjdk/jdk/test/sun/net/www/protocol/file/FileMap.java deletes all its work files. changeset fe70aef2215d in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=fe70aef2215d author: ptisnovs date: Thu Jun 16 14:44:34 2011 +0200 Fixed indentation (spaces2tabs) in Makefile.am changeset 5c6d4ea2f55d in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=5c6d4ea2f55d author: Denis Lila date: Thu Jun 16 10:58:30 2011 -0400 Replace pulse audio enums with static longs. changeset 2eef438960e4 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=2eef438960e4 author: Denis Lila date: Thu Jun 16 11:11:35 2011 -0400 Fix a few concurrency problems in pulse audio. changeset 9dbcfded2579 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=9dbcfded2579 author: Denis Lila date: Thu Jun 16 12:57:43 2011 -0400 merge changeset 1d4ca38b3440 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=1d4ca38b3440 author: ptisnovs date: Fri Jun 17 11:10:49 2011 +0200 Patch for regression test openjdk/jdk/test/java/nio/channels/Channels/Write.java changeset 2962ab27cd01 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=2962ab27cd01 author: Denis Lila date: Fri Jun 17 16:16:47 2011 -0400 Start PulseAudioTargetDataLines in the corked state. changeset 628bfb4cd6c1 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=628bfb4cd6c1 author: Denis Lila date: Mon Jun 20 11:23:24 2011 -0400 PR734. Fix pulse-java latency problem. changeset 50b12236cc6d in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=50b12236cc6d author: Denis Lila date: Mon Jun 20 11:38:07 2011 -0400 Fix hanging jtreg test. changeset be0c585e6d35 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=be0c585e6d35 author: Denis Lila date: Mon Jun 20 14:14:56 2011 -0400 Fix pulse audio regression. changeset 62f0bbb8d3db in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=62f0bbb8d3db author: ptisnovs date: Wed Jun 22 09:39:13 2011 +0200 Added new regression test which check if PNG images read by ImageIO subsytstem contains proper pixel values. changeset 6775ce70b2cd in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=6775ce70b2cd author: ptisnovs date: Wed Jun 22 10:36:22 2011 +0200 Added regression test missing from 6733501 backport. changeset 4a46bd6fb3a5 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=4a46bd6fb3a5 author: ptisnovs date: Wed Jun 22 10:52:24 2011 +0200 Backport of 6818312 regression test. changeset 561f0d6f3934 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=561f0d6f3934 author: ptisnovs date: Thu Jun 23 10:57:47 2011 +0200 Make sure that the regression test openjdk/jdk/test/java/nio/MappedByteBuffer/Basic.java deletes all its work files. changeset 24a5884be0de in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=24a5884be0de author: ptisnovs date: Thu Jun 23 11:08:51 2011 +0200 Backport of 7008106 regression test fix. changeset 58c56aeb3e79 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=58c56aeb3e79 author: ptisnovs date: Fri Jun 24 09:07:40 2011 +0200 Backport of 6956668 fix. changeset de842a17c6d5 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=de842a17c6d5 author: ptisnovs date: Fri Jun 24 17:41:56 2011 +0200 Backport of 6699843 fix. changeset 6c45515ce78a in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=6c45515ce78a author: Xerxes R?nby date: Mon Jun 27 16:21:50 2011 +0200 JamVM: Update to 2011-06-13 revision. 2011-06-27 Xerxes R?nby JamVM - Make classlib init functions consistent + warnings. - Correctly implement sun.misc.Unsafe freeMemory(). - Move lazy-loading to init function. - Fix various warnings with -Wall. - PrintThreadsDump needs "self" as argument. - CopyMemory, etc. handle negative or truncation in length. - Extra sun.misc.Unsafe functions. - Ignore options for jtreg tests. - Enable shutdownVM to be called with OpenJDK classlib. - Initial implementation of JVM_FindClassFromBootLoader. - Fix callJNIMethod on i386 with -fomit-frame-pointer. - Fix backwards cache conflict resolution code. - Unify command line options parsing. - Remove debug printf. * NEWS: Updated. * Makefile.am (ICEDTEA_PATCHES): Remove upstreamed JamVM patch. (JAMVM_VERSION): Updated JamVM to 2011-06-13 revision. (JAMVM_SHA256SUM): Updated. (stamps/jamvm.stamp): Add -f when creating client symlink to handle repeat builds. Link the fake libjsig.so to JamVM libjvm.so to work with latest OpenJDK ALT_HOTSPOT_IMPORT_PATH functionality. * patches/jamvm/ignore-unknown-options.patch: Removed. Replaced by upstream, unify command line options parsing, changeset 1b248439e88ae6cbd1471addc49e2666b8964ced. changeset 562d984677e8 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=562d984677e8 author: ptisnovs date: Mon Jun 27 17:46:58 2011 +0200 Backport of 6918065 fix. changeset ec4f9f18e7b6 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=ec4f9f18e7b6 author: ptisnovs date: Tue Jun 28 09:51:50 2011 +0200 S6623219: Font.canDisplayUpTo does not work with supplementary characters changeset 2a3b854d6940 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=2a3b854d6940 author: ptisnovs date: Tue Jun 28 17:17:59 2011 +0200 S6783910: java.awt.Color.brighter()/darker() methods make color opaque changeset 411743c2dd64 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=411743c2dd64 author: ptisnovs date: Tue Jun 28 17:31:50 2011 +0200 S6785424: SecurityException locating physical fonts on Windows Terminal Server changeset 7183dbf25d56 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=7183dbf25d56 author: Andrew John Hughes date: Tue Jun 28 17:18:45 2011 +0100 Allow Linux 3* to pass through the HotSpot OS version filter. 2011-06-28 Andrew John Hughes * Makefile.am: Add new patch. * patches/support_linux_3.patch: Allow Linux 3* through the HotSpot OS version filter. changeset 93fe1e8a9277 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=93fe1e8a9277 author: Andrew John Hughes date: Tue Jun 28 17:21:18 2011 +0100 Merge changeset 3c66636f2c6f in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=3c66636f2c6f author: ptisnovs date: Wed Jun 29 10:26:39 2011 +0200 S7047069: Array can dynamically change size when assigned to an object field changeset 70ed85d57999 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=70ed85d57999 author: ptisnovs date: Wed Jun 29 12:06:12 2011 +0200 S6796786: invalid FP identity transform - (a - b) -> b - a S7042070: Typo in Test6796786.java changeset e481486df309 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=e481486df309 author: Andrew John Hughes date: Wed Jun 29 18:16:57 2011 +0100 Check that JDK binaries are files in addition to being executable. 2011-06-29 Andrew John Hughes * acinclude.m4: (IT_FIND_JAVA): Check that the binary is also a regular file as well as executable. (IT_FIND_JAVAH): Likewise. (IT_FIND_JAR): Likewise. (IT_FIND_RMIC): Likewise. (IT_FIND_NATIVE2ASCII): Likewise. changeset 446bbf94ddcc in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=446bbf94ddcc author: Andrew John Hughes date: Wed Jun 29 23:15:25 2011 +0100 Make the old gcj jaxws patch still apply, given the recent security updates. 2011-06-29 Andrew John Hughes * patches/ecj/jaxws-getdtdtype.patch: Fix patch to still apply after recent security updates. changeset 0bb30eda4814 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=0bb30eda4814 author: Andrew John Hughes date: Wed Jun 29 23:30:27 2011 +0100 Update NEWS with latest bug fixes. 2011-06-29 Andrew John Hughes * NEWS: Updated with latest bug fixes. changeset 643ec5879fdd in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=643ec5879fdd author: ptisnovs date: Fri Jul 01 11:22:01 2011 +0200 S7029152: Ideal nodes for String intrinsics miss memory edge optimization. changeset 73e0d37b9ec3 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=73e0d37b9ec3 author: ptisnovs date: Fri Jul 01 14:41:45 2011 +0200 S6679308: Poor text rendering on translucent image changeset 5deef52b5a9c in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=5deef52b5a9c author: Andrew John Hughes date: Wed Jul 06 17:11:34 2011 +0100 Merge changeset 23404f48955e in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=23404f48955e author: Andrew John Hughes date: Wed Jul 06 20:45:21 2011 +0100 Support hg, post security patches. 2011-07-06 Andrew John Hughes * patches/security/20110215/6878713.patch, * patches/security/20110607/6213702.patch, * patches/security/20110607/6618658.patch, * patches/security/20110607/7012520.patch, * patches/security/20110607/7013519.patch, * patches/security/20110607/7013969.patch, * patches/security/20110607/7013971.patch, * patches/security/20110607/7016495.patch, * patches/security/20110607/7020198.patch, * patches/security/20110607/7020373.patch: Removed; upstream. * Makefile.am: (JAXWS_DROP_ZIP): Updatede. (JAXWS_DROP_SHA256SUM): Likewise. (JAXP_DROP_ZIP): Likewise. (JAXP_DROP_SHA256SUM): Likewise. (SECURITY_PATCHES): Set to empty. * patches/xjc.patch: Revert to pre-security patch version (security patch is now part of the tarball, not a patch) diffstat: AUTHORS | 1 + ChangeLog | 531 +++ INSTALL | 16 +- Makefile.am | 117 +- NEWS | 33 +- acinclude.m4 | 117 +- configure.ac | 9 + hotspot.map | 1 - overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi0g01.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi0g02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi0g04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi0g08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi0g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi2c16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi3p01.pam | 7 + overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi3p02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi4a08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi4a16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi6a08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi6a16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn0g01.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn0g02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn0g04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn0g08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn0g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn2c16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn3p01.pam | 7 + overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn3p02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn4a08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn4a16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn6a08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn6a16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/bgai4a08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/bgai4a16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/bgan6a08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/bgan6a16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/bgbn4a08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/bggn4a16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/bgwn6a08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/bgyn6a16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/ccwn2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/ccwn3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cdfn2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cdhn2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cdsn2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cdun2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/ch1n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/ch2n3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cm0n0g04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cm7n0g04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cm9n0g04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cs3n2c16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cs3n3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cs5n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cs5n3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cs8n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cs8n3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/ct0n0g04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/ct1n0g04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/ctzn0g04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/f00n0g08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/f00n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/f01n0g08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/f01n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/f02n0g08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/f02n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/f03n0g08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/f03n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/f04n0g08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/f04n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g03n0g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g03n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g03n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g04n0g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g04n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g04n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g05n0g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g05n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g05n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g07n0g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g07n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g07n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g10n0g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g10n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g10n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g25n0g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g25n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g25n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/oi1n0g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/oi1n2c16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/oi2n0g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/oi2n2c16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/oi4n0g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/oi4n2c16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/oi9n0g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/oi9n2c16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/pngsuite_logo.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/pp0n2c16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/pp0n6a08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/ps1n0g08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/ps1n2c16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/ps2n0g08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/ps2n2c16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s01i3p01.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s01n3p01.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s02i3p01.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s02n3p01.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s03i3p01.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s03n3p01.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s04i3p01.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s04n3p01.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s05i3p02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s05n3p02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s06i3p02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s06n3p02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s07i3p02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s07n3p02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s08i3p02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s08n3p02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s09i3p02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s09n3p02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s32i3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s32n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s33i3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s33n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s34i3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s34n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s35i3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s35n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s36i3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s36n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s37i3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s37n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s38i3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s38n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s39i3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s39n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s40i3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s40n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tbbn1g04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tbbn2c16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tbbn3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tbgn2c16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tbgn3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tbrn2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tbwn1g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tbwn3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tbyn3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tp0n1g08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tp0n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tp0n3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tp1n3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/z00n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/z03n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/z06n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/z09n2c08.pam | 0 patches/arm.patch | 56 + patches/ecj/jaxws-getdtdtype.patch | 7 +- patches/f14-fonts.patch | 2 +- patches/fonts-gentoo.patch | 4 +- patches/fonts-rhel-version.patch | 32 + patches/fonts-rhel.patch | 3 +- patches/gcc-suffix.patch | 29 + patches/hotspot/hs20/7032388-work_without_cmov_instruction.patch | 173 - patches/hotspot/hs20/7036220-shark_llvm_29_headers.patch | 43 - patches/hotspot/hs20/arm.patch | 56 - patches/hotspot/hs20/gcc-suffix.patch | 29 - patches/hotspot/hs20/ia64-fix.patch | 14 - patches/hotspot/hs20/params-cast-size_t.patch | 259 - patches/hotspot/hs20/powerpc-stacksize.patch | 39 - patches/hotspot/hs20/sparc-buildfixes.patch | 24 - patches/hotspot/hs20/systemtap.patch | 99 - patches/hotspot/hs20/text-relocations.patch | 60 - patches/hotspot/original/7032388-work_without_cmov_instruction.patch | 152 - patches/hotspot/original/arm.patch | 54 - patches/hotspot/original/gcc-suffix.patch | 29 - patches/hotspot/original/ia64-fix.patch | 28 - patches/hotspot/original/no-precompiled-headers.patch | 33 - patches/hotspot/original/params-cast-size_t.patch | 284 - patches/hotspot/original/sparc-buildfixes.patch | 32 - patches/hotspot/original/systemtap.patch | 97 - patches/hotspot/original/text-relocations.patch | 58 - patches/hotspot/original/too-many-args.patch | 45 - patches/ia64-fix.patch | 14 + patches/jamvm/ignore-unknown-options.patch | 12 - patches/jaxp-serial-version-uid.patch | 51 - patches/jtreg-ChangeDir.patch | 32 + patches/jtreg-ChannelsWrite.patch | 50 + patches/jtreg-EncodedMultiByteChar.patch | 23 + patches/jtreg-FileLoaderTest.patch | 35 + patches/jtreg-FileMap.patch | 23 + patches/jtreg-MappedByteBuffer-Basic.patch | 94 + patches/jtreg-ReadWriteProfileTest.patch | 123 + patches/jtreg-TempBuffer.patch | 60 + patches/jtreg-bug7036148-test.patch | 23 + patches/jtreg-png-reader.patch | 412 ++- patches/nio2.patch | 69 +- patches/openjdk/6578583-modality-broken-vista.patch | 1439 ++++++++++ patches/openjdk/6599601-mark_sun_toolkit_privileged_code.patch | 21 - patches/openjdk/6610244-modal-fatal-error-windows.patch | 121 + patches/openjdk/6623219-Font_canDisplayUpTo_does_not_work.patch | 202 + patches/openjdk/6633275-shaped_translucent_windows.patch | 117 +- patches/openjdk/6679308-Poor_text_rendering_on_translucent_image.patch | 511 +++ patches/openjdk/6693253-security_warning.patch | 25 +- patches/openjdk/6699843-IllegalArgumentException_drawString.patch | 131 + patches/openjdk/6768387-jtable_not_serializable.patch | 104 - patches/openjdk/6769607-modal-hangs.patch | 161 + patches/openjdk/6783910-java_awt_Color_brighter_darker_fix.patch | 139 + patches/openjdk/6785424-SecurityException_locating_physical_fonts.patch | 95 + patches/openjdk/6796786-invalid_FP_identity_transform.patch | 102 + patches/openjdk/6818312-com.sun.awt.SecurityWarning.getSize.patch | 404 ++ patches/openjdk/6918065-Crash_in_Java2D_blit_loop.patch | 56 + patches/openjdk/6956668-misbehavior_of_XOR_operator_with_int.patch | 91 + patches/openjdk/6997495-test_correction_6857159.patch | 20 - patches/openjdk/7008106-WindowOpacity.patch | 18 + patches/openjdk/7029152-String_intrinsics_miss_optimization.patch | 379 ++ patches/openjdk/7029905-demo_applet_html_files.patch | 52 - patches/openjdk/7032388-work_without_cmov_instruction.patch | 173 + patches/openjdk/7036148-npe-null-jmenu-name.patch | 83 + patches/openjdk/7036220-shark_llvm_29_headers.patch | 43 + patches/openjdk/7042040-no_disk_space_check.patch | 112 - patches/openjdk/7042070-Typo_in_Test6796786.patch | 32 + patches/openjdk/7047069-Array_can_dynamically_change_size.patch | 237 + patches/params-cast-size_t.patch | 259 + patches/powerpc-stacksize.patch | 39 + patches/security/20110215/6878713.patch | 138 - patches/sparc-buildfixes.patch | 24 + patches/support_linux_3.patch | 18 + patches/systemtap.patch | 99 + patches/text-relocations.patch | 60 + pulseaudio/src/java/org/classpath/icedtea/pulseaudio/ContextEvent.java | 68 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/ContextListener.java | 2 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Debug.java | 102 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/EventLoop.java | 332 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Operation.java | 184 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioClip.java | 826 ++-- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioDataLine.java | 724 ++-- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioLine.java | 120 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java | 1147 +++--- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixerInfo.java | 28 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixerProvider.java | 32 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioPlaybackLine.java | 72 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioPort.java | 180 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java | 455 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourcePort.java | 68 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java | 582 ++- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetPort.java | 60 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioVolumeControl.java | 86 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/SecurityWrapper.java | 28 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Stream.java | 1289 ++++---- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/StreamBufferAttributes.java | 66 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/StreamSampleSpecification.java | 44 +- pulseaudio/src/native/jni-common.c | 232 +- pulseaudio/src/native/jni-common.h | 22 +- pulseaudio/src/native/org_classpath_icedtea_pulseaudio_ContextEvent.c | 63 + pulseaudio/src/native/org_classpath_icedtea_pulseaudio_EventLoop.c | 298 +- pulseaudio/src/native/org_classpath_icedtea_pulseaudio_Operation.c | 41 +- pulseaudio/src/native/org_classpath_icedtea_pulseaudio_PulseAudioSourcePort.c | 136 +- pulseaudio/src/native/org_classpath_icedtea_pulseaudio_PulseAudioTargetPort.c | 140 +- pulseaudio/src/native/org_classpath_icedtea_pulseaudio_Stream.c | 1188 ++++--- 266 files changed, 11198 insertions(+), 6523 deletions(-) diffs (truncated from 21368 to 500 lines): diff -r e191909a7c6e -r 23404f48955e AUTHORS --- a/AUTHORS Mon May 30 19:21:44 2011 +0100 +++ b/AUTHORS Wed Jul 06 20:45:21 2011 +0100 @@ -8,6 +8,7 @@ Deepak Bhole Tom Callaway Pablo del Campo +Danesh Dadachanji Thomas Fitzsimmons Matthew Flaschen Michael Franz diff -r e191909a7c6e -r 23404f48955e ChangeLog --- a/ChangeLog Mon May 30 19:21:44 2011 +0100 +++ b/ChangeLog Wed Jul 06 20:45:21 2011 +0100 @@ -1,3 +1,468 @@ +2011-07-06 Andrew John Hughes + + * patches/security/20110215/6878713.patch, + * patches/security/20110607/6213702.patch, + * patches/security/20110607/6618658.patch, + * patches/security/20110607/7012520.patch, + * patches/security/20110607/7013519.patch, + * patches/security/20110607/7013969.patch, + * patches/security/20110607/7013971.patch, + * patches/security/20110607/7016495.patch, + * patches/security/20110607/7020198.patch, + * patches/security/20110607/7020373.patch: + Removed; upstream. + * Makefile.am: + (JAXWS_DROP_ZIP): Updatede. + (JAXWS_DROP_SHA256SUM): Likewise. + (JAXP_DROP_ZIP): Likewise. + (JAXP_DROP_SHA256SUM): Likewise. + (SECURITY_PATCHES): Set to empty. + * patches/xjc.patch: Revert to pre-security + patch version (security patch is now part of the + tarball, not a patch) + +2011-07-01 Pavel Tisnovsky + + * Makefile.am: added new patches + * NEWS: updated with backports + * patches/openjdk/6679308-Poor_text_rendering_on_translucent_image.patch: + Backport of 6679308. + +2011-07-01 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/7029152-String_intrinsics_miss_optimization.patch: + Backport of 7029152 fix. + +2011-06-29 Andrew John Hughes + + * NEWS: Updated with latest bug fixes. + +2011-06-29 Andrew John Hughes + + * patches/ecj/jaxws-getdtdtype.patch: + Fix patch to still apply after recent + security updates. + +2011-06-29 Andrew John Hughes + + * acinclude.m4: + (IT_FIND_JAVA): Check that the binary is also + a regular file as well as executable. + (IT_FIND_JAVAH): Likewise. + (IT_FIND_JAR): Likewise. + (IT_FIND_RMIC): Likewise. + (IT_FIND_NATIVE2ASCII): Likewise. + +2011-06-29 Pavel Tisnovsky + + * Makefile.am: added new patches + * NEWS: updated with backports + * patches/openjdk/6796786-invalid_FP_identity_transform.patch: + * patches/openjdk/7042070-Typo_in_Test6796786.patch: + Backport of 6796786 and 7042070 fixes. + +2011-06-29 Pavel Tisnovsky + + * Makefile.am: added new patches + * NEWS: updated with backports + * patches/openjdk/7047069-Array_can_dynamically_change_size.patch: + Backport of 7047069 fix. + +2011-06-28 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/6785424-SecurityException_locating_physical_fonts.patch: + Backport of 6785424 fix. + +2011-06-28 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/6783910-java_awt_Color_brighter_darker_fix.patch: + Backport of 6783910 fix. + +2011-06-28 Andrew John Hughes + + * Makefile.am: Add new patch. + * patches/support_linux_3.patch: + Allow Linux 3* through the HotSpot OS version + filter. + +2011-06-27 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/6623219-Font_canDisplayUpTo_does_not_work.patch + Backport of 6623219 fix. + +2011-06-27 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/6918065-Crash_in_Java2D_blit_loop.patch: + Backport of 6918065 fix. + +2011-06-27 Xerxes R??nby + + JamVM + - Make classlib init functions consistent + warnings. + - Correctly implement sun.misc.Unsafe freeMemory(). + - Move lazy-loading to init function. + - Fix various warnings with -Wall. + - PrintThreadsDump needs "self" as argument. + - CopyMemory, etc. handle negative or truncation in length. + - Extra sun.misc.Unsafe functions. + - Ignore options for jtreg tests. + - Enable shutdownVM to be called with OpenJDK classlib. + - Initial implementation of JVM_FindClassFromBootLoader. + - Fix callJNIMethod on i386 with -fomit-frame-pointer. + - Fix backwards cache conflict resolution code. + - Unify command line options parsing. + - Remove debug printf. + * NEWS: Updated. + * Makefile.am + (ICEDTEA_PATCHES): Remove upstreamed JamVM patch. + (JAMVM_VERSION): Updated JamVM to 2011-06-13 revision. + (JAMVM_SHA256SUM): Updated. + (stamps/jamvm.stamp): + Add -f when creating client symlink to handle repeat builds. + Link the fake libjsig.so to JamVM libjvm.so to work + with latest OpenJDK ALT_HOTSPOT_IMPORT_PATH functionality. + * patches/jamvm/ignore-unknown-options.patch: Removed. + Replaced by upstream, unify command line options parsing, + changeset 1b248439e88ae6cbd1471addc49e2666b8964ced. + +2011-06-24 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/6699843-IllegalArgumentException_drawString.patch: + Backport of 6699843 fix. + +2011-06-24 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/6956668-misbehavior_of_XOR_operator_with_int: + Backport of 6956668 fix. + +2011-06-23 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/7008106-WindowOpacity.patch: + Backport of 7008106 regression test fix. + +2011-06-23 Pavel Tisnovsky + + * Makefile.am: added new patch + * patches/jtreg-MappedByteBuffer-Basic.patch: + Make sure that the regression test + openjdk/jdk/test/java/nio/MappedByteBuffer/Basic.java + deletes all its work files. + +2011-06-22 Pavel Tisnovsky + + * Makefile.am: added new patch + * patches/openjdk/6818312-com.sun.awt.SecurityWarning.getSize.patch: + Backport of 6818312 regression test. + +2011-06-22 Pavel Tisnovsky + + * Makefile.am: Added new patch. + * patches/jtreg-ReadWriteProfileTest.patch: + Added regression test missing from 6733501 backport. + +2011-06-22 Pavel Tisnovsky + + * patches/jtreg-png-reader.patch: + Added new regression test which check if PNG + images read by ImageIO subsytstem contains + proper pixel values. + +2011-06-20 Denis Lila + + * pulseaudio/src/native/org_classpath_icedtea_pulseaudio_Stream.c + (SET_STREAM_ENUM): Add an underscore after java_prefix so that + the produced string matches the names in Stream.java. + +2011-06-20 Denis Lila + + * Makefile.am: Add patch. + * patches/jtreg-bug7036148-test.patch: + Fix regression test. It used to never end, regardless of + success/failure. + +2011-06-20 Denis Lila + + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioDataLine.java + (bufferSize): Remove. + (getBufferSize): Return stream.getBufferSize(). + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java + (connectLine): Improve formatting. + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java + (connectLine): Set up flags to adjust the latency, if needed. + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Stream.java + (bufAttr, bufAttrMutex): New members. + (setBufAttr, bufferAttrCallback): New methods. They both set bufAttr. + (getBufferSize): Return the current buffer size. + (connectForRecording): Add a flags argument to allow callers to chose the + flags. + (stateCallback): When the stream is ready, set the buffer attributes to + the actual ones used by the server. + * pulseaudio/src/native/org_classpath_icedtea_pulseaudio_Stream.c + (buf_attr_changed_callback): New function. + (Java_org_classpath_icedtea_pulseaudio_Stream_native_1pa_1stream_1new): + Set the buffer attribute callback. + +2011-06-17 Denis Lila + + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Stream.java + (FLAG_NOFLAGS, FLAG_START_CORKED, FLAG_INTERPOLATE_TIMING, + FLAG_NOT_MONOTONIC, FLAG_AUTO_TIMING_UPDATE, FLAG_NO_REMAP_CHANNELS, + FLAG_NO_REMIX_CHANNELS, FLAG_FIX_FORMAT, FLAG_FIX_RATE, + FLAG_FIX_CHANNELS, FLAG_DONT_MOVE, FLAG_VARIABLE_RATE, FLAG_PEAK_DETECT, + FLAG_START_MUTED, FLAG_ADJUST_LATENCY, FLAG_EARLY_REQUESTS, + FLAG_DONT_INHIBIT_AUTO_SUSPEND, FLAG_START_UNMUTED, FLAG_FAIL_ON_SUSPEND): + New static long variables mirroring pa_stream_flag_t values. + (STATE_UNCONNECTED, STATE_CREATING, STATE_READY, STATE_FAILED, + STATE_TERMINATED): Add the STATE_ prefix to distinguish them from + the flag variables. + (native_pa_stream_connect_playback, native_pa_stream_connect_record): + Change flags parameter to long. + (connectForPlayback, connectForRecording): Start the stream corked. + Change formatting to make it more readable. + * pulseaudio/src/native/org_classpath_icedtea_pulseaudio_Stream.c + (SET_STREAM_ENUM): Renamed from SET_STREAM_STATE_ENUM, since the + macro could have been used for any PA_STREAM constants, not just + stream states (and indeed, we now use it for flag constants too). + (Java_org_classpath_icedtea_pulseaudio_Stream_init_1constants): + Initialize flag constants in addition to the stream states. + (Java_org_classpath_icedtea_pulseaudio_Stream_native_1pa_1stream_1connect_1playback): + Change flags parameter to jlong (from jint), remove commented out + dead code, remove obsolete comment, and start the stream with whatever + flags were passed in the flags parameter, instead of ignoring that + parameter and using PA_STREAM_START_CORKED. + (Java_org_classpath_icedtea_pulseaudio_Stream_native_1pa_1stream_1connect_1record): + Change flags parameter to jlong (from jint), remove commented out + dead code. + +2011-06-17 Pavel Tisnovsky + + * Makefile.am: added new patch + * patches/jtreg-ChannelsWrite.patch: + Make sure that the regression test + openjdk/jdk/test/java/nio/channels/Channels/Write.java + deletes all its work files. + +2011-06-16 Denis Lila + + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioDataLine.java + (addStreamListeners): Remove this.notifyAll() from + openCloseListener.update; change this.notifyAll() to + PulseAudioDataLine.this.notifyAll() in startedListener.update. + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java + (read): Put fragmentBuffer null check in the synchronized block. + (flush): Make it synchronized to avoid race condition with read(). + +2011-06-16 Denis Lila + + * Makefile.am: Add ContextEvent to the list of pulse audio classes that + need javah run on them. + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/ContextEvent.java + (Type): Remove and replace with... + (UNCONNECTED, CONNECTING, AUTHORIZING, SETTING_NAME, READY, FAILED, + TERMINATED): New static long variables replacing enum Type. + (init_constants): New native method to initialize the above variables. + (checkNativeEnumReturn): Make sure that the input is one of the longs + representing the type of ContextEvent. + (type): Change type from Type to long. + (ContextEvent): Take a long argument, instead of a Type. + (getType): Return a long, not a Type. + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/EventLoop.java + (status): Change from int to long. + (native_set_sink_volume): Remove. It was unimplemented in the JNI side. + (getStatus): Return long instead of int. + (update): Replace int argument with long argument. Remove the switch + statement. + (setVolume): Remove. Unused. + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Operation.java + (State): Remove and replace with... + (Running, Done, Cancelled): Static longs, enumerating the possible + operation states. + (init_constants): New native method to initialize the above variables. + (checkNativeOperationState): Make sure that the input is one of the longs + representing the operation state. + (native_get_state): Change return type from int to long. + (getState): Change return type to long; remove switch. + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioDataLine.java + Remove the names of enums from the names of constants since most of them + were changed to static longs. + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java + Same changes as in PulseAudioDataLine.java. + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Stream.java + (State): Remove and replace with... + (UNCONNECTED, CREATING, READY, FAILED, TERMINATED): New static long variables + replacing enum Type. + (init_constants): New native method to initialize the above variables. + (checkNativeStreamState): Make sure that the input is one of the longs + representing the kind of StreamState. + (native_pa_stream_get_state): Change the return from int to long. + (getState): Remove the switch. + * pulseaudio/src/native/jni-common.h + (SET_JAVA_STATIC_LONG_FIELD_TO_PA_ENUM): Macro that sets one of the java + static longs to the corresponding pa_constant. + * pulseaudio/src/native/org_classpath_icedtea_pulseaudio_ContextEvent.c + New file. + (SET_CONTEXT_ENUM): Macro that sets the ContextEvent types. + (Java_org_classpath_icedtea_pulseaudio_ContextEvent_init_1constants): + Implementation of ContextEvent.init_constants. + * pulseaudio/src/native/org_classpath_icedtea_pulseaudio_EventLoop.c + (context_change_callback): Change the fourth argument of GetMethodID + to "(J)V" to reflect the change in the signature of EventLoop.update. + * pulseaudio/src/native/org_classpath_icedtea_pulseaudio_Operation.c + (SET_OP_ENUM): Macro that sets the operation types. + (Java_org_classpath_icedtea_pulseaudio_Operation_init_1constants): + Implementation of Operation.init_constants. + (Java_org_classpath_icedtea_pulseaudio_Operation_native_1get_1state): + Change return type to jlong. + * pulseaudio/src/native/org_classpath_icedtea_pulseaudio_Stream.c + (SET_STREAM_ENUM): Macro that sets the stream states. + (Java_org_classpath_icedtea_pulseaudio_Stream_init_1constants): + Implementation of Stream.init_constants. + (Java_org_classpath_icedtea_pulseaudio_Stream_native_1pa_1stream_1get_1state): + Change return type to jlong. + +2011-06-16 Pavel Tisnovsky + + * Makefile.am: fixed indentation (spaces2tabs) + +2011-06-16 Pavel Tisnovsky + + * Makefile.am: added new patch + * patches/jtreg-FileMap.patch: + Make sure that the regression test + openjdk/jdk/test/sun/net/www/protocol/file/FileMap.java + deletes all its work files. + +2011-06-15 Danesh Dadachanji + + * AUTHORS: Added myself. + * Makefile.am: Use explicit xml-commons locations if necessary. + * acinclude.m4: Added explicit xml-commons check. + (IT_CHECK_IF_INSTANTIABLE): Added generic macro to instantiate any + class. Paramaters are the define, name of the class, paramaters + for instatiation and (optional) classpath. + * configure.ac: Invoke IT_FIND_XML_COMMONS_APIS_JAR macro after + IT_FIND_XERCES2_JAR, assigns XML_COMMONS_APIS_JAR if necessary. + +2011-06-15 Denis Lila + + * Makefile.am: Add back the -classpath option to javah in + building the pulse audio header files. The bootstrap javah + doesn't recognize -J-Xbootclasspath/p: so it couldn't find + the classfiles. + +2011-06-15 Pavel Tisnovsky + + * Makefile.am: added new patch + * patches/jtreg-EncodedMultiByteChar.patch: + Make sure that the regression test + openjdk/jdk/test/sun/net/www/protocol/file/EncodedMultiByteChar.java + deletes all its work files. + +2011-06-14 Pavel Tisnovsky + + * Makefile.am: added new patch + * patches/jtreg-FileLoaderTest.patch: + Make sure that the regression test + openjdk/jdk/test/sun/misc/URLClassPath/FileLoaderTest.java + deletes all its work files. + +2011-06-14 Denis Lila + + * Makefile.am: Add patch. + * NEWS: Update with backports. + * patches/openjdk/7036148-npe-null-jmenu-name.patch: + Backport of S7036148. Fixes RH712211 too. + +2011-06-14 Pavel Tisnovsky + + * Makefile.am: added new patch + * patches/jtreg-TempBuffer.patch: + Make sure that the regression test + openjdk/jdk/test/sun/nio/ch/TempBuffer.java + deletes all its work files. + +2011-06-14 Pavel Tisnovsky + + * Makefile.am: added new patch + * patches/jtreg-ChangeDir.patch: + Make sure that the regression test + openjdk/jdk/test/tools/jar/ChangeDir.java + deletes all its work files. + +2011-05-23 Andrew John Hughes + + * Makefile.am: Add security patches. + * patches/nio2.patch: Rerolled post-security + patching. + * patches/security/20110607/6213702.patch, + * patches/security/20110607/6618658.patch, + * patches/security/20110607/7012520.patch, + * patches/security/20110607/7013519.patch, + * patches/security/20110607/7013969.patch, + * patches/security/20110607/7013971.patch, + * patches/security/20110607/7016495.patch, + * patches/security/20110607/7020198.patch, + * patches/security/20110607/7020373.patch: + New security patches. + * patches/xjc.patch: Rerolled after 7013971. + +2011-06-10 Denis Lila + + * pulseaudio/*: Fix whitespace. + +2011-06-10 Denis Lila + + * Makefile.am + (stamps/pulse-java-headers.stamp): Prepend the java build directory + to the boot class path to avoid generating headers for the system + pulse-java classes. + +2011-06-10 Pavel Tisnovsky + + * patches/font-rhel.patch: + * patches/f14-fonts.patch: + * patches/fonts-gentoo.patch: + Patch updated: use only major RHEL version, not minor one. + +2011-06-09 Denis Lila + + * Makefile.am: Apply patches. + * NEWS: Update with backports. + * patches/openjdk/6578583-modality-broken-vista.patch: + * patches/openjdk/6610244-modal-fatal-error-windows.patch: + * patches/openjdk/6769607-modal-hangs.patch: + New patches. The last fixes PR677. The other two are + necessary for the last to fully apply. + * patches/openjdk/6693253-security_warning.patch: + Replsace the awt_Dialog.cpp hunk with the corresponding hunk + from the OpenJDK7 changeset of which this patch is a backport. + Without this change, this patch doesn't apply unless the + previous 3 are removed. + +2011-06-09 Pavel Tisnovsky + + * Makefile.am: Added new patch + * patches/fonts-rhel-version.patch: + Patch which ensures, that only one fontconfig file + will be needed on particular RHEL version + (ie. only one file for RHEL 6.0, RHEL 6.1 and RHEL 6.2) + 2011-05-30 Andrew John Hughes * patches/openjdk/7036220-shark_llvm_29_headers.patch: @@ -36,6 +501,54 @@ make the test compatible with OpenJDK7/IcedTea7, disabling printing unnecessary information to error output. +2011-05-18 Andrew John Hughes + + * patches/hotspot/hs20/7032388-work_without_cmov_instruction.patch, + * patches/hotspot/hs20/arm.patch, + * patches/hotspot/hs20/gcc-suffix.patch, + * patches/hotspot/hs20/ia64-fix.patch, + * patches/hotspot/hs20/params-cast-size_t.patch, + * patches/hotspot/hs20/powerpc-stacksize.patch, + * patches/hotspot/hs20/sparc-buildfixes.patch, + * patches/hotspot/hs20/systemtap.patch, + * patches/hotspot/hs20/text-relocations.patch: + Moved to main tree. + * patches/hotspot/original/7032388-work_without_cmov_instruction.patch, From smohamma at redhat.com Wed Jul 6 13:21:48 2011 From: smohamma at redhat.com (Saad Mohammad) Date: Wed, 6 Jul 2011 16:21:48 -0400 (EDT) Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E14B940.6080109@redhat.com> Message-ID: <599542361.239417.1309983708911.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> My previous email did not have proper indentation for my changelog. There is something wrong with my email client. :\ 2011-07-06 Saad Mohammad * netx/net/sourceforge/jnlp/JNLPMatcher.java: Created this class to compare signed JNLP file with the launching JNLP file. When comparing, it has support for both method of signing of a JNLP file: APPLICATION_TEMPLATE.JNLP and APPLICATION.JNLP * netx/net/sourceforge/jnlp/JNLPMatcherException.java: Added a custom exception: JNLPMatcherException. Thrown if verifying signed JNLP files fails * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: Added JNLPMatcherException to methods that throws the custom exception. (initializeResources): Checks if there are any signed JNLP files within the signed jars. If signed JNLP file fails to match or fails to be verified, the application throws a JNLPMatcherException. * netx/net/sourceforge/jnlp/Node.java: Created a method that retrieves the attribute names of the Node and stores it in private string [] member. The method returns the attribute names. * tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java: This is a test case that tests the functionality of JNLPMatcher. It tests the algorithm with a variety of template and application JNLP files. * tests/netx/unit/net/sourceforge/jnlp/launchApp.jnlp: Launching JNLP file: This is the launching JNLP file used to compare with templates and application JNLP files in JNLPMatcherTest.java * tests/netx/unit/net/sourceforge/jnlp/templates/template0.jnlp: Test Template JNLP file: Contains CDATA * tests/netx/unit/net/sourceforge/jnlp/templates/template1.jnlp: Test Template JNLP file: An exact duplicate of the launching JNLP file * tests/netx/unit/net/sourceforge/jnlp/templates/template2.jnlp: Test Template JNLP file: Contains wildchars as attribute/element values * tests/netx/unit/net/sourceforge/jnlp/templates/template3.jnlp: Test Template JNLP file: Different order of element/attributes (but same value) * tests/netx/unit/net/sourceforge/jnlp/templates/template4.jnlp: Test Template JNLP file: Contains wildchars as values of ALL elements and attribute * tests/netx/unit/net/sourceforge/jnlp/templates/template5.jnlp: Test Template JNLP file: Contains comments * tests/netx/unit/net/sourceforge/jnlp/templates/template6.jnlp: Test Template JNLP file: Contains different attribute and element values * tests/netx/unit/net/sourceforge/jnlp/templates/template7.jnlp: Test Template JNLP file: Contains additional children in element * tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp: Test Template JNLP file: Contains fewer children in element * tests/netx/unit/net/sourceforge/jnlp/templates/template9.jnlp: Test Template JNLP file: All values are different from the launching JNLP file * tests/netx/unit/net/sourceforge/jnlp/application/application0.jnlp: Test Application JNLP file: Contains CDATA * tests/netx/unit/net/sourceforge/jnlp/application/application1.jnlp: Test Application JNLP file: An exact duplicate of the launching JNLP file * tests/netx/unit/net/sourceforge/jnlp/application/application2.jnlp: Test Application JNLP file: Different order of element/attributes (but same value) * tests/netx/unit/net/sourceforge/jnlp/application/application3.jnlp: Test Application JNLP file: Contains comments * tests/netx/unit/net/sourceforge/jnlp/application/application4.jnlp: Test Application JNLP file: Contains wildchars as attribute/element values * tests/netx/unit/net/sourceforge/jnlp/application/application5.jnlp: Test Application JNLP file: Contains a different attribute (codebase) value * tests/netx/unit/net/sourceforge/jnlp/application/application6.jnlp: Test Application JNLP file: Contains additional children in element * tests/netx/unit/net/sourceforge/jnlp/application/application7.jnlp: Test Application JNLP file: Contains fewer children in element * tests/netx/unit/net/sourceforge/jnlp/application/application8.jnlp: Test Application JNLP file: All values are different from the launching JNLP file * Makefile.am: (run-netx-unit-tests) Creates directories and copies resources (JNLP files) to test.build before running unit test: JNLPMatcherTest From andrew at icedtea.classpath.org Wed Jul 6 15:24:37 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 06 Jul 2011 22:24:37 +0000 Subject: /hg/icedtea6: 2 new changesets Message-ID: changeset bfbd7ccaa20c in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=bfbd7ccaa20c author: Andrew John Hughes date: Wed Jul 06 20:55:06 2011 +0100 Normalise whitespace in JPEG code. 2011-07-06 Andrew John Hughes * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/ codec/jpeg/ImageFormatException.java, * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg /JPEGCodec.java, * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg /JPEGDecodeParam.java, * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg /JPEGEncodeParam.java, * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg /JPEGHuffmanTable.java, * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg /JPEGImageDecoder.java, * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg /JPEGImageEncoder.java, * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg /JPEGQTable.java, * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg /TruncatedFileException.java, * overlays/jpeg/openjdk/jdk/src/share/classes/sun/awt/image/codec/JPEG ImageDecoderImpl.java, * overlays/jpeg/openjdk/jdk/src/share/classes/sun/awt/image/codec/JPEG ImageEncoderImpl.java, * overlays/jpeg/openjdk/jdk/src/share/classes/sun/awt/image/codec/JPEG Param.java: Normalise whitespace using Oracle normaliser. changeset 944778c61e3c in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=944778c61e3c author: Andrew John Hughes date: Wed Jul 06 23:24:30 2011 +0100 PR icedtea/752: Increase binary compatibility of JPEG classes. 2011-07-06 Andrew John Hughes Make JPEG classes more binary compatible with Oracle versions. * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg /ImageFormatException.java: Extend RuntimeException. (ImageFormatException()): Call superclass constructor. * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg /JPEGCodec.java: (JPEGCodec()): Make explicit private constructor to prevent implicit public one. * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg /JPEGHuffmanTable.java: Don't extend javax.imageio.plugins.jpeg.JPEGHuffmanTable. (lengths): Added. (symbols): Added. (JPEGHuffmanTable(short[], short[])): Perform checks outlined in documentation. (getLengths()): Added. (getSymbols()): Return symbols. * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg /JPEGImageEncoder.java: (getDefaultColorId(ColorModel)): Fix typo (was DefaultColorID). * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg /TruncatedFileException.java: (TruncatedFileException(BufferedImage)): Add missing constructor. (TruncatedFileException(Raster)): Likewise. (getBufferedImage()): Implemented. (getRaster()): Add missing method. (TruncatedFileException()): Removed. (TruncatedFileException(String)): Likewise. * overlays/jpeg/openjdk/jdk/src/share/classes/sun/awt/image/codec/JPEG ImageDecoderImpl.java: (decodeAsBufferedImage()): Remove unneeded qualification and convert from com.sun JPEGHuffmanTable to javax.imageio one. * overlays/jpeg/openjdk/jdk/src/share/classes/sun/awt/image/codec/JPEG ImageEncoderImpl.java: (getDefaultColorId(ColorModel)): Fix typo (was DefaultColorID). * NEWS: Updated. diffstat: ChangeLog | 48 + NEWS | 1 + overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/ImageFormatException.java | 20 +- overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGCodec.java | 118 +- overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGDecodeParam.java | 74 +- overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGEncodeParam.java | 60 +- overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGHuffmanTable.java | 70 +- overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGImageDecoder.java | 14 +- overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGImageEncoder.java | 40 +- overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGQTable.java | 64 +- overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/TruncatedFileException.java | 48 +- overlays/jpeg/openjdk/jdk/src/share/classes/sun/awt/image/codec/JPEGImageDecoderImpl.java | 65 +- overlays/jpeg/openjdk/jdk/src/share/classes/sun/awt/image/codec/JPEGImageEncoderImpl.java | 154 +- overlays/jpeg/openjdk/jdk/src/share/classes/sun/awt/image/codec/JPEGParam.java | 846 +++++----- 14 files changed, 875 insertions(+), 747 deletions(-) diffs (truncated from 2788 to 500 lines): diff -r 73e0d37b9ec3 -r 944778c61e3c ChangeLog --- a/ChangeLog Fri Jul 01 14:41:45 2011 +0200 +++ b/ChangeLog Wed Jul 06 23:24:30 2011 +0100 @@ -1,3 +1,51 @@ +2011-07-06 Andrew John Hughes + + Make JPEG classes more binary compatible with + Oracle versions. + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/ImageFormatException.java: + Extend RuntimeException. + (ImageFormatException()): Call superclass constructor. + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGCodec.java: + (JPEGCodec()): Make explicit private constructor to prevent implicit public one. + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGHuffmanTable.java: + Don't extend javax.imageio.plugins.jpeg.JPEGHuffmanTable. + (lengths): Added. + (symbols): Added. + (JPEGHuffmanTable(short[], short[])): Perform checks outlined in documentation. + (getLengths()): Added. + (getSymbols()): Return symbols. + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGImageEncoder.java: + (getDefaultColorId(ColorModel)): Fix typo (was DefaultColorID). + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/TruncatedFileException.java: + (TruncatedFileException(BufferedImage)): Add missing constructor. + (TruncatedFileException(Raster)): Likewise. + (getBufferedImage()): Implemented. + (getRaster()): Add missing method. + (TruncatedFileException()): Removed. + (TruncatedFileException(String)): Likewise. + * overlays/jpeg/openjdk/jdk/src/share/classes/sun/awt/image/codec/JPEGImageDecoderImpl.java: + (decodeAsBufferedImage()): Remove unneeded qualification and convert from com.sun JPEGHuffmanTable + to javax.imageio one. + * overlays/jpeg/openjdk/jdk/src/share/classes/sun/awt/image/codec/JPEGImageEncoderImpl.java: + (getDefaultColorId(ColorModel)): Fix typo (was DefaultColorID). + * NEWS: Updated. + +2011-07-06 Andrew John Hughes + + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/ImageFormatException.java, + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGCodec.java, + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGDecodeParam.java, + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGEncodeParam.java, + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGHuffmanTable.java, + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGImageDecoder.java, + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGImageEncoder.java, + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGQTable.java, + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/TruncatedFileException.java, + * overlays/jpeg/openjdk/jdk/src/share/classes/sun/awt/image/codec/JPEGImageDecoderImpl.java, + * overlays/jpeg/openjdk/jdk/src/share/classes/sun/awt/image/codec/JPEGImageEncoderImpl.java, + * overlays/jpeg/openjdk/jdk/src/share/classes/sun/awt/image/codec/JPEGParam.java: + Normalise whitespace using Oracle normaliser. + 2011-07-01 Pavel Tisnovsky * Makefile.am: added new patches diff -r 73e0d37b9ec3 -r 944778c61e3c NEWS --- a/NEWS Fri Jul 01 14:41:45 2011 +0200 +++ b/NEWS Wed Jul 06 23:24:30 2011 +0100 @@ -52,6 +52,7 @@ - S7031385, PR680: Incorrect register allocation in orderAccess_linux_x86.inline.hpp - PR748: Icedtea6 fails to build with Linux 3.0. - PR744: icedtea6-1.10.2 : patching error + - PR752: ImageFormatException extends Exception not RuntimeException * Allow selection of test suites using the jtreg_checks argument e.g. jtreg_checks="langtools" * CACAO - Threadlist & threadobject improvements. diff -r 73e0d37b9ec3 -r 944778c61e3c overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/ImageFormatException.java --- a/overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/ImageFormatException.java Fri Jul 01 14:41:45 2011 +0200 +++ b/overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/ImageFormatException.java Wed Jul 06 23:24:30 2011 +0100 @@ -1,28 +1,29 @@ /* ImageFormatException.java * Copyright (C) 2007 Matthew Flaschen - * + * Copyright (C) 2011 Red Hat, Inc. + * * This file is part of IcedTea - * + * * IcedTea is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; 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 GNU Classpath; 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 @@ -38,12 +39,13 @@ package com.sun.image.codec.jpeg; -public class ImageFormatException extends Exception { +public class ImageFormatException extends RuntimeException { + public ImageFormatException() { - this(""); + super(); } public ImageFormatException(String s) { - super(s); + super(s); } } diff -r 73e0d37b9ec3 -r 944778c61e3c overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGCodec.java --- a/overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGCodec.java Fri Jul 01 14:41:45 2011 +0200 +++ b/overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGCodec.java Wed Jul 06 23:24:30 2011 +0100 @@ -1,29 +1,29 @@ /* JPEGCodec.java -- * Copyright (C) 2007 Free Software Foundation, Inc. * Copyright (C) 2007 Matthew Flaschen - * + * * This file is part of GNU Classpath. - * + * * GNU Classpath 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. - * + * * GNU Classpath 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 GNU Classpath; 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 @@ -56,136 +56,138 @@ */ public class JPEGCodec { + private JPEGCodec() {} + /** * This creates an instance of a JPEGImageDecoder that can be used to decode * JPEG Data streams. - * + * * @param src * @return */ public static JPEGImageDecoder createJPEGDecoder(InputStream src) { - return new JPEGImageDecoderImpl(src); + return new JPEGImageDecoderImpl(src); } /** * This creates an instance of a JPEGImageDecoder that can be used to decode * JPEG Data streams. - * + * * @param src * @param jdp * @return */ public static JPEGImageDecoder createJPEGDecoder(InputStream src, - JPEGDecodeParam jdp) { - return new JPEGImageDecoderImpl(src, jdp); + JPEGDecodeParam jdp) { + return new JPEGImageDecoderImpl(src, jdp); } /** * This creates an instance of a JPEGImageEncoder that can be used to encode * image data as JPEG Data streams. - * + * * @param os * @return */ public static JPEGImageEncoder createJPEGEncoder(OutputStream os) { - return new JPEGImageEncoderImpl(os); + return new JPEGImageEncoderImpl(os); } /** * This creates an instance of a JPEGImageEncoder that can be used to encode * image data as JPEG Data streams. - * + * * @param dest * @param jep * @return */ public static JPEGImageEncoder createJPEGEncoder(OutputStream dest, - JPEGEncodeParam jep) { - return new JPEGImageEncoderImpl(dest, jep); + JPEGEncodeParam jep) { + return new JPEGImageEncoderImpl(dest, jep); } /** * This is a factory method for creating JPEGEncodeParam objects. - * + * * @param bi * @return */ public static JPEGEncodeParam getDefaultJPEGEncodeParam(BufferedImage bi) { - return getDefaultJPEGEncodeParam(bi.getRaster(), - getDefaultColorID(bi.getColorModel())); + return getDefaultJPEGEncodeParam(bi.getRaster(), + getDefaultColorID(bi.getColorModel())); } /** * This is a factory method for creating JPEGEncodeParam objects. - * + * * @param numBands * @param colorID * @return */ public static JPEGEncodeParam getDefaultJPEGEncodeParam(int numBands, - int colorID) { - return new JPEGParam(colorID, numBands); + int colorID) { + return new JPEGParam(colorID, numBands); } /** * This is a factory method for creating a JPEGEncodeParam from a * JPEGDecodeParam. - * + * * @param jdp * @return */ public static JPEGEncodeParam getDefaultJPEGEncodeParam(JPEGDecodeParam jdp) { - return new JPEGParam(jdp); + return new JPEGParam(jdp); } /** * This is a factory method for creating JPEGEncodeParam objects. - * + * * @param ras * @param colorID * @return */ public static JPEGEncodeParam getDefaultJPEGEncodeParam(Raster ras, - int colorID) { - return getDefaultJPEGEncodeParam(ras.getNumBands(), colorID); + int colorID) { + return getDefaultJPEGEncodeParam(ras.getNumBands(), colorID); } private static int getDefaultColorID(ColorModel cm) { - ColorSpace cs = cm.getColorSpace(); - int type = cs.getType(); - int id = -1; - switch (type) { - case ColorSpace.TYPE_GRAY: - id = JPEGEncodeParam.COLOR_ID_GRAY; - break; + ColorSpace cs = cm.getColorSpace(); + int type = cs.getType(); + int id = -1; + switch (type) { + case ColorSpace.TYPE_GRAY: + id = JPEGEncodeParam.COLOR_ID_GRAY; + break; - case ColorSpace.TYPE_RGB: - id = cm.hasAlpha() ? JPEGEncodeParam.COLOR_ID_RGBA - : JPEGEncodeParam.COLOR_ID_RGB; + case ColorSpace.TYPE_RGB: + id = cm.hasAlpha() ? JPEGEncodeParam.COLOR_ID_RGBA + : JPEGEncodeParam.COLOR_ID_RGB; - case ColorSpace.TYPE_YCbCr: - try { - if (cs == ColorSpace.getInstance(ColorSpace.CS_PYCC)) { - id = cm.hasAlpha() ? JPEGEncodeParam.COLOR_ID_PYCCA - : JPEGEncodeParam.COLOR_ID_PYCC; - } - } catch (IllegalArgumentException e) { - /* We know it isn't PYCC type, nothing to handle */ - } - if (id == -1) { - id = cm.hasAlpha() ? JPEGEncodeParam.COLOR_ID_YCbCrA - : JPEGEncodeParam.COLOR_ID_YCbCr; - } - break; + case ColorSpace.TYPE_YCbCr: + try { + if (cs == ColorSpace.getInstance(ColorSpace.CS_PYCC)) { + id = cm.hasAlpha() ? JPEGEncodeParam.COLOR_ID_PYCCA + : JPEGEncodeParam.COLOR_ID_PYCC; + } + } catch (IllegalArgumentException e) { + /* We know it isn't PYCC type, nothing to handle */ + } + if (id == -1) { + id = cm.hasAlpha() ? JPEGEncodeParam.COLOR_ID_YCbCrA + : JPEGEncodeParam.COLOR_ID_YCbCr; + } + break; - case ColorSpace.TYPE_CMYK: - id = JPEGEncodeParam.COLOR_ID_CMYK; - break; + case ColorSpace.TYPE_CMYK: + id = JPEGEncodeParam.COLOR_ID_CMYK; + break; - default: - id = JPEGEncodeParam.COLOR_ID_UNKNOWN; - } + default: + id = JPEGEncodeParam.COLOR_ID_UNKNOWN; + } - return id; + return id; } } diff -r 73e0d37b9ec3 -r 944778c61e3c overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGDecodeParam.java --- a/overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGDecodeParam.java Fri Jul 01 14:41:45 2011 +0200 +++ b/overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGDecodeParam.java Wed Jul 06 23:24:30 2011 +0100 @@ -1,29 +1,29 @@ /* JPEGImageDecoder.java -- * Copyright (C) 2007 Free Software Foundation, Inc. * Copyright (C) 2007 Matthew Flaschen - * + * * This file is part of GNU Classpath. - * + * * GNU Classpath 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. - * + * * GNU Classpath 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 GNU Classpath; 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 @@ -72,20 +72,20 @@ * with the BufferedImage returned rather than make assumptions. *

* DECODING: - * + * *
- * JPEG (Encoded) Color ID   BufferedImage ColorSpace 
- * =======================   ======================== 
- * COLOR_ID_UNKNOWN          ** Invalid ** 
+ * JPEG (Encoded) Color ID   BufferedImage ColorSpace
+ * =======================   ========================
+ * COLOR_ID_UNKNOWN          ** Invalid **
  * COLOR_ID_GRAY             CS_GRAY
- * COLOR_ID_RGB              CS_sRGB 
- * COLOR_ID_YCbCr            CS_sRGB 
+ * COLOR_ID_RGB              CS_sRGB
+ * COLOR_ID_YCbCr            CS_sRGB
  * COLOR_ID_CMYK             ** Invalid **
- * COLOR_ID_PYCC             CS_PYCC 
- * COLOR_ID_RGBA             CS_sRGB (w/ alpha) 
- * COLOR_ID_YCbCrA           CS_sRGB (w/ alpha) 
+ * COLOR_ID_PYCC             CS_PYCC
+ * COLOR_ID_RGBA             CS_sRGB (w/ alpha)
+ * COLOR_ID_YCbCrA           CS_sRGB (w/ alpha)
  * COLOR_ID_RGBA_INVERTED    ** Invalid **
- * COLOR_ID_YCbCrA_INVERTED  ** Invalid ** 
+ * COLOR_ID_YCbCrA_INVERTED  ** Invalid **
  * COLOR_ID_PYCCA            CS_PYCC (w/ alpha)
  * COLOR_ID_YCCK             ** Invalid **
  * 
@@ -173,14 +173,14 @@ /** * Get the image width. - * + * * @return int the width of the image data in pixels. */ public int getWidth(); /** * Get the image height. - * + * * @return The height of the image data in pixels. */ public int getHeight(); @@ -191,7 +191,7 @@ * output pixel. This is distinct from the way the JPEG to each output * pixel. This is distinct from the way the JPEG standard defines this * quantity, because fractional subsampling factors are not allowed. - * + * * @param component * The component of the encoded image to return the subsampling * factor for. @@ -205,7 +205,7 @@ * output pixel. This is distinct from the way the JPEG to each output * pixel. This is distinct from the way the JPEG standard defines this * quantity, because fractional subsampling factors are not allowed. - * + * * @param component * The component of the encoded image to return the subsampling * factor for. @@ -216,7 +216,7 @@ /** * Returns the coefficient quantization tables or NULL if not defined. * tableNum must range in value from 0 - 3. - * + * * @param tableNum * the index of the table to be returned. * @return Quantization table stored at index tableNum. @@ -225,7 +225,7 @@ /** * Returns the Quantization table for the requested component. - * + * * @param component * the image component of interest. * @return Quantization table associated with component @@ -234,7 +234,7 @@ /** * Returns the DC Huffman coding table requested or null if not defined - * + * * @param tableNum * the index of the table to be returned. * @return Huffman table stored at index tableNum. @@ -243,7 +243,7 @@ /** * Returns the DC Huffman coding table for the requested component. - * + * * @param component * the image component of interest. * @return Huffman table associated with component @@ -252,7 +252,7 @@ /** * Returns the AC Huffman coding table requested or null if not defined - * + * * @param tableNum From bugzilla-daemon at icedtea.classpath.org Wed Jul 6 15:36:15 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 06 Jul 2011 22:36:15 +0000 Subject: [Bug 706] b136 fails to build with gas trunk 20110501 on ix86 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=706 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED --- Comment #2 from Andrew John Hughes 2011-07-06 22:36:15 --- Closing; IcedTea7 uses b143 now. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From ptisnovs at icedtea.classpath.org Thu Jul 7 02:47:19 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 07 Jul 2011 09:47:19 +0000 Subject: /hg/icedtea6: Fixed test location (added missing prefix 'jdk' in... Message-ID: changeset 922f35a6bf90 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=922f35a6bf90 author: ptisnovs date: Thu Jul 07 11:47:06 2011 +0200 Fixed test location (added missing prefix 'jdk' into path). diffstat: ChangeLog | 5 +++++ patches/openjdk/6679308-Poor_text_rendering_on_translucent_image.patch | 1 - 2 files changed, 5 insertions(+), 1 deletions(-) diffs (24 lines): diff -r 944778c61e3c -r 922f35a6bf90 ChangeLog --- a/ChangeLog Wed Jul 06 23:24:30 2011 +0100 +++ b/ChangeLog Thu Jul 07 11:47:06 2011 +0200 @@ -1,3 +1,8 @@ +2011-07-07 Pavel Tisnovsky + + * patches/openjdk/6679308-Poor_text_rendering_on_translucent_image.patch: + Fixed test location (added missing prefix 'jdk' into path). + 2011-07-06 Andrew John Hughes Make JPEG classes more binary compatible with diff -r 944778c61e3c -r 922f35a6bf90 patches/openjdk/6679308-Poor_text_rendering_on_translucent_image.patch --- a/patches/openjdk/6679308-Poor_text_rendering_on_translucent_image.patch Wed Jul 06 23:24:30 2011 +0100 +++ b/patches/openjdk/6679308-Poor_text_rendering_on_translucent_image.patch Thu Jul 07 11:47:06 2011 +0200 @@ -425,7 +425,7 @@ } diff -r f50304904b8f -r d7accc312aec test/java/awt/Graphics2D/DrawString/AlphaSurfaceText.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ openjdk/test/java/awt/Graphics2D/DrawString/AlphaSurfaceText.java Mon Apr 28 15:57:46 2008 -0700 ++++ openjdk/jdk/test/java/awt/Graphics2D/DrawString/AlphaSurfaceText.java Mon Apr 28 15:57:46 2008 -0700 @@ -0,0 +1,106 @@ +/* + * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved. From jvanek at redhat.com Thu Jul 7 02:57:57 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 07 Jul 2011 11:57:57 +0200 Subject: RFC: Separation of JTreg tool into independent project In-Reply-To: <20110705011948.GC17947@shelob.middle-earth.co.uk> References: <4E11B0E3.7040605@centrum.cz> <20110705011948.GC17947@shelob.middle-earth.co.uk> Message-ID: <4E158325.5070807@redhat.com> On 07/05/2011 03:19 AM, Andrew John Hughes wrote: > On Mon, Jul 04, 2011 at 02:24:03PM +0200, Pavel Tisnovsky wrote: >> Hi all, >> >> some time ago I discussed with Andrew John Hughes about the separation >> of JTreg tool from the IcedTea6 and IcedTea7 projects. In summary (ie >> how I understand this task): JTreg should be developed as independent >> project and in the future they should be synchronized with recent JTreg >> version (used by Oracle guys AFAIK). >> > > Yes, but that's not what this patch seems to do. It just moves the source > code out of the tree into a zip somewhere. I was envisaging jtreg being > a separate project like the visualvm one with its own build infrastructure. > You'd then point configure at an installed jtreg.jar. That could be built > from the IcedTea jtreg project or alternatively, you could use the one > Oracle provide if you were willing to accept the proprietary licensing > this entails. When you are writing "like visualvm" you mean also specfile? I guess (and hope) not - as I do not see any reason why to make an distribution package for this suite. For the rest - you suggest to have hg repository beside icedteas, inside jtreg sources with its makefile.am and configure scripts and possible patches. Yes? Tests itself will remain in openjdk. (?) Build of icedtea will remain untouched unless some "test yourself" will be enabled. In case of enabled, it will download some released tarball and will use it [rfc]. In similar scenarios I will be happy to have jtreg in separate "package". > >> In the attachment there's very first version of patched Makefile.am from >> IcedTea6 HEAD. When user call command 'make jtreg' from command line, >> archive containing stable version of JTreg tool sources is downloaded >> into 'drops/' subdirectory, then this archive is unzipped into 'test/' >> subdirectory and then JTreg is compiled& run as usual. >> >> This functionality is similar as in the case of JAXP and JAXWS - these >> two parts of JDK are also separated from JDK sources. >> > > Yes, and it's one of the most annoying things Oracle have ever done, as > there's no change visibility. I've been thinking about reverting it > in the IcedTea tree so at least we can see the changes between zips > if not at the changeset level. > >> What do you think about this solution (which could be the same for >> IcedTea6 and IcedTea7, also *probably* for IcedTea-web)? >> > > Why would IcedTea-Web need jtreg? IcedTea-web do not have jtreg, but have its own set of unit-tests and reproducers-tests which are worthy to be run in daily report. Now it is some 40 tests together, and its grow-rate will not be to fast, so for now I do not thing it is good idea to separate them. They are run as 'make check' and 'make run-netx-dist-tests' commands. > >> Cheers, >> Pavel Regards J. From jvanek at redhat.com Thu Jul 7 02:59:41 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 07 Jul 2011 11:59:41 +0200 Subject: [ping] [RFC] Re: [RFC] Re: RFC: make IcedTea-web to be compatible with RHEL5 libraries Message-ID: <4E15838D.2020509@redhat.com> -------- Original Message -------- Subject: [RFC] Re: [RFC] Re: RFC: make IcedTea-web to be compatible with RHEL5 libraries Date: Thu, 30 Jun 2011 13:40:03 +0200 From: Jiri Vanek To: Andrew John Hughes CC: distro-pkg-dev at openjdk.java.net Based also on http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2011-June/014879.html Hi! This patch is another attempt o make icedtea-web buildable on rhel 5 with older libraries. Before build of plugin itself is started, then testing c++ program is tried to be linked with same options. If this compilation fails, then original IcedTeaNPPlugin.cc is backuped, glibBuildable.patch is applied to IcedTeaNPPlugin.cc and then plugin is linked. During clean-plugin original IcedTeaNPPlugin.cc is restored from backup (and when test application is compiled, then this binary is deleted, also backup is delete) Please, when you will ask me to include this "solution" more to configure (or autotools or anywhere) then I will need a little bit of help. cc - Deepak as maintainer of icedtea-web, Andrew as head of idea, Pavel as author of original patch changelog : Makefile.am: added PLUGIN_TOBEPATCHED* variables to work with patched file, TESTGLIBS* variables to work with testing code (stamps/patch-for-glib): new goal to test compilation and patch IcedTeaNPPlugin.cc if necessary (clean-IcedTeaPlugin): added deleting of compiled test, reverting patched file,and deleting backup of it. (stamps/plugin.stamp): now depends on stamps/patch-for-glib glibBuildable.patch: new file with patch to plugin/icedteanp/IcedTeaNPPlugin.cc testGlibs.cc: testing file which not-successful compilation will leed to patching of IcedTeaNPPlugin.cc ps: Is funny hat looking for hell, in hello by g_strcmp0 will return -111 ;) Regards J. On 06/30/2011 12:24 AM, Andrew John Hughes wrote: > On Mon, Jun 27, 2011 at 02:05:36PM +0200, Jiri Vanek wrote: >> On 06/16/2011 08:10 PM, Jiri Vanek wrote: >>> On 05/18/2011 07:08 PM, Dr Andrew John Hughes wrote: >>>> On 12:48 Wed 18 May , Pavel Tisnovsky wrote: >>>>> Hi all, >>>>> >>>>> I've found that IcedTea-web can not be build on RHEL5 because this >>>>> system has older glibc libraries (2.5-*) and some code in >>>>> IcedTeaNPPlugin.cc depends on newer functions. >>>>> >>>>> I've tried to rewrite this class not to use these functions. Can anybody >>>>> please look at these changes? They are stored in an attachments as patch >>>>> file. >>>>> >>>>> Any comments are welcome! >>>>> >>>>> Cheers, >>>>> Pavel >>>> >>>> Looking at the changes, I think you mean glib not glibc. >>>> >>>> I don't think this is the right way to fix this. If RHEL5 is missing these >>>> glib functions, we should test for that in configure and use local definitions >>>> of those functions, rather than using inferior functions on all platforms. >>> >>> As there was no reply to this issue, I have an idea to add configure otion --with-rhel5-buildable, which will include pavel's patch to icedtea-web and compile it on rhel 5 so he will be able to run it on his rhel 5 test machines. What do you think? >>> > > No, I've already outlined the correct solution above. configure should check for > the availability of the missing functions (g_hash_table_iter and g_strcmp0 from what > I can see in the patch below) and use alternatives if they are unavailable (via > #ifdef in the code). The patch below seems to require the user to know how to > invoke a specific make command to apply a patch, whereas the process should be > automated. It's also nothing to do with rhel5 as such; it's to do with supporting > older versions of glib. > >>> Regards J. >> -------------- next part -------------- A non-text attachment was scrubbed... Name: autoRhel5patching.diff Type: text/x-patch Size: 5685 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110707/233c7e42/autoRhel5patching.diff From ptisnovs at icedtea.classpath.org Thu Jul 7 04:43:50 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 07 Jul 2011 11:43:50 +0000 Subject: /hg/icedtea6: Backport of 6842838 and 6882768. Message-ID: changeset b98c208a3244 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=b98c208a3244 author: ptisnovs date: Thu Jul 07 13:43:41 2011 +0200 Backport of 6842838 and 6882768. diffstat: ChangeLog | 8 + Makefile.am | 4 +- NEWS | 2 + patches/openjdk/6842838-64-bit_failure_in_handling_invalid_manifest.patch | 269 ++++++++++ patches/openjdk/6882768-test_for_6842838_is_broken.patch | 94 +++ 5 files changed, 376 insertions(+), 1 deletions(-) diffs (416 lines): diff -r 922f35a6bf90 -r b98c208a3244 ChangeLog --- a/ChangeLog Thu Jul 07 11:47:06 2011 +0200 +++ b/ChangeLog Thu Jul 07 13:43:41 2011 +0200 @@ -1,3 +1,11 @@ +2011-07-07 Pavel Tisnovsky + + * Makefile.am: added new patches + * NEWS: updated with backports + * patches/openjdk/6842838-64-bit_failure_in_handling_invalid_manifest.patch: + * patches/openjdk/6882768-test_for_6842838_is_broken.patch: + Backport of 6842838 and 6882768. + 2011-07-07 Pavel Tisnovsky * patches/openjdk/6679308-Poor_text_rendering_on_translucent_image.patch: diff -r 922f35a6bf90 -r b98c208a3244 Makefile.am --- a/Makefile.am Thu Jul 07 11:47:06 2011 +0200 +++ b/Makefile.am Thu Jul 07 13:43:41 2011 +0200 @@ -374,7 +374,9 @@ patches/openjdk/7047069-Array_can_dynamically_change_size.patch \ patches/openjdk/6796786-invalid_FP_identity_transform.patch \ patches/openjdk/7042070-Typo_in_Test6796786.patch \ - patches/openjdk/6679308-Poor_text_rendering_on_translucent_image.patch + patches/openjdk/6679308-Poor_text_rendering_on_translucent_image.patch \ + patches/openjdk/6842838-64-bit_failure_in_handling_invalid_manifest.patch \ + patches/openjdk/6882768-test_for_6842838_is_broken.patch if WITH_ALT_HSBUILD ICEDTEA_PATCHES += \ diff -r 922f35a6bf90 -r b98c208a3244 NEWS --- a/NEWS Thu Jul 07 11:47:06 2011 +0200 +++ b/NEWS Thu Jul 07 13:43:41 2011 +0200 @@ -46,6 +46,8 @@ - S7042070: Typo in Test6796786.java - S7029152: Ideal nodes for String intrinsics miss memory edge optimization - S6679308: Poor text rendering on translucent image + - S6842838: 64-bit failure in handling invalid manifest in launcher. + - S6882768: Test for 6842838 is broken * Bug fixes - PR637: make check should exit with an error code if any regression test failed. - G356743: Support libpng 1.5. diff -r 922f35a6bf90 -r b98c208a3244 patches/openjdk/6842838-64-bit_failure_in_handling_invalid_manifest.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6842838-64-bit_failure_in_handling_invalid_manifest.patch Thu Jul 07 13:43:41 2011 +0200 @@ -0,0 +1,272 @@ +# HG changeset patch +# User kevinw +# Date 1252958108 -3600 +# Node ID eb19c5dc52bf5916c58972a3a08dec48950c7a38 +# Parent aac01ec2cec47f4bac17971a1d2bc60bf3dd2196 +6842838: 64-bit failure in handling invalid manifest in launcher. +Summary: Don't compare with hard-coded 32-bit -1 when checking zip fields. +Reviewed-by: ksrini + +diff -r aac01ec2cec4 -r eb19c5dc52bf src/share/bin/parse_manifest.c +--- openjdk.orig/jdk/src/share/bin/parse_manifest.c Mon Sep 14 17:47:26 2009 +0100 ++++ openjdk/jdk/src/share/bin/parse_manifest.c Mon Sep 14 20:55:08 2009 +0100 +@@ -59,7 +59,7 @@ + char *out; + z_stream zs; + +- if (entry->csize == 0xffffffff || entry->isize == 0xffffffff) ++ if (entry->csize == (size_t) -1 || entry->isize == (size_t) -1 ) + return (NULL); + if (lseek(fd, entry->offset, SEEK_SET) < (off_t)0) + return (NULL); +diff -r aac01ec2cec4 -r eb19c5dc52bf test/tools/launcher/6842838/CreateBadJar.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/tools/launcher/6842838/CreateBadJar.java Mon Sep 14 20:55:08 2009 +0100 +@@ -0,0 +1,168 @@ ++/* ++ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++/* ++ * Borrowing significantly from Martin Buchholz's CorruptedZipFiles.java ++ * ++ * Needed a way of testing the checks for corrupt zip/jar entry in ++ * inflate_file from file j2se/src/share/bin/parse_manifest.c ++ * and running them with the 64-bit launcher. e.g. ++ * sparcv9/bin/java -jar badjar.jar ++ * ++ * Run from a script driver Test6842838.sh as we want to specifically run ++ * bin/sparcv9/java, the 64-bit launcher. ++ * ++ * So this program will create a zip file and damage it in the way ++ * required to tickle this bug. ++ * ++ * It will cause a buffer overrun: but that will not always crash. ++ * Use libumem preloaded by the script driver in order to ++ * abort quickly when the overrun happens. That makes the test ++ * Solaris-specific. ++ */ ++ ++import java.util.*; ++import java.util.zip.*; ++import java.io.*; ++import static java.lang.System.*; ++import static java.util.zip.ZipFile.*; ++ ++public class CreateBadJar { ++ ++public static void main(String [] arguments) { ++ ++ if (arguments.length != 2) { ++ throw new RuntimeException("Arguments: jarfilename entryname"); ++ } ++ String outFile = arguments[0]; ++ String entryName = arguments[1]; ++ ++ try { ++ // If the named file doesn't exist, create it. ++ // If it does, we are expecting it to contain the named entry, for ++ // alteration. ++ if (!new File(outFile).exists()) { ++ System.out.println("Creating file " + outFile); ++ ++ // Create the requested zip/jar file. ++ ZipOutputStream zos = null; ++ zos = new ZipOutputStream( ++ new FileOutputStream(outFile)); ++ ++ ZipEntry e = new ZipEntry(entryName); ++ zos.putNextEntry(e); ++ for (int j=0; j<50000; j++) { ++ zos.write((int)'a'); ++ } ++ zos.closeEntry(); ++ zos.close(); ++ zos = null; ++ } ++ ++ // Read it. ++ int len = (int)(new File(outFile).length()); ++ byte[] good = new byte[len]; ++ FileInputStream fis = new FileInputStream(outFile); ++ fis.read(good); ++ fis.close(); ++ fis = null; ++ ++ int endpos = len - ENDHDR; ++ int cenpos = u16(good, endpos+ENDOFF); ++ if (u32(good, cenpos) != CENSIG) throw new RuntimeException("Where's CENSIG?"); ++ ++ byte[] bad; ++ bad = good.clone(); ++ ++ // Corrupt it... ++ int pos = findInCEN(bad, cenpos, entryName); ++ ++ // What bad stuff are we doing to it? ++ // Store a 32-bit -1 in uncomp size. ++ bad[pos+0x18]=(byte)0xff; ++ bad[pos+0x19]=(byte)0xff; ++ bad[pos+0x1a]=(byte)0xff; ++ bad[pos+0x1b]=(byte)0xff; ++ ++ // Bad work complete, delete the original. ++ new File(outFile).delete(); ++ ++ // Write it. ++ FileOutputStream fos = new FileOutputStream(outFile); ++ fos.write(bad); ++ fos.close(); ++ fos = null; ++ ++ } catch (Exception e) { ++ e.printStackTrace(); ++ } ++ ++} ++ ++ /* ++ * Scan Central Directory File Headers looking for the named entry. ++ */ ++ ++ static int findInCEN(byte[] bytes, int cenpos, String entryName) { ++ int pos = cenpos; ++ int nextPos = 0; ++ String filename = null; ++ do { ++ if (nextPos != 0) { ++ pos = nextPos; ++ } ++ System.out.println("entry at pos = " + pos); ++ if (u32(bytes, pos) != CENSIG) throw new RuntimeException ("entry not found in CEN or premature end..."); ++ ++ int csize = u32(bytes, pos+0x14); // +0x14 1 dword csize ++ int uncompsize = u32(bytes, pos+0x18); // +0x18 1 dword uncomp size ++ int filenameLength = u16(bytes, pos+0x1c); // +0x1c 1 word length of filename ++ int extraLength = u16(bytes, pos+0x1e); // +0x1e 1 world length of extra field ++ int commentLength = u16(bytes, pos+0x20); // +0x20 1 world length of file comment ++ filename = new String(bytes, pos+0x2e, filenameLength); // +0x2e chars of filename ++ int offset = u32(bytes, pos+0x2a); // +0x2a chars of filename ++ ++ System.out.println("filename = " + filename + "\ncsize = " + csize + ++ " uncomp.size = " + uncompsize +" file offset = " + offset); ++ nextPos = pos + 0x2e + filenameLength + extraLength + commentLength; ++ ++ } while (!filename.equals(entryName)); ++ ++ System.out.println("entry found at pos = " + pos); ++ return pos; ++ } ++ ++ static int u8(byte[] data, int offset) { ++ return data[offset]&0xff; ++ } ++ ++ static int u16(byte[] data, int offset) { ++ return u8(data,offset) + (u8(data,offset+1)<<8); ++ } ++ ++ static int u32(byte[] data, int offset) { ++ return u16(data,offset) + (u16(data,offset+2)<<16); ++ } ++ ++} ++ +diff -r aac01ec2cec4 -r eb19c5dc52bf test/tools/launcher/6842838/Test6842838.sh +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/tools/launcher/6842838/Test6842838.sh Mon Sep 14 20:55:08 2009 +0100 +@@ -0,0 +1,75 @@ ++#!/bin/sh -x ++ ++# ++# @test @(#)Test6842838.sh ++# @bug 6842838 ++# @summary Test 6842838 64-bit launcher failure due to corrupt jar ++# @run shell Test6842838.sh ++# ++ ++# ++# Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. ++# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++# ++# This code is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License version 2 only, as ++# published by the Free Software Foundation. ++# ++# This code is distributed in the hope that it will be useful, but WITHOUT ++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++# version 2 for more details (a copy is included in the LICENSE file that ++# accompanied this code). ++# ++# You should have received a copy of the GNU General Public License version ++# 2 along with this work; if not, write to the Free Software Foundation, ++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++# ++# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++# CA 95054 USA or visit www.sun.com if you need additional information or ++# have any questions. ++# ++ ++if [ "${TESTSRC}" = "" ] ++then TESTSRC=. ++fi ++ ++if [ "${TESTJAVA}" = "" ] ++then ++ PARENT=`dirname \`which java\`` ++ TESTJAVA=`dirname ${PARENT}` ++ echo "TESTJAVA not set, selecting " ${TESTJAVA} ++ echo "If this is incorrect, try setting the variable manually." ++fi ++ ++if [ "${TESTCLASSES}" = "" ] ++then ++ echo "TESTCLASSES not set. Test cannot execute. Failed." ++ exit 1 ++fi ++ ++# set platform-dependent variables ++OS=`uname -s` ++case "$OS" in ++ SunOS ) ++ NULL=/dev/null ++ PS=":" ++ FS="/" ++ JAVA_EXE=${TESTJAVA}${FS}bin${FS}sparcv9${FS}java ++ ;; ++ * ) ++ echo "Only testing on sparcv9 (use libumem to reliably catch buffer overrun)" ++ exit 0; ++ ;; ++esac ++ ++BADFILE=newbadjar.jar ++ ++${JAVA_EXE} -version ++rm -f ${BADFILE} ++${TESTJAVA}/bin/javac CreateBadJar.java ++${JAVA_EXE} CreateBadJar ${BADFILE} "META-INF/MANIFEST.MF" ++LD_PRELOAD=/lib/64/libumem.so ${JAVA_EXE} -jar ${BADFILE} > test.out 2>&1 ++ ++grep "Invalid or corrupt jarfile" test.out ++exit $? diff -r 922f35a6bf90 -r b98c208a3244 patches/openjdk/6882768-test_for_6842838_is_broken.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6882768-test_for_6842838_is_broken.patch Thu Jul 07 13:43:41 2011 +0200 @@ -0,0 +1,95 @@ +# HG changeset patch +# User kevinw +# Date 1253635268 -3600 +# Node ID b8004f6f4812e560cf464cae85c18522727c72ef +# Parent 81dffe63c91318e2821f5e3379e428aa4787c6fc +6882768: (launcher) test for 6842838 is broken +Summary: Testcase correction. +Reviewed-by: ksrini + +diff -r 81dffe63c913 -r b8004f6f4812 test/tools/launcher/6842838/Test6842838.sh +--- openjdk.orig/jdk/test/tools/launcher/6842838/Test6842838.sh Tue Sep 22 10:01:32 2009 +0800 ++++ openjdk/jdk/test/tools/launcher/6842838/Test6842838.sh Tue Sep 22 17:01:08 2009 +0100 +@@ -1,12 +1,3 @@ +-#!/bin/sh -x +- +-# +-# @test @(#)Test6842838.sh +-# @bug 6842838 +-# @summary Test 6842838 64-bit launcher failure due to corrupt jar +-# @run shell Test6842838.sh +-# +- + # + # Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. + # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +@@ -30,21 +21,23 @@ + # have any questions. + # + +-if [ "${TESTSRC}" = "" ] +-then TESTSRC=. ++ ++# @test Test6842838.sh ++# @bug 6842838 ++# @summary Test 6842838 64-bit launcher failure due to corrupt jar ++# @compile CreateBadJar.java ++# @run shell Test6842838.sh ++ ++set -x ++ ++if [ "${TESTJAVA}" = "" ]; then ++ PARENT=`dirname \`which java\`` ++ TESTJAVA=`dirname ${PARENT}` ++ printf "TESTJAVA not set. Test cannot execute. Failed.\n" + fi + +-if [ "${TESTJAVA}" = "" ] +-then +- PARENT=`dirname \`which java\`` +- TESTJAVA=`dirname ${PARENT}` +- echo "TESTJAVA not set, selecting " ${TESTJAVA} +- echo "If this is incorrect, try setting the variable manually." +-fi +- +-if [ "${TESTCLASSES}" = "" ] +-then +- echo "TESTCLASSES not set. Test cannot execute. Failed." ++if [ "${TESTCLASSES}" = "" ]; then ++ printf "TESTCLASSES not set. Test cannot execute. Failed.\n" + exit 1 + fi + +@@ -58,18 +51,26 @@ + JAVA_EXE=${TESTJAVA}${FS}bin${FS}sparcv9${FS}java + ;; + * ) +- echo "Only testing on sparcv9 (use libumem to reliably catch buffer overrun)" ++ printf "Only testing on sparcv9 (use libumem to reliably catch buffer overrun)\n" + exit 0; + ;; + esac + ++if [ ! -x ${JAVA_EXE} ]; then ++ printf "Warning: sparcv9 components not installed - skipping test.\n" ++ exit 0 ++fi ++ ++LIBUMEM=/lib/64/libumem.so ++if [ ! -x ${LIBUMEM} ]; then ++ printf "Warning: libumem not installed - skipping test.\n" ++ exit 0 ++fi ++ + BADFILE=newbadjar.jar +- + ${JAVA_EXE} -version +-rm -f ${BADFILE} +-${TESTJAVA}/bin/javac CreateBadJar.java +-${JAVA_EXE} CreateBadJar ${BADFILE} "META-INF/MANIFEST.MF" +-LD_PRELOAD=/lib/64/libumem.so ${JAVA_EXE} -jar ${BADFILE} > test.out 2>&1 ++${JAVA_EXE} -cp ${TESTCLASSES} CreateBadJar ${BADFILE} "META-INF/MANIFEST.MF" ++LD_PRELOAD=${LIBUMEM} ${JAVA_EXE} -jar ${BADFILE} > test.out 2>&1 + + grep "Invalid or corrupt jarfile" test.out + exit $? From ahughes at redhat.com Thu Jul 7 05:07:25 2011 From: ahughes at redhat.com (Andrew John Hughes) Date: Thu, 7 Jul 2011 13:07:25 +0100 Subject: RFC: Separation of JTreg tool into independent project In-Reply-To: <4E158325.5070807@redhat.com> References: <4E11B0E3.7040605@centrum.cz> <20110705011948.GC17947@shelob.middle-earth.co.uk> <4E158325.5070807@redhat.com> Message-ID: <20110707120725.GA11009@shelob.middle-earth.co.uk> On Thu, Jul 07, 2011 at 11:57:57AM +0200, Jiri Vanek wrote: > On 07/05/2011 03:19 AM, Andrew John Hughes wrote: > >On Mon, Jul 04, 2011 at 02:24:03PM +0200, Pavel Tisnovsky wrote: > >>Hi all, > >> > >>some time ago I discussed with Andrew John Hughes about the separation > >>of JTreg tool from the IcedTea6 and IcedTea7 projects. In summary (ie > >>how I understand this task): JTreg should be developed as independent > >>project and in the future they should be synchronized with recent JTreg > >>version (used by Oracle guys AFAIK). > >> > > > >Yes, but that's not what this patch seems to do. It just moves the source > >code out of the tree into a zip somewhere. I was envisaging jtreg being > >a separate project like the visualvm one with its own build infrastructure. > >You'd then point configure at an installed jtreg.jar. That could be built > >from the IcedTea jtreg project or alternatively, you could use the one > >Oracle provide if you were willing to accept the proprietary licensing > >this entails. > > When you are writing "like visualvm" you mean also specfile? I guess (and hope) not - as I do not see any reason why to make an distribution package for this suite. > No, I'm not talking about anything related to specfiles. This is about a development tree, not distro. packaging. > For the rest - you suggest to have hg repository beside icedteas, inside jtreg sources with its makefile.am and configure scripts and possible patches. Yes? Exactly, bar the patches. What would you need patches for? The source would be in there. > Tests itself will remain in openjdk. (?) Well yes they are part of OpenJDK. > Build of icedtea will remain untouched unless some "test yourself" will be enabled. In case of enabled, it will download some released tarball and will use it [rfc]. No, the idea is to have --with-jtreg=. IcedTea should not become some Maven clone. > > In similar scenarios I will be happy to have jtreg in separate "package". > > > > >>In the attachment there's very first version of patched Makefile.am from > >>IcedTea6 HEAD. When user call command 'make jtreg' from command line, > >>archive containing stable version of JTreg tool sources is downloaded > >>into 'drops/' subdirectory, then this archive is unzipped into 'test/' > >>subdirectory and then JTreg is compiled& run as usual. > >> > >>This functionality is similar as in the case of JAXP and JAXWS - these > >>two parts of JDK are also separated from JDK sources. > >> > > > >Yes, and it's one of the most annoying things Oracle have ever done, as > >there's no change visibility. I've been thinking about reverting it > >in the IcedTea tree so at least we can see the changes between zips > >if not at the changeset level. > > > >>What do you think about this solution (which could be the same for > >>IcedTea6 and IcedTea7, also *probably* for IcedTea-web)? > >> > > > >Why would IcedTea-Web need jtreg? > > IcedTea-web do not have jtreg, but have its own set of unit-tests and reproducers-tests which are worthy to be run in daily report. > Now it is some 40 tests together, and its grow-rate will not be to fast, so for now I do not thing it is good idea to separate them. > They are run as 'make check' and 'make run-netx-dist-tests' commands. We're only talking about moving the jtreg code out, so there is one common repository for IcedTea6, IcedTea7, IcedTea8 and all the release branches. I don't fancy the alternative of patching all those with fixes (especially the release branches). I'm thinking this should wait until 1.12 now though, as not enough progress has been made for 1.11. I'd like to get 1.11 out soon-ish (next few months) and something like this really needs time to soak. > > > > > >>Cheers, > >>Pavel > > Regards J. > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From andrew at icedtea.classpath.org Thu Jul 7 05:10:41 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Thu, 07 Jul 2011 12:10:41 +0000 Subject: /hg/icedtea: PR icedtea/751: Make javah patch conditional so Ice... Message-ID: changeset b36e263a2d9c in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=b36e263a2d9c author: Andrew John Hughes date: Thu Jul 07 13:10:27 2011 +0100 PR icedtea/751: Make javah patch conditional so IcedTea7 can bootstrap itself. 2011-07-05 Andrew John Hughes PR icedtea/751: (ICEDTEA_BOOT_PATCHES): Make application of javah.patch dependent on javah presenting with bug 40188. diffstat: ChangeLog | 7 +++++++ Makefile.am | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diffs (35 lines): diff -r 91be8105cfa7 -r b36e263a2d9c ChangeLog --- a/ChangeLog Tue Jul 05 13:48:51 2011 +0100 +++ b/ChangeLog Thu Jul 07 13:10:27 2011 +0100 @@ -1,3 +1,10 @@ +2011-07-05 Andrew John Hughes + + PR icedtea/751: + (ICEDTEA_BOOT_PATCHES): Make application of + javah.patch dependent on javah presenting + with bug 40188. + 2011-07-05 Andrew John Hughes PR icedtea/751 diff -r 91be8105cfa7 -r b36e263a2d9c Makefile.am --- a/Makefile.am Tue Jul 05 13:48:51 2011 +0100 +++ b/Makefile.am Thu Jul 07 13:10:27 2011 +0100 @@ -345,7 +345,6 @@ patches/boot/xbootclasspath.patch \ patches/boot/icedteart.patch \ patches/boot/jar.patch \ - patches/boot/javah.patch \ patches/boot/symbols.patch \ patches/boot/tobin.patch \ patches/boot/test_gamma.patch \ @@ -373,7 +372,8 @@ endif if CP40188_JAVAH -ICEDTEA_BOOT_PATCHES += patches/boot/pr40188.patch +ICEDTEA_BOOT_PATCHES += patches/boot/pr40188.patch \ + patches/boot/javah.patch endif if CP40616 From ptisnovs at redhat.com Thu Jul 7 05:17:26 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Thu, 07 Jul 2011 14:17:26 +0200 Subject: RFC: Separation of JTreg tool into independent project In-Reply-To: <20110705011948.GC17947@shelob.middle-earth.co.uk> References: <4E11B0E3.7040605@centrum.cz> <20110705011948.GC17947@shelob.middle-earth.co.uk> Message-ID: <4E15A3D6.2050701@redhat.com> Andrew John Hughes wrote: > On Mon, Jul 04, 2011 at 02:24:03PM +0200, Pavel Tisnovsky wrote: >> Hi all, >> >> some time ago I discussed with Andrew John Hughes about the separation >> of JTreg tool from the IcedTea6 and IcedTea7 projects. In summary (ie >> how I understand this task): JTreg should be developed as independent >> project and in the future they should be synchronized with recent JTreg >> version (used by Oracle guys AFAIK). >> > > Yes, but that's not what this patch seems to do. It just moves the source > code out of the tree into a zip somewhere. I was envisaging jtreg being > a separate project like the visualvm one with its own build infrastructure. > You'd then point configure at an installed jtreg.jar. That could be built > from the IcedTea jtreg project or alternatively, you could use the one > Oracle provide if you were willing to accept the proprietary licensing > this entails. I see, thank you for explanation. So I'll create new project (hopefully on icedtea.classpath.org - Mark?) which will contains classic autotools-based build (configure & make & make install) with the default output to /usr/share/java/jtreg.jar or to a selected directory, right? > >> In the attachment there's very first version of patched Makefile.am from >> IcedTea6 HEAD. When user call command 'make jtreg' from command line, >> archive containing stable version of JTreg tool sources is downloaded >> into 'drops/' subdirectory, then this archive is unzipped into 'test/' >> subdirectory and then JTreg is compiled & run as usual. >> >> This functionality is similar as in the case of JAXP and JAXWS - these >> two parts of JDK are also separated from JDK sources. >> > > Yes, and it's one of the most annoying things Oracle have ever done, as > there's no change visibility. I've been thinking about reverting it > in the IcedTea tree so at least we can see the changes between zips > if not at the changeset level. > >> What do you think about this solution (which could be the same for >> IcedTea6 and IcedTea7, also *probably* for IcedTea-web)? >> > > Why would IcedTea-Web need jtreg? Personally I think that some work on IcedTea-web tests can be made more easily using jtreg tool. To be more specific: jtreg is able to run only selected tests using GUI and/or using various annotations, it could kill the test which is in endless loop (or waiting for packer or so), store standard output and error output into one JTR file etc. I don't think that jtreg will replace JUnit, but for reproducers or more complex tests it's IMHO more usable tool. > >> Cheers, >> Pavel From andrew at icedtea.classpath.org Thu Jul 7 06:19:51 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Thu, 07 Jul 2011 13:19:51 +0000 Subject: /hg/icedtea6: 12 new changesets Message-ID: changeset 611a31a7c5a1 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=611a31a7c5a1 author: Andrew John Hughes date: Thu Mar 03 12:32:40 2011 +0000 Bump to b23. 2011-03-03 Andrew John Hughes * Makefile.am: Bump to b23. changeset b3627e530d7c in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=b3627e530d7c author: Andrew John Hughes date: Wed Mar 09 23:47:23 2011 +0000 Merge changeset 15ee0af0207b in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=15ee0af0207b author: Andrew John Hughes date: Wed Mar 30 23:14:30 2011 +0100 Merge changeset bef042dcbb2a in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=bef042dcbb2a author: Andrew John Hughes date: Thu Mar 31 01:04:37 2011 +0100 Drop serialization patches for JAXP and JTable which are now upstream. 2011-03-31 Andrew John Hughes * patches/jaxp-serial-version-uid.patch, * patches/openjdk/6768387-jtable_not_serializable.patch: Dropped, upstream. * Makefile.am: (JAXP_DROP_ZIP): Update. (JAXP_DROP_SHA256SUM): Likewise. (ICEDTEA_PATCHES): Drop above. changeset 83034f3f172f in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=83034f3f172f author: Andrew John Hughes date: Wed May 18 15:46:37 2011 +0100 Merge changeset 36e7e97a3702 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=36e7e97a3702 author: Andrew John Hughes date: Wed May 18 22:49:21 2011 +0100 Update due to inclusion of hs20, 6599601, 6997495, 7029905 and 7042040. 2011-05-18 Andrew John Hughes * patches/hotspot/hs20/7032388-work_without_cmov_instruction.patch, * patches/hotspot/hs20/arm.patch, * patches/hotspot/hs20/gcc-suffix.patch, * patches/hotspot/hs20/ia64-fix.patch, * patches/hotspot/hs20/params-cast-size_t.patch, * patches/hotspot/hs20/powerpc-stacksize.patch, * patches/hotspot/hs20/sparc-buildfixes.patch, * patches/hotspot/hs20/systemtap.patch, * patches/hotspot/hs20/text-relocations.patch: Moved to main tree. * patches/hotspot/original/7032388-work_without_cmov_instruction.patch , * patches/hotspot/original/arm.patch, * patches/hotspot/original/gcc-suffix.patch, * patches/hotspot/original/ia64-fix.patch, * patches/hotspot/original/no-precompiled-headers.patch, * patches/hotspot/original/params-cast-size_t.patch, * patches/hotspot/original/sparc-buildfixes.patch, * patches/hotspot/original/systemtap.patch, * patches/hotspot/original/text-relocations.patch, * patches/hotspot/original/too-many-args.patch: Dropped; hs19 no longer supported. * patches/openjdk/6599601-mark_sun_toolkit_privileged_code.patch, * patches/openjdk/6997495-test_correction_6857159.patch, * patches/openjdk/7029905-demo_applet_html_files.patch, * patches/openjdk/7042040-no_disk_space_check.patch: Removed; upstream in OpenJDK6. * INSTALL: Update HotSpot documentation. * Makefile.am: (ICEDTEA_PATCHES): Updated. * acinclude.m4: (IT_WITH_HOTSPOT_BUILD): Set default back to original. * hotspot.map: Remove hs19. * patches/arm.patch, * patches/gcc-suffix.patch, * patches/ia64-fix.patch: Extended with HotSpot segments from hotspot/hs20. * patches/openjdk/6633275-shaped_translucent_windows.patch: Recreated due to copyright header change in Component.java. * patches/openjdk/7032388-work_without_cmov_instruction.patch, * patches/params-cast-size_t.patch, * patches/powerpc-stacksize.patch, * patches/sparc-buildfixes.patch, * patches/systemtap.patch, * patches/text-relocations.patch: Moved from hotspot/hs20. changeset b1123c5a67f7 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=b1123c5a67f7 author: Andrew John Hughes date: Wed Jun 01 02:35:43 2011 +0100 Merge changeset 5deef52b5a9c in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=5deef52b5a9c author: Andrew John Hughes date: Wed Jul 06 17:11:34 2011 +0100 Merge changeset 23404f48955e in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=23404f48955e author: Andrew John Hughes date: Wed Jul 06 20:45:21 2011 +0100 Support hg, post security patches. 2011-07-06 Andrew John Hughes * patches/security/20110215/6878713.patch, * patches/security/20110607/6213702.patch, * patches/security/20110607/6618658.patch, * patches/security/20110607/7012520.patch, * patches/security/20110607/7013519.patch, * patches/security/20110607/7013969.patch, * patches/security/20110607/7013971.patch, * patches/security/20110607/7016495.patch, * patches/security/20110607/7020198.patch, * patches/security/20110607/7020373.patch: Removed; upstream. * Makefile.am: (JAXWS_DROP_ZIP): Updatede. (JAXWS_DROP_SHA256SUM): Likewise. (JAXP_DROP_ZIP): Likewise. (JAXP_DROP_SHA256SUM): Likewise. (SECURITY_PATCHES): Set to empty. * patches/xjc.patch: Revert to pre-security patch version (security patch is now part of the tarball, not a patch) changeset 380a9db76b36 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=380a9db76b36 author: Andrew John Hughes date: Thu Jul 07 13:14:02 2011 +0100 Merge changeset d987bfbdfd8d in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=d987bfbdfd8d author: Andrew John Hughes date: Thu Jul 07 14:17:12 2011 +0100 Bump to b23 release tarball. Remove last vesitages of md5sum usage. 2011-07-06 Andrew John Hughes * Makefile.am: (OPENJDK_DATE): Updated. (OPENJDK_SHA256SUM): Replaces OPENJDK_MD5SUM. (download- openjdk): Use sha256 as with all other bundles. (download-hotspot): Likewise. * configure.ac: Remove check for md5sum. * hotspot.map: Move to sha256. changeset 0911ad28ea98 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=0911ad28ea98 author: Andrew John Hughes date: Thu Jul 07 14:19:34 2011 +0100 Merge diffstat: .hgtags | 6 +- AUTHORS | 4 + ChangeLog | 1200 ++++++++ INSTALL | 25 +- Makefile.am | 217 +- NEWS | 89 + THANKYOU | 1 + acinclude.m4 | 117 +- configure.ac | 10 +- generated/java/lang/CharacterData00.java | 12 +- generated/java/lang/CharacterData01.java | 12 +- generated/java/lang/CharacterData02.java | 12 +- generated/java/lang/CharacterData0E.java | 12 +- generated/java/lang/CharacterDataLatin1.java | 12 +- generated/java/nio/DirectByteBuffer.java | 2 +- generated/java/nio/DirectCharBufferS.java | 2 +- generated/java/nio/DirectCharBufferU.java | 2 +- generated/java/nio/DirectDoubleBufferS.java | 2 +- generated/java/nio/DirectDoubleBufferU.java | 2 +- generated/java/nio/DirectFloatBufferS.java | 2 +- generated/java/nio/DirectFloatBufferU.java | 2 +- generated/java/nio/DirectIntBufferS.java | 2 +- generated/java/nio/DirectIntBufferU.java | 2 +- generated/java/nio/DirectLongBufferS.java | 2 +- generated/java/nio/DirectLongBufferU.java | 2 +- generated/java/nio/DirectShortBufferS.java | 2 +- generated/java/nio/DirectShortBufferU.java | 2 +- generated/java/nio/HeapByteBuffer.java | 2 +- generated/java/nio/HeapCharBuffer.java | 2 +- generated/java/nio/HeapDoubleBuffer.java | 2 +- generated/java/nio/HeapFloatBuffer.java | 2 +- generated/java/nio/HeapIntBuffer.java | 2 +- generated/java/nio/HeapLongBuffer.java | 2 +- generated/java/nio/HeapShortBuffer.java | 2 +- generated/sun/awt/X11/AwtGraphicsConfigData.java | 69 +- generated/sun/awt/X11/AwtScreenData.java | 30 +- generated/sun/awt/X11/ColorData.java | 62 +- generated/sun/awt/X11/ColorEntry.java | 4 +- generated/sun/awt/X11/Depth.java | 8 +- generated/sun/awt/X11/PropMwmHints.java | 22 +- generated/sun/awt/X11/Screen.java | 90 +- generated/sun/awt/X11/ScreenFormat.java | 20 +- generated/sun/awt/X11/Visual.java | 36 +- generated/sun/awt/X11/XAnyEvent.java | 22 +- generated/sun/awt/X11/XArc.java | 4 +- generated/sun/awt/X11/XButtonEvent.java | 62 +- generated/sun/awt/X11/XChar2b.java | 4 +- generated/sun/awt/X11/XCharStruct.java | 4 +- generated/sun/awt/X11/XCirculateEvent.java | 30 +- generated/sun/awt/X11/XCirculateRequestEvent.java | 30 +- generated/sun/awt/X11/XClassHint.java | 12 +- generated/sun/awt/X11/XClientMessageEvent.java | 36 +- generated/sun/awt/X11/XColor.java | 26 +- generated/sun/awt/X11/XColormapEvent.java | 34 +- generated/sun/awt/X11/XComposeStatus.java | 10 +- generated/sun/awt/X11/XConfigureEvent.java | 54 +- generated/sun/awt/X11/XConfigureRequestEvent.java | 58 +- generated/sun/awt/X11/XCreateWindowEvent.java | 50 +- generated/sun/awt/X11/XCrossingEvent.java | 70 +- generated/sun/awt/X11/XDestroyWindowEvent.java | 26 +- generated/sun/awt/X11/XErrorEvent.java | 30 +- generated/sun/awt/X11/XEvent.java | 6 +- generated/sun/awt/X11/XExposeEvent.java | 42 +- generated/sun/awt/X11/XExtCodes.java | 4 +- generated/sun/awt/X11/XExtData.java | 24 +- generated/sun/awt/X11/XFocusChangeEvent.java | 30 +- generated/sun/awt/X11/XFontProp.java | 10 +- generated/sun/awt/X11/XFontSetExtents.java | 4 +- generated/sun/awt/X11/XFontStruct.java | 64 +- generated/sun/awt/X11/XGCValues.java | 94 +- generated/sun/awt/X11/XGraphicsExposeEvent.java | 50 +- generated/sun/awt/X11/XGravityEvent.java | 34 +- generated/sun/awt/X11/XHostAddress.java | 6 +- generated/sun/awt/X11/XIMCallback.java | 12 +- generated/sun/awt/X11/XIMHotKeyTrigger.java | 14 +- generated/sun/awt/X11/XIMHotKeyTriggers.java | 12 +- generated/sun/awt/X11/XIMPreeditCaretCallbackStruct.java | 4 +- generated/sun/awt/X11/XIMPreeditDrawCallbackStruct.java | 12 +- generated/sun/awt/X11/XIMPreeditStateNotifyCallbackStruct.java | 6 +- generated/sun/awt/X11/XIMStatusDrawCallbackStruct.java | 10 +- generated/sun/awt/X11/XIMStringConversionCallbackStruct.java | 12 +- generated/sun/awt/X11/XIMStringConversionText.java | 22 +- generated/sun/awt/X11/XIMStyles.java | 12 +- generated/sun/awt/X11/XIMText.java | 22 +- generated/sun/awt/X11/XIMValuesList.java | 12 +- generated/sun/awt/X11/XIconSize.java | 4 +- generated/sun/awt/X11/XImage.java | 88 +- generated/sun/awt/X11/XKeyEvent.java | 62 +- generated/sun/awt/X11/XKeyboardControl.java | 4 +- generated/sun/awt/X11/XKeyboardState.java | 16 +- generated/sun/awt/X11/XKeymapEvent.java | 28 +- generated/sun/awt/X11/XMapEvent.java | 30 +- generated/sun/awt/X11/XMapRequestEvent.java | 26 +- generated/sun/awt/X11/XMappingEvent.java | 34 +- generated/sun/awt/X11/XModifierKeymap.java | 12 +- generated/sun/awt/X11/XMotionEvent.java | 62 +- generated/sun/awt/X11/XNoExposeEvent.java | 30 +- generated/sun/awt/X11/XOMCharSetList.java | 12 +- generated/sun/awt/X11/XOMFontInfo.java | 18 +- generated/sun/awt/X11/XOMOrientation.java | 12 +- generated/sun/awt/X11/XPixmapFormatValues.java | 4 +- generated/sun/awt/X11/XPoint.java | 4 +- generated/sun/awt/X11/XPropertyEvent.java | 34 +- generated/sun/awt/X11/XRectangle.java | 4 +- generated/sun/awt/X11/XReparentEvent.java | 42 +- generated/sun/awt/X11/XResizeRequestEvent.java | 30 +- generated/sun/awt/X11/XSegment.java | 4 +- generated/sun/awt/X11/XSelectionClearEvent.java | 30 +- generated/sun/awt/X11/XSelectionEvent.java | 38 +- generated/sun/awt/X11/XSelectionRequestEvent.java | 42 +- generated/sun/awt/X11/XSetWindowAttributes.java | 62 +- generated/sun/awt/X11/XSizeHints.java | 74 +- generated/sun/awt/X11/XStandardColormap.java | 42 +- generated/sun/awt/X11/XTextItem.java | 18 +- generated/sun/awt/X11/XTextItem16.java | 18 +- generated/sun/awt/X11/XTextProperty.java | 18 +- generated/sun/awt/X11/XTimeCoord.java | 14 +- generated/sun/awt/X11/XUnmapEvent.java | 30 +- generated/sun/awt/X11/XVisibilityEvent.java | 26 +- generated/sun/awt/X11/XVisualInfo.java | 42 +- generated/sun/awt/X11/XWMHints.java | 40 +- generated/sun/awt/X11/XWindowAttributes.java | 74 +- generated/sun/awt/X11/XWindowChanges.java | 14 +- generated/sun/awt/X11/XdbeSwapInfo.java | 10 +- generated/sun/awt/X11/XmbTextItem.java | 20 +- generated/sun/awt/X11/XwcTextItem.java | 20 +- generated/sun/awt/X11/awtImageData.java | 6 +- generated/sun/misc/Version.java | 63 +- generated/sun/nio/cs/StandardCharsets.java | 12 +- hotspot.map | 3 +- overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/ImageFormatException.java | 51 + overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGCodec.java | 193 + overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGDecodeParam.java | 390 ++ overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGEncodeParam.java | 307 ++ overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGHuffmanTable.java | 129 + overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGImageDecoder.java | 102 + overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGImageEncoder.java | 208 + overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGQTable.java | 118 + overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/TruncatedFileException.java | 92 + overlays/jpeg/openjdk/jdk/src/share/classes/sun/awt/image/codec/JPEGImageDecoderImpl.java | 108 + overlays/jpeg/openjdk/jdk/src/share/classes/sun/awt/image/codec/JPEGImageEncoderImpl.java | 183 + overlays/jpeg/openjdk/jdk/src/share/classes/sun/awt/image/codec/JPEGParam.java | 750 +++++ overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi0g01.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi0g02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi0g04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi0g08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi0g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi2c16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi3p01.pam | 7 + overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi3p02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi4a08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi4a16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi6a08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basi6a16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn0g01.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn0g02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn0g04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn0g08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn0g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn2c16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn3p01.pam | 7 + overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn3p02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn4a08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn4a16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn6a08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/basn6a16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/bgai4a08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/bgai4a16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/bgan6a08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/bgan6a16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/bgbn4a08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/bggn4a16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/bgwn6a08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/bgyn6a16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/ccwn2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/ccwn3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cdfn2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cdhn2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cdsn2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cdun2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/ch1n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/ch2n3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cm0n0g04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cm7n0g04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cm9n0g04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cs3n2c16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cs3n3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cs5n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cs5n3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cs8n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/cs8n3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/ct0n0g04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/ct1n0g04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/ctzn0g04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/f00n0g08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/f00n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/f01n0g08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/f01n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/f02n0g08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/f02n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/f03n0g08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/f03n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/f04n0g08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/f04n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g03n0g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g03n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g03n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g04n0g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g04n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g04n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g05n0g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g05n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g05n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g07n0g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g07n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g07n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g10n0g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g10n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g10n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g25n0g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g25n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/g25n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/oi1n0g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/oi1n2c16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/oi2n0g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/oi2n2c16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/oi4n0g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/oi4n2c16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/oi9n0g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/oi9n2c16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/pngsuite_logo.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/pp0n2c16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/pp0n6a08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/ps1n0g08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/ps1n2c16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/ps2n0g08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/ps2n2c16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s01i3p01.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s01n3p01.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s02i3p01.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s02n3p01.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s03i3p01.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s03n3p01.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s04i3p01.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s04n3p01.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s05i3p02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s05n3p02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s06i3p02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s06n3p02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s07i3p02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s07n3p02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s08i3p02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s08n3p02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s09i3p02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s09n3p02.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s32i3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s32n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s33i3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s33n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s34i3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s34n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s35i3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s35n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s36i3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s36n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s37i3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s37n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s38i3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s38n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s39i3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s39n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s40i3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/s40n3p04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tbbn1g04.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tbbn2c16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tbbn3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tbgn2c16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tbgn3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tbrn2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tbwn1g16.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tbwn3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tbyn3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tp0n1g08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tp0n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tp0n3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/tp1n3p08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/z00n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/z03n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/z06n2c08.pam | 0 overlays/openjdk/jdk/test/javax/imageio/plugins/png/PngReader/pam_images/z09n2c08.pam | 0 patches/arm.patch | 56 + patches/bytebuffer-compact.patch | 61 - patches/cacao/arm-arch-defines.patch | 30 - patches/demo-swingapplet.patch | 10 - patches/ecj/endorsed-dir-for-jvmti.patch | 12 + patches/ecj/javafiles.patch | 150 + patches/ecj/jaxws-getdtdtype.patch | 7 +- patches/f14-fonts.patch | 2 +- patches/fonts-gentoo.patch | 4 +- patches/fonts-rhel-version.patch | 32 + patches/fonts-rhel.patch | 3 +- patches/g356743-libpng-1.5.patch | 25 + patches/gcc-stack-markings.patch | 12 - patches/gcc-suffix.patch | 29 + patches/headers-hotspot.patch | 12 - patches/hotspot/hs20/arm.patch | 56 - patches/hotspot/hs20/gcc-suffix.patch | 29 - patches/hotspot/hs20/ia64-fix.patch | 14 - patches/hotspot/hs20/params-cast-size_t.patch | 259 - patches/hotspot/hs20/powerpc-stacksize.patch | 39 - patches/hotspot/hs20/sparc-buildfixes.patch | 24 - patches/hotspot/hs20/systemtap.patch | 99 - patches/hotspot/hs20/text-relocations.patch | 60 - patches/hotspot/original/arm.patch | 54 - patches/hotspot/original/gcc-suffix.patch | 29 - patches/hotspot/original/ia64-fix.patch | 28 - patches/hotspot/original/no-precompiled-headers.patch | 33 - patches/hotspot/original/params-cast-size_t.patch | 284 - patches/hotspot/original/sparc-buildfixes.patch | 32 - patches/hotspot/original/systemtap.patch | 97 - patches/hotspot/original/text-relocations.patch | 58 - patches/hotspot/original/too-many-args.patch | 45 - patches/ia64-fix.patch | 14 + patches/jamvm/ignore-more-XX-options.patch | 40 - patches/javafiles.patch | 150 - patches/jaxp-serial-version-uid.patch | 51 - patches/jpegclasses.patch | 643 ---- patches/jtreg-6929067-fix.patch | 23 +- patches/jtreg-ChangeDir.patch | 32 + patches/jtreg-ChannelsWrite.patch | 50 + patches/jtreg-EncodedMultiByteChar.patch | 23 + patches/jtreg-FileLoaderTest.patch | 35 + patches/jtreg-FileMap.patch | 23 + patches/jtreg-MappedByteBuffer-Basic.patch | 94 + patches/jtreg-ReadWriteProfileTest.patch | 123 + patches/jtreg-TempBuffer.patch | 60 + patches/jtreg-bug7036148-test.patch | 23 + patches/jtreg-double-to-string.patch | 47 + patches/jtreg-hotspot-bug-6196102.patch | 40 + patches/jtreg-png-reader.patch | 412 ++- patches/jtreg-remove-test-6987555.patch | 183 + patches/jtreg-remove-test-6991596.patch | 471 +++ patches/libpng.patch | 11 - patches/linux-separate-debuginfo.patch | 376 -- patches/nio2.patch | 69 +- patches/no-sync.patch | 13 - patches/nss-debug.patch | 54 - patches/openjdk/4685768-focus.patch | 390 ++ patches/openjdk/6307603-xrender-01.patch | 6 +- patches/openjdk/6578583-modality-broken-vista.patch | 1439 ++++++++++ patches/openjdk/6610244-modal-fatal-error-windows.patch | 121 + patches/openjdk/6623219-Font_canDisplayUpTo_does_not_work.patch | 202 + patches/openjdk/6633275-shaped_translucent_windows.patch | 117 +- patches/openjdk/6679308-Poor_text_rendering_on_translucent_image.patch | 511 +++ patches/openjdk/6693253-security_warning.patch | 25 +- patches/openjdk/6699843-IllegalArgumentException_drawString.patch | 131 + patches/openjdk/6708580-exa_slow.patch | 99 + patches/openjdk/6748082-isDisplayLocal.patch | 111 + patches/openjdk/6769607-modal-hangs.patch | 161 + patches/openjdk/6783910-java_awt_Color_brighter_darker_fix.patch | 139 + patches/openjdk/6785424-SecurityException_locating_physical_fonts.patch | 95 + patches/openjdk/6796786-invalid_FP_identity_transform.patch | 102 + patches/openjdk/6818312-com.sun.awt.SecurityWarning.getSize.patch | 404 ++ patches/openjdk/6842838-64-bit_failure_in_handling_invalid_manifest.patch | 269 + patches/openjdk/6882768-test_for_6842838_is_broken.patch | 94 + patches/openjdk/6918065-Crash_in_Java2D_blit_loop.patch | 56 + patches/openjdk/6956668-misbehavior_of_XOR_operator_with_int.patch | 91 + patches/openjdk/6959123-libpng_14.patch | 20 + patches/openjdk/6986968-crash_on_xim_restart.patch | 22 + patches/openjdk/6997495-test_correction_6857159.patch | 20 - patches/openjdk/7008106-WindowOpacity.patch | 18 + patches/openjdk/7018387-xrender_gc_leak.patch | 20 + patches/openjdk/7019808-stack_noexec.patch | 22 + patches/openjdk/7019861-AA-regression-fix.patch | 497 +++ patches/openjdk/7021314-no_javaws_man_page.patch | 23 + patches/openjdk/7023591-AAShapePipe.patch | 19 + patches/openjdk/7027667-AAShapePipeRegTest.patch | 61 + patches/openjdk/7029152-String_intrinsics_miss_optimization.patch | 379 ++ patches/openjdk/7031385-gcc-register-allocation-fix.patch | 20 + patches/openjdk/7032388-work_without_cmov_instruction.patch | 173 + patches/openjdk/7034464-hugepage.patch | 454 +++ patches/openjdk/7036148-npe-null-jmenu-name.patch | 83 + patches/openjdk/7036220-shark_llvm_29_headers.patch | 43 + patches/openjdk/7036754-stroker-nan.patch | 488 +++ patches/openjdk/7037939-hugepage.patch | 69 + patches/openjdk/7041156-gcc_export_dynamic.patch | 21 + patches/openjdk/7042070-Typo_in_Test6796786.patch | 32 + patches/openjdk/7043564-hugepage.patch | 20 + patches/openjdk/7043921-java_rmi_cgi.patch | 39 + patches/openjdk/7047069-Array_can_dynamically_change_size.patch | 237 + patches/openjdk/mutter.patch | 307 ++ patches/openjdk/pgram-pipe-regression.patch | 543 +++ patches/params-cast-size_t.patch | 259 + patches/powerpc-stacksize.patch | 39 + patches/pr633-no_javaws_man_page.patch | 14 - patches/revert-6885123.patch | 560 +++ patches/rh676659-gcc-export-dynamic.patch | 11 - patches/rmi_amd64.patch | 14 - patches/security/20110215/6878713.patch | 138 - patches/shark-build-hotspot.patch | 260 - patches/shark-debug-option.patch | 28 - patches/shark_do_nothing_on_stub_frame.patch | 13 - patches/sparc-buildfixes.patch | 24 + patches/ssl.patch | 41 - patches/support_linux_3.patch | 18 + patches/systemtap.patch | 99 + patches/text-relocations.patch | 60 + patches/tools.patch | 79 - patches/xrender-gc-cleanup.patch | 11 - pulseaudio/src/java/org/classpath/icedtea/pulseaudio/ContextEvent.java | 68 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/ContextListener.java | 2 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Debug.java | 102 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/EventLoop.java | 332 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Operation.java | 184 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioClip.java | 826 ++-- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioDataLine.java | 724 ++-- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioLine.java | 120 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java | 1147 +++--- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixerInfo.java | 28 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixerProvider.java | 32 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioPlaybackLine.java | 72 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioPort.java | 180 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java | 455 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourcePort.java | 68 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java | 582 ++- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetPort.java | 60 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioVolumeControl.java | 86 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/SecurityWrapper.java | 28 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Stream.java | 1289 ++++---- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/StreamBufferAttributes.java | 66 +- pulseaudio/src/java/org/classpath/icedtea/pulseaudio/StreamSampleSpecification.java | 44 +- pulseaudio/src/native/jni-common.c | 232 +- pulseaudio/src/native/jni-common.h | 22 +- pulseaudio/src/native/org_classpath_icedtea_pulseaudio_ContextEvent.c | 63 + pulseaudio/src/native/org_classpath_icedtea_pulseaudio_EventLoop.c | 298 +- pulseaudio/src/native/org_classpath_icedtea_pulseaudio_Operation.c | 41 +- pulseaudio/src/native/org_classpath_icedtea_pulseaudio_PulseAudioSourcePort.c | 136 +- pulseaudio/src/native/org_classpath_icedtea_pulseaudio_PulseAudioTargetPort.c | 140 +- pulseaudio/src/native/org_classpath_icedtea_pulseaudio_Stream.c | 1188 ++++--- tapset/hotspot_jni.stp.in | 180 +- 446 files changed, 21276 insertions(+), 9236 deletions(-) diffs (truncated from 38085 to 500 lines): diff -r 84ca681adf9a -r 0911ad28ea98 .hgtags --- a/.hgtags Thu Mar 03 01:49:30 2011 +0000 +++ b/.hgtags Thu Jul 07 14:19:34 2011 +0100 @@ -15,8 +15,8 @@ a7b9087df36ee2c9fe2831f9ff08d0e9070abffd icedtea6-1.5rc1 07de70c5883a637ea2ef4aba3f8472edd7e12f1e icedtea6-1.5rc2 926c38e2b2830971f6ca0dff2ce25f78a694b178 icedtea6-1.5rc3 -9420faca6468e1c75e9bfa73b31246ba0b73a77d icedtea-1.6-branchpoint -8826d5735e2ca97ecdb35e7c977785d3e5b99556 icedtea-1.7-branchpoint -9420faca6468e1c75e9bfa73b31246ba0b73a77d icedtea6-1.8-branchpoint +9420faca6468e1c75e9bfa73b31246ba0b73a77d icedtea6-1.6-branchpoint +8826d5735e2ca97ecdb35e7c977785d3e5b99556 icedtea6-1.7-branchpoint +1188b1a313b9e968d57ff44eb879d70f543b20fd icedtea6-1.8-branchpoint cb463b94b82da269ea089c481ed5e39700525a8a icedtea6-1.9-branchpoint 21f2a8d158545a161ba0d997c13bdba1e6166394 icedtea6-1.10-branchpoint diff -r 84ca681adf9a -r 0911ad28ea98 AUTHORS --- a/AUTHORS Thu Mar 03 01:49:30 2011 +0000 +++ b/AUTHORS Thu Jul 07 14:19:34 2011 +0100 @@ -8,6 +8,7 @@ Deepak Bhole Tom Callaway Pablo del Campo +Danesh Dadachanji Thomas Fitzsimmons Matthew Flaschen Michael Franz @@ -19,9 +20,11 @@ Ioana Ivan Matthias Klose Francis Kung +Denis Lila DJ Lucas Omair Majid Casey Marshall +Paul Maurer Dan Munckton Raif Naffah Parag Nemade @@ -30,6 +33,7 @@ Bernhard Rosenkr??nzer Marc Schoenefeld Keith Seitz +Andrew Su Joshua Sumali Pavel Tisnovsky Christian Thalinger diff -r 84ca681adf9a -r 0911ad28ea98 ChangeLog --- a/ChangeLog Thu Mar 03 01:49:30 2011 +0000 +++ b/ChangeLog Thu Jul 07 14:19:34 2011 +0100 @@ -1,3 +1,1203 @@ +2011-07-07 Andrew John Hughes + + * Makefile.am: + (OPENJDK_DATE): Updated. + (OPENJDK_SHA256SUM): Replaces OPENJDK_MD5SUM. + (download-openjdk): Use sha256 as with all + other bundles. + (download-hotspot): Likewise. + * configure.ac: Remove check for md5sum. + * hotspot.map: Move to sha256. + +2011-07-07 Pavel Tisnovsky + + * Makefile.am: added new patches + * NEWS: updated with backports + * patches/openjdk/6842838-64-bit_failure_in_handling_invalid_manifest.patch: + * patches/openjdk/6882768-test_for_6842838_is_broken.patch: + Backport of 6842838 and 6882768. + +2011-07-07 Pavel Tisnovsky + + * patches/openjdk/6679308-Poor_text_rendering_on_translucent_image.patch: + Fixed test location (added missing prefix 'jdk' into path). + +2011-07-06 Andrew John Hughes + + Make JPEG classes more binary compatible with + Oracle versions. + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/ImageFormatException.java: + Extend RuntimeException. + (ImageFormatException()): Call superclass constructor. + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGCodec.java: + (JPEGCodec()): Make explicit private constructor to prevent implicit public one. + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGHuffmanTable.java: + Don't extend javax.imageio.plugins.jpeg.JPEGHuffmanTable. + (lengths): Added. + (symbols): Added. + (JPEGHuffmanTable(short[], short[])): Perform checks outlined in documentation. + (getLengths()): Added. + (getSymbols()): Return symbols. + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGImageEncoder.java: + (getDefaultColorId(ColorModel)): Fix typo (was DefaultColorID). + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/TruncatedFileException.java: + (TruncatedFileException(BufferedImage)): Add missing constructor. + (TruncatedFileException(Raster)): Likewise. + (getBufferedImage()): Implemented. + (getRaster()): Add missing method. + (TruncatedFileException()): Removed. + (TruncatedFileException(String)): Likewise. + * overlays/jpeg/openjdk/jdk/src/share/classes/sun/awt/image/codec/JPEGImageDecoderImpl.java: + (decodeAsBufferedImage()): Remove unneeded qualification and convert from com.sun JPEGHuffmanTable + to javax.imageio one. + * overlays/jpeg/openjdk/jdk/src/share/classes/sun/awt/image/codec/JPEGImageEncoderImpl.java: + (getDefaultColorId(ColorModel)): Fix typo (was DefaultColorID). + * NEWS: Updated. + +2011-07-06 Andrew John Hughes + + * patches/security/20110215/6878713.patch, + * patches/security/20110607/6213702.patch, + * patches/security/20110607/6618658.patch, + * patches/security/20110607/7012520.patch, + * patches/security/20110607/7013519.patch, + * patches/security/20110607/7013969.patch, + * patches/security/20110607/7013971.patch, + * patches/security/20110607/7016495.patch, + * patches/security/20110607/7020198.patch, + * patches/security/20110607/7020373.patch: + Removed; upstream. + * Makefile.am: + (JAXWS_DROP_ZIP): Updatede. + (JAXWS_DROP_SHA256SUM): Likewise. + (JAXP_DROP_ZIP): Likewise. + (JAXP_DROP_SHA256SUM): Likewise. + (SECURITY_PATCHES): Set to empty. + * patches/xjc.patch: Revert to pre-security + patch version (security patch is now part of the + tarball, not a patch) + +2011-07-06 Andrew John Hughes + + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/ImageFormatException.java, + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGCodec.java, + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGDecodeParam.java, + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGEncodeParam.java, + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGHuffmanTable.java, + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGImageDecoder.java, + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGImageEncoder.java, + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGQTable.java, + * overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/TruncatedFileException.java, + * overlays/jpeg/openjdk/jdk/src/share/classes/sun/awt/image/codec/JPEGImageDecoderImpl.java, + * overlays/jpeg/openjdk/jdk/src/share/classes/sun/awt/image/codec/JPEGImageEncoderImpl.java, + * overlays/jpeg/openjdk/jdk/src/share/classes/sun/awt/image/codec/JPEGParam.java: + Normalise whitespace using Oracle normaliser. + +2011-07-01 Pavel Tisnovsky + + * Makefile.am: added new patches + * NEWS: updated with backports + * patches/openjdk/6679308-Poor_text_rendering_on_translucent_image.patch: + Backport of 6679308. + +2011-07-01 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/7029152-String_intrinsics_miss_optimization.patch: + Backport of 7029152 fix. + +2011-06-29 Andrew John Hughes + + * NEWS: Updated with latest bug fixes. + +2011-06-29 Andrew John Hughes + + * patches/ecj/jaxws-getdtdtype.patch: + Fix patch to still apply after recent + security updates. + +2011-06-29 Andrew John Hughes + + * acinclude.m4: + (IT_FIND_JAVA): Check that the binary is also + a regular file as well as executable. + (IT_FIND_JAVAH): Likewise. + (IT_FIND_JAR): Likewise. + (IT_FIND_RMIC): Likewise. + (IT_FIND_NATIVE2ASCII): Likewise. + +2011-06-29 Pavel Tisnovsky + + * Makefile.am: added new patches + * NEWS: updated with backports + * patches/openjdk/6796786-invalid_FP_identity_transform.patch: + * patches/openjdk/7042070-Typo_in_Test6796786.patch: + Backport of 6796786 and 7042070 fixes. + +2011-06-29 Pavel Tisnovsky + + * Makefile.am: added new patches + * NEWS: updated with backports + * patches/openjdk/7047069-Array_can_dynamically_change_size.patch: + Backport of 7047069 fix. + +2011-06-28 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/6785424-SecurityException_locating_physical_fonts.patch: + Backport of 6785424 fix. + +2011-06-28 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/6783910-java_awt_Color_brighter_darker_fix.patch: + Backport of 6783910 fix. + +2011-06-28 Andrew John Hughes + + * Makefile.am: Add new patch. + * patches/support_linux_3.patch: + Allow Linux 3* through the HotSpot OS version + filter. + +2011-06-27 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/6623219-Font_canDisplayUpTo_does_not_work.patch + Backport of 6623219 fix. + +2011-06-27 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/6918065-Crash_in_Java2D_blit_loop.patch: + Backport of 6918065 fix. + +2011-06-27 Xerxes R??nby + + JamVM + - Make classlib init functions consistent + warnings. + - Correctly implement sun.misc.Unsafe freeMemory(). + - Move lazy-loading to init function. + - Fix various warnings with -Wall. + - PrintThreadsDump needs "self" as argument. + - CopyMemory, etc. handle negative or truncation in length. + - Extra sun.misc.Unsafe functions. + - Ignore options for jtreg tests. + - Enable shutdownVM to be called with OpenJDK classlib. + - Initial implementation of JVM_FindClassFromBootLoader. + - Fix callJNIMethod on i386 with -fomit-frame-pointer. + - Fix backwards cache conflict resolution code. + - Unify command line options parsing. + - Remove debug printf. + * NEWS: Updated. + * Makefile.am + (ICEDTEA_PATCHES): Remove upstreamed JamVM patch. + (JAMVM_VERSION): Updated JamVM to 2011-06-13 revision. + (JAMVM_SHA256SUM): Updated. + (stamps/jamvm.stamp): + Add -f when creating client symlink to handle repeat builds. + Link the fake libjsig.so to JamVM libjvm.so to work + with latest OpenJDK ALT_HOTSPOT_IMPORT_PATH functionality. + * patches/jamvm/ignore-unknown-options.patch: Removed. + Replaced by upstream, unify command line options parsing, + changeset 1b248439e88ae6cbd1471addc49e2666b8964ced. + +2011-06-24 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/6699843-IllegalArgumentException_drawString.patch: + Backport of 6699843 fix. + +2011-06-24 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/6956668-misbehavior_of_XOR_operator_with_int: + Backport of 6956668 fix. + +2011-06-23 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/7008106-WindowOpacity.patch: + Backport of 7008106 regression test fix. + +2011-06-23 Pavel Tisnovsky + + * Makefile.am: added new patch + * patches/jtreg-MappedByteBuffer-Basic.patch: + Make sure that the regression test + openjdk/jdk/test/java/nio/MappedByteBuffer/Basic.java + deletes all its work files. + +2011-06-22 Pavel Tisnovsky + + * Makefile.am: added new patch + * patches/openjdk/6818312-com.sun.awt.SecurityWarning.getSize.patch: + Backport of 6818312 regression test. + +2011-06-22 Pavel Tisnovsky + + * Makefile.am: Added new patch. + * patches/jtreg-ReadWriteProfileTest.patch: + Added regression test missing from 6733501 backport. + +2011-06-22 Pavel Tisnovsky + + * patches/jtreg-png-reader.patch: + Added new regression test which check if PNG + images read by ImageIO subsytstem contains + proper pixel values. + +2011-06-20 Denis Lila + + * pulseaudio/src/native/org_classpath_icedtea_pulseaudio_Stream.c + (SET_STREAM_ENUM): Add an underscore after java_prefix so that + the produced string matches the names in Stream.java. + +2011-06-20 Denis Lila + + * Makefile.am: Add patch. + * patches/jtreg-bug7036148-test.patch: + Fix regression test. It used to never end, regardless of + success/failure. + +2011-06-20 Denis Lila + + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioDataLine.java + (bufferSize): Remove. + (getBufferSize): Return stream.getBufferSize(). + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java + (connectLine): Improve formatting. + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java + (connectLine): Set up flags to adjust the latency, if needed. + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Stream.java + (bufAttr, bufAttrMutex): New members. + (setBufAttr, bufferAttrCallback): New methods. They both set bufAttr. + (getBufferSize): Return the current buffer size. + (connectForRecording): Add a flags argument to allow callers to chose the + flags. + (stateCallback): When the stream is ready, set the buffer attributes to + the actual ones used by the server. + * pulseaudio/src/native/org_classpath_icedtea_pulseaudio_Stream.c + (buf_attr_changed_callback): New function. + (Java_org_classpath_icedtea_pulseaudio_Stream_native_1pa_1stream_1new): + Set the buffer attribute callback. + +2011-06-17 Denis Lila + + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Stream.java + (FLAG_NOFLAGS, FLAG_START_CORKED, FLAG_INTERPOLATE_TIMING, + FLAG_NOT_MONOTONIC, FLAG_AUTO_TIMING_UPDATE, FLAG_NO_REMAP_CHANNELS, + FLAG_NO_REMIX_CHANNELS, FLAG_FIX_FORMAT, FLAG_FIX_RATE, + FLAG_FIX_CHANNELS, FLAG_DONT_MOVE, FLAG_VARIABLE_RATE, FLAG_PEAK_DETECT, + FLAG_START_MUTED, FLAG_ADJUST_LATENCY, FLAG_EARLY_REQUESTS, + FLAG_DONT_INHIBIT_AUTO_SUSPEND, FLAG_START_UNMUTED, FLAG_FAIL_ON_SUSPEND): + New static long variables mirroring pa_stream_flag_t values. + (STATE_UNCONNECTED, STATE_CREATING, STATE_READY, STATE_FAILED, + STATE_TERMINATED): Add the STATE_ prefix to distinguish them from + the flag variables. + (native_pa_stream_connect_playback, native_pa_stream_connect_record): + Change flags parameter to long. + (connectForPlayback, connectForRecording): Start the stream corked. + Change formatting to make it more readable. + * pulseaudio/src/native/org_classpath_icedtea_pulseaudio_Stream.c + (SET_STREAM_ENUM): Renamed from SET_STREAM_STATE_ENUM, since the + macro could have been used for any PA_STREAM constants, not just + stream states (and indeed, we now use it for flag constants too). + (Java_org_classpath_icedtea_pulseaudio_Stream_init_1constants): + Initialize flag constants in addition to the stream states. + (Java_org_classpath_icedtea_pulseaudio_Stream_native_1pa_1stream_1connect_1playback): + Change flags parameter to jlong (from jint), remove commented out + dead code, remove obsolete comment, and start the stream with whatever + flags were passed in the flags parameter, instead of ignoring that + parameter and using PA_STREAM_START_CORKED. + (Java_org_classpath_icedtea_pulseaudio_Stream_native_1pa_1stream_1connect_1record): + Change flags parameter to jlong (from jint), remove commented out + dead code. + +2011-06-17 Pavel Tisnovsky + + * Makefile.am: added new patch + * patches/jtreg-ChannelsWrite.patch: + Make sure that the regression test + openjdk/jdk/test/java/nio/channels/Channels/Write.java + deletes all its work files. + +2011-06-16 Denis Lila + + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioDataLine.java + (addStreamListeners): Remove this.notifyAll() from + openCloseListener.update; change this.notifyAll() to + PulseAudioDataLine.this.notifyAll() in startedListener.update. + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java + (read): Put fragmentBuffer null check in the synchronized block. + (flush): Make it synchronized to avoid race condition with read(). + +2011-06-16 Denis Lila + + * Makefile.am: Add ContextEvent to the list of pulse audio classes that + need javah run on them. + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/ContextEvent.java + (Type): Remove and replace with... + (UNCONNECTED, CONNECTING, AUTHORIZING, SETTING_NAME, READY, FAILED, + TERMINATED): New static long variables replacing enum Type. + (init_constants): New native method to initialize the above variables. + (checkNativeEnumReturn): Make sure that the input is one of the longs + representing the type of ContextEvent. + (type): Change type from Type to long. + (ContextEvent): Take a long argument, instead of a Type. + (getType): Return a long, not a Type. + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/EventLoop.java + (status): Change from int to long. + (native_set_sink_volume): Remove. It was unimplemented in the JNI side. + (getStatus): Return long instead of int. + (update): Replace int argument with long argument. Remove the switch + statement. + (setVolume): Remove. Unused. + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Operation.java + (State): Remove and replace with... + (Running, Done, Cancelled): Static longs, enumerating the possible + operation states. + (init_constants): New native method to initialize the above variables. + (checkNativeOperationState): Make sure that the input is one of the longs + representing the operation state. + (native_get_state): Change return type from int to long. + (getState): Change return type to long; remove switch. + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioDataLine.java + Remove the names of enums from the names of constants since most of them + were changed to static longs. + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java + Same changes as in PulseAudioDataLine.java. + * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Stream.java + (State): Remove and replace with... + (UNCONNECTED, CREATING, READY, FAILED, TERMINATED): New static long variables + replacing enum Type. + (init_constants): New native method to initialize the above variables. + (checkNativeStreamState): Make sure that the input is one of the longs + representing the kind of StreamState. + (native_pa_stream_get_state): Change the return from int to long. + (getState): Remove the switch. + * pulseaudio/src/native/jni-common.h + (SET_JAVA_STATIC_LONG_FIELD_TO_PA_ENUM): Macro that sets one of the java + static longs to the corresponding pa_constant. + * pulseaudio/src/native/org_classpath_icedtea_pulseaudio_ContextEvent.c + New file. + (SET_CONTEXT_ENUM): Macro that sets the ContextEvent types. + (Java_org_classpath_icedtea_pulseaudio_ContextEvent_init_1constants): + Implementation of ContextEvent.init_constants. + * pulseaudio/src/native/org_classpath_icedtea_pulseaudio_EventLoop.c + (context_change_callback): Change the fourth argument of GetMethodID + to "(J)V" to reflect the change in the signature of EventLoop.update. + * pulseaudio/src/native/org_classpath_icedtea_pulseaudio_Operation.c + (SET_OP_ENUM): Macro that sets the operation types. + (Java_org_classpath_icedtea_pulseaudio_Operation_init_1constants): + Implementation of Operation.init_constants. + (Java_org_classpath_icedtea_pulseaudio_Operation_native_1get_1state): + Change return type to jlong. + * pulseaudio/src/native/org_classpath_icedtea_pulseaudio_Stream.c + (SET_STREAM_ENUM): Macro that sets the stream states. + (Java_org_classpath_icedtea_pulseaudio_Stream_init_1constants): + Implementation of Stream.init_constants. + (Java_org_classpath_icedtea_pulseaudio_Stream_native_1pa_1stream_1get_1state): + Change return type to jlong. + +2011-06-16 Pavel Tisnovsky + + * Makefile.am: fixed indentation (spaces2tabs) + +2011-06-16 Pavel Tisnovsky + + * Makefile.am: added new patch + * patches/jtreg-FileMap.patch: + Make sure that the regression test + openjdk/jdk/test/sun/net/www/protocol/file/FileMap.java + deletes all its work files. + +2011-06-15 Danesh Dadachanji + + * AUTHORS: Added myself. + * Makefile.am: Use explicit xml-commons locations if necessary. + * acinclude.m4: Added explicit xml-commons check. + (IT_CHECK_IF_INSTANTIABLE): Added generic macro to instantiate any + class. Paramaters are the define, name of the class, paramaters + for instatiation and (optional) classpath. + * configure.ac: Invoke IT_FIND_XML_COMMONS_APIS_JAR macro after + IT_FIND_XERCES2_JAR, assigns XML_COMMONS_APIS_JAR if necessary. + +2011-06-15 Denis Lila + + * Makefile.am: Add back the -classpath option to javah in + building the pulse audio header files. The bootstrap javah + doesn't recognize -J-Xbootclasspath/p: so it couldn't find + the classfiles. + +2011-06-15 Pavel Tisnovsky + + * Makefile.am: added new patch + * patches/jtreg-EncodedMultiByteChar.patch: + Make sure that the regression test + openjdk/jdk/test/sun/net/www/protocol/file/EncodedMultiByteChar.java + deletes all its work files. + +2011-06-14 Pavel Tisnovsky + From bugzilla-daemon at icedtea.classpath.org Thu Jul 7 19:21:45 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 08 Jul 2011 02:21:45 +0000 Subject: [Bug 754] New: error Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=754 Summary: error Product: VisualVM Harness Version: hg Platform: 32-bit OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: VisualVM AssignedTo: unassigned at icedtea.classpath.org ReportedBy: changmingivy at yahoo.com.cn # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x4ed28e82, pid=6284, tid=3078837952 # # JRE version: 6.0_22-b22 # Java VM: OpenJDK Client VM (20.0-b11 mixed mode linux-x86 ) # Derivative: IcedTea6 1.10.2 # Distribution: Fedora release 15 (Lovelock), package fedora-58.1.10.2.fc15-i386 # Problematic frame: # C [libxul.so+0xd88e82] CERT_GetCommonName+0xd88e82 # # 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. # --------------- T H R E A D --------------- Current thread (0x0812f800): JavaThread "main" [_thread_in_native, id=6284, stack(0xbfb15000,0xbfb65000)] siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0x0000005e Registers: EAX=0x00000066, EBX=0x4f4f3fc4, ECX=0x000000c5, EDX=0x00000000 ESP=0xbfb6081c, EBP=0x00000000, ESI=0xbfb61958, EDI=0x00121000 EIP=0x4ed28e82, EFLAGS=0x00210246, CR2=0x0000005e Top of Stack: (sp=0xbfb6081c) 0xbfb6081c: 4ed29e2b bfb6087c 4f4f3fc4 ffffffff 0xbfb6082c: bfb608ac bfb60878 4a887a30 fffffe56 0xbfb6083c: 00001000 bfb61958 00120000 bfb6091c 0xbfb6084c: 4ed293cf bfb61958 00120000 00000000 0xbfb6085c: 00001000 bfb60878 00001000 00120000 0xbfb6086c: 00000000 00000000 00000000 00000000 0xbfb6087c: 00000000 bfb608a8 bfb60910 bfb608c8 0xbfb6088c: 4ecfc773 bfb608b8 bfb608bc bfb60910 Instructions: (pc=0x4ed28e82) 0x4ed28e62: 08 89 54 24 04 8b 00 89 04 24 e8 d1 0e 00 00 8d 0x4ed28e72: 64 24 1c c3 8b 48 08 f6 c1 04 74 10 8b 00 31 d2 0x4ed28e82: 83 78 f8 01 7f 1a 8b 50 fc 4a eb 14 f6 c1 10 74 0x4ed28e92: 05 8b 50 0c eb 0a 31 d2 80 e1 08 74 03 8b 50 04 Register to memory mapping: EAX=0x00000066 is an unknown value EBX=0x4f4f3fc4: in /usr/lib/xulrunner-2/libxul.so at 0x4dfa0000 ECX=0x000000c5 is an unknown value EDX=0x00000000 is an unknown value ESP=0xbfb6081c is pointing into the stack for thread: 0x0812f800 EBP=0x00000000 is an unknown value ESI=0xbfb61958 is pointing into the stack for thread: 0x0812f800 EDI=0x00121000: in /home/xyd/.eclipse/org.eclipse.platform_3.5.0_313540916/configuration/org.eclipse.osgi/bundles/146/1/.cp/libswt-atk-gtk-3550.so at 0x00121000 Stack: [0xbfb15000,0xbfb65000], sp=0xbfb6081c, free space=302k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) C [libxul.so+0xd88e82] CERT_GetCommonName+0xd88e82 [error occurred during error reporting (printing native stack), id 0xb] Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) [error occurred during error reporting (printing Java stack), id 0xb] --------------- P R O C E S S --------------- Java Threads: ( => current thread ) 0x08737800 JavaThread "Additional info timer" [_thread_blocked, id=6384, stack(0x667f3000,0x66844000)] 0x085b3000 JavaThread "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon [_thread_blocked, id=6374, stack(0x66844000,0x66895000)] 0x64e0f800 JavaThread "Worker-9" [_thread_blocked, id=6368, stack(0x64baf000,0x64c00000)] 0x68fc4800 JavaThread "Worker-8" [_thread_blocked, id=6367, stack(0x64d0d000,0x64d5e000)] 0x68df9400 JavaThread "Worker-7" [_thread_blocked, id=6366, stack(0x64d5e000,0x64daf000)] 0x0866a000 JavaThread "Worker-6" [_thread_blocked, id=6365, stack(0x64daf000,0x64e00000)] 0x083f5800 JavaThread "Worker-5" [_thread_blocked, id=6364, stack(0x64f45000,0x64f96000)] 0x68f62000 JavaThread "Worker-4" [_thread_blocked, id=6363, stack(0x667a2000,0x667f3000)] 0x68df8c00 JavaThread "Worker-3" [_thread_blocked, id=6362, stack(0x688af000,0x68900000)] 0x64e02800 JavaThread "Worker-2" [_thread_blocked, id=6361, stack(0x674af000,0x67500000)] 0x68f54c00 JavaThread "Java indexing" daemon [_thread_blocked, id=6313, stack(0x67303000,0x67354000)] 0x67547800 JavaThread "Worker-1" [_thread_blocked, id=6311, stack(0x673a3000,0x673f4000)] 0x083af000 JavaThread "Worker-0" [_thread_blocked, id=6309, stack(0x67634000,0x67685000)] 0x68f03400 JavaThread "[Timer] - Main Queue Handler" daemon [_thread_blocked, id=6308, stack(0x6885e000,0x688af000)] 0x68c4dc00 JavaThread "Framework Event Dispatcher" daemon [_thread_blocked, id=6306, stack(0x68a0b000,0x68a5c000)] 0x0824a800 JavaThread "Start Level Event Dispatcher" daemon [_thread_blocked, id=6305, stack(0x68a5c000,0x68aad000)] 0x0825e000 JavaThread "State Data Manager" daemon [_thread_blocked, id=6304, stack(0x68aad000,0x68afe000)] 0x0819a000 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=6302, stack(0x68e0d000,0x68e5e000)] 0x08198400 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=6301, stack(0x68b7f000,0x68c00000)] 0x08196c00 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=6300, stack(0x68e5e000,0x68eaf000)] 0x08187c00 JavaThread "Finalizer" daemon [_thread_blocked, id=6299, stack(0x68eaf000,0x68f00000)] 0x08186400 JavaThread "Reference Handler" daemon [_thread_blocked, id=6298, stack(0x69032000,0x69083000)] =>0x0812f800 JavaThread "main" [_thread_in_native, id=6284, stack(0xbfb15000,0xbfb65000)] Other Threads: 0x08182800 VMThread [stack: 0x69083000,0x69104000] [id=6297] 0x081a4800 WatcherThread [stack: 0x68afe000,0x68b7f000] [id=6303] VM state:not at safepoint (normal execution) VM Mutex/Monitor currently owned by a thread: None Heap def new generation total 104576K, used 5615K [0x696f0000, 0x70860000, 0x7d590000) eden space 92992K, 6% used [0x696f0000, 0x69c6bf00, 0x6f1c0000) from space 11584K, 0% used [0x6fd10000, 0x6fd10000, 0x70860000) to space 11584K, 0% used [0x6f1c0000, 0x6f1c0000, 0x6fd10000) tenured generation total 232128K, used 32783K [0x7d590000, 0x8b840000, 0xa52f0000) the space 232128K, 14% used [0x7d590000, 0x7f593d38, 0x7f593e00, 0x8b840000) compacting perm gen total 46336K, used 46143K [0xa52f0000, 0xa8030000, 0xb52f0000) the space 46336K, 99% used [0xa52f0000, 0xa7fffe48, 0xa8000000, 0xa8030000) No shared spaces configured. Code Cache [0xb537f000, 0xb5c07000, 0xb737f000) total_blobs=3425 nmethods=3204 adapters=153 free_code_cache=24634752 largest_free_block=320 Dynamic libraries: 00110000-00117000 r-xp 00000000 fd:01 1582696 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libzip.so 00117000-00118000 rw-p 00006000 fd:01 1582696 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libzip.so 00118000-0011d000 r-xp 00000000 fd:01 1449973 /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-gif.so 0011d000-0011e000 rw-p 00005000 fd:01 1449973 /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-gif.so 0011e000-00120000 r-xp 00000000 fd:01 2360032 /lib/libnss_mdns4_minimal.so.2 00120000-00121000 rw-p 00001000 fd:01 2360032 /lib/libnss_mdns4_minimal.so.2 00121000-00127000 r-xp 00000000 fd:02 15205658 /home/xyd/.eclipse/org.eclipse.platform_3.5.0_313540916/configuration/org.eclipse.osgi/bundles/146/1/.cp/libswt-atk-gtk-3550.so 00127000-00128000 rw-p 00005000 fd:02 15205658 /home/xyd/.eclipse/org.eclipse.platform_3.5.0_313540916/configuration/org.eclipse.osgi/bundles/146/1/.cp/libswt-atk-gtk-3550.so 00128000-00168000 r-xp 00000000 fd:01 1076584 /usr/lib/libibus-1.0.so.0.0.0 00168000-0016a000 rw-p 0003f000 fd:01 1076584 /usr/lib/libibus-1.0.so.0.0.0 0016a000-00180000 r-xp 00000000 fd:01 1057651 /usr/lib/libgvfscommon.so.0.0.0 00180000-00181000 rw-p 00016000 fd:01 1057651 /usr/lib/libgvfscommon.so.0.0.0 00181000-00186000 r-xp 00000000 fd:02 15205660 /home/xyd/.eclipse/org.eclipse.platform_3.5.0_313540916/configuration/org.eclipse.osgi/bundles/146/1/.cp/libswt-xpcominit-gtk-3550.so 00186000-00188000 rw-p 00005000 fd:02 15205660 /home/xyd/.eclipse/org.eclipse.platform_3.5.0_313540916/configuration/org.eclipse.osgi/bundles/146/1/.cp/libswt-xpcominit-gtk-3550.so 00188000-0019f000 r-xp 00000000 fd:02 15205661 /home/xyd/.eclipse/org.eclipse.platform_3.5.0_313540916/configuration/org.eclipse.osgi/bundles/146/1/.cp/libswt-mozilla-gtk-3550.so 0019f000-001a0000 rw-p 00017000 fd:02 15205661 /home/xyd/.eclipse/org.eclipse.platform_3.5.0_313540916/configuration/org.eclipse.osgi/bundles/146/1/.cp/libswt-mozilla-gtk-3550.so 001a0000-001f9000 r-xp 00000000 fd:01 1057646 /usr/lib/libXt.so.6.0.0 001f9000-001fd000 rw-p 00059000 fd:01 1057646 /usr/lib/libXt.so.6.0.0 001fd000-001ff000 r-xp 00000000 fd:01 1442599 /usr/lib/gconv/UTF-16.so 001ff000-00200000 r--p 00001000 fd:01 1442599 /usr/lib/gconv/UTF-16.so 00200000-00201000 rw-p 00002000 fd:01 1442599 /usr/lib/gconv/UTF-16.so 002f2000-002fd000 r-xp 00000000 fd:01 2360033 /lib/libnss_files-2.14.so 002fd000-002fe000 r--p 0000a000 fd:01 2360033 /lib/libnss_files-2.14.so 002fe000-002ff000 rw-p 0000b000 fd:01 2360033 /lib/libnss_files-2.14.so 00442000-00446000 rwxp 00000000 00:00 0 00446000-0072f000 r-xp 00000000 fd:01 1192417 /usr/lib/xulrunner-2/libmozjs.so 0072f000-00780000 rw-p 002e8000 fd:01 1192417 /usr/lib/xulrunner-2/libmozjs.so 00783000-0078e000 r-xp 00000000 fd:01 1582695 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libverify.so 0078e000-0078f000 rw-p 0000b000 fd:01 1582695 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libverify.so 0080d000-00817000 r-xp 00000000 fd:02 15205659 /home/xyd/.eclipse/org.eclipse.platform_3.5.0_313540916/configuration/org.eclipse.osgi/bundles/146/1/.cp/libswt-cairo-gtk-3550.so 00817000-00818000 rw-p 00009000 fd:02 15205659 /home/xyd/.eclipse/org.eclipse.platform_3.5.0_313540916/configuration/org.eclipse.osgi/bundles/146/1/.cp/libswt-cairo-gtk-3550.so 0081b000-00821000 r-xp 00000000 fd:01 2360031 /lib/libnss_dns-2.14.so 00821000-00822000 r--p 00005000 fd:01 2360031 /lib/libnss_dns-2.14.so 00822000-00823000 rw-p 00006000 fd:01 2360031 /lib/libnss_dns-2.14.so 00883000-008b1000 r-xp 00000000 fd:01 1192207 /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so 008b1000-008b2000 rw-p 0002d000 fd:01 1192207 /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so 008ec000-008ee000 r-xp 00000000 fd:02 1442703 /home/xyd/.eclipse/org.eclipse.platform_3.5.0_313540916/configuration/org.eclipse.osgi/bundles/28/1/.cp/os/linux/x86/liblocalfile_1_0_0.so 008ee000-008ef000 rw-p 00001000 fd:02 1442703 /home/xyd/.eclipse/org.eclipse.platform_3.5.0_313540916/configuration/org.eclipse.osgi/bundles/28/1/.cp/os/linux/x86/liblocalfile_1_0_0.so 00a53000-00a68000 r-xp 00000000 fd:01 1582687 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libnet.so 00a68000-00a69000 rw-p 00014000 fd:01 1582687 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libnet.so 00ac4000-00aea000 r-xp 00000000 fd:01 1582676 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libjava.so 00aea000-00aec000 rw-p 00026000 fd:01 1582676 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libjava.so 00c46000-00c4c000 r-xp 00000000 fd:01 1197543 /usr/lib/gtk-2.0/2.10.0/immodules/im-ibus.so 00c4c000-00c4d000 rw-p 00005000 fd:01 1197543 /usr/lib/gtk-2.0/2.10.0/immodules/im-ibus.so 00ce4000-00d39000 r-xp 00000000 fd:02 15205656 /home/xyd/.eclipse/org.eclipse.platform_3.5.0_313540916/configuration/org.eclipse.osgi/bundles/146/1/.cp/libswt-pi-gtk-3550.so 00d39000-00d3c000 rw-p 00054000 fd:02 15205656 /home/xyd/.eclipse/org.eclipse.platform_3.5.0_313540916/configuration/org.eclipse.osgi/bundles/146/1/.cp/libswt-pi-gtk-3550.so 00d74000-00d77000 r-xp 00000000 fd:02 15205020 /home/xyd/.eclipse/org.eclipse.platform_3.5.0_313540916/configuration/org.eclipse.osgi/bundles/146/1/.cp/libswt-gtk-3550.so 00d77000-00d78000 rw-p 00002000 fd:02 15205020 /home/xyd/.eclipse/org.eclipse.platform_3.5.0_313540916/configuration/org.eclipse.osgi/bundles/146/1/.cp/libswt-gtk-3550.so 00d78000-00d79000 rw-p 00000000 00:00 0 00dcb000-00dce000 r-xp 00000000 fd:01 1449972 /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-bmp.so 00dce000-00dcf000 rw-p 00002000 fd:01 1449972 /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-bmp.so 00e1a000-00e44000 r-xp 00000000 fd:01 1078690 /usr/lib/gio/modules/libgvfsdbus.so 00e44000-00e45000 rw-p 0002a000 fd:01 1078690 /usr/lib/gio/modules/libgvfsdbus.so 00e9b000-00ea6000 r-xp 00000000 fd:02 1442009 /home/xyd/software/eclipse/plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.0.200.v20090520/eclipse_1206.so 00ea6000-00ea7000 rw-p 0000a000 fd:02 1442009 /home/xyd/software/eclipse/plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.0.200.v20090520/eclipse_1206.so 00eb2000-00eba000 r-xp 00000000 fd:01 1582688 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libnio.so 00eba000-00ebb000 rw-p 00007000 fd:01 1582688 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libnio.so 00f1e000-00f1f000 r-xp 00000000 00:00 0 [vdso] 00f1f000-01432000 r-xp 00000000 fd:01 1582662 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/client/libjvm.so 01432000-01455000 rw-p 00513000 fd:01 1582662 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/client/libjvm.so 01455000-0186d000 rw-p 00000000 00:00 0 08048000-0804c000 r-xp 00000000 fd:02 15340413 /home/xyd/software/eclipse/eclipse 0804c000-0804d000 rw-p 00003000 fd:02 15340413 /home/xyd/software/eclipse/eclipse 080cc000-088c0000 rw-p 00000000 00:00 0 [heap] 4a874000-4a891000 r-xp 00000000 fd:01 2359998 /lib/ld-2.14.so 4a891000-4a892000 r--p 0001d000 fd:01 2359998 /lib/ld-2.14.so 4a892000-4a893000 rw-p 0001e000 fd:01 2359998 /lib/ld-2.14.so 4a895000-4aa1a000 r-xp 00000000 fd:01 2360060 /lib/libc-2.14.so 4aa1a000-4aa1c000 r--p 00184000 fd:01 2360060 /lib/libc-2.14.so 4aa1c000-4aa1d000 rw-p 00186000 fd:01 2360060 /lib/libc-2.14.so 4aa1d000-4aa20000 rw-p 00000000 00:00 0 4aa22000-4aa25000 r-xp 00000000 fd:01 2360117 /lib/libdl-2.14.so 4aa25000-4aa26000 r--p 00002000 fd:01 2360117 /lib/libdl-2.14.so 4aa26000-4aa27000 rw-p 00003000 fd:01 2360117 /lib/libdl-2.14.so 4aa29000-4aa3f000 r-xp 00000000 fd:01 2364025 /lib/libpthread-2.14.so 4aa3f000-4aa40000 r--p 00015000 fd:01 2364025 /lib/libpthread-2.14.so 4aa40000-4aa41000 rw-p 00016000 fd:01 2364025 /lib/libpthread-2.14.so 4aa41000-4aa43000 rw-p 00000000 00:00 0 4aa45000-4aa6d000 r-xp 00000000 fd:01 2367380 /lib/libm-2.14.so 4aa6d000-4aa6e000 r--p 00028000 fd:01 2367380 /lib/libm-2.14.so 4aa6e000-4aa6f000 rw-p 00029000 fd:01 2367380 /lib/libm-2.14.so 4aa71000-4aa78000 r-xp 00000000 fd:01 2368256 /lib/librt-2.14.so 4aa78000-4aa79000 r--p 00006000 fd:01 2368256 /lib/librt-2.14.so 4aa79000-4aa7a000 rw-p 00007000 fd:01 2368256 /lib/librt-2.14.so 4aa7c000-4aa98000 r-xp 00000000 fd:01 2368149 /lib/libgcc_s-4.6.0-20110530.so.1 4aa98000-4aa99000 rw-p 0001b000 fd:01 2368149 /lib/libgcc_s-4.6.0-20110530.so.1 4aa9b000-4aab0000 r-xp 00000000 fd:01 2368150 /lib/libz.so.1.2.5 4aab0000-4aab1000 rw-p 00014000 fd:01 2368150 /lib/libz.so.1.2.5 4aab3000-4aad0000 r-xp 00000000 fd:01 2368205 /lib/libselinux.so.1 4aad0000-4aad1000 r--p 0001c000 fd:01 2368205 /lib/libselinux.so.1 4aad1000-4aad2000 rw-p 0001d000 fd:01 2368205 /lib/libselinux.so.1 4aad4000-4abec000 r-xp 00000000 fd:01 2368267 /lib/libglib-2.0.so.0.2800.8 4abec000-4abed000 rw-p 00118000 fd:01 2368267 /lib/libglib-2.0.so.0.2800.8 4abef000-4ac05000 r-xp 00000000 fd:01 2368204 /lib/libresolv-2.14.so 4ac05000-4ac06000 r--p 00016000 fd:01 2368204 /lib/libresolv-2.14.so 4ac06000-4ac07000 rw-p 00017000 fd:01 2368204 /lib/libresolv-2.14.so 4ac07000-4ac09000 rw-p 00000000 00:00 0 4ac0b000-4ac28000 r-xp 00000000 fd:01 1056942 /usr/lib/libxcb.so.1.1.0 4ac28000-4ac29000 rw-p 0001d000 fd:01 1056942 /usr/lib/libxcb.so.1.1.0 4ac2b000-4ac2d000 r-xp 00000000 fd:01 1054602 /usr/lib/libXau.so.6.0.0 4ac2d000-4ac2e000 rw-p 00001000 fd:01 1054602 /usr/lib/libXau.so.6.0.0 4ac30000-4ac34000 r-xp 00000000 fd:01 2368268 /lib/libgthread-2.0.so.0.2800.8 4ac34000-4ac35000 rw-p 00003000 fd:01 2368268 /lib/libgthread-2.0.so.0.2800.8 4ac37000-4ad6c000 r-xp 00000000 fd:01 1057005 /usr/lib/libX11.so.6.3.0 4ad6c000-4ad70000 rw-p 00134000 fd:01 1057005 /usr/lib/libX11.so.6.3.0 4ad72000-4ad82000 r-xp 00000000 fd:01 1057006 /usr/lib/libXext.so.6.4.0 4ad82000-4ad83000 rw-p 00010000 fd:01 1057006 /usr/lib/libXext.so.6.4.0 4ad85000-4add1000 r-xp 00000000 fd:01 2368269 /lib/libgobject-2.0.so.0.2800.8 4add1000-4add3000 rw-p 0004b000 fd:01 2368269 /lib/libgobject-2.0.so.0.2800.8 4add5000-4add9000 r-xp 00000000 fd:01 1061729 /usr/lib/libXfixes.so.3.1.0 4add9000-4adda000 rw-p 00003000 fd:01 1061729 /usr/lib/libXfixes.so.3.1.0 4addc000-4ae02000 r-xp 00000000 fd:01 2368173 /lib/libexpat.so.1.5.2 4ae02000-4ae04000 rw-p 00026000 fd:01 2368173 /lib/libexpat.so.1.5.2 4ae06000-4ae2e000 r-xp 00000000 fd:01 1054638 /usr/lib/libpng12.so.0.44.0 4ae2e000-4ae2f000 rw-p 00027000 fd:01 1054638 /usr/lib/libpng12.so.0.44.0 4ae31000-4ae35000 r-xp 00000000 fd:01 2368266 /lib/libuuid.so.1.3.0 4ae35000-4ae36000 rw-p 00003000 fd:01 2368266 /lib/libuuid.so.1.3.0 4ae38000-4aece000 r-xp 00000000 fd:01 1054687 /usr/lib/libfreetype.so.6.6.2 4aece000-4aed2000 rw-p 00095000 fd:01 1054687 /usr/lib/libfreetype.so.6.6.2 4aed4000-4af07000 r-xp 00000000 fd:01 1055708 /usr/lib/libfontconfig.so.1.4.4 4af07000-4af08000 rw-p 00033000 fd:01 1055708 /usr/lib/libfontconfig.so.1.4.4 4af0a000-4af0d000 r-xp 00000000 fd:01 2368272 /lib/libgmodule-2.0.so.0.2800.8 4af0d000-4af0e000 rw-p 00002000 fd:01 2368272 /lib/libgmodule-2.0.so.0.2800.8 4af10000-4af19000 r-xp 00000000 fd:01 1061723 /usr/lib/libXrender.so.1.3.0 4af19000-4af1a000 rw-p 00008000 fd:01 1061723 /usr/lib/libXrender.so.1.3.0 4af1c000-4affe000 r-xp 00000000 fd:01 1053327 /usr/lib/libstdc++.so.6.0.16 4affe000-4b002000 r--p 000e1000 fd:01 1053327 /usr/lib/libstdc++.so.6.0.16 4b002000-4b004000 rw-p 000e5000 fd:01 1053327 /usr/lib/libstdc++.so.6.0.16 4b004000-4b00a000 rw-p 00000000 00:00 0 4b00c000-4b01a000 r-xp 00000000 fd:01 1057080 /usr/lib/libXi.so.6.1.0 4b01a000-4b01b000 rw-p 0000d000 fd:01 1057080 /usr/lib/libXi.so.6.1.0 4b01d000-4b01f000 r-xp 00000000 fd:01 1061727 /usr/lib/libXinerama.so.1.0.0 4b01f000-4b020000 rw-p 00001000 fd:01 1061727 /usr/lib/libXinerama.so.1.0.0 4b022000-4b029000 r-xp 00000000 fd:01 1057480 /usr/lib/libSM.so.6.0.1 4b029000-4b02a000 rw-p 00006000 fd:01 1057480 /usr/lib/libSM.so.6.0.1 4b02c000-4b033000 r-xp 00000000 fd:01 1061728 /usr/lib/libXrandr.so.2.2.0 4b033000-4b034000 rw-p 00006000 fd:01 1061728 /usr/lib/libXrandr.so.2.2.0 4b036000-4b04c000 r-xp 00000000 fd:01 1057402 /usr/lib/libICE.so.6.3.0 4b04c000-4b04e000 rw-p 00015000 fd:01 1057402 /usr/lib/libICE.so.6.3.0 4b04e000-4b04f000 rw-p 00000000 00:00 0 4b051000-4b17b000 r-xp 00000000 fd:01 2368277 /lib/libgio-2.0.so.0.2800.8 4b17b000-4b17e000 rw-p 00129000 fd:01 2368277 /lib/libgio-2.0.so.0.2800.8 4b17e000-4b17f000 rw-p 00000000 00:00 0 4b181000-4b18a000 r-xp 00000000 fd:01 1061730 /usr/lib/libXcursor.so.1.0.2 4b18a000-4b18b000 rw-p 00008000 fd:01 1061730 /usr/lib/libXcursor.so.1.0.2 4b18d000-4b1d4000 r-xp 00000000 fd:01 2368523 /lib/libdbus-1.so.3.5.4 4b1d4000-4b1d5000 r--p 00047000 fd:01 2368523 /lib/libdbus-1.so.3.5.4 4b1d5000-4b1d6000 rw-p 00048000 fd:01 2368523 /lib/libdbus-1.so.3.5.4 4b1d8000-4b1da000 r-xp 00000000 fd:01 1061732 /usr/lib/libXdamage.so.1.1.0 4b1da000-4b1db000 rw-p 00001000 fd:01 1061732 /usr/lib/libXdamage.so.1.1.0 4b1dd000-4b1ff000 r-xp 00000000 fd:01 1061734 /usr/lib/libgdk_pixbuf-2.0.so.0.2300.3 4b1ff000-4b200000 rw-p 00021000 fd:01 1061734 /usr/lib/libgdk_pixbuf-2.0.so.0.2300.3 4b202000-4b205000 r-xp 00000000 fd:01 1193252 /usr/lib/xulrunner-2/libxpcom.so 4b205000-4b206000 rw-p 00003000 fd:01 1193252 /usr/lib/xulrunner-2/libxpcom.so 4b208000-4b20a000 r-xp 00000000 fd:01 1189833 /usr/lib/xulrunner-2/libmozalloc.so 4b20a000-4b20b000 rw-p 00001000 fd:01 1189833 /usr/lib/xulrunner-2/libmozalloc.so 4b27b000-4b2ec000 r-xp 00000000 fd:01 1072455 /usr/lib/libvpx.so.0.9.6 4b2ec000-4b2ed000 rw-p 00071000 fd:01 1072455 /usr/lib/libvpx.so.0.9.6 4b2ed000-4b2f8000 rw-p 00000000 00:00 0 4b3cf000-4b3fb000 r-xp 00000000 fd:01 1061725 /usr/lib/libpangoft2-1.0.so.0.2800.4 4b3fb000-4b3fc000 rw-p 0002b000 fd:01 1061725 /usr/lib/libpangoft2-1.0.so.0.2800.4 4b3fe000-4b4b2000 r-xp 00000000 fd:01 1061724 /usr/lib/libcairo.so.2.11000.2 4b4b2000-4b4b4000 rw-p 000b3000 fd:01 1061724 /usr/lib/libcairo.so.2.11000.2 4b4b4000-4b4b6000 rw-p 00000000 00:00 0 4b4b8000-4b4c3000 r-xp 00000000 fd:01 1061726 /usr/lib/libpangocairo-1.0.so.0.2800.4 4b4c3000-4b4c4000 rw-p 0000a000 fd:01 1061726 /usr/lib/libpangocairo-1.0.so.0.2800.4 4b508000-4b50a000 r-xp 00000000 fd:01 1061731 /usr/lib/libXcomposite.so.1.0.0 4b50a000-4b50b000 rw-p 00001000 fd:01 1061731 /usr/lib/libXcomposite.so.1.0.0 4b5e8000-4b62f000 r-xp 00000000 fd:01 1061721 /usr/lib/libpango-1.0.so.0.2800.4 4b62f000-4b631000 rw-p 00046000 fd:01 1061721 /usr/lib/libpango-1.0.so.0.2800.4 4b633000-4b6aa000 r-xp 00000000 fd:01 1061722 /usr/lib/libpixman-1.so.0.20.2 4b6aa000-4b6ae000 rw-p 00076000 fd:01 1061722 /usr/lib/libpixman-1.so.0.20.2 4b6b0000-4b6cd000 r-xp 00000000 fd:01 1061736 /usr/lib/libatk-1.0.so.0.9.1 4b6cd000-4b6cf000 rw-p 0001c000 fd:01 1061736 /usr/lib/libatk-1.0.so.0.9.1 4b879000-4b88f000 r-xp 00000000 fd:01 2368526 /lib/libnsl-2.14.so 4b88f000-4b890000 r--p 00016000 fd:01 2368526 /lib/libnsl-2.14.so 4b890000-4b891000 rw-p 00017000 fd:01 2368526 /lib/libnsl-2.14.so 4b891000-4b893000 rw-p 00000000 00:00 0 4b8d8000-4b991000 r-xp 00000000 fd:01 1061735 /usr/lib/libgdk-x11-2.0.so.0.2400.4 4b991000-4b994000 rw-p 000b9000 fd:01 1061735 /usr/lib/libgdk-x11-2.0.so.0.2400.4 4b996000-4be37000 r-xp 00000000 fd:01 1061737 /usr/lib/libgtk-x11-2.0.so.0.2400.4 4be37000-4be3d000 rw-p 004a1000 fd:01 1061737 /usr/lib/libgtk-x11-2.0.so.0.2400.4 4be3d000-4be3e000 rw-p 00000000 00:00 0 4be52000-4be61000 r-xp 00000000 fd:01 2368524 /lib/libudev.so.0.11.1 4be61000-4be62000 r--p 0000e000 fd:01 2368524 /lib/libudev.so.0.11.1 4be62000-4be63000 rw-p 0000f000 fd:01 2368524 /lib/libudev.so.0.11.1 4be65000-4be67000 r-xp 00000000 fd:01 1073267 /usr/lib/libxcb-event.so.1.0.0 4be67000-4be68000 rw-p 00002000 fd:01 1073267 /usr/lib/libxcb-event.so.1.0.0 4be6a000-4be6d000 r-xp 00000000 fd:01 1072519 /usr/lib/libxcb-aux.so.0.0.0 4be6d000-4be6e000 rw-p 00002000 fd:01 1072519 /usr/lib/libxcb-aux.so.0.0.0 4be78000-4bed8000 r-xp 00000000 fd:01 1078353 /usr/lib/libhunspell-1.2.so.0.0.0 4bed8000-4bedc000 rw-p 00060000 fd:01 1078353 /usr/lib/libhunspell-1.2.so.0.0.0 4bfbc000-4bfc5000 r-xp 00000000 fd:01 1073352 /usr/lib/libstartup-notification-1.so.0.0.0 4bfc5000-4bfc6000 rw-p 00008000 fd:01 1073352 /usr/lib/libstartup-notification-1.so.0.0.0 4c1e9000-4c1ee000 r-xp 00000000 fd:01 1063524 /usr/lib/libXtst.so.6.1.0 4c1ee000-4c1ef000 rw-p 00004000 fd:01 1063524 /usr/lib/libXtst.so.6.1.0 4d0de000-4d0f5000 r-xp 00000000 fd:01 1061945 /usr/lib/libnssutil3.so 4d0f5000-4d0f8000 rw-p 00017000 fd:01 1061945 /usr/lib/libnssutil3.so 4d0fa000-4d0fd000 r-xp 00000000 fd:01 2368287 /lib/libplds4.so 4d0fd000-4d0fe000 rw-p 00002000 fd:01 2368287 /lib/libplds4.so 4d100000-4d104000 r-xp 00000000 fd:01 2368283 /lib/libplc4.so 4d104000-4d105000 rw-p 00003000 fd:01 2368283 /lib/libplc4.so 4d107000-4d245000 r-xp 00000000 fd:01 1062037 /usr/lib/libnss3.so 4d245000-4d249000 rw-p 0013d000 fd:01 1062037 /usr/lib/libnss3.so 4d249000-4d24a000 rw-p 00000000 00:00 0 4d24c000-4d285000 r-xp 00000000 fd:01 2368281 /lib/libnspr4.so 4d285000-4d287000 rw-p 00038000 fd:01 2368281 /lib/libnspr4.so 4d287000-4d288000 rw-p 00000000 00:00 0 4d290000-4d2b9000 r-xp 00000000 fd:01 1062147 /usr/lib/libsmime3.so 4d2b9000-4d2bb000 rw-p 00029000 fd:01 1062147 /usr/lib/libsmime3.so 4d2bd000-4d2f0000 r-xp 00000000 fd:01 1062065 /usr/lib/libssl3.so 4d2f0000-4d2f2000 rw-p 00033000 fd:01 1062065 /usr/lib/libssl3.so 4d8a5000-4d8a8000 r-xp 00000000 fd:01 1064989 /usr/lib/libxcb-atom.so.1.0.0 4d8a8000-4d8a9000 rw-p 00002000 fd:01 1064989 /usr/lib/libxcb-atom.so.1.0.0 4d8b4000-4d8f4000 r-xp 00000000 fd:01 1054612 /usr/lib/libjpeg.so.62.0.0 4d8f4000-4d8f5000 rw-p 0003f000 fd:01 1054612 /usr/lib/libjpeg.so.62.0.0 4d8f5000-4d905000 rw-p 00000000 00:00 0 4d934000-4d936000 r-xp 00000000 fd:01 2368265 /lib/libutil-2.14.so 4d936000-4d937000 r--p 00001000 fd:01 2368265 /lib/libutil-2.14.so 4d937000-4d938000 rw-p 00002000 fd:01 2368265 /lib/libutil-2.14.so 4d93a000-4d9d3000 r-xp 00000000 fd:01 1064847 /usr/lib/libsqlite3.so.0.8.6 4d9d3000-4d9d5000 rw-p 00099000 fd:01 1064847 /usr/lib/libsqlite3.so.0.8.6 4deaa000-4df9a000 r-xp 00000000 fd:01 2361038 /lib/libasound.so.2.0.0 4df9a000-4df9e000 rw-p 000f0000 fd:01 2361038 /lib/libasound.so.2.0.0 4dfa0000-4f3fd000 r-xp 00000000 fd:01 1192471 /usr/lib/xulrunner-2/libxul.so 4f3fd000-4f529000 rw-p 0145c000 fd:01 1192471 /usr/lib/xulrunner-2/libxul.so 4f529000-4f560000 rw-p 00000000 00:00 0 64baf000-64bb2000 ---p 00000000 00:00 0 64bb2000-64c00000 rw-p 00000000 00:00 0 64c00000-64cd1000 rw-p 00000000 00:00 0 64cd1000-64d00000 ---p 00000000 00:00 0 64d0d000-64d10000 ---p 00000000 00:00 0 64d10000-64d5e000 rw-p 00000000 00:00 0 64d5e000-64d61000 ---p 00000000 00:00 0 64d61000-64daf000 rw-p 00000000 00:00 0 64daf000-64db2000 ---p 00000000 00:00 0 64db2000-64e00000 rw-p 00000000 00:00 0 64e00000-64e68000 rw-p 00000000 00:00 0 64e68000-64f00000 ---p 00000000 00:00 0 64f19000-64f1d000 r--s 00034000 fd:02 15865411 /home/xyd/software/eclipse/plugins/com.jcraft.jsch_0.1.41.v200903070017.jar 64f1d000-64f1f000 r--s 00007000 fd:02 15865395 /home/xyd/software/eclipse/plugins/org.eclipse.jsch.core_1.1.100.I20090430-0408.jar 64f1f000-64f28000 r--s 00084000 fd:02 15865393 /home/xyd/software/eclipse/plugins/org.eclipse.team.cvs.core_3.3.200.I20090430-0408.jar 64f28000-64f45000 r--s 00177000 fd:02 15865352 /home/xyd/software/eclipse/plugins/org.eclipse.team.cvs.ui_3.3.200.I20090521-1750.jar 64f45000-64f48000 ---p 00000000 00:00 0 64f48000-64f96000 rw-p 00000000 00:00 0 64f96000-64f98000 r--s 0000a000 fd:02 15865434 /home/xyd/software/eclipse/plugins/org.eclipse.ui.net_1.2.0.I20090430-0408.jar 64f98000-64f9a000 r--s 00013000 fd:01 1582697 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/jce.jar 64f9a000-64f9b000 r--s 00008000 fd:02 15865439 /home/xyd/software/eclipse/plugins/org.eclipse.core.net.linux.x86_1.1.0.I20081021.jar 64f9b000-64f9e000 r--s 00017000 fd:02 15865480 /home/xyd/software/eclipse/plugins/org.eclipse.equinox.security_1.0.100.v20090520-1800.jar 64f9e000-64fa0000 r--s 0000e000 fd:02 15865374 /home/xyd/software/eclipse/plugins/org.eclipse.core.net_1.2.0.I20090522-1010.jar 64fa0000-65000000 rw-s 00000000 00:04 1310730 /SYSV00000000 (deleted) 65000000-65008000 r--s 00050000 fd:02 15863542 /home/xyd/software/eclipse/plugins/org.eclipse.ui.navigator_3.4.0.I20090525-2000.jar 65100000-651c8000 rw-p 00000000 00:00 0 651c8000-65200000 ---p 00000000 00:00 0 65200000-65300000 rw-p 00000000 00:00 0 65300000-653f9000 rw-p 00000000 00:00 0 653f9000-65400000 ---p 00000000 00:00 0 65401000-65403000 r--s 00014000 fd:02 1442032 /home/xyd/software/eclipse/plugins/org.eclipse.ui.intro.universal_3.2.300.v20090526/universal.jar 65403000-65407000 r--s 00022000 fd:02 15865443 /home/xyd/software/eclipse/plugins/org.eclipse.ui.externaltools_3.2.0.v20090504.jar 65468000-65472000 r--s 00074000 fd:02 15863522 /home/xyd/software/eclipse/plugins/org.eclipse.jdt.junit_3.5.0.v20090526-2000.jar 65472000-6548c000 r--s 0012c000 fd:02 15863559 /home/xyd/software/eclipse/plugins/org.eclipse.team.ui_3.5.0.I20090430-0408.jar 6548c000-65490000 r--s 00023000 fd:02 15865437 /home/xyd/software/eclipse/plugins/org.eclipse.ui.console_3.4.0.v20090513.jar 65490000-65494000 r--s 0001b000 fd:02 15863566 /home/xyd/software/eclipse/plugins/org.eclipse.ui.navigator.resources_3.4.0.I20090525-2000.jar 65494000-65496000 r--s 0000d000 fd:02 15863635 /home/xyd/software/eclipse/plugins/org.eclipse.compare.core_3.5.0.I20090430-0408.jar 65496000-654e3000 r--p 00000000 fd:01 1317860 /usr/share/fonts/dejavu/DejaVuSansMono-Bold.ttf 654e3000-654ed000 r--s 00065000 fd:02 15863644 /home/xyd/software/eclipse/plugins/org.eclipse.ltk.ui.refactoring_3.4.100.v20090604.jar 654ed000-6553f000 r--p 00000000 fd:01 1317863 /usr/share/fonts/dejavu/DejaVuSansMono.ttf 6553f000-66589000 r--p 00000000 fd:01 1448233 /usr/share/fonts/wqy-zenhei/wqy-zenhei.ttc 66589000-665a2000 r--s 00126000 fd:02 15865462 /home/xyd/software/eclipse/plugins/org.eclipse.jdt.debug.ui_3.4.0.v20090527.jar 665a2000-665aa000 r--s 00046000 fd:02 15863629 /home/xyd/software/eclipse/plugins/org.eclipse.ltk.core.refactoring_3.5.0.v20090513-2000.jar 665aa000-665ad000 r--s 00013000 fd:02 15865470 /home/xyd/software/eclipse/plugins/org.eclipse.ui.views_3.4.0.I20090525-2000.jar 666cd000-666d0000 ---p 00000000 00:00 0 666d0000-6671e000 rw-p 00000000 00:00 0 6671e000-6675a000 r--p 00000000 fd:01 1317862 /usr/share/fonts/dejavu/DejaVuSansMono-Oblique.ttf 6675a000-6675c000 r--s 00004000 fd:02 15865360 /home/xyd/software/eclipse/plugins/org.eclipse.equinox.p2.garbagecollector_1.0.100.v20090520-1905.jar 6675c000-6675e000 r--s 0000c000 fd:02 15863513 /home/xyd/software/eclipse/plugins/org.eclipse.ecf.identity_3.0.0.v20090604-1131.jar 6675e000-66761000 r--s 00009000 fd:02 15865409 /home/xyd/software/eclipse/plugins/org.eclipse.ecf.filetransfer_3.0.0.v20090604-1131.jar 66761000-66764000 r--s 0001c000 fd:02 15865497 /home/xyd/software/eclipse/plugins/org.eclipse.equinox.p2.metadata.repository_1.0.100.v20090525.jar 66764000-66767000 r--s 00017000 fd:02 15865340 /home/xyd/software/eclipse/plugins/org.eclipse.equinox.p2.repository_1.0.0.v20090601-1921.jar 66767000-6676a000 r--s 00013000 fd:02 15863625 /home/xyd/software/eclipse/plugins/org.eclipse.equinox.p2.director_1.0.100.v20090520-1905.jar 6676a000-6676e000 r--s 00023000 fd:02 15865410 /home/xyd/software/eclipse/plugins/org.eclipse.equinox.p2.engine_1.0.100.v20090525.jar 6676e000-66770000 r--s 00001000 fd:02 15865446 /home/xyd/software/eclipse/plugins/org.eclipse.equinox.p2.exemplarysetup_1.0.100.v20090520-1905.jar 66770000-66780000 r--s 000f2000 fd:02 15865394 /home/xyd/software/eclipse/plugins/org.eclipse.pde.core_3.5.0.v20090602.jar 66786000-66787000 rw-p 00000000 00:00 0 66787000-66797000 r--s 000f8000 fd:02 15863527 /home/xyd/software/eclipse/plugins/org.eclipse.ant.ui_3.4.0.v20090520.jar 66797000-667a0000 r--s 00093000 fd:02 15865356 /home/xyd/software/eclipse/plugins/org.eclipse.pde.api.tools_1.0.100.v20090526.jar 667a0000-667a2000 r--s 00006000 fd:02 15865436 /home/xyd/software/eclipse/plugins/org.eclipse.core.variables_3.2.200.v20090521.jar 667a2000-667a5000 ---p 00000000 00:00 0 667a5000-667f3000 rw-p 00000000 00:00 0 667f3000-667f6000 ---p 00000000 00:00 0 667f6000-66844000 rw-p 00000000 00:00 0 66844000-66847000 ---p 00000000 00:00 0 66847000-66895000 rw-p 00000000 00:00 0 66895000-6689c000 r--s 0004b000 fd:02 15863521 /home/xyd/software/eclipse/plugins/org.eclipse.pde.api.tools.ui_1.0.100.v20090526.jar 6689c000-6689f000 r--s 00019000 fd:02 15863645 /home/xyd/software/eclipse/plugins/org.eclipse.core.filebuffers_3.5.0.v20090526-2000.jar 6689f000-668a8000 r--s 00068000 fd:02 15863519 /home/xyd/software/eclipse/plugins/org.eclipse.search_3.5.0.v20090526-2000.jar 668a8000-668d7000 r--s 00227000 fd:02 15865390 /home/xyd/software/eclipse/plugins/org.eclipse.debug.ui_3.5.0.v20090603.jar 668d7000-668ea000 r--s 000da000 fd:02 15865371 /home/xyd/software/eclipse/plugins/org.eclipse.jface.text_3.5.0.v20090602.jar 668ea000-668f5000 r--s 0007d000 fd:02 15863599 /home/xyd/software/eclipse/plugins/org.eclipse.ui.editors_3.5.0.v20090527-2000.jar 668f5000-66900000 r--s 0007f000 fd:02 15865492 /home/xyd/software/eclipse/plugins/org.eclipse.ui.workbench.texteditor_3.5.0.v20090603.jar 66900000-669e5000 rw-p 00000000 00:00 0 669e5000-66a00000 ---p 00000000 00:00 0 66a00000-66a03000 r--s 00012000 fd:02 15865383 /home/xyd/software/eclipse/plugins/org.eclipse.jdt.core.manipulation_1.3.0.v20090603.jar 66a03000-66a92000 r--s 008cb000 fd:02 15863597 /home/xyd/software/eclipse/plugins/org.eclipse.jdt.ui_3.5.0.v20090604.jar 66a92000-66a93000 ---p 00000000 00:00 0 66a93000-67293000 rw-p 00000000 00:00 0 67293000-672a5000 r--p 00000000 fd:01 1318419 /usr/share/locale/zh_CN/LC_MESSAGES/glib20.mo 672a5000-672a8000 rw-s 00000000 00:04 1277958 /SYSV00000000 (deleted) 672a8000-672ef000 r--s 003ad000 fd:02 15865490 /home/xyd/software/eclipse/plugins/org.eclipse.pde.ui_3.5.0.v20090528.jar 672ef000-672f1000 r--s 00006000 fd:02 15865339 /home/xyd/software/eclipse/plugins/org.eclipse.jdt.apt.pluggable.core_1.0.200.v20090526-2130.jar 672f1000-672f8000 r--s 00052000 fd:02 15863569 /home/xyd/software/eclipse/plugins/org.eclipse.jdt.apt.core_3.3.200.v20090528-1135.jar 672f8000-672ff000 r--s 00047000 fd:02 15865484 /home/xyd/software/eclipse/plugins/org.eclipse.debug.core_3.5.0.v20090526-1600.jar 672ff000-67303000 r--s 00043000 fd:02 15863606 /home/xyd/software/eclipse/plugins/org.eclipse.jdt.launching_3.5.0.v20090527.jar 67303000-67306000 ---p 00000000 00:00 0 67306000-67354000 rw-p 00000000 00:00 0 67354000-67359000 r--s 00037000 fd:02 15865365 /home/xyd/software/eclipse/plugins/org.eclipse.text_3.5.0.v20090513-2000.jar 67359000-6735a000 r--s 0000c000 fd:02 15863614 /home/xyd/software/eclipse/plugins/org.eclipse.jdt.compiler.tool_1.0.100.v_963.jar 6735a000-6735d000 r--s 00023000 fd:02 15863675 /home/xyd/software/eclipse/plugins/org.eclipse.jdt.compiler.apt_1.0.200.v20090528-1135.jar 6735d000-67386000 r--s 0041b000 fd:02 15863665 /home/xyd/software/eclipse/plugins/org.eclipse.jdt.core_3.5.0.v_963.jar 67386000-6738a000 r--s 00032000 fd:02 15863504 /home/xyd/software/eclipse/plugins/org.eclipse.help_3.4.0.v20090526.jar 6738a000-67391000 r--s 00049000 fd:02 15863600 /home/xyd/software/eclipse/plugins/org.eclipse.ui.cheatsheets_3.3.200.v20090526.jar 67391000-67396000 r--s 00029000 fd:02 15863557 /home/xyd/software/eclipse/plugins/org.eclipse.ui.browser_3.2.300.v20090526.jar 67396000-6739a000 r--s 00023000 fd:02 15865485 /home/xyd/software/eclipse/plugins/org.eclipse.pde.runtime_3.4.100.v20090527.jar 6739a000-673a3000 r--s 00069000 fd:02 15865467 /home/xyd/software/eclipse/plugins/org.eclipse.help.ui_3.4.0.v20090528.jar 673a3000-673a6000 ---p 00000000 00:00 0 673a6000-673f4000 rw-p 00000000 00:00 0 673f4000-673fd000 r--s 00056000 fd:02 15865324 /home/xyd/software/eclipse/plugins/org.eclipse.team.core_3.5.0.I20090527-0620.jar 673fd000-674ad000 r--p 00000000 fd:01 1318090 /usr/share/fonts/dejavu/DejaVuSans.ttf 674ad000-674af000 r--s 00013000 fd:02 15865428 /home/xyd/software/eclipse/plugins/org.eclipse.core.expressions_3.4.100.v20090429-1800.jar 674af000-674b2000 ---p 00000000 00:00 0 674b2000-67500000 rw-p 00000000 00:00 0 67500000-67600000 rw-p 00000000 00:00 0 67600000-67602000 r--p 00000000 fd:01 1318570 /usr/share/locale/zh_CN/LC_MESSAGES/atk10.mo 67602000-6761f000 r--s 00568000 fd:02 15865330 /home/xyd/software/eclipse/plugins/com.ibm.icu_4.0.1.v20090415.jar 6761f000-67628000 r--s 0003d000 fd:02 15865385 /home/xyd/software/eclipse/plugins/org.eclipse.core.databinding.observable_1.2.0.I20090604-2000.jar 67628000-67631000 r--s 00037000 fd:02 15865370 /home/xyd/software/eclipse/plugins/org.eclipse.jface.databinding_1.3.0.I20090525-2000.jar 67631000-67634000 r--s 00013000 fd:02 15863619 /home/xyd/software/eclipse/plugins/org.eclipse.core.contenttype_3.4.0.v20090429-1800.jar 67634000-67637000 ---p 00000000 00:00 0 67637000-67685000 rw-p 00000000 00:00 0 67685000-67686000 r--s 00001000 fd:02 15865475 /home/xyd/software/eclipse/plugins/org.eclipse.core.filesystem.linux.x86_1.2.0.v20080604-1400.jar 67686000-67688000 r--s 00009000 fd:02 15863646 /home/xyd/software/eclipse/plugins/org.eclipse.core.filesystem_1.2.0.v20090507.jar 67688000-6768b000 r--s 0001b000 fd:02 15865331 /home/xyd/software/eclipse/plugins/org.eclipse.core.resources.compatibility_3.4.0.v20090505.jar 6768b000-6768e000 r--s 00077000 fd:01 1582632 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/ext/localedata.jar 6768e000-67698000 r--s 000a3000 fd:02 15863659 /home/xyd/software/eclipse/plugins/org.eclipse.core.resources_3.5.0.v20090512.jar 67698000-6769b000 r--s 00016000 fd:02 15863563 /home/xyd/software/eclipse/plugins/org.eclipse.update.configurator_3.3.0.v20090312.jar 6769b000-676be000 r--s 001d5000 fd:02 15865468 /home/xyd/software/eclipse/plugins/org.eclipse.ui.ide_3.5.0.I20090525-2000.jar 676be000-68708000 r--p 00000000 fd:01 1448233 /usr/share/fonts/wqy-zenhei/wqy-zenhei.ttc 68708000-6870a000 r--s 00000000 fd:01 1968155 /var/cache/fontconfig/7e24c1c3b25754604c4f46a5df32e5c1-le32d4.cache-3 6870a000-6870c000 r--s 00000000 fd:01 1968154 /var/cache/fontconfig/3ad840390a44011d5fc042cdf95ddcfe-le32d4.cache-3 6870c000-6870f000 r--s 00000000 fd:01 1968212 /var/cache/fontconfig/87f5e051180a7a75f16eb6fe7dbd3749-le32d4.cache-3 6870f000-68715000 r--s 00000000 fd:01 1968201 /var/cache/fontconfig/b79f3aaa7d385a141ab53ec885cc22a8-le32d4.cache-3 68715000-68716000 r--s 00000000 fd:01 1968188 /var/cache/fontconfig/60542f0bb9f94eae9d378d7cecc69283-le32d4.cache-3 68716000-68717000 r--s 00000000 fd:01 1968187 /var/cache/fontconfig/01cde5f9976aee51dfe5064473b1a750-le32d4.cache-3 68717000-68719000 r--s 00000000 fd:01 1968186 /var/cache/fontconfig/0b1bcc92b4d25cc154d77dafe3bceaa0-le32d4.cache-3 68719000-6871b000 r--s 00000000 fd:01 1968185 /var/cache/fontconfig/eb7476afde319dc446903ba59258b3a1-le32d4.cache-3 6871b000-6871c000 r--s 00000000 fd:01 1968184 /var/cache/fontconfig/501db7fa77dbe65e684743da40cfc0b4-le32d4.cache-3 6871c000-6871d000 r--s 00000000 fd:01 1968183 /var/cache/fontconfig/44ad4949f51819251fed26de7f5ef1ed-le32d4.cache-3 6871d000-68722000 r--s 00000000 fd:01 1968182 /var/cache/fontconfig/1dc6ee88f73eae2c5efcd55d2e07d1ff-le32d4.cache-3 68722000-68728000 r--s 00000000 fd:01 1968181 /var/cache/fontconfig/5c755b2f27115486aa6359c84dd3cbda-le32d4.cache-3 68728000-68729000 r--s 00000000 fd:01 1968179 /var/cache/fontconfig/b0ed20c882e65d0b4e0ddce4a3af7210-le32d4.cache-3 68729000-6872b000 r--s 00000000 fd:01 1968178 /var/cache/fontconfig/33f212c1741f5cc65af3605429029a27-le32d4.cache-3 6872b000-6872c000 r--s 00000000 fd:01 1968177 /var/cache/fontconfig/06233d212212cb9148397f49821f92db-le32d4.cache-3 6872c000-68731000 r--s 00000000 fd:01 1968176 /var/cache/fontconfig/184cb258ab29f904d58efac97e80a37b-le32d4.cache-3 68731000-68732000 r--s 00000000 fd:01 1968175 /var/cache/fontconfig/b966c23d19cce9e9a98d55765cf2a0c7-le32d4.cache-3 68732000-68734000 r--s 00000000 fd:01 1968174 /var/cache/fontconfig/09757cce9f40703a72dac2999fc1cdb3-le32d4.cache-3 68734000-68735000 r--s 00000000 fd:01 1968173 /var/cache/fontconfig/3f821257dd33660ba7bbb45c32deb84c-le32d4.cache-3 68735000-68737000 r--s 00000000 fd:01 1968172 /var/cache/fontconfig/830f035fa84a65ce80e050178dbb630d-le32d4.cache-3 68737000-68739000 r--s 00000000 fd:01 1968171 /var/cache/fontconfig/81a173283b451552b599cfaafd6236bd-le32d4.cache-3 68739000-6873a000 r--s 00000000 fd:01 1968170 /var/cache/fontconfig/a01c43f7cd08244f295d2d5376628d67-le32d4.cache-3 6873a000-6873b000 r--s 00000000 fd:01 1968169 /var/cache/fontconfig/c37613e2604bdd41c402e32d2821e076-le32d4.cache-3 6873b000-6873c000 r--s 00000000 fd:01 1968168 /var/cache/fontconfig/ab59c533cf99e5048be0543c550dbefe-le32d4.cache-3 6873c000-6873d000 r--s 00000000 fd:01 1968167 /var/cache/fontconfig/ac68f755438cc3dc5a526084839fc7ca-le32d4.cache-3 6873d000-6873e000 r--s 00000000 fd:01 1968166 /var/cache/fontconfig/090ca5f158cafb5cca12fbfb2918dcbc-le32d4.cache-3 6873e000-68740000 r--s 00000000 fd:01 1968165 /var/cache/fontconfig/93ed6fdacff7a9ede5b7d84ced5376f9-le32d4.cache-3 68740000-68741000 r--s 00000000 fd:01 1968164 /var/cache/fontconfig/5e318dc2e4e71bebff515e4a5204b2f1-le32d4.cache-3 68741000-68742000 r--s 00000000 fd:01 1968163 /var/cache/fontconfig/c4a6275d67b20a7c75d4337c8a72309a-le32d4.cache-3 68742000-68744000 r--s 00000000 fd:01 1968162 /var/cache/fontconfig/a6e2df8ba006ac4142661ca5b6a5011c-le32d4.cache-3 68744000-68746000 r--s 00000000 fd:01 1968161 /var/cache/fontconfig/560c5d9ab24f373e3de5407b98a82782-le32d4.cache-3 68746000-68747000 r--s 00000000 fd:01 1968160 /var/cache/fontconfig/1087b4956ab162a9df115622be36d848-le32d4.cache-3 68747000-68748000 r--s 00000000 fd:01 1968159 /var/cache/fontconfig/12513961c6e7090f8648812f9eaf65d6-le32d4.cache-3 68748000-6874a000 r--s 00000000 fd:01 1968158 /var/cache/fontconfig/5f94b9dbace0471d333295bf13565fa1-le32d4.cache-3 6874a000-6874d000 r--s 00000000 fd:01 1968157 /var/cache/fontconfig/9b14b4be4168f9312a7e272e0a49deed-le32d4.cache-3 6874d000-6874e000 r--s 00000000 fd:01 1968156 /var/cache/fontconfig/c966307f371e64928d9ff5b862329f04-le32d4.cache-3 6874e000-6874f000 r--s 00000000 fd:01 1968152 /var/cache/fontconfig/c25f174be0e642a5b89dcf759df7168e-le32d4.cache-3 6874f000-68751000 r--s 00000000 fd:01 1968151 /var/cache/fontconfig/30b9c3e04f780095e7cb0ae44a315810-le32d4.cache-3 68751000-68752000 r--s 00000000 fd:01 1968150 /var/cache/fontconfig/e8fe69fff143ec54c56d12417c2b92c6-le32d4.cache-3 68752000-68753000 r--s 00000000 fd:01 1968149 /var/cache/fontconfig/cd85732661d495d944dd62f02e8a3d94-le32d4.cache-3 68753000-68755000 r--s 00000000 fd:01 1968148 /var/cache/fontconfig/e26bf336397aae6fcef4d3803472adec-le32d4.cache-3 68755000-68756000 r--s 00000000 fd:01 1968147 /var/cache/fontconfig/a5c2dc934fad9bbf30c854216245519d-le32d4.cache-3 68756000-68757000 r--s 00000000 fd:01 1968146 /var/cache/fontconfig/17e60ccdf2eb53b214a9a5d6663eb217-le32d4.cache-3 68757000-68758000 r--s 00000000 fd:01 1967596 /var/cache/fontconfig/6fcb01a03a016cc71057b587cdea6709-le32d4.cache-3 68758000-6875a000 r--s 00000000 fd:01 1968144 /var/cache/fontconfig/ce0d969af2176489fbefad4fe7aa6451-le32d4.cache-3 6875a000-6875b000 r--s 00000000 fd:01 1968143 /var/cache/fontconfig/808084b99cc6d2dafdbe941f4fc10e5e-le32d4.cache-3 6875b000-6875c000 r--s 00000000 fd:01 1968140 /var/cache/fontconfig/0ed4c14da43483470c2e67e9fa7f604c-le32d4.cache-3 6875c000-6875d000 r--s 00000000 fd:01 1968139 /var/cache/fontconfig/a11da874bea4fbbc9fdb45ec11736d85-le32d4.cache-3 6875d000-6875e000 r--s 00000000 fd:01 1968138 /var/cache/fontconfig/06f3a2bb811d145a24c573e7a33ca824-le32d4.cache-3 6875e000-6875f000 r--s 00000000 fd:01 1968137 /var/cache/fontconfig/8116a09590ac122099d79bc00352576d-le32d4.cache-3 6875f000-68760000 r--s 00000000 fd:01 1968136 /var/cache/fontconfig/406539cfa4772f138dbfe570ea21dd78-le32d4.cache-3 68760000-68761000 r--s 00000000 fd:01 1968135 /var/cache/fontconfig/63ddee8290ea8b0ca61a4ae5d5fbe2e4-le32d4.cache-3 68761000-68762000 r--s 00000000 fd:01 1968134 /var/cache/fontconfig/0c2162cee12f62c440796a3710ab4576-le32d4.cache-3 68762000-68763000 r--s 00000000 fd:01 1968133 /var/cache/fontconfig/2678730374f88f8c6b5c0192ab5a46db-le32d4.cache-3 68763000-68764000 r--s 00000000 fd:01 1968132 /var/cache/fontconfig/b7f871b42933087377786da82c87aae8-le32d4.cache-3 68764000-68765000 r--s 00000000 fd:01 1968131 /var/cache/fontconfig/c13e356c1e91a0f1779b14a65a2feb20-le32d4.cache-3 68765000-68766000 r--s 00000000 fd:01 1968130 /var/cache/fontconfig/ea2058bcd578b2fb98fea0cdde11eb27-le32d4.cache-3 68766000-6876a000 r--s 00000000 fd:01 1968129 /var/cache/fontconfig/92766a01268820036254e15fb956c917-le32d4.cache-3 6876a000-6876b000 r--s 00000000 fd:01 1968128 /var/cache/fontconfig/46d51d90fe9d963f6f4186edb936a931-le32d4.cache-3 6876b000-6876c000 r--s 00000000 fd:01 1968127 /var/cache/fontconfig/b887eea8f1b96e1d899b44ed6681fc27-le32d4.cache-3 6876c000-6876d000 r--s 00000000 fd:01 1968126 /var/cache/fontconfig/860639f272b8b4b3094f9e399e41bccd-le32d4.cache-3 6876d000-6876e000 r--s 00000000 fd:01 1968125 /var/cache/fontconfig/211368abcb0ff835c229ff05c9ec01dc-le32d4.cache-3 6876e000-6876f000 r--s 00000000 fd:01 1968124 /var/cache/fontconfig/c46020d7221988a13df853d2b46304fc-le32d4.cache-3 6876f000-68770000 r--s 00000000 fd:01 1974440 /var/cache/fontconfig/fa2b533b7056bdadb961f088bc0a978b-le32d4.cache-3 68770000-68771000 r--s 00000000 fd:01 1974439 /var/cache/fontconfig/df893b4576ad6107f9397134092c4059-le32d4.cache-3 68771000-68772000 r--s 00000000 fd:01 1968121 /var/cache/fontconfig/900402270e15d763a6e008bb2d4c7686-le32d4.cache-3 68772000-68773000 r--s 00000000 fd:01 1968120 /var/cache/fontconfig/47f48679023f44a4d1e44699a69464f6-le32d4.cache-3 68773000-68774000 r--s 00000000 fd:01 1968119 /var/cache/fontconfig/2881ed3fd21ca306ddad6f9b0dd3189f-le32d4.cache-3 68774000-68775000 r--s 00000000 fd:01 1968118 /var/cache/fontconfig/3c3fb04d32a5211b073874b125d29701-le32d4.cache-3 68775000-68776000 r--s 00000000 fd:01 1968117 /var/cache/fontconfig/e61abf8156cc476151baa07d67337cae-le32d4.cache-3 68776000-68779000 r--s 00000000 fd:01 1968116 /var/cache/fontconfig/e4307be1e5b40d775f6e65a19e2b9602-le32d4.cache-3 68779000-6877a000 r--s 00000000 fd:01 1974436 /var/cache/fontconfig/339f7971f0febd795a89052d3369f043-le32d4.cache-3 6877a000-6877e000 r--s 00000000 fd:01 1974667 /var/cache/fontconfig/b67b32625a2bb51b023d3814a918f351-le32d4.cache-3 6877e000-6877f000 r--s 00000000 fd:01 1968113 /var/cache/fontconfig/0cdaf353a0871111e8db86b8a5e64d24-le32d4.cache-3 6877f000-68780000 r--s 00000000 fd:01 1968112 /var/cache/fontconfig/991510d2da7f7b2bf8468002aae90060-le32d4.cache-3 68780000-68783000 r--s 00000000 fd:01 1968111 /var/cache/fontconfig/d3379abda271c4acd2ad0c01f565d0b0-le32d4.cache-3 68783000-68786000 r--s 00000000 fd:01 1968110 /var/cache/fontconfig/46b47dbc682d2ca4191e148ea7bde7f2-le32d4.cache-3 68786000-68787000 r--s 00000000 fd:01 1968109 /var/cache/fontconfig/b4d0b56f766d89640448751fcd18ec1e-le32d4.cache-3 68787000-68788000 r--s 00000000 fd:01 1968108 /var/cache/fontconfig/f79e8a5c6d94836beaa5baa45530f5f3-le32d4.cache-3 68788000-68789000 r--s 00000000 fd:01 1968107 /var/cache/fontconfig/9ed4f620c87a78387e22563dd851402a-le32d4.cache-3 68789000-6878b000 r--s 00000000 fd:01 1968106 /var/cache/fontconfig/f0c9303bd8699fbc3d699bcd3b0632e1-le32d4.cache-3 6878b000-6878f000 r--s 00000000 fd:01 1968105 /var/cache/fontconfig/7b312f204090bff0956e0e66992a6837-le32d4.cache-3 6878f000-6879c000 r--s 00000000 fd:01 1968104 /var/cache/fontconfig/614d1caaa4d7914789410f6367de37ca-le32d4.cache-3 6879c000-6879d000 r--s 00000000 fd:01 1968103 /var/cache/fontconfig/a57715af284cc9c847313a68c0060edf-le32d4.cache-3 6879d000-6879e000 r--s 00000000 fd:01 1968102 /var/cache/fontconfig/c65659168f2a330b65b021d31418493f-le32d4.cache-3 6879e000-6879f000 r--s 00000000 fd:01 1968101 /var/cache/fontconfig/abed434a0cb6b7dd83c616b765e42ea0-le32d4.cache-3 6879f000-687a0000 r--s 00000000 fd:01 1968100 /var/cache/fontconfig/68ac132a7bc6dc57231954159129fc6b-le32d4.cache-3 687a0000-687a1000 r--s 00000000 fd:01 1968099 /var/cache/fontconfig/3132fefeac9cdeac7380e109d85440ee-le32d4.cache-3 687a1000-687a2000 r--s 00000000 fd:01 1968098 /var/cache/fontconfig/3c3d59f067dd0a6640fcf535a63f4651-le32d4.cache-3 687a2000-687a3000 r--s 00000000 fd:01 1968097 /var/cache/fontconfig/71de441fde3b21277919db6bf922a6e0-le32d4.cache-3 687a3000-687a5000 r--s 00000000 fd:01 1968096 /var/cache/fontconfig/917c4bf21b6b8bf5fea915b3e7d6dd30-le32d4.cache-3 687a5000-687a6000 r--s 00000000 fd:01 1968095 /var/cache/fontconfig/7d4bea36d612eadce51137bd8cc65682-le32d4.cache-3 687a6000-687a7000 r--s 00000000 fd:01 1968094 /var/cache/fontconfig/207cda5ec499274748b645461f7674e3-le32d4.cache-3 687a7000-687a8000 r--s 00000000 fd:01 1968093 /var/cache/fontconfig/c34cce0154716cd2e39b0526bc46d4bb-le32d4.cache-3 687a8000-687a9000 r--s 00000000 fd:01 1968092 /var/cache/fontconfig/55f1d2e96d054e2d2ab1c28da62fa234-le32d4.cache-3 687a9000-687aa000 r--s 00000000 fd:01 1968091 /var/cache/fontconfig/7f8c1d19c76bbd4aa53a35a6712a78af-le32d4.cache-3 687aa000-687ab000 r--s 00000000 fd:01 1968090 /var/cache/fontconfig/139a1e233bf0843a226edc62c081b372-le32d4.cache-3 687ab000-687ac000 r--s 00000000 fd:01 1968089 /var/cache/fontconfig/974e82c5004f8b618cd9a27d6dbd469c-le32d4.cache-3 687ac000-687ad000 r--s 00000000 fd:01 1968088 /var/cache/fontconfig/715977d93026f1f6043912e86a61d310-le32d4.cache-3 687ad000-687af000 r--s 00000000 fd:01 1968087 /var/cache/fontconfig/09a9d49af07c33bbbd7b9b4fe1c03c3f-le32d4.cache-3 687af000-687b0000 r--s 00000000 fd:01 1968086 /var/cache/fontconfig/ccd0d96c8a3d6066c69ec653618adc33-le32d4.cache-3 687b0000-687b1000 r--s 00000000 fd:01 1968085 /var/cache/fontconfig/1a98c66db4b845ad3f67ecb8dcf2989e-le32d4.cache-3 687b1000-687b2000 r--s 00000000 fd:01 1968084 /var/cache/fontconfig/0f2596bb880fa04863cc11abf85ce6ec-le32d4.cache-3 687b2000-687b4000 r--s 00000000 fd:01 1968083 /var/cache/fontconfig/db4e11cd7afdc15e39e31407bb1de971-le32d4.cache-3 687b4000-687b5000 r--s 00000000 fd:01 1968082 /var/cache/fontconfig/61554cdd13d2438eb6ce390ecd4f8e27-le32d4.cache-3 687b5000-687b7000 r--s 00000000 fd:01 1968081 /var/cache/fontconfig/05e49ffbbed10c61a5c11aba61690114-le32d4.cache-3 687b7000-687b8000 r--s 00000000 fd:01 1968080 /var/cache/fontconfig/221dfefec5d95ce4e672fae40809ce7e-le32d4.cache-3 687b8000-687b9000 r--s 00000000 fd:01 1968079 /var/cache/fontconfig/ae58cee0bfd2c458abe46d4c47525990-le32d4.cache-3 687b9000-687ba000 r--s 00000000 fd:01 1968078 /var/cache/fontconfig/d1ddfaf6f251c435b188a759cbc78b50-le32d4.cache-3 687ba000-687bb000 r--s 00000000 fd:01 1968077 /var/cache/fontconfig/c9ab9db1e15c1f00cf00a667ab2c6508-le32d4.cache-3 687bb000-687bc000 r--s 00000000 fd:01 1968076 /var/cache/fontconfig/938497af82a2e33351ac904ca675c076-le32d4.cache-3 687bc000-687bd000 r--s 00000000 fd:01 1968075 /var/cache/fontconfig/b993c892b08fe81a8375ee3f01186e5c-le32d4.cache-3 687bd000-687be000 r--s 00000000 fd:01 1968074 /var/cache/fontconfig/b0f1fd707abb08ca1ec322b03e6de149-le32d4.cache-3 687be000-687bf000 r--s 00000000 fd:01 1968073 /var/cache/fontconfig/9210bfe778075f01d9a6ad78273d3551-le32d4.cache-3 687bf000-687c0000 r--s 00000000 fd:01 1968072 /var/cache/fontconfig/27a26a6572d8db04e2609c64fb6f9476-le32d4.cache-3 687c0000-687c1000 r--s 00000000 fd:01 1968071 /var/cache/fontconfig/efb3709cb5cd8da903fd39752511227a-le32d4.cache-3 687c1000-687c3000 r--s 00000000 fd:01 1968070 /var/cache/fontconfig/b9906ec4e97df7104d5c6c3d47c0c179-le32d4.cache-3 687c3000-687c4000 r--s 00000000 fd:01 1968069 /var/cache/fontconfig/da2f63d2b1859690847530402906c0e3-le32d4.cache-3 687c4000-687c5000 r--s 00000000 fd:01 1968066 /var/cache/fontconfig/176f9478df015a2a7380e60868cc6e98-le32d4.cache-3 687c5000-687c6000 r--s 00000000 fd:01 1974437 /var/cache/fontconfig/faf848137f773a1feecbeea04842cd53-le32d4.cache-3 687c6000-687d2000 r--s 00000000 fd:01 1968064 /var/cache/fontconfig/12b26b760a24f8b4feb03ad48a333a72-le32d4.cache-3 687d2000-687d5000 r--s 00000000 fd:01 1968062 /var/cache/fontconfig/3df8979866e8848a59fe99e84294e911-le32d4.cache-3 687d5000-687e2000 r--s 00000000 fd:01 1968061 /var/cache/fontconfig/74717c444f6fd72454fa9c9c0ee01ca7-le32d4.cache-3 687e2000-687e3000 r--s 00000000 fd:01 1968060 /var/cache/fontconfig/f8a0dc956c162bd0c7bbbdccd748c6f1-le32d4.cache-3 687e3000-687e4000 r--s 00000000 fd:01 1968059 /var/cache/fontconfig/510a39962a0e99fa91ab9b1702749d8e-le32d4.cache-3 687e4000-687e5000 r--s 00000000 fd:01 1968058 /var/cache/fontconfig/dffd3a9326c1c3a0910ca2c8986ed438-le32d4.cache-3 687e5000-687e6000 r--s 00000000 fd:01 1968057 /var/cache/fontconfig/8204f71571e57035987df47bc5a9a9fe-le32d4.cache-3 687e6000-687ea000 r--s 00000000 fd:01 1968055 /var/cache/fontconfig/cf88f444488d569f9535e4f0ee8ed9a1-le32d4.cache-3 687ea000-687ec000 r--s 00000000 fd:01 1968054 /var/cache/fontconfig/e3ead4b767b8819993a6fa3ae306afa9-le32d4.cache-3 687ec000-687ee000 r--s 00000000 fd:01 1968053 /var/cache/fontconfig/e26737dd0bac68206b7b4894b8f0a845-le32d4.cache-3 687ee000-687f1000 r--s 00000000 fd:01 1968052 /var/cache/fontconfig/f5da82313d22ae5bf5bc6e539d256292-le32d4.cache-3 687f1000-68804000 r--s 001ef000 fd:02 15865333 /home/xyd/software/eclipse/plugins/org.eclipse.swt.gtk.linux.x86_3.5.0.v3550b.jar 68804000-68805000 r--s 00003000 fd:02 15863547 /home/xyd/software/eclipse/plugins/org.eclipse.swt_3.5.0.v3550b.jar 68805000-68819000 r--s 000ef000 fd:02 15863518 /home/xyd/software/eclipse/plugins/org.eclipse.jface_3.5.0.I20090525-2000.jar 68819000-6885e000 r--s 0039d000 fd:02 15865487 /home/xyd/software/eclipse/plugins/org.eclipse.ui.workbench_3.5.0.I20090603-2000.jar 6885e000-68861000 ---p 00000000 00:00 0 68861000-688af000 rw-p 00000000 00:00 0 688af000-688b2000 ---p 00000000 00:00 0 688b2000-68900000 rw-p 00000000 00:00 0 68900000-689fe000 rw-p 00000000 00:00 0 689fe000-68a00000 ---p 00000000 00:00 0 68a00000-68a02000 r--s 00000000 fd:01 1968050 /var/cache/fontconfig/2c041bd23ca3011c5b03ab21ab3de213-le32d4.cache-3 68a02000-68a04000 r--s 00000000 fd:01 1968046 /var/cache/fontconfig/a835c6b2233a7cf9bb83cf66d594cab4-le32d4.cache-3 68a04000-68a07000 r--s 00000000 fd:01 1968045 /var/cache/fontconfig/a8af5ade1c7cc287d6e5c3636f25d0ec-le32d4.cache-3 68a07000-68a0b000 r--s 00000000 fd:01 1968044 /var/cache/fontconfig/000199951cf6d3eb5530f03af1a052cf-le32d4.cache-3 68a0b000-68a0e000 ---p 00000000 00:00 0 68a0e000-68a5c000 rw-p 00000000 00:00 0 68a5c000-68a5f000 ---p 00000000 00:00 0 68a5f000-68aad000 rw-p 00000000 00:00 0 68aad000-68ab0000 ---p 00000000 00:00 0 68ab0000-68afe000 rw-p 00000000 00:00 0 68afe000-68aff000 ---p 00000000 00:00 0 68aff000-68b7f000 rw-p 00000000 00:00 0 68b7f000-68b82000 ---p 00000000 00:00 0 68b82000-68c00000 rw-p 00000000 00:00 0 68c00000-68cff000 rw-p 00000000 00:00 0 68cff000-68d00000 ---p 00000000 00:00 0 68d00000-68e00000 rw-p 00000000 00:00 0 68e00000-68e01000 r--s 00000000 fd:01 1968049 /var/cache/fontconfig/e0b887e9bdb170ea905b07287b29311e-le32d4.cache-3 68e01000-68e02000 r--s 00000000 fd:01 1968048 /var/cache/fontconfig/154bc0eb1368be08a8b4d5d2e35c19be-le32d4.cache-3 68e02000-68e05000 r--s 00000000 fd:01 1968043 /var/cache/fontconfig/c616022798c0b25a79811868e21e0dbb-le32d4.cache-3 68e05000-68e08000 r--s 00017000 fd:02 15865481 /home/xyd/software/eclipse/plugins/org.eclipse.core.commands_3.5.0.I20090525-2000.jar 68e08000-68e0d000 r--s 00020000 fd:02 15863631 /home/xyd/software/eclipse/plugins/org.eclipse.ui_3.5.0.I20090604-2000.jar 68e0d000-68e10000 ---p 00000000 00:00 0 68e10000-68e5e000 rw-p 00000000 00:00 0 68e5e000-68e61000 ---p 00000000 00:00 0 68e61000-68eaf000 rw-p 00000000 00:00 0 68eaf000-68eb2000 ---p 00000000 00:00 0 68eb2000-68f00000 rw-p 00000000 00:00 0 68f00000-69000000 rw-p 00000000 00:00 0 69000000-69001000 r--s 00000000 fd:01 1968047 /var/cache/fontconfig/df8258ee65196e67510ccece1790bb3d-le32d4.cache-3 69001000-69002000 r--s 00000000 fd:01 1968042 /var/cache/fontconfig/3640555adad8a8f6978400293cfce7ab-le32d4.cache-3 69002000-69004000 r--s 00000000 fd:01 1968041 /var/cache/fontconfig/b3043b29744cf0a429678d296f5e4026-le32d4.cache-3 69004000-69005000 r--s 00001000 fd:02 1442027 /home/xyd/software/eclipse/plugins/org.eclipse.ui.workbench.compatibility_3.2.0.I20090429-1800/compatibility.jar 69005000-69007000 r--s 0000c000 fd:02 15865500 /home/xyd/software/eclipse/plugins/org.eclipse.ui.ide.application_1.0.100.I20090525-2000.jar 69007000-6900b000 r--s 0001b000 fd:02 15865414 /home/xyd/software/eclipse/plugins/org.eclipse.equinox.p2.core_1.0.100.v20090520-1905.jar 6900b000-6900c000 r--s 00006000 fd:02 15865368 /home/xyd/software/eclipse/plugins/org.eclipse.equinox.p2.directorywatcher_1.0.100.v20090525.jar 6900c000-6900f000 r--s 00014000 fd:02 15863514 /home/xyd/software/eclipse/plugins/org.eclipse.core.runtime.compatibility_3.2.0.v20090413.jar 6900f000-69011000 r--s 00012000 fd:02 15863590 /home/xyd/software/eclipse/plugins/org.eclipse.equinox.app_1.2.0.v20090520-1800.jar 69011000-69013000 r--s 00012000 fd:02 15863660 /home/xyd/software/eclipse/plugins/org.eclipse.core.jobs_3.4.100.v20090429-1800.jar 69013000-69016000 r--s 00017000 fd:02 15863620 /home/xyd/software/eclipse/plugins/org.eclipse.equinox.preferences_3.2.300.v20090520-1800.jar 69016000-69018000 r--s 00004000 fd:02 15863643 /home/xyd/software/eclipse/plugins/org.eclipse.core.runtime.compatibility.auth_3.2.100.v20090413.jar 69018000-6901c000 r--s 00027000 fd:02 15863632 /home/xyd/software/eclipse/plugins/org.eclipse.equinox.registry_3.4.100.v20090520-1800.jar 6901c000-6901e000 r--s 00010000 fd:02 15865473 /home/xyd/software/eclipse/plugins/org.eclipse.core.runtime_3.5.0.v20090525.jar 6901e000-69021000 r--s 0000e000 fd:02 15863650 /home/xyd/software/eclipse/plugins/org.eclipse.osgi.services_3.2.0.v20090520-1800.jar 69021000-69032000 r--s 00102000 fd:02 15865407 /home/xyd/software/eclipse/plugins/org.eclipse.osgi_3.5.0.v20090520.jar 69032000-69035000 ---p 00000000 00:00 0 69035000-69083000 rw-p 00000000 00:00 0 69083000-69084000 ---p 00000000 00:00 0 69084000-69104000 rw-p 00000000 00:00 0 69104000-69107000 r--s 0001b000 fd:01 1584369 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/plugin.jar 69107000-6910e000 r--s 00067000 fd:01 1584747 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/netx.jar 6910e000-69141000 rw-p 00000000 00:00 0 69141000-692d1000 r--s 037af000 fd:01 1582709 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/rt.jar 692d1000-692e8000 rw-p 00000000 00:00 0 692e8000-69352000 rw-p 00000000 00:00 0 69352000-693c4000 rw-p 00000000 00:00 0 693c4000-69491000 rw-p 00000000 00:00 0 69491000-694ca000 rw-p 00000000 00:00 0 694ca000-69530000 rw-p 00000000 00:00 0 69530000-695a2000 rw-p 00000000 00:00 0 695a2000-6966f000 rw-p 00000000 00:00 0 6966f000-69686000 rw-p 00000000 00:00 0 69686000-696ef000 rw-p 00000000 00:00 0 696ef000-70860000 rw-p 00000000 00:00 0 70860000-7d590000 rw-p 00000000 00:00 0 7d590000-8b840000 rw-p 00000000 00:00 0 8b840000-a52f0000 rw-p 00000000 00:00 0 a52f0000-a8030000 rw-p 00000000 00:00 0 a8030000-b52f0000 rw-p 00000000 00:00 0 b52f0000-b52f3000 r--s 00010000 fd:02 15865464 /home/xyd/software/eclipse/plugins/org.eclipse.equinox.util_1.0.100.v20090520-1800.jar b52f3000-b52f5000 r--s 00027000 fd:02 15865345 /home/xyd/software/eclipse/plugins/org.eclipse.equinox.ds_1.1.0.v20090601.jar b52f5000-b52f8000 r--s 00016000 fd:02 15863655 /home/xyd/software/eclipse/plugins/org.eclipse.equinox.common_3.5.0.v20090520-1800.jar b52f8000-b52ff000 r--s 000fb000 fd:01 1582707 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/resources.jar b52ff000-b5322000 rw-p 00000000 00:00 0 b5322000-b537f000 rw-p 00000000 00:00 0 b537f000-b5c07000 rwxp 00000000 00:00 0 b5c07000-b737f000 rw-p 00000000 00:00 0 b737f000-b73df000 rw-s 00000000 00:04 1245189 /SYSV00000000 (deleted) b73df000-b73e4000 r--p 00000000 fd:01 1318653 /usr/share/locale/zh_CN/LC_MESSAGES/gdk-pixbuf.mo b73e4000-b7447000 rw-p 00000000 00:00 0 b7447000-b7465000 r--s 00000000 fd:01 1449616 /usr/share/mime/mime.cache b7465000-b7466000 r--s 00000000 fd:02 15335641 /home/xyd/.local/share/mime/mime.cache b7466000-b7467000 r--s 00009000 fd:02 15863636 /home/xyd/software/eclipse/plugins/org.eclipse.equinox.p2.reconciler.dropins_1.0.100.v20090520-1905.jar b7467000-b747b000 r--p 00000000 fd:01 1317849 /usr/share/locale/zh_CN/LC_MESSAGES/libc.mo b747b000-b7482000 r--s 00000000 fd:01 1453483 /usr/lib/gconv/gconv-modules.cache b7482000-b7490000 r--p 00000000 fd:01 1322871 /usr/share/locale/zh_CN/LC_MESSAGES/gtk20.mo b7490000-b75f5000 r--p 05b7e000 fd:01 1078577 /usr/lib/locale/locale-archive b75f5000-b7635000 r--p 03268000 fd:01 1078577 /usr/lib/locale/locale-archive b7635000-b7835000 r--p 00000000 fd:01 1078577 /usr/lib/locale/locale-archive b7835000-b7837000 rw-p 00000000 00:00 0 b7837000-b7838000 r--s 00002000 fd:02 1441992 /home/xyd/software/eclipse/plugins/org.eclipse.core.runtime.compatibility.registry_3.2.200.v20090429-1800/runtime_registry_compatibility.jar b7838000-b783a000 r--s 00008000 fd:02 15863535 /home/xyd/software/eclipse/plugins/org.eclipse.equinox.simpleconfigurator_1.0.100.v20090520-1905.jar b783a000-b783e000 r--s 0007c000 fd:01 1584142 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/jsse.jar b783e000-b783f000 r--s 0000a000 fd:02 15863537 /home/xyd/software/eclipse/plugins/org.eclipse.equinox.launcher_1.0.200.v20090520.jar b783f000-b7848000 r--s 00065000 fd:01 1582631 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/ext/gnome-java-bridge.jar b7848000-b784b000 r--s 0000f000 fd:01 1582634 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/ext/pulse-java.jar b784b000-b7853000 rw-s 00000000 fd:01 2626743 /tmp/hsperfdata_xyd/6284 b7853000-b7854000 rw-p 00000000 00:00 0 b7854000-b7855000 r--p 00000000 00:00 0 b7855000-b7856000 rw-p 00000000 00:00 0 bfb15000-bfb18000 ---p 00000000 00:00 0 bfb19000-bfb65000 rw-p 00000000 00:00 0 [stack] VM Arguments: jvm_args: -Xms340m -Xmx956m -XX:MaxPermSize=256m java_command: Launcher Type: generic Environment Variables: PATH=/usr/lib/libfm:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/xyd/bin USERNAME=xyd LD_LIBRARY_PATH=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/client:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386:/usr/lib/xulrunner-2:/usr/lib/xulrunner-2 SHELL=/bin/bash DISPLAY=:0.0 Signal Handlers: SIGSEGV: [libjvm.so+0x3e4490], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGBUS: [libjvm.so+0x3e4490], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGFPE: [libjvm.so+0x302280], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGPIPE: SIG_IGN, sa_mask[0]=0x00000000, sa_flags=0x00000000 SIGXFSZ: [libjvm.so+0x302280], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGILL: [libjvm.so+0x302280], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000 SIGUSR2: [libjvm.so+0x302110], sa_mask[0]=0x00000000, sa_flags=0x10000004 SIGHUP: [libjvm.so+0x304f90], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGINT: [libjvm.so+0x304f90], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGTERM: [libjvm.so+0x304f90], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGQUIT: [libjvm.so+0x304f90], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 --------------- S Y S T E M --------------- OS:Fedora release 15 (Lovelock) uname:Linux 2.6.38.8-32.fc15.i686.PAE #1 SMP Mon Jun 13 19:55:27 UTC 2011 i686 libc:glibc 2.14 NPTL 2.14 rlimit: STACK 8192k, CORE 0k, NPROC 1024, NOFILE 1024, AS infinity load average:0.41 0.22 0.16 /proc/meminfo: MemTotal: 2056584 kB MemFree: 633428 kB Buffers: 81124 kB Cached: 713496 kB SwapCached: 0 kB Active: 823448 kB Inactive: 498016 kB Active(anon): 527628 kB Inactive(anon): 3316 kB Active(file): 295820 kB Inactive(file): 494700 kB Unevictable: 0 kB Mlocked: 0 kB HighTotal: 1189120 kB HighFree: 15072 kB LowTotal: 867464 kB LowFree: 618356 kB SwapTotal: 4128764 kB SwapFree: 4128764 kB Dirty: 6952 kB Writeback: 0 kB AnonPages: 526852 kB Mapped: 94676 kB Shmem: 4112 kB Slab: 56064 kB SReclaimable: 30532 kB SUnreclaim: 25532 kB KernelStack: 2656 kB PageTables: 8668 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 5157056 kB Committed_AS: 1600476 kB VmallocTotal: 122880 kB VmallocUsed: 28104 kB VmallocChunk: 77208 kB HardwareCorrupted: 0 kB AnonHugePages: 284672 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 10232 kB DirectMap2M: 892928 kB CPU:total 2 (2 cores per cpu, 1 threads per core) family 6 model 23 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3 Memory: 4k page, physical 2056584k(633428k free), swap 4128764k(4128764k free) vm_info: OpenJDK Client VM (20.0-b11) for linux-x86 JRE (1.6.0_22-b22), built on Jun 7 2011 17:56:45 by "mockbuild" with gcc 4.6.0 20110530 (Red Hat 4.6.0-9) time: Fri Jul 8 10:11:22 2011 elapsed time: 24 seconds -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From mvyskocil at suse.cz Fri Jul 8 00:30:07 2011 From: mvyskocil at suse.cz (Michal Vyskocil) Date: Fri, 8 Jul 2011 09:30:07 +0200 Subject: [PATCH][icedtea-web] use JRE in launchers Message-ID: <20110708073006.GC5971@zelva.suse.cz> Hi, following patch changes the JAVA=@JAVA@ to JAVA=@JRE@/bin/java in launchers. The reason is @JAVA@ refers to SDK location used for build of icedtea-web and that path is not usable on some distributions (not surprising that openSUSE is the one :)). Usage of @JRE@ is much correct in this case. Changelog: 2011-07-08 Michal Vyskocil * launcher/itweb-settings.in: use @JRE@ in JAVA location * launcher/javaws.in: use @JRE@ in JAVA location Regards Michal Vyskocil -------------- next part -------------- A non-text attachment was scrubbed... Name: use-jre-in-lanuchers-instead-of-java.patch Type: text/x-patch Size: 1127 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110708/32bdb3f0/use-jre-in-lanuchers-instead-of-java.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110708/32bdb3f0/attachment.bin From xranby at icedtea.classpath.org Fri Jul 8 02:01:29 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Fri, 08 Jul 2011 09:01:29 +0000 Subject: /hg/icedtea: JamVM: Is self-hosting. Message-ID: changeset dd5dc6567d11 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=dd5dc6567d11 author: Xerxes R?nby date: Fri Jul 08 10:51:52 2011 +0200 JamVM: Is self-hosting. 2011-07-08 Xerxes R?nby JamVM: Is self-hosting. * patches/jamvm/remove-sun.misc.Perf-debug-code.patch: New patch. * Makefile.am: (ICEDTEA_PATCHES): Apply new patch when building JamVM. * HACKING: Updated. * NEWS: Updated. diffstat: ChangeLog | 9 ++++ HACKING | 5 ++ Makefile.am | 5 ++ NEWS | 1 + patches/jamvm/remove-sun.misc.Perf-debug-code.patch | 44 +++++++++++++++++++++ 5 files changed, 64 insertions(+), 0 deletions(-) diffs (108 lines): diff -r b36e263a2d9c -r dd5dc6567d11 ChangeLog --- a/ChangeLog Thu Jul 07 13:10:27 2011 +0100 +++ b/ChangeLog Fri Jul 08 10:51:52 2011 +0200 @@ -1,3 +1,12 @@ +2011-07-08 Xerxes R??nby + + JamVM: Is self-hosting. + * patches/jamvm/remove-sun.misc.Perf-debug-code.patch: New patch. + * Makefile.am: + (ICEDTEA_PATCHES): Apply new patch when building JamVM. + * HACKING: Updated. + * NEWS: Updated. + 2011-07-05 Andrew John Hughes PR icedtea/751: diff -r b36e263a2d9c -r dd5dc6567d11 HACKING --- a/HACKING Thu Jul 07 13:10:27 2011 +0100 +++ b/HACKING Fri Jul 08 10:51:52 2011 +0200 @@ -166,6 +166,11 @@ * cacao/no-strict-aliasing.patch: Turn off strict aliasing which causes an issue with the verifier when building with GCC 4.4 (cacao PR129). +The following patches are only applied when building with the JamVM virtual machine: +* jamvm/remove-sun.misc.Perf-debug-code.patch: Remove use of Hotspot specific + sun.misc.Perf debug JNI API inside of the OpenJDK classes that are + unsupported by JamVM. + The following patches are to support Xrender pipeline (-Dsun.java2d.xrender): * icedtea-xrender-xxx.patch: Numbered patches from xrender branch diff -r b36e263a2d9c -r dd5dc6567d11 Makefile.am --- a/Makefile.am Thu Jul 07 13:10:27 2011 +0100 +++ b/Makefile.am Fri Jul 08 10:51:52 2011 +0200 @@ -306,6 +306,11 @@ patches/cacao/ignore-tests.patch endif +if BUILD_JAMVM +ICEDTEA_PATCHES += \ + patches/jamvm/remove-sun.misc.Perf-debug-code.patch +endif + if ENABLE_PULSE_JAVA ICEDTEA_PATCHES += \ patches/pulse-soundproperties.patch diff -r b36e263a2d9c -r dd5dc6567d11 NEWS --- a/NEWS Thu Jul 07 13:10:27 2011 +0100 +++ b/NEWS Fri Jul 08 10:51:52 2011 +0200 @@ -12,6 +12,7 @@ New in release 2.0 (2011-XX-XX): * JamVM + - JamVM is self-hosting. - Make classlib init functions consistent + warnings. - Correctly implement sun.misc.Unsafe freeMemory(). - Move lazy-loading to init function. diff -r b36e263a2d9c -r dd5dc6567d11 patches/jamvm/remove-sun.misc.Perf-debug-code.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/jamvm/remove-sun.misc.Perf-debug-code.patch Fri Jul 08 10:51:52 2011 +0200 @@ -0,0 +1,47 @@ +Index: openjdk/jdk/src/share/classes/java/net/URLClassLoader.java +=================================================================== +--- openjdk.orig/jdk/src/share/classes/java/net/URLClassLoader.java 2011-06-13 16:58:42.000000000 +0200 ++++ openjdk/jdk/src/share/classes/java/net/URLClassLoader.java 2011-06-28 18:43:50.114802612 +0200 +@@ -438,14 +438,12 @@ + // Use (direct) ByteBuffer: + CodeSigner[] signers = res.getCodeSigners(); + CodeSource cs = new CodeSource(url, signers); +- sun.misc.PerfCounter.getReadClassBytesTime().addElapsedTimeFrom(t0); + return defineClass(name, bb, cs); + } else { + byte[] b = res.getBytes(); + // must read certificates AFTER reading bytes. + CodeSigner[] signers = res.getCodeSigners(); + CodeSource cs = new CodeSource(url, signers); +- sun.misc.PerfCounter.getReadClassBytesTime().addElapsedTimeFrom(t0); + return defineClass(name, b, 0, b.length, cs); + } + } +Index: openjdk/jdk/src/share/classes/java/lang/ClassLoader.java +=================================================================== +--- openjdk.orig/jdk/src/share/classes/java/lang/ClassLoader.java 2011-06-13 16:58:42.000000000 +0200 ++++ openjdk/jdk/src/share/classes/java/lang/ClassLoader.java 2011-06-28 18:43:50.142802778 +0200 +@@ -422,10 +422,6 @@ + long t1 = System.nanoTime(); + c = findClass(name); + +- // this is the defining class loader; record the stats +- sun.misc.PerfCounter.getParentDelegationTime().addTime(t1 - t0); +- sun.misc.PerfCounter.getFindClassTime().addElapsedTimeFrom(t1); +- sun.misc.PerfCounter.getFindClasses().increment(); + } + } + if (resolve) { +Index: openjdk/jdk/src/share/classes/java/util/zip/ZipFile.java +=================================================================== +--- openjdk.orig/jdk/src/share/classes/java/util/zip/ZipFile.java 2011-06-28 18:56:56.994704556 +0200 ++++ openjdk/jdk/src/share/classes/java/util/zip/ZipFile.java 2011-06-28 18:57:11.514776567 +0200 +@@ -212,8 +212,6 @@ + this.zc = ZipCoder.get(charset); + long t0 = System.nanoTime(); + jzfile = open(name, mode, file.lastModified(), usemmap); +- sun.misc.PerfCounter.getZipFileOpenTime().addElapsedTimeFrom(t0); +- sun.misc.PerfCounter.getZipFileCount().increment(); + this.name = name; + this.total = getTotal(jzfile); + } From xerxes at zafena.se Fri Jul 8 02:34:26 2011 From: xerxes at zafena.se (Xerxes =?ISO-8859-1?Q?R=E5nby?=) Date: Fri, 08 Jul 2011 11:34:26 +0200 Subject: RFC: IcedTea7 JamVM selfhost patch - remove-sun.misc.Perf-debug-code In-Reply-To: <1309873522.3727.5.camel@xranby-ESPRIMO-P7935> References: <1309444645.10301.16.camel@xranby-ESPRIMO-P7935> <20110705010706.GA17947@shelob.middle-earth.co.uk> <1309873522.3727.5.camel@xranby-ESPRIMO-P7935> Message-ID: <1310117667.13358.7.camel@xranby-ESPRIMO-P7935> tis 2011-07-05 klockan 15:45 +0200 skrev Xerxes R?nby: > tis 2011-07-05 klockan 02:07 +0100 skrev Andrew John Hughes: > > On Thu, Jun 30, 2011 at 04:37:25PM +0200, Xerxes R?nby wrote: > > > Hi team, > > > > > > The attached patch makes it possible for IcedTea 7 JamVM builds to be > > > selfhosting. > > > > > > Some OpenJDK 7 classes makes internal use of the unofficial > > > sun.misc.Perf API to keep track of startup time. sun.misc.Perf itself > > > implements its functionality by using some special jni calls inside of > > > Hotspot. > > > > > > By reducing the internal use of sun.misc.Perf in the OpenJDK 7 classes > > > makes it possible to use the OpenJDK 7 classes with non-Hotspot JVMs. > > > > No. If this is needed for JamVM, it should be a JamVM-specific patch, > > not applied generally. > > OK, I have attached a new JamVM-specific patch that only get applied > when performing a JamVM build. I decided to push this patch now when it are conditionalized to only apply when performing JamVM builds. Pused to: http://icedtea.classpath.org/hg/icedtea/rev/dd5dc6567d11 Now is the time to start run some JamVM + OpenJDK 7 testing! build instructions: hg clone http://icedtea.classpath.org/hg/icedtea cd icedtea ./autogen.sh cd .. mkdir icedtea-build cd icedtea-build ../icedtea/configure --enable-jamvm make Cheers Xerxes From ptisnovs at redhat.com Fri Jul 8 02:37:02 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Fri, 08 Jul 2011 11:37:02 +0200 Subject: Reviewer needed: backport of 6711682 into IcedTea6 HEAD. Message-ID: <4E16CFBE.90902@redhat.com> Hi all, I'd like to push backport of "6711682: JCheckBox in JTable: checkbox doesn't always respond to the first mouse click" fix into IcedTea6 HEAD. This fix was successfully checked on RHEL 5.6 x86_64. Please note that it's best to run the regression test contained in this fix from JTreg tool because if the test is started from CLI, it does not close it's frame (but the checkbox-click behaviour is checked correctly in both cases). ChangeLog entry: 2011-07-08 Pavel Tisnovsky * Makefile.am: added new patch * NEWS: updated with backport * patches/openjdk/6711682-JCheckBox_in_JTable_does_not_respond_to_click.patch: Backport of 6711682. Can anybody please review this change? Thank you in advance, Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 6711682_hg.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110708/a3b8da93/6711682_hg.diff From jvanek at redhat.com Fri Jul 8 03:08:42 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 08 Jul 2011 12:08:42 +0200 Subject: Reviewer needed: backport of 6711682 into IcedTea6 HEAD. In-Reply-To: <4E16CFBE.90902@redhat.com> References: <4E16CFBE.90902@redhat.com> Message-ID: <4E16D72A.6050407@redhat.com> On 07/08/2011 11:37 AM, Pavel Tisnovsky wrote: > Hi all, > > I'd like to push backport of "6711682: JCheckBox in JTable: checkbox > doesn't always respond to the first mouse click" fix > into IcedTea6 HEAD. This fix was successfully checked on RHEL 5.6 x86_64. > > Please note that it's best to run the regression test contained in this > fix from JTreg tool because if the test is started from CLI, it does not > close it's frame (but the checkbox-click behaviour is checked correctly > in both cases). > > ChangeLog entry: > > 2011-07-08 Pavel Tisnovsky > > * Makefile.am: added new patch > * NEWS: updated with backport > * > patches/openjdk/6711682-JCheckBox_in_JTable_does_not_respond_to_click.patch: > Backport of 6711682. > > > Can anybody please review this change? > > Thank you in advance, > Pavel > > ok then. J. From xerxes at zafena.se Fri Jul 8 04:02:04 2011 From: xerxes at zafena.se (Xerxes =?ISO-8859-1?Q?R=E5nby?=) Date: Fri, 08 Jul 2011 13:02:04 +0200 Subject: RFC: icedtea6-1.9.9 PR632: patches/security/20110215/6878713.patch breaks shark zero build Message-ID: <1310122924.13358.23.camel@xranby-ESPRIMO-P7935> Hi I have re-rolled the PR632 patch targeting the icedtea6-1.9 release branch. The patch unbreaks Shark build and i have tested it on the following four build combinations HS17, HS17+Shark, HS19, HS19 + Shark: Ok to push? All performed full bootstrap builds configured like this: HS17 ~/icedtea6-1.9-hs17$ ../icedtea6-1.9/configure ~/icedtea6-1.9-hs17$ make ~/icedtea6-1.9-hs17$ ./openjdk.build/j2sdk-image/bin/java -version java version "1.6.0_20" OpenJDK Runtime Environment (IcedTea6 1.9.9pre+r78333d0b383a) (Ubuntu build 1.6.0_20-b20) OpenJDK Server VM (build 17.0-b16, mixed mode) HS17 + Shark ~/icedtea6-1.9-shark-hs17$ ../icedtea6-1.9/configure --enable-shark ~/icedtea6-1.9-shark-hs17$ make ~/icedtea6-1.9-shark-hs17$ ./openjdk.build/j2sdk-image/bin/java -version java version "1.6.0_20" OpenJDK Runtime Environment (IcedTea6 1.9.9pre+r78333d0b383a) (Ubuntu build 1.6.0_20-b20) OpenJDK Shark VM (build 17.0-b16, mixed mode) HS19 ~/icedtea6-1.9-hs19$ ../icedtea6-1.9/configure --with-hotspot-build=hs19 ~/icedtea6-1.9-hs19$ make ~/icedtea6-1.9-hs19$ ./openjdk.build/j2sdk-image/bin/java -version java version "1.6.0_20" OpenJDK Runtime Environment (IcedTea6 1.9.9pre+r78333d0b383a) (Ubuntu build 1.6.0_20-b20) OpenJDK Server VM (build 19.0-b09, mixed mode) HS19 + Shark - this combination fails to build docs that are a know Shark bug when usiong HS19 and later: PR559 http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=559 PR701 http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=701 ~/icedtea6-1.9-shark-hs19$ ../icedtea6-1.9/configure --enable-shark --with-hotspot-build=hs19 ~/icedtea6-1.9-shark-hs19$ make ~/icedtea6-1.9-shark-hs19$ ./openjdk.build/j2sdk-image/bin/java -version bash: ./openjdk.build/j2sdk-image/bin/java: File does not exist... #Shark against HS19 fails to perform a full bootstrap with docs #apart from that it builds and runs ~/icedtea6-1.9-shark-hs19$ ./openjdk.build/bin/java -version java version "1.6.0_20" OpenJDK Runtime Environment (IcedTea6 1.9.9pre+r78333d0b383a) (Ubuntu build 1.6.0_20-b20) OpenJDK Shark VM (build 19.0-b09, mixed mode) Cheers Xerxes -------------- next part -------------- A non-text attachment was scrubbed... Name: icedtea6-1.9-PR632.patch Type: text/x-patch Size: 2131 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110708/2e0fdedd/icedtea6-1.9-PR632.patch From bugzilla-daemon at icedtea.classpath.org Fri Jul 8 05:06:53 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 08 Jul 2011 12:06:53 +0000 Subject: [Bug 716] IcedTea7 should bootstrap with IcedTea6 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=716 Bug 716 depends on bug 751, which changed state. Bug 751 Summary: IcedTea7 should bootstrap with IcedTea7 http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=751 What |Old Value |New Value ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Status|ASSIGNED |RESOLVED Resolution| |FIXED -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Fri Jul 8 05:06:53 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 08 Jul 2011 12:06:53 +0000 Subject: [Bug 712] [TRACKER] IcedTea7 2.0 release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=712 Bug 712 depends on bug 751, which changed state. Bug 751 Summary: IcedTea7 should bootstrap with IcedTea7 http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=751 What |Old Value |New Value ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution| |FIXED -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Fri Jul 8 05:06:52 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 08 Jul 2011 12:06:52 +0000 Subject: [Bug 751] IcedTea7 should bootstrap with IcedTea7 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=751 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution| |FIXED --- Comment #3 from Andrew John Hughes 2011-07-08 12:06:52 --- Fixed with http://icedtea.classpath.org/hg/icedtea/rev/b36e263a2d9c -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Fri Jul 8 05:08:53 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 08 Jul 2011 12:08:53 +0000 Subject: [Bug 699] A problem with libre office In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=699 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ahughes at redhat.com Platform|all |x86_64 Version|unspecified |6-1.9.7 --- Comment #1 from Andrew John Hughes 2011-07-08 12:08:53 --- We need a way of reproducing this to look at it. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Fri Jul 8 05:10:38 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 08 Jul 2011 12:10:38 +0000 Subject: [Bug 566] gerrit crash - problem points to jdk In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=566 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ahughes at redhat.com Status|NEW |RESOLVED Resolution| |WORKSFORME --- Comment #1 from Andrew John Hughes 2011-07-08 12:10:37 --- No way is given for reproducing this and it appears to be with a very old VM. Please reopen if the issue can be reproduced with a recent version of IcedTea. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From ptisnovs at icedtea.classpath.org Fri Jul 8 05:10:54 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 08 Jul 2011 12:10:54 +0000 Subject: /hg/icedtea6: S6711682: JCheckBox in JTable: checkbox doesn't al... Message-ID: changeset 67985e03e768 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=67985e03e768 author: ptisnovs date: Fri Jul 08 14:10:47 2011 +0200 S6711682: JCheckBox in JTable: checkbox doesn't always respond to the first mouse click diffstat: ChangeLog | 7 + Makefile.am | 3 +- NEWS | 1 + patches/openjdk/6711682-JCheckBox_in_JTable_does_not_respond_to_click.patch | 175 ++++++++++ 4 files changed, 185 insertions(+), 1 deletions(-) diffs (219 lines): diff -r 0911ad28ea98 -r 67985e03e768 ChangeLog --- a/ChangeLog Thu Jul 07 14:19:34 2011 +0100 +++ b/ChangeLog Fri Jul 08 14:10:47 2011 +0200 @@ -1,3 +1,10 @@ +2011-07-08 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/6711682-JCheckBox_in_JTable_does_not_respond_to_click.patch: + Backport of 6711682. + 2011-07-07 Andrew John Hughes * Makefile.am: diff -r 0911ad28ea98 -r 67985e03e768 Makefile.am --- a/Makefile.am Thu Jul 07 14:19:34 2011 +0100 +++ b/Makefile.am Fri Jul 08 14:10:47 2011 +0200 @@ -361,7 +361,8 @@ patches/jtreg-remove-test-6987555.patch \ patches/jtreg-remove-test-6991596.patch \ patches/openjdk/7036220-shark_llvm_29_headers.patch \ - patches/openjdk/7029152-String_intrinsics_miss_optimization.patch + patches/openjdk/7029152-String_intrinsics_miss_optimization.patch \ + patches/openjdk/6711682-JCheckBox_in_JTable_does_not_respond_to_click.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r 0911ad28ea98 -r 67985e03e768 NEWS --- a/NEWS Thu Jul 07 14:19:34 2011 +0100 +++ b/NEWS Fri Jul 08 14:10:47 2011 +0200 @@ -48,6 +48,7 @@ - S6679308: Poor text rendering on translucent image - S6842838: 64-bit failure in handling invalid manifest in launcher. - S6882768: Test for 6842838 is broken + - S6711682: JCheckBox in JTable: checkbox doesn't always respond to the first mouse click * Bug fixes - PR637: make check should exit with an error code if any regression test failed. - G356743: Support libpng 1.5. diff -r 0911ad28ea98 -r 67985e03e768 patches/openjdk/6711682-JCheckBox_in_JTable_does_not_respond_to_click.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6711682-JCheckBox_in_JTable_does_not_respond_to_click.patch Fri Jul 08 14:10:47 2011 +0200 @@ -0,0 +1,177 @@ +# HG changeset patch +# User alexp +# Date 1278084531 -14400 +# Node ID e94a94d176f9c4b91b454ab7dfaf5f013497f9dd +# Parent 46306a419ba32857169849cfcf30cfca328c2db4 +6711682: JCheckBox in JTable: checkbox doesn't alaways respond to the first mouse click +Reviewed-by: rupashka + +diff -r 46306a419ba3 -r e94a94d176f9 src/share/classes/javax/swing/plaf/basic/BasicButtonListener.java +--- openjdk.orig/jdk/src/share/classes/javax/swing/plaf/basic/BasicButtonListener.java Thu Jul 01 18:47:56 2010 +0400 ++++ openjdk/jdk/src/share/classes/javax/swing/plaf/basic/BasicButtonListener.java Fri Jul 02 19:28:51 2010 +0400 +@@ -195,9 +195,8 @@ + } + + ButtonModel model = b.getModel(); ++ model.setPressed(false); + model.setArmed(false); +- model.setPressed(false); +- + b.repaint(); + } + +diff -r 46306a419ba3 -r e94a94d176f9 test/javax/swing/AbstractButton/6711682/bug6711682.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/javax/swing/AbstractButton/6711682/bug6711682.java Fri Jul 02 19:28:51 2010 +0400 +@@ -0,0 +1,151 @@ ++/* ++ * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++/* @test ++ @bug 6711682 ++ @summary JCheckBox in JTable: checkbox doesn't alaways respond to the first mouse click ++ @author Alexander Potochkin ++ @run main bug6711682 ++*/ ++ ++import sun.awt.SunToolkit; ++ ++import javax.swing.*; ++import javax.swing.event.CellEditorListener; ++import javax.swing.table.TableCellEditor; ++import javax.swing.table.TableCellRenderer; ++import java.awt.*; ++import java.awt.event.InputEvent; ++import java.awt.event.KeyEvent; ++import java.util.EventObject; ++ ++public class bug6711682 { ++ private static JCheckBox editorCb; ++ private static JCheckBox rendererCb; ++ private static JTable table; ++ ++ public static void main(String[] args) throws Exception { ++ Robot robot = new Robot(); ++ robot.setAutoDelay(50); ++ SunToolkit toolkit = (SunToolkit) Toolkit.getDefaultToolkit(); ++ SwingUtilities.invokeAndWait(new Runnable() { ++ public void run() { ++ createAndShowGUI(); ++ } ++ }); ++ toolkit.realSync(); ++ Point l = table.getLocationOnScreen(); ++ int h = table.getRowHeight(); ++ for (int i = 0; i < 3; i++) { ++ robot.mouseMove(l.x + 5, l.y + 5 + i * h); ++ robot.mousePress(InputEvent.BUTTON1_MASK); ++ robot.mouseRelease(InputEvent.BUTTON1_MASK); ++ } ++ // Without pressing F2 the last table's cell ++ // reported false value ++ // note that I can't press it inside the for loop ++ // because it doesn't reproduce the bug ++ robot.keyPress(KeyEvent.VK_F2); ++ robot.keyRelease(KeyEvent.VK_F2); ++ ++ for (int i = 0; i < 3; i++) { ++ if (!Boolean.TRUE.equals(table.getValueAt(i, 0))) { ++ throw new RuntimeException("Row #" + i + " checkbox is not selected"); ++ } ++ } ++ for (int i = 2; i >= 0; i--) { ++ robot.mouseMove(l.x + 5, l.y + 5 + i * h); ++ robot.mousePress(InputEvent.BUTTON1_MASK); ++ robot.mouseRelease(InputEvent.BUTTON1_MASK); ++ } ++ robot.keyPress(KeyEvent.VK_F2); ++ robot.keyRelease(KeyEvent.VK_F2); ++ for (int i = 0; i < 3; i++) { ++ if (Boolean.TRUE.equals(table.getValueAt(i, 0))) { ++ throw new RuntimeException("Row #" + i + " checkbox is selected"); ++ } ++ } ++ } ++ ++ private static void createAndShowGUI() { ++ editorCb = new JCheckBox(); ++ rendererCb = new JCheckBox(); ++ JFrame f = new JFrame("Table with CheckBox"); ++ Container p = f.getContentPane(); ++ p.setLayout(new BorderLayout()); ++ table = new JTable(new Object[][]{{false}, {false}, {false}}, new Object[]{"CheckBox"}); ++ TableCellEditor editor = new TableCellEditor() { ++ int editedRow; ++ ++ public Component getTableCellEditorComponent(JTable table, ++ Object value, boolean isSelected, int row, int column) { ++ this.editedRow = row; ++ editorCb.setSelected(Boolean.TRUE.equals(value)); ++ editorCb.setBackground(UIManager.getColor("Table.selectionBackground")); ++ return editorCb; ++ } ++ ++ public void addCellEditorListener(CellEditorListener l) { ++ } ++ ++ public void cancelCellEditing() { ++ } ++ ++ public Object getCellEditorValue() { ++ return editorCb.isSelected(); ++ } ++ ++ public boolean isCellEditable(EventObject anEvent) { ++ return true; ++ } ++ ++ public void removeCellEditorListener(CellEditorListener l) { ++ } ++ ++ public boolean shouldSelectCell(EventObject anEvent) { ++ return true; ++ } ++ ++ public boolean stopCellEditing() { ++ table.getModel().setValueAt(editorCb.isSelected(), editedRow, 0); ++ return true; ++ } ++ }; ++ table.getColumnModel().getColumn(0).setCellEditor(editor); ++ ++ TableCellRenderer renderer = new TableCellRenderer() { ++ public Component getTableCellRendererComponent(JTable table, ++ Object value, boolean isSelected, boolean hasFocus, ++ int row, int column) { ++ rendererCb.setSelected(Boolean.TRUE.equals(value)); ++ return rendererCb; ++ } ++ }; ++ table.getColumnModel().getColumn(0).setCellRenderer(renderer); ++ ++ p.add(table, BorderLayout.CENTER); ++ ++ f.pack(); ++ f.setVisible(true); ++ } ++} From ptisnovs at redhat.com Fri Jul 8 06:29:30 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Fri, 08 Jul 2011 15:29:30 +0200 Subject: Reviewer needed - adding @ignore tag to a regression test hotspot/test/runtime/7020373 in IcedTea6 HEAD Message-ID: <4E17063A.3030800@redhat.com> Hi all, I'd like to add @ignore tag to a regression test jdk/hotspot/test/runtime/7020373. This tag is needed because the original test consists of two files: shell script and java archive "testcase.jar" containing only OOMCrashClass4000_1.class, ie. no source file(s). As we are not allowed to add binary files to OpenJDK/IcedTea it's IMHO better to just ignore this test ATM. ChangeLog entry: 2011-07-08 Pavel Tisnovsky * Makefile.am: added new patch * patches/jtreg-7020373-add-ignore-tag.patch: Added @ignore tag to this regression test because binary jar file needed to run the test is missing in OpenJDK6. Can anybody please review this change? Thank you in advance Pavel PS: I'm going to sent mail to hotspot-runtime mail list to ask why such test were included in OpenJDK7. -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 7020373_hg.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110708/dcbd7a36/7020373_hg.diff From bugzilla-daemon at icedtea.classpath.org Fri Jul 8 07:00:05 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 08 Jul 2011 14:00:05 +0000 Subject: [Bug 754] error In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=754 Deepak Bhole changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dbhole at redhat.com Status|NEW |RESOLVED Resolution| |DUPLICATE --- Comment #1 from Deepak Bhole 2011-07-08 14:00:05 --- This is a xulrunner/eclipse bug. Please see comment 2 in Bug# 746 for a workaround. *** This bug has been marked as a duplicate of bug 746 *** -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Fri Jul 8 07:00:05 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 08 Jul 2011 14:00:05 +0000 Subject: [Bug 746] eclipse crashes on start due to native library failure in libxul.so In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=746 Deepak Bhole changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |changmingivy at yahoo.com.cn --- Comment #5 from Deepak Bhole 2011-07-08 14:00:05 --- *** Bug 754 has been marked as a duplicate of this bug. *** -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From ahughes at redhat.com Fri Jul 8 07:53:00 2011 From: ahughes at redhat.com (Andrew John Hughes) Date: Fri, 8 Jul 2011 15:53:00 +0100 Subject: Reviewer needed - adding @ignore tag to a regression test hotspot/test/runtime/7020373 in IcedTea6 HEAD In-Reply-To: <4E17063A.3030800@redhat.com> References: <4E17063A.3030800@redhat.com> Message-ID: <20110708145300.GA13502@shelob.middle-earth.co.uk> On Fri, Jul 08, 2011 at 03:29:30PM +0200, Pavel Tisnovsky wrote: > Hi all, > > I'd like to add @ignore tag to a regression test > jdk/hotspot/test/runtime/7020373. This tag is needed because the > original test consists of two files: shell script and java archive > "testcase.jar" containing only OOMCrashClass4000_1.class, ie. no source > file(s). > > As we are not allowed to add binary files to OpenJDK/IcedTea it's IMHO > better to just ignore this test ATM. > > ChangeLog entry: > > 2011-07-08 Pavel Tisnovsky > > * Makefile.am: added new patch > * patches/jtreg-7020373-add-ignore-tag.patch: > Added @ignore tag to this regression test because binary jar file > needed to run the test is missing in OpenJDK6. > > > Can anybody please review this change? > > Thank you in advance > Pavel > > PS: I'm going to sent mail to hotspot-runtime mail list to ask why such > test were included in OpenJDK7. Approved. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Fri Jul 8 07:58:33 2011 From: ahughes at redhat.com (Andrew John Hughes) Date: Fri, 8 Jul 2011 15:58:33 +0100 Subject: RFC: icedtea6-1.9.9 PR632: patches/security/20110215/6878713.patch breaks shark zero build In-Reply-To: <1310122924.13358.23.camel@xranby-ESPRIMO-P7935> References: <1310122924.13358.23.camel@xranby-ESPRIMO-P7935> Message-ID: <20110708145833.GB13502@shelob.middle-earth.co.uk> On Fri, Jul 08, 2011 at 01:02:04PM +0200, Xerxes R?nby wrote: > Hi I have re-rolled the PR632 patch targeting the icedtea6-1.9 release > branch. > > The patch unbreaks Shark build and i have tested it on the following > four build combinations HS17, HS17+Shark, HS19, HS19 + Shark: > > Ok to push? > > All performed full bootstrap builds configured like this: > The 'icedtea-' prefix should be dropped from the patch. Good to go with that change. Thanks for the due diligence on testing all HotSpot builds. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Fri Jul 8 08:02:08 2011 From: ahughes at redhat.com (Andrew John Hughes) Date: Fri, 8 Jul 2011 16:02:08 +0100 Subject: [PATCH][icedtea-web] use JRE in launchers In-Reply-To: <20110708073006.GC5971@zelva.suse.cz> References: <20110708073006.GC5971@zelva.suse.cz> Message-ID: <20110708150208.GC13502@shelob.middle-earth.co.uk> On Fri, Jul 08, 2011 at 09:30:07AM +0200, Michal Vyskocil wrote: > Hi, > > following patch changes the JAVA=@JAVA@ to JAVA=@JRE@/bin/java in > launchers. The reason is @JAVA@ refers to SDK location used for build > of icedtea-web and that path is not usable on some distributions (not > surprising that openSUSE is the one :)). Usage of @JRE@ is much correct > in this case. > > Changelog: > > 2011-07-08 Michal Vyskocil > > * launcher/itweb-settings.in: use @JRE@ in JAVA location > * launcher/javaws.in: use @JRE@ in JAVA location > > Regards > Michal Vyskocil No, --with-java should be used to point to a java binary. If you're pointing it to a directory, you're using the option wrongly. The --with-jdk-home is used for pointing to the jdk and --with-java will default to ${JDK_HOME}/bin/java. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Fri Jul 8 08:11:21 2011 From: ahughes at redhat.com (Andrew John Hughes) Date: Fri, 8 Jul 2011 16:11:21 +0100 Subject: [PATCH REVIEW] [1.10] RFC: Support Linux 3 Message-ID: <20110708151121.GD13502@shelob.middle-earth.co.uk> I'd like to backport the attached patch to 1.10. I also intend to backport this to 1.8 & 1.9 if anyone wants to give an early approval. ChangeLog: 2011-06-28 Andrew John Hughes * Makefile.am: Add new patch. * patches/support_linux_3.patch: Allow Linux 3* through the HotSpot OS version filter. * NEWS: Updated. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Fri Jul 8 08:12:01 2011 From: ahughes at redhat.com (Andrew John Hughes) Date: Fri, 8 Jul 2011 16:12:01 +0100 Subject: [PATCH REVIEW] [1.10] RFC: Support Linux 3 In-Reply-To: <20110708151121.GD13502@shelob.middle-earth.co.uk> References: <20110708151121.GD13502@shelob.middle-earth.co.uk> Message-ID: <20110708151201.GE13502@shelob.middle-earth.co.uk> On Fri, Jul 08, 2011 at 04:11:21PM +0100, Andrew John Hughes wrote: > I'd like to backport the attached patch to 1.10. > > I also intend to backport this to 1.8 & 1.9 if anyone wants to give an early approval. > > ChangeLog: > > 2011-06-28 Andrew John Hughes > > * Makefile.am: Add new patch. > * patches/support_linux_3.patch: > Allow Linux 3* through the HotSpot OS version > filter. > * NEWS: Updated. > -- > Andrew :) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > Support Free Java! > Contribute to GNU Classpath and IcedTea > http://www.gnu.org/software/classpath > http://icedtea.classpath.org > PGP Key: F5862A37 (https://keys.indymedia.org/) > Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 And the patch... -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 -------------- next part -------------- # HG changeset patch # User Andrew John Hughes # Date 1310072477 -3600 # Node ID 28c6f2df462771fd38f0f98092bbe177c6abfb26 # Parent a95c47b36218144c9539d74f63320c1b84fe7722 Allow Linux 3* to pass through the HotSpot OS version filter. 2011-06-28 Andrew John Hughes * Makefile.am: Add new patch. * patches/support_linux_3.patch: Allow Linux 3* through the HotSpot OS version filter. * NEWS: Updated. diff -r a95c47b36218 -r 28c6f2df4627 ChangeLog --- a/ChangeLog Wed Jun 08 18:16:37 2011 +0100 +++ b/ChangeLog Thu Jul 07 22:01:17 2011 +0100 @@ -1,3 +1,11 @@ +2011-06-28 Andrew John Hughes + + * Makefile.am: Add new patch. + * patches/support_linux_3.patch: + Allow Linux 3* through the HotSpot OS version + filter. + * NEWS: Updated. + 2011-06-08 Andrew John Hughes * NEWS: Add 1.10.3. diff -r a95c47b36218 -r 28c6f2df4627 Makefile.am --- a/Makefile.am Wed Jun 08 18:16:37 2011 +0100 +++ b/Makefile.am Thu Jul 07 22:01:17 2011 +0100 @@ -341,7 +341,8 @@ patches/openjdk/7031385-gcc-register-allocation-fix.patch \ patches/shark-llvm-2.9.patch \ patches/openjdk/pgram-pipe-regression.patch \ - patches/openjdk/mutter.patch + patches/openjdk/mutter.patch \ + patches/support_linux_3.patch if WITH_ALT_HSBUILD ICEDTEA_PATCHES += \ diff -r a95c47b36218 -r 28c6f2df4627 NEWS --- a/NEWS Wed Jun 08 18:16:37 2011 +0100 +++ b/NEWS Thu Jul 07 22:01:17 2011 +0100 @@ -11,6 +11,9 @@ New in release 1.10.3 (20XX-XX-XX): +* Bug fixes + - PR748: Icedtea6 fails to build with Linux 3.0. + New in release 1.10.2 (2011-06-07): * Security fixes diff -r a95c47b36218 -r 28c6f2df4627 patches/support_linux_3.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/support_linux_3.patch Thu Jul 07 22:01:17 2011 +0100 @@ -0,0 +1,19 @@ +# HG changeset patch +# User andrew +# Date 1309217125 -3600 +# Node ID f7e8b10f51c6a622520b55df0c644fb09ec78542 +# Parent b8227c320dec384a94026fcaa650b0ebd4eef13b +Allow building HotSpot with any Linux 3 version. + +diff -r b8227c320dec -r f7e8b10f51c6 make/linux/Makefile +--- openjdk/hotspot/make/linux/Makefile Wed Jun 15 18:56:52 2011 +0100 ++++ openjdk/hotspot/make/linux/Makefile Tue Jun 28 00:25:25 2011 +0100 +@@ -230,7 +230,7 @@ + # Solaris 2.5.1, 2.6). + # Disable this check by setting DISABLE_HOTSPOT_OS_VERSION_CHECK=ok. + +-SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 2.7% ++SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% + OS_VERSION := $(shell uname -r) + EMPTY_IF_NOT_SUPPORTED = $(filter $(SUPPORTED_OS_VERSION),$(OS_VERSION)) + From ahughes at redhat.com Fri Jul 8 08:21:04 2011 From: ahughes at redhat.com (Andrew John Hughes) Date: Fri, 8 Jul 2011 16:21:04 +0100 Subject: [PATCH REVIEW] [1.10] RFC: Make tests for java/javah/jar/native2ascii/rmic more stringent Message-ID: <20110708152104.GF13502@shelob.middle-earth.co.uk> I don't usually like making build changes on release branches, but I think this one is minor and useful enough to be worthy of consideration. It checks that the values given for --with-java/jar/rmic/native2ascii/javah are files as well as being executables, preventing directories being allowed through and causing issues later (e.g. broken configure test results when ${JAVA} is used to run tests). Ok for 1.10? I think 1.8 & 1.9 will require other changes too, so just 1.10 for this one. IcedTea-Web folks, you might want to consider porting this one (or rather, the relevant chunks) over too. ChangeLog: Check that JDK binaries are files in addition to being executable. 2011-06-29 Andrew John Hughes * acinclude.m4: (IT_FIND_JAVA): Check that the binary is also a regular file as well as executable. (IT_FIND_JAVAH): Likewise. (IT_FIND_JAR): Likewise. (IT_FIND_RMIC): Likewise. (IT_FIND_NATIVE2ASCII): Likewise. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 -------------- next part -------------- # HG changeset patch # User Andrew John Hughes # Date 1309367817 -3600 # Node ID 6c21fc007867e718636767a2cbe1df8c02307958 # Parent 15caf12fc26df836a387036ff70eec6875db9f9d Check that JDK binaries are files in addition to being executable. 2011-06-29 Andrew John Hughes * acinclude.m4: (IT_FIND_JAVA): Check that the binary is also a regular file as well as executable. (IT_FIND_JAVAH): Likewise. (IT_FIND_JAR): Likewise. (IT_FIND_RMIC): Likewise. (IT_FIND_NATIVE2ASCII): Likewise. diff -r 15caf12fc26d -r 6c21fc007867 ChangeLog --- a/ChangeLog Fri Jul 08 16:13:57 2011 +0100 +++ b/ChangeLog Wed Jun 29 18:16:57 2011 +0100 @@ -1,3 +1,13 @@ +2011-06-29 Andrew John Hughes + + * acinclude.m4: + (IT_FIND_JAVA): Check that the binary is also + a regular file as well as executable. + (IT_FIND_JAVAH): Likewise. + (IT_FIND_JAR): Likewise. + (IT_FIND_RMIC): Likewise. + (IT_FIND_NATIVE2ASCII): Likewise. + 2011-06-28 Andrew John Hughes * Makefile.am: Add new patch. diff -r 15caf12fc26d -r 6c21fc007867 acinclude.m4 --- a/acinclude.m4 Fri Jul 08 16:13:57 2011 +0100 +++ b/acinclude.m4 Wed Jun 29 18:16:57 2011 +0100 @@ -238,8 +238,8 @@ if test "x${JAVA}" = "xno"; then JAVA=${JAVA_DEFAULT} fi - AC_MSG_CHECKING([if $JAVA is a valid executable]) - if test -x "${JAVA}"; then + AC_MSG_CHECKING([if $JAVA is a valid executable file]) + if test -x "${JAVA}" && test -f "${JAVA}"; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) @@ -391,8 +391,8 @@ if test "x${JAVAH}" = "xno"; then JAVAH=${JAVAH_DEFAULT} fi - AC_MSG_CHECKING([if $JAVAH is a valid executable]) - if test -x "${JAVAH}"; then + AC_MSG_CHECKING([if $JAVAH is a valid executable file]) + if test -x "${JAVAH}" && test -f "${JAVAH}"; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) @@ -428,8 +428,8 @@ if test "x${JAR}" = "xno"; then JAR=${JAR_DEFAULT} fi - AC_MSG_CHECKING([if $JAR is a valid executable]) - if test -x "${JAR}"; then + AC_MSG_CHECKING([if $JAR is a valid executable file]) + if test -x "${JAR}" && test -f "${JAR}"; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) @@ -498,8 +498,8 @@ if test "x${RMIC}" = "xno"; then RMIC=${RMIC_DEFAULT} fi - AC_MSG_CHECKING([if $RMIC is a valid executable]) - if test -x "${RMIC}"; then + AC_MSG_CHECKING([if $RMIC is a valid executable file]) + if test -x "${RMIC}" && test -f "${RMIC}"; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) @@ -535,8 +535,8 @@ if test "x${NATIVE2ASCII}" = "xno"; then NATIVE2ASCII=${NATIVE2ASCII_DEFAULT} fi - AC_MSG_CHECKING([if $NATIVE2ASCII is a valid executable]) - if test -x "${NATIVE2ASCII}"; then + AC_MSG_CHECKING([if $NATIVE2ASCII is a valid executable file]) + if test -x "${NATIVE2ASCII}" && test -f "${NATIVE2ASCII}"; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) From dbhole at redhat.com Fri Jul 8 08:44:44 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Fri, 8 Jul 2011 11:44:44 -0400 Subject: RFC: Patch for Bug#749 (sun.applet.PluginStreamHandler#handleMessage(String) really slow) In-Reply-To: <20110705151616.GD10339@redhat.com> References: <20110704223514.GB10339@redhat.com> <20110705014810.GG17947@shelob.middle-earth.co.uk> <20110705151616.GD10339@redhat.com> Message-ID: <20110708154444.GC23867@redhat.com> * Deepak Bhole [2011-07-05 11:16]: > * Andrew John Hughes [2011-07-04 21:48]: > ... > New patch with updated docs attached. Thanks for taking a look! > ping? Deepak From asu at redhat.com Fri Jul 8 09:12:28 2011 From: asu at redhat.com (Andrew Su) Date: Fri, 8 Jul 2011 12:12:28 -0400 (EDT) Subject: [RFC][Icedtea-web]: Add code for handling policy files. In-Reply-To: <581538315.1016495.1309362078508.JavaMail.root@zmail01.collab.prod.int.phx2.redhat.com> Message-ID: <225191425.1201147.1310141548992.JavaMail.root@zmail01.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > From: "Andrew Su" > To: "distro-pkg-dev" > Sent: Wednesday, June 29, 2011 11:41:18 AM > Subject: Re: [RFC][Icedtea-web]: Add code for handling policy files. --snip-- > > Hello, > > I've updated the patch again with a more complete documentation. Also > moved a method to another file, updated some validation code. > Ping. 2011-07-08 Andrew Su * netx/net/sourceforge/jnlp/util/FileUtils.java: (writeContentToFile): New method. Writes string content to file. (readContentFromFile): New method. Reads a file and returns a String. * netx/net/sourceforge/jnlp/policy/ParseException.java: New class. * netx/net/sourceforge/jnlp/policy/Policy.java: New class. Used to represent a policy from a policy file. * netx/net/sourceforge/jnlp/policy/PolicyFormatter.java: New class. Formats Policy to a string representation of a policy file or parses a File/String to convert into Policy objects. * netx/net/sourceforge/jnlp/policy/PolicyUtils.java: New class. Methods for handling repetitive tasks when working with policy files. * netx/net/sourceforge/jnlp/policy/permission/Permission.java: New class. This represents a general permission. * netx/net/sourceforge/jnlp/policy/permission/AWTPermission.java * netx/net/sourceforge/jnlp/policy/permission/AllPermission.java * netx/net/sourceforge/jnlp/policy/permission/AudioPermission.java * netx/net/sourceforge/jnlp/policy/permission/AuthPermission.java * netx/net/sourceforge/jnlp/policy/permission/DelegationPermission.java * netx/net/sourceforge/jnlp/policy/permission/FilePermission.java * netx/net/sourceforge/jnlp/policy/permission/LoggingPermission.java * netx/net/sourceforge/jnlp/policy/permission/NetPermission.java * netx/net/sourceforge/jnlp/policy/permission/PrivateCredentialPermission.java * netx/net/sourceforge/jnlp/policy/permission/PropertyPermission.java * netx/net/sourceforge/jnlp/policy/permission/ReflectPermission.java * netx/net/sourceforge/jnlp/policy/permission/RuntimePermission.java * netx/net/sourceforge/jnlp/policy/permission/SQLPermission.java * netx/net/sourceforge/jnlp/policy/permission/SSLPermission.java * netx/net/sourceforge/jnlp/policy/permission/SecurityPermission.java * netx/net/sourceforge/jnlp/policy/permission/SerializablePermission.java * netx/net/sourceforge/jnlp/policy/permission/ServicePermission.java * netx/net/sourceforge/jnlp/policy/permission/SocketPermission.java: New classes. These are the default permission. * netx/net/sourceforge/jnlp/policy/principal/Principal.java: New class. This represents a general principal. * netx/net/sourceforge/jnlp/policy/principal/KerberosPrincipal.java * netx/net/sourceforge/jnlp/policy/principal/X500Principal.java: New classes. These are the default principals. -------------- next part -------------- A non-text attachment was scrubbed... Name: finalPolicy.patch Type: text/x-patch Size: 118313 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110708/5dea46e1/finalPolicy.patch From bugzilla-daemon at icedtea.classpath.org Fri Jul 8 10:08:38 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 08 Jul 2011 17:08:38 +0000 Subject: [Bug 755] New: Fatal Error on JUnit Test in Eclipse Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=755 Summary: Fatal Error on JUnit Test in Eclipse Product: IcedTea Version: 6-1.10.2 Platform: x86_64 OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: IcedTea6 AssignedTo: unassigned at icedtea.classpath.org ReportedBy: rtucker88 at gmail.com Created an attachment (id=550) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=550) Log File for the crash # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (classFileParser.cpp:3494), pid=5546, tid=139671569049344 # Error: ShouldNotReachHere() # # JRE version: 6.0_22-b22 # Java VM: OpenJDK 64-Bit Server VM (20.0-b11 mixed mode linux-amd64 compressed oops) # Derivative: IcedTea6 1.10.2 # Distribution: Fedora release 15 (Lovelock), package fedora-58.1.10.2.fc15-x86_64 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From jvanek at redhat.com Fri Jul 8 11:15:27 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 08 Jul 2011 20:15:27 +0200 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E14B940.6080109@redhat.com> References: <4E14B940.6080109@redhat.com> Message-ID: <4E17493F.5050905@redhat.com> On 07/06/2011 09:36 PM, Saad Mohammad wrote: > This is the updated patch for adding support of signed JNLP file. I have attached two patches. Hi! One big error all over whole work - 9sorry for not mentioned earlier) - all fiels are missing "copyright" headers:( (java+jnlps :(( ) Please add tehm. So I have walked through Patch1 it quite careful and whole composition seems ok. Matcher works quite nice,and is fast enough. Trailing spaces are ignored, and matcher fails when mixed elements are include (as they should not appear in jnlp, then it is correct). To matcher and its test I have four major points: -JNLPmatcher should be immutable -misuses of setup/tear down -still converting list/arrays -makefile - to much lines for pure copying! +some cosmetic changes - if you will consider them as nit-picky, remeber that your code is going to community and so -- must be as good as possible;) For Patch2 i can not review security issues (please, ask Deepak for this), but few small hints included. Se inline: > > More Info: > http://jcp.org/aboutJava/communityprocess/maintenance/jsr056/jnlp-7_0-changes.html (Change 3) > > > Patch 1 Contains: > - JNLPMatcher.java (renamed from JNLPVerify) > - JNLPMatcherException.java (renamed from JNLPVerifyException) > - Modification of Node.java > - JNLPMatcherTest (Unit test that tests JNLPMatcher class) > - Contains 10 templates JNLP files, 9 application JNLP files and one launching JNLP file for test (Resources for JNLPMatcherTest) > > Patch 2 Contains: > - Modification to JNLPClassLoader.java > > > CHANGELOG: > > 2011-07-06 Saad Mohammad > > * netx/net/sourceforge/jnlp/JNLPMatcher.java: > Created this class to compare signed JNLP file with the launching JNLP file. > When comparing, it has support for both method of signing of a JNLP file: APPLICATION_TEMPLATE.JNLP > and APPLICATION.JNLP > * netx/net/sourceforge/jnlp/JNLPMatcherException.java: > Added a custom exception: JNLPMatcherException. Thrown if verifying signed JNLP files fails > * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: > Added JNLPMatcherException to methods that throws the custom exception. > (initializeResources): Checks if there are any signed JNLP files within the signed jars. > If signed JNLP file fails to match or fails to be verified, the application throws > a JNLPMatcherException. > * netx/net/sourceforge/jnlp/Node.java: > Created a method that retrieves the attribute names of the Node and stores it in > private string [] member. The method returns the attribute names. > * tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java: > This is a test case that tests the functionality of JNLPMatcher. It tests the algorithm > with a variety of template and application JNLP files. > * tests/netx/unit/net/sourceforge/jnlp/launchApp.jnlp: > Launching JNLP file: This is the launching JNLP file used to compare with templates and > application JNLP files in JNLPMatcherTest.java > * tests/netx/unit/net/sourceforge/jnlp/templates/template0.jnlp: > Test Template JNLP file: Contains CDATA > * tests/netx/unit/net/sourceforge/jnlp/templates/template1.jnlp: > Test Template JNLP file: An exact duplicate of the launching JNLP file > * tests/netx/unit/net/sourceforge/jnlp/templates/template2.jnlp: > Test Template JNLP file: Contains wildchars as attribute/element values > * tests/netx/unit/net/sourceforge/jnlp/templates/template3.jnlp: > Test Template JNLP file: Different order of element/attributes (but same value) > * tests/netx/unit/net/sourceforge/jnlp/templates/template4.jnlp: > Test Template JNLP file: Contains wildchars as values of ALL elements and attribute > * tests/netx/unit/net/sourceforge/jnlp/templates/template5.jnlp: > Test Template JNLP file: Contains comments > * tests/netx/unit/net/sourceforge/jnlp/templates/template6.jnlp: > Test Template JNLP file: Contains different attribute and element values > * tests/netx/unit/net/sourceforge/jnlp/templates/template7.jnlp: > Test Template JNLP file: Contains additional children in element > * tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp: > Test Template JNLP file: Contains fewer children in element > * tests/netx/unit/net/sourceforge/jnlp/templates/template9.jnlp: > Test Template JNLP file: All values are different from the launching JNLP file > * tests/netx/unit/net/sourceforge/jnlp/application/application0.jnlp: > Test Application JNLP file: Contains CDATA > * tests/netx/unit/net/sourceforge/jnlp/application/application1.jnlp: > Test Application JNLP file: An exact duplicate of the launching JNLP file > * tests/netx/unit/net/sourceforge/jnlp/application/application2.jnlp: > Test Application JNLP file: Different order of element/attributes (but same value) > * tests/netx/unit/net/sourceforge/jnlp/application/application3.jnlp: > Test Application JNLP file: Contains comments > * tests/netx/unit/net/sourceforge/jnlp/application/application4.jnlp: > Test Application JNLP file: Contains wildchars as attribute/element values > * tests/netx/unit/net/sourceforge/jnlp/application/application5.jnlp: > Test Application JNLP file: Contains a different attribute (codebase) value > * tests/netx/unit/net/sourceforge/jnlp/application/application6.jnlp: > Test Application JNLP file: Contains additional children in element > * tests/netx/unit/net/sourceforge/jnlp/application/application7.jnlp: > Test Application JNLP file: Contains fewer children in element > * tests/netx/unit/net/sourceforge/jnlp/application/application8.jnlp: > Test Application JNLP file: All values are different from the launching JNLP file > * Makefile.am: > (run-netx-unit-tests) Creates directories and copies resources (JNLP files) to test.build before > running unit test: JNLPMatcherTest > Nice story;) Probalby chnagelog winner:) > -- > Cheers, > Saad Mohammad > > > Patch1.patch > > > diff -r 86abbf8be0b1 Makefile.am > --- a/Makefile.am Thu Jun 23 15:29:45 2011 +0200 > +++ b/Makefile.am Wed Jul 06 15:03:44 2011 -0400 > @@ -539,6 +539,19 @@ > run-netx-unit-tests: stamps/netx-unit-tests-compile.stamp \ > $(JUNIT_RUNNER_JAR) $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) > cp {$(NETX_UNIT_TEST_SRCDIR),$(NETX_UNIT_TEST_DIR)}/net/sourceforge/jnlp/basic.jnlp > + mkdir -p $(NETX_UNIT_TEST_DIR)/net/sourceforge/jnlp/templates > + mkdir -p $(NETX_UNIT_TEST_DIR)/net/sourceforge/jnlp/application > + cp {$(NETX_UNIT_TEST_SRCDIR),$(NETX_UNIT_TEST_DIR)}/net/sourceforge/jnlp/launchApp.jnlp > + (cd $(NETX_UNIT_TEST_SRCDIR)/net/sourceforge/jnlp/templates/; \ > + for files in $$(find . -type f); \ > + do \ > + cp {$(NETX_UNIT_TEST_SRCDIR),$(NETX_UNIT_TEST_DIR)}/net/sourceforge/jnlp/templates/$${files}; \ > + done) > + (cd $(NETX_UNIT_TEST_SRCDIR)/net/sourceforge/jnlp/application/; \ > + for files in $$(find . -type f); \ > + do \ > + cp {$(NETX_UNIT_TEST_SRCDIR),$(NETX_UNIT_TEST_DIR)}/net/sourceforge/jnlp/application/$${files}; \ > + done) > cd $(NETX_UNIT_TEST_DIR) ; \ > class_names= ; \ > for test in `find -type f` ; do \ To much lines for simple copying of few resources. As I do not like resources and sources in same directories and packages, the sources structure is already adapted for this :( - but not make file. I thing best fix here is to remove old line with basic.jnlp and instead of your code to add copying of all not .java files form this al over this package (NETX_UNIT_TEST_SRCDIR)->(NETX_UNIT_TEST_DIR) > diff -r 86abbf8be0b1 netx/net/sourceforge/jnlp/JNLPMatcher.java > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/netx/net/sourceforge/jnlp/JNLPMatcher.java Wed Jul 06 11:37:07 2011 -0400 > @@ -0,0 +1,197 @@ > +package net.sourceforge.jnlp; > + > +import java.io.InputStreamReader; > +import java.io.PipedInputStream; > +import java.io.PipedOutputStream; > +import java.util.Arrays; > +import java.util.LinkedList; > +import net.sourceforge.nanoxml.XMLElement; > + > +/** > + * To compare launching JNLP file with signed APPLICATION.JNLP or > + * APPLICATION_TEMPLATE.jnlp. > + * > + * Used by net.sourceforge.jnlp.runtime.JNLPCLassLoader > + */ > + > +public final class JNLPMatcher { > + > + private Node appTemplateNode = null; > + private Node launchJNLPNode = null; > + boolean isTemplate = false; Those variables are just set in constructor, and then read. Make them final, (and isTemplate should be also private) - with possible getter. When those variables will be final with no setters (as it is now! and right), then whole this class is perfectly immutable. And considering that input streams going in can not be "rewind" then you can...SHOULD... cache return value of match method. Then this method will be able to follow conventions and be named isMatch. > + > + > + /** > + * Public constructor > + * > + * @param appTemplate > + * the reader stream of the signed APPLICATION.jnlp or > + * APPLICATION_TEMPLATE.jnlp > + * @param launchJNLP > + * the reader stream of the launching JNLP file > + * @param isTemplate > + * a boolean that specifies if appTemplateFile is a template > + * @throws JNLPMatcherException > + * if IOException, XMLParseException is thrown during parsing; Or launchJNLP/appTemplate is null > + */ > + public JNLPMatcher(InputStreamReader appTemplate, InputStreamReader launchJNLP, boolean isTemplate) > + throws JNLPMatcherException { > + > + try { > + > + if (appTemplate == null&& launchJNLP == null) > + throw new NullPointerException( > + "Template JNLP file and Launching JNLP file are both null."); > + else if (appTemplate == null) > + throw new NullPointerException("Template JNLP file is null."); > + else if (launchJNLP == null) > + throw new NullPointerException("Launching JNLP file is null."); > + > + XMLElement appTemplateXML = new XMLElement(); > + XMLElement launchJNLPXML = new XMLElement(); > + > + // Remove the comments and CDATA from the JNLP file > + final PipedInputStream pinTemplate = new PipedInputStream(); > + final PipedOutputStream poutTemplate = new PipedOutputStream(pinTemplate); > + appTemplateXML.sanitizeInput(appTemplate, poutTemplate); > + > + final PipedInputStream pinJNLPFile = new PipedInputStream(); > + final PipedOutputStream poutJNLPFile = new PipedOutputStream(pinJNLPFile); > + launchJNLPXML.sanitizeInput(launchJNLP, poutJNLPFile); > + > + // Parse both files > + appTemplateXML.parseFromReader(new InputStreamReader(pinTemplate)); > + launchJNLPXML.parseFromReader(new InputStreamReader(pinJNLPFile)); > + > + // Initialize parent nodes > + this.appTemplateNode = new Node(appTemplateXML); > + this.launchJNLPNode = new Node(launchJNLPXML); > + this.isTemplate = isTemplate; > + > + } catch (Exception e) { > + throw new JNLPMatcherException( > + "Failed to create an instance of JNLPVerify with specified InputStreamReader", e); > + } > + } nice > + > + /** > + * Compares both JNLP files > + * > + * @return true if both JNLP files are 'matched', otherwise false > + */ > + public boolean match() { > + return matchNodes(appTemplateNode, launchJNLPNode); When this class will become immutable, then this can look like: if (match==null) {match=matchNodes(appTemplateNode, launchJNLPNode);}; return match; Where match is class private variable of type Boolean, which will make the caching. Please note, that as it is written now, double call of match() will cause an exception, which should not be JNLPMatcherException excepion. Upper fix should be enough for this issue. > + } > + > + /** > + * Compares two Nodes regardless of the order of their children/attributes > + * > + * @param appTemplate > + * signed application or template's Node > + * @param launchJNLP > + * launching JNLP file's Node > + * > + * @return true if both Nodes are 'matched', otherwise false > + */ > + private boolean matchNodes(Node appTemplate, Node launchJNLP) { > + > + if (appTemplate != null&& launchJNLP != null) { > + > + Node appTemplateNode = (Node) appTemplate; > + Node launchJNLPNode = (Node) launchJNLP; Please rename Node variables (are hidingglobal fields with same names) and remove useless type cast. (just recommendation) > + > + //Store children of Node > + LinkedList appTemplateChild = new LinkedList(Arrays.asList(appTemplateNode > + .getChildNodes())); > + LinkedList launchJNLPChild = new LinkedList(Arrays.asList(launchJNLPNode > + .getChildNodes())); Those should be just List app...= new LinkedList.... (just recommendation) > + > + // Compare only if both Nodes have the same name, else return false > + if (appTemplateNode.getNodeName().equals(launchJNLPNode.getNodeName())) { > + > + if (appTemplateChild.size() == launchJNLPChild.size()) { // Compare children > + > + int childLength = appTemplateChild.size(); > + > + for (int i = 0; i< childLength;) { > + for (int j = 0; j< childLength; j++) { > + boolean isSame = matchNodes(appTemplateChild.get(i), > + launchJNLPChild.get(j)); > + > + if (!isSame&& j == childLength - 1) > + return false; > + else if (isSame) { // If both child matches, remove them from the list of children > + appTemplateChild.remove(i); > + launchJNLPChild.remove(j); > + --childLength; > + break; > + } > + } > + } > + > + > + if (!appTemplateNode.getNodeValue().equals(launchJNLPNode.getNodeValue())) { > + > + //If it's a template and the template's value is NOT '*' > + if (isTemplate&& !appTemplateNode.getNodeValue().equals("*")) > + return false; > + //Else if it's not a template, then return false > + else if (!isTemplate) > + return false; > + } > + //Compare attributes of both Nodes > + return matchAttributes(appTemplateNode, launchJNLPNode); > + } > + > + } > + } > + return false; > + } > + > + /** > + * Compares attributes of two Nodes regardless of order > + * > + * @param appTemplateNode > + * signed application or template's Node with attributes > + * @param launchJNLPNode > + * launching JNLP file's Node with attributes > + * > + * @return true if both Nodes have 'matched' attributes, otherwise false > + */ > + private boolean matchAttributes(Node appTemplateNode, Node launchJNLPNode) { > + > + if (appTemplateNode != null&& launchJNLPNode != null) { > + > + String [] appTemplateAttributes = appTemplateNode.getAttributeNames(); > + String [] launchJNLPAttributes = launchJNLPNode.getAttributeNames(); > + List and Collections framework will serve you well. Chose one of them and do not convert in vain;) > + Arrays.sort(appTemplateAttributes); > + Arrays.sort(launchJNLPAttributes); > + > + if (appTemplateAttributes.length == launchJNLPAttributes.length) { > + > + int size= appTemplateAttributes.length; //Number of attributes > + > + for (int i = 0; i< size; i++) { > + > + if (launchJNLPAttributes[i].equals(appTemplateAttributes[i])){ // If both Node's attribute name are the same then compare the values > + > + String attribute = launchJNLPAttributes[i]; > + boolean isSame = appTemplateNode.getAttribute(attribute).equals(// Check if the Attribute values match > + launchJNLPNode.getAttribute(attribute)); > + > + if (!isTemplate&& !isSame) > + return false; > + else if (isTemplate&& !isSame > +&& !appTemplateNode.getAttribute(attribute).equals("*")) > + return false; > + > + } else // If attributes names do not match, return false > + return false; > + } > + return true; > + } > + } > + return false; > + } > +} > diff -r 86abbf8be0b1 netx/net/sourceforge/jnlp/JNLPMatcherException.java > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/netx/net/sourceforge/jnlp/JNLPMatcherException.java Tue Jul 05 14:53:27 2011 -0400 > @@ -0,0 +1,16 @@ > +package net.sourceforge.jnlp; > + > +public class JNLPMatcherException extends Exception > +{ > + private static final long serialVersionUID = 1L; > + > + public JNLPMatcherException(String message) > + { > + super(message); > + } > + > + public JNLPMatcherException(String message, Throwable cause) > + { > + super(message, cause); > + } > +} TYVM! > diff -r 86abbf8be0b1 netx/net/sourceforge/jnlp/Node.java > --- a/netx/net/sourceforge/jnlp/Node.java Thu Jun 23 15:29:45 2011 +0200 > +++ b/netx/net/sourceforge/jnlp/Node.java Tue Jul 05 14:53:27 2011 -0400 > @@ -19,6 +19,7 @@ > private XMLElement xml; > private Node next; > private Node children[]; > + private String attributeNames[]; > > Node(XMLElement xml) { > this.xml = xml; > @@ -60,6 +61,19 @@ > > return children; > } > + > + String[] getAttributeNames() { > + if (attributeNames == null) { > + List list = new ArrayList(); > + > + for (Enumeration e = xml.enumerateAttributeNames(); e.hasMoreElements();) > + list.add(new String((String) e.nextElement())); > + > + attributeNames = list.toArray(new String[list.size()]); > + > + } > + return attributeNames; > + } > (recommandationon) This smells bad:) The onkly usage of ths method is in String [] launchJNLPAttributes = launchJNLPNode.getAttributeNames(); This array is then sorted and iterated through. Here you create an (Empty!) arraylist, iterate through enumeration (without known size) and fill arraylist. Why tehn convert an array? My recomandation here is to change attributeNames to List (and use eg unmodifficable list or whatever). You are following children[], I thing you do not need. Everybody can call List.toArray! > String getAttribute(String name) { > return (String) xml.getAttribute(name); > diff -r 86abbf8be0b1 tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java Tue Jul 05 14:53:27 2011 -0400 > @@ -0,0 +1,332 @@ > +package net.sourceforge.jnlp; > + > +import static org.junit.Assert.fail; > + > +import java.io.IOException; > +import java.io.InputStream; > +import java.io.InputStreamReader; > +import junit.framework.Assert; > +import org.junit.After; > +import org.junit.Before; > +import org.junit.Test; > + > +public class JNLPMatcherTest { > + > + String tests[] = { > + "Testing template with CDATA", > + "Testing template with an exact duplicate of the launching JNLP file", > + "Testing template with wildchars as attribute/element values", > + "Testing template with attributes/elements in different order", > + "Testing template with wildchars as ALL element/attribute values", > + "Testing template with comments", > + "Testing template with different attribute/element values", > + "Testing template by adding an additional children to element", > + "Testing template by removing children from element", > + "Testing template with a complete different JNLP template file ", > + "Testing application with CDATA", > + "Testing application with an exact duplicate of the launching JNLP file", > + "Testing application with the same element/attribute name and value pair in different orders", > + "Testing application with comments", > + "Testing application with wildchars as attribute/element values", > + "Testing application with a different codebase attribute value", > + "Testing application by adding additional children to element", > + "Testing application by removing children from element", > + "Testing application with a complete different JNLP application file " }; > + nice! > + JNLPMatcher test; > + InputStreamReader fileReader; > + InputStreamReader launchReader; Remove those three global fields and use them locally please. Minimze of variable scope is (more then) good habbit. > + ClassLoader cl = JNLPMatcherTest.class.getClassLoader(); make him final. > + > + int i = 0; remove this i - see lower > + > + @Before > + public void setUp() throws Exception { > + > + InputStream launchStream = cl.getResourceAsStream("net/sourceforge/jnlp/launchApp.jnlp"); > + launchReader = new InputStreamReader(launchStream); > + > + } This is misuse of setUp/tear down. Create eg method getResource(String path) which will return InputStreamReader like this ^^ method. and getLunchResoyrce wwhich will just call getResource with "net/sourceforge/jnlp/launchApp.jnlp", and teh use those two ethods in every test. Dont forget to closeing streams (as you are doing now). > + > + @Test > + public void testTemplateCDATA() throws JNLPMatcherException, IOException { > + > + InputStream fileStream = cl > + .getResourceAsStream("net/sourceforge/jnlp/templates/template0.jnlp"); > + fileReader = new InputStreamReader(fileStream); > + > + test = new JNLPMatcher(fileReader, launchReader, true); > + > + Assert.assertEquals(tests[i], true, test.match()); > + > + fileReader.close(); > + } > + > + @Test > + public void testTemplateDuplicate() throws JNLPMatcherException, IOException { > + > + InputStream fileStream = cl > + .getResourceAsStream("net/sourceforge/jnlp/templates/template1.jnlp"); > + fileReader = new InputStreamReader(fileStream); > + > + test = new JNLPMatcher(fileReader, launchReader, true); > + > + Assert.assertEquals(tests[i], true, test.match()); > + fileReader.close(); > + } > + > + @Test > + public void testTemplateWildCharsRandom() throws JNLPMatcherException, IOException { > + > + InputStream fileStream = cl > + .getResourceAsStream("net/sourceforge/jnlp/templates/template2.jnlp"); > + fileReader = new InputStreamReader(fileStream); > + > + test = new JNLPMatcher(fileReader, launchReader, true); > + > + Assert.assertEquals(tests[i], true, test.match()); > + fileReader.close(); > + } > + > + @Test > + public void testTemplateDifferentOrder() throws JNLPMatcherException, IOException { > + > + InputStream fileStream = cl > + .getResourceAsStream("net/sourceforge/jnlp/templates/template3.jnlp"); > + fileReader = new InputStreamReader(fileStream); > + > + test = new JNLPMatcher(fileReader, launchReader, true); > + > + Assert.assertEquals(tests[i], true, test.match()); > + fileReader.close(); > + } > + > + @Test > + public void testTemplateWildCharsAsAllValues() throws JNLPMatcherException, IOException { > + > + InputStream fileStream = cl > + .getResourceAsStream("net/sourceforge/jnlp/templates/template4.jnlp"); > + fileReader = new InputStreamReader(fileStream); > + > + test = new JNLPMatcher(fileReader, launchReader, true); > + > + Assert.assertEquals(tests[i], true, test.match()); > + fileReader.close(); > + } > + > + @Test > + public void testTemplateComments() throws JNLPMatcherException, IOException { > + > + InputStream fileStream = cl > + .getResourceAsStream("net/sourceforge/jnlp/templates/template5.jnlp"); > + fileReader = new InputStreamReader(fileStream); > + > + test = new JNLPMatcher(fileReader, launchReader, true); > + > + Assert.assertEquals(tests[i], true, test.match()); > + fileReader.close(); > + } > + > + @Test > + public void testTemplateDifferentValues() throws JNLPMatcherException, IOException { > + > + InputStream fileStream = cl > + .getResourceAsStream("net/sourceforge/jnlp/templates/template6.jnlp"); > + fileReader = new InputStreamReader(fileStream); > + > + test = new JNLPMatcher(fileReader, launchReader, true); > + > + Assert.assertEquals(tests[i], false, test.match()); > + fileReader.close(); > + } > + > + @Test > + public void testTemplateExtraChild() throws JNLPMatcherException, IOException { > + > + InputStream fileStream = cl > + .getResourceAsStream("net/sourceforge/jnlp/templates/template7.jnlp"); > + fileReader = new InputStreamReader(fileStream); > + > + test = new JNLPMatcher(fileReader, launchReader, true); > + > + Assert.assertEquals(tests[i], false, test.match()); > + fileReader.close(); > + } > + > + @Test > + public void testTemplateFewerChild() throws JNLPMatcherException, IOException { > + > + InputStream fileStream = cl > + .getResourceAsStream("net/sourceforge/jnlp/templates/template8.jnlp"); > + fileReader = new InputStreamReader(fileStream); > + > + test = new JNLPMatcher(fileReader, launchReader, true); > + > + Assert.assertEquals(tests[i], false, test.match()); > + fileReader.close(); > + } > + > + @Test > + public void testTemplateDifferentFile() throws JNLPMatcherException, IOException { > + > + InputStream fileStream = cl > + .getResourceAsStream("net/sourceforge/jnlp/templates/template9.jnlp"); > + fileReader = new InputStreamReader(fileStream); > + > + test = new JNLPMatcher(fileReader, launchReader, true); > + > + Assert.assertEquals(tests[i], false, test.match()); > + fileReader.close(); > + } > + > + @Test > + public void testApplicationCDATA() throws JNLPMatcherException, IOException { > + > + InputStream fileStream = cl > + .getResourceAsStream("net/sourceforge/jnlp/application/application0.jnlp"); > + fileReader = new InputStreamReader(fileStream); > + > + test = new JNLPMatcher(fileReader, launchReader, false); > + > + Assert.assertEquals(tests[i], true, test.match()); > + fileReader.close(); > + } > + > + @Test > + public void testApplicationDuplicate() throws JNLPMatcherException, IOException { > + > + InputStream fileStream = cl > + .getResourceAsStream("net/sourceforge/jnlp/application/application1.jnlp"); > + fileReader = new InputStreamReader(fileStream); > + > + test = new JNLPMatcher(fileReader, launchReader, false); > + > + Assert.assertEquals(tests[i], true, test.match()); > + fileReader.close(); > + } > + > + @Test > + public void testApplicationDifferentOrder() throws JNLPMatcherException, IOException { > + > + InputStream fileStream = cl > + .getResourceAsStream("net/sourceforge/jnlp/application/application2.jnlp"); > + fileReader = new InputStreamReader(fileStream); > + > + test = new JNLPMatcher(fileReader, launchReader, false); > + > + Assert.assertEquals(tests[i], true, test.match()); > + fileReader.close(); > + } > + > + @Test > + public void testApplicationComments() throws JNLPMatcherException, IOException { > + > + InputStream fileStream = cl > + .getResourceAsStream("net/sourceforge/jnlp/application/application3.jnlp"); > + fileReader = new InputStreamReader(fileStream); > + > + test = new JNLPMatcher(fileReader, launchReader, false); > + > + Assert.assertEquals(tests[i], true, test.match()); > + fileReader.close(); > + } > + > + @Test > + public void testApplicationWildCharsRandom() throws JNLPMatcherException, IOException { > + > + InputStream fileStream = cl > + .getResourceAsStream("net/sourceforge/jnlp/application/application4.jnlp"); > + fileReader = new InputStreamReader(fileStream); > + > + test = new JNLPMatcher(fileReader, launchReader, false); > + > + Assert.assertEquals(tests[i], false, test.match()); > + fileReader.close(); > + } > + > + @Test > + public void testApplicationDifferentCodebaseValue() throws JNLPMatcherException, IOException { > + > + InputStream fileStream = cl > + .getResourceAsStream("net/sourceforge/jnlp/application/application5.jnlp"); > + fileReader = new InputStreamReader(fileStream); > + > + test = new JNLPMatcher(fileReader, launchReader, false); > + > + Assert.assertEquals(tests[i], false, test.match()); > + fileReader.close(); > + } > + > + @Test > + public void testApplicationExtraChild() throws JNLPMatcherException, IOException { > + > + InputStream fileStream = cl > + .getResourceAsStream("net/sourceforge/jnlp/application/application6.jnlp"); > + fileReader = new InputStreamReader(fileStream); > + > + test = new JNLPMatcher(fileReader, launchReader, false); > + > + Assert.assertEquals(tests[i], false, test.match()); > + fileReader.close(); > + } > + > + @Test > + public void testApplicationFewerChild() throws JNLPMatcherException, IOException { > + > + InputStream fileStream = cl > + .getResourceAsStream("net/sourceforge/jnlp/application/application7.jnlp"); > + fileReader = new InputStreamReader(fileStream); > + > + test = new JNLPMatcher(fileReader, launchReader, false); > + > + Assert.assertEquals(tests[i], false, test.match()); > + fileReader.close(); > + } > + > + @Test > + public void testApplicationDifferentFile() throws JNLPMatcherException, IOException { > + > + InputStream fileStream = cl > + .getResourceAsStream("net/sourceforge/jnlp/application/application8.jnlp"); > + fileReader = new InputStreamReader(fileStream); > + > + test = new JNLPMatcher(fileReader, launchReader, false); > + > + Assert.assertEquals(tests[i], false, test.match()); > + fileReader.close(); > + } > + > + @Test > + public void testNullJNLPFiles() { > + > + fileReader = null; > + > + try { > + test = new JNLPMatcher(null, launchReader, false); > + fail("Created an instance of JNLPMatcher with a null JNLP reader parameter"); > + } catch (JNLPMatcherException e) { > + // Do nothing, test passed > + } > + > + try { > + test = new JNLPMatcher(fileReader, null, false); > + fail("Created an instance of JNLPMatcher with a null launching JNLP reader parameter"); > + } catch (JNLPMatcherException e) { > + // Do nothing, test passed > + } > + > + try { > + test = new JNLPMatcher(null, null, false); > + fail("Created an instance of JNLPMatcher with both JNLP reader as null parameters"); > + } catch (JNLPMatcherException e) { > + // Do nothing, test passed > + } NOT DO NOTHING :DD save exception, and assertequals with expected exception;) > + } > + > + @After > + public void tearDown() throws Exception { > + launchReader.close(); > + i++; > + } > + this 'i' approach is dangerous. The order of tests is not guaranted.And because you are using this i just for output, please use tests[1]... (with numbers instead f variable). To be honsest - nice set of tests. Some exceptions are never thrown but those test may be added later (...==never? :) ) > +} > diff -r 86abbf8be0b1 tests/netx/unit/net/sourceforge/jnlp/application/application0.jnlp > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/application/application0.jnlp Tue Jul 05 14:53:27 2011 -0400 > @@ -0,0 +1,27 @@ > + > + + codebase="file" > + href="www.redhat.com" > +> > + > + + Text you want to escape goes here... > + random tag test > + ]]> > + > + > +Sample Test > +RedHat > + > + > + > + > + > + > + > + > + > + > + > + > + > \ No newline at end of file > diff -r 86abbf8be0b1 tests/netx/unit/net/sourceforge/jnlp/application/application1.jnlp > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/application/application1.jnlp Tue Jul 05 14:53:27 2011 -0400 > @@ -0,0 +1,13 @@ > + > + > + > +Sample Test > +RedHat > + > + > + > + > + > + > + > + > diff -r 86abbf8be0b1 tests/netx/unit/net/sourceforge/jnlp/application/application2.jnlp > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/application/application2.jnlp Tue Jul 05 14:53:27 2011 -0400 > @@ -0,0 +1,13 @@ > + > + > + > + > + > + > + > +RedHat > +Sample Test > + > + > + > + > diff -r 86abbf8be0b1 tests/netx/unit/net/sourceforge/jnlp/application/application3.jnlp > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/application/application3.jnlp Tue Jul 05 14:53:27 2011 -0400 > @@ -0,0 +1,18 @@ > + > + > + > + > +Sample Test > +RedHat > + > + > + > + > + > + > + > + > + > + > + > + > diff -r 86abbf8be0b1 tests/netx/unit/net/sourceforge/jnlp/application/application4.jnlp > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/application/application4.jnlp Tue Jul 05 14:53:27 2011 -0400 > @@ -0,0 +1,13 @@ > + > + > + > +Sample Test > +* > + > + > + > + > + > + > + > + > diff -r 86abbf8be0b1 tests/netx/unit/net/sourceforge/jnlp/application/application5.jnlp > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/application/application5.jnlp Tue Jul 05 14:53:27 2011 -0400 > @@ -0,0 +1,13 @@ > + > + > + > +Sample Test > +RedHat > + > + > + > + > + > + > + > + > diff -r 86abbf8be0b1 tests/netx/unit/net/sourceforge/jnlp/application/application6.jnlp > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/application/application6.jnlp Tue Jul 05 14:53:27 2011 -0400 > @@ -0,0 +1,16 @@ > + > + > + > +Sample Test > +RedHat > + > + > + > + > + > + > + > + > + > + > + > diff -r 86abbf8be0b1 tests/netx/unit/net/sourceforge/jnlp/application/application7.jnlp > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/application/application7.jnlp Tue Jul 05 14:53:27 2011 -0400 > @@ -0,0 +1,11 @@ > + > + > + > +Sample Test > +RedHat > + > + > + > + > + > + > diff -r 86abbf8be0b1 tests/netx/unit/net/sourceforge/jnlp/application/application8.jnlp > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/application/application8.jnlp Tue Jul 05 14:53:27 2011 -0400 > @@ -0,0 +1,14 @@ > + > + > + > +Sample > +RedHat > +This is a sample to test a bug > + > + > + > + > + > + > + > + > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/launchApp.jnlp Tue Jul 05 15:23:48 2011 -0400 > @@ -0,0 +1,23 @@ > + > + + codebase="file" > + href="www.redhat.com" > +> > + > + > +Sample Test > +RedHat > + > + > + > + > + > + > + > + > + > + > + > + > + > + > diff -r 86abbf8be0b1 tests/netx/unit/net/sourceforge/jnlp/templates/template0.jnlp > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/templates/template0.jnlp Tue Jul 05 14:53:27 2011 -0400 > @@ -0,0 +1,28 @@ > + > + + codebase="file" > + href="*" > +> > + > + > +Sample Test > +RedHat > + > + > + > + > + > + + Text you want to escape goes here... > + random tag test > + ]]> > + > + > + > + > + > + > + > + > + > + > diff -r 86abbf8be0b1 tests/netx/unit/net/sourceforge/jnlp/templates/template1.jnlp > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/templates/template1.jnlp Tue Jul 05 14:53:27 2011 -0400 > @@ -0,0 +1,13 @@ > + > + > + > +Sample Test > +RedHat > + > + > + > + > + > + > + > + > diff -r 86abbf8be0b1 tests/netx/unit/net/sourceforge/jnlp/templates/template2.jnlp > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/templates/template2.jnlp Tue Jul 05 14:53:27 2011 -0400 > @@ -0,0 +1,13 @@ > + > + > + > +Sample Test > +* > + > + > + > + > + > + > + > + > diff -r 86abbf8be0b1 tests/netx/unit/net/sourceforge/jnlp/templates/template3.jnlp > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/templates/template3.jnlp Tue Jul 05 14:53:27 2011 -0400 > @@ -0,0 +1,13 @@ > + > + > + > + > + > + > + > +RedHat > +Sample Test > + > + > + > + > diff -r 86abbf8be0b1 tests/netx/unit/net/sourceforge/jnlp/templates/template4.jnlp > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/templates/template4.jnlp Tue Jul 05 14:53:27 2011 -0400 > @@ -0,0 +1,13 @@ > + > + > + > +* > +* > + > + > + > + > + > + > + > + > diff -r 86abbf8be0b1 tests/netx/unit/net/sourceforge/jnlp/templates/template5.jnlp > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/templates/template5.jnlp Tue Jul 05 14:53:27 2011 -0400 > @@ -0,0 +1,23 @@ > + > + + codebase="*" > + href="*" > +> > + > + > + > +* > +* > + > + > + > + > + > + > + > + > + > + > + > + main-class='*' /> > + > \ No newline at end of file > diff -r 86abbf8be0b1 tests/netx/unit/net/sourceforge/jnlp/templates/template6.jnlp > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/templates/template6.jnlp Tue Jul 05 14:53:27 2011 -0400 > @@ -0,0 +1,13 @@ > + > + > + > +Test Sample > +RedHat > + > + > + > + > + > + > + > + > diff -r 86abbf8be0b1 tests/netx/unit/net/sourceforge/jnlp/templates/template7.jnlp > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/templates/template7.jnlp Tue Jul 05 14:53:27 2011 -0400 > @@ -0,0 +1,16 @@ > + > + > + > +Sample Test > +RedHat > + > + > + > + > + > + > + > + > + > + > + > diff -r 86abbf8be0b1 tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp Tue Jul 05 14:53:27 2011 -0400 > @@ -0,0 +1,8 @@ > + > + > + > + > + > + > + > + > diff -r 86abbf8be0b1 tests/netx/unit/net/sourceforge/jnlp/templates/template9.jnlp > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/templates/template9.jnlp Tue Jul 05 14:53:27 2011 -0400 > @@ -0,0 +1,14 @@ > + > + > + > +Sample > +RedHat > +This is a sample to test a bug > + > + > + > + > + > + > + > + > > > Patch2.patch > > > diff -r 86abbf8be0b1 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java > --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Thu Jun 23 15:29:45 2011 +0200 > +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Tue Jul 05 16:31:01 2011 -0400 > @@ -19,8 +19,10 @@ > > import java.io.File; > import java.io.FileOutputStream; > +import java.io.FileReader; > import java.io.IOException; > import java.io.InputStream; > +import java.io.InputStreamReader; > import java.net.MalformedURLException; > import java.net.URL; > import java.net.URLClassLoader; > @@ -51,6 +53,8 @@ > import net.sourceforge.jnlp.ExtensionDesc; > import net.sourceforge.jnlp.JARDesc; > import net.sourceforge.jnlp.JNLPFile; > +import net.sourceforge.jnlp.JNLPMatcher; > +import net.sourceforge.jnlp.JNLPMatcherException; > import net.sourceforge.jnlp.LaunchException; > import net.sourceforge.jnlp.ParseException; > import net.sourceforge.jnlp.PluginBridge; > @@ -80,7 +84,11 @@ > // todo: initializePermissions should get the permissions from > // extension classes too so that main file classes can load > // resources in an extension. > - > + > + /** Signed JNLP File and Template */ > + final public static String template = "JNLP-INF/APPLICATION_TEMPLATE.JNLP"; > + final public static String application = "JNLP-INF/APPLICATION.JNLP"; > + > /** map from JNLPFile url to shared classloader */ > private static Map urlToLoader = > new HashMap(); // never garbage collected! > @@ -158,8 +166,9 @@ > * Create a new JNLPClassLoader from the specified file. > * > * @param file the JNLP file > + * @throws JNLPMatcherException if signed JNLP file failed to be verified or did not match > */ > - protected JNLPClassLoader(JNLPFile file, UpdatePolicy policy) throws LaunchException { > + protected JNLPClassLoader(JNLPFile file, UpdatePolicy policy) throws LaunchException, JNLPMatcherException { > super(new URL[0], JNLPClassLoader.class.getClassLoader()); > > if (JNLPRuntime.isDebug()) > @@ -273,8 +282,9 @@ > * > * @param file the file to load classes for > * @param policy the update policy to use when downloading resources > + * @throws JNLPMatcherException if signed JNLP file failed to be verified or did not match > */ > - public static JNLPClassLoader getInstance(JNLPFile file, UpdatePolicy policy) throws LaunchException { > + public static JNLPClassLoader getInstance(JNLPFile file, UpdatePolicy policy) throws LaunchException, JNLPMatcherException { > JNLPClassLoader baseLoader = null; > JNLPClassLoader loader = null; > String uniqueKey = file.getUniqueKey(); > @@ -341,9 +351,10 @@ > * @param location the file's location > * @param version the file's version > * @param policy the update policy to use when downloading resources > + * @throws JNLPMatcherException if signed JNLP file failed to be verified or did not match > */ > public static JNLPClassLoader getInstance(URL location, String uniqueKey, Version version, UpdatePolicy policy) > - throws IOException, ParseException, LaunchException { > + throws IOException, ParseException, LaunchException, JNLPMatcherException { > JNLPClassLoader loader = urlToLoader.get(uniqueKey); > > if (loader == null || !location.equals(loader.getJNLPFile().getFileLocation())) > @@ -403,7 +414,7 @@ > * Load all of the JARs used in this JNLP file into the > * ResourceTracker for downloading. > */ > - void initializeResources() throws LaunchException { > + void initializeResources() throws LaunchException, JNLPMatcherException { > JARDesc jars[] = resources.getJARs(); > if (jars == null || jars.length == 0) > return; > @@ -471,8 +482,135 @@ > //otherwise this jar is simply unsigned -- make sure to ask > //for permission on certain actions > } > + > + if (js.anyJarsSigned()) { > + //If there are any signed Jars, check if JNLP file is signed > + > + if (JNLPRuntime.isDebug()) > + System.out.println("STARTING check for signed JNLP file..."); > + > + for (int i = 0; i< jars.length; i++) { > + List eachJar = new ArrayList(); > + JarSigner signer = new JarSigner(); > + eachJar.add(jars[i]); //Adds only the single jar to check if the jar has a valid signature > + > + tracker.addResource(jars[i].getLocation(), jars[i].getVersion(), > + getDownloadOptionsForJar(jars[i]), > + jars[i].isCacheable() ? JNLPRuntime.getDefaultUpdatePolicy() > + : UpdatePolicy.FORCE); > + > + try { > + signer.verifyJars(eachJar, tracker); > + > + if (signer.allJarsSigned()) { //If the jar is signed > + URL location = jars[i].getLocation(); > + File localFile = tracker.getCacheFile(location); > + > + > + if(localFile == null) > + { > + throw new JNLPMatcherException("Could not locate jar file, returned null"); > + } > + > + else{ > + try { > + JarFile jarFile = new JarFile(localFile); > + Enumeration entries = jarFile.entries(); > + JarEntry je; > + > + while (entries.hasMoreElements()) { > + je = entries.nextElement(); > + String jeName = je.getName().toUpperCase(); > + > + if (jeName.equals(template) || jeName.equals(application)) { > + > + if (JNLPRuntime.isDebug()) > + System.out.println("\tCreating Jar InputStream from Jar Entry"); > + > + InputStream inStream = jarFile.getInputStream(je); > + InputStreamReader inputReader = new InputStreamReader( > + inStream); > + > + if (JNLPRuntime.isDebug()) > + System.out.println("\tCreating File InputStream from lauching JNLP file"); > + > + JNLPFile jnlp = this.getJNLPFile(); > + URL url = jnlp.getFileLocation(); > + File jn = null; > + > + if (url.getProtocol().equals("file")) // If the file is on the local file system, use original path, otherwise find cache file > + jn = new File(url.getPath()); > + else > + jn = CacheUtil.getCacheFile(url, null); > + > + FileReader fr = new FileReader(jn); > + InputStreamReader jnlpReader = fr; > + JNLPMatcher matcher; > + > + try { > + > + if (jeName.equals(application)) { // If application was found > + > + if (JNLPRuntime.isDebug()) > + System.out.println("\tAPPLICATION.JNLP has been located within signed JAR. Starting verfication..."); > + > + matcher = new JNLPMatcher(inputReader, jnlpReader, false); > + } else // Otherwise template was > + // found > + { > + if (JNLPRuntime.isDebug()) > + System.out > + .println("\tAPPLICATION_TEMPLATE.JNLP has been located within signed JAR. Starting verfication..."); > + > + matcher = new JNLPMatcher(inputReader,jnlpReader, true); > + } > + > + if (!matcher.match()) > + throw new JNLPMatcherException( > + "Signed Application did not match launching JNLP File"); > + > + if (JNLPRuntime.isDebug()) > + System.out > + .println("\t** Signed Application Verification Successful **"); > + > + break; // break while loop > + > + } catch (Exception e) { > + throw new JNLPMatcherException(e.getMessage(), e); > + } > + } > + > + } > + } catch (IOException e) { //'new JarFile(localFile)' throws an IOException > + if (JNLPRuntime.isDebug()) > + e.printStackTrace(); > + > + //After this exception is caught, it is escaped. > + //If this exception is thrown when creating an instance of JarFile, > + //it will skip that jarFile and move on to the next jarFile (if there are any) > + } > + } > + } > + } catch (JNLPMatcherException e) { > + //Throw e if signed JNLP file failed to be verified > + //Throwing this exception will fail to initialize the application resulting in the termination of the application > + throw e; > + > + } catch (Exception e) { > + if (JNLPRuntime.isDebug()) > + e.printStackTrace(); > + > + //After this exception is caught, it is escaped. > + //If an exception is thrown while handling the jar file (mainly for JarSigner.verifyJars) > + //it will consider the jar file to be unsigned and skip on to the next jar file (if there are any) > + } > + } > + if (JNLPRuntime.isDebug()) > + System.out.println("ENDING check for signed JNLP file..."); > + } > } > > + > for (JARDesc jarDesc : file.getResources().getJARs()) { > try { > File cachedFile = tracker.getCacheFile(jarDesc.getLocation()); Generally the classlaoder seams doing what expected, but Deepak must say final word to it. Please discuss with me adding of reproducrs when time will come. Regards and thanx for yor effort! J. From xranby at icedtea.classpath.org Sat Jul 9 07:58:41 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Sat, 09 Jul 2011 14:58:41 +0000 Subject: /hg/release/icedtea6-1.9: PR632: 6878713.patch breaks shark zero... Message-ID: changeset 1c554e7ce79e in /hg/release/icedtea6-1.9 details: http://icedtea.classpath.org/hg/release/icedtea6-1.9?cmd=changeset;node=1c554e7ce79e author: Xerxes R?nby date: Sat Jul 09 16:58:17 2011 +0200 PR632: 6878713.patch breaks shark zero build 2011-07-09 Xerxes R?nby Mark Wielaard PR632: 6878713.patch breaks shark zero build * patches/stdc-limit-macros.patch (openjdk/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp): Only define __STDC_LIMIT_MACROS if undefined. * Makefile.am (ICEDTEA_PATCHES): Add new patch. * NEWS: Updated. diffstat: ChangeLog | 10 ++++++++++ Makefile.am | 1 + NEWS | 3 +++ patches/stdc-limit-macros.patch | 11 +++++++++++ 4 files changed, 25 insertions(+), 0 deletions(-) diffs (57 lines): diff -r 78333d0b383a -r 1c554e7ce79e ChangeLog --- a/ChangeLog Fri Jun 10 17:58:23 2011 +0200 +++ b/ChangeLog Sat Jul 09 16:58:17 2011 +0200 @@ -1,3 +1,13 @@ +2011-07-09 Xerxes R??nby + Mark Wielaard + + PR632: 6878713.patch breaks shark zero build + * patches/stdc-limit-macros.patch + (openjdk/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp): + Only define __STDC_LIMIT_MACROS if undefined. + * Makefile.am (ICEDTEA_PATCHES): Add new patch. + * NEWS: Updated. + 2011-06-10 Pavel Tisnovsky * patches/font-rhel.patch: diff -r 78333d0b383a -r 1c554e7ce79e Makefile.am --- a/Makefile.am Fri Jun 10 17:58:23 2011 +0200 +++ b/Makefile.am Sat Jul 09 16:58:17 2011 +0200 @@ -239,6 +239,7 @@ ICEDTEA_PATCHES = \ $(SECURITY_PATCHES) \ + patches/stdc-limit-macros.patch \ patches/icedtea-notice-safepoints.patch \ patches/icedtea-parisc-opt.patch \ patches/icedtea-lucene-crash.patch \ diff -r 78333d0b383a -r 1c554e7ce79e NEWS --- a/NEWS Fri Jun 10 17:58:23 2011 +0200 +++ b/NEWS Sat Jul 09 16:58:17 2011 +0200 @@ -10,6 +10,9 @@ New in release 1.9.9 (20XX-XX-XX): +* Shark + - PR632: patches/security/20110215/6878713.patch breaks shark zero build + New in release 1.9.8 (2011-06-07): * Security fixes diff -r 78333d0b383a -r 1c554e7ce79e patches/stdc-limit-macros.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/stdc-limit-macros.patch Sat Jul 09 16:58:17 2011 +0200 @@ -0,0 +1,12 @@ +--- openjdk/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp ++++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp +@@ -72,7 +72,9 @@ + # endif + + #ifdef LINUX ++#ifndef __STDC_LIMIT_MACROS + #define __STDC_LIMIT_MACROS ++#endif + #include + #include + #include From bugzilla-daemon at icedtea.classpath.org Sat Jul 9 10:21:51 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sat, 09 Jul 2011 17:21:51 +0000 Subject: [Bug 756] New: [regression] zero/shark builds broken on icedtea7 trunk Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=756 Summary: [regression] zero/shark builds broken on icedtea7 trunk Product: IcedTea Version: 7-hg Platform: all OS/Version: Linux Status: NEW Severity: major Priority: P5 Component: Zero AssignedTo: unassigned at icedtea.classpath.org ReportedBy: doko at ubuntu.com works in b137, fails in b143: g++-4.6 -DLINUX -D_GNU_SOURCE -DCC_INTERP -DZERO -DAMD64 -DZERO_LIBARCH=\"amd64\" -DPRODUCT -I. -I/home/packages/openjdk/7/openjdk-7-7~b143-2.0~pre1/buil d/zerovm/openjdk/hotspot/src/share/vm/prims -I/home/packages/openjdk/7/openjdk-7-7~b143-2.0~pre1/build/zerovm/openjdk/hotspot/src/share/vm -I/home/packag es/openjdk/7/openjdk-7-7~b143-2.0~pre1/build/zerovm/openjdk/hotspot/src/cpu/zero/vm -I/home/packages/openjdk/7/openjdk-7-7~b143-2.0~pre1/build/zerovm/ope njdk/hotspot/src/os_cpu/linux_zero/vm -I/home/packages/openjdk/7/openjdk-7-7~b143-2.0~pre1/build/zerovm/openjdk/hotspot/src/os/linux/vm -I/home/packages/ openjdk/7/openjdk-7-7~b143-2.0~pre1/build/zerovm/openjdk/hotspot/src/os/posix/vm -I../generated -DHOTSPOT_RELEASE_VERSION="\"21.0-b14\"" -DHOTSPOT_BUILD_ TARGET="\"product\"" -DHOTSPOT_BUILD_USER="\"doko\"" -DHOTSPOT_LIB_ARCH=\"amd64\" -DJRE_RELEASE_VERSION="\"1.7.0_143-b143\"" -DHOTSPOT_VM_DISTRO="\"OpenJ DK\"" -DDERIVATIVE_ID="\"IcedTea7 2.0pre\"" -DDEB_MULTIARCH="\"x86_64-linux-gnu\"" -DDISTRIBUTION_ID="\"Ubuntu oneiric (development branch), package 7~b1 43-2.0~pre1-1\"" -DTARGET_OS_FAMILY_linux -DTARGET_ARCH_zero -DTARGET_ARCH_MODEL_zero -DTARGET_OS_ARCH_linux_zero -DTARGET_OS_ARCH_MODEL_linux_zero -DTAR GET_COMPILER_gcc -DSHARK -I/usr/lib/llvm-2.7/include -DNDEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -DSHARK_LLVM_VERSION=27 -fpic -fno-rtti -fno-exceptions -D_REENTRANT -fcheck-new -fvisibility=hidden -m64 -pipe -g -O3 -fno-strict-aliasing -DVM_LITTLE_ENDIAN -D_LP64=1 -Werror -Wpoi nter-arith -Wsign-compare -c -MMD -MP -MF ../generated/dependencies/stack_zero.o.d -o stack_zero.o /home/packages/openjdk/7/openjdk-7-7~b143-2.0~pre1/ build/zerovm/openjdk/hotspot/src/cpu/zero/vm/stack_zero.cpp /home/packages/openjdk/7/openjdk-7-7~b143-2.0~pre1/build/zerovm/openjdk/hotspot/src/cpu/zero/vm/stack_zero.cpp: In static member function 'static void ZeroStack::handle_overflow(Thread*)': /home/packages/openjdk/7/openjdk-7-7~b143-2.0~pre1/build/zerovm/openjdk/hotspot/src/cpu/zero/vm/stack_zero.cpp:72:74: error: no matching function for call to 'Exceptions::throw_stack_overflow_exception(JavaThread*&, const char [111], int)' /home/packages/openjdk/7/openjdk-7-7~b143-2.0~pre1/build/zerovm/openjdk/hotspot/src/cpu/zero/vm/stack_zero.cpp:72:74: note: candidate is: /home/packages/openjdk/7/openjdk-7-7~b143-2.0~pre1/build/zerovm/openjdk/hotspot/src/share/vm/utilities/exceptions.hpp:147:15: note: static void Exceptions::throw_stack_overflow_exception(Thread*, const char*, int, methodHandle) /home/packages/openjdk/7/openjdk-7-7~b143-2.0~pre1/build/zerovm/openjdk/hotspot/src/share/vm/utilities/exceptions.hpp:147:15: note: candidate expects 4 arguments, 3 provided make[8]: *** [stack_zero.o] Error 1 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Sat Jul 9 10:39:45 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sat, 09 Jul 2011 17:39:45 +0000 Subject: [Bug 756] [regression] zero/shark builds broken on icedtea7 trunk In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=756 Damien Raude-Morvan changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |drazzib at drazzib.com Status|NEW |RESOLVED Resolution| |DUPLICATE --- Comment #1 from Damien Raude-Morvan 2011-07-09 17:39:45 --- *** This bug has been marked as a duplicate of bug 753 *** -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Sat Jul 9 10:39:46 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sat, 09 Jul 2011 17:39:46 +0000 Subject: [Bug 753] Zero FTBFS on stack_zero.cpp : In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=753 Damien Raude-Morvan changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |doko at ubuntu.com --- Comment #1 from Damien Raude-Morvan 2011-07-09 17:39:45 --- *** Bug 756 has been marked as a duplicate of this bug. *** -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Sat Jul 9 11:12:57 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sat, 09 Jul 2011 18:12:57 +0000 Subject: [Bug 753] [regression] Zero FTBFS on stack_zero.cpp : In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=753 Matthias Klose changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |major Summary|Zero FTBFS on stack_zero.cpp|[regression] Zero FTBFS on |: |stack_zero.cpp : -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Sun Jul 10 05:04:17 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 10 Jul 2011 12:04:17 +0000 Subject: [Bug 753] [regression] Zero FTBFS on stack_zero.cpp : In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=753 --- Comment #2 from Xerxes R?nby 2011-07-10 12:04:17 --- Created an attachment (id=551) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=551) PR753-zero-methodHandle.patch This patch unbreaks the build by passing in a methodHandle obtained by calling mathodHandle() in zero. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Sun Jul 10 05:12:42 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 10 Jul 2011 12:12:42 +0000 Subject: [Bug 757] New: IA32 Hotspot FTBFS regression after 7009309 JSR292 fix Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=757 Summary: IA32 Hotspot FTBFS regression after 7009309 JSR292 fix Product: IcedTea Version: 7-hg Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: IcedTea7 AssignedTo: ahughes at redhat.com ReportedBy: xerxes at zafena.se CC: unassigned at icedtea.classpath.org Created an attachment (id=552) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=552) fix-ia32-7009309-regression-remove-use-of-StubRoutines::x86.patch The JSR292 fix http://hg.openjdk.java.net/jdk7/jdk7/hotspot/rev/638119ce7cfd removed the StubRoutines::x86 class. The attached patch unbreaks IA32 Hotspot builds by removing remaining use of StubRoutines::x86 . -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From mvyskocil at suse.cz Mon Jul 11 00:23:10 2011 From: mvyskocil at suse.cz (Michal Vyskocil) Date: Mon, 11 Jul 2011 09:23:10 +0200 Subject: [PATCH][icedtea-web] use JRE in launchers In-Reply-To: <20110708150208.GC13502@shelob.middle-earth.co.uk> References: <20110708073006.GC5971@zelva.suse.cz> <20110708150208.GC13502@shelob.middle-earth.co.uk> Message-ID: <20110711072310.GJ5971@zelva.suse.cz> On Fri, Jul 08, 2011 at 04:02:08PM +0100, Andrew John Hughes wrote: > On Fri, Jul 08, 2011 at 09:30:07AM +0200, Michal Vyskocil wrote: > > Hi, > > > > following patch changes the JAVA=@JAVA@ to JAVA=@JRE@/bin/java in > > launchers. The reason is @JAVA@ refers to SDK location used for build > > of icedtea-web and that path is not usable on some distributions (not > > surprising that openSUSE is the one :)). Usage of @JRE@ is much correct > > in this case. > > > > Changelog: > > > > 2011-07-08 Michal Vyskocil > > > > * launcher/itweb-settings.in: use @JRE@ in JAVA location > > * launcher/javaws.in: use @JRE@ in JAVA location > > > > Regards > > Michal Vyskocil > > No, --with-java should be used to point to a java binary. If you're > pointing it to a directory, you're using the option wrongly. > > The --with-jdk-home is used for pointing to the jdk and --with-java > will default to ${JDK_HOME}/bin/java. Thanks, I must overlooked the --with-java option. Regards Michal Vyskocil -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110711/9fff225e/attachment.bin From doko at ubuntu.com Mon Jul 11 01:18:41 2011 From: doko at ubuntu.com (Matthias Klose) Date: Mon, 11 Jul 2011 10:18:41 +0200 Subject: [patch] fix build failure on linux-sparc Message-ID: <4E1AB1E1.9040204@ubuntu.com> Apparently hotspot for sparc-linux was never built, both in 8b23 and 7b143 (didn't use newer releases). jtreg test results look as good as with 6b18. Matthias -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: hotspot-sparc.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110711/3a809734/hotspot-sparc.diff From ptisnovs at icedtea.classpath.org Mon Jul 11 02:00:03 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 11 Jul 2011 09:00:03 +0000 Subject: /hg/icedtea6: Added @ignore tag to regression test 7020373 becau... Message-ID: changeset 4ca76ee4a7a1 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=4ca76ee4a7a1 author: ptisnovs date: Mon Jul 11 10:59:47 2011 +0200 Added @ignore tag to regression test 7020373 because binary jar file needed to run the test is missing in OpenJDK6. diffstat: ChangeLog | 7 +++++++ Makefile.am | 3 ++- patches/jtreg-7020373-add-ignore-tag.patch | 9 +++++++++ 3 files changed, 18 insertions(+), 1 deletions(-) diffs (41 lines): diff -r 67985e03e768 -r 4ca76ee4a7a1 ChangeLog --- a/ChangeLog Fri Jul 08 14:10:47 2011 +0200 +++ b/ChangeLog Mon Jul 11 10:59:47 2011 +0200 @@ -1,3 +1,10 @@ +2011-07-11 Pavel Tisnovsky + + * Makefile.am: added new patch + * patches/jtreg-7020373-add-ignore-tag.patch: + Added @ignore tag to this regression test because binary jar + file needed to run the test is missing in OpenJDK6. + 2011-07-08 Pavel Tisnovsky * Makefile.am: added new patch diff -r 67985e03e768 -r 4ca76ee4a7a1 Makefile.am --- a/Makefile.am Fri Jul 08 14:10:47 2011 +0200 +++ b/Makefile.am Mon Jul 11 10:59:47 2011 +0200 @@ -362,7 +362,8 @@ patches/jtreg-remove-test-6991596.patch \ patches/openjdk/7036220-shark_llvm_29_headers.patch \ patches/openjdk/7029152-String_intrinsics_miss_optimization.patch \ - patches/openjdk/6711682-JCheckBox_in_JTable_does_not_respond_to_click.patch + patches/openjdk/6711682-JCheckBox_in_JTable_does_not_respond_to_click.patch \ + patches/jtreg-7020373-add-ignore-tag.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r 67985e03e768 -r 4ca76ee4a7a1 patches/jtreg-7020373-add-ignore-tag.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/jtreg-7020373-add-ignore-tag.patch Mon Jul 11 10:59:47 2011 +0200 @@ -0,0 +1,10 @@ +--- openjdk.orig/hotspot/test/runtime/7020373/Test7020373.sh 2011-07-08 15:04:32.000000000 +0200 ++++ openjdk/hotspot/test/runtime/7020373/Test7020373.sh 2011-07-08 15:01:13.000000000 +0200 +@@ -3,6 +3,7 @@ + ## + ## @test + ## @bug 7020373 ++## @ignore The original test contains binary jar-file + ## @key cte_test + ## @summary JSR rewriting can overflow memory address size variables + ## @run shell Test7020373.sh From doko at ubuntu.com Mon Jul 11 02:04:10 2011 From: doko at ubuntu.com (Matthias Klose) Date: Mon, 11 Jul 2011 11:04:10 +0200 Subject: [patch] fix hotspot/zero build without precompiled headers Message-ID: <4E1ABC8A.9090903@ubuntu.com> at least in 7b143, building without the precompiled headers doesn't work. patch attached. Matthias -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: zero.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110711/ea990019/zero.diff From doko at ubuntu.com Mon Jul 11 02:47:02 2011 From: doko at ubuntu.com (Matthias Klose) Date: Mon, 11 Jul 2011 11:47:02 +0200 Subject: [patch] fix build on s390-linux Message-ID: <4E1AC696.2070603@ubuntu.com> hotspot makes some assumptions about size_t, depending on the architecture (32bit/64bit), which doesn't work on s390 (32bit). $ cat foo.cc #include template inline T MAX2(T a, T b) { return (a > b) ? a : b; } void foo() { unsigned int i = 0; unsigned long l = 1; size_t r = 1, st = 2; r = MAX2(i, l); // error on x86_64 s390 r = MAX2(i, st); // error on x86_64 x86 s390 r = MAX2(l, st); // error on x86 } on x86_64: foo.cc:11:22: error: no matching function for call to 'MAX2(unsigned int&, long unsigned int&)' foo.cc:12:23: error: no matching function for call to 'MAX2(unsigned int&, size_t&)' on x86: foo.cc:12:23: error: no matching function for call to 'MAX2(unsigned int&, long unsigned int&)' foo.cc:13:24: error: no matching function for call to 'MAX2(unsigned int&, size_t&)' on s390: foo.cc:11:15: error: no matching function for call to ?MAX2(unsigned int&, long unsigned int&)? foo.cc:12:16: error: no matching function for call to ?MAX2(unsigned int&, size_t&)? the fix is to add casts to size_t, as already done in other places. Matthias -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: hotspot-s390.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110711/9652f382/hotspot-s390.diff From xerxes at zafena.se Mon Jul 11 04:07:47 2011 From: xerxes at zafena.se (Xerxes =?ISO-8859-1?Q?R=E5nby?=) Date: Mon, 11 Jul 2011 13:07:47 +0200 Subject: RFC: Removal of the ARM assembler port in Icedtea6, unbreaks Zero and Shark builds. Message-ID: <1310382467.30591.14.camel@xranby-ESPRIMO-P7935> Hi team. The ARM assembler port that have been broken and unmaintained for about a year are currently preventing Zero and Shark from building when using the new Hotspot in OpenJDK b23. The attached patch fixes Zero and Shark builds by removing the ARM assembler port from the icedtea6 tree. I will also remove the following files: arm_port/hotspot/src/cpu/zero/vm/asm_helper.cpp arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp arm_port/hotspot/tools/mkbc.c patches/arm.patch Ok to push? Cheers Xerxes -------------- next part -------------- A non-text attachment was scrubbed... Name: unbreak-zero-shark-remove-arm_port.patch Type: text/x-patch Size: 2746 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110711/0ca00db4/unbreak-zero-shark-remove-arm_port.patch From doko at ubuntu.com Mon Jul 11 04:34:20 2011 From: doko at ubuntu.com (Matthias Klose) Date: Mon, 11 Jul 2011 13:34:20 +0200 Subject: RFC: Removal of the ARM assembler port in Icedtea6, unbreaks Zero and Shark builds. In-Reply-To: <1310382467.30591.14.camel@xranby-ESPRIMO-P7935> References: <1310382467.30591.14.camel@xranby-ESPRIMO-P7935> Message-ID: <4E1ADFBC.3020503@ubuntu.com> On 07/11/2011 01:07 PM, Xerxes R?nby wrote: > Hi team. > > The ARM assembler port that have been broken and unmaintained for about > a year are currently preventing Zero and Shark from building when using > the new Hotspot in OpenJDK b23. > > The attached patch fixes Zero and Shark builds by removing the ARM > assembler port from the icedtea6 tree. > > I will also remove the following files: > arm_port/hotspot/src/cpu/zero/vm/asm_helper.cpp > arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def > arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S > arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp > arm_port/hotspot/tools/mkbc.c > patches/arm.patch > > Ok to push? Looks fine. Note that I'll continue to create releases from the 1.8 branch (the last branch I'm using the arm assembler port). Matthias From jvanek at redhat.com Mon Jul 11 04:37:26 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 11 Jul 2011 13:37:26 +0200 Subject: ping: [FYI][icedtea-web] minor changes in reproducers engine In-Reply-To: <4E0B5C25.6090204@redhat.com> References: <4E045705.8040103@redhat.com> <4E0B5C25.6090204@redhat.com> Message-ID: <4E1AE076.2040302@redhat.com> changelog: *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: String containing "localhost" have been declared as final constant. (SERVER_NAME) have been moved instant Server instance so each server can have it name without affecting others (getUrl()) added - can return URL of server singleton. Implementation of this method is inside server, so each server can return its own useful URL. (saveFile()) is now public. Added identification for ThreadedProcess based on commandlineArgs and its run is now slowed by Thread.sleep (ServerLuncher) inner class is now public (it was bug to not be as we have getIndependentInstance of it method ) and renamed to ServerLauncher Enchanted wrapping of executeProcess On 06/29/2011 07:08 PM, Omair Majid wrote: > On 06/24/2011 05:21 AM, Jiri Vanek wrote: >> changelog: >> >> *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: String containing "localhost" have been declared as final constant. >> (SERVER_NAME) have been moved instant Server instance so each >> server can have it name without affecting others >> (getUrl()) added - can return URL of server singleton. >> Implementation of this method is inside server, so each server can >> return its own useful URL. >> (saveFile()) is now public. >> Added identification for ThreadedProcess based on commandlineArgs >> and its run is now slowed by Thread.sleep >> (ServerLuncher) inner class is now public (it was bug to not be as >> we have getIndependentInstance of it method ) >> Enchanted wrapping of executeProcess >> >> > > Comments in-line below. > >> + >> + /** >> + * >> + * @return port on which is runing cached server. If non singleton instance is runnig, new is created. >> + */ > > Javadoc says port, but the method is named getUrl :/ Thanx for catch. Fixed > >> + public URL getUrl(String resource) throws MalformedURLException { >> + if (server == null) { >> + getInstance(); >> + } >> + //if (!server.isRunning()) throw new RuntimeException("Server mysteriously died"); >> + return server.getUrl(resource); >> + >> + } >> + /** >> + * >> + * @return port on which is runing cached server. If non singleton instance is runnig, new is created. >> + */ >> + public URL getUrl() throws MalformedURLException { >> + if (server == null) { >> + getInstance(); >> + } >> + //if (!server.isRunning()) throw new RuntimeException("Server mysteriously died"); >> + return getUrl(""); >> + >> + } > > You might be able to get away with just getUrl(""); getUrl(String) already does the checks. done. thanx. > >> @@ -566,6 +591,7 @@ >> List args; >> Integer exitCode; >> Boolean running; >> + String commandLine="unknown command"; >> >> public Boolean isRunning() { >> return running; >> @@ -578,8 +604,21 @@ >> public ThreadedProcess(List args) { >> >> this.args = args; >> + if (args!=null&& args.size()>0){ >> + commandLine=""; >> + for (Iterator it = args.iterator(); it.hasNext();) { >> + String string = it.next(); >> + commandLine=commandLine+" "+string; >> + >> + } >> + } >> } >> >> + public String getCommandLine() { >> + return commandLine; >> + } >> + >> + >> public Process getP() { >> return p; >> } > > commandLine has a large overlap with args. It is also not used - the runtime.exec() call still uses args. Wouldn't it make more sense to create the commandLine string in getCommandLine()? variable with uselessly "cached" valuee removed, String generating code moved to method as suggested. ok? > >> @@ -609,12 +648,27 @@ >> * to allow terminations and stuff arround. >> */ >> >> - static class ServerLuncher implements Runnable { >> + public static class ServerLuncher implements Runnable { >> > > If you are fixing this, you might want to rename it to ServerL*a*uncher - unless it actually eats servers for lunch :) Done. I have increased inner version flag by one due to change of "api". > >> @@ -778,23 +842,26 @@ >> //System.out.println(time - startTime); >> //System.out.println((time - startTime)> timeout); >> if ((time - startTime)> timeout) { >> - System.err.println("Timeouted " + p.toString() + " .. killing"); >> + System.err.println("Timeouted " + p.toString() +" "+ p.getP().toString()+" .. killing "+p.getCommandLine()+": "); >> System.err.flush(); >> wasTerminated = true; >> p.interrupt(); >> while (!terminated.contains(p)) { >> Thread.sleep(100); >> } >> - System.err.println("Timeouted " + p.toString() + " .. killed"); >> + System.err.println("Timeouted " + p.toString() +" "+ p.getP().toString()+ " .. killed "+p.getCommandLine()); >> System.err.flush(); >> break; >> >> >> } >> + Thread.sleep(100); >> } catch (Exception ex) { >> ex.printStackTrace(); >> } >> } >> + System.err.println("assasin for" + p.toString() +" "+ p.getP().toString()+" .. done "+p.getCommandLine()+" termination "+wasTerminated); >> + System.err.flush(); >> } >> } >> > > ThreadedProcess does not have a toString() method. Do you really need to see the object ids, or can you get rid of p.toString()? I would like to keep this in code. It helps me to find correct process when debuging. > > Everything else looks fine. > > Cheers, > Omair Thank you for your time J. -------------- next part -------------- A non-text attachment was scrubbed... Name: fixedMinorChanges.diff Type: text/x-patch Size: 12053 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110711/a8bca78d/fixedMinorChanges.diff From ptisnovs at redhat.com Mon Jul 11 05:04:21 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Mon, 11 Jul 2011 14:04:21 +0200 Subject: Reviewer needed: backport of 6758179 into IcedTea6 HEAD. Message-ID: <4E1AE6C5.4030100@redhat.com> Hi all, I'd like to push backport of "6758179: D3D: AlphaComposite is applied incorrectly for uncached opaque BufferedImage" fix into IcedTea6 HEAD. This fix was successfully checked on RHEL 5.6 x86_64. ChangeLog entry: 2011-07-11 Pavel Tisnovsky * Makefile.am: added new patch * NEWS: updated with backport * patches/openjdk/6758179-D3D_AlphaComposite_is_applied_incorrectly.patch: Backport of 6758179. Can anybody please review this change? Thank you in advance, Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 6758179_hg.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110711/a9b92bbe/6758179_hg.diff From ptisnovs at redhat.com Mon Jul 11 05:20:53 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Mon, 11 Jul 2011 14:20:53 +0200 Subject: RFC: Separation of JTreg tool into independent project In-Reply-To: <20110705011948.GC17947@shelob.middle-earth.co.uk> References: <4E11B0E3.7040605@centrum.cz> <20110705011948.GC17947@shelob.middle-earth.co.uk> Message-ID: <4E1AEAA5.3050909@redhat.com> Andrew John Hughes wrote: > On Mon, Jul 04, 2011 at 02:24:03PM +0200, Pavel Tisnovsky wrote: >> Hi all, >> >> some time ago I discussed with Andrew John Hughes about the separation >> of JTreg tool from the IcedTea6 and IcedTea7 projects. In summary (ie >> how I understand this task): JTreg should be developed as independent >> project and in the future they should be synchronized with recent JTreg >> version (used by Oracle guys AFAIK). >> > > Yes, but that's not what this patch seems to do. It just moves the source > code out of the tree into a zip somewhere. I was envisaging jtreg being > a separate project like the visualvm one with its own build infrastructure. > You'd then point configure at an installed jtreg.jar. That could be built > from the IcedTea jtreg project or alternatively, you could use the one > Oracle provide if you were willing to accept the proprietary licensing > this entails. Hi Andrew, I tried to create separated "jtreg project" using autotools. It is available (for RFC) here: hg clone http://icedtea.classpath.org/people/ptisnovs/jtreg Cheers, Pavel > >> In the attachment there's very first version of patched Makefile.am from >> IcedTea6 HEAD. When user call command 'make jtreg' from command line, >> archive containing stable version of JTreg tool sources is downloaded >> into 'drops/' subdirectory, then this archive is unzipped into 'test/' >> subdirectory and then JTreg is compiled & run as usual. >> >> This functionality is similar as in the case of JAXP and JAXWS - these >> two parts of JDK are also separated from JDK sources. >> > > Yes, and it's one of the most annoying things Oracle have ever done, as > there's no change visibility. I've been thinking about reverting it > in the IcedTea tree so at least we can see the changes between zips > if not at the changeset level. > >> What do you think about this solution (which could be the same for >> IcedTea6 and IcedTea7, also *probably* for IcedTea-web)? >> > > Why would IcedTea-Web need jtreg? > >> Cheers, >> Pavel From xranby at icedtea.classpath.org Mon Jul 11 05:27:49 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Mon, 11 Jul 2011 12:27:49 +0000 Subject: /hg/icedtea6: Removal of the ARM assembler port, unbreaks Zero a... Message-ID: changeset aae82c1ccf7d in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=aae82c1ccf7d author: Xerxes R?nby date: Mon Jul 11 14:19:14 2011 +0200 Removal of the ARM assembler port, unbreaks Zero and Shark builds. 2011-07-11 Xerxes R?nby Removal of the ARM assembler port, unbreaks Zero and Shark builds. * Makefile.am: (ICEDTEA_PATCHES): Remove patches/arm.patch (clean-ports): Removed. (stamps/ports.stamp): Likewise. (hotspot-ports): Likewise. * arm_port/hotspot/src/cpu/zero/vm/asm_helper.cpp: Removed. * arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def: Likewise. * arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S: Likewise. * arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp: Likewise. * arm_port/hotspot/tools/mkbc.c: Likewise. * patches/arm.patch: Likewise. diffstat: ChangeLog | 15 + Makefile.am | 29 +- arm_port/hotspot/src/cpu/zero/vm/asm_helper.cpp | 583 - arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def | 7695 ----------------- arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S | 6336 ------------- arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp | 7456 ---------------- arm_port/hotspot/tools/mkbc.c | 607 - patches/arm.patch | 218 - 8 files changed, 18 insertions(+), 22921 deletions(-) diffs (truncated from 23013 to 500 lines): diff -r 4ca76ee4a7a1 -r aae82c1ccf7d ChangeLog --- a/ChangeLog Mon Jul 11 10:59:47 2011 +0200 +++ b/ChangeLog Mon Jul 11 14:19:14 2011 +0200 @@ -1,3 +1,18 @@ +2011-07-11 Xerxes R??nby + + Removal of the ARM assembler port, unbreaks Zero and Shark builds. + * Makefile.am: + (ICEDTEA_PATCHES): Remove patches/arm.patch. + (clean-ports): Removed. + (stamps/ports.stamp): Likewise. + (hotspot-ports): Likewise. + * arm_port/hotspot/src/cpu/zero/vm/asm_helper.cpp: Removed. + * arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def: Likewise. + * arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S: Likewise. + * arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp: Likewise. + * arm_port/hotspot/tools/mkbc.c: Likewise. + * patches/arm.patch: Likewise. + 2011-07-11 Pavel Tisnovsky * Makefile.am: added new patch diff -r 4ca76ee4a7a1 -r aae82c1ccf7d Makefile.am --- a/Makefile.am Mon Jul 11 10:59:47 2011 +0200 +++ b/Makefile.am Mon Jul 11 14:19:14 2011 +0200 @@ -262,7 +262,6 @@ patches/openjdk/6959123-libpng_14.patch \ patches/applet_hole.patch \ patches/jtreg-httpTest.patch \ - patches/arm.patch \ patches/debug-dir.patch \ patches/override-redirect-metacity.patch \ patches/openjdk/6967533-pre_epoch.patch \ @@ -603,7 +602,7 @@ check-local: jtregcheck clean-local: clean-jtreg clean-jtreg-reports $(PULSE_JAVA_CLEAN_TARGET) \ - clean-icedtea clean-icedtea-debug clean-icedtea-ecj clean-extract clean-ports \ + clean-icedtea clean-icedtea-debug clean-icedtea-ecj clean-extract \ clean-overlay clean-native-ecj clean-icedtea-against-icedtea clean-icedtea-debug-against-icedtea \ clean-icedtea-against-ecj clean-extract-ecj clean-generated clean-replace-hotspot \ clean-rewriter clean-rewrite-rhino clean-rt clean-bootstrap-directory \ @@ -640,7 +639,7 @@ clean-icedtea-against-ecj \ clean-jamvm clean-add-jamvm clean-add-jamvm-debug \ clean-cacao clean-add-cacao clean-add-cacao-debug \ - clean-ports clean-overlay clean-extract-ecj clean-extract clean-extract-openjdk \ + clean-overlay clean-extract-ecj clean-extract clean-extract-openjdk \ clean-replace-hotspot clean-generated clean-download clean-hgforest clean-download-openjdk \ clean-rewriter clean-rewrite-rhino clean-add-systemtap clean-add-systemtap-debug \ clean-add-pulseaudio clean-add-pulseaudio-debug clean-add-nss clean-add-nss-debug \ @@ -996,27 +995,7 @@ clean-replace-hotspot: rm -f stamps/replace-hotspot.stamp -# Copy ports sources into tree -stamps/ports.stamp: stamps/replace-hotspot.stamp -if !WITH_ALT_HSBUILD - for target in $(abs_top_srcdir)/arm_port/hotspot/tools \ - $(abs_top_srcdir)/arm_port/hotspot/src/*cpu/* ; do \ - link=$$(dirname $$target | sed 's/^.*arm_port/openjdk/'); \ - cp -rv $$target $$link; \ - done -endif - mkdir -p stamps - touch stamps/ports.stamp - -clean-ports: - for target in $(abs_top_srcdir)/arm_port/hotspot/tools \ - $(abs_top_srcdir)/arm_port/hotspot/src/*cpu/* ; do \ - link=$$(dirname $$target | sed 's/^.*arm_port/openjdk/'); \ - rm -rf $$link; \ - done - rm -f stamps/ports.stamp - -stamps/generated.stamp: stamps/ports.stamp +stamps/generated.stamp: stamps/replace-hotspot.stamp set -e ; \ if [ ! -e $(abs_top_builddir)/generated ]; then \ cp -a $(abs_top_srcdir)/generated $(abs_top_builddir); \ @@ -2266,8 +2245,6 @@ extract-ecj: stamps/extract-ecj.stamp -hotspot-ports: stamps/ports.stamp - icedtea: stamps/icedtea.stamp icedtea-against-icedtea: stamps/icedtea-against-icedtea.stamp diff -r 4ca76ee4a7a1 -r aae82c1ccf7d arm_port/hotspot/src/cpu/zero/vm/asm_helper.cpp --- a/arm_port/hotspot/src/cpu/zero/vm/asm_helper.cpp Mon Jul 11 10:59:47 2011 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,583 +0,0 @@ -/* - * Copyright 2009, 2010 Edward Nevill - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#define ARCH_THUMBEE (1<<16) -#define ARCH_VFP (1<<17) -#define ARCH_CLZ (1<<18) - -#ifndef STATIC_OFFSETS - -#include "incls/_bytecodeInterpreter.cpp.incl" - -#include -#include - -#define VECBUFF_SIZE 64 - -extern "C" unsigned hwcap(void) -{ - int fd; - unsigned vecs[VECBUFF_SIZE]; - unsigned *p; - int i, n; - unsigned rc = 0; - unsigned arch = 4; - - fd = open("/proc/self/auxv", O_RDONLY); - if (fd < 0) return 0; - do { - n = read(fd, vecs, VECBUFF_SIZE * sizeof(unsigned)); - p = vecs; - i = n/8; - while (--i >= 0) { - unsigned tag = *p++; - unsigned value = *p++; - if (tag == 0) goto fini; - if (tag == AT_HWCAP) { - if (value & HWCAP_THUMBEE) rc |= ARCH_THUMBEE; - if (value & HWCAP_VFP) rc |= ARCH_VFP; - } else if (tag == AT_PLATFORM) { - const char *s = (const char *)value; - int c; - - if (*s++ == 'v') { - arch = 0; - while ((isdigit)(c = *s++)) arch = arch * 10 + c - '0'; - } - } - } - } while (n == VECBUFF_SIZE * sizeof(unsigned)); -fini: - close(fd); -// printf("arch = %d, rc = 0x%08x\n", arch, rc); - if (arch >= 5) rc |= ARCH_CLZ; - if (arch >= 7) rc |= ARCH_THUMBEE; - return rc | (1<is_lock_owned(r1); -} - -extern "C" HeapWord **CollectedHeap_top_addr(CollectedHeap *r0) -{ - return r0->top_addr(); -} - -extern "C" HeapWord **CollectedHeap_end_addr(CollectedHeap *r0) -{ - return r0->end_addr(); -} - -extern "C" char *SharedRuntime_generate_class_cast_message(const char *name, const char *klass) -{ - return SharedRuntime::generate_class_cast_message(name, klass); -} - -#define HELPER_THROW(thread, name, msg) Exceptions::_throw_msg(thread, __FILE__, __LINE__, name, msg) - -class VMStructs { -public: - static inline klassOop klass_at_addr(constantPoolOop constants, u2 index) { - return (klassOop) *constants->obj_at_addr(index); - } -}; - -extern "C" oop Helper_new(interpreterState istate, unsigned index) -{ - JavaThread *thread = istate->thread(); - - constantPoolOop constants = istate->method()->constants(); - oop result = NULL; - if (!constants->tag_at(index).is_unresolved_klass()) { - // Make sure klass is initialized and doesn't have a finalizer - oop entry = VMStructs::klass_at_addr(constants, index); - klassOop k_entry = (klassOop) entry; - instanceKlass* ik = (instanceKlass*) k_entry->klass_part(); - if ( ik->is_initialized() && ik->can_be_fastpath_allocated() ) { - size_t obj_size = ik->size_helper(); - // If the TLAB isn't pre-zeroed then we'll have to do it - bool need_zero = !ZeroTLAB; - if (UseTLAB) { - result = (oop) thread->tlab().allocate(obj_size); - } - if (result == NULL) { - need_zero = true; - // Try allocate in shared eden - retry: - HeapWord* compare_to = *Universe::heap()->top_addr(); - HeapWord* new_top = compare_to + obj_size; - if (new_top <= *Universe::heap()->end_addr()) { - if (Atomic::cmpxchg_ptr(new_top, Universe::heap()->top_addr(), compare_to) != compare_to) { - goto retry; - } - result = (oop) compare_to; - } - } - if (result != NULL) { - // Initialize object (if nonzero size and need) and then the header - if (need_zero ) { - HeapWord* to_zero = (HeapWord*) result + sizeof(oopDesc) / oopSize; - obj_size -= sizeof(oopDesc) / oopSize; - if (obj_size > 0 ) { - memset(to_zero, 0, obj_size * HeapWordSize); - } - } - if (UseBiasedLocking) { - result->set_mark(ik->prototype_header()); - } else { - result->set_mark(markOopDesc::prototype()); - } - result->set_klass_gap(0); - result->set_klass(k_entry); - return result; - } - } - } - // Slow case allocation - InterpreterRuntime::_new(thread, istate->method()->constants(), index); - result = thread->vm_result(); - thread->set_vm_result(NULL); - return result; -} - -extern "C" int Helper_instanceof(interpreterState istate, unsigned index, oop tos) -{ - if (tos == NULL) return 0; - - // Constant pool may have actual klass or unresolved klass. If it is - // unresolved we must resolve it - if (istate->method()->constants()->tag_at(index).is_unresolved_klass()) { - InterpreterRuntime::quicken_io_cc(istate->thread()); - if (istate->thread()->has_pending_exception()) return 0; - } - klassOop klassOf = VMStructs::klass_at_addr(istate->method()->constants(), index); - klassOop objKlassOop = tos->klass(); - // - // Check for compatibilty. This check must not GC!! - // Seems way more expensive now that we must dispatch - // - return objKlassOop == klassOf || objKlassOop->klass_part()->is_subtype_of(klassOf); -} - -extern "C" oop Helper_checkcast(interpreterState istate, unsigned index, oop tos) -{ - if (tos == NULL) return NULL; - - // Constant pool may have actual klass or unresolved klass. If it is - // unresolved we must resolve it - if (istate->method()->constants()->tag_at(index).is_unresolved_klass()) { - oop except_oop; - InterpreterRuntime::quicken_io_cc(istate->thread()); - if (except_oop = istate->thread()->pending_exception()) return except_oop; - } - klassOop klassOf = VMStructs::klass_at_addr(istate->method()->constants(), index); - klassOop objKlassOop = tos->klass(); //ebx - // - // Check for compatibilty. This check must not GC!! - // Seems way more expensive now that we must dispatch - // - if (objKlassOop != klassOf && !objKlassOop->klass_part()->is_subtype_of(klassOf)) { - ResourceMark rm(istate->thread()); - const char* objName = Klass::cast(objKlassOop)->external_name(); - const char* klassName = Klass::cast(klassOf)->external_name(); - char* message = SharedRuntime::generate_class_cast_message(objName, klassName); - ThreadInVMfromJava trans(istate->thread()); - HELPER_THROW(istate->thread(), vmSymbols::java_lang_ClassCastException(), message); - } - return istate->thread()->pending_exception(); -} - -extern "C" oop Helper_aastore(interpreterState istate, oop value, int index, arrayOop arrayref) -{ - if (arrayref == NULL) { - ThreadInVMfromJava trans(istate->thread()); - HELPER_THROW(istate->thread(), vmSymbols::java_lang_NullPointerException(), ""); - } else if ((uint32_t)index >= (uint32_t)arrayref->length()) { - char message[jintAsStringSize]; - sprintf(message, "%d", index); - HELPER_THROW(istate->thread(), vmSymbols::java_lang_ArrayIndexOutOfBoundsException(), message); - } else { - if (value != NULL) { - /* Check assignability of value into arrayref */ - klassOop rhsKlassOop = value->klass(); // EBX (subclass) - klassOop elemKlassOop = ((objArrayKlass*) arrayref->klass()->klass_part())->element_klass(); - // - // Check for compatibilty. This check must not GC!! - // Seems way more expensive now that we must dispatch - // - if (rhsKlassOop != elemKlassOop && !rhsKlassOop->klass_part()->is_subtype_of(elemKlassOop)) { - HELPER_THROW(istate->thread(), vmSymbols::java_lang_ArrayStoreException(), ""); - goto handle_exception; - } - } - oop* elem_loc = (oop*)(((address) arrayref->base(T_OBJECT)) + index * sizeof(oop)); - // *(oop*)(((address) arrayref->base(T_OBJECT)) + index * sizeof(oop)) = value; - *elem_loc = value; - // Mark the card - BarrierSet* bs = Universe::heap()->barrier_set(); - static volatile jbyte* _byte_map_base = (volatile jbyte*)(((CardTableModRefBS*)bs)->byte_map_base); - OrderAccess::release_store(&_byte_map_base[(uintptr_t)elem_loc >> CardTableModRefBS::card_shift], 0); - } -handle_exception: - return istate->thread()->pending_exception(); -} - -extern "C" void Helper_aputfield(oop obj) -{ - BarrierSet* bs = Universe::heap()->barrier_set(); - static volatile jbyte* _byte_map_base = (volatile jbyte*)(((CardTableModRefBS*)bs)->byte_map_base); - OrderAccess::release_store(&_byte_map_base[(uintptr_t)obj >> CardTableModRefBS::card_shift], 0); -} - -extern "C" oop Helper_synchronized_enter(JavaThread *thread, BasicObjectLock *mon) -{ - BasicLock *lock = mon->lock(); - markOop displaced = lock->displaced_header(); - - if (thread->is_lock_owned((address)displaced->clear_lock_bits())) - lock->set_displaced_header(NULL); - else - InterpreterRuntime::monitorenter(thread, mon); - return thread->pending_exception(); -} - -extern "C" oop Helper_synchronized_exit(JavaThread *thread, BasicObjectLock *mon) -{ - { - HandleMark __hm(thread); - if (mon->obj() == NULL) - InterpreterRuntime::throw_illegal_monitor_state_exception(thread); - else - InterpreterRuntime::monitorexit(thread, mon); - } - return thread->pending_exception(); -} - -extern "C" oop Helper_SafePoint(JavaThread *thread) -{ - { - HandleMarkCleaner __hmc(thread); - } - SafepointSynchronize::block(thread); - return thread->pending_exception(); -} - -extern "C" void Helper_RaiseArrayBoundException(JavaThread *thread, int index) -{ - char message[jintAsStringSize]; - sprintf(message, "%d", index); - { - ThreadInVMfromJava trans(thread); - Exceptions::_throw_msg(thread, "[Bytecoce Interpreter]", 99, - vmSymbols::java_lang_ArrayIndexOutOfBoundsException(), message); - } -} - -extern "C" void Helper_Raise(JavaThread *thread, symbolOopDesc *name, char const *msg) -{ - ThreadInVMfromJava trans(thread); - Exceptions::_throw_msg(thread, "[Bytecoce Interpreter]", 99, name, msg); -} - -extern "C" void Helper_RaiseIllegalMonitorException(JavaThread *thread) -{ - HandleMark __hm(thread); - thread->clear_pending_exception(); - InterpreterRuntime::throw_illegal_monitor_state_exception(thread); -} - -extern "C" address Helper_HandleException(interpreterState istate, JavaThread *thread) -{ - HandleMarkCleaner __hmc(thread); - Handle except_oop(thread, thread->pending_exception()); - HandleMark __hm(thread); - intptr_t continuation_bci; - intptr_t *topOfStack; - address pc; - - thread->clear_pending_exception(); - continuation_bci = (intptr_t)InterpreterRuntime::exception_handler_for_exception(thread, except_oop()); - except_oop = (oop) thread->vm_result(); - thread->set_vm_result(NULL); - if (continuation_bci >= 0) { - topOfStack = (intptr_t *)istate->stack(); - *topOfStack-- = (intptr_t)except_oop(); - istate->set_stack(topOfStack); - pc = istate->method()->code_base() + continuation_bci; -#if 0 - tty->print_cr("Exception <%s> (" INTPTR_FORMAT ")", Klass::cast(except_oop->klass())->external_name(), except_oop()); - tty->print_cr(" thrown in interpreter method <%s>", istate->method()->name_and_sig_as_C_string()); - tty->print_cr(" at bci %d, continuing at %d for thread " INTPTR_FORMAT, - pc - (intptr_t)istate->method()->code_base(), - continuation_bci, thread); -#endif - return pc; - } -#if 0 - tty->print_cr("Exception <%s> (" INTPTR_FORMAT ")", Klass::cast(except_oop->klass())->external_name(), except_oop()); - tty->print_cr(" thrown in interpreter method <%s>", istate->method()->name_and_sig_as_C_string()); - tty->print_cr(" at bci %d, unwinding for thread " INTPTR_FORMAT, - pc - (intptr_t) istate->method()->code_base(), - thread); -#endif - thread->set_pending_exception(except_oop(), NULL, 0); - return 0; -} - -#endif // STATIC_OFFSETS - -#ifdef STATIC_OFFSETS - -#include "incls/_precompiled.incl" - -class VMStructs { -public: - static void print_vm_offsets(void); -}; - -#define outfile stdout - -void print_def(const char *s, int v) -{ - fprintf(outfile, "#undef %-40s\n", s); - fprintf(outfile, "#define %-40s 0x%02x\n", s, v); -} - -void nl(void) -{ - fputc('\n', outfile); -} - -// ZeroFrame is not friends with VMStructs, but it is with ZeroStackPrinter -class ZeroStackPrinter { -public: - static void print_vm_offsets(void); -}; - -void ZeroStackPrinter::print_vm_offsets(void) -{ - print_def("INTERPRETER_FRAME", ZeroFrame::INTERPRETER_FRAME); -} - -void VMStructs::print_vm_offsets(void) -{ - print_def("ISTATE_THREAD", offset_of(BytecodeInterpreter, _thread)); - print_def("ISTATE_BCP", offset_of(BytecodeInterpreter, _bcp)); - print_def("ISTATE_LOCALS", offset_of(BytecodeInterpreter, _locals)); - print_def("ISTATE_CONSTANTS", offset_of(BytecodeInterpreter, _constants)); - print_def("ISTATE_METHOD", offset_of(BytecodeInterpreter, _method)); - print_def("ISTATE_STACK", offset_of(BytecodeInterpreter, _stack)); - print_def("ISTATE_MSG", offset_of(BytecodeInterpreter, _msg)); - print_def("ISTATE_OOP_TEMP", offset_of(BytecodeInterpreter, _oop_temp)); - print_def("ISTATE_STACK_BASE",offset_of(BytecodeInterpreter, _stack_base)); - print_def("ISTATE_STACK_LIMIT",offset_of(BytecodeInterpreter, _stack_limit)); - print_def("ISTATE_MONITOR_BASE",offset_of(BytecodeInterpreter, _monitor_base)); - print_def("ISTATE_SELF_LINK", offset_of(BytecodeInterpreter, _self_link)); - print_def("ISTATE_FRAME_TYPE", sizeof(BytecodeInterpreter) + 0); - print_def("ISTATE_NEXT_FRAME", sizeof(BytecodeInterpreter) + 4); - print_def("FRAME_SIZE", sizeof(BytecodeInterpreter) + 8); - nl(); - ZeroStackPrinter::print_vm_offsets(); - nl(); - print_def("THREAD_PENDING_EXC", offset_of(JavaThread, _pending_exception)); - print_def("THREAD_SUSPEND_FLAGS", offset_of(JavaThread, _suspend_flags)); - print_def("THREAD_ACTIVE_HANDLES", offset_of(JavaThread, _active_handles)); - print_def("THREAD_LAST_HANDLE_MARK", offset_of(JavaThread, _last_handle_mark)); - print_def("THREAD_TLAB_TOP", offset_of(JavaThread, _tlab) + offset_of(ThreadLocalAllocBuffer, _top)); From ChrisPhi at LGonQn.Org Mon Jul 11 06:57:58 2011 From: ChrisPhi at LGonQn.Org (Chris Phillips) Date: Mon, 11 Jul 2011 09:57:58 -0400 Subject: distro-pkg-dev Digest, Vol 50, Issue 21: [Bug 753] [regression] Zero FTBFS on stack_zero.cpp : In-Reply-To: References: Message-ID: <4E1B0166.9010609@LGonQn.Org> Hi Thanks Xerxes! Looks OK. This works around the build problem in b143, further re-org and changes needed for zero/shark jsr292 for b147 FCS. Chris On 10/07/11 03:00 PM, distro-pkg-dev-request at openjdk.java.net wrote: > ---------------------------------------------------------------------- > > Message: 1 > Date: Sun, 10 Jul 2011 12:04:17 +0000 > From: bugzilla-daemon at icedtea.classpath.org > Subject: [Bug 753] [regression] Zero FTBFS on stack_zero.cpp : > To: unassigned at icedtea.classpath.org > Message-ID: > Content-Type: text/plain; charset="UTF-8" > > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=753 > > > > > > --- Comment #2 from Xerxes R?nby 2011-07-10 12:04:17 --- > Created an attachment (id=551) > --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=551) > PR753-zero-methodHandle.patch > > This patch unbreaks the build by passing in a methodHandle obtained by calling > mathodHandle() in zero. From ahughes at redhat.com Mon Jul 11 07:12:39 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Mon, 11 Jul 2011 15:12:39 +0100 Subject: RFC: Removal of the ARM assembler port in Icedtea6, unbreaks Zero and Shark builds. In-Reply-To: <1310382467.30591.14.camel@xranby-ESPRIMO-P7935> References: <1310382467.30591.14.camel@xranby-ESPRIMO-P7935> Message-ID: <20110711141239.GA5877@rivendell.middle-earth.co.uk> On 13:07 Mon 11 Jul , Xerxes R?nby wrote: > Hi team. > > The ARM assembler port that have been broken and unmaintained for about > a year are currently preventing Zero and Shark from building when using > the new Hotspot in OpenJDK b23. > Just for clarity, the issue here is not because of changes in b23 as we've been using using the same HotSpot for months. The new breakage is because the HotSpot we now use by default is no longer the 'alternate' Hotspot (and thus WITH_ALT_HSBUILD is not set). It's the 'original' HotSpot from the b23 tarball. > The attached patch fixes Zero and Shark builds by removing the ARM > assembler port from the icedtea6 tree. > > I will also remove the following files: > arm_port/hotspot/src/cpu/zero/vm/asm_helper.cpp > arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def > arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S > arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp > arm_port/hotspot/tools/mkbc.c > patches/arm.patch > > Ok to push? > This sounds fine. We did give plenty of warning about this when we first disabled it for hs20 and the code hasn't been included in the default build since we switched to using hs20. > Cheers > Xerxes > Index: icedtea6/Makefile.am > =================================================================== > --- icedtea6.orig/Makefile.am 2011-07-11 12:37:38.084889776 +0200 > +++ icedtea6/Makefile.am 2011-07-11 12:38:04.565021087 +0200 > @@ -262,7 +262,6 @@ > patches/openjdk/6959123-libpng_14.patch \ > patches/applet_hole.patch \ > patches/jtreg-httpTest.patch \ > - patches/arm.patch \ > patches/debug-dir.patch \ > patches/override-redirect-metacity.patch \ > patches/openjdk/6967533-pre_epoch.patch \ > @@ -603,7 +602,7 @@ > check-local: jtregcheck > > clean-local: clean-jtreg clean-jtreg-reports $(PULSE_JAVA_CLEAN_TARGET) \ > - clean-icedtea clean-icedtea-debug clean-icedtea-ecj clean-extract clean-ports \ > + clean-icedtea clean-icedtea-debug clean-icedtea-ecj clean-extract \ > clean-overlay clean-native-ecj clean-icedtea-against-icedtea clean-icedtea-debug-against-icedtea \ > clean-icedtea-against-ecj clean-extract-ecj clean-generated clean-replace-hotspot \ > clean-rewriter clean-rewrite-rhino clean-rt clean-bootstrap-directory \ > @@ -640,7 +639,7 @@ > clean-icedtea-against-ecj \ > clean-jamvm clean-add-jamvm clean-add-jamvm-debug \ > clean-cacao clean-add-cacao clean-add-cacao-debug \ > - clean-ports clean-overlay clean-extract-ecj clean-extract clean-extract-openjdk \ > + clean-overlay clean-extract-ecj clean-extract clean-extract-openjdk \ > clean-replace-hotspot clean-generated clean-download clean-hgforest clean-download-openjdk \ > clean-rewriter clean-rewrite-rhino clean-add-systemtap clean-add-systemtap-debug \ > clean-add-pulseaudio clean-add-pulseaudio-debug clean-add-nss clean-add-nss-debug \ > @@ -996,27 +995,7 @@ > clean-replace-hotspot: > rm -f stamps/replace-hotspot.stamp > > -# Copy ports sources into tree > -stamps/ports.stamp: stamps/replace-hotspot.stamp > -if !WITH_ALT_HSBUILD > - for target in $(abs_top_srcdir)/arm_port/hotspot/tools \ > - $(abs_top_srcdir)/arm_port/hotspot/src/*cpu/* ; do \ > - link=$$(dirname $$target | sed 's/^.*arm_port/openjdk/'); \ > - cp -rv $$target $$link; \ > - done > -endif > - mkdir -p stamps > - touch stamps/ports.stamp > - > -clean-ports: > - for target in $(abs_top_srcdir)/arm_port/hotspot/tools \ > - $(abs_top_srcdir)/arm_port/hotspot/src/*cpu/* ; do \ > - link=$$(dirname $$target | sed 's/^.*arm_port/openjdk/'); \ > - rm -rf $$link; \ > - done > - rm -f stamps/ports.stamp > - > -stamps/generated.stamp: stamps/ports.stamp > +stamps/generated.stamp: stamps/replace-hotspot.stamp > set -e ; \ > if [ ! -e $(abs_top_builddir)/generated ]; then \ > cp -a $(abs_top_srcdir)/generated $(abs_top_builddir); \ > @@ -2266,8 +2245,6 @@ > > extract-ecj: stamps/extract-ecj.stamp > > -hotspot-ports: stamps/ports.stamp > - > icedtea: stamps/icedtea.stamp > > icedtea-against-icedtea: stamps/icedtea-against-icedtea.stamp -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Mon Jul 11 07:14:46 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Mon, 11 Jul 2011 15:14:46 +0100 Subject: RFC: Removal of the ARM assembler port in Icedtea6, unbreaks Zero and Shark builds. In-Reply-To: <4E1ADFBC.3020503@ubuntu.com> References: <1310382467.30591.14.camel@xranby-ESPRIMO-P7935> <4E1ADFBC.3020503@ubuntu.com> Message-ID: <20110711141445.GB5877@rivendell.middle-earth.co.uk> On 13:34 Mon 11 Jul , Matthias Klose wrote: > On 07/11/2011 01:07 PM, Xerxes R?nby wrote: > > Hi team. > > > > The ARM assembler port that have been broken and unmaintained for about > > a year are currently preventing Zero and Shark from building when using > > the new Hotspot in OpenJDK b23. > > > > The attached patch fixes Zero and Shark builds by removing the ARM > > assembler port from the icedtea6 tree. > > > > I will also remove the following files: > > arm_port/hotspot/src/cpu/zero/vm/asm_helper.cpp > > arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def > > arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S > > arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp > > arm_port/hotspot/tools/mkbc.c > > patches/arm.patch > > > > Ok to push? > > Looks fine. Note that I'll continue to create releases from the 1.8 branch (the > last branch I'm using the arm assembler port). > As I mentioned some time back: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2011-March/013215.html I won't be maintaining 1.8 once 1.11 is released, which will be sometime in the latter half of this year, once our initial IcedTea7 releases are out of the way. Do you intend to pick this up yourself? > Matthias -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Mon Jul 11 07:22:24 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Mon, 11 Jul 2011 15:22:24 +0100 Subject: Reviewer needed: backport of 6758179 into IcedTea6 HEAD. In-Reply-To: <4E1AE6C5.4030100@redhat.com> References: <4E1AE6C5.4030100@redhat.com> Message-ID: <20110711142224.GD5877@rivendell.middle-earth.co.uk> On 14:04 Mon 11 Jul , Pavel Tisnovsky wrote: > Hi all, > > I'd like to push backport of "6758179: D3D: AlphaComposite is applied > incorrectly for uncached opaque BufferedImage" fix > into IcedTea6 HEAD. This fix was successfully checked on RHEL 5.6 x86_64. > > ChangeLog entry: > > 2011-07-11 Pavel Tisnovsky > > * Makefile.am: added new patch > * NEWS: updated with backport > * > patches/openjdk/6758179-D3D_AlphaComposite_is_applied_incorrectly.patch: > Backport of 6758179. > > Can anybody please review this change? > > Thank you in advance, > Pavel > Approved. Where are you finding all these? -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From doko at ubuntu.com Mon Jul 11 08:07:48 2011 From: doko at ubuntu.com (Matthias Klose) Date: Mon, 11 Jul 2011 17:07:48 +0200 Subject: RFC: Removal of the ARM assembler port in Icedtea6, unbreaks Zero and Shark builds. In-Reply-To: <20110711141445.GB5877@rivendell.middle-earth.co.uk> References: <1310382467.30591.14.camel@xranby-ESPRIMO-P7935> <4E1ADFBC.3020503@ubuntu.com> <20110711141445.GB5877@rivendell.middle-earth.co.uk> Message-ID: <4E1B11C4.7010800@ubuntu.com> On 07/11/2011 04:14 PM, Dr Andrew John Hughes wrote: > On 13:34 Mon 11 Jul , Matthias Klose wrote: >> On 07/11/2011 01:07 PM, Xerxes R?nby wrote: >>> Hi team. >>> >>> The ARM assembler port that have been broken and unmaintained for about >>> a year are currently preventing Zero and Shark from building when using >>> the new Hotspot in OpenJDK b23. >>> >>> The attached patch fixes Zero and Shark builds by removing the ARM >>> assembler port from the icedtea6 tree. >>> >>> I will also remove the following files: >>> arm_port/hotspot/src/cpu/zero/vm/asm_helper.cpp >>> arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def >>> arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S >>> arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp >>> arm_port/hotspot/tools/mkbc.c >>> patches/arm.patch >>> >>> Ok to push? >> >> Looks fine. Note that I'll continue to create releases from the 1.8 branch (the >> last branch I'm using the arm assembler port). >> > > As I mentioned some time back: > > http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2011-March/013215.html > > I won't be maintaining 1.8 once 1.11 is released, which will be sometime in > the latter half of this year, once our initial IcedTea7 releases are out of > the way. > > Do you intend to pick this up yourself? I'm still release manager for the 1.8 branch, or did I miss something? Matthias From ptisnovs at redhat.com Mon Jul 11 08:34:46 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Mon, 11 Jul 2011 17:34:46 +0200 Subject: Reviewer needed: backport of 6758179 into IcedTea6 HEAD. In-Reply-To: <20110711142224.GD5877@rivendell.middle-earth.co.uk> References: <4E1AE6C5.4030100@redhat.com> <20110711142224.GD5877@rivendell.middle-earth.co.uk> Message-ID: <4E1B1816.3080407@redhat.com> Dr Andrew John Hughes wrote: > On 14:04 Mon 11 Jul , Pavel Tisnovsky wrote: >> Hi all, >> >> I'd like to push backport of "6758179: D3D: AlphaComposite is applied >> incorrectly for uncached opaque BufferedImage" fix >> into IcedTea6 HEAD. This fix was successfully checked on RHEL 5.6 x86_64. >> >> ChangeLog entry: >> >> 2011-07-11 Pavel Tisnovsky >> >> * Makefile.am: added new patch >> * NEWS: updated with backport >> * >> patches/openjdk/6758179-D3D_AlphaComposite_is_applied_incorrectly.patch: >> Backport of 6758179. >> >> Can anybody please review this change? >> >> Thank you in advance, >> Pavel >> > > Approved. Where are you finding all these? > Hi Andrew, thank you. I'm trying to sync. regression tests so if some test exists only in OpenJDK7 then I look for changes coming together with the test (hg log & hg export) and if such changes look good and are applicable to IcedTea6 sources *and* if it does not break TCK I'll ask for review ;-) Pavel From ahughes at redhat.com Mon Jul 11 08:36:03 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Mon, 11 Jul 2011 16:36:03 +0100 Subject: RFC: Removal of the ARM assembler port in Icedtea6, unbreaks Zero and Shark builds. In-Reply-To: <1310382467.30591.14.camel@xranby-ESPRIMO-P7935> References: <1310382467.30591.14.camel@xranby-ESPRIMO-P7935> Message-ID: <20110711153603.GE5877@rivendell.middle-earth.co.uk> On 13:07 Mon 11 Jul , Xerxes R?nby wrote: > Hi team. > > The ARM assembler port that have been broken and unmaintained for about > a year are currently preventing Zero and Shark from building when using > the new Hotspot in OpenJDK b23. > > The attached patch fixes Zero and Shark builds by removing the ARM > assembler port from the icedtea6 tree. > > I will also remove the following files: > arm_port/hotspot/src/cpu/zero/vm/asm_helper.cpp > arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def > arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S > arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp > arm_port/hotspot/tools/mkbc.c > patches/arm.patch > > Ok to push? > > Cheers > Xerxes Missed this in my initial review; you don't update NEWS. Please do so. This is more important than the numerous minor JamVM changes which were all meticulously documented. Thanks, -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Mon Jul 11 08:39:21 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Mon, 11 Jul 2011 16:39:21 +0100 Subject: RFC: Removal of the ARM assembler port in Icedtea6, unbreaks Zero and Shark builds. In-Reply-To: <4E1B11C4.7010800@ubuntu.com> References: <1310382467.30591.14.camel@xranby-ESPRIMO-P7935> <4E1ADFBC.3020503@ubuntu.com> <20110711141445.GB5877@rivendell.middle-earth.co.uk> <4E1B11C4.7010800@ubuntu.com> Message-ID: <20110711153921.GF5877@rivendell.middle-earth.co.uk> On 17:07 Mon 11 Jul , Matthias Klose wrote: > On 07/11/2011 04:14 PM, Dr Andrew John Hughes wrote: > > On 13:34 Mon 11 Jul , Matthias Klose wrote: > >> On 07/11/2011 01:07 PM, Xerxes R?nby wrote: > >>> Hi team. > >>> > >>> The ARM assembler port that have been broken and unmaintained for about > >>> a year are currently preventing Zero and Shark from building when using > >>> the new Hotspot in OpenJDK b23. > >>> > >>> The attached patch fixes Zero and Shark builds by removing the ARM > >>> assembler port from the icedtea6 tree. > >>> > >>> I will also remove the following files: > >>> arm_port/hotspot/src/cpu/zero/vm/asm_helper.cpp > >>> arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def > >>> arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S > >>> arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp > >>> arm_port/hotspot/tools/mkbc.c > >>> patches/arm.patch > >>> > >>> Ok to push? > >> > >> Looks fine. Note that I'll continue to create releases from the 1.8 branch (the > >> last branch I'm using the arm assembler port). > >> > > > > As I mentioned some time back: > > > > http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2011-March/013215.html > > > > I won't be maintaining 1.8 once 1.11 is released, which will be sometime in > > the latter half of this year, once our initial IcedTea7 releases are out of > > the way. > > > > Do you intend to pick this up yourself? > > I'm still release manager for the 1.8 branch, or did I miss something? > You missed the last seven releases if that's the case. The last entry from you in the ChangeLog is 2010-08-27. > Matthias -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From bugzilla-daemon at icedtea.classpath.org Mon Jul 11 08:52:57 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 11 Jul 2011 15:52:57 +0000 Subject: [Bug 758] New: [regression] javah from 6hg/b23 generates `jlong' from `private int' Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=758 Summary: [regression] javah from 6hg/b23 generates `jlong' from `private int' Product: IcedTea Version: 6-hg Platform: arm OS/Version: Linux Status: NEW Severity: major Priority: P5 Component: IcedTea6 AssignedTo: unassigned at icedtea.classpath.org ReportedBy: doko at ubuntu.com saw I build failure of the form: org_classpath_icedtea_pulseaudio_Operation.c:76:24: error: conflicting types for 'Java_org_classpath_icedtea_pulseaudio_Operation_native_1get_1state' org_classpath_icedtea_pulseaudio_Operation.h:39:25: note: previous declaration of 'Java_org_classpath_icedtea_pulseaudio_Operation_native_1get_1state' was here and indeed, the generated org_classpath_icedtea_pulseaudio_Operation.h shows: /* * Class: org_classpath_icedtea_pulseaudio_Operation * Method: native_get_state * Signature: ()J */ JNIEXPORT jlong JNICALL Java_org_classpath_icedtea_pulseaudio_Operation_native_1get_1state (JNIEnv *, jobject); this works ok with 6b18, 6b22 and 7b136. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Mon Jul 11 09:24:38 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 11 Jul 2011 16:24:38 +0000 Subject: [Bug 758] [regression] javah from 6hg/b23 generates `jlong' from `private int' In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=758 Omair Majid changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |omajid at redhat.com --- Comment #1 from Omair Majid 2011-07-11 16:24:37 --- The java method native_get_state is defined as "private long": http://icedtea.classpath.org/hg/icedtea6-hg/file/23404f48955e/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Operation.java#l88 The native method is implemented to return type jlong: http://icedtea.classpath.org/hg/icedtea6-hg/file/23404f48955e/pulseaudio/src/native/org_classpath_icedtea_pulseaudio_Operation.c#l93 And all of this seems consistent with the snippet of the generated .h file that you posted. If you still have the build around, could you please post the relevant parts from org_classpath_icedtea_pulseaudio_Operation.c and Operation.java? -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Mon Jul 11 09:52:51 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 11 Jul 2011 16:52:51 +0000 Subject: [Bug 758] [regression] javah from 6hg/b23 generates `jlong' from `private int' In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=758 --- Comment #2 from Matthias Klose 2011-07-11 16:52:50 --- in 6b23, it's jlong, in 7b143, it's jint. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Mon Jul 11 12:46:13 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 11 Jul 2011 19:46:13 +0000 Subject: [Bug 758] [regression] javah from 6hg/b23 generates `jlong' from `private int' In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=758 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ahughes at redhat.com Component|IcedTea6 |PulseAudio --- Comment #3 from Andrew John Hughes 2011-07-11 19:46:13 --- Please quote IcedTea{6,7} versions. The PulseAudio provider is not part of OpenJDK and so these build numbers are confusing and unhelpful. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Mon Jul 11 12:46:29 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 11 Jul 2011 19:46:29 +0000 Subject: [Bug 758] [regression] javah from 6hg/b23 generates `jlong' from `private int' In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=758 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|major |normal -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Mon Jul 11 12:49:16 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 11 Jul 2011 19:49:16 +0000 Subject: [Bug 758] [regression] javah from 6hg/b23 generates `jlong' from `private int' In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=758 --- Comment #4 from Andrew John Hughes 2011-07-11 19:49:15 --- The return type was changed in: http://icedtea.classpath.org/hg/icedtea6-hg/diff/5c6d4ea2f55d/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Operation.java Looks like you have an outdated header file in your build. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Mon Jul 11 12:50:24 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 11 Jul 2011 19:50:24 +0000 Subject: [Bug 758] [regression] javah from 6hg/b23 generates `jlong' from `private int' In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=758 --- Comment #5 from Andrew John Hughes 2011-07-11 19:50:23 --- As an aside, surely it should be nativeGetState to comply with our coding conventions? -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Mon Jul 11 13:35:43 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 11 Jul 2011 20:35:43 +0000 Subject: [Bug 755] Fatal Error on JUnit Test in Eclipse In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=755 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ahughes at redhat.com --- Comment #1 from Andrew John Hughes 2011-07-11 20:35:43 --- We need a way of reproducing this. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Mon Jul 11 13:36:01 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 11 Jul 2011 20:36:01 +0000 Subject: [Bug 755] Fatal Error on JUnit Test in Eclipse In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=755 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #550|text/x-log |text/plain mime type| | -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From dbhole at redhat.com Mon Jul 11 13:42:16 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 11 Jul 2011 16:42:16 -0400 Subject: [PATCH REVIEW] [1.10] RFC: Support Linux 3 In-Reply-To: <20110708151201.GE13502@shelob.middle-earth.co.uk> References: <20110708151121.GD13502@shelob.middle-earth.co.uk> <20110708151201.GE13502@shelob.middle-earth.co.uk> Message-ID: <20110711204216.GA8130@redhat.com> * Andrew John Hughes [2011-07-08 11:12]: > On Fri, Jul 08, 2011 at 04:11:21PM +0100, Andrew John Hughes wrote: > > I'd like to backport the attached patch to 1.10. > > > > I also intend to backport this to 1.8 & 1.9 if anyone wants to give an early approval. > > > > ChangeLog: > > > > 2011-06-28 Andrew John Hughes > > > > * Makefile.am: Add new patch. > > * patches/support_linux_3.patch: > > Allow Linux 3* through the HotSpot OS version > > filter. > > * NEWS: Updated. > > -- > > Andrew :) > > > > Free Java Software Engineer > > Red Hat, Inc. (http://www.redhat.com) > > > > Support Free Java! > > Contribute to GNU Classpath and IcedTea > > http://www.gnu.org/software/classpath > > http://icedtea.classpath.org > > PGP Key: F5862A37 (https://keys.indymedia.org/) > > Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 > > And the patch... Looks good to me. Okay for HEAD and previous branches. Cheers, Deepak > -- > Andrew :) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > Support Free Java! > Contribute to GNU Classpath and IcedTea > http://www.gnu.org/software/classpath > http://icedtea.classpath.org > PGP Key: F5862A37 (https://keys.indymedia.org/) > Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 > # HG changeset patch > # User Andrew John Hughes > # Date 1310072477 -3600 > # Node ID 28c6f2df462771fd38f0f98092bbe177c6abfb26 > # Parent a95c47b36218144c9539d74f63320c1b84fe7722 > Allow Linux 3* to pass through the HotSpot OS version filter. > > 2011-06-28 Andrew John Hughes > > * Makefile.am: Add new patch. > * patches/support_linux_3.patch: > Allow Linux 3* through the HotSpot OS version > filter. > * NEWS: Updated. > > diff -r a95c47b36218 -r 28c6f2df4627 ChangeLog > --- a/ChangeLog Wed Jun 08 18:16:37 2011 +0100 > +++ b/ChangeLog Thu Jul 07 22:01:17 2011 +0100 > @@ -1,3 +1,11 @@ > +2011-06-28 Andrew John Hughes > + > + * Makefile.am: Add new patch. > + * patches/support_linux_3.patch: > + Allow Linux 3* through the HotSpot OS version > + filter. > + * NEWS: Updated. > + > 2011-06-08 Andrew John Hughes > > * NEWS: Add 1.10.3. > diff -r a95c47b36218 -r 28c6f2df4627 Makefile.am > --- a/Makefile.am Wed Jun 08 18:16:37 2011 +0100 > +++ b/Makefile.am Thu Jul 07 22:01:17 2011 +0100 > @@ -341,7 +341,8 @@ > patches/openjdk/7031385-gcc-register-allocation-fix.patch \ > patches/shark-llvm-2.9.patch \ > patches/openjdk/pgram-pipe-regression.patch \ > - patches/openjdk/mutter.patch > + patches/openjdk/mutter.patch \ > + patches/support_linux_3.patch > > if WITH_ALT_HSBUILD > ICEDTEA_PATCHES += \ > diff -r a95c47b36218 -r 28c6f2df4627 NEWS > --- a/NEWS Wed Jun 08 18:16:37 2011 +0100 > +++ b/NEWS Thu Jul 07 22:01:17 2011 +0100 > @@ -11,6 +11,9 @@ > > New in release 1.10.3 (20XX-XX-XX): > > +* Bug fixes > + - PR748: Icedtea6 fails to build with Linux 3.0. > + > New in release 1.10.2 (2011-06-07): > > * Security fixes > diff -r a95c47b36218 -r 28c6f2df4627 patches/support_linux_3.patch > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/patches/support_linux_3.patch Thu Jul 07 22:01:17 2011 +0100 > @@ -0,0 +1,19 @@ > +# HG changeset patch > +# User andrew > +# Date 1309217125 -3600 > +# Node ID f7e8b10f51c6a622520b55df0c644fb09ec78542 > +# Parent b8227c320dec384a94026fcaa650b0ebd4eef13b > +Allow building HotSpot with any Linux 3 version. > + > +diff -r b8227c320dec -r f7e8b10f51c6 make/linux/Makefile > +--- openjdk/hotspot/make/linux/Makefile Wed Jun 15 18:56:52 2011 +0100 > ++++ openjdk/hotspot/make/linux/Makefile Tue Jun 28 00:25:25 2011 +0100 > +@@ -230,7 +230,7 @@ > + # Solaris 2.5.1, 2.6). > + # Disable this check by setting DISABLE_HOTSPOT_OS_VERSION_CHECK=ok. > + > +-SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 2.7% > ++SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% > + OS_VERSION := $(shell uname -r) > + EMPTY_IF_NOT_SUPPORTED = $(filter $(SUPPORTED_OS_VERSION),$(OS_VERSION)) > + From ahughes at redhat.com Mon Jul 11 13:53:36 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Mon, 11 Jul 2011 21:53:36 +0100 Subject: [PATCH REVIEW] [1.10] RFC: Support Linux 3 In-Reply-To: <20110711204216.GA8130@redhat.com> References: <20110708151121.GD13502@shelob.middle-earth.co.uk> <20110708151201.GE13502@shelob.middle-earth.co.uk> <20110711204216.GA8130@redhat.com> Message-ID: <20110711205335.GG5877@rivendell.middle-earth.co.uk> On 16:42 Mon 11 Jul , Deepak Bhole wrote: > * Andrew John Hughes [2011-07-08 11:12]: > > On Fri, Jul 08, 2011 at 04:11:21PM +0100, Andrew John Hughes wrote: > > > I'd like to backport the attached patch to 1.10. > > > > > > I also intend to backport this to 1.8 & 1.9 if anyone wants to give an early approval. > > > > > > ChangeLog: > > > > > > 2011-06-28 Andrew John Hughes > > > > > > * Makefile.am: Add new patch. > > > * patches/support_linux_3.patch: > > > Allow Linux 3* through the HotSpot OS version > > > filter. > > > * NEWS: Updated. > > > -- > > > Andrew :) > > > > > > Free Java Software Engineer > > > Red Hat, Inc. (http://www.redhat.com) > > > > > > Support Free Java! > > > Contribute to GNU Classpath and IcedTea > > > http://www.gnu.org/software/classpath > > > http://icedtea.classpath.org > > > PGP Key: F5862A37 (https://keys.indymedia.org/) > > > Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 > > > > And the patch... > > Looks good to me. Okay for HEAD and previous branches. > It's already in HEAD. That doesn't require approval. > Cheers, > Deepak -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From xranby at icedtea.classpath.org Mon Jul 11 14:32:38 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Mon, 11 Jul 2011 21:32:38 +0000 Subject: /hg/icedtea6: NEWS: Updated, mention removal of the ARM assemble... Message-ID: changeset ad05410af28a in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=ad05410af28a author: Xerxes R?nby date: Mon Jul 11 23:31:50 2011 +0200 NEWS: Updated, mention removal of the ARM assembler port and Thumb2 JIT. 2011-07-11 Xerxes R?nby * NEWS: Updated. diffstat: ChangeLog | 4 ++++ NEWS | 3 ++- 2 files changed, 6 insertions(+), 1 deletions(-) diffs (25 lines): diff -r aae82c1ccf7d -r ad05410af28a ChangeLog --- a/ChangeLog Mon Jul 11 14:19:14 2011 +0200 +++ b/ChangeLog Mon Jul 11 23:31:50 2011 +0200 @@ -1,3 +1,7 @@ +2011-07-11 Xerxes R??nby + + * NEWS: Updated. + 2011-07-11 Xerxes R??nby Removal of the ARM assembler port, unbreaks Zero and Shark builds. diff -r aae82c1ccf7d -r ad05410af28a NEWS --- a/NEWS Mon Jul 11 14:19:14 2011 +0200 +++ b/NEWS Mon Jul 11 23:31:50 2011 +0200 @@ -99,8 +99,9 @@ - On ARM, force interpreter to be built in ARM mode. - MIPS: 64-bit and interpreter inlining by default. - Trivial implementation of stubs for MIPS. -* Shark +* Zero/Shark - PR689: Shark fails to find LLVM 2.9 System headers during build. + - Removal of the ARM assembler port and Thumb2 JIT. New in release 1.10 (2011-XX-XX): From ahughes at redhat.com Mon Jul 11 14:47:45 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Mon, 11 Jul 2011 22:47:45 +0100 Subject: [PATCH REVIEW] [1.8, 1.9 & 1.10] Fix broken jaxws getdtdtype patch Message-ID: <20110711214745.GH5877@rivendell.middle-earth.co.uk> There is a bootstrap patch applied for certain old versions of gcj which was broken by the recent security updates. The attached patches update 1.8, 1.9 & 1.10 so they still build if this patch is applied. This fixes PR744. Ok for 1.8, 1.9 & 1.10? 2011-07-11 Andrew John Hughes PR744: Patching error * NEWS: Updated. * patches/ecj/icedtea-jaxws-getdtdtype.patch: Update patch to apply after security patch. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 -------------- next part -------------- diff -r 208ad2bea295 NEWS --- a/NEWS Wed Jun 08 17:59:56 2011 +0100 +++ b/NEWS Mon Jul 11 22:00:37 2011 +0100 @@ -10,6 +10,9 @@ New in release 1.8.9 (20XX-XX-XX): +* Bug fixes + - PR744: icedtea6-1.10.2 : patching error + New in release 1.8.8 (2011-06-07): * Security fixes diff -r 208ad2bea295 patches/ecj/icedtea-jaxws-getdtdtype.patch --- a/patches/ecj/icedtea-jaxws-getdtdtype.patch Wed Jun 08 17:59:56 2011 +0100 +++ b/patches/ecj/icedtea-jaxws-getdtdtype.patch Mon Jul 11 22:00:37 2011 +0100 @@ -1,18 +1,18 @@ diff -Nru openjdk-ecj.orig/jaxws/build.properties openjdk-ecj/jaxws/build.properties ---- openjdk-ecj.orig/jaxws/build.properties 2010-03-01 15:13:38.000000000 +0000 -+++ openjdk-ecj/jaxws/build.properties 2010-03-01 15:14:30.000000000 +0000 -@@ -81,7 +81,7 @@ +--- openjdk-ecj.orig/jaxws/build.properties 2011-07-11 21:56:16.000000000 +0100 ++++ openjdk-ecj/jaxws/build.properties 2011-07-11 21:58:15.168357598 +0100 +@@ -78,7 +78,7 @@ patches.dir=patches # Patches to apply --jaxws_src.patch.list=xjc.patch -+jaxws_src.patch.list=xjc.patch getdtdtype.patch +-jaxws_src.patch.list=7013971.patch xjc.patch ++jaxws_src.patch.list=7013971.patch xjc.patch getdtdtype.patch # Sanity information sanity.info= Sanity Settings:${line.separator}\ diff -Nru openjdk-ecj.orig/jaxws/patches/jaxws_src/getdtdtype.patch openjdk-ecj/jaxws/patches/jaxws_src/getdtdtype.patch --- openjdk-ecj.orig/jaxws/patches/jaxws_src/getdtdtype.patch 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk-ecj/jaxws/patches/jaxws_src/getdtdtype.patch 2010-03-01 15:15:10.000000000 +0000 ++++ openjdk-ecj/jaxws/patches/jaxws_src/getdtdtype.patch 2011-07-11 21:57:55.656033418 +0100 @@ -0,0 +1,27 @@ +--- src/com/sun/xml/internal/bind/v2/runtime/unmarshaller/StAXEventConnector.java 2009-11-17 16:37:06.000000000 +0000 ++++ src/com/sun/xml/internal/bind/v2/runtime/unmarshaller/StAXEventConnector.java 2009-11-17 16:38:00.000000000 +0000 -------------- next part -------------- diff -r 1c554e7ce79e NEWS --- a/NEWS Sat Jul 09 16:58:17 2011 +0200 +++ b/NEWS Mon Jul 11 22:44:28 2011 +0100 @@ -10,6 +10,8 @@ New in release 1.9.9 (20XX-XX-XX): +* Bug Fixes + - PR744: icedtea6-1.10.2 : patching error * Shark - PR632: patches/security/20110215/6878713.patch breaks shark zero build diff -r 1c554e7ce79e patches/ecj/icedtea-jaxws-getdtdtype.patch --- a/patches/ecj/icedtea-jaxws-getdtdtype.patch Sat Jul 09 16:58:17 2011 +0200 +++ b/patches/ecj/icedtea-jaxws-getdtdtype.patch Mon Jul 11 22:44:28 2011 +0100 @@ -5,8 +5,8 @@ patches.dir=patches # Patches to apply --jaxws_src.patch.list=xjc.patch -+jaxws_src.patch.list=xjc.patch getdtdtype.patch +-jaxws_src.patch.list=7013971.patch xjc.patch ++jaxws_src.patch.list=7013971.patch xjc.patch getdtdtype.patch # Sanity information sanity.info= Sanity Settings:${line.separator}\ -------------- next part -------------- diff -r 6c21fc007867 NEWS --- a/NEWS Wed Jun 29 18:16:57 2011 +0100 +++ b/NEWS Mon Jul 11 22:44:14 2011 +0100 @@ -13,6 +13,7 @@ * Bug fixes - PR748: Icedtea6 fails to build with Linux 3.0. + - PR744: icedtea6-1.10.2 : patching error * Backports: - S7037283, RH712211: Null Pointer Exception in SwingUtilities2. - S6769607, PR677: Modal frame hangs for a while. diff -r 6c21fc007867 patches/ecj/jaxws-getdtdtype.patch --- a/patches/ecj/jaxws-getdtdtype.patch Wed Jun 29 18:16:57 2011 +0100 +++ b/patches/ecj/jaxws-getdtdtype.patch Mon Jul 11 22:44:14 2011 +0100 @@ -5,8 +5,8 @@ patches.dir=patches # Patches to apply --jaxws_src.patch.list=xjc.patch -+jaxws_src.patch.list=xjc.patch getdtdtype.patch +-jaxws_src.patch.list=7013971.patch xjc.patch ++jaxws_src.patch.list=7013971.patch xjc.patch getdtdtype.patch # Sanity information sanity.info= Sanity Settings:${line.separator}\ From dbhole at redhat.com Mon Jul 11 14:56:49 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 11 Jul 2011 17:56:49 -0400 Subject: [PATCH REVIEW] [1.10] RFC: Make tests for java/javah/jar/native2ascii/rmic more stringent In-Reply-To: <20110708152104.GF13502@shelob.middle-earth.co.uk> References: <20110708152104.GF13502@shelob.middle-earth.co.uk> Message-ID: <20110711215648.GC8130@redhat.com> * Andrew John Hughes [2011-07-08 11:22]: > I don't usually like making build changes on release branches, but > I think this one is minor and useful enough to be worthy of consideration. > > It checks that the values given for --with-java/jar/rmic/native2ascii/javah > are files as well as being executables, preventing directories being allowed > through and causing issues later (e.g. broken configure test results when > ${JAVA} is used to run tests). > > Ok for 1.10? > Looks good to me, okay for 1.10. I will look into it for icedtea-web, thanks! Cheers, Deepak > I think 1.8 & 1.9 will require other changes too, so just 1.10 for this one. > > IcedTea-Web folks, you might want to consider porting this one (or rather, > the relevant chunks) over too. > > ChangeLog: > > Check that JDK binaries are files in addition to being executable. > > 2011-06-29 Andrew John Hughes > > * acinclude.m4: > (IT_FIND_JAVA): Check that the binary is also > a regular file as well as executable. > (IT_FIND_JAVAH): Likewise. > (IT_FIND_JAR): Likewise. > (IT_FIND_RMIC): Likewise. > (IT_FIND_NATIVE2ASCII): Likewise. > > -- > Andrew :) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > Support Free Java! > Contribute to GNU Classpath and IcedTea > http://www.gnu.org/software/classpath > http://icedtea.classpath.org > PGP Key: F5862A37 (https://keys.indymedia.org/) > Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 > # HG changeset patch > # User Andrew John Hughes > # Date 1309367817 -3600 > # Node ID 6c21fc007867e718636767a2cbe1df8c02307958 > # Parent 15caf12fc26df836a387036ff70eec6875db9f9d > Check that JDK binaries are files in addition to being executable. > > 2011-06-29 Andrew John Hughes > > * acinclude.m4: > (IT_FIND_JAVA): Check that the binary is also > a regular file as well as executable. > (IT_FIND_JAVAH): Likewise. > (IT_FIND_JAR): Likewise. > (IT_FIND_RMIC): Likewise. > (IT_FIND_NATIVE2ASCII): Likewise. > > diff -r 15caf12fc26d -r 6c21fc007867 ChangeLog > --- a/ChangeLog Fri Jul 08 16:13:57 2011 +0100 > +++ b/ChangeLog Wed Jun 29 18:16:57 2011 +0100 > @@ -1,3 +1,13 @@ > +2011-06-29 Andrew John Hughes > + > + * acinclude.m4: > + (IT_FIND_JAVA): Check that the binary is also > + a regular file as well as executable. > + (IT_FIND_JAVAH): Likewise. > + (IT_FIND_JAR): Likewise. > + (IT_FIND_RMIC): Likewise. > + (IT_FIND_NATIVE2ASCII): Likewise. > + > 2011-06-28 Andrew John Hughes > > * Makefile.am: Add new patch. > diff -r 15caf12fc26d -r 6c21fc007867 acinclude.m4 > --- a/acinclude.m4 Fri Jul 08 16:13:57 2011 +0100 > +++ b/acinclude.m4 Wed Jun 29 18:16:57 2011 +0100 > @@ -238,8 +238,8 @@ > if test "x${JAVA}" = "xno"; then > JAVA=${JAVA_DEFAULT} > fi > - AC_MSG_CHECKING([if $JAVA is a valid executable]) > - if test -x "${JAVA}"; then > + AC_MSG_CHECKING([if $JAVA is a valid executable file]) > + if test -x "${JAVA}" && test -f "${JAVA}"; then > AC_MSG_RESULT([yes]) > else > AC_MSG_RESULT([no]) > @@ -391,8 +391,8 @@ > if test "x${JAVAH}" = "xno"; then > JAVAH=${JAVAH_DEFAULT} > fi > - AC_MSG_CHECKING([if $JAVAH is a valid executable]) > - if test -x "${JAVAH}"; then > + AC_MSG_CHECKING([if $JAVAH is a valid executable file]) > + if test -x "${JAVAH}" && test -f "${JAVAH}"; then > AC_MSG_RESULT([yes]) > else > AC_MSG_RESULT([no]) > @@ -428,8 +428,8 @@ > if test "x${JAR}" = "xno"; then > JAR=${JAR_DEFAULT} > fi > - AC_MSG_CHECKING([if $JAR is a valid executable]) > - if test -x "${JAR}"; then > + AC_MSG_CHECKING([if $JAR is a valid executable file]) > + if test -x "${JAR}" && test -f "${JAR}"; then > AC_MSG_RESULT([yes]) > else > AC_MSG_RESULT([no]) > @@ -498,8 +498,8 @@ > if test "x${RMIC}" = "xno"; then > RMIC=${RMIC_DEFAULT} > fi > - AC_MSG_CHECKING([if $RMIC is a valid executable]) > - if test -x "${RMIC}"; then > + AC_MSG_CHECKING([if $RMIC is a valid executable file]) > + if test -x "${RMIC}" && test -f "${RMIC}"; then > AC_MSG_RESULT([yes]) > else > AC_MSG_RESULT([no]) > @@ -535,8 +535,8 @@ > if test "x${NATIVE2ASCII}" = "xno"; then > NATIVE2ASCII=${NATIVE2ASCII_DEFAULT} > fi > - AC_MSG_CHECKING([if $NATIVE2ASCII is a valid executable]) > - if test -x "${NATIVE2ASCII}"; then > + AC_MSG_CHECKING([if $NATIVE2ASCII is a valid executable file]) > + if test -x "${NATIVE2ASCII}" && test -f "${NATIVE2ASCII}"; then > AC_MSG_RESULT([yes]) > else > AC_MSG_RESULT([no]) From andrew at icedtea.classpath.org Mon Jul 11 15:02:32 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 11 Jul 2011 22:02:32 +0000 Subject: /hg/icedtea6: 2 new changesets Message-ID: changeset 97402362be7d in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=97402362be7d author: Andrew John Hughes date: Mon Jul 11 22:52:13 2011 +0100 List ARM removal in a more prominent location. 2011-07-11 Andrew John Hughes * NEWS: Place ARM removal in a more prominent location. changeset 802bc279de76 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=802bc279de76 author: Andrew John Hughes date: Mon Jul 11 23:02:26 2011 +0100 Sync NEWS file with other branches. 2011-07-11 Andrew John Hughes * NEWS: Import 1.10.2, 1.9.8, 1.8.8 and 1.10.1 release announcements. Sync 1.10 announcement with final version. Remove items from the 1.11 list that have been released in 1.10.1 & 1.10.2. diffstat: ChangeLog | 13 ++++++ NEWS | 116 +++++++++++++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 105 insertions(+), 24 deletions(-) diffs (207 lines): diff -r ad05410af28a -r 802bc279de76 ChangeLog --- a/ChangeLog Mon Jul 11 23:31:50 2011 +0200 +++ b/ChangeLog Mon Jul 11 23:02:26 2011 +0100 @@ -1,3 +1,16 @@ +2011-07-11 Andrew John Hughes + + * NEWS: Import 1.10.2, 1.9.8, 1.8.8 and + 1.10.1 release announcements. Sync 1.10 + announcement with final version. Remove + items from the 1.11 list that have been + released in 1.10.1 & 1.10.2. + +2011-07-11 Andrew John Hughes + + * NEWS: Place ARM removal in a more + prominent location. + 2011-07-11 Xerxes R??nby * NEWS: Updated. diff -r ad05410af28a -r 802bc279de76 NEWS --- a/NEWS Mon Jul 11 23:31:50 2011 +0200 +++ b/NEWS Mon Jul 11 23:02:26 2011 +0100 @@ -12,12 +12,10 @@ New in release 1.11 (2011-XX-XX): * Use HotSpot 20 as the default virtual machine. +* ARM assembler port and Thumb2 JIT removed (broken and unmaintained). * Backports - - S7023591, S7027667: Clipped antialiased rectangles are filled, not drawn. - S7019861: Last scanline skpped when doing AA. - S6768387, PR670: REGRESSION: JTable no longer serializable - - Add missing privileged block around access to the sun.awt.nativedebug property. - - S7032388, PR682: Make HotSpot work on machines without cmov instruction again - S6748082: remove platform-specific code from SwingUtilities2.isDisplayLocal - S6708580: Java applications slow when EXA enabled - S7029905: demo applets missing some html files @@ -27,9 +25,6 @@ - S7018387: Xrender pipeline may leak GC's - S7036754: Stroked quads sometimes contain NaN - S7042040: Remove disk space sanity check - - S7043054: REGRESSION - wrong userBounds in Paint.createContext() - - S7043963, RH698295: Window manager workaround in AWT was not applied to mutter. Now it is. - - S4685768: Focus set to disabled component, can't Tab/Shift-Tab - S6769607, PR677: Modal frame hangs for a while. - S6578583: Modality is broken in windows vista home premium from jdk1.7 b02 onwards. - S6610244: modal dialog closes with fatal error if -Xcheck:jni is set @@ -49,25 +44,16 @@ - S6842838: 64-bit failure in handling invalid manifest in launcher. - S6882768: Test for 6842838 is broken - S6711682: JCheckBox in JTable: checkbox doesn't always respond to the first mouse click + - S7016856: fix dashing performance regression. Improve other rendering performance. + - S6934977: MappedByteBuffer.load crashes with SIGBUS. * Bug fixes - PR637: make check should exit with an error code if any regression test failed. - - G356743: Support libpng 1.5. - - S7031385, PR680: Incorrect register allocation in orderAccess_linux_x86.inline.hpp - PR748: Icedtea6 fails to build with Linux 3.0. - PR744: icedtea6-1.10.2 : patching error - PR752: ImageFormatException extends Exception not RuntimeException * Allow selection of test suites using the jtreg_checks argument e.g. jtreg_checks="langtools" * CACAO - Threadlist & threadobject improvements. - - Ignore all unknown options, but report them. - - Fixes build for newer gcc (at least 4.4) on PPC64, breaks older gcc. - - CA123: LD_LIBRARY_PATH and java.library.path. - - CA143: don't hang with invalid locale. - - CA144: aligned patchers on x86_64. - - CA148: support for LCMP bytecode. - - CA152: Calling Policy.setPolicy with a new Policy object has no effect on the DefaultSecurityManager. - - CA156: uncaughtExceptionHandler doesn't work with OpenJDK 6 b21. - - CA157: ARM SMP Assertion thinlock failed. * JamVM - Make classlib init functions consistent + warnings. - Correctly implement sun.misc.Unsafe freeMemory(). @@ -88,6 +74,92 @@ - Add extra includes to get rid off compiler warning. - Rework OpenJDK storage of native thread structure. - Implement remaining OpenJDK Array reflection interface. + +New in release 1.10.2 (2011-06-07): + +* Security fixes + - S6213702, CVE-2011-0872: (so) non-blocking sockets with TCP urgent disabled get still selected for read ops (win) + - S6618658, CVE-2011-0865: Vulnerability in deserialization + - S7012520, CVE-2011-0815: Heap overflow vulnerability in FileDialog.show() + - S7013519, CVE-2011-0822, CVE-2011-0862: Integer overflows in 2D code + - S7013969, CVE-2011-0867: NetworkInterface.toString can reveal bindings + - S7013971, CVE-2011-0869: Vulnerability in SAAJ + - S7016340, CVE-2011-0870: Vulnerability in SAAJ + - S7016495, CVE-2011-0868: Crash in Java 2D transforming an image with scale close to zero + - S7020198, CVE-2011-0871: ImageIcon creates Component with null acc + - S7020373, CVE-2011-0864: JSR rewriting can overflow memory address size variables +* Backports + - S7043054: REGRESSION - wrong userBounds in Paint.createContext() + - S7043963, RH698295: Window manager workaround in AWT was not applied to mutter. Now it is. +* Shark + - PR689: Shark fails to find LLVM 2.9 System headers during build. + +New in release 1.9.8 (2011-06-07): + +* Security fixes + - S6213702, CVE-2011-0872: (so) non-blocking sockets with TCP urgent disabled get still selected for read ops (win) + - S6618658, CVE-2011-0865: Vulnerability in deserialization + - S7012520, CVE-2011-0815: Heap overflow vulnerability in FileDialog.show() + - S7013519, CVE-2011-0822, CVE-2011-0862: Integer overflows in 2D code + - S7013969, CVE-2011-0867: NetworkInterface.toString can reveal bindings + - S7013971, CVE-2011-0869: Vulnerability in SAAJ + - S7016340, CVE-2011-0870: Vulnerability in SAAJ + - S7016495, CVE-2011-0868: Crash in Java 2D transforming an image with scale close to zero + - S7020198, CVE-2011-0871: ImageIcon creates Component with null acc + - S7020373, CVE-2011-0864: JSR rewriting can overflow memory address size variables +* Backports + - S6675802: Regression: heavyweight popups cause SecurityExceptions in applets + - S6691503: Malicious applet can show always-on-top popup menu which has whole screen size + - S6980392, PR642: simple correction in testcase, added missing bracket + - Fixed AccessControlContext which was thrown while working with Color class in a PropertyEditor +* Plugin + - PR542: Plugin fails with NPE on http://www.openprocessing.org/visuals/iframe.php?visualID=2615 +* Shark + - PR689: Shark fails to find LLVM 2.9 System headers during build + +New in release 1.8.8 (2011-06-07): + +* Security fixes + - S6213702, CVE-2011-0872: (so) non-blocking sockets with TCP urgent disabled get still selected for read ops (win) + - S6618658, CVE-2011-0865: Vulnerability in deserialization + - S7012520, CVE-2011-0815: Heap overflow vulnerability in FileDialog.show() + - S7013519, CVE-2011-0822, CVE-2011-0862: Integer overflows in 2D code + - S7013969, CVE-2011-0867: NetworkInterface.toString can reveal bindings + - S7013971, CVE-2011-0869: Vulnerability in SAAJ + - S7016340, CVE-2011-0870: Vulnerability in SAAJ + - S7016495, CVE-2011-0868: Crash in Java 2D transforming an image with scale close to zero + - S7020198, CVE-2011-0871: ImageIcon creates Component with null acc + - S7020373, CVE-2011-0864: JSR rewriting can overflow memory address size variables +* Backports + - S6675802: Regression: heavyweight popups cause SecurityExceptions in applets + - S6691503: Malicious applet can show always-on-top popup menu which has whole screen size + - PR632: patches/security/20110215/6878713.patch breaks shark zero build + - Fixed AccessControlContext which was thrown while working with Color class in a PropertyEditor +* Plugin + - PR542: Plugin fails with NPE on http://www.openprocessing.org/visuals/iframe.php?visualID=2615 + +New in release 1.10.1 (2011-04-04): + +* HotSpot 20 updated to b11. +* Backports + - S7023591, S7027667: Clipped antialiased rectangles are filled, not drawn. + - Add missing privileged block around access to the sun.awt.nativedebug property. + - S7032388, PR682: Make HotSpot work on machines without cmov instruction again + - S7031385, PR680: Incorrect register allocation in orderAccess_linux_x86.inline.hpp + - S4685768: Focus set to disabled component, can't Tab/Shift-Tab +* Fixes + - G356743: Support libpng 1.5. +* CACAO + - Ignore all unknown options, but report them. + - Fixes build for newer gcc (at least 4.4) on PPC64, breaks older gcc. + - CA123: LD_LIBRARY_PATH and java.library.path. + - CA143: don't hang with invalid locale. + - CA144: aligned patchers on x86_64. + - CA148: support for LCMP bytecode. + - CA152: Calling Policy.setPolicy with a new Policy object has no effect on the DefaultSecurityManager. + - CA156: uncaughtExceptionHandler doesn't work with OpenJDK 6 b21. + - CA157: ARM SMP Assertion thinlock failed. +* JamVM - Handle overflow in getPhysicalMemory(). - Base default min and max heap size on physical memory. - Fix reflective array access. @@ -99,11 +171,8 @@ - On ARM, force interpreter to be built in ARM mode. - MIPS: 64-bit and interpreter inlining by default. - Trivial implementation of stubs for MIPS. -* Zero/Shark - - PR689: Shark fails to find LLVM 2.9 System headers during build. - - Removal of the ARM assembler port and Thumb2 JIT. -New in release 1.10 (2011-XX-XX): +New in release 1.10 (2011-03-02): * NetX and the plugin moved to the IcedTea-Web project with a separate release cycle. @@ -416,7 +485,7 @@ - S6633613: (str) StringCoding optimizations to avoid unnecessary array copies with Charset arg - S6675802: Regression: heavyweight popups cause SecurityExceptions in applets - S6691503: Malicious applet can show always-on-top popup menu which has whole screen size - - S6632959: swing html parser doesn't know € or › + - S6632959, PR291: swing html parser doesn't know € or › - S6721088: Bad window size calculation after using pack() - S6949710: 3/3 the GC'able nature of Logging objects needs to be made brutally clear - S6623943: javax.swing.TimerQueue's thread occasionally fails to start @@ -524,8 +593,6 @@ - S6444769: java/awt/Insets/WindowWithWarningTest/WindowWithWarningTest.html fails - S6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines - S6766342: Improve performance of Ductus rasterizer - - S7016856: fix dashing performance regression. Improve other rendering performance. - - S6934977: MappedByteBuffer.load crashes with SIGBUS. * Bug fixes - RH661505: JPEGs with sRGB IEC61966-2.1 color profiles have wrong colors - PR600: HS19 upgrade broke CACAO build on ARM @@ -539,6 +606,7 @@ - PR640: JamVM fails to build - Unrecognised option: -XX:ThreadStackSize. - PR641: Increase stack size for PPC - PR497: Mercurial revision detection not very reliable + - PR585: Freenet throws java.lang.UnsatisfiedLinkError with OpenJDK/CACAO * Cleanup - Patches are no longer prefixed with 'icedtea-'. - All m4 macros are now prefixed with 'IT_' to denote their origin correctly. From dbhole at redhat.com Mon Jul 11 15:03:25 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 11 Jul 2011 18:03:25 -0400 Subject: [PATCH REVIEW] [1.8, 1.9 & 1.10] Fix broken jaxws getdtdtype patch In-Reply-To: <20110711214745.GH5877@rivendell.middle-earth.co.uk> References: <20110711214745.GH5877@rivendell.middle-earth.co.uk> Message-ID: <20110711220324.GD8130@redhat.com> * Dr Andrew John Hughes [2011-07-11 17:56]: > There is a bootstrap patch applied for certain old versions of gcj which was broken > by the recent security updates. The attached patches update 1.8, 1.9 & 1.10 so they > still build if this patch is applied. > > This fixes PR744. > > Ok for 1.8, 1.9 & 1.10? > Looks fine to me, okay for branches. Cheers, Deepak > 2011-07-11 Andrew John Hughes > > PR744: Patching error > * NEWS: Updated. > * patches/ecj/icedtea-jaxws-getdtdtype.patch: > Update patch to apply after security patch. > -- > Andrew :) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > Support Free Java! > Contribute to GNU Classpath and IcedTea > http://www.gnu.org/software/classpath > http://icedtea.classpath.org > PGP Key: F5862A37 (https://keys.indymedia.org/) > Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 > diff -r 208ad2bea295 NEWS > --- a/NEWS Wed Jun 08 17:59:56 2011 +0100 > +++ b/NEWS Mon Jul 11 22:00:37 2011 +0100 > @@ -10,6 +10,9 @@ > > New in release 1.8.9 (20XX-XX-XX): > > +* Bug fixes > + - PR744: icedtea6-1.10.2 : patching error > + > New in release 1.8.8 (2011-06-07): > > * Security fixes > diff -r 208ad2bea295 patches/ecj/icedtea-jaxws-getdtdtype.patch > --- a/patches/ecj/icedtea-jaxws-getdtdtype.patch Wed Jun 08 17:59:56 2011 +0100 > +++ b/patches/ecj/icedtea-jaxws-getdtdtype.patch Mon Jul 11 22:00:37 2011 +0100 > @@ -1,18 +1,18 @@ > diff -Nru openjdk-ecj.orig/jaxws/build.properties openjdk-ecj/jaxws/build.properties > ---- openjdk-ecj.orig/jaxws/build.properties 2010-03-01 15:13:38.000000000 +0000 > -+++ openjdk-ecj/jaxws/build.properties 2010-03-01 15:14:30.000000000 +0000 > -@@ -81,7 +81,7 @@ > +--- openjdk-ecj.orig/jaxws/build.properties 2011-07-11 21:56:16.000000000 +0100 > ++++ openjdk-ecj/jaxws/build.properties 2011-07-11 21:58:15.168357598 +0100 > +@@ -78,7 +78,7 @@ > patches.dir=patches > > # Patches to apply > --jaxws_src.patch.list=xjc.patch > -+jaxws_src.patch.list=xjc.patch getdtdtype.patch > +-jaxws_src.patch.list=7013971.patch xjc.patch > ++jaxws_src.patch.list=7013971.patch xjc.patch getdtdtype.patch > > # Sanity information > sanity.info= Sanity Settings:${line.separator}\ > diff -Nru openjdk-ecj.orig/jaxws/patches/jaxws_src/getdtdtype.patch openjdk-ecj/jaxws/patches/jaxws_src/getdtdtype.patch > --- openjdk-ecj.orig/jaxws/patches/jaxws_src/getdtdtype.patch 1970-01-01 01:00:00.000000000 +0100 > -+++ openjdk-ecj/jaxws/patches/jaxws_src/getdtdtype.patch 2010-03-01 15:15:10.000000000 +0000 > ++++ openjdk-ecj/jaxws/patches/jaxws_src/getdtdtype.patch 2011-07-11 21:57:55.656033418 +0100 > @@ -0,0 +1,27 @@ > +--- src/com/sun/xml/internal/bind/v2/runtime/unmarshaller/StAXEventConnector.java 2009-11-17 16:37:06.000000000 +0000 > ++++ src/com/sun/xml/internal/bind/v2/runtime/unmarshaller/StAXEventConnector.java 2009-11-17 16:38:00.000000000 +0000 > diff -r 1c554e7ce79e NEWS > --- a/NEWS Sat Jul 09 16:58:17 2011 +0200 > +++ b/NEWS Mon Jul 11 22:44:28 2011 +0100 > @@ -10,6 +10,8 @@ > > New in release 1.9.9 (20XX-XX-XX): > > +* Bug Fixes > + - PR744: icedtea6-1.10.2 : patching error > * Shark > - PR632: patches/security/20110215/6878713.patch breaks shark zero build > > diff -r 1c554e7ce79e patches/ecj/icedtea-jaxws-getdtdtype.patch > --- a/patches/ecj/icedtea-jaxws-getdtdtype.patch Sat Jul 09 16:58:17 2011 +0200 > +++ b/patches/ecj/icedtea-jaxws-getdtdtype.patch Mon Jul 11 22:44:28 2011 +0100 > @@ -5,8 +5,8 @@ > patches.dir=patches > > # Patches to apply > --jaxws_src.patch.list=xjc.patch > -+jaxws_src.patch.list=xjc.patch getdtdtype.patch > +-jaxws_src.patch.list=7013971.patch xjc.patch > ++jaxws_src.patch.list=7013971.patch xjc.patch getdtdtype.patch > > # Sanity information > sanity.info= Sanity Settings:${line.separator}\ > diff -r 6c21fc007867 NEWS > --- a/NEWS Wed Jun 29 18:16:57 2011 +0100 > +++ b/NEWS Mon Jul 11 22:44:14 2011 +0100 > @@ -13,6 +13,7 @@ > > * Bug fixes > - PR748: Icedtea6 fails to build with Linux 3.0. > + - PR744: icedtea6-1.10.2 : patching error > * Backports: > - S7037283, RH712211: Null Pointer Exception in SwingUtilities2. > - S6769607, PR677: Modal frame hangs for a while. > diff -r 6c21fc007867 patches/ecj/jaxws-getdtdtype.patch > --- a/patches/ecj/jaxws-getdtdtype.patch Wed Jun 29 18:16:57 2011 +0100 > +++ b/patches/ecj/jaxws-getdtdtype.patch Mon Jul 11 22:44:14 2011 +0100 > @@ -5,8 +5,8 @@ > patches.dir=patches > > # Patches to apply > --jaxws_src.patch.list=xjc.patch > -+jaxws_src.patch.list=xjc.patch getdtdtype.patch > +-jaxws_src.patch.list=7013971.patch xjc.patch > ++jaxws_src.patch.list=7013971.patch xjc.patch getdtdtype.patch > > # Sanity information > sanity.info= Sanity Settings:${line.separator}\ From andrew at icedtea.classpath.org Mon Jul 11 15:04:20 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 11 Jul 2011 22:04:20 +0000 Subject: /hg/release/icedtea6-1.10: 3 new changesets Message-ID: changeset 28c6f2df4627 in /hg/release/icedtea6-1.10 details: http://icedtea.classpath.org/hg/release/icedtea6-1.10?cmd=changeset;node=28c6f2df4627 author: Andrew John Hughes date: Thu Jul 07 22:01:17 2011 +0100 Allow Linux 3* to pass through the HotSpot OS version filter. 2011-06-28 Andrew John Hughes * Makefile.am: Add new patch. * patches/support_linux_3.patch: Allow Linux 3* through the HotSpot OS version filter. * NEWS: Updated. changeset 15caf12fc26d in /hg/release/icedtea6-1.10 details: http://icedtea.classpath.org/hg/release/icedtea6-1.10?cmd=changeset;node=15caf12fc26d author: Andrew John Hughes date: Fri Jul 08 16:13:57 2011 +0100 Merge changeset 6c21fc007867 in /hg/release/icedtea6-1.10 details: http://icedtea.classpath.org/hg/release/icedtea6-1.10?cmd=changeset;node=6c21fc007867 author: Andrew John Hughes date: Wed Jun 29 18:16:57 2011 +0100 Check that JDK binaries are files in addition to being executable. 2011-06-29 Andrew John Hughes * acinclude.m4: (IT_FIND_JAVA): Check that the binary is also a regular file as well as executable. (IT_FIND_JAVAH): Likewise. (IT_FIND_JAR): Likewise. (IT_FIND_RMIC): Likewise. (IT_FIND_NATIVE2ASCII): Likewise. diffstat: ChangeLog | 62 + Makefile.am | 9 +- NEWS | 8 + acinclude.m4 | 20 +- patches/f14-fonts.patch | 2 +- patches/fonts-gentoo.patch | 4 +- patches/fonts-rhel-version.patch | 32 + patches/fonts-rhel.patch | 3 +- patches/jtreg-bug7036148-test.patch | 23 + patches/openjdk/6578583-modality-broken-vista.patch | 1439 +++++++++++++++ patches/openjdk/6610244-modal-fatal-error-windows.patch | 121 + patches/openjdk/6693253-security_warning.patch | 25 +- patches/openjdk/6769607-modal-hangs.patch | 161 + patches/openjdk/7036148-npe-null-jmenu-name.patch | 83 + patches/support_linux_3.patch | 18 + 15 files changed, 1981 insertions(+), 29 deletions(-) diffs (truncated from 2181 to 500 lines): diff -r a95c47b36218 -r 6c21fc007867 ChangeLog --- a/ChangeLog Wed Jun 08 18:16:37 2011 +0100 +++ b/ChangeLog Wed Jun 29 18:16:57 2011 +0100 @@ -1,3 +1,65 @@ +2011-06-29 Andrew John Hughes + + * acinclude.m4: + (IT_FIND_JAVA): Check that the binary is also + a regular file as well as executable. + (IT_FIND_JAVAH): Likewise. + (IT_FIND_JAR): Likewise. + (IT_FIND_RMIC): Likewise. + (IT_FIND_NATIVE2ASCII): Likewise. + +2011-06-28 Andrew John Hughes + + * Makefile.am: Add new patch. + * patches/support_linux_3.patch: + Allow Linux 3* through the HotSpot OS version + filter. + * NEWS: Updated. + +2011-06-20 Denis Lila + + * Makefile.am: Add patch. + * patches/jtreg-bug7036148-test.patch: + Fix regression test. It used to never end, regardless of + success/failure. + +2011-06-15 Denis Lila + + * Makefile.am: Apply patches. + * NEWS: Update with backports. + * patches/openjdk/6578583-modality-broken-vista.patch: + * patches/openjdk/6610244-modal-fatal-error-windows.patch: + * patches/openjdk/6769607-modal-hangs.patch: + New patches. The last fixes PR677. The other two are + necessary for the last to fully apply. + * patches/openjdk/6693253-security_warning.patch: + Replsace the awt_Dialog.cpp hunk with the corresponding hunk + from the OpenJDK7 changeset of which this patch is a backport. + Without this change, this patch doesn't apply unless the + previous 3 are removed. + +2011-06-14 Denis Lila + + * Makefile.am: Add patch. + * NEWS: Update with backports. + * patches/openjdk/7036148-npe-null-jmenu-name.patch: + Backport of S7036148. Fixes RH712211 too. + +2011-06-10 Pavel Tisnovsky + + * patches/font-rhel.patch: + * patches/f14-fonts.patch: + * patches/fonts-gentoo.patch: + Patch updated: use only major RHEL version, not minor one. + +2011-06-10 Pavel Tisnovsky + + * Makefile.am: Added new patch + * patches/fonts-rhel-version.patch: + Patch which ensures, that only one fontconfig file + will be needed on particular RHEL version + (ie. only one file for RHEL 6.0, RHEL 6.1 and RHEL 6.2) + 2011-06-08 Andrew John Hughes * NEWS: Add 1.10.3. diff -r a95c47b36218 -r 6c21fc007867 Makefile.am --- a/Makefile.am Wed Jun 08 18:16:37 2011 +0100 +++ b/Makefile.am Wed Jun 29 18:16:57 2011 +0100 @@ -203,6 +203,8 @@ ICEDTEA_PATCHES = \ $(SECURITY_PATCHES) \ + patches/openjdk/6578583-modality-broken-vista.patch \ + patches/openjdk/6610244-modal-fatal-error-windows.patch \ patches/stdc-limit-macros.patch \ patches/openjdk/4993545-nativeinlightfixer.patch \ patches/openjdk/6637796-set_bounds.patch \ @@ -214,6 +216,7 @@ patches/openjdk/6797195-hw_lw_mixing.patch \ patches/openjdk/6725214-direct3d-01.patch \ patches/openjdk/6633275-shaped_translucent_windows.patch \ + patches/openjdk/6769607-modal-hangs.patch \ patches/openjdk/6791612-opengl-jni-fix.patch \ patches/openjdk/6755274-glgetstring-crash.patch \ patches/openjdk/6984543-onscreen_rendering_resize_test.patch \ @@ -341,7 +344,11 @@ patches/openjdk/7031385-gcc-register-allocation-fix.patch \ patches/shark-llvm-2.9.patch \ patches/openjdk/pgram-pipe-regression.patch \ - patches/openjdk/mutter.patch + patches/openjdk/mutter.patch \ + patches/fonts-rhel-version.patch \ + patches/openjdk/7036148-npe-null-jmenu-name.patch \ + patches/jtreg-bug7036148-test.patch \ + patches/support_linux_3.patch if WITH_ALT_HSBUILD ICEDTEA_PATCHES += \ diff -r a95c47b36218 -r 6c21fc007867 NEWS --- a/NEWS Wed Jun 08 18:16:37 2011 +0100 +++ b/NEWS Wed Jun 29 18:16:57 2011 +0100 @@ -11,6 +11,14 @@ New in release 1.10.3 (20XX-XX-XX): +* Bug fixes + - PR748: Icedtea6 fails to build with Linux 3.0. +* Backports: + - S7037283, RH712211: Null Pointer Exception in SwingUtilities2. + - S6769607, PR677: Modal frame hangs for a while. + - S6578583: Modality is broken in windows vista home premium from jdk1.7 b02 onwards. + - S6610244: modal dialog closes with fatal error if -Xcheck:jni is set + New in release 1.10.2 (2011-06-07): * Security fixes diff -r a95c47b36218 -r 6c21fc007867 acinclude.m4 --- a/acinclude.m4 Wed Jun 08 18:16:37 2011 +0100 +++ b/acinclude.m4 Wed Jun 29 18:16:57 2011 +0100 @@ -238,8 +238,8 @@ if test "x${JAVA}" = "xno"; then JAVA=${JAVA_DEFAULT} fi - AC_MSG_CHECKING([if $JAVA is a valid executable]) - if test -x "${JAVA}"; then + AC_MSG_CHECKING([if $JAVA is a valid executable file]) + if test -x "${JAVA}" && test -f "${JAVA}"; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) @@ -391,8 +391,8 @@ if test "x${JAVAH}" = "xno"; then JAVAH=${JAVAH_DEFAULT} fi - AC_MSG_CHECKING([if $JAVAH is a valid executable]) - if test -x "${JAVAH}"; then + AC_MSG_CHECKING([if $JAVAH is a valid executable file]) + if test -x "${JAVAH}" && test -f "${JAVAH}"; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) @@ -428,8 +428,8 @@ if test "x${JAR}" = "xno"; then JAR=${JAR_DEFAULT} fi - AC_MSG_CHECKING([if $JAR is a valid executable]) - if test -x "${JAR}"; then + AC_MSG_CHECKING([if $JAR is a valid executable file]) + if test -x "${JAR}" && test -f "${JAR}"; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) @@ -498,8 +498,8 @@ if test "x${RMIC}" = "xno"; then RMIC=${RMIC_DEFAULT} fi - AC_MSG_CHECKING([if $RMIC is a valid executable]) - if test -x "${RMIC}"; then + AC_MSG_CHECKING([if $RMIC is a valid executable file]) + if test -x "${RMIC}" && test -f "${RMIC}"; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) @@ -535,8 +535,8 @@ if test "x${NATIVE2ASCII}" = "xno"; then NATIVE2ASCII=${NATIVE2ASCII_DEFAULT} fi - AC_MSG_CHECKING([if $NATIVE2ASCII is a valid executable]) - if test -x "${NATIVE2ASCII}"; then + AC_MSG_CHECKING([if $NATIVE2ASCII is a valid executable file]) + if test -x "${NATIVE2ASCII}" && test -f "${NATIVE2ASCII}"; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) diff -r a95c47b36218 -r 6c21fc007867 patches/f14-fonts.patch --- a/patches/f14-fonts.patch Wed Jun 08 18:16:37 2011 +0100 +++ b/patches/f14-fonts.patch Wed Jun 29 18:16:57 2011 +0100 @@ -8,7 +8,7 @@ + fontconfig.Fedora.10.properties \ + fontconfig.Fedora.11.properties \ + fontconfig.Fedora.12.properties \ - fontconfig.RedHat.6.0.properties \ + fontconfig.RedHat.6.properties \ fontconfig.Gentoo.properties else diff -r a95c47b36218 -r 6c21fc007867 patches/fonts-gentoo.patch --- a/patches/fonts-gentoo.patch Wed Jun 08 18:16:37 2011 +0100 +++ b/patches/fonts-gentoo.patch Wed Jun 29 18:16:57 2011 +0100 @@ -5,8 +5,8 @@ fontconfig.SuSE.properties \ fontconfig.Ubuntu.properties \ fontconfig.Fedora.properties \ -- fontconfig.RedHat.6.0.properties -+ fontconfig.RedHat.6.0.properties \ +- fontconfig.RedHat.6.properties ++ fontconfig.RedHat.6.properties \ + fontconfig.Gentoo.properties else diff -r a95c47b36218 -r 6c21fc007867 patches/fonts-rhel-version.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/fonts-rhel-version.patch Wed Jun 29 18:16:57 2011 +0100 @@ -0,0 +1,33 @@ +--- openjdk-orig/jdk/src/solaris/classes/sun/awt/motif/MFontConfiguration.java 2011-06-09 16:04:24.000000000 +0200 ++++ openjdk/jdk/src/solaris/classes/sun/awt/motif/MFontConfiguration.java 2011-06-09 16:04:24.000000000 +0200 +@@ -169,7 +169,9 @@ + osVersion = getVersionString(f); + } else if ((f = new File("/etc/redhat-release")).canRead()) { + osName = "RedHat"; +- osVersion = getVersionString(f); ++ // At this time we don't need to distinguish ++ // between RHEL 6.0 and RHEL 6.1 for example. ++ osVersion = getMajorVersionString(f); + } else if ((f = new File("/etc/turbolinux-release")).canRead()) { + osName = "Turbo"; + osVersion = getVersionString(f); +@@ -208,6 +210,19 @@ + return null; + } + ++ /** ++ * Gets the OS major version string from a Linux release-specific file. ++ */ ++ private String getMajorVersionString(File f){ ++ try { ++ Scanner sc = new Scanner(f); ++ return sc.findInLine("(\\d)+"); ++ } ++ catch (Exception e){ ++ } ++ return null; ++ } ++ + private static final String fontsDirPrefix = "$JRE_LIB_FONTS"; + + protected String mapFileName(String fileName) { diff -r a95c47b36218 -r 6c21fc007867 patches/fonts-rhel.patch --- a/patches/fonts-rhel.patch Wed Jun 08 18:16:37 2011 +0100 +++ b/patches/fonts-rhel.patch Wed Jun 29 18:16:57 2011 +0100 @@ -7,12 +7,12 @@ fontconfig.Ubuntu.properties \ - fontconfig.Fedora.properties + fontconfig.Fedora.properties \ -+ fontconfig.RedHat.6.0.properties ++ fontconfig.RedHat.6.properties else FONTCONFIGS_SRC = $(CLOSED_SRC)/solaris/classes/sun/awt/fontconfigs --- /dev/null 2010-12-20 09:26:08.850062021 +0100 -+++ openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.RedHat.6.0.properties 2010-12-22 11:21:32.606781127 +0100 ++++ openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.RedHat.6.properties 2010-12-22 11:21:32.606781127 +0100 @@ -0,0 +1,441 @@ +# +# Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. diff -r a95c47b36218 -r 6c21fc007867 patches/jtreg-bug7036148-test.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/jtreg-bug7036148-test.patch Wed Jun 29 18:16:57 2011 +0100 @@ -0,0 +1,24 @@ +diff -r e7493c32e598 test/javax/swing/JMenuItem/7036148/bug7036148.java +--- openjdk.orig/jdk/test/javax/swing/JMenuItem/7036148/bug7036148.java Wed Jun 08 10:24:10 2011 -0700 ++++ openjdk/jdk/test/javax/swing/JMenuItem/7036148/bug7036148.java Wed Jun 15 14:25:59 2011 -0400 +@@ -44,10 +44,16 @@ + menu.add(new JMenuItem("test")); + bar.add(menu); + setJMenuBar(bar); +- pack(); + } + +- public static void main(String[] args) { +- new bug7036148(); +- } ++ public static void main(String[] args) { ++ // if the bug is present, an NPE will be thrown on pack() above. ++ JFrame f = new bug7036148(); ++ ++ try { ++ f.pack(); ++ } finally { ++ f.dispose(); ++ } ++ } + } diff -r a95c47b36218 -r 6c21fc007867 patches/openjdk/6578583-modality-broken-vista.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6578583-modality-broken-vista.patch Wed Jun 29 18:16:57 2011 +0100 @@ -0,0 +1,1446 @@ +# HG changeset patch +# User dcherepanov +# Date 1205521233 -10800 +# Node ID 15ba7093f8e64e1facdfc48b8929edc6a4fbb0d3 +# Parent 92e3f57c933b45c678abcbccaa47de059dfe926a +6578583: Regression: Modality is broken in windows vista home premium from jdk1.7 b02 onwards. +Summary: WS_DISABLED style should be used to fix some modality bugs +Reviewed-by: art, son + +diff -r 92e3f57c933b -r 15ba7093f8e6 src/windows/native/sun/windows/awt_Component.cpp +--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Component.cpp Fri Mar 14 20:40:09 2008 +0300 ++++ openjdk/jdk/src/windows/native/sun/windows/awt_Component.cpp Fri Mar 14 22:00:33 2008 +0300 +@@ -5425,7 +5425,13 @@ + void AwtComponent::Enable(BOOL bEnable) + { + sm_suppressFocusAndActivation = TRUE; ++ ++ if (bEnable && IsTopLevel()) { ++ // we should not enable blocked toplevels ++ bEnable = !::IsWindow(AwtWindow::GetModalBlocker(GetHWnd())); ++ } + ::EnableWindow(GetHWnd(), bEnable); ++ + sm_suppressFocusAndActivation = FALSE; + CriticalSection::Lock l(GetLock()); + VerifyState(); +diff -r 92e3f57c933b -r 15ba7093f8e6 src/windows/native/sun/windows/awt_Dialog.cpp +--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Dialog.cpp Fri Mar 14 20:40:09 2008 +0300 ++++ openjdk/jdk/src/windows/native/sun/windows/awt_Dialog.cpp Fri Mar 14 22:00:33 2008 +0300 +@@ -273,6 +273,10 @@ + { + HWND blocker = AwtWindow::GetModalBlocker(AwtComponent::GetTopLevelParentForWindow(hWnd)); + HWND topMostBlocker = blocker; ++ HWND prevForegroundWindow = ::GetForegroundWindow(); ++ if (::IsWindow(blocker)) { ++ ::BringWindowToTop(hWnd); ++ } + while (::IsWindow(blocker)) { + topMostBlocker = blocker; + ::BringWindowToTop(blocker); +@@ -282,7 +286,7 @@ + // no beep/flash if the mouse was clicked in the taskbar menu + // or the dialog is currently inactive + if ((::WindowFromPoint(mhs->pt) == hWnd) && +- (::GetForegroundWindow() == topMostBlocker)) ++ (prevForegroundWindow == topMostBlocker)) + { + ::MessageBeep(MB_OK); + // some heuristics: 3 times x 64 milliseconds +@@ -292,6 +296,7 @@ + ::BringWindowToTop(topMostBlocker); + ::SetForegroundWindow(topMostBlocker); + } ++ return 1; + } + } + } +diff -r 92e3f57c933b -r 15ba7093f8e6 src/windows/native/sun/windows/awt_Window.cpp +--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Window.cpp Fri Mar 14 20:40:09 2008 +0300 ++++ openjdk/jdk/src/windows/native/sun/windows/awt_Window.cpp Fri Mar 14 22:00:33 2008 +0300 +@@ -180,7 +180,6 @@ + } + + ::RemoveProp(GetHWnd(), ModalBlockerProp); +- ::RemoveProp(GetHWnd(), ModalSaveWSEXProp); + + if (m_grabbedWindow == this) { + Ungrab(); +@@ -1455,20 +1454,17 @@ + if (!::IsWindow(window)) { + return; + } +- DWORD exStyle = ::GetWindowLong(window, GWL_EXSTYLE); ++ + if (::IsWindow(blocker)) { +- // save WS_EX_NOACTIVATE and WS_EX_APPWINDOW styles +- DWORD saveStyle = exStyle & (AWT_WS_EX_NOACTIVATE | WS_EX_APPWINDOW); +- ::SetProp(window, ModalSaveWSEXProp, reinterpret_cast(saveStyle)); +- ::SetWindowLong(window, GWL_EXSTYLE, (exStyle | AWT_WS_EX_NOACTIVATE) & ~WS_EX_APPWINDOW); + ::SetProp(window, ModalBlockerProp, reinterpret_cast(blocker)); ++ ::EnableWindow(window, FALSE); + } else { +- // restore WS_EX_NOACTIVATE and WS_EX_APPWINDOW styles +- DWORD saveStyle = reinterpret_cast(::GetProp(window, ModalSaveWSEXProp)); +- ::SetWindowLong(window, GWL_EXSTYLE, +- (exStyle & ~(AWT_WS_EX_NOACTIVATE | WS_EX_APPWINDOW)) | saveStyle); +- ::RemoveProp(window, ModalSaveWSEXProp); + ::RemoveProp(window, ModalBlockerProp); ++ AwtComponent *comp = AwtComponent::GetComponent(window); ++ // we don't expect to be called with non-java HWNDs ++ DASSERT(comp && comp->IsTopLevel()); ++ // we should not unblock disabled toplevels ++ ::EnableWindow(window, comp->isEnabled()); + } + } + +diff -r 92e3f57c933b -r 15ba7093f8e6 src/windows/native/sun/windows/awt_Window.h +--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Window.h Fri Mar 14 20:40:09 2008 +0300 ++++ openjdk/jdk/src/windows/native/sun/windows/awt_Window.h Fri Mar 14 22:00:33 2008 +0300 +@@ -33,7 +33,6 @@ + + // property name tagging windows disabled by modality + static LPCTSTR ModalBlockerProp = TEXT("SunAwtModalBlockerProp"); +-static LPCTSTR ModalSaveWSEXProp = TEXT("SunAwtModalSaveWSEXProp"); + static LPCTSTR ModalDialogPeerProp = TEXT("SunAwtModalDialogPeerProp"); + + #ifndef WH_MOUSE_LL +diff -r 92e3f57c933b -r 15ba7093f8e6 test/java/awt/Modal/WsDisabledStyle/CloseBlocker/CloseBlocker.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/java/awt/Modal/WsDisabledStyle/CloseBlocker/CloseBlocker.java Fri Mar 14 22:00:33 2008 +0300 +@@ -0,0 +1,466 @@ ++/* ++ * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++/* ++ @test %I% %E% ++ @bug 4080029 ++ @summary Modal Dialog block input to all frame windows not just its parent. ++ @author dmitry.cherepanov: area=awt.modal ++ @run main/manual CloseBlocker ++*/ ++ ++/** ++ * ManualMainTest.java ++ * ++ * summary: The test opens and closes blocker dialog, the test verifies ++ * that active window is correct when the dialog is closed. ++ */ ++ ++import java.awt.*; ++import java.awt.event.*; ++ ++public class CloseBlocker ++{ ++ ++ private static void init() ++ { ++ //*** Create instructions for the user here *** ++ ++ String[] instructions = ++ { ++ " the test will be run 6 times, to start next test just close all ", ++ " windows of previous; the instructions are the same for all tests: ", ++ " 1) there are two frames (one the frames has 'show modal' button), ", ++ " 2) press the button to show a dialog, ", ++ " 3) close the dialog (an alternative scenario - activate another", ++ " native window before closing the dialog), ", ++ " 4) the frame with button should become next active window, ", ++ " if it's true, then the test passed, otherwise, it failed. ", ++ " Press 'pass' button only after all of the 6 tests are completed, ", ++ " the number of the currently executed test is displayed on the ", ++ " output window. " ++ }; ++ Sysout.createDialog( ); ++ Sysout.printInstructions( instructions ); ++ ++ test(true, true, false); ++ test(true, true, true); ++ test(false, true, false); // 3rd parameter has no affect for ownerless ++ ++ test(true, false, false); ++ test(true, false, true); ++ test(false, false, false); // 3rd parameter has no affect for ownerless ++ ++ }//End init() ++ ++ private static final Object obj = new Object(); ++ private static int counter = 0; ++ ++ /* ++ * The ownerless parameter indicates whether the blocker dialog ++ * has owner. The usual parameter indicates whether the blocker ++ * dialog is a Java dialog (non-native dialog like file dialog). ++ */ ++ private static void test(final boolean ownerless, final boolean usual, final boolean initiallyOwnerIsActive) { ++ ++ Sysout.print(" * test #" + (++counter) + " is running ... "); ++ ++ final Frame active = new Frame(); ++ final Frame nonactive = new Frame(); ++ Button button = new Button("show modal"); ++ button.addActionListener(new ActionListener() { ++ public void actionPerformed(ActionEvent ae) { ++ Dialog dialog = null; ++ Frame parent = ownerless ? null : (initiallyOwnerIsActive? active : nonactive); ++ if (usual) { ++ dialog = new Dialog(parent, "Sample", true); ++ } else { ++ dialog = new FileDialog(parent, "Sample", FileDialog.LOAD); From xerxes at zafena.se Mon Jul 11 15:26:57 2011 From: xerxes at zafena.se (=?UTF-8?B?WGVyeGVzIFLDpW5ieQ==?=) Date: Tue, 12 Jul 2011 00:26:57 +0200 Subject: RFC: Removal of the ARM assembler port in Icedtea6, unbreaks Zero and Shark builds. In-Reply-To: <4E1ADFBC.3020503@ubuntu.com> References: <1310382467.30591.14.camel@xranby-ESPRIMO-P7935> <4E1ADFBC.3020503@ubuntu.com> Message-ID: <4E1B78B1.50500@zafena.se> On 2011-07-11 13:34, Matthias Klose wrote: > On 07/11/2011 01:07 PM, Xerxes R?nby wrote: >> Hi team. >> >> The ARM assembler port that have been broken and unmaintained for about >> a year are currently preventing Zero and Shark from building when using >> the new Hotspot in OpenJDK b23. >> >> The attached patch fixes Zero and Shark builds by removing the ARM >> assembler port from the icedtea6 tree. >> >> I will also remove the following files: >> arm_port/hotspot/src/cpu/zero/vm/asm_helper.cpp >> arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def >> arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S >> arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp >> arm_port/hotspot/tools/mkbc.c >> patches/arm.patch >> >> Ok to push? > > Looks fine. Note that I'll continue to create releases from the 1.8 branch (the > last branch I'm using the arm assembler port). > > Matthias Committed: http://icedtea.classpath.org/hg/icedtea6/rev/aae82c1ccf7d My recommendations for the future are to create a new OpenJDK Hotspot ARM port. http://openjdk.java.net/groups/porters/ This new ARM port should aim to be part of the upstream OpenJDK Hotspot repository and be designed to slot into and use existing OpenJDK Hotspot framework. By reusing the Hotspot framework will enable the ARM port to take advantage of more advanced inlining optimizations and in SSA form "ideal graph" code transformations. This new foundation will give the new ARM port a huge speed improvement compared to the previous ARM JVM porting efforts. http://wikis.sun.com/display/HotSpotInternals/Home Cheers and have a great day. Xerxes From xerxes at zafena.se Mon Jul 11 15:27:17 2011 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Tue, 12 Jul 2011 00:27:17 +0200 Subject: RFC: Removal of the ARM assembler port in Icedtea6, unbreaks Zero and Shark builds. In-Reply-To: <20110711153603.GE5877@rivendell.middle-earth.co.uk> References: <1310382467.30591.14.camel@xranby-ESPRIMO-P7935> <20110711153603.GE5877@rivendell.middle-earth.co.uk> Message-ID: <4E1B78C5.3060805@zafena.se> On 2011-07-11 17:36, Dr Andrew John Hughes wrote: > On 13:07 Mon 11 Jul , Xerxes R?nby wrote: >> Hi team. >> >> The ARM assembler port that have been broken and unmaintained for about >> a year are currently preventing Zero and Shark from building when using >> the new Hotspot in OpenJDK b23. >> >> The attached patch fixes Zero and Shark builds by removing the ARM >> assembler port from the icedtea6 tree. > > Missed this in my initial review; you don't update NEWS. > Please do so. This is more important than the numerous > minor JamVM changes which were all meticulously documented. > > Thanks, Thanks, a NEWS entry have been created and committed here: http://icedtea.classpath.org/hg/icedtea6/rev/ad05410af28a Xerxes From andrew at icedtea.classpath.org Mon Jul 11 18:01:45 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 12 Jul 2011 01:01:45 +0000 Subject: /hg/icedtea6: 2 new changesets Message-ID: changeset 15b2923c12a0 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=15b2923c12a0 author: Andrew John Hughes date: Mon Jul 11 23:52:57 2011 +0100 Fix addvm cleanup of jvm.cfg when it doesn't exist. 2011-07-11 Andrew John Hughes * Makefile.am: (clean-add-jamvm): Only perform sed on jvm.cfg if it exists and use correct path as in original rule. (clean-add-jamvm-debug): Likewise. (clean-add- cacao): Likewise. (clean-add-cacao-debug): Likewise. (clean-add-jamvm): Likewise. (clean-add-jamvm-debug): Likewise. changeset 32fa8c401cee in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=32fa8c401cee author: Andrew John Hughes date: Tue Jul 12 02:01:39 2011 +0100 PR732: Use xsltproc for bootstrap xslt in place of Xerces/Xalan 2011-05-25 Andrew John Hughes * Makefile.am: (ENDORSED_DIR): Removed. (ICEDTEA_ECJ_PATCHES): Add xsltproc.patch. Remove endorsed- dir-for-jvmti.patch. (ICEDTEA_ENV_ECJ): Set XSLT. Don't set ICEDTEA_ENDORSED_DIR or ENDORSED. (bootstrap-directory- stage1): Don't link xalan2, xerces2 or xalan2 serialiser. * acinclude.m4: (IT_FIND_XALAN2_JAR): Removed. (IT_FIND_XALAN2_SERIALIZER_JAR): Likewise. (IT_FIND_XERCES2_JAR): Likewise. (IT_FIND_XML_COMMONS_API_JAR): Likewise. * configure.ac: Replace calls to IT_FIND_XALAN2_JAR, IT_FIND_XALAN2_SERIALIZER_JAR, IT_FIND_XERCES2_JAR and IT_FIND_XML_COMMONS_API_JAR with call to IT_FIND_TOOL for xsltproc. * patches/ecj/xsltproc.patch: Patch jvmti.make in HotSpot to use xsltproc instead of Java's XSLT when bootstrapping. * patches/ecj/endorsed-dir-for-jvmti.patch: Remove addition of $(ENDORSED) to jvmti.make. * NEWS: Update and make bug fixes more prominent. diffstat: ChangeLog | 43 ++++++++++ Makefile.am | 48 +++++----- NEWS | 11 +- acinclude.m4 | 132 ------------------------------- configure.ac | 13 +-- patches/ecj/endorsed-dir-for-jvmti.patch | 12 -- patches/ecj/xsltproc.patch | 53 ++++++++++++ 7 files changed, 127 insertions(+), 185 deletions(-) diffs (451 lines): diff -r 802bc279de76 -r 32fa8c401cee ChangeLog --- a/ChangeLog Mon Jul 11 23:02:26 2011 +0100 +++ b/ChangeLog Tue Jul 12 02:01:39 2011 +0100 @@ -1,3 +1,46 @@ +2011-05-25 Andrew John Hughes + + * Makefile.am: + (ENDORSED_DIR): Removed. + (ICEDTEA_ECJ_PATCHES): Add xsltproc.patch. + Remove endorsed-dir-for-jvmti.patch. + (ICEDTEA_ENV_ECJ): Set XSLT. Don't + set ICEDTEA_ENDORSED_DIR or ENDORSED. + (bootstrap-directory-stage1): Don't link + xalan2, xerces2 or xalan2 serialiser. + * acinclude.m4: + (IT_FIND_XALAN2_JAR): Removed. + (IT_FIND_XALAN2_SERIALIZER_JAR): Likewise. + (IT_FIND_XERCES2_JAR): Likewise. + (IT_FIND_XML_COMMONS_API_JAR): Likewise. + * configure.ac: + Replace calls to IT_FIND_XALAN2_JAR, + IT_FIND_XALAN2_SERIALIZER_JAR, + IT_FIND_XERCES2_JAR and + IT_FIND_XML_COMMONS_API_JAR with call to + IT_FIND_TOOL for xsltproc. + * patches/ecj/xsltproc.patch: + Patch jvmti.make in HotSpot to use + xsltproc instead of Java's XSLT + when bootstrapping. + * patches/ecj/endorsed-dir-for-jvmti.patch: + Remove addition of $(ENDORSED) to + jvmti.make. + * NEWS: Update and make bug fixes more + prominent. + +2011-07-11 Andrew John Hughes + + * Makefile.am: + (clean-add-jamvm): Only perform sed on jvm.cfg + if it exists and use correct path as in original + rule. + (clean-add-jamvm-debug): Likewise. + (clean-add-cacao): Likewise. + (clean-add-cacao-debug): Likewise. + (clean-add-jamvm): Likewise. + (clean-add-jamvm-debug): Likewise. + 2011-07-11 Andrew John Hughes * NEWS: Import 1.10.2, 1.9.8, 1.8.8 and diff -r 802bc279de76 -r 32fa8c401cee Makefile.am --- a/Makefile.am Mon Jul 11 23:02:26 2011 +0100 +++ b/Makefile.am Tue Jul 12 02:01:39 2011 +0100 @@ -39,7 +39,6 @@ ICEDTEA_CLS_DIR = $(BUILD_OUTPUT_DIR)/classes ICEDTEA_CLS_DIR_ECJ = $(ECJ_BUILD_OUTPUT_DIR)/classes BOOT_DIR = $(abs_top_builddir)/bootstrap/jdk1.6.0 -ENDORSED_DIR = $(BOOT_DIR)/lib/endorsed ECJ_BOOT_DIR = $(abs_top_builddir)/bootstrap/ecj ICEDTEA_BOOT_DIR = $(abs_top_builddir)/bootstrap/icedtea JAMVM_IMPORT_PATH = $(abs_top_builddir)/jamvm/install/hotspot @@ -419,14 +418,14 @@ ICEDTEA_ECJ_PATCHES = patches/ecj/icedtea.patch \ patches/ecj/hotspot.patch \ - patches/ecj/endorsed-dir-for-jvmti.patch \ patches/ecj/javafiles.patch \ 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/override.patch \ + patches/ecj/xsltproc.patch if DTDTYPE_QNAME ICEDTEA_ECJ_PATCHES += \ @@ -562,15 +561,14 @@ BOOTCLASSPATH_CLS="-bootclasspath $(ICEDTEA_CLS_DIR_ECJ)" \ BOOTCLASSPATH_RT_LIBGCJ="-bootclasspath $(RUNTIME)" \ CLASSPATH="" \ - ICEDTEA_ENDORSED_DIR="$(ENDORSED_DIR)" \ - ENDORSED="-Djava.endorsed.dirs=$(ENDORSED_DIR)" \ LD_LIBRARY_PATH="" \ GENSRCDIR="$(abs_top_builddir)/generated" \ JAR_KNOWS_ATFILE="$(JAR_KNOWS_ATFILE)" \ JAR_KNOWS_J_OPTIONS="$(JAR_KNOWS_J_OPTIONS)" \ JAR_ACCEPTS_STDIN_LIST="$(JAR_ACCEPTS_STDIN_LIST)" \ DISABLE_NIMBUS="true" \ - NO_DOCS="true" + NO_DOCS="true" \ + XSLT="$(XSLTPROC)" # Source files # FIXME (distclean): Add generated file list @@ -1250,16 +1248,6 @@ ln -sf $(NATIVE2ASCII) $(ECJ_BOOT_DIR)/bin/native2ascii ln -sf $(abs_top_builddir)/javac $(ECJ_BOOT_DIR)/bin/javac ln -sf $(abs_top_builddir)/javap $(ECJ_BOOT_DIR)/bin/javap - mkdir -p $(ECJ_BOOT_DIR)/lib/endorsed && \ - ln -sf $(XALAN2_JAR) $(ECJ_BOOT_DIR)/lib/endorsed/xalan-j2.jar && \ - ln -sf $(XALAN2_SERIALIZER_JAR) \ - $(ECJ_BOOT_DIR)/lib/endorsed/xalan-j2-serializer.jar && \ - ln -sf $(XERCES2_JAR) $(ECJ_BOOT_DIR)/lib/endorsed/xerces-j2.jar && \ - if test -n "$(XML_COMMONS_APIS_JAR)"; \ - then \ - ln -sf $(XML_COMMONS_APIS_JAR) \ - $(ECJ_BOOT_DIR)/lib/endorsed/xml-commons-apis.jar; \ - fi mkdir -p $(ECJ_BOOT_DIR)/jre/lib && \ cp $(SYSTEM_JDK_DIR)/jre/lib/rt.jar $(ECJ_BOOT_DIR)/jre/lib/rt.jar && \ ln -sf $(SYSTEM_JDK_DIR)/jre/lib/$(JRE_ARCH_DIR) \ @@ -1840,7 +1828,9 @@ clean-add-jamvm: rm -rf $(BUILD_JRE_ARCH_DIR)/jamvm - -sed -i 's#-jamvm KNOWN#-jamvm ERROR#' jvm.cfg + if [ -e $(BUILD_JRE_ARCH_DIR)/jvm.cfg ] ; then \ + sed -i 's#-jamvm KNOWN#-jamvm ERROR#' $(BUILD_JRE_ARCH_DIR)/jvm.cfg ; \ + fi rm -f stamps/add-jamvm.stamp stamps/add-jamvm-debug.stamp: stamps/icedtea-debug.stamp stamps/jamvm.stamp @@ -1856,7 +1846,9 @@ clean-add-jamvm-debug: rm -rf $(BUILD_DEBUG_JRE_ARCH_DIR)/jamvm - sed -i 's#-jamvm KNOWN#-jamvm ERROR#' jvm.cfg + if [ -e $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg ] ; then \ + sed -i 's#-jamvm KNOWN#-jamvm ERROR#' $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg ; \ + fi rm -f stamps/add-jamvm-debug.stamp # CACAO @@ -1906,7 +1898,9 @@ clean-add-cacao: rm -rf $(BUILD_JRE_ARCH_DIR)/cacao - sed -i 's#-cacao KNOWN#-cacao ERROR#' jvm.cfg + if [ -e $(BUILD_JRE_ARCH_DIR)/jvm.cfg ] ; then \ + sed -i 's#-cacao KNOWN#-cacao ERROR#' $(BUILD_JRE_ARCH_DIR)/jvm.cfg ; \ + fi rm -f stamps/add-cacao.stamp stamps/add-cacao-debug.stamp: stamps/icedtea-debug.stamp stamps/cacao.stamp @@ -1926,7 +1920,9 @@ clean-add-cacao-debug: rm -rf $(BUILD_DEBUG_JRE_ARCH_DIR)/cacao - sed -i 's#-cacao KNOWN#-cacao ERROR#' jvm.cfg + if [ -e $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg ] ; then \ + sed -i 's#-cacao KNOWN#-cacao ERROR#' $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg ; \ + fi rm -f stamps/add-cacao-debug.stamp # configure script arguments, quoted in single quotes @@ -2016,8 +2012,10 @@ rm -rf $(BUILD_JRE_ARCH_DIR)/zero rm -rf $(BUILD_JRE_ARCH_DIR)/shark rm -rf zerovm - sed -i 's#-zero KNOWN#-zero ERROR#' jvm.cfg - sed -i 's#-shark KNOWN#-shark ERROR#' jvm.cfg + if [ -e $(BUILD_JRE_ARCH_DIR)/jvm.cfg ] ; then \ + sed -i 's#-zero KNOWN#-zero ERROR#' $(BUILD_JRE_ARCH_DIR)/jvm.cfg ; \ + sed -i 's#-shark KNOWN#-shark ERROR#' $(BUILD_JRE_ARCH_DIR)/jvm.cfg ; \ + fi rm -f stamps/add-zero.stamp stamps/add-zero-debug.stamp: stamps/icedtea-debug.stamp @@ -2052,8 +2050,10 @@ rm -rf $(BUILD_DEBUG_JRE_ARCH_DIR)/zero rm -rf $(BUILD_JRE_ARCH_DIR)/shark rm -rf zerovm - sed -i 's#-zero KNOWN#-zero ERROR#' jvm.cfg - sed -i 's#-shark KNOWN#-shark ERROR#' jvm.cfg + if [ -e $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg ] ; then \ + sed -i 's#-zero KNOWN#-zero ERROR#' $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg ; \ + sed -i 's#-shark KNOWN#-shark ERROR#' $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg ; \ + fi rm -f stamps/add-zero-debug.stamp # end additional VMs diff -r 802bc279de76 -r 32fa8c401cee NEWS --- a/NEWS Mon Jul 11 23:02:26 2011 +0100 +++ b/NEWS Tue Jul 12 02:01:39 2011 +0100 @@ -13,6 +13,12 @@ * Use HotSpot 20 as the default virtual machine. * ARM assembler port and Thumb2 JIT removed (broken and unmaintained). +* Bug fixes + - PR637: make check should exit with an error code if any regression test failed. + - PR748: Icedtea6 fails to build with Linux 3.0. + - PR744: icedtea6-1.10.2 : patching error + - PR752: ImageFormatException extends Exception not RuntimeException + - PR732: Use xsltproc for bootstrap xslt in place of Xerces/Xalan * Backports - S7019861: Last scanline skpped when doing AA. - S6768387, PR670: REGRESSION: JTable no longer serializable @@ -46,11 +52,6 @@ - S6711682: JCheckBox in JTable: checkbox doesn't always respond to the first mouse click - S7016856: fix dashing performance regression. Improve other rendering performance. - S6934977: MappedByteBuffer.load crashes with SIGBUS. -* Bug fixes - - PR637: make check should exit with an error code if any regression test failed. - - PR748: Icedtea6 fails to build with Linux 3.0. - - PR744: icedtea6-1.10.2 : patching error - - PR752: ImageFormatException extends Exception not RuntimeException * Allow selection of test suites using the jtreg_checks argument e.g. jtreg_checks="langtools" * CACAO - Threadlist & threadobject improvements. diff -r 802bc279de76 -r 32fa8c401cee acinclude.m4 --- a/acinclude.m4 Mon Jul 11 23:02:26 2011 +0100 +++ b/acinclude.m4 Tue Jul 12 02:01:39 2011 +0100 @@ -630,138 +630,6 @@ AC_SUBST(ALT_JAR_CMD) ]) -AC_DEFUN([IT_FIND_XALAN2_JAR], -[ - AC_MSG_CHECKING([for a xalan2 jar]) - AC_ARG_WITH([xalan2-jar], - [AS_HELP_STRING(--with-xalan2-jar,specify location of the xalan2 jar)], - [ - if test -f "${withval}" ; then - XALAN2_JAR="${withval}" - fi - ], - [ - XALAN2_JAR= - ]) - if test -z "${XALAN2_JAR}"; then - if test -e "/usr/share/java/xalan-j2.jar"; then - XALAN2_JAR=/usr/share/java/xalan-j2.jar - elif test -e "/usr/share/java/xalan2.jar"; then - XALAN2_JAR=/usr/share/java/xalan2.jar - elif test -e "/usr/share/xalan/lib/xalan.jar"; then - XALAN2_JAR=/usr/share/xalan/lib/xalan.jar - else - AC_MSG_RESULT(no) - fi - fi - if test -z "${XALAN2_JAR}"; then - AC_MSG_ERROR("A xalan2 jar was not found.") - fi - AC_MSG_RESULT(${XALAN2_JAR}) - AC_SUBST(XALAN2_JAR) -]) - -AC_DEFUN([IT_FIND_XALAN2_SERIALIZER_JAR], -[ - AC_MSG_CHECKING([for a xalan2 serializer jar]) - AC_ARG_WITH([xalan2-serializer-jar], - [AS_HELP_STRING(--with-xalan2-serializer-jar,specify location of the xalan2-serializer jar)], - [ - if test -f "${withval}" ; then - XALAN2_SERIALIZER_JAR="${withval}" - fi - ], - [ - XALAN2_SERIALIZER_JAR= - ]) - if test -z "${XALAN2_SERIALIZER_JAR}"; then - if test -e "/usr/share/java/xalan-j2-serializer.jar"; then - XALAN2_SERIALIZER_JAR=/usr/share/java/xalan-j2-serializer.jar - elif test -e "/usr/share/xalan-serializer/lib/serializer.jar"; then - XALAN2_SERIALIZER_JAR=/usr/share/xalan-serializer/lib/serializer.jar - elif test -e "/usr/share/java/serializer.jar"; then - XALAN2_SERIALIZER_JAR=/usr/share/java/serializer.jar - else - AC_MSG_RESULT(no) - fi - fi - if test -z "${XALAN2_SERIALIZER_JAR}"; then - AC_MSG_ERROR("A xalan2-serializer jar was not found.") - fi - AC_MSG_RESULT(${XALAN2_SERIALIZER_JAR}) - AC_SUBST(XALAN2_SERIALIZER_JAR) -]) - -AC_DEFUN([IT_FIND_XERCES2_JAR], -[ - AC_MSG_CHECKING([for a xerces2 jar]) - AC_ARG_WITH([xerces2-jar], - [AS_HELP_STRING(--with-xerces2-jar,specify location of the xerces2 jar)], - [ - if test -f "${withval}" ; then - XERCES2_JAR="${withval}" - fi - ], - [ - XERCES2_JAR= - ]) - if test -z "${XERCES2_JAR}"; then - if test -e "/usr/share/java/xerces-j2.jar"; then - XERCES2_JAR=/usr/share/java/xerces-j2.jar - elif test -e "/usr/share/java/xerces2.jar"; then - XERCES2_JAR=/usr/share/java/xerces2.jar - elif test -e "/usr/share/xerces-2/lib/xercesImpl.jar"; then - XERCES2_JAR=/usr/share/xerces-2/lib/xercesImpl.jar - elif test -e "/usr/share/java/xercesImpl.jar"; then - XERCES2_JAR=/usr/share/java/xercesImpl.jar - else - AC_MSG_RESULT(no) - fi - fi - if test -z "${XERCES2_JAR}"; then - AC_MSG_ERROR("A xerces2 jar was not found.") - fi - AC_MSG_RESULT(${XERCES2_JAR}) - AC_SUBST(XERCES2_JAR) -]) - -AC_DEFUN([IT_FIND_XML_COMMONS_APIS_JAR], -[ - AC_MSG_CHECKING([for an xml-commons-apis jar]) - AC_ARG_WITH([xml-commons-apis-jar], - [AS_HELP_STRING(--with-xml-commons-apis-jar,specify location of the xml-commons-apis jar)], - [ - if test -f "${withval}" || test -h "${withval}" ; then - XML_COMMONS_APIS_JAR="${withval}" - fi - ], - [ - XML_COMMONS_APIS_JAR= - ]) - if test -z "${XML_COMMONS_APIS_JAR}"; then - if test -e "/usr/share/java/xml-commons-apis.jar"; then - XML_COMMONS_APIS_JAR=/usr/share/java/xml-commons-apis.jar - elif test -e "/usr/share/java/xml-apis.jar"; then - XML_COMMONS_APIS_JAR=/usr/share/java/xml-apis.jar - elif test -e "/usr/share/xml-commons/lib/xml-apis.jar"; then - XML_COMMONS_APIS_JAR=/usr/share/xml-commons/lib/xml-apis.jar - elif test -e "/usr/share/java/xml-apis-ext.jar"; then - XML_COMMONS_APIS_JAR=/usr/share/java/xml-apis-ext.jar - elif test -e "/usr/share/java/xml-commons-external.jar"; then - XML_COMMONS_APIS_JAR=/usr/share/java/xml-commons-external.jar - elif test -e "/usr/share/java/apache-xml-commons-apis.jar"; then - XML_COMMONS_APIS_JAR=/usr/share/java/apache-xml-commons-apis.jar - else - AC_MSG_RESULT(no) - fi - fi - if test -z "${XML_COMMONS_APIS_JAR}"; then - AC_MSG_ERROR("An xml-commons-apis jar was not found.") - fi - AC_MSG_RESULT(${XML_COMMONS_APIS_JAR}) - AC_SUBST(XML_COMMONS_APIS_JAR) -]) - AC_DEFUN([IT_FIND_RHINO_JAR], [ AC_MSG_CHECKING([whether to include Javascript support via Rhino]) diff -r 802bc279de76 -r 32fa8c401cee configure.ac --- a/configure.ac Mon Jul 11 23:02:26 2011 +0100 +++ b/configure.ac Tue Jul 12 02:01:39 2011 +0100 @@ -155,18 +155,7 @@ IT_FIND_NATIVE2ASCII if test "x$enable_bootstrap" = "xyes"; then IT_FIND_ECJ_JAR - IT_FIND_XALAN2_JAR - IT_FIND_XALAN2_SERIALIZER_JAR - IT_FIND_XERCES2_JAR - IT_CHECK_IF_INSTANTIABLE([ORG_APACHE_XERCES_DOM_DEFERREDDOCUMENTIMPL], -[org.apache.xerces.dom.DeferredDocumentImpl],[], -[$XALAN2_JAR:$XALAN2_SERIALIZER_JAR:$XERCES2_JAR]) - if test x"${ORG_APACHE_XERCES_DOM_DEFERREDDOCUMENTIMPL_INSTANTIABLE}" = "xno" - then - IT_FIND_XML_COMMONS_APIS_JAR - else - XML_COMMONS_APIS_JAR= - fi + IT_FIND_TOOL([XSLTPROC], [xsltproc]) fi AC_CONFIG_FILES([javac], [chmod +x javac]) AC_CONFIG_FILES([javap], [chmod +x javap]) diff -r 802bc279de76 -r 32fa8c401cee patches/ecj/endorsed-dir-for-jvmti.patch --- a/patches/ecj/endorsed-dir-for-jvmti.patch Mon Jul 11 23:02:26 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -diff -Nru openjdk.orig/hotspot/make/linux/makefiles/jvmti.make openjdk/hotspot/make/linux/makefiles/jvmti.make ---- openjdk-ecj.orig/hotspot/make/linux/makefiles/jvmti.make 2008-05-23 20:51:14.000000000 +0100 -+++ openjdk-ecj/hotspot/make/linux/makefiles/jvmti.make 2008-05-23 20:54:13.000000000 +0100 -@@ -59,7 +59,7 @@ - - JvmtiGeneratedFiles = $(JvmtiGeneratedNames:%=$(JvmtiOutDir)/%) - --XSLT = $(QUIETLY) $(REMOTE) $(RUN.JAVA) -classpath $(JvmtiOutDir) jvmtiGen -+XSLT = $(QUIETLY) $(REMOTE) $(RUN.JAVA) $(ENDORSED) -classpath $(JvmtiOutDir) jvmtiGen - - .PHONY: all jvmtidocs clean cleanall - - diff -r 802bc279de76 -r 32fa8c401cee patches/ecj/xsltproc.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/ecj/xsltproc.patch Tue Jul 12 02:01:39 2011 +0100 @@ -0,0 +1,54 @@ +diff -r 591c7dc0b2ee make/linux/makefiles/jvmti.make +--- openjdk-ecj.orig/hotspot/make/linux/makefiles/jvmti.make Thu May 19 13:27:44 2011 +0200 ++++ openjdk-ecj/hotspot/make/linux/makefiles/jvmti.make Wed May 25 20:01:25 2011 +0100 +@@ -58,8 +58,6 @@ + + JvmtiGeneratedFiles = $(JvmtiGeneratedNames:%=$(JvmtiOutDir)/%) + +-XSLT = $(QUIETLY) $(REMOTE) $(RUN.JAVA) -classpath $(JvmtiOutDir) jvmtiGen +- + .PHONY: all jvmtidocs clean cleanall + + # ######################################################################### +@@ -76,34 +74,34 @@ + + $(JvmtiOutDir)/jvmtiEnter.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnter.xsl + @echo Generating $@ +- $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiEnter.xsl -OUT $(JvmtiOutDir)/jvmtiEnter.cpp -PARAM interface jvmti ++ $(XSLT) -o $(JvmtiOutDir)/jvmtiEnter.cpp --stringparam interface jvmti $(JvmtiSrcDir)/jvmtiEnter.xsl $(JvmtiSrcDir)/jvmti.xml + + $(JvmtiOutDir)/bytecodeInterpreterWithChecks.cpp: $(JvmtiGenClass) $(InterpreterSrcDir)/bytecodeInterpreter.cpp $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xml $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xsl + @echo Generating $@ +- $(XSLT) -IN $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xml -XSL $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xsl -OUT $(JvmtiOutDir)/bytecodeInterpreterWithChecks.cpp ++ $(XSLT) -o $(JvmtiOutDir)/bytecodeInterpreterWithChecks.cpp $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xsl $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xml + + $(JvmtiOutDir)/jvmtiEnterTrace.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnter.xsl + @echo Generating $@ +- $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiEnter.xsl -OUT $(JvmtiOutDir)/jvmtiEnterTrace.cpp -PARAM interface jvmti -PARAM trace Trace ++ $(XSLT) -o $(JvmtiOutDir)/jvmtiEnterTrace.cpp --stringparam interface jvmti --stringparam trace Trace $(JvmtiSrcDir)/jvmtiEnter.xsl $(JvmtiSrcDir)/jvmti.xml + + $(JvmtiOutDir)/jvmtiEnvRecommended.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnv.xsl $(JvmtiSrcDir)/jvmtiEnv.cpp $(JvmtiEnvFillClass) + @echo Generating $@ +- $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiEnv.xsl -OUT $(JvmtiOutDir)/jvmtiEnvStub.cpp ++ $(XSLT) -o $(JvmtiOutDir)/jvmtiEnvStub.cpp $(JvmtiSrcDir)/jvmtiEnv.xsl $(JvmtiSrcDir)/jvmti.xml + $(QUIETLY) $(REMOTE) $(RUN.JAVA) -classpath $(JvmtiOutDir) jvmtiEnvFill $(JvmtiSrcDir)/jvmtiEnv.cpp $(JvmtiOutDir)/jvmtiEnvStub.cpp $(JvmtiOutDir)/jvmtiEnvRecommended.cpp + + $(JvmtiOutDir)/jvmtiEnv.hpp: $(both) $(JvmtiSrcDir)/jvmtiHpp.xsl + @echo Generating $@ +- $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiHpp.xsl -OUT $(JvmtiOutDir)/jvmtiEnv.hpp ++ $(XSLT) -o $(JvmtiOutDir)/jvmtiEnv.hpp $(JvmtiSrcDir)/jvmtiHpp.xsl $(JvmtiSrcDir)/jvmti.xml + + $(JvmtiOutDir)/jvmti.h: $(both) $(JvmtiSrcDir)/jvmtiH.xsl + @echo Generating $@ +- $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiH.xsl -OUT $(JvmtiOutDir)/jvmti.h ++ $(XSLT) -o $(JvmtiOutDir)/jvmti.h $(JvmtiSrcDir)/jvmtiH.xsl $(JvmtiSrcDir)/jvmti.xml + + jvmtidocs: $(JvmtiOutDir)/jvmti.html + + $(JvmtiOutDir)/jvmti.html: $(both) $(JvmtiSrcDir)/jvmti.xsl + @echo Generating $@ +- $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmti.xsl -OUT $(JvmtiOutDir)/jvmti.html ++ $(XSLT) -o $(JvmtiOutDir)/jvmti.html $(JvmtiSrcDir)/jvmti.xsl $(JvmtiSrcDir)/jvmti.xml + + # ######################################################################### + From bugzilla-daemon at icedtea.classpath.org Mon Jul 11 18:02:42 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Jul 2011 01:02:42 +0000 Subject: [Bug 732] Use xsltproc for bootstrap xslt in place of Xerces/Xalan In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=732 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution| |FIXED Target Milestone|--- |6-1.11 --- Comment #3 from Andrew John Hughes 2011-07-12 01:02:41 --- http://icedtea.classpath.org/hg/icedtea6/rev/32fa8c401cee -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Mon Jul 11 18:02:42 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Jul 2011 01:02:42 +0000 Subject: [Bug 695] [TRACKER] IcedTea7 1.14 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=695 Bug 695 depends on bug 732, which changed state. Bug 732 Summary: Use xsltproc for bootstrap xslt in place of Xerces/Xalan http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=732 What |Old Value |New Value ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution| |FIXED -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From ptisnovs at icedtea.classpath.org Tue Jul 12 00:52:54 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 12 Jul 2011 07:52:54 +0000 Subject: /hg/icedtea6: 6758179: D3D: AlphaComposite is applied incorrectl... Message-ID: changeset 98a64707ae8c in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=98a64707ae8c author: ptisnovs date: Tue Jul 12 09:52:46 2011 +0200 6758179: D3D: AlphaComposite is applied incorrectly for uncached opaque BufferedImage diffstat: ChangeLog | 7 + Makefile.am | 3 +- NEWS | 1 + patches/openjdk/6758179-D3D_AlphaComposite_is_applied_incorrectly.patch | 105 ++++++++++ 4 files changed, 115 insertions(+), 1 deletions(-) diffs (149 lines): diff -r 32fa8c401cee -r 98a64707ae8c ChangeLog --- a/ChangeLog Tue Jul 12 02:01:39 2011 +0100 +++ b/ChangeLog Tue Jul 12 09:52:46 2011 +0200 @@ -1,3 +1,10 @@ +2011-07-12 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/6758179-D3D_AlphaComposite_is_applied_incorrectly.patch: + Backport of 6758179. + 2011-05-25 Andrew John Hughes * Makefile.am: diff -r 32fa8c401cee -r 98a64707ae8c Makefile.am --- a/Makefile.am Tue Jul 12 02:01:39 2011 +0100 +++ b/Makefile.am Tue Jul 12 09:52:46 2011 +0200 @@ -361,7 +361,8 @@ patches/openjdk/7036220-shark_llvm_29_headers.patch \ patches/openjdk/7029152-String_intrinsics_miss_optimization.patch \ patches/openjdk/6711682-JCheckBox_in_JTable_does_not_respond_to_click.patch \ - patches/jtreg-7020373-add-ignore-tag.patch + patches/jtreg-7020373-add-ignore-tag.patch \ + patches/openjdk/6758179-D3D_AlphaComposite_is_applied_incorrectly.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r 32fa8c401cee -r 98a64707ae8c NEWS --- a/NEWS Tue Jul 12 02:01:39 2011 +0100 +++ b/NEWS Tue Jul 12 09:52:46 2011 +0200 @@ -52,6 +52,7 @@ - S6711682: JCheckBox in JTable: checkbox doesn't always respond to the first mouse click - S7016856: fix dashing performance regression. Improve other rendering performance. - S6934977: MappedByteBuffer.load crashes with SIGBUS. + - S6758179: D3D: AlphaComposite is applied incorrectly for uncached opaque BufferedImage * Allow selection of test suites using the jtreg_checks argument e.g. jtreg_checks="langtools" * CACAO - Threadlist & threadobject improvements. diff -r 32fa8c401cee -r 98a64707ae8c patches/openjdk/6758179-D3D_AlphaComposite_is_applied_incorrectly.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6758179-D3D_AlphaComposite_is_applied_incorrectly.patch Tue Jul 12 09:52:46 2011 +0200 @@ -0,0 +1,107 @@ +# HG changeset patch +# User tdv +# Date 1227057387 28800 +# Node ID 8eb24fc882427ce5907083866b0d3b7a82ed8659 +# Parent 3a9d06af8830c488de1700130c88ee463d06e1a4 +6758179: D3D: AlphaComposite is applied incorrectly for uncached opaque BufferedImage +Reviewed-by: campbell, flar + +diff -r 3a9d06af8830 -r 8eb24fc88242 src/windows/native/sun/java2d/d3d/D3DBlitLoops.cpp +--- openjdk.orig/jdk/src/windows/native/sun/java2d/d3d/D3DBlitLoops.cpp Sat Nov 01 20:42:18 2008 +0300 ++++ openjdk/jdk/src/windows/native/sun/java2d/d3d/D3DBlitLoops.cpp Tue Nov 18 17:16:27 2008 -0800 +@@ -252,11 +252,15 @@ + pSrcInfo, &dstInfo, NULL, NULL); + break; + case ST_INT_ARGB_PRE: +- case ST_INT_RGB: + AnyIntIsomorphicCopy(pSrcBase, pDstBase, + srcWidth, srcHeight, + pSrcInfo, &dstInfo, NULL, NULL); + break; ++ case ST_INT_RGB: ++ IntRgbToIntArgbConvert(pSrcBase, pDstBase, ++ srcWidth, srcHeight, ++ pSrcInfo, &dstInfo, NULL, NULL); ++ break; + case ST_INT_ARGB_BM: + // REMIND: we don't have such sw loop + // so this path is disabled for now on java level +diff -r 3a9d06af8830 -r 8eb24fc88242 test/sun/java2d/DirectX/OpaqueImageToSurfaceBlitTest/OpaqueImageToSurfaceBlitTest.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/sun/java2d/DirectX/OpaqueImageToSurfaceBlitTest/OpaqueImageToSurfaceBlitTest.java Tue Nov 18 17:16:27 2008 -0800 +@@ -0,0 +1,75 @@ ++/* ++ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++/* ++ * @test ++ * @bug 6764257 ++ * @summary Tests that the alpha in opaque images doesn't affect result of alpha ++ * compositing ++ * @author Dmitri.Trembovetski at sun.com: area=Graphics ++ * @run main/othervm OpaqueImageToSurfaceBlitTest ++ * @run main/othervm -Dsun.java2d.noddraw=true OpaqueImageToSurfaceBlitTest ++ * @run main/othervm -Dsun.java2d.opengl=True OpaqueImageToSurfaceBlitTest ++ */ ++ ++import java.awt.AlphaComposite; ++import java.awt.Graphics2D; ++import java.awt.GraphicsConfiguration; ++import java.awt.GraphicsDevice; ++import java.awt.GraphicsEnvironment; ++import java.awt.image.BufferedImage; ++import java.awt.image.DataBufferInt; ++import java.awt.image.VolatileImage; ++ ++public class OpaqueImageToSurfaceBlitTest { ++ ++ public static void main(String[] args) { ++ ++ GraphicsEnvironment ge = ++ GraphicsEnvironment.getLocalGraphicsEnvironment(); ++ GraphicsDevice gd = ge.getDefaultScreenDevice(); ++ GraphicsConfiguration gc = gd.getDefaultConfiguration(); ++ VolatileImage vi = gc.createCompatibleVolatileImage(16, 16); ++ vi.validate(gc); ++ ++ BufferedImage bi = ++ new BufferedImage(2, 2, BufferedImage.TYPE_INT_RGB); ++ int data[] = ((DataBufferInt)bi.getRaster().getDataBuffer()).getData(); ++ data[0] = 0x0000007f; ++ data[1] = 0x0000007f; ++ data[2] = 0xff00007f; ++ data[3] = 0xff00007f; ++ Graphics2D g = vi.createGraphics(); ++ g.setComposite(AlphaComposite.SrcOver.derive(0.999f)); ++ g.drawImage(bi, 0, 0, null); ++ ++ bi = vi.getSnapshot(); ++ if (bi.getRGB(0, 0) != bi.getRGB(1, 1)) { ++ throw new RuntimeException("Test FAILED: color at 0x0 ="+ ++ Integer.toHexString(bi.getRGB(0, 0))+" differs from 1x1 ="+ ++ Integer.toHexString(bi.getRGB(1,1))); ++ } ++ ++ System.out.println("Test PASSED."); ++ } ++} From jvanek at redhat.com Tue Jul 12 01:19:44 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 12 Jul 2011 10:19:44 +0200 Subject: [RFC] - extended creation of simple reproducers jars Message-ID: <4E1C03A0.1010705@redhat.com> Hi! This patch removes old compiling of files in src directory (by "*") in simple reproducers by finding .java files (honours also directory structure which previous technique ignored) and also copy all not java files into resulted jar (also ignored in "*" approach) Motivation for this patch are by-jnlp-signed reproducers which can appear soon and I do not want to have special build code for them (== including application.jnlp or template.jnlp files) 2011-07-12 Jiri Vanek *Makefile.am: (stamps/netx-dist-tests-prepare-reproducers.stamp): now honour directory structure under srcs in simple reproducer and copy also not compiled java files into resulted jars from src directory -------------- next part -------------- A non-text attachment was scrubbed... Name: directorySupport.diff Type: text/x-patch Size: 2647 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110712/01d0766a/directorySupport.diff From aph at redhat.com Tue Jul 12 02:11:51 2011 From: aph at redhat.com (Andrew Haley) Date: Tue, 12 Jul 2011 10:11:51 +0100 Subject: [PATCH REVIEW] [1.10] RFC: Support Linux 3 In-Reply-To: <20110708151121.GD13502@shelob.middle-earth.co.uk> References: <20110708151121.GD13502@shelob.middle-earth.co.uk> Message-ID: <4E1C0FD7.5020004@redhat.com> On 08/07/11 16:11, Andrew John Hughes wrote: > I'd like to backport the attached patch to 1.10. What's the upstream status of this? Andrew. From ptisnovs at icedtea.classpath.org Tue Jul 12 02:24:22 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 12 Jul 2011 09:24:22 +0000 Subject: /hg/gfx-test: Template HTML files are moved to directory 'templa... Message-ID: changeset 8e10b41701d6 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=8e10b41701d6 author: Pavel Tisnovsky date: Tue Jul 12 11:25:38 2011 +0200 Template HTML files are moved to directory 'templates' diffstat: src/org/gfxtest/ImageDiffer/ResultWriters/HtmlStructureWriter.java | 4 +- src/org/gfxtest/reporter/Reporter.java | 4 +- template_different_images.html | 52 ---------- template_same_images.html | 52 ---------- template_test_result.html | 37 ------- templates/template_different_images.html | 52 ++++++++++ templates/template_same_images.html | 52 ++++++++++ templates/template_test_result.html | 37 +++++++ 8 files changed, 147 insertions(+), 143 deletions(-) diffs (348 lines): diff -r 9e7e2cc488e3 -r 8e10b41701d6 src/org/gfxtest/ImageDiffer/ResultWriters/HtmlStructureWriter.java --- a/src/org/gfxtest/ImageDiffer/ResultWriters/HtmlStructureWriter.java Thu Oct 07 18:24:55 2010 +0200 +++ b/src/org/gfxtest/ImageDiffer/ResultWriters/HtmlStructureWriter.java Tue Jul 12 11:25:38 2011 +0200 @@ -63,6 +63,8 @@ */ public class HtmlStructureWriter { + private static final String TEMPLATE_DIR = "templates"; + static Log log = new Log(HtmlStructureWriter.class.getName(), true); public static void createAndFillResultDirectory(Configuration configuration, BufferedImage[] sourceImages, @@ -90,7 +92,7 @@ { String templateName = cr.isEqualsImages() ? "template_same_images.html" : "template_different_images.html"; BufferedWriter writer = new BufferedWriter(new FileWriter(new File(newDir, "result.html"))); - BufferedReader template = new BufferedReader(new FileReader(templateName)); + BufferedReader template = new BufferedReader(new FileReader(new File(TEMPLATE_DIR, templateName))); String line; while ((line = template.readLine()) != null) { diff -r 9e7e2cc488e3 -r 8e10b41701d6 src/org/gfxtest/reporter/Reporter.java --- a/src/org/gfxtest/reporter/Reporter.java Thu Oct 07 18:24:55 2010 +0200 +++ b/src/org/gfxtest/reporter/Reporter.java Tue Jul 12 11:25:38 2011 +0200 @@ -60,6 +60,8 @@ private ReporterConfiguration configuration = null; + private static final String TEMPLATE_DIR = "templates"; + private static final String INPUT_FILE_NAME = "template_test_result.html"; private static final String OUTPUT_FILE_NAME = "index.html"; @@ -108,7 +110,7 @@ { this.configuration = new ReporterConfiguration(args, this.log); Map testResults = readAllTestResults(); - input = new BufferedReader(new FileReader(new File(INPUT_FILE_NAME))); + input = new BufferedReader(new FileReader(new File(TEMPLATE_DIR, INPUT_FILE_NAME))); output = new BufferedWriter(new FileWriter(new File(this.configuration.getOutputPath(), OUTPUT_FILE_NAME))); writeHtmlHeader(input, output); writeHeaderForCommonTests(output); diff -r 9e7e2cc488e3 -r 8e10b41701d6 template_different_images.html --- a/template_different_images.html Thu Oct 07 18:24:55 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ - - - - ${TestName} - - - - - - - -

${TestName}

- - - - - - - - - - - - - - - - - -
Test result: ${ComparisonStatus}
 
Tested area: ${AreaAsString}
Different pixels area: ${RectangleAsString}
Total pixels: ${TotalPixels}
Different pixels: ${DifferentPixels}
Unperceptible different pixels:${SmallDifferences}
Same pixels: ${EqualPixels}
 
Template (source image1) source1.png
Test sample (source image2) source2.png
Diff. image diff.png
-
-
-

Generated by ImageDiffer

- - - diff -r 9e7e2cc488e3 -r 8e10b41701d6 template_same_images.html --- a/template_same_images.html Thu Oct 07 18:24:55 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ - - - - ${TestName} - - - - - - - -

${TestName}

- - - - - - - - - - - - - - - - - -
Test result: ${ComparisonStatus}
 
Tested area: ${AreaAsString}
Different pixels area: ${RectangleAsString}
Total pixels: ${TotalPixels}
Different pixels: ${DifferentPixels}
Unperceptible different pixels:${SmallDifferences}
Same pixels: ${EqualPixels}
 
Template (source image1) source1.png
Test sample (source image2) source2.png
Diff. image diff.png
-
-
-

Generated by ImageDiffer

- - - diff -r 9e7e2cc488e3 -r 8e10b41701d6 template_test_result.html --- a/template_test_result.html Thu Oct 07 18:24:55 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ - - - - Graphics test report - - - - - - - -

Graphics test report

- - ${RESULT} -
-
-
-

Generated by Reporter

- - - diff -r 9e7e2cc488e3 -r 8e10b41701d6 templates/template_different_images.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/templates/template_different_images.html Tue Jul 12 11:25:38 2011 +0200 @@ -0,0 +1,52 @@ + + + + ${TestName} + + + + + + + +

${TestName}

+ + + + + + + + + + + + + + + + + +
Test result: ${ComparisonStatus}
 
Tested area: ${AreaAsString}
Different pixels area: ${RectangleAsString}
Total pixels: ${TotalPixels}
Different pixels: ${DifferentPixels}
Unperceptible different pixels:${SmallDifferences}
Same pixels: ${EqualPixels}
 
Template (source image1) source1.png
Test sample (source image2) source2.png
Diff. image diff.png
+
+
+

Generated by ImageDiffer

+ + + diff -r 9e7e2cc488e3 -r 8e10b41701d6 templates/template_same_images.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/templates/template_same_images.html Tue Jul 12 11:25:38 2011 +0200 @@ -0,0 +1,52 @@ + + + + ${TestName} + + + + + + + +

${TestName}

+ + + + + + + + + + + + + + + + + +
Test result: ${ComparisonStatus}
 
Tested area: ${AreaAsString}
Different pixels area: ${RectangleAsString}
Total pixels: ${TotalPixels}
Different pixels: ${DifferentPixels}
Unperceptible different pixels:${SmallDifferences}
Same pixels: ${EqualPixels}
 
Template (source image1) source1.png
Test sample (source image2) source2.png
Diff. image diff.png
+
+
+

Generated by ImageDiffer

+ + + diff -r 9e7e2cc488e3 -r 8e10b41701d6 templates/template_test_result.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/templates/template_test_result.html Tue Jul 12 11:25:38 2011 +0200 @@ -0,0 +1,37 @@ + + + + Graphics test report + + + + + + + +

Graphics test report

+ + ${RESULT} +
+
+
+

Generated by Reporter

+ + + From ahughes at redhat.com Tue Jul 12 02:31:49 2011 From: ahughes at redhat.com (Andrew John Hughes) Date: Tue, 12 Jul 2011 10:31:49 +0100 Subject: Announcing IcedTea8 Message-ID: <20110712093149.GC14335@shelob.middle-earth.co.uk> The repository http://icedtea.classpath.org/hg/icedtea is now tracking OpenJDK8 (or will be once it is updated to use the correct repositories). OpenJDK7 support is branched off into http://icedtea.classpath.org/hg/icedtea7. Forests for both OpenJDK7 & OpenJDK8 are on the IcedTea server but we'll currently be reverting back to the OpenJDK servers until the issue with .hg_archival.txt is fixed. At present, checksums are broken by any update to the tree which is unacceptable for releases. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From jvanek at redhat.com Tue Jul 12 03:08:38 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 12 Jul 2011 12:08:38 +0200 Subject: RFC: Separation of JTreg tool into independent project In-Reply-To: <20110707120725.GA11009@shelob.middle-earth.co.uk> References: <4E11B0E3.7040605@centrum.cz> <20110705011948.GC17947@shelob.middle-earth.co.uk> <4E158325.5070807@redhat.com> <20110707120725.GA11009@shelob.middle-earth.co.uk> Message-ID: <4E1C1D26.3000808@redhat.com> On 07/07/2011 02:07 PM, Andrew John Hughes wrote: > On Thu, Jul 07, 2011 at 11:57:57AM +0200, Jiri Vanek wrote: >> On 07/05/2011 03:19 AM, Andrew John Hughes wrote: >>> On Mon, Jul 04, 2011 at 02:24:03PM +0200, Pavel Tisnovsky wrote: >>>> Hi all, >>>> >>>> some time ago I discussed with Andrew John Hughes about the separation >>>> of JTreg tool from the IcedTea6 and IcedTea7 projects. In summary (ie >>>> how I understand this task): JTreg should be developed as independent >>>> project and in the future they should be synchronized with recent JTreg >>>> version (used by Oracle guys AFAIK). >>>> >>> >>> Yes, but that's not what this patch seems to do. It just moves the source >>> code out of the tree into a zip somewhere. I was envisaging jtreg being >>> a separate project like the visualvm one with its own build infrastructure. >>> You'd then point configure at an installed jtreg.jar. That could be built >> >from the IcedTea jtreg project or alternatively, you could use the one >>> Oracle provide if you were willing to accept the proprietary licensing >>> this entails. >> >> When you are writing "like visualvm" you mean also specfile? I guess (and hope) not - as I do not see any reason why to make an distribution package for this suite. >> > > No, I'm not talking about anything related to specfiles. This is about a > development tree, not distro. packaging. > >> For the rest - you suggest to have hg repository beside icedteas, inside jtreg sources with its makefile.am and configure scripts and possible patches. Yes? > > Exactly, bar the patches. What would you need patches for? The source would be in there. > >> Tests itself will remain in openjdk. (?) > > Well yes they are part of OpenJDK. > >> Build of icedtea will remain untouched unless some "test yourself" will be enabled. In case of enabled, it will download some released tarball and will use it [rfc]. > > No, the idea is to have --with-jtreg=. > IcedTea should not become some Maven clone. What will happen when jar will be missing? It will download drop? It will checkout hg and proceed build? it will skip testing? Will this decision depend on another --with-?-=... ? My vote is for skip testing when jar is missing. (following from condition that huge amount of users is using icedtea, 1 user is using icedtea with testsuite; ) > >> >> In similar scenarios I will be happy to have jtreg in separate "package". >> >>> >>>> In the attachment there's very first version of patched Makefile.am from >>>> IcedTea6 HEAD. When user call command 'make jtreg' from command line, >>>> archive containing stable version of JTreg tool sources is downloaded >>>> into 'drops/' subdirectory, then this archive is unzipped into 'test/' >>>> subdirectory and then JTreg is compiled& run as usual. >>>> >>>> This functionality is similar as in the case of JAXP and JAXWS - these >>>> two parts of JDK are also separated from JDK sources. >>>> >>> >>> Yes, and it's one of the most annoying things Oracle have ever done, as >>> there's no change visibility. I've been thinking about reverting it >>> in the IcedTea tree so at least we can see the changes between zips >>> if not at the changeset level. >>> >>>> What do you think about this solution (which could be the same for >>>> IcedTea6 and IcedTea7, also *probably* for IcedTea-web)? >>>> >>> >>> Why would IcedTea-Web need jtreg? >> >> IcedTea-web do not have jtreg, but have its own set of unit-tests and reproducers-tests which are worthy to be run in daily report. >> Now it is some 40 tests together, and its grow-rate will not be to fast, so for now I do not thing it is good idea to separate them. >> They are run as 'make check' and 'make run-netx-dist-tests' commands. > > We're only talking about moving the jtreg code out, so there is one common repository > for IcedTea6, IcedTea7, IcedTea8 and all the release branches. I don't fancy the > alternative of patching all those with fixes (especially the release branches). > > I'm thinking this should wait until 1.12 now though, as not enough progress has been > made for 1.11. I'd like to get 1.11 out soon-ish (next few months) and something > like this really needs time to soak. > >> >> >>> >>>> Cheers, >>>> Pavel >> >> Regards J. >> > Thanx for ideas. J. From bugzilla-daemon at icedtea.classpath.org Tue Jul 12 03:25:33 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Jul 2011 10:25:33 +0000 Subject: [Bug 758] [regression] javah from 6hg/b23 generates `jlong' from `private int' In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=758 Matthias Klose changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |major Version|6-hg |7-hg --- Comment #6 from Matthias Klose 2011-07-12 10:25:33 --- doko: the icedtea6 changesets 542e1eeba6ed and 8927956c3b6b should solve the problem. if you could test it out, that would be great. this does fix the build using 6b23 as the bootstrap java. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From jvanek at redhat.com Tue Jul 12 03:25:41 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 12 Jul 2011 12:25:41 +0200 Subject: RFC: Separation of JTreg tool into independent project In-Reply-To: <4E1AEAA5.3050909@redhat.com> References: <4E11B0E3.7040605@centrum.cz> <20110705011948.GC17947@shelob.middle-earth.co.uk> <4E1AEAA5.3050909@redhat.com> Message-ID: <4E1C2125.5060400@redhat.com> ...snip > > Hi Andrew, > > I tried to create separated "jtreg project" using autotools. It is > available (for RFC) here: > > hg clone http://icedtea.classpath.org/people/ptisnovs/jtreg > ..snip > I have walked through and have few comments: Are autotools mess (aprox 300k of code) really needed for this tiny, pure java, project? Autotools in this case do this - check java, javac, jar tools. Add default prefix. All this can be in much more well arranged way withou it IMHO. (for prefix see http://people.freedesktop.org/~dbn/pkg-config-guide.html) To make file itself - maybe the number of goals can be doubled stamped build-jtreg for building classes and jtreg.jar for jaring classes each with proepr clean (rm -rf src/classes in jtreg.jar) really stinks;) Thanx for any ideas upon this and work with ^^ at free will ;) J. From mark at klomp.org Tue Jul 12 03:30:41 2011 From: mark at klomp.org (Mark Wielaard) Date: Tue, 12 Jul 2011 12:30:41 +0200 Subject: Announcing IcedTea8 In-Reply-To: <20110712093149.GC14335@shelob.middle-earth.co.uk> References: <20110712093149.GC14335@shelob.middle-earth.co.uk> Message-ID: <1310466641.3271.5.camel@springer.wildebeest.org> On Tue, 2011-07-12 at 10:31 +0100, Andrew John Hughes wrote: > The repository http://icedtea.classpath.org/hg/icedtea is now tracking OpenJDK8 > (or will be once it is updated to use the correct repositories). > > OpenJDK7 support is branched off into http://icedtea.classpath.org/hg/icedtea7. Great, thanks Andrew. > Forests for both OpenJDK7 & OpenJDK8 are on the IcedTea server but we'll currently > be reverting back to the OpenJDK servers until the issue with .hg_archival.txt is > fixed. At present, checksums are broken by any update to the tree which is > unacceptable for releases. Andrew already found and fixed it. So just for the archives (pun intended), the following setting got changed from True to False: [ui] # Whether to include the .hg_archival.txt file containing meta data # (hashes for the repository base and for tip) in archives created # by the :hg:`archive` command or downloaded via hgweb. # Default is True. archivemeta=False From andrew at icedtea.classpath.org Tue Jul 12 03:37:30 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 12 Jul 2011 10:37:30 +0000 Subject: /hg/icedtea: Prepare for IcedTea8; update to 3.0 beta 1. Message-ID: changeset 2873a95c05c8 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=2873a95c05c8 author: Andrew John Hughes date: Tue Jul 12 11:37:19 2011 +0100 Prepare for IcedTea8; update to 3.0 beta 1. 2011-07-12 Andrew John Hughes * NEWS: Add section for 3.0 beta 1. * configure.ac: Update version to 3.0b1pre. diffstat: ChangeLog | 6 ++++++ NEWS | 2 ++ configure.ac | 2 +- 3 files changed, 9 insertions(+), 1 deletions(-) diffs (34 lines): diff -r dd5dc6567d11 -r 2873a95c05c8 ChangeLog --- a/ChangeLog Fri Jul 08 10:51:52 2011 +0200 +++ b/ChangeLog Tue Jul 12 11:37:19 2011 +0100 @@ -1,3 +1,9 @@ +2011-07-12 Andrew John Hughes + + * NEWS: Add section for 3.0 beta 1. + * configure.ac: Update version to + 3.0b1pre. + 2011-07-08 Xerxes R??nby JamVM: Is self-hosting. diff -r dd5dc6567d11 -r 2873a95c05c8 NEWS --- a/NEWS Fri Jul 08 10:51:52 2011 +0200 +++ b/NEWS Tue Jul 12 11:37:19 2011 +0100 @@ -9,6 +9,8 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY +New in release 3.0 beta 1 (2011-XX-XX): + New in release 2.0 (2011-XX-XX): * JamVM diff -r dd5dc6567d11 -r 2873a95c05c8 configure.ac --- a/configure.ac Fri Jul 08 10:51:52 2011 +0200 +++ b/configure.ac Tue Jul 12 11:37:19 2011 +0100 @@ -1,4 +1,4 @@ -AC_INIT([icedtea], [2.0pre], [distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea], [3.0b1pre], [distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) From bugzilla-daemon at icedtea.classpath.org Tue Jul 12 03:38:20 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Jul 2011 10:38:20 +0000 Subject: [Bug 758] [regression] javah from 6hg/b23 generates `jlong' from `private int' In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=758 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|major |normal -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From ptisnovs at redhat.com Tue Jul 12 04:32:33 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Tue, 12 Jul 2011 13:32:33 +0200 Subject: Reviewer needed: patch for regression test jdk/test/java/util/zip/ConstructDeflaterInput.java in IcedTea6 HEAD Message-ID: <4E1C30D1.8060807@redhat.com> Hi, I'd like to push patch containing fix for regression test jdk/test/java/util/zip/ConstructDeflaterInput.java. This test sometimes asynchronously prints messages into JTreg log files which causes the autobuilder to find false changes in the results of regression tests (such messages should be redirected to appropriate .jtr file). This behaviour can be seen here for example: http://icedtea.classpath.org/pipermail/testresults/2011-July/003284.html http://icedtea.classpath.org/pipermail/testresults/2011-July/003288.html To fix this issue it's AFAIK necessary to run the test in othervm mode. ChangeLog entry: 2011-07-12 Pavel Tisnovsky * Makefile.am: added new patch * patches/jtreg-ConstructDeflaterInput-fix.patch: Regression test jdk/test/java/util/zip/ConstructDeflaterInput.java should be run in othervm mode to not to print messages to JTreg log files (such messages must be stored in .jtr file). Can anybody please review this change? Thank you in advance, Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: hg.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110712/9f7efc82/hg.diff From doko at ubuntu.com Tue Jul 12 05:17:31 2011 From: doko at ubuntu.com (Matthias Klose) Date: Tue, 12 Jul 2011 14:17:31 +0200 Subject: [patch/7b143] don't assume that mapfiles are available for every architecture Message-ID: <4E1C3B5B.20409@ubuntu.com> don't assume that mapfiles are available for every architecture; most likely only seen with some zero builds. Matthias -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: jdk-no-mapfile.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110712/80cf6403/jdk-no-mapfile.diff From ahughes at redhat.com Tue Jul 12 05:20:33 2011 From: ahughes at redhat.com (Andrew John Hughes) Date: Tue, 12 Jul 2011 13:20:33 +0100 Subject: Reviewer needed: patch for regression test jdk/test/java/util/zip/ConstructDeflaterInput.java in IcedTea6 HEAD In-Reply-To: <4E1C30D1.8060807@redhat.com> References: <4E1C30D1.8060807@redhat.com> Message-ID: <20110712122033.GF14335@shelob.middle-earth.co.uk> On Tue, Jul 12, 2011 at 01:32:33PM +0200, Pavel Tisnovsky wrote: > Hi, > > I'd like to push patch containing fix for regression test > jdk/test/java/util/zip/ConstructDeflaterInput.java. > > This test sometimes asynchronously prints messages into JTreg log files > which causes the autobuilder to find false changes in the results of > regression tests (such messages should be redirected to appropriate .jtr > file). This behaviour can be seen here for example: > > http://icedtea.classpath.org/pipermail/testresults/2011-July/003284.html > http://icedtea.classpath.org/pipermail/testresults/2011-July/003288.html > > To fix this issue it's AFAIK necessary to run the test in othervm mode. > > ChangeLog entry: > > 2011-07-12 Pavel Tisnovsky > > * Makefile.am: added new patch > * patches/jtreg-ConstructDeflaterInput-fix.patch: > Regression test jdk/test/java/util/zip/ConstructDeflaterInput.java > should be run in othervm mode to not to print messages to JTreg > log files (such messages must be stored in .jtr file). > > Can anybody please review this change? > > Thank you in advance, > Pavel I don't follow this; surely the fix should be to redirect the output as you suggest? -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ptisnovs at redhat.com Tue Jul 12 05:38:40 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Tue, 12 Jul 2011 14:38:40 +0200 Subject: Reviewer needed: patch for regression test jdk/test/java/util/zip/ConstructDeflaterInput.java in IcedTea6 HEAD In-Reply-To: <20110712122033.GF14335@shelob.middle-earth.co.uk> References: <4E1C30D1.8060807@redhat.com> <20110712122033.GF14335@shelob.middle-earth.co.uk> Message-ID: <4E1C4050.7020004@redhat.com> Andrew John Hughes wrote: > On Tue, Jul 12, 2011 at 01:32:33PM +0200, Pavel Tisnovsky wrote: >> Hi, >> >> I'd like to push patch containing fix for regression test >> jdk/test/java/util/zip/ConstructDeflaterInput.java. >> >> This test sometimes asynchronously prints messages into JTreg log files >> which causes the autobuilder to find false changes in the results of >> regression tests (such messages should be redirected to appropriate .jtr >> file). This behaviour can be seen here for example: >> >> http://icedtea.classpath.org/pipermail/testresults/2011-July/003284.html >> http://icedtea.classpath.org/pipermail/testresults/2011-July/003288.html >> >> To fix this issue it's AFAIK necessary to run the test in othervm mode. >> >> ChangeLog entry: >> >> 2011-07-12 Pavel Tisnovsky >> >> * Makefile.am: added new patch >> * patches/jtreg-ConstructDeflaterInput-fix.patch: >> Regression test jdk/test/java/util/zip/ConstructDeflaterInput.java >> should be run in othervm mode to not to print messages to JTreg >> log files (such messages must be stored in .jtr file). >> >> Can anybody please review this change? >> >> Thank you in advance, >> Pavel > > I don't follow this; surely the fix should be to redirect the output as you suggest? > Standard and error output is redirected automagically by JTreg tool, but the "end" method is called from JVM when the test is already finished and the appropriate .jtr file is closed. From ptisnovs at icedtea.classpath.org Tue Jul 12 05:55:52 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 12 Jul 2011 12:55:52 +0000 Subject: /hg/gfx-test: Added command for deleting compiled class file for... Message-ID: changeset 1c22439b7d07 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=1c22439b7d07 author: Pavel Tisnovsky date: Tue Jul 12 14:55:44 2011 +0200 Added command for deleting compiled class file for selected test suite. diffstat: src/org/gfxtest/harness/Configuration.java | 6 ++ src/org/gfxtest/harness/Dialogs.java | 25 +++++--- src/org/gfxtest/harness/MainWindow.java | 84 +++++++++++++++++++++++++++-- 3 files changed, 97 insertions(+), 18 deletions(-) diffs (233 lines): diff -r 8e10b41701d6 -r 1c22439b7d07 src/org/gfxtest/harness/Configuration.java --- a/src/org/gfxtest/harness/Configuration.java Tue Jul 12 11:25:38 2011 +0200 +++ b/src/org/gfxtest/harness/Configuration.java Tue Jul 12 14:55:44 2011 +0200 @@ -56,6 +56,7 @@ private static final String DEFAULT_TESTED_JAVA = "/usr/lib/jvm/java/bin/java"; private static final String DEFAULT_SAMPLES_DIRECTORY = "samples"; private static final String DEFAULT_OUTPUT_DIRECTORY = "output"; + private static final String TEST_CLASSES_DIRECTORY = "test-build/org/gfxtest/testsuites"; private String referenceJava; private String testedJava; @@ -235,4 +236,9 @@ { this.outputDirectory = outputDirectory; } + + public String getTestClassesDirectory() + { + return TEST_CLASSES_DIRECTORY; + } } diff -r 8e10b41701d6 -r 1c22439b7d07 src/org/gfxtest/harness/Dialogs.java --- a/src/org/gfxtest/harness/Dialogs.java Tue Jul 12 11:25:38 2011 +0200 +++ b/src/org/gfxtest/harness/Dialogs.java Tue Jul 12 14:55:44 2011 +0200 @@ -61,45 +61,50 @@ this.window = window; } - private void infoMessage(String message) + public void showInfoMessage(String message) { JOptionPane.showMessageDialog(this.window, message, this.title, JOptionPane.INFORMATION_MESSAGE); } - private void errorMessage(String message) + public void showErrorMessage(String message) { JOptionPane.showMessageDialog(this.window, message, this.title, JOptionPane.ERROR_MESSAGE); } + public void showWarningMessage(String message) + { + JOptionPane.showMessageDialog(this.window, message, this.title, JOptionPane.WARNING_MESSAGE); + } + public void showNoTestSelectedMessage() { - this.errorMessage("No test selected in left list box!"); + this.showErrorMessage("No test selected in left list box!"); } public void showDialogWhenCompilationFailed(Exception e) { - this.errorMessage("Error occured during compilation: " + e.getMessage()); + this.showErrorMessage("Error occured during compilation: " + e.getMessage()); } public void showDialogWhenRunTestFailed(Exception e) { - this.errorMessage("Error occured during test run: " + e.getMessage()); + this.showErrorMessage("Error occured during test run: " + e.getMessage()); } public void showAboutDialog() { - this.infoMessage(ABOUT_TEXT); + this.showInfoMessage(ABOUT_TEXT); } public void showDialogAfterLoadConfiguration(boolean result) { if (result) { - this.infoMessage("Configuration successfully loaded"); + this.showInfoMessage("Configuration successfully loaded"); } else { - this.errorMessage("Error occured during configuration loading!"); + this.showErrorMessage("Error occured during configuration loading!"); } } @@ -107,11 +112,11 @@ { if (result) { - this.infoMessage("Configuration successfully saved"); + this.showInfoMessage("Configuration successfully saved"); } else { - this.errorMessage("Error occured during configuration saving!"); + this.showErrorMessage("Error occured during configuration saving!"); } } } diff -r 8e10b41701d6 -r 1c22439b7d07 src/org/gfxtest/harness/MainWindow.java --- a/src/org/gfxtest/harness/MainWindow.java Tue Jul 12 11:25:38 2011 +0200 +++ b/src/org/gfxtest/harness/MainWindow.java Tue Jul 12 14:55:44 2011 +0200 @@ -86,6 +86,8 @@ private JTextArea resultTextArea = new JTextArea(5, 40); private JButton commandCompile = new JButton("Compile"); private JButton commandRun = new JButton("Run"); + private JButton commandDeleteClass = new JButton("Delete test class"); + private JButton commandRefresh = new JButton("Refresh test list"); protected JList jTestList = null; protected JTable jResultsTable; private JLabel topRightLabel = new JLabel("sample image"); @@ -310,13 +312,20 @@ } }); - JButton commandRefresh = new JButton("Refresh test list"); - commandRefresh.addActionListener(new ActionListener() + this.commandDeleteClass.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) { + onCommandDeleteClassPressed(); + } + }); + + this.commandRefresh.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - refreshTestList(); + onRefreshTestListPressed(); } }); @@ -328,14 +337,15 @@ panel.add(new JLabel("Gfx. test"), constraints(0, 0, 1, 1, 0.4, 0.0, GridBagConstraints.HORIZONTAL)); panel.add(new JLabel("Commands"), constraints(1, 0, 1, 1, 0.3, 0.0, GridBagConstraints.HORIZONTAL)); panel.add(this.testResultsLabel, constraints(2, 0, 1, 1, 0.3, 0.0, GridBagConstraints.HORIZONTAL)); - panel.add(testListPane, constraints(0, 1, 1, 6, 0.4, 1.0, GridBagConstraints.BOTH)); - panel.add(resultsPane, constraints(2, 1, 1, 4, 0.3, 0.5, GridBagConstraints.BOTH)); - panel.add(resultTextPane, constraints(1, 5, 2, 1, 0.3, 0.5, GridBagConstraints.BOTH)); + panel.add(testListPane, constraints(0, 1, 1, 7, 0.4, 1.0, GridBagConstraints.BOTH)); + panel.add(resultsPane, constraints(2, 1, 1, 6, 0.3, 0.5, GridBagConstraints.BOTH)); + panel.add(resultTextPane, constraints(1, 7, 2, 1, 0.3, 0.5, GridBagConstraints.BOTH)); panel.add(this.commandCompile, constraints(1, 1, 1, 1, 0.1, 0.0, GridBagConstraints.HORIZONTAL)); panel.add(this.commandRun, constraints(1, 2, 1, 1, 0.1, 0.0, GridBagConstraints.HORIZONTAL)); - panel.add(commandRefresh, constraints(1, 4, 1, 1, 0.1, 0.0, GridBagConstraints.HORIZONTAL)); - panel.add(new JPanel(), constraints(1, 3, 1, 1, 0.1, 1.0, GridBagConstraints.BOTH)); + panel.add(this.commandDeleteClass, constraints(1, 4, 1, 1, 0.1, 0.0, GridBagConstraints.HORIZONTAL)); + panel.add(this.commandRefresh, constraints(1, 6, 1, 1, 0.1, 0.0, GridBagConstraints.HORIZONTAL)); + panel.add(new JPanel(), constraints(1, 5, 1, 1, 0.1, 1.0, GridBagConstraints.BOTH)); } /** @@ -418,6 +428,7 @@ this.testResultsLabel.setText("no test selected"); this.commandCompile.setEnabled(false); this.commandRun.setEnabled(false); + this.commandDeleteClass.setEnabled(false); } private void setTestResultsLabel(String selectedTest) @@ -425,6 +436,7 @@ this.testResultsLabel.setText(selectedTest + " results"); this.commandCompile.setEnabled(true); this.commandRun.setEnabled(true); + this.commandDeleteClass.setEnabled(true); } protected void selectTestSuite(int selectedIndex) @@ -708,6 +720,62 @@ refreshTestResults(this.selectedTestSuite); } + protected void onCommandDeleteClassPressed() { + if (this.selectedTestSuite == null) + { + this.dialogs.showNoTestSelectedMessage(); + } + String outputDirectory = this.configuration.getTestClassesDirectory(); + if (outputDirectory == null) + { + this.dialogs.showErrorMessage("Output directory is not set"); + } + File fileToDelete = new File(outputDirectory, this.selectedTestSuite + ".class"); + if (!fileToDelete.exists()) + { + try + { + this.dialogs.showWarningMessage("File " + fileToDelete.getCanonicalPath() + " does not exists"); + } + catch (IOException e) + { + e.printStackTrace(); + } + } + else + { + if (fileToDelete.delete()) + { + try + { + this.dialogs.showInfoMessage("File " + fileToDelete.getCanonicalPath() + " deleted"); + } + catch (IOException e) { + e.printStackTrace(); + } + } + else + { + try + { + this.dialogs.showErrorMessage("File " + fileToDelete.getCanonicalPath() + " can not be deleted"); + } + catch (IOException e) { + e.printStackTrace(); + } + } + } + } + + protected void onCommandShowSourcePressed() { + // TODO Auto-generated method stub + + } + + protected void onRefreshTestListPressed() { + refreshTestList(); + } + private void runTestHarness() { this.configuration = new Configuration(); From ahughes at redhat.com Tue Jul 12 06:28:02 2011 From: ahughes at redhat.com (Andrew John Hughes) Date: Tue, 12 Jul 2011 14:28:02 +0100 Subject: Reviewer needed: patch for regression test jdk/test/java/util/zip/ConstructDeflaterInput.java in IcedTea6 HEAD In-Reply-To: <4E1C4050.7020004@redhat.com> References: <4E1C30D1.8060807@redhat.com> <20110712122033.GF14335@shelob.middle-earth.co.uk> <4E1C4050.7020004@redhat.com> Message-ID: <20110712132802.GG14335@shelob.middle-earth.co.uk> On Tue, Jul 12, 2011 at 02:38:40PM +0200, Pavel Tisnovsky wrote: > Andrew John Hughes wrote: > > On Tue, Jul 12, 2011 at 01:32:33PM +0200, Pavel Tisnovsky wrote: > >> Hi, > >> > >> I'd like to push patch containing fix for regression test > >> jdk/test/java/util/zip/ConstructDeflaterInput.java. > >> > >> This test sometimes asynchronously prints messages into JTreg log files > >> which causes the autobuilder to find false changes in the results of > >> regression tests (such messages should be redirected to appropriate .jtr > >> file). This behaviour can be seen here for example: > >> > >> http://icedtea.classpath.org/pipermail/testresults/2011-July/003284.html > >> http://icedtea.classpath.org/pipermail/testresults/2011-July/003288.html > >> > >> To fix this issue it's AFAIK necessary to run the test in othervm mode. > >> > >> ChangeLog entry: > >> > >> 2011-07-12 Pavel Tisnovsky > >> > >> * Makefile.am: added new patch > >> * patches/jtreg-ConstructDeflaterInput-fix.patch: > >> Regression test jdk/test/java/util/zip/ConstructDeflaterInput.java > >> should be run in othervm mode to not to print messages to JTreg > >> log files (such messages must be stored in .jtr file). > >> > >> Can anybody please review this change? > >> > >> Thank you in advance, > >> Pavel > > > > I don't follow this; surely the fix should be to redirect the output as you suggest? > > > > Standard and error output is redirected automagically by JTreg tool, but > the "end" method is called from JVM when the test is already finished > and the appropriate .jtr file is closed. > Ok, then yes this looks fine (assuming it fixes the issue). -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Tue Jul 12 06:35:34 2011 From: ahughes at redhat.com (Andrew John Hughes) Date: Tue, 12 Jul 2011 14:35:34 +0100 Subject: [PATCH REVIEW] [1.10] RFC: Support Linux 3 In-Reply-To: <4E1C0FD7.5020004@redhat.com> References: <20110708151121.GD13502@shelob.middle-earth.co.uk> <4E1C0FD7.5020004@redhat.com> Message-ID: <20110712133534.GI14335@shelob.middle-earth.co.uk> On Tue, Jul 12, 2011 at 10:11:51AM +0100, Andrew Haley wrote: > On 08/07/11 16:11, Andrew John Hughes wrote: > > I'd like to backport the attached patch to 1.10. > > What's the upstream status of this? > > Andrew. There isn't one. Our last couple of attempts to post patches have been met with a refusal to add anything more to OpenJDK7. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From aph at redhat.com Tue Jul 12 06:38:25 2011 From: aph at redhat.com (Andrew Haley) Date: Tue, 12 Jul 2011 14:38:25 +0100 Subject: [PATCH REVIEW] [1.10] RFC: Support Linux 3 In-Reply-To: <20110712133534.GI14335@shelob.middle-earth.co.uk> References: <20110708151121.GD13502@shelob.middle-earth.co.uk> <4E1C0FD7.5020004@redhat.com> <20110712133534.GI14335@shelob.middle-earth.co.uk> Message-ID: <4E1C4E51.7090204@redhat.com> On 07/12/2011 02:35 PM, Andrew John Hughes wrote: > On Tue, Jul 12, 2011 at 10:11:51AM +0100, Andrew Haley wrote: >> On 08/07/11 16:11, Andrew John Hughes wrote: >>> I'd like to backport the attached patch to 1.10. >> >> What's the upstream status of this? > > There isn't one. Our last couple of attempts to post patches > have been met with a refusal to add anything more to OpenJDK7. Ahh, the release freeze, I see. So, I suppose we'll have a backlog of patches to apply to the JDK7 Update project once it's live. Andrew. From ahughes at redhat.com Tue Jul 12 06:39:29 2011 From: ahughes at redhat.com (Andrew John Hughes) Date: Tue, 12 Jul 2011 14:39:29 +0100 Subject: RFC: Separation of JTreg tool into independent project In-Reply-To: <4E1C1D26.3000808@redhat.com> References: <4E11B0E3.7040605@centrum.cz> <20110705011948.GC17947@shelob.middle-earth.co.uk> <4E158325.5070807@redhat.com> <20110707120725.GA11009@shelob.middle-earth.co.uk> <4E1C1D26.3000808@redhat.com> Message-ID: <20110712133928.GJ14335@shelob.middle-earth.co.uk> On Tue, Jul 12, 2011 at 12:08:38PM +0200, Jiri Vanek wrote: > On 07/07/2011 02:07 PM, Andrew John Hughes wrote: > >On Thu, Jul 07, 2011 at 11:57:57AM +0200, Jiri Vanek wrote: > >>On 07/05/2011 03:19 AM, Andrew John Hughes wrote: > >>>On Mon, Jul 04, 2011 at 02:24:03PM +0200, Pavel Tisnovsky wrote: > >>>>Hi all, > >>>> > >>>>some time ago I discussed with Andrew John Hughes about the separation > >>>>of JTreg tool from the IcedTea6 and IcedTea7 projects. In summary (ie > >>>>how I understand this task): JTreg should be developed as independent > >>>>project and in the future they should be synchronized with recent JTreg > >>>>version (used by Oracle guys AFAIK). > >>>> > >>> > >>>Yes, but that's not what this patch seems to do. It just moves the source > >>>code out of the tree into a zip somewhere. I was envisaging jtreg being > >>>a separate project like the visualvm one with its own build infrastructure. > >>>You'd then point configure at an installed jtreg.jar. That could be built > >>>from the IcedTea jtreg project or alternatively, you could use the one > >>>Oracle provide if you were willing to accept the proprietary licensing > >>>this entails. > >> > >>When you are writing "like visualvm" you mean also specfile? I guess (and hope) not - as I do not see any reason why to make an distribution package for this suite. > >> > > > >No, I'm not talking about anything related to specfiles. This is about a > >development tree, not distro. packaging. > > > >>For the rest - you suggest to have hg repository beside icedteas, inside jtreg sources with its makefile.am and configure scripts and possible patches. Yes? > > > >Exactly, bar the patches. What would you need patches for? The source would be in there. > > > >>Tests itself will remain in openjdk. (?) > > > >Well yes they are part of OpenJDK. > > > >>Build of icedtea will remain untouched unless some "test yourself" will be enabled. In case of enabled, it will download some released tarball and will use it [rfc]. > > > >No, the idea is to have --with-jtreg=. > >IcedTea should not become some Maven clone. > > What will happen when jar will be missing? > It will download drop? It will checkout hg and proceed build? it will skip testing? Will this decision depend on another --with-?-=... ? > > My vote is for skip testing when jar is missing. (following from condition that huge amount of users is using icedtea, 1 user is using icedtea with testsuite; ) I would say warn during configure, and print a message if make check is invoked. I don't follow your 'condition'; what is your basis for these statistics as to users of the testsuite? I can assure there is more than one user. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Tue Jul 12 06:41:08 2011 From: ahughes at redhat.com (Andrew John Hughes) Date: Tue, 12 Jul 2011 14:41:08 +0100 Subject: [PATCH REVIEW] [1.10] RFC: Support Linux 3 In-Reply-To: <4E1C4E51.7090204@redhat.com> References: <20110708151121.GD13502@shelob.middle-earth.co.uk> <4E1C0FD7.5020004@redhat.com> <20110712133534.GI14335@shelob.middle-earth.co.uk> <4E1C4E51.7090204@redhat.com> Message-ID: <20110712134108.GK14335@shelob.middle-earth.co.uk> On Tue, Jul 12, 2011 at 02:38:25PM +0100, Andrew Haley wrote: > On 07/12/2011 02:35 PM, Andrew John Hughes wrote: > > On Tue, Jul 12, 2011 at 10:11:51AM +0100, Andrew Haley wrote: > >> On 08/07/11 16:11, Andrew John Hughes wrote: > >>> I'd like to backport the attached patch to 1.10. > >> > >> What's the upstream status of this? > > > > There isn't one. Our last couple of attempts to post patches > > have been met with a refusal to add anything more to OpenJDK7. > > Ahh, the release freeze, I see. So, I suppose we'll have a > backlog of patches to apply to the JDK7 Update project once it's > live. > It's not a major problem. The fix is in IcedTea6, IcedTea7 and IcedTea8 and now on our release branches, so will reach our users. > Andrew. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From bugzilla-daemon at icedtea.classpath.org Tue Jul 12 07:00:22 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Jul 2011 14:00:22 +0000 Subject: [Bug 759] New: build stamps for pulseaudio not working correctly? Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=759 Summary: build stamps for pulseaudio not working correctly? Product: IcedTea Version: 7-hg Platform: all OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: IcedTea7 AssignedTo: ahughes at redhat.com ReportedBy: doko at ubuntu.com CC: unassigned at icedtea.classpath.org this is seen in https://launchpadlibrarian.net/74920031/buildlog_ubuntu-oneiric-armel.openjdk-7_7~b143-2.0~pre1-1_FAILEDTOBUILD.txt.gz the build error is addressed in a separate report, but here, the file which fails to build is tried to compile a second time, which it shouldn't. Can't see which stamps are wrong/missing. or is this an ignored error? -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Tue Jul 12 07:14:31 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Jul 2011 14:14:31 +0000 Subject: [Bug 759] build stamps for pulseaudio not working correctly? In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=759 --- Comment #1 from Andrew John Hughes 2011-07-12 14:14:31 --- Please paste the appropriate part of the log. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From ahughes at redhat.com Tue Jul 12 07:58:00 2011 From: ahughes at redhat.com (Andrew John Hughes) Date: Tue, 12 Jul 2011 15:58:00 +0100 Subject: Review Request: zero-methodHandle 7009923-regression In-Reply-To: <4E1C5E4F.1080307@zafena.se> References: <4E1C5E4F.1080307@zafena.se> Message-ID: <20110712145800.GL14335@shelob.middle-earth.co.uk> On Tue, Jul 12, 2011 at 04:46:39PM +0200, Xerxes R?nby wrote: > Hi all! > > Zero FTBFS after the recent 7009923 JSR292 fixes like this: > openjdk/hotspot/src/cpu/zero/vm/stack_zero.cpp:72: > error: no matching function for call to > 'Exceptions::throw_stack_overflow_exception(JavaThread*&, const char [110], > int)' > openjdk/hotspot/src/share/vm/utilities/exceptions.hpp:147: > note: candidates are: static void > Exceptions::throw_stack_overflow_exception(Thread*, const char*, int, > methodHandle) > make[7]: *** [stack_zero.o] Error 1 > > This webrev updates Zero to handle the > Exceptions::throw_stack_overflow_exception API change. > > http://labb.zafena.se/openjdk/zero-methodHandle-7009923-regression/ > Summary of changes: 2 lines changed: 1 ins; 0 del; 1 mod; 87 unchg > > I don't have a bug id for this. > > I have signed the SCA. > http://sca.java.net/CA_signatories.htm > > Cheers > Xerxes Have you pushed this to any of the IcedTea repositories? -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From xerxes at zafena.se Tue Jul 12 08:01:26 2011 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Tue, 12 Jul 2011 17:01:26 +0200 Subject: Review Request: zero-methodHandle 7009923-regression In-Reply-To: <20110712145800.GL14335@shelob.middle-earth.co.uk> References: <4E1C5E4F.1080307@zafena.se> <20110712145800.GL14335@shelob.middle-earth.co.uk> Message-ID: <4E1C61C6.9000506@zafena.se> On 2011-07-12 16:58, Andrew John Hughes wrote: > On Tue, Jul 12, 2011 at 04:46:39PM +0200, Xerxes R?nby wrote: >> Hi all! >> >> Zero FTBFS after the recent 7009923 JSR292 fixes like this: >> openjdk/hotspot/src/cpu/zero/vm/stack_zero.cpp:72: >> error: no matching function for call to >> 'Exceptions::throw_stack_overflow_exception(JavaThread*&, const char [110], >> int)' >> openjdk/hotspot/src/share/vm/utilities/exceptions.hpp:147: >> note: candidates are: static void >> Exceptions::throw_stack_overflow_exception(Thread*, const char*, int, >> methodHandle) >> make[7]: *** [stack_zero.o] Error 1 >> >> This webrev updates Zero to handle the >> Exceptions::throw_stack_overflow_exception API change. >> >> http://labb.zafena.se/openjdk/zero-methodHandle-7009923-regression/ >> Summary of changes: 2 lines changed: 1 ins; 0 del; 1 mod; 87 unchg >> >> I don't have a bug id for this. >> >> I have signed the SCA. >> http://sca.java.net/CA_signatories.htm >> >> Cheers >> Xerxes > > Have you pushed this to any of the IcedTea repositories? No. i have only posted the patch to the icedtea bugzilla: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=753 From ptisnovs at icedtea.classpath.org Tue Jul 12 08:14:51 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 12 Jul 2011 15:14:51 +0000 Subject: /hg/icedtea6: Fix of regression test jdk/test/java/util/zip/Cons... Message-ID: changeset fffcbae2c099 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=fffcbae2c099 author: ptisnovs date: Tue Jul 12 17:14:42 2011 +0200 Fix of regression test jdk/test/java/util/zip/ConstructDeflaterInput.java diffstat: ChangeLog | 8 ++++++++ Makefile.am | 3 ++- patches/jtreg-ConstructDeflaterInput-fix.patch | 9 +++++++++ 3 files changed, 19 insertions(+), 1 deletions(-) diffs (42 lines): diff -r 98a64707ae8c -r fffcbae2c099 ChangeLog --- a/ChangeLog Tue Jul 12 09:52:46 2011 +0200 +++ b/ChangeLog Tue Jul 12 17:14:42 2011 +0200 @@ -1,3 +1,11 @@ +2011-07-12 Pavel Tisnovsky + + * Makefile.am: added new patch + * patches/jtreg-ConstructDeflaterInput-fix.patch: + Regression test jdk/test/java/util/zip/ConstructDeflaterInput.java + should be run in othervm mode to not to print messages to JTreg + log files (such messages must be stored in .jtr file). + 2011-07-12 Pavel Tisnovsky * Makefile.am: added new patch diff -r 98a64707ae8c -r fffcbae2c099 Makefile.am --- a/Makefile.am Tue Jul 12 09:52:46 2011 +0200 +++ b/Makefile.am Tue Jul 12 17:14:42 2011 +0200 @@ -362,7 +362,8 @@ patches/openjdk/7029152-String_intrinsics_miss_optimization.patch \ patches/openjdk/6711682-JCheckBox_in_JTable_does_not_respond_to_click.patch \ patches/jtreg-7020373-add-ignore-tag.patch \ - patches/openjdk/6758179-D3D_AlphaComposite_is_applied_incorrectly.patch + patches/openjdk/6758179-D3D_AlphaComposite_is_applied_incorrectly.patch \ + patches/jtreg-ConstructDeflaterInput-fix.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r 98a64707ae8c -r fffcbae2c099 patches/jtreg-ConstructDeflaterInput-fix.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/jtreg-ConstructDeflaterInput-fix.patch Tue Jul 12 17:14:42 2011 +0200 @@ -0,0 +1,10 @@ +--- openjdk.orig/jdk/test/java/util/zip/ConstructDeflaterInput_original.java 2011-07-05 20:36:25.000000000 +0200 ++++ openjdk/jdk/test/java/util/zip/ConstructDeflaterInput.java 2011-07-11 15:35:00.000000000 +0200 +@@ -25,6 +25,7 @@ + * @test + * @bug 4679743 + * @summary Test parts of DeflaterInputStream code that don't really do I/O. ++ * @run main/othervm ConstructDeflaterInput + */ + + import java.io.*; From ChrisPhi at LGonQn.Org Tue Jul 12 13:01:02 2011 From: ChrisPhi at LGonQn.Org (Chris Phillips) Date: Tue, 12 Jul 2011 16:01:02 -0400 Subject: distro-pkg-dev Digest, Vol 50, Issue 32 In-Reply-To: References: Message-ID: <4E1CA7FE.20005@LGonQn.Org> Hi Xerxes, Andrew Hughes,John Rose The patch as-is will make 143 build , but several more are needed for 147 / hs21-b17 (fcs) , and I'm still debugging some shark [jsr292?] issues in that build (after the additional patches). Chris On 12/07/11 03:00 PM, distro-pkg-dev-request at openjdk.java.net wrote: > ------------------------------ Message: 5 Date: Tue, 12 Jul 2011 > 17:01:26 +0200 From: Xerxes R?nby Subject: Re: > Review Request: zero-methodHandle 7009923-regression To: Andrew John > Hughes Cc: distro-pkg-dev at openjdk.java.net > Message-ID: <4E1C61C6.9000506 at zafena.se> Content-Type: text/plain; > charset=ISO-8859-1; format=flowed On 2011-07-12 16:58, Andrew John > Hughes wrote: >> > On Tue, Jul 12, 2011 at 04:46:39PM +0200, Xerxes R?nby wrote: >>> >> Hi all! >>> >> >>> >> Zero FTBFS after the recent 7009923 JSR292 fixes like this: >>> >> openjdk/hotspot/src/cpu/zero/vm/stack_zero.cpp:72: >>> >> error: no matching function for call to >>> >> 'Exceptions::throw_stack_overflow_exception(JavaThread*&, const char [110], >>> >> int)' >>> >> openjdk/hotspot/src/share/vm/utilities/exceptions.hpp:147: >>> >> note: candidates are: static void >>> >> Exceptions::throw_stack_overflow_exception(Thread*, const char*, int, >>> >> methodHandle) >>> >> make[7]: *** [stack_zero.o] Error 1 >>> >> >>> >> This webrev updates Zero to handle the >>> >> Exceptions::throw_stack_overflow_exception API change. >>> >> >>> >> http://labb.zafena.se/openjdk/zero-methodHandle-7009923-regression/ >>> >> Summary of changes: 2 lines changed: 1 ins; 0 del; 1 mod; 87 unchg >>> >> >>> >> I don't have a bug id for this. >>> >> >>> >> I have signed the SCA. >>> >> http://sca.java.net/CA_signatories.htm >>> >> >>> >> Cheers >>> >> Xerxes >> > >> > Have you pushed this to any of the IcedTea repositories? > No. i have only posted the patch to the icedtea bugzilla: > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=753 > > From bugzilla-daemon at icedtea.classpath.org Wed Jul 13 00:54:17 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 13 Jul 2011 07:54:17 +0000 Subject: [Bug 759] build stamps for pulseaudio not working correctly? In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=759 --- Comment #2 from Matthias Klose 2011-07-13 07:54:16 --- seen in a 6b23 zero build too, see https://buildd.debian.org/status/fetch.php?pkg=openjdk-6&arch=mips&ver=6b23%7Epre3-1&stamp=1310172824 the build doesn't stop with the first error. touch stamps/add-nss-ecj.stamp cp /build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build/tz.properties \ /build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build/openjdk.build-ecj/j2sdk-image/jre/lib; touch stamps/add-tzdata-support-ecj.stamp mkdir -p stamps touch stamps/icedtea-against-ecj.stamp rm -f /build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build/bootstrap/icedtea ln -s \ /build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build/openjdk.build-ecj/j2sdk-image/ /build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build/bootstrap/icedtea if ! test -d /build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build/bootstrap/icedtea/include; then \ ln -sf /build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build/openjdk.build-ecj/include /build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build/bootstrap/icedtea/include; \ fi mkdir -p stamps touch stamps/bootstrap-directory.stamp mkdir -p bootstrap rm -f /build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build/bootstrap/jdk1.6.0 ln -sf /build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build/bootstrap/icedtea /build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build/bootstrap/jdk1.6.0; \ if ! /build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build/bootstrap/jdk1.6.0/bin/java -version ; \ then \ echo "/build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build/bootstrap/jdk1.6.0/bin/java" \ "cannot be found or is corrupted." ; \ exit 1; \ fi # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (os_linux_zero.cpp:270), pid=7360, tid=725984432 # fatal error: caught unhandled signal 10 # # JRE version: 6.0_23-b23 # Java VM: OpenJDK Zero VM (20.0-b11 interpreted mode linux-mips ) # Derivative: IcedTea6 1.11pre # Distribution: Debian GNU/Linux unstable (sid), package 6b23~pre3-1 # An error report file with more information is saved as: # /build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build/hs_err_pid7360.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 # /bin/bash: line 6: 7360 Aborted /build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build/bootstrap/jdk1.6.0/bin/java -version make[1]: *** [stamps/bootstrap-directory-symlink.stamp] Error 1 /build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build/bootstrap/jdk1.6.0/bin/java cannot be found or is corrupted. make[1]: Leaving directory `/build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build' make[1]: Entering directory `/build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build' mkdir -p bootstrap rm -f /build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build/bootstrap/jdk1.6.0 ln -sf /build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build/bootstrap/icedtea /build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build/bootstrap/jdk1.6.0; \ if ! /build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build/bootstrap/jdk1.6.0/bin/java -version ; \ then \ echo "/build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build/bootstrap/jdk1.6.0/bin/java" \ "cannot be found or is corrupted." ; \ exit 1; \ fi # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (os_linux_zero.cpp:270), pid=7368, tid=725984432 # fatal error: caught unhandled signal 10 # # JRE version: 6.0_23-b23 # Java VM: OpenJDK Zero VM (20.0-b11 interpreted mode linux-mips ) # Derivative: IcedTea6 1.11pre # Distribution: Debian GNU/Linux unstable (sid), package 6b23~pre3-1 # An error report file with more information is saved as: # /build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build/hs_err_pid7368.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 # /bin/bash: line 6: 7368 Aborted /build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build/bootstrap/jdk1.6.0/bin/java -version /build/buildd-openjdk-6_6b23~pre3-1-mips-ufac40/openjdk-6-6b23~pre3/build/bootstrap/jdk1.6.0/bin/java cannot be found or is corrupted. make[1]: *** [stamps/bootstrap-directory-symlink.stamp] Error 1 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From ptisnovs at icedtea.classpath.org Wed Jul 13 05:27:52 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 13 Jul 2011 12:27:52 +0000 Subject: /hg/gfx-test: Added new functionality - preview of test source f... Message-ID: changeset 8fd4d88548db in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=8fd4d88548db author: Pavel Tisnovsky date: Wed Jul 13 14:28:57 2011 +0200 Added new functionality - preview of test source file. diffstat: src/org/gfxtest/harness/Configuration.java | 15 +++- src/org/gfxtest/harness/MainWindow.java | 47 +++++++--- src/org/gfxtest/harness/SourceViewer.java | 117 +++++++++++++++++++++++++++++ 3 files changed, 163 insertions(+), 16 deletions(-) diffs (274 lines): diff -r 1c22439b7d07 -r 8fd4d88548db src/org/gfxtest/harness/Configuration.java --- a/src/org/gfxtest/harness/Configuration.java Tue Jul 12 14:55:44 2011 +0200 +++ b/src/org/gfxtest/harness/Configuration.java Wed Jul 13 14:28:57 2011 +0200 @@ -48,6 +48,8 @@ public class Configuration { + private static final String WINDOW_TITLE = "Gfx test harness"; + private static final String PROPERTIES_FILE_NAME = "gfx_harness.properties"; private static final int DEFAULT_WINDOW_WIDTH = 1024; @@ -56,6 +58,7 @@ private static final String DEFAULT_TESTED_JAVA = "/usr/lib/jvm/java/bin/java"; private static final String DEFAULT_SAMPLES_DIRECTORY = "samples"; private static final String DEFAULT_OUTPUT_DIRECTORY = "output"; + private static final String TEST_SOURCES_DIRECTORY = "src/org/gfxtest/testsuites"; private static final String TEST_CLASSES_DIRECTORY = "test-build/org/gfxtest/testsuites"; private String referenceJava; @@ -237,8 +240,18 @@ this.outputDirectory = outputDirectory; } - public String getTestClassesDirectory() + public static String getTestSourcesDirectory() + { + return TEST_SOURCES_DIRECTORY; + } + + public static String getTestClassesDirectory() { return TEST_CLASSES_DIRECTORY; } + + public static String getWindowTitle() + { + return WINDOW_TITLE; + } } diff -r 1c22439b7d07 -r 8fd4d88548db src/org/gfxtest/harness/MainWindow.java --- a/src/org/gfxtest/harness/MainWindow.java Tue Jul 12 14:55:44 2011 +0200 +++ b/src/org/gfxtest/harness/MainWindow.java Wed Jul 13 14:28:57 2011 +0200 @@ -73,9 +73,6 @@ */ public class MainWindow { - private static final String WINDOW_TITLE = "Gfx test harness"; - - DefaultListModel testList = new DefaultListModel(); DefaultTableModel resultTable = new DefaultTableModel(new String[] { "Name", "Sample", "Tested", "Result" }, 1); @@ -86,6 +83,7 @@ private JTextArea resultTextArea = new JTextArea(5, 40); private JButton commandCompile = new JButton("Compile"); private JButton commandRun = new JButton("Run"); + private JButton commandShowSource = new JButton("Show test source code"); private JButton commandDeleteClass = new JButton("Delete test class"); private JButton commandRefresh = new JButton("Refresh test list"); protected JList jTestList = null; @@ -316,7 +314,15 @@ { @Override public void actionPerformed(ActionEvent e) { - onCommandDeleteClassPressed(); + onButtonDeleteClassPressed(); + } + }); + + this.commandShowSource.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) { + onButtonShowSourcePressed(); } }); @@ -341,8 +347,10 @@ panel.add(resultsPane, constraints(2, 1, 1, 6, 0.3, 0.5, GridBagConstraints.BOTH)); panel.add(resultTextPane, constraints(1, 7, 2, 1, 0.3, 0.5, GridBagConstraints.BOTH)); - panel.add(this.commandCompile, constraints(1, 1, 1, 1, 0.1, 0.0, GridBagConstraints.HORIZONTAL)); - panel.add(this.commandRun, constraints(1, 2, 1, 1, 0.1, 0.0, GridBagConstraints.HORIZONTAL)); + panel.add(this.commandShowSource, constraints(1, 1, 1, 1, 0.1, 0.0, GridBagConstraints.HORIZONTAL)); + panel.add(new JPanel(), constraints(1, 5, 1, 1, 0.1, 1.0, GridBagConstraints.BOTH)); + panel.add(this.commandCompile, constraints(1, 2, 1, 1, 0.1, 0.0, GridBagConstraints.HORIZONTAL)); + panel.add(this.commandRun, constraints(1, 3, 1, 1, 0.1, 0.0, GridBagConstraints.HORIZONTAL)); panel.add(this.commandDeleteClass, constraints(1, 4, 1, 1, 0.1, 0.0, GridBagConstraints.HORIZONTAL)); panel.add(this.commandRefresh, constraints(1, 6, 1, 1, 0.1, 0.0, GridBagConstraints.HORIZONTAL)); panel.add(new JPanel(), constraints(1, 5, 1, 1, 0.1, 1.0, GridBagConstraints.BOTH)); @@ -353,8 +361,8 @@ */ protected void createMainWindow() { - JFrame window = new JFrame(WINDOW_TITLE); - this.dialogs = new Dialogs(WINDOW_TITLE, window); + JFrame window = new JFrame(Configuration.getWindowTitle()); + this.dialogs = new Dialogs(Configuration.getWindowTitle(), window); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); @@ -429,6 +437,7 @@ this.commandCompile.setEnabled(false); this.commandRun.setEnabled(false); this.commandDeleteClass.setEnabled(false); + this.commandShowSource.setEnabled(false); } private void setTestResultsLabel(String selectedTest) @@ -437,6 +446,7 @@ this.commandCompile.setEnabled(true); this.commandRun.setEnabled(true); this.commandDeleteClass.setEnabled(true); + this.commandShowSource.setEnabled(true); } protected void selectTestSuite(int selectedIndex) @@ -720,7 +730,18 @@ refreshTestResults(this.selectedTestSuite); } - protected void onCommandDeleteClassPressed() { + protected void onButtonShowSourcePressed() + { + if (this.selectedTestSuite == null) + { + this.dialogs.showNoTestSelectedMessage(); + return; + } + new SourceViewer().showSource(this.selectedTestSuite); + } + + protected void onButtonDeleteClassPressed() + { if (this.selectedTestSuite == null) { this.dialogs.showNoTestSelectedMessage(); @@ -767,12 +788,8 @@ } } - protected void onCommandShowSourcePressed() { - // TODO Auto-generated method stub - - } - - protected void onRefreshTestListPressed() { + protected void onRefreshTestListPressed() + { refreshTestList(); } diff -r 1c22439b7d07 -r 8fd4d88548db src/org/gfxtest/harness/SourceViewer.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/gfxtest/harness/SourceViewer.java Wed Jul 13 14:28:57 2011 +0200 @@ -0,0 +1,117 @@ +/* + Java gfx-test framework + + Copyright (C) 2010 Red Hat + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +IcedTea is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package org.gfxtest.harness; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Font; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; + + + +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.WindowConstants; + +public class SourceViewer +{ + protected JFrame frame = new JFrame(Configuration.getWindowTitle()); + private JTextArea textArea = new JTextArea(); + private JButton buttonClose = new JButton("Close"); + private Dialogs dialogs = new Dialogs(Configuration.getWindowTitle(), this.frame); + + public void showSource(String selectedTestSuite) + { + try + { + readSourceFile(selectedTestSuite); + constructFrame(); + this.frame.setVisible(true); + } + catch (IOException e) + { + this.dialogs.showErrorMessage(e.getMessage()); + } + } + + private void readSourceFile(String selectedTestSuite) throws IOException + { + File fin = new File(Configuration.getTestSourcesDirectory(), selectedTestSuite + ".java"); + if (!fin.exists()) + { + throw new IOException("File " + fin.getCanonicalPath() + " not found"); + } + BufferedReader reader = new BufferedReader(new FileReader(fin)); + String line; + while ((line=reader.readLine())!=null) + { + this.textArea.append(line); + this.textArea.append("\n"); + } + reader.close(); + } + + private void constructFrame() { + this.textArea.setCaretColor(Color.red); + this.textArea.setEditable(false); + this.textArea.setFont(new Font("Monospaced", Font.PLAIN, 12)); + this.frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + this.frame.setSize(640, 480); + this.buttonClose.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) { + SourceViewer.this.frame.dispose(); + } + }); + this.frame.setLayout(new BorderLayout()); + this.frame.add(new JScrollPane(this.textArea), BorderLayout.CENTER); + this.frame.add(this.buttonClose, BorderLayout.SOUTH); + } + +} From ChrisPhi at LGonQn.Org Wed Jul 13 05:55:09 2011 From: ChrisPhi at LGonQn.Org (Chris Phillips) Date: Wed, 13 Jul 2011 08:55:09 -0400 Subject: distro-pkg-dev Digest, Vol 50, Issue 32 In-Reply-To: <4E1CA7FE.20005@LGonQn.Org> References: <4E1CA7FE.20005@LGonQn.Org> Message-ID: <4E1D95AD.5010702@LGonQn.Org> Hi Attached is current state patch (known to be buggy) of fixes for shark in JDK7 FCS. (Webrev is here: http://integral.lgonqn.org/temp/ChrisPhi/webrev/ ) Chris On 12/07/11 04:01 PM, Chris Phillips wrote: > Hi Xerxes, Andrew Hughes,John Rose > > The patch as-is will make 143 build , but several more are needed for > 147 / hs21-b17 (fcs) , and I'm still debugging some shark [jsr292?] issues > in that build (after the additional patches). > > Chris > > On 12/07/11 03:00 PM, distro-pkg-dev-request at openjdk.java.net wrote: >> ------------------------------ Message: 5 Date: Tue, 12 Jul 2011 >> 17:01:26 +0200 From: Xerxes R?nby Subject: Re: >> Review Request: zero-methodHandle 7009923-regression To: Andrew John >> Hughes Cc: distro-pkg-dev at openjdk.java.net >> Message-ID: <4E1C61C6.9000506 at zafena.se> Content-Type: text/plain; >> charset=ISO-8859-1; format=flowed On 2011-07-12 16:58, Andrew John >> Hughes wrote: >>>> On Tue, Jul 12, 2011 at 04:46:39PM +0200, Xerxes R?nby wrote: >>>>>> Hi all! >>>>>> >>>>>> Zero FTBFS after the recent 7009923 JSR292 fixes like this: >>>>>> openjdk/hotspot/src/cpu/zero/vm/stack_zero.cpp:72: >>>>>> error: no matching function for call to >>>>>> 'Exceptions::throw_stack_overflow_exception(JavaThread*&, const char [110], >>>>>> int)' >>>>>> openjdk/hotspot/src/share/vm/utilities/exceptions.hpp:147: >>>>>> note: candidates are: static void >>>>>> Exceptions::throw_stack_overflow_exception(Thread*, const char*, int, >>>>>> methodHandle) >>>>>> make[7]: *** [stack_zero.o] Error 1 >>>>>> >>>>>> This webrev updates Zero to handle the >>>>>> Exceptions::throw_stack_overflow_exception API change. >>>>>> >>>>>> http://labb.zafena.se/openjdk/zero-methodHandle-7009923-regression/ >>>>>> Summary of changes: 2 lines changed: 1 ins; 0 del; 1 mod; 87 unchg >>>>>> >>>>>> I don't have a bug id for this. >>>>>> >>>>>> I have signed the SCA. >>>>>> http://sca.java.net/CA_signatories.htm >>>>>> >>>>>> Cheers >>>>>> Xerxes >>>> Have you pushed this to any of the IcedTea repositories? >> No. i have only posted the patch to the icedtea bugzilla: >> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=753 >> >> -------------- next part -------------- A non-text attachment was scrubbed... Name: hotspot.patch Type: text/x-patch Size: 6369 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110713/cb24e270/hotspot.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: webrev.zip Type: application/zip Size: 233484 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110713/cb24e270/webrev.zip From ptisnovs at icedtea.classpath.org Wed Jul 13 06:41:00 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 13 Jul 2011 13:41:00 +0000 Subject: /hg/gfx-test: Added files needed to be "GNU compatible" Message-ID: changeset 4fc0e4476c9b in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=4fc0e4476c9b author: Pavel Tisnovsky date: Wed Jul 13 14:54:33 2011 +0200 Added files needed to be "GNU compatible" diffstat: AUTHORS | 6 ++++++ INSTALL | 12 ++++++++++++ 2 files changed, 18 insertions(+), 0 deletions(-) diffs (26 lines): diff -r 8fd4d88548db -r 4fc0e4476c9b AUTHORS --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AUTHORS Wed Jul 13 14:54:33 2011 +0200 @@ -0,0 +1,6 @@ +The following people have made contibutions to this project. +Please keep this list in alphabetical order. + +Denis Lila +Pavel Tisnovsky + diff -r 8fd4d88548db -r 4fc0e4476c9b INSTALL --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/INSTALL Wed Jul 13 14:54:33 2011 +0200 @@ -0,0 +1,12 @@ +Building Gfx test +================= + +make build + + + +Running Gfx test harness +======================== + +make harness + From ahughes at redhat.com Wed Jul 13 08:26:32 2011 From: ahughes at redhat.com (Andrew John Hughes) Date: Wed, 13 Jul 2011 16:26:32 +0100 Subject: distro-pkg-dev Digest, Vol 50, Issue 32 In-Reply-To: <4E1D95AD.5010702@LGonQn.Org> References: <4E1CA7FE.20005@LGonQn.Org> <4E1D95AD.5010702@LGonQn.Org> Message-ID: <20110713152631.GA16917@shelob.middle-earth.co.uk> On Wed, Jul 13, 2011 at 08:55:09AM -0400, Chris Phillips wrote: > Hi > Attached is current state patch (known to be buggy) of fixes for > shark in JDK7 FCS. What version of IcedTea is this for? > (Webrev is here: > http://integral.lgonqn.org/temp/ChrisPhi/webrev/ ) > This link is broken (and unnecessary anyway if the patch is attached). > > Chris > > > On 12/07/11 04:01 PM, Chris Phillips wrote: > > Hi Xerxes, Andrew Hughes,John Rose > > > > The patch as-is will make 143 build , but several more are needed for > > 147 / hs21-b17 (fcs) , and I'm still debugging some shark [jsr292?] issues > > in that build (after the additional patches). > > > > Chris > > > > On 12/07/11 03:00 PM, distro-pkg-dev-request at openjdk.java.net wrote: > >> ------------------------------ Message: 5 Date: Tue, 12 Jul 2011 > >> 17:01:26 +0200 From: Xerxes R?nby Subject: Re: > >> Review Request: zero-methodHandle 7009923-regression To: Andrew John > >> Hughes Cc: distro-pkg-dev at openjdk.java.net > >> Message-ID: <4E1C61C6.9000506 at zafena.se> Content-Type: text/plain; > >> charset=ISO-8859-1; format=flowed On 2011-07-12 16:58, Andrew John > >> Hughes wrote: > >>>> On Tue, Jul 12, 2011 at 04:46:39PM +0200, Xerxes R?nby wrote: > >>>>>> Hi all! > >>>>>> > >>>>>> Zero FTBFS after the recent 7009923 JSR292 fixes like this: > >>>>>> openjdk/hotspot/src/cpu/zero/vm/stack_zero.cpp:72: > >>>>>> error: no matching function for call to > >>>>>> 'Exceptions::throw_stack_overflow_exception(JavaThread*&, const char [110], > >>>>>> int)' > >>>>>> openjdk/hotspot/src/share/vm/utilities/exceptions.hpp:147: > >>>>>> note: candidates are: static void > >>>>>> Exceptions::throw_stack_overflow_exception(Thread*, const char*, int, > >>>>>> methodHandle) > >>>>>> make[7]: *** [stack_zero.o] Error 1 > >>>>>> > >>>>>> This webrev updates Zero to handle the > >>>>>> Exceptions::throw_stack_overflow_exception API change. > >>>>>> > >>>>>> http://labb.zafena.se/openjdk/zero-methodHandle-7009923-regression/ > >>>>>> Summary of changes: 2 lines changed: 1 ins; 0 del; 1 mod; 87 unchg > >>>>>> > >>>>>> I don't have a bug id for this. > >>>>>> > >>>>>> I have signed the SCA. > >>>>>> http://sca.java.net/CA_signatories.htm > >>>>>> > >>>>>> Cheers > >>>>>> Xerxes > >>>> Have you pushed this to any of the IcedTea repositories? > >> No. i have only posted the patch to the icedtea bugzilla: > >> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=753 > >> > >> > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ChrisPhi at LGonQn.Org Wed Jul 13 08:42:00 2011 From: ChrisPhi at LGonQn.Org (Chris Phillips) Date: Wed, 13 Jul 2011 11:42:00 -0400 Subject: distro-pkg-dev Digest, Vol 50, Issue 32: re fcs 147 shark preliminary patches. In-Reply-To: <20110713152631.GA16917@shelob.middle-earth.co.uk> References: <4E1CA7FE.20005@LGonQn.Org> <4E1D95AD.5010702@LGonQn.Org> <20110713152631.GA16917@shelob.middle-earth.co.uk> Message-ID: <4E1DBCC8.2000708@LGonQn.Org> Hi Andrew On 13/07/11 11:26 AM, Andrew John Hughes wrote: > What version of IcedTea is this for? Its originally for openjdk jdk7 fcs (b147) for icedtea7, now matches http://icedtea.classpath.org/hg/icedtea7-forest/hotspot changeset: 2634:6844f4ba31ea tag: tip parent: 2564:f7e8b10f51c6 parent: 2633:9b0ca45cd756 user: andrew date: Mon Jul 11 22:05:46 2011 +0100 summary: Merge >>(Webrev is here: >> http://integral.lgonqn.org/temp/ChrisPhi/webrev/ ) > This link is broken (and unnecessary anyway if the patch is attached). Oops... internal link... external is: http://lgonqn.org/temp/ChrisPhi/webrev/ Chris From ahughes at redhat.com Wed Jul 13 09:42:12 2011 From: ahughes at redhat.com (Andrew John Hughes) Date: Wed, 13 Jul 2011 17:42:12 +0100 Subject: distro-pkg-dev Digest, Vol 50, Issue 32: re fcs 147 shark preliminary patches. In-Reply-To: <4E1DBCC8.2000708@LGonQn.Org> References: <4E1CA7FE.20005@LGonQn.Org> <4E1D95AD.5010702@LGonQn.Org> <20110713152631.GA16917@shelob.middle-earth.co.uk> <4E1DBCC8.2000708@LGonQn.Org> Message-ID: <20110713164211.GE16917@shelob.middle-earth.co.uk> On Wed, Jul 13, 2011 at 11:42:00AM -0400, Chris Phillips wrote: > Hi Andrew > > On 13/07/11 11:26 AM, Andrew John Hughes wrote: > > > What version of IcedTea is this for? > > > Its originally for openjdk jdk7 fcs (b147) > for icedtea7, now matches > > http://icedtea.classpath.org/hg/icedtea7-forest/hotspot > > changeset: 2634:6844f4ba31ea > tag: tip > parent: 2564:f7e8b10f51c6 > parent: 2633:9b0ca45cd756 > user: andrew > date: Mon Jul 11 22:05:46 2011 +0100 > summary: Merge > Ok, probably easiest to just work against the IcedTea7 & IcedTea8 forests (http://icedtea.classpath.org/hg/icedtea8-forest/hotspot being the latter). You should have push access (if not, ask Mark Wielaard). I don't know who can actually review this; to my knowledge, only Gary and Xerxes will be familiar enough with Shark. If it's broken without this patch, and it works with it, I'm happy enough for you to commit it, but please check with Xerxes first. Backporting fixes to IcedTea6 is a little more complicated as it uses stable HotSpot snapshots so you'll need to work out which fixes are needed and which aren't. > Chris > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From andrew at icedtea.classpath.org Wed Jul 13 13:28:52 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 13 Jul 2011 20:28:52 +0000 Subject: /hg/icedtea6: 2 new changesets Message-ID: changeset d987aa111762 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=d987aa111762 author: Andrew John Hughes date: Wed Jul 13 21:27:14 2011 +0100 Add b23 changes. 2011-07-13 Andrew John Hughes * NEWS: Add b23 changes. changeset 3d5ae12b32b7 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=3d5ae12b32b7 author: Andrew John Hughes date: Wed Jul 13 21:28:45 2011 +0100 Merge diffstat: ChangeLog | 19 + Makefile.am | 4 +- NEWS | 311 +++++++++- patches/jtreg-ConstructDeflaterInput-fix.patch | 9 + patches/openjdk/6758179-D3D_AlphaComposite_is_applied_incorrectly.patch | 105 +++ 5 files changed, 443 insertions(+), 5 deletions(-) diffs (truncated from 509 to 500 lines): diff -r 32fa8c401cee -r 3d5ae12b32b7 ChangeLog --- a/ChangeLog Tue Jul 12 02:01:39 2011 +0100 +++ b/ChangeLog Wed Jul 13 21:28:45 2011 +0100 @@ -1,3 +1,22 @@ +2011-07-13 Andrew John Hughes + + * NEWS: Add b23 changes. + +2011-07-12 Pavel Tisnovsky + + * Makefile.am: added new patch + * patches/jtreg-ConstructDeflaterInput-fix.patch: + Regression test jdk/test/java/util/zip/ConstructDeflaterInput.java + should be run in othervm mode to not to print messages to JTreg + log files (such messages must be stored in .jtr file). + +2011-07-12 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/6758179-D3D_AlphaComposite_is_applied_incorrectly.patch: + Backport of 6758179. + 2011-05-25 Andrew John Hughes * Makefile.am: diff -r 32fa8c401cee -r 3d5ae12b32b7 Makefile.am --- a/Makefile.am Tue Jul 12 02:01:39 2011 +0100 +++ b/Makefile.am Wed Jul 13 21:28:45 2011 +0100 @@ -361,7 +361,9 @@ patches/openjdk/7036220-shark_llvm_29_headers.patch \ patches/openjdk/7029152-String_intrinsics_miss_optimization.patch \ patches/openjdk/6711682-JCheckBox_in_JTable_does_not_respond_to_click.patch \ - patches/jtreg-7020373-add-ignore-tag.patch + patches/jtreg-7020373-add-ignore-tag.patch \ + patches/openjdk/6758179-D3D_AlphaComposite_is_applied_incorrectly.patch \ + patches/jtreg-ConstructDeflaterInput-fix.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r 32fa8c401cee -r 3d5ae12b32b7 NEWS --- a/NEWS Tue Jul 12 02:01:39 2011 +0100 +++ b/NEWS Wed Jul 13 21:28:45 2011 +0100 @@ -19,18 +19,321 @@ - PR744: icedtea6-1.10.2 : patching error - PR752: ImageFormatException extends Exception not RuntimeException - PR732: Use xsltproc for bootstrap xslt in place of Xerces/Xalan +* Import of OpenJDK6 b22 including upgrade to HotSpot 20 + - S7023111: Add webrev script to make/scripts + - S6909331: Add vsvars.sh to the jdk repository (handy cygwin way to get vcvars32.bat run) + - S6896934: README: Document how the drop source bundles work for jaxp/jaxws + - S6896978: README: Updates to openjdk README-builds.html + - S6903517: README: OpenJDK additions needed - cygwin issues + - S6903631: README: Build information on Redhat 3.0 builds + - S7003845: README-builds document proper location of forest extension, provide alternatives + - S7032311: Correct top level 'make test' target and add known failures to problem list + - S7033660: Update copyright year to 2011 on any files changed in 2011 + - S7046448: Correct webrev.ksh to tidy up html output + - S7060927: Add jdkreport.pl to make/scripts, used to generate changes between tags + - S7060888: Document OpenJDK6 release procedure + - S6885308: The incorrect -XX:StackRedPages, -XX:StackShadowPages, -XX:StackYellowPages could cause VM crash + - S6912064: type profiles need to be exploited more for dynamic language support + - S6896381: CTW fails share/vm/ci/bcEscapeAnalyzer.cpp:99, assert(_stack_height < _max_stack,"stack overflow") + - S6978355: renaming for 6961697 + - S6978641: Fix for 6929067 introduces additional overhead in thread creation/termination paths + - S6980262: Memory leak when exception is thrown in static initializer + - S6910183: CMS: assert(_index < capacity(),"_index out of bounds") + - S6941275: G1: The MemoryPools are incorrectly supported for G1 + - S6978300: G1: debug builds crash if ParallelGCThreads==0 + - S6980392: TEST_BUG: gc/6581734/Test6581734.java has typo + - S6980206: G1: assert(has_undefined_max_size, "Undefined max size"); + - S6976400: "Meet Not Symmetric" + - S6961697: move nmethod constants section before instruction section + - S4809552: Optimize Arrays.fill(...) + - S6980978: assert(mt == t->xmeet(this)) failed: meet not commutative + - S6969586: OptimizeStringConcat: SIGSEGV in LoadNode::Value() + - S6979444: add command line option to print command line flags descriptions + - S6870851: Bad frame_chop in StackMapTable crashes JVM + - S6982851: Add b107 machine classifications to jprt.properties file. + - S6983320: Fork HS19 to HS20 - renumber Major and build numbers of JVM + - S6561870: 3/3 Long javac compile lines fail due to command line length issues (agent compiles?) + - S6765718: Indicate which thread throwing OOME when generating the heap dump at OOME + - S6983930: CMS: Various small cleanups ca September 2010 + - S6981746: G1: SEGV with -XX:+TraceGen0Time + - S6985022: update make/jprt.properties for new jdk7 tools + - S6981773: incorrect fill value with OptimizeFill + - S6953144: Tiered compilation + - S6982921: assert(_entry_bci != InvocationEntryBci) failed: wrong kind of nmethod + - S6982533: Crash in ~StubRoutines::jbyte_fill with AggressiveOpts enabled + - S6965815: OptimizeStringConcat: assert(!q->is_MergeMem()) failed with specjbb2000 + - S6983073: fix compiler error with GCC 4.4 or newer on SPARC + - S6934483: GCC 4.5 errors "suggest parentheses around something..." when compiling with -Werror and -Wall + - S6984056: C1: incorrect code for integer constant addition on x64 + - S6919069: client compiler needs to capture more profile information for tiered work + - S6984346: Remove development code in type.hpp + - S6939224: MethodHandle.invokeGeneric needs to perform the correct set of conversions + - S6982370: SIGBUS in jbyte_fill + - S6984368: Large default heap size does not allow to use zero based compressed oops + - S6942092: Loader-constraint test is failing + - S6974813: JVM needs to use demand loading for its DTrace probes + - S6981753: Rebrand vm vendor property settings + - S6975210: java.lang.VerifyError in some of JCK tests + - S6985848: 3/4 fix for 6561870 causes sa-jdi.jar to be rebuilt every time + - S6987149: Fix incorrect Oracle copyright header in make/templates files + - S6988779: c1_LIRAssembler_x86.cpp crashes VS2010 compiler + - S6984979: OptimizeFill misses some cases with an odd memory graph + - S6986270: guarantee(*bcp != Bytecodes::_monitorenter || exec_mode != Deoptimization::Unpack_exception) fails + - S6982537: Crash in Node*step_through_mergemem + - S6972540: sun/nio/ch/SocketChannelImpl compilation crashed when executing CompileTheWorld + - S6986028: assert(_base == Int) failed: Not an Int in CmpINode::sub + - S6986944: JSR 292 assert(caller_nm->is_method_handle_return(caller_frame.pc())) failed: must be MH call site + - S6986046: C1 valuestack cleanup + - S6987115: Non-tiered compilation policy creates unnecessary C1 threads + - S6987763: assert(kind() == EmptyExceptionState) failed: only EmptyExceptionStates can be modified + - S6987634: JSR 292 assert(start_bci() >= 0 && start_bci() < code_size()) failed: correct osr_bci argument + - S6988303: 6986046 breaks build with recent gcc + - S6988346: 6986046 breaks tiered + - S6916062: assert(_inserts <= _insert_limit,"hash table overflow") in NodeHash::hash_insert + - S6968348: Byteswapped memory access can point to wrong location after JIT + - S6989368: Regression in scimark2.MonteCarlo in jdk7_b112 on Linux + - S6979458: VM crashes when -XX:ObjectAlignmentInBytes is too big + - S6988018: dtrace/hotspot/MethodInvocation/MethodInvocation002 crashes with client compiler + - S6989736: fix mapfile warnings on solaris + - S6984287: Regularize how GC parallel workers are specified. + - S6983296: build sanity checks for jdk7 should require SS12u1 + - S6941395: G1: Use only lock-free versions of region stack push() and pop() + - S6423256: GC stacks should use a better data structure + - S6942771: SEGV in ParScanThreadState::take_from_overflow_stack + - S6692906: CMS: parallel concurrent marking may be prone to hanging or stalling mutators for periods of time + - S6988678: fatal error deadlock handling was unintentionally disabled + - S6794422: Perm gen expansion policy for concurrent collectors + - S6983311: G1: LoopTest hangs when run with -XX:+ExplicitInvokesConcurrent + - S6980838: G1: guarantee(false) failed: thread has an unexpected active value in its SATB queue + - S6980792: Crash "exception happened outside interpreter, nmethods and vtable stubs (1)" + - S6990549: Zero and Shark fixes after 6978355 and 6953144 + - S6829194: JSR 292 needs to support compressed oops + - S6991065: missed a review comment in 6829194 + - S6991512: G1 barriers fail with 64bit C1 + - S6987555: JSR 292 unboxing to a boolean value fails on big-endian SPARC + - S6991211: assert failure on sparc: "can not have caller-save register operands at calls" + - S6971296: G1: simplify G1RemSet class hierarchy + - S6989448: G1: refactor and simplify G1ParScanThreadState + - S6988363: Rebrand vm vendor property settings (jdk7 only) + - S6763959: java.util.concurrent.locks.LockSupport.parkUntil(0) blocks forever + - S6983240: guarantee((Solaris::min_stack_allowed >= (StackYellowPages+StackRedPages...) wrong + - S6989297: Integrate additional portability improvements + - S6392697: Additional flag needed to supress Hotspot warning messages + - S6992477: fix for 6991512 broke sparc barriers + - S6989669: Coops: -Xshare:dump causes crash + - S6992267: Bump the HS20 build number to 02 + - S6991315: RedefineClasses fails with java.lang.VerifyError + - S6988353: refactor contended sync subsystem + - S6891959: HotSpot should not throw ClassFormatError if a class has a field with '>' and/or '<' in its name + - S6990359: G1: don't push a stolen entry on the taskqueue, deal with it directly + - S6992189: G1: inconsistent base used in sparse rem set iterator + - S6988458: G1: assert(mr.end() <= _cm->finger()) failed: otherwise the region shouldn't be on the stack + - S6991377: G1: race between concurrent refinement and humongous object allocation + - S6992998: CMSWaitDuration=0 causes hangs with +ExplicitGCInvokesConcurrent + - S6896603: CMS/GCH: collection_attempt_is_safe() ergo should use more recent data + - S6995045: assert(!gch->incremental_collection_failed()) failed: Error, defNewGeneration.cpp:827 + - S6996136: VM crash in src/share/vm/runtime/virtualspace.cpp:424 + - S6997495: correction of regression test compiler/6857159/Test6857159 + - S6991577: add IfOp optimization to C1 + - S6991596: JSR 292 unimplemented adapter_opt_i2i and adapter_opt_l2i on SPARC + - S6990192: VM crashes in ciTypeFlow::get_block_for() + - S6968367: can_post_on_exceptions is still using VM_DeoptimizeFrame in some places + - S6970683: improvements to hs_err output + - S6994130: Zero PowerPC fix + - S6994630: java/lang/instrument/IsModifiableClassAgent.java fails with -XX:+EnableInvokeDynamic + - S6981788: GC map generator sometimes picks up the wrong kind of instruction operand + - S6994093: MethodHandle.invokeGeneric needs porting to SPARC + - S6981777: implement JSR 292 EG adjustments from summer 2010 + - S6984311: JSR 292 needs optional bootstrap method parameters + - S6987135: Performance regression on Intel platform with 32-bits edition between 6u13 and 6u14. + - S6996240: The BitSet.length method sometimes returns an index+1 value less than that of the highest bit set. + - S6997459: JSR 292 after 6994093 getting: on return to interpreted call, restored SP is corrupted + - S6996563: 6984311 changes forgot to update vmStructs.cpp for new field _operands + - S6997456: Not possible to build just compiler2 + - S6997311: SIGFPE in new long division asm code + - S6991188: C2 Crashes while compiling method + - S6998737: JSR 292: Remove the plug guarding the use of compressed oops + - S6839891: Array overrun in vm ci + - S6997698: Bump the HS20 build number to 03 + - S6997298: fatal error: must own lock CMS_markBitMap_lock during heap dump + - S6996613: CompactibleFreeListSpace::print should call CompactibleFreeListSpace::print_on, not Space::print_on + - S6998802: ScavengeALot: assert(!gch->incremental_collection_failed()) failed: Twice in a row + - S6865028: Illegal instructions passing verification prior to 'invokespecial Object.' + - S6981737: The java.vm.specification.version property is 1.0, seems like it should be 2.0 + - S7000578: CMS: assert(SafepointSynchronize::is_at_safepoint()) failed: Else races are possible + - S6978187: G1: assert(ParallelGCThreads> 1 || n_yielded() == _hrrs->occupied()) strikes again + - S6999491: non-zero COOPs are used when they should not + - S7000349: Tiered reacts incorrectly to C1 compilation failures + - S7000491: assert(false) failed: should be optimized out in SharedRuntime::g1_wb_pre + - S6751923: JNDI wake up when clock_settime() is called + - S6837842: JNI_CreateJavaVM crashes under impersonation + - S7002129: Zero and Shark fixes, 3rd + - S6989984: Use standard include model for Hospot + - S6974966: G1: unnecessary direct-to-old allocations + - S6983204: G1: Nightly test nsk/regression/b4958615 failing with +ExplicitGCInvokesConcurrent + - S7003860: G1: assert(_cur_alloc_region == NULL || !expect_null_cur_alloc_region) fails + - S6780143: hs203t003 hits SIGSEGV/EXCEPTION_ACCESS_VIOLATION with -XX:+UseCompressedOops + - S6987107: Add variable to add to but not modify non-fcs version string + - S7003456: ADLC files not correctly generated on Windows + - S6348631: remove the use of the HPI library from Hotspot + - S7004217: Remove IA64 workaround re-introduced with CR6953477 + - S7003125: precompiled.hpp is included when precompiled headers are not used + - S7003786: sort Obj_Files before compiling + - S6981484: Update development launcher + - S6704010: Internal Error (src/share/vm/interpreter/interpreterRuntime.cpp:1106) + - S7003782: Update JVMTI version to 1.2 for jdk7 + - S6539281: -Xcheck:jni should validate char* argument to ReleaseStringUTFChars + - S7003789: PTRACE_GETREGS problems with SA on Linux. + - S6994056: G1: when GC locker is active, extend the Eden instead of allocating into the old gen + - S6994628: G1: Test gc/gctests/FinalizeTest05 fails (one live object is finalized) + - S7001033: assert(gch->gc_cause() == GCCause::_scavenge_alot || !gch->incremental_collection_failed()) + - S7002546: regression on SpecJbb2005 on 7b118 comparing to 7b117 on small heaps + - S7005259: CMS: BubbleUpRef asserts referent(obj)->is_oop() failed: Enqueued a bad referent + - S7006221: Bump the HS20 build number to 04 + - S7007229: Fix warnings with VS2010 in compressedStream.cpp + - S7001363: java/dyn/InvokeDynamic should not be a well-known class in the JVM + - S6985015: C1 needs to support compressed oops + - S7002666: eclipse CDT projects crash with compressed oops + - S6875026: CTW failure jdk6_18/hotspot/src/share/vm/c1/c1_LinearScan.cpp:5486 + - S6998985: faulty generic arraycopy on windows x86_64: 4th arg overwritten with oop + - S7003554: (tiered) assert(is_null_object() || handle() != NULL) failed: cannot embed null pointer + - S6961690: load oops from constant table on SPARC + - S7003798: test/compiler/6991596 fails with true != false + - S7004530: casx used for 32 bit cas after 7003554 + - S7001379: bootstrap method data needs to be moved from constant pool to a classfile attribute + - S7004925: CTW: assert(nbits == 32 || -(1 << nbits-1) <= x && x < ( 1 << nbits-1)) failed: value out of range + - S7005241: C1: SEGV in java.util.concurrent.LinkedTransferQueue.xfer() with compressed oops + - S6993125: runThese crashes with assert(Thread::current()->on_local_stack((address)this)) + - S7004940: CTW: assert(!def_outside->member(r)) failed: Use of external LRG overlaps the same LRG + - S6989076: JVM crashes in klassItable::initialize_itable_for_interface + - S7004582: Add GetThisObject() function to JVMTI 1.2 + - S7005007: Refine use of ALT_COMPILER_PATH to avoid conflict with JPRT usage + - S6988439: Parallel Class Loading test deadlock involving MethodData_lock and Pending List Lock + - S7003748: Decode C stack frames when symbols are presented (PhoneHome project) + - S7006471: fix for 6988439 crashes when pending list lock is null + - S7006659: temporary adlc files are added to the build variables + - S7006354: Updates to Visual Studio project creation and development launcher + - S7000559: G1: assertion failure !outer || (full_collections_started == _full_collections_completed + 1) + - S7003707: need to remove (some) system include files from the HotSpot header files + - S7006113: G1: Initialize ReferenceProcessor::_is_alive_non_header field + - S6807801: CMS: could save/restore fewer header words during scavenge + - S6896624: G1: hotspot:::gc and hotspot:::mem-pool-gc probes are not fired + - S7008759: Bump the HS20 build number to 05 + - S7003487: clhsdbproc stacktrace fails on x64 + - S7007769: VM crashes with SIGBUS writing PerfData if tmp space is full + - S7008444: Remove unnecessary include of stdint.h in java_md.c + - S6961186: Better VM handling of unexpected exceptions from application native code + - S6987812: 2/3 SAJDI: "gHotSpotVMTypes was not initialized properly in the remote process" + - S6975480: VS2010 says _STATIC_CPPLIB is deprecated, may need to change this usage + - S7006044: materialize cheap non-oop pointers on 64-bit SPARC + - S6765546: Wrong sscanf used to parse CompilerOracle command >= 32 characters could lead to crash + - S6839888: Array overrun in vm adlc + - S7006505: Use kstat info to identify SPARC processor + - S6579789: Internal error "c1_LinearScan.cpp:1429 Error: assert(false,"")" in debuggee with fastdebug VM + - S6990933: assert(sender_cb) failed: sanity in frame::sender_for_interpreter_frame + - S7008165: Garbage in ClassFormatError message + - S7003130: assert(iterations start) failed: need enough space to divide up + - S7003271: Hotspot should track cumulative Java heap bytes allocated on a per-thread basis + - S7010068: Update all 2010 Oracle-changed OpenJDK files to have the proper copyright dates - first pass + - S7011125: Bump the HS20 build number to 06 + - S7010618: C1: array length should be treated at int on 64bit during array allocation + - S7009756: volatile variables could be broken throw reflection API + - S6876037: CTW fails jdk7/hotspot/src/share/vm/opto/type.cpp:2055. assert(bits,"Use TypePtr for NULL") + - S7010180: JSR 292 InvokeDynamicPrintArgs fails with: assert(_adapter == NULL) failed: init'd to NULL + - S7010913: JSR 292 ciMethodHandle does not handle MethodHandleCompiler exceptions properly + - S4930919: race condition in MDO creation at back branch locations + - S7011386: race in objArrayKlass::array_klass_impl + - S7011627: C1: call_RT must support targets that don't fit in wdisp30 + - S7010665: Misplaced membar in C1 implementation of Unsafe.get/putXXX + - S6458402: 3 jvmti tests fail with CMS and +ExplicitGCInvokesConcurrent + - S6814943: getcpool001 catches more than one JvmtiThreadState problem + - S7011463: Sparc MacroAssembler::incr_allocated_bytes() needs a RegisterOrConstant argument + - S6994753: Implement optional hook to a Java method at VM startup. + - S7009828: Fix for 6938627 breaks visualvm monitoring when -Djava.io.tmpdir is defined + - S7008136: CMS: assert((HeapWord*)nextChunk <= _limit) failed: sweep invariant + - S7007068: G1: refine the BOT during evac failure handling + - S6994297: G1: do first-level slow-path allocations with a CAS + - S6941122: G1: UseLargePages does not work with G1 garbage collector + - S7011940: iCMS: SIGSEGV in SweepClosure::do_already_free_chunk(FreeChunk*)+0x360 + - S7012348: Bump the HS20 build number to 07 + - S6966589: hs16-b08 causes java.lang.StackOverflowError + - S7012965: Fix failed on sparc for 7009756: volatile variables could be broken throw reflection API + - S7012766: assert(false) failed: DEBUG MESSAGE in MacroAssembler::debug32 + - S4926272: methodOopDesc::method_from_bcp is unsafe + - S6811367: Fix code in HeapDumper::dump_heap() to avoid buffer overrun + - S7012493: 2/2 6849574/Test.java fails with Internal Error (src/share/vm/prims/jvmtiTagMap.cpp:3294) + - S7013008: 2/3 assert(method == NULL || check_method(method, bcp)) failed: bcp must point into method + - S7012505: BreakpointWithFullGC.sh fails with Internal Error (src/share/vm/oops/methodOop.cpp:220) + - S7011379: G1: overly long concurrent marking cycles + - S7012642: G1: JumbleGC002 test aborts with segmentation violation due to uncaught stack overflow + - S6977804: G1: remove the zero-filling thread + - S7013812: C1: deopt blob too far from patching stub + - S7014247: CTW fails when compile sun/misc/AtomicLongCSImpl (REMOVED from JDK7) + - S7014998: assert(is_T_family(features) == is_niagara(features)) failed: Niagara should be T series + - S7013718: G1: small fixes for two assert/guarantee failures + - S7014261: G1: RSet-related failures + - S7014679: G1: deadlock during concurrent cleanup + - S7016474: string compare intrinsic improvements + - S7018101: os::dll_address_to_function_name returning wrong answers in 64 bit + - S6999988: CMS: Increased fragmentation leading to promotion failure after CR#6631166 got implemented + - S7017746: Regression : C2 compiler crash due to SIGSEGV in PhaseCFG::schedule_early() + - S7020550: Bump the HS20 build number to 10 + - S7020042: G1: Partially remove fix for 6994628 + - S7020846: Update Hotspot 20 to use jdk6 as JPRT release target + - S7018056: large pages not always enabled by default + - S7026619: Bump the HS20 build number to 11 + - S7020373: JSR rewriting can overflow memory address size variables + - S6989150: JCK7: 3 deserialization tests for javax.xml classes fail since JDK7-b112 + - S7013970: Code.toString can exit VM + - S7013971: Problem with saaj/soap1.2 + - S7016340: Problem with saaj/soap1.2 + - S7052870: Update bundle name and download location for jaxws bundle + - S6998583: NativeSeedGenerator is making 8192 byte read requests from entropy pool + - S6768387, PR670: REGRESSION: JTable no longer serializable + - S7032311: Correct top level 'make test' target and add known failures to problem list + - S7029905: demo applets missing some html files + - S7033660: Update copyright year to 2011 on any files changed in 2011 + - S7000693: java.sql.Timestamp compareTo() issues using low values + - S6599601: Permissions/AWTWindowTest and Permissions/DFLoadTest failed in PIT 7.0 B20 on Windows Vista + - S7042040: Remove disk space sanity check + - S7041635: GSSContextSpi.java copyright notice error + - S6618658: Deserialization allows creation of mutable SignedObject + - S7013969: NetworkInterface.toString can reveal bindings + - S7016495: Crash in Java 2D transforming an image with scale close to zero + - S7016985: (launcher) implement safe secure dll loading + - S6213702: (so) non-blocking sockets with TCP urgent disabled get still selected for read ops (win) + - S7013519: [parfait] Integer overflows in 2D code + - S7012520: Heap overflow vulnerability in FileDialog.show() + - S7032593: DLL_LOADING: Upgrade solution to 7016985 to reflect JDK7 solution + - S7020198: ImageIcon creates Component with null acc + - S7060890: Update openjdk6 problemList file on jdk regression tests + - S7031238: Problem with fix for 6981922 + - S6507024: casting an array to a generic type results in a 'capture#69 of ?' type error + - S6502392: Invalid relative names for Filer.createResource and Filer.getResource + - S7003006: add option to list directory in deterministic order + - S6999460: Glassfish build with JDK 6 / 7 is 5x-10x slower on Windows than on Linux + - S6999891: DefaultFileManager incorrect + - S7033660: Update copyright year to 2011 on any files changed in 2011 * Backports - S7019861: Last scanline skpped when doing AA. - - S6768387, PR670: REGRESSION: JTable no longer serializable - S6748082: remove platform-specific code from SwingUtilities2.isDisplayLocal - S6708580: Java applications slow when EXA enabled - - S7029905: demo applets missing some html files - S6986968: Crash on XIM server restart - S7034464: Support transparent large pages on Linux - S7037939: NUMA: Disable adaptive resizing if SHM large pages are used - S7018387: Xrender pipeline may leak GC's - S7036754: Stroked quads sometimes contain NaN - - S7042040: Remove disk space sanity check - S6769607, PR677: Modal frame hangs for a while. - S6578583: Modality is broken in windows vista home premium from jdk1.7 b02 onwards. - S6610244: modal dialog closes with fatal error if -Xcheck:jni is set @@ -52,6 +355,7 @@ - S6711682: JCheckBox in JTable: checkbox doesn't always respond to the first mouse click - S7016856: fix dashing performance regression. Improve other rendering performance. - S6934977: MappedByteBuffer.load crashes with SIGBUS. + - S6758179: D3D: AlphaComposite is applied incorrectly for uncached opaque BufferedImage * Allow selection of test suites using the jtreg_checks argument e.g. jtreg_checks="langtools" * CACAO - Threadlist & threadobject improvements. @@ -567,7 +871,6 @@ - S6800846, RH662230: Printing quality degraded with Java 6 compared to 5.0, index out of bounds exception. - S6642612: JFileChooser's approve buttons should be the same size (GTK) - S6984543: Test sun/java2d/DirectX/OnScreenRenderingResizeTest fails on GNOME - - S6997495: correction of regression test compiler/6857159/Test6857159 - S6736649: test/closed/javax/swing/JMenuItem/6458123/ManualBug6458123.java fails on Linux - S6797139: JButton title is truncating for some strings irrespective of preferred size. - S6883341: SWAT: jdk7-b72 swat build(2009-09-17) threw exceptions when running Java2D demo by clicking Paint ta diff -r 32fa8c401cee -r 3d5ae12b32b7 patches/jtreg-ConstructDeflaterInput-fix.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/jtreg-ConstructDeflaterInput-fix.patch Wed Jul 13 21:28:45 2011 +0100 @@ -0,0 +1,10 @@ +--- openjdk.orig/jdk/test/java/util/zip/ConstructDeflaterInput_original.java 2011-07-05 20:36:25.000000000 +0200 ++++ openjdk/jdk/test/java/util/zip/ConstructDeflaterInput.java 2011-07-11 15:35:00.000000000 +0200 +@@ -25,6 +25,7 @@ + * @test + * @bug 4679743 + * @summary Test parts of DeflaterInputStream code that don't really do I/O. ++ * @run main/othervm ConstructDeflaterInput + */ + + import java.io.*; diff -r 32fa8c401cee -r 3d5ae12b32b7 patches/openjdk/6758179-D3D_AlphaComposite_is_applied_incorrectly.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6758179-D3D_AlphaComposite_is_applied_incorrectly.patch Wed Jul 13 21:28:45 2011 +0100 @@ -0,0 +1,107 @@ +# HG changeset patch +# User tdv +# Date 1227057387 28800 +# Node ID 8eb24fc882427ce5907083866b0d3b7a82ed8659 +# Parent 3a9d06af8830c488de1700130c88ee463d06e1a4 +6758179: D3D: AlphaComposite is applied incorrectly for uncached opaque BufferedImage +Reviewed-by: campbell, flar + +diff -r 3a9d06af8830 -r 8eb24fc88242 src/windows/native/sun/java2d/d3d/D3DBlitLoops.cpp +--- openjdk.orig/jdk/src/windows/native/sun/java2d/d3d/D3DBlitLoops.cpp Sat Nov 01 20:42:18 2008 +0300 ++++ openjdk/jdk/src/windows/native/sun/java2d/d3d/D3DBlitLoops.cpp Tue Nov 18 17:16:27 2008 -0800 +@@ -252,11 +252,15 @@ + pSrcInfo, &dstInfo, NULL, NULL); + break; + case ST_INT_ARGB_PRE: +- case ST_INT_RGB: + AnyIntIsomorphicCopy(pSrcBase, pDstBase, + srcWidth, srcHeight, + pSrcInfo, &dstInfo, NULL, NULL); + break; ++ case ST_INT_RGB: ++ IntRgbToIntArgbConvert(pSrcBase, pDstBase, ++ srcWidth, srcHeight, ++ pSrcInfo, &dstInfo, NULL, NULL); ++ break; + case ST_INT_ARGB_BM: + // REMIND: we don't have such sw loop + // so this path is disabled for now on java level +diff -r 3a9d06af8830 -r 8eb24fc88242 test/sun/java2d/DirectX/OpaqueImageToSurfaceBlitTest/OpaqueImageToSurfaceBlitTest.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/sun/java2d/DirectX/OpaqueImageToSurfaceBlitTest/OpaqueImageToSurfaceBlitTest.java Tue Nov 18 17:16:27 2008 -0800 +@@ -0,0 +1,75 @@ ++/* ++ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++/* ++ * @test ++ * @bug 6764257 ++ * @summary Tests that the alpha in opaque images doesn't affect result of alpha ++ * compositing ++ * @author Dmitri.Trembovetski at sun.com: area=Graphics ++ * @run main/othervm OpaqueImageToSurfaceBlitTest ++ * @run main/othervm -Dsun.java2d.noddraw=true OpaqueImageToSurfaceBlitTest ++ * @run main/othervm -Dsun.java2d.opengl=True OpaqueImageToSurfaceBlitTest ++ */ ++ ++import java.awt.AlphaComposite; ++import java.awt.Graphics2D; ++import java.awt.GraphicsConfiguration; ++import java.awt.GraphicsDevice; ++import java.awt.GraphicsEnvironment; ++import java.awt.image.BufferedImage; ++import java.awt.image.DataBufferInt; ++import java.awt.image.VolatileImage; ++ ++public class OpaqueImageToSurfaceBlitTest { ++ ++ public static void main(String[] args) { ++ ++ GraphicsEnvironment ge = ++ GraphicsEnvironment.getLocalGraphicsEnvironment(); ++ GraphicsDevice gd = ge.getDefaultScreenDevice(); ++ GraphicsConfiguration gc = gd.getDefaultConfiguration(); ++ VolatileImage vi = gc.createCompatibleVolatileImage(16, 16); ++ vi.validate(gc); ++ ++ BufferedImage bi = ++ new BufferedImage(2, 2, BufferedImage.TYPE_INT_RGB); ++ int data[] = ((DataBufferInt)bi.getRaster().getDataBuffer()).getData(); ++ data[0] = 0x0000007f; ++ data[1] = 0x0000007f; ++ data[2] = 0xff00007f; ++ data[3] = 0xff00007f; ++ Graphics2D g = vi.createGraphics(); ++ g.setComposite(AlphaComposite.SrcOver.derive(0.999f)); ++ g.drawImage(bi, 0, 0, null); ++ ++ bi = vi.getSnapshot(); From andrew at icedtea.classpath.org Wed Jul 13 14:13:08 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 13 Jul 2011 21:13:08 +0000 Subject: /hg/icedtea7: Bump to b147. Message-ID: changeset 71fb0f9294cb in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=71fb0f9294cb author: Andrew John Hughes date: Wed Jul 13 22:13:02 2011 +0100 Bump to b147. 2011-07-13 Andrew John Hughes Bump to b147. * Makefile.am: (OPENJDK_VERSION): Bumped to b147. (CORBA_CHANGESET): Updated. (HOTSPOT_CHANGESET): Likewise. (JAXP_CHANGESET): Likewise. (JAXWS_CHANGESET): Likewise. (JDK_CHANGESET): Likewise. (LANGTOOLS_CHANGESET): Likewise. (OPENJDK_CHANGESET): Likewise. (CORBA_SHA256SUM): Likewise. (HOTSPOT_SHA256SUM): Likewise. (JAXP_SHA256SUM): Likewise. (JAXWS_SHA256SUM): Likewise. (JDK_SHA256SUM): Likewise. (LANGTOOLS_SHA256SUM): Likewise. (OPENJDK_SHA256SUM): Likewise. (JAXWS_DROP_ZIP): Likewise. (JAXWS_DROP_SHA256SUM): Likewise. (JAXP_DROP_ZIP): Likewise. (JAXP_DROP_SHA256SUM): Likewise. (bootstrap-directory- stage1): Use our script for javah. * configure.ac: Generate script for javah. * javah.in: Filter -X commands from javah. * patches/boot/ecj-autoboxing.patch: Updated to apply against b147. * patches/boot/ecj-diamond.patch, * patches/boot/ecj-stringswitch.patch: Likewise and add new cases. diffstat: ChangeLog | 34 + Makefile.am | 40 +- configure.ac | 1 + javah.in | 4 + patches/boot/ecj-autoboxing.patch | 56 +- patches/boot/ecj-diamond.patch | 1862 +++++++++++++++------------------- patches/boot/ecj-stringswitch.patch | 119 +- 7 files changed, 996 insertions(+), 1120 deletions(-) diffs (truncated from 3788 to 500 lines): diff -r c3bc27e0ae44 -r 71fb0f9294cb ChangeLog --- a/ChangeLog Tue Jul 12 11:32:03 2011 +0100 +++ b/ChangeLog Wed Jul 13 22:13:02 2011 +0100 @@ -1,3 +1,37 @@ +2011-07-13 Andrew John Hughes + + Bump to b147. + * Makefile.am: + (OPENJDK_VERSION): Bumped to b147. + (CORBA_CHANGESET): Updated. + (HOTSPOT_CHANGESET): Likewise. + (JAXP_CHANGESET): Likewise. + (JAXWS_CHANGESET): Likewise. + (JDK_CHANGESET): Likewise. + (LANGTOOLS_CHANGESET): Likewise. + (OPENJDK_CHANGESET): Likewise. + (CORBA_SHA256SUM): Likewise. + (HOTSPOT_SHA256SUM): Likewise. + (JAXP_SHA256SUM): Likewise. + (JAXWS_SHA256SUM): Likewise. + (JDK_SHA256SUM): Likewise. + (LANGTOOLS_SHA256SUM): Likewise. + (OPENJDK_SHA256SUM): Likewise. + (JAXWS_DROP_ZIP): Likewise. + (JAXWS_DROP_SHA256SUM): Likewise. + (JAXP_DROP_ZIP): Likewise. + (JAXP_DROP_SHA256SUM): Likewise. + (bootstrap-directory-stage1): Use our + script for javah. + * configure.ac: + Generate script for javah. + * javah.in: Filter -X commands from javah. + * patches/boot/ecj-autoboxing.patch: + Updated to apply against b147. + * patches/boot/ecj-diamond.patch, + * patches/boot/ecj-stringswitch.patch: + Likewise and add new cases. + 2011-07-12 Andrew John Hughes * Makefile.am: diff -r c3bc27e0ae44 -r 71fb0f9294cb Makefile.am --- a/Makefile.am Tue Jul 12 11:32:03 2011 +0100 +++ b/Makefile.am Wed Jul 13 22:13:02 2011 +0100 @@ -1,22 +1,22 @@ # Dependencies -OPENJDK_VERSION = b143 +OPENJDK_VERSION = b147 -CORBA_CHANGESET = 279c876d1001 -HOTSPOT_CHANGESET = f7e8b10f51c6 -JAXP_CHANGESET = d8cdc48a42bd -JAXWS_CHANGESET = e514ae6ec042 -JDK_CHANGESET = d28f54a421b1 -LANGTOOLS_CHANGESET = 1316e51b3995 -OPENJDK_CHANGESET = 2108c94c0d3d +CORBA_CHANGESET = 616c760dc288 +HOTSPOT_CHANGESET = 6844f4ba31ea +JAXP_CHANGESET = c40983d6ae70 +JAXWS_CHANGESET = 83db5e316798 +JDK_CHANGESET = 483d8dacfbd8 +LANGTOOLS_CHANGESET = 0df09c966a29 +OPENJDK_CHANGESET = 3defd24c2671 -CORBA_SHA256SUM = c13569b05931c858c0bb999e160aa89208b507ce5591b068d9b8b672fba34b19 -HOTSPOT_SHA256SUM = 6fd67e0875b0dbba01b0162c1660deee7642b53acd7358bc207f09ff5a2ad828 -JAXP_SHA256SUM = 5cbc5f855815cc327fc59452c87116521c2417d7bcbe42229fbb0f7a872dc691 -JAXWS_SHA256SUM = 9695be9ec5d394bd9212093f03c4064ce4cf29119163e66944692976700a1956 -JDK_SHA256SUM = 7fa59b0e0d803b603c176b1b1d34375adb417567e31a3735e6e229810266f027 -LANGTOOLS_SHA256SUM = 41d51de84b8865718fa9085f76bb2f64a2ec5af03d458a7fd2cf49c2fd5e4d7e -OPENJDK_SHA256SUM = adb23e8fe1e2e4fd2f34cfdf57ede78aa3e6f983af113bb8fd7dfe073f343d17 +CORBA_SHA256SUM = da786a16483ba20113f570284c242cfede65e76e6c8911ad4a238cdc33cbf48d +HOTSPOT_SHA256SUM = 0d5e9b17972e5688e1ec176c25d0055047ed198a804906bcc4cf9993c9a6c118 +JAXP_SHA256SUM = f8416413f66a5b49214b582391c0a00a2ff9487c42965f37e63fd48a89eedb1d +JAXWS_SHA256SUM = 54803ffb5f4badb119c488bc90670661fd9c7049f32ae94668c38bf85e709047 +JDK_SHA256SUM = aa99e5b5e3ee7cb7bf94e90b2fb1bd45382548d620614acbb6621234698b7929 +LANGTOOLS_SHA256SUM = 991fc492c08a51163dd54c3cd247764f1b3986a88a77042c137a5a0c1fac4b1e +OPENJDK_SHA256SUM = 653d459911cae04907adeb1c1c5926c0ff1d874127ad16d72324cba63975f57b CACAO_VERSION = d6264eb66506 CACAO_SHA256SUM = 94ea7899e806ccbc33a732b5113a8f969d8b1f4ce7ffd27cf04577054f65f63c @@ -31,14 +31,14 @@ JAMVM_SRC_ZIP = jamvm-$(JAMVM_VERSION).tar.gz JAXWS_DROP_URL = http://icedtea.classpath.org/download/drops -JAXWS_DROP_ZIP = jdk7-jaxws2_2_4-b02-2011_05_09.zip -JAXWS_DROP_SHA256SUM = 2fd874aae97a4206c8f4cd93ee419c09f95c3f684349182b66b6ee9010c72f84 +JAXWS_DROP_ZIP = jdk7-jaxws2_2_4-b03-2011_05_27.zip +JAXWS_DROP_SHA256SUM = 05ae7259b75d0f2307276d61ece1887fcd437cb4ecda42fab8c22d4b537effd6 JAF_DROP_URL = http://icedtea.classpath.org/download/drops JAF_DROP_ZIP = jdk7-jaf-2010_08_19.zip JAF_DROP_SHA256SUM = e6aefedfdbb4673e8019583d1344fb162b94e1b10382c362364dbbfd5889c09e JAXP_DROP_URL = http://icedtea.classpath.org/download/drops -JAXP_DROP_ZIP = jaxp-1_4_5.zip -JAXP_DROP_SHA256SUM = 8145a789a61d21d0ff9902e4dc1c7ba492bb407ee614187dc933321922249ddb +JAXP_DROP_ZIP = jaxp145_01.zip +JAXP_DROP_SHA256SUM = c5924c6188988e2e8397ee5143bd8eaa062569d052567afd2ac9326a54a848cb ICEDTEA_PREFIX = icedtea7-forest ICEDTEA_HG_URL = http://icedtea.classpath.org/hg/$(ICEDTEA_PREFIX) @@ -1671,7 +1671,7 @@ stamps/bootstrap-directory-stage1.stamp: stamps/native-ecj.stamp mkdir -p $(STAGE1_BOOT_DIR)/bin stamps/ ln -sf $(JAVA) $(STAGE1_BOOT_DIR)/bin/java - ln -sf $(JAVAH) $(STAGE1_BOOT_DIR)/bin/javah + ln -sf ../../../javah $(STAGE1_BOOT_DIR)/bin/javah ln -sf $(RMIC) $(STAGE1_BOOT_DIR)/bin/rmic ln -sf $(JAR) $(STAGE1_BOOT_DIR)/bin/jar ln -sf $(NATIVE2ASCII) $(STAGE1_BOOT_DIR)/bin/native2ascii diff -r c3bc27e0ae44 -r 71fb0f9294cb configure.ac --- a/configure.ac Tue Jul 12 11:32:03 2011 +0100 +++ b/configure.ac Wed Jul 13 22:13:02 2011 +0100 @@ -107,6 +107,7 @@ fi AC_CONFIG_FILES([javac], [chmod +x javac]) AC_CONFIG_FILES([javap], [chmod +x javap]) +AC_CONFIG_FILES([javah], [chmod +x javah]) IT_JAVAH IT_LIBRARY_CHECK diff -r c3bc27e0ae44 -r 71fb0f9294cb javah.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javah.in Wed Jul 13 22:13:02 2011 +0100 @@ -0,0 +1,4 @@ +#!/usr/bin/perl -w +use strict; + +exec '@JAVAH@', (grep !/^-X/, @ARGV) ; diff -r c3bc27e0ae44 -r 71fb0f9294cb patches/boot/ecj-autoboxing.patch --- a/patches/boot/ecj-autoboxing.patch Tue Jul 12 11:32:03 2011 +0100 +++ b/patches/boot/ecj-autoboxing.patch Wed Jul 13 22:13:02 2011 +0100 @@ -1,7 +1,7 @@ -diff -r 1631a3dee8fc src/share/classes/java/lang/invoke/CallSite.java ---- openjdk-boot/jdk/src/share/classes/java/lang/invoke/CallSite.java Wed Apr 20 04:38:36 2011 +0100 -+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/CallSite.java Sat Apr 30 02:38:41 2011 +0100 -@@ -309,7 +309,7 @@ +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/CallSite.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/CallSite.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/CallSite.java 2011-07-12 12:43:47.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/CallSite.java 2011-07-12 15:12:13.210932096 +0100 +@@ -329,7 +329,7 @@ private static Object maybeReBox(Object x) { if (x instanceof Integer) { @@ -10,10 +10,10 @@ if (xi == (byte) xi) x = xi; // must rebox; see JLS 5.1.7 } -diff -r 1631a3dee8fc src/share/classes/java/lang/invoke/FromGeneric.java ---- openjdk-boot/jdk/src/share/classes/java/lang/invoke/FromGeneric.java Wed Apr 20 04:38:36 2011 +0100 -+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/FromGeneric.java Sat Apr 30 02:38:41 2011 +0100 -@@ -502,10 +502,10 @@ +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/FromGeneric.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/FromGeneric.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/FromGeneric.java 2011-06-11 00:38:08.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/FromGeneric.java 2011-07-12 15:12:13.210932096 +0100 +@@ -505,10 +505,10 @@ protected A0 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A0(e, i, c, t); } protected Object invoke_L0() throws Throwable { return convert_L((Object)invoker.invokeExact(target)); } @@ -28,7 +28,7 @@ } static class A1 extends Adapter { protected A1(MethodHandle entryPoint) { super(entryPoint); } // to build prototype -@@ -514,10 +514,10 @@ +@@ -517,10 +517,10 @@ protected A1 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A1(e, i, c, t); } protected Object invoke_L1(Object a0) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0)); } @@ -43,7 +43,7 @@ } static class A2 extends Adapter { protected A2(MethodHandle entryPoint) { super(entryPoint); } // to build prototype -@@ -526,10 +526,10 @@ +@@ -529,10 +529,10 @@ protected A2 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A2(e, i, c, t); } protected Object invoke_L2(Object a0, Object a1) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1)); } @@ -58,7 +58,7 @@ } static class A3 extends Adapter { protected A3(MethodHandle entryPoint) { super(entryPoint); } // to build prototype -@@ -538,10 +538,10 @@ +@@ -541,10 +541,10 @@ protected A3 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A3(e, i, c, t); } protected Object invoke_L3(Object a0, Object a1, Object a2) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2)); } @@ -73,7 +73,7 @@ } static class A4 extends Adapter { protected A4(MethodHandle entryPoint) { super(entryPoint); } // to build prototype -@@ -550,10 +550,10 @@ +@@ -553,10 +553,10 @@ protected A4 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A4(e, i, c, t); } protected Object invoke_L4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3)); } @@ -88,7 +88,7 @@ } static class A5 extends Adapter { protected A5(MethodHandle entryPoint) { super(entryPoint); } // to build prototype -@@ -562,10 +562,10 @@ +@@ -565,10 +565,10 @@ protected A5 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A5(e, i, c, t); } protected Object invoke_L5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4)); } @@ -103,7 +103,7 @@ } static class A6 extends Adapter { protected A6(MethodHandle entryPoint) { super(entryPoint); } // to build prototype -@@ -574,10 +574,10 @@ +@@ -577,10 +577,10 @@ protected A6 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A6(e, i, c, t); } protected Object invoke_L6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } @@ -118,7 +118,7 @@ } static class A7 extends Adapter { protected A7(MethodHandle entryPoint) { super(entryPoint); } // to build prototype -@@ -586,10 +586,10 @@ +@@ -589,10 +589,10 @@ protected A7 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A7(e, i, c, t); } protected Object invoke_L7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } @@ -133,7 +133,7 @@ } static class A8 extends Adapter { protected A8(MethodHandle entryPoint) { super(entryPoint); } // to build prototype -@@ -598,10 +598,10 @@ +@@ -601,10 +601,10 @@ protected A8 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A8(e, i, c, t); } protected Object invoke_L8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } @@ -148,7 +148,7 @@ } static class A9 extends Adapter { protected A9(MethodHandle entryPoint) { super(entryPoint); } // to build prototype -@@ -610,10 +610,10 @@ +@@ -613,10 +613,10 @@ protected A9 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A9(e, i, c, t); } protected Object invoke_L9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } @@ -163,7 +163,7 @@ } static class A10 extends Adapter { protected A10(MethodHandle entryPoint) { super(entryPoint); } // to build prototype -@@ -622,9 +622,9 @@ +@@ -625,9 +625,9 @@ protected A10 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A10(e, i, c, t); } protected Object invoke_L10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } @@ -177,10 +177,10 @@ + protected Object invoke_D10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_D((Double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } } } -diff -r 1631a3dee8fc src/share/classes/java/lang/invoke/MethodHandleImpl.java ---- openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java Wed Apr 20 04:38:36 2011 +0100 -+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java Sat Apr 30 02:38:41 2011 +0100 -@@ -832,52 +832,52 @@ +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java 2011-07-12 12:43:47.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java 2011-07-12 15:12:13.214932157 +0100 +@@ -956,52 +956,52 @@ return addTypeString(target, this); } private Object invoke_V(Object... av) throws Throwable { @@ -243,10 +243,10 @@ return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7); return fallback.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7); } -diff -r 1631a3dee8fc src/share/classes/java/lang/invoke/ToGeneric.java ---- openjdk-boot/jdk/src/share/classes/java/lang/invoke/ToGeneric.java Wed Apr 20 04:38:36 2011 +0100 -+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/ToGeneric.java Sat Apr 30 02:38:41 2011 +0100 -@@ -390,10 +390,10 @@ +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/ToGeneric.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/ToGeneric.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/ToGeneric.java 2011-06-11 00:38:08.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/ToGeneric.java 2011-07-12 15:12:13.214932157 +0100 +@@ -394,10 +394,10 @@ // Code to run when the generic target has finished and produced a value. protected Object return_L(Object res) throws Throwable { return (Object)convert.invokeExact(res); } @@ -261,22 +261,22 @@ static private final String CLASS_PREFIX; // "java.lang.invoke.ToGeneric$" static { -diff -r d28f54a421b1 src/share/classes/sun/invoke/util/ValueConversions.java ---- openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java Mon Jun 13 15:58:42 2011 +0100 -+++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java Thu Jun 23 17:29:41 2011 +0100 -@@ -209,9 +209,9 @@ +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/ValueConversions.java openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/ValueConversions.java 2011-07-12 14:52:51.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java 2011-07-12 15:12:50.499499088 +0100 +@@ -223,9 +223,9 @@ if (x instanceof Number) { res = (Number) x; } else if (x instanceof Boolean) { -- res = ((boolean)x ? 1 : 0); -+ res = ((Boolean)x ? 1 : 0); +- res = ((boolean)x ? ONE_INT : ZERO_INT); ++ res = ((Boolean)x ? ONE_INT : ZERO_INT); } else if (x instanceof Character) { - res = (int)(char)x; + res = (int)(Character)x; } else { // this will fail with the required ClassCastException: res = (Number) x; -@@ -371,7 +371,7 @@ +@@ -386,7 +386,7 @@ static int unboxRawInteger(Object x) { if (x instanceof Integer) diff -r c3bc27e0ae44 -r 71fb0f9294cb patches/boot/ecj-diamond.patch --- a/patches/boot/ecj-diamond.patch Tue Jul 12 11:32:03 2011 +0100 +++ b/patches/boot/ecj-diamond.patch Wed Jul 13 22:13:02 2011 +0100 @@ -1,6 +1,6 @@ diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java --- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2011-04-14 01:29:58.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2011-06-14 02:06:39.313002689 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2011-07-12 16:56:06.686259706 +0100 @@ -104,9 +104,9 @@ return this.def.compareTo(that.def); } @@ -72,8 +72,8 @@ for (int i = 0; i < layout.length(); i++) { if (layout.charAt(i++) != '[') diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2011-06-14 01:54:53.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2011-06-14 02:06:39.329002971 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2011-07-12 15:23:26.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2011-07-12 16:56:06.702259970 +0100 @@ -257,7 +257,7 @@ assert(basicCodings[_meta_default] == null); assert(basicCodings[_meta_canon_min] != null); @@ -136,8 +136,8 @@ return true; } diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2011-06-14 01:54:52.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2011-06-14 02:06:39.329002971 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2011-07-12 15:23:26.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2011-07-12 16:56:06.702259970 +0100 @@ -466,7 +466,7 @@ void readInnerClasses(Class cls) throws IOException { @@ -149,7 +149,7 @@ new InnerClass(readClassRef(), diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java --- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java 2011-04-14 01:29:58.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java 2011-06-14 02:06:39.329002971 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java 2011-07-12 16:56:06.702259970 +0100 @@ -743,9 +743,9 @@ // Steps 1/2/3 are interdependent, and may be iterated. // Steps 4 and 5 may be decided independently afterward. @@ -187,7 +187,7 @@ } diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java --- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java 2011-04-14 01:29:58.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java 2011-06-14 02:06:39.329002971 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java 2011-07-12 16:56:06.702259970 +0100 @@ -402,7 +402,7 @@ private static Map codeMap; @@ -199,7 +199,7 @@ if (x1 == null) codeMap.put(x0, x1 = x0); diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java --- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2011-04-14 01:29:58.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2011-06-14 02:06:39.329002971 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2011-07-12 16:56:06.702259970 +0100 @@ -919,7 +919,7 @@ public static Index[] partition(Index ix, int[] keys) { @@ -228,8 +228,8 @@ Entry e = work.previous(); work.remove(); // pop stack diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2011-06-14 01:54:53.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2011-06-14 02:06:39.329002971 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2011-07-12 15:23:26.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2011-07-12 16:56:06.702259970 +0100 @@ -59,7 +59,7 @@ ResourceBundle.getBundle("com.sun.java.util.jar.pack.DriverResource"); @@ -268,7 +268,7 @@ String[] words = optline.split("\\p{Space}+"); diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java --- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2011-04-14 01:29:58.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2011-06-14 02:06:39.329002971 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2011-07-12 16:56:06.702259970 +0100 @@ -45,7 +45,7 @@ private final ArrayList flist; @@ -279,8 +279,8 @@ for (int i = 0 ; i < capacity ; i++) { flist.add(null); diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2011-06-14 01:54:52.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2011-06-14 02:06:39.333003042 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2011-07-12 15:23:26.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2011-07-12 16:56:06.702259970 +0100 @@ -112,7 +112,7 @@ public static final Attribute.Layout attrSourceFileSpecial; public static final Map attrDefs; @@ -436,8 +436,8 @@ // Add to the end of ths list: if (!fileSet.contains(cls.file)) diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2011-06-14 01:54:53.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2011-06-14 02:06:39.333003042 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2011-07-12 15:23:26.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2011-07-12 16:56:06.702259970 +0100 @@ -686,7 +686,7 @@ cp_Signature_classes.expectLength(getIntTotal(numSigClasses)); cp_Signature_classes.readFrom(in); @@ -551,8 +551,8 @@ ClassEntry thisClass = curClass.thisClass; ClassEntry superClass = curClass.superClass; diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2011-06-14 01:54:53.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2011-06-14 02:06:39.333003042 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2011-07-12 15:23:26.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2011-07-12 16:56:06.706260036 +0100 @@ -116,7 +116,7 @@ int[][] attrCounts; // count attr. occurences @@ -609,7 +609,7 @@ if (!cls.hasInnerClasses()) continue; diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java --- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2011-04-14 01:29:58.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2011-06-14 02:06:39.333003042 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2011-07-12 16:56:06.710260102 +0100 @@ -183,8 +183,8 @@ final Map attrDefs; final Map attrCommands; @@ -641,7 +641,7 @@ InFile inFile = new InFile(jf, je); diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java --- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2011-04-14 01:29:59.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2011-06-14 02:06:39.333003042 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2011-07-12 16:56:06.714260168 +0100 @@ -309,7 +309,7 @@ // As each new value is added, we assert that the value // was not already in the set. @@ -652,8 +652,8 @@ maxForDebug += fillp; int min = Integer.MIN_VALUE; // farthest from the center diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2011-06-14 01:54:53.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2011-06-14 02:06:39.333003042 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2011-07-12 15:23:26.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2011-07-12 16:56:06.714260168 +0100 @@ -48,8 +48,8 @@ */ @@ -685,7 +685,7 @@ return res; diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java --- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java 2011-04-14 01:29:59.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java 2011-06-14 02:06:39.333003042 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java 2011-07-12 16:56:06.714260168 +0100 @@ -58,12 +58,12 @@ private final Map memberEntries; @@ -706,8 +706,8 @@ } diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java 2011-06-14 01:54:53.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java 2011-06-14 02:06:39.333003042 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java 2011-07-12 15:23:26.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java 2011-07-12 16:56:06.714260168 +0100 @@ -233,7 +233,7 @@ props.setProperty(java.util.jar.Pack200.Unpacker.PROGRESS,"50"); pkg.ensureAllClassFiles(); @@ -718,8 +718,8 @@ String name = file.nameString; JarEntry je = new JarEntry(Utils.getJarEntryName(name)); diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java 2011-06-14 01:54:53.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java 2011-06-14 02:06:39.333003042 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java 2011-07-12 15:23:26.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java 2011-07-12 16:56:06.714260168 +0100 @@ -132,7 +132,7 @@ // Keep a TLS point to the global data and environment. // This makes it simpler to supply environmental options @@ -731,7 +731,7 @@ static TLGlobals getTLGlobals() { diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/dns/DnsContextFactory.java openjdk-boot/jdk/src/share/classes/com/sun/jndi/dns/DnsContextFactory.java --- openjdk-boot.orig/jdk/src/share/classes/com/sun/jndi/dns/DnsContextFactory.java 2011-04-14 01:29:59.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/dns/DnsContextFactory.java 2011-06-14 02:06:39.333003042 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/jndi/dns/DnsContextFactory.java 2011-07-12 16:56:06.714260168 +0100 @@ -135,7 +135,7 @@ throw new ConfigurationException("DNS pseudo-URL required"); } @@ -741,9 +741,42 @@ for (int i = 0; i < urls.length; i++) { String server = urls[i].getHost(); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java 2011-06-11 00:38:08.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java 2011-07-12 16:56:06.822261957 +0100 +@@ -1284,7 +1284,7 @@ + */ From andrew at icedtea.classpath.org Wed Jul 13 14:36:38 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 13 Jul 2011 21:36:38 +0000 Subject: /hg/icedtea7: Test whether javah supports -X and only filter if ... Message-ID: changeset 76c688f49231 in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=76c688f49231 author: Andrew John Hughes date: Wed Jul 13 22:36:33 2011 +0100 Test whether javah supports -X and only filter if not. 2011-07-13 Andrew John Hughes * Makefile.am: (bootstrap-directory-stage1): Only use javah script to ignore -X options if unsupported. * acinclude.m4: (IT_JAVAH): Extend to check whether javah supports -Xbootclasspath and set JAVAH_SUPPORTS_X_OPTIONS if so. diffstat: ChangeLog | 10 ++++++++++ Makefile.am | 4 ++++ acinclude.m4 | 8 ++++++++ 3 files changed, 22 insertions(+), 0 deletions(-) diffs (55 lines): diff -r 71fb0f9294cb -r 76c688f49231 ChangeLog --- a/ChangeLog Wed Jul 13 22:13:02 2011 +0100 +++ b/ChangeLog Wed Jul 13 22:36:33 2011 +0100 @@ -1,3 +1,13 @@ +2011-07-13 Andrew John Hughes + + * Makefile.am: + (bootstrap-directory-stage1): Only use + javah script to ignore -X options if unsupported. + * acinclude.m4: + (IT_JAVAH): Extend to check whether javah supports + -Xbootclasspath and set JAVAH_SUPPORTS_X_OPTIONS if + so. + 2011-07-13 Andrew John Hughes Bump to b147. diff -r 71fb0f9294cb -r 76c688f49231 Makefile.am --- a/Makefile.am Wed Jul 13 22:13:02 2011 +0100 +++ b/Makefile.am Wed Jul 13 22:36:33 2011 +0100 @@ -1671,7 +1671,11 @@ stamps/bootstrap-directory-stage1.stamp: stamps/native-ecj.stamp mkdir -p $(STAGE1_BOOT_DIR)/bin stamps/ ln -sf $(JAVA) $(STAGE1_BOOT_DIR)/bin/java +if JAVAH_SUPPORTS_X_OPTIONS + ln -sf $(JAVAH) $(STAGE1_BOOT_DIR)/bin/javah +else ln -sf ../../../javah $(STAGE1_BOOT_DIR)/bin/javah +endif ln -sf $(RMIC) $(STAGE1_BOOT_DIR)/bin/rmic ln -sf $(JAR) $(STAGE1_BOOT_DIR)/bin/jar ln -sf $(NATIVE2ASCII) $(STAGE1_BOOT_DIR)/bin/native2ascii diff -r 71fb0f9294cb -r 76c688f49231 acinclude.m4 --- a/acinclude.m4 Wed Jul 13 22:13:02 2011 +0100 +++ b/acinclude.m4 Wed Jul 13 22:36:33 2011 +0100 @@ -1269,11 +1269,19 @@ fi fi ]) +AC_CACHE_CHECK([if $JAVAH supports -X options], it_cv_javahx, [ + if $JAVAH -Xbootclasspath:${SYSTEM_JDK_DIR}/jre/lib/rt.jar -classpath . $SUB >&AS_MESSAGE_LOG_FD 2>&1; then + it_cv_javahx=yes + else + it_cv_javahx=no + fi +]) rm -f $SUBCLASS $SUPERCLASS $SUBHEADER *.class cd .. rmdir tmp.$$ AM_CONDITIONAL([CP39408_JAVAH], test x"${it_cv_cp39408_javah}" = "xyes") AM_CONDITIONAL([CP40188_JAVAH], test x"${it_cv_cp40188_javah}" = "xyes") +AM_CONDITIONAL([JAVAH_SUPPORTS_X_OPTIONS], test x"${it_cv_javahx}" = "xyes") AC_PROVIDE([$0])dnl ]) From drazzib at drazzib.com Wed Jul 13 17:24:49 2011 From: drazzib at drazzib.com (Damien Raude-Morvan) Date: Thu, 14 Jul 2011 02:24:49 +0200 Subject: /hg/icedtea7: Bump to b147. In-Reply-To: References: Message-ID: <201107140224.53535.drazzib@drazzib.com> Hi Andrew, Le mercredi 13 juillet 2011 23:13:08, andrew at icedtea.classpath.org a ?crit : > changeset 71fb0f9294cb in /hg/icedtea7 > details: > http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=71fb0f9294cb > author: Andrew John Hughes > date: Wed Jul 13 22:13:02 2011 +0100 > > Bump to b147. [...] > JAXWS_DROP_URL = http://icedtea.classpath.org/download/drops > -JAXWS_DROP_ZIP = jdk7-jaxws2_2_4-b02-2011_05_09.zip > -JAXWS_DROP_SHA256SUM = > 2fd874aae97a4206c8f4cd93ee419c09f95c3f684349182b66b6ee9010c72f84 > +JAXWS_DROP_ZIP = jdk7-jaxws2_2_4-b03-2011_05_27.zip > +JAXWS_DROP_SHA256SUM = > 05ae7259b75d0f2307276d61ece1887fcd437cb4ecda42fab8c22d4b537effd6 > JAF_DROP_URL = http://icedtea.classpath.org/download/drops > JAF_DROP_ZIP = jdk7-jaf-2010_08_19.zip > JAF_DROP_SHA256SUM = > e6aefedfdbb4673e8019583d1344fb162b94e1b10382c362364dbbfd5889c09e > JAXP_DROP_URL = http://icedtea.classpath.org/download/drops > -JAXP_DROP_ZIP = jaxp-1_4_5.zip > -JAXP_DROP_SHA256SUM = > 8145a789a61d21d0ff9902e4dc1c7ba492bb407ee614187dc933321922249ddb > +JAXP_DROP_ZIP = jaxp145_01.zip > +JAXP_DROP_SHA256SUM = > c5924c6188988e2e8397ee5143bd8eaa062569d052567afd2ac9326a54a848cb jdk7-jaxws2_2_4-b03-2011_05_27.zip and jaxp145_01.zip archives seems to be missing from http://icedtea.classpath.org/download/drops/. Could you please upload them ? Regards, -- Damien -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: This is a digitally signed message part. Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110714/bc0a06ae/attachment.bin From mjw at icedtea.classpath.org Thu Jul 14 02:33:00 2011 From: mjw at icedtea.classpath.org (mjw at icedtea.classpath.org) Date: Thu, 14 Jul 2011 09:33:00 +0000 Subject: /hg/icedtea: Update sha256sums for new icedtea mercurial server ... Message-ID: changeset 5abf79d696a1 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=5abf79d696a1 author: Mark Wielaard date: Thu Jul 14 11:32:39 2011 +0200 Update sha256sums for new icedtea mercurial server settings. * Makefile.am (CORBA_SHA256SUM): Updated for new icedtea hg server settings. (HOTSPOT_SHA256SUM): Likewise. (JAXP_SHA256SUM): Likewise. (JAXWS_SHA256SUM): Likewise. (JDK_SHA256SUM): Likewise. (LANGTOOLS_SHA256SUM): Likewise. (OPENJDK_SHA256SUM): Likewise. diffstat: ChangeLog | 11 +++++++++++ Makefile.am | 14 +++++++------- 2 files changed, 18 insertions(+), 7 deletions(-) diffs (42 lines): diff -r 2873a95c05c8 -r 5abf79d696a1 ChangeLog --- a/ChangeLog Tue Jul 12 11:37:19 2011 +0100 +++ b/ChangeLog Thu Jul 14 11:32:39 2011 +0200 @@ -1,3 +1,14 @@ +2011-07-14 Mark Wielaard + + * Makefile.am (CORBA_SHA256SUM): Updated for new icedtea hg server + settings. + (HOTSPOT_SHA256SUM): Likewise. + (JAXP_SHA256SUM): Likewise. + (JAXWS_SHA256SUM): Likewise. + (JDK_SHA256SUM): Likewise. + (LANGTOOLS_SHA256SUM): Likewise. + (OPENJDK_SHA256SUM): Likewise. + 2011-07-12 Andrew John Hughes * NEWS: Add section for 3.0 beta 1. diff -r 2873a95c05c8 -r 5abf79d696a1 Makefile.am --- a/Makefile.am Tue Jul 12 11:37:19 2011 +0100 +++ b/Makefile.am Thu Jul 14 11:32:39 2011 +0200 @@ -10,13 +10,13 @@ LANGTOOLS_CHANGESET = 1316e51b3995 OPENJDK_CHANGESET = 2108c94c0d3d -CORBA_SHA256SUM = 8d0b3dcbc5e160b0909e66a7b2aaa5f0783892d7ce2df4b7c3a00bb4eee7e882 -HOTSPOT_SHA256SUM = 1d4643b4a8fb093403eca0bca69e8b6cabf5db4dc7df157650fdbd6f91580246 -JAXP_SHA256SUM = 9244b44984c255e54e37a4556c4985f5356bd611de536f2bae58f9aa1d82bb7d -JAXWS_SHA256SUM = 44022c1546f6589f9bac6aa8079642aadf0c43e61afc074b841d3f6dd6e30609 -JDK_SHA256SUM = ba69d9e4cdd1a92bda3aaaf0fcabafa3663f01e19ee3575fd3d81c6c2027e653 -LANGTOOLS_SHA256SUM = 022e167d31a948cebe9ea163b4e3dafdc6d23acba16b40170b00c4b24f4a14d0 -OPENJDK_SHA256SUM = e2ce820b0da226ef334252469ba9e7a6186b35023f3c68751befaaffc6f86ee0 +CORBA_SHA256SUM = c13569b05931c858c0bb999e160aa89208b507ce5591b068d9b8b672fba34b19 +HOTSPOT_SHA256SUM = 6fd67e0875b0dbba01b0162c1660deee7642b53acd7358bc207f09ff5a2ad828 +JAXP_SHA256SUM = 5cbc5f855815cc327fc59452c87116521c2417d7bcbe42229fbb0f7a872dc691 +JAXWS_SHA256SUM = 9695be9ec5d394bd9212093f03c4064ce4cf29119163e66944692976700a1956 +JDK_SHA256SUM = 7fa59b0e0d803b603c176b1b1d34375adb417567e31a3735e6e229810266f027 +LANGTOOLS_SHA256SUM = 41d51de84b8865718fa9085f76bb2f64a2ec5af03d458a7fd2cf49c2fd5e4d7e +OPENJDK_SHA256SUM = adb23e8fe1e2e4fd2f34cfdf57ede78aa3e6f983af113bb8fd7dfe073f343d17 CACAO_VERSION = d6264eb66506 CACAO_SHA256SUM = 94ea7899e806ccbc33a732b5113a8f969d8b1f4ce7ffd27cf04577054f65f63c From mark at klomp.org Thu Jul 14 02:33:11 2011 From: mark at klomp.org (Mark Wielaard) Date: Thu, 14 Jul 2011 11:33:11 +0200 Subject: Announcing IcedTea8 In-Reply-To: <1310466641.3271.5.camel@springer.wildebeest.org> References: <20110712093149.GC14335@shelob.middle-earth.co.uk> <1310466641.3271.5.camel@springer.wildebeest.org> Message-ID: <1310635991.5685.68.camel@springer.wildebeest.org> On Tue, 2011-07-12 at 12:30 +0200, Mark Wielaard wrote: > On Tue, 2011-07-12 at 10:31 +0100, Andrew John Hughes wrote: > > Forests for both OpenJDK7 & OpenJDK8 are on the IcedTea server but we'll currently > > be reverting back to the OpenJDK servers until the issue with .hg_archival.txt is > > fixed. At present, checksums are broken by any update to the tree which is > > unacceptable for releases. > > Andrew already found and fixed it. So just for the archives (pun > intended), the following setting got changed from True to False: > > [ui] > # Whether to include the .hg_archival.txt file containing meta data > # (hashes for the repository base and for tip) in archives created > # by the :hg:`archive` command or downloaded via hgweb. > # Default is True. > archivemeta=False But... That changes the current sha256sums of tar balls downloaded through the icedtea hg server. This is slightly unfortunate, since it will mean trouble for old checkouts (not for releases that use premade tar balls). The sha256sums should be stable going forward, since we will never include the archive meta data anymore, so I just changed the one for the main icedtea repo to match up again: 2011-07-14 Mark Wielaard * Makefile.am (CORBA_SHA256SUM): Updated for new icedtea hg server settings. (HOTSPOT_SHA256SUM): Likewise. (JAXP_SHA256SUM): Likewise. (JAXWS_SHA256SUM): Likewise. (JDK_SHA256SUM): Likewise. (LANGTOOLS_SHA256SUM): Likewise. (OPENJDK_SHA256SUM): Likewise. Which should fix the buildbot for (what is currently still called icedtea7, but tracks the main icedtea archive, which will turn into 8): http://icedtea.classpath.org/icedtea/buildbot/waterfall Cheers, Mark diff -r 2873a95c05c8 Makefile.am --- a/Makefile.am Tue Jul 12 11:37:19 2011 +0100 +++ b/Makefile.am Thu Jul 14 11:31:33 2011 +0200 @@ -10,13 +10,13 @@ LANGTOOLS_CHANGESET = 1316e51b3995 OPENJDK_CHANGESET = 2108c94c0d3d -CORBA_SHA256SUM = 8d0b3dcbc5e160b0909e66a7b2aaa5f0783892d7ce2df4b7c3a00bb4eee7e882 -HOTSPOT_SHA256SUM = 1d4643b4a8fb093403eca0bca69e8b6cabf5db4dc7df157650fdbd6f91580246 -JAXP_SHA256SUM = 9244b44984c255e54e37a4556c4985f5356bd611de536f2bae58f9aa1d82bb7d -JAXWS_SHA256SUM = 44022c1546f6589f9bac6aa8079642aadf0c43e61afc074b841d3f6dd6e30609 -JDK_SHA256SUM = ba69d9e4cdd1a92bda3aaaf0fcabafa3663f01e19ee3575fd3d81c6c2027e653 -LANGTOOLS_SHA256SUM = 022e167d31a948cebe9ea163b4e3dafdc6d23acba16b40170b00c4b24f4a14d0 -OPENJDK_SHA256SUM = e2ce820b0da226ef334252469ba9e7a6186b35023f3c68751befaaffc6f86ee0 +CORBA_SHA256SUM = c13569b05931c858c0bb999e160aa89208b507ce5591b068d9b8b672fba34b19 +HOTSPOT_SHA256SUM = 6fd67e0875b0dbba01b0162c1660deee7642b53acd7358bc207f09ff5a2ad828 +JAXP_SHA256SUM = 5cbc5f855815cc327fc59452c87116521c2417d7bcbe42229fbb0f7a872dc691 +JAXWS_SHA256SUM = 9695be9ec5d394bd9212093f03c4064ce4cf29119163e66944692976700a1956 +JDK_SHA256SUM = 7fa59b0e0d803b603c176b1b1d34375adb417567e31a3735e6e229810266f027 +LANGTOOLS_SHA256SUM = 41d51de84b8865718fa9085f76bb2f64a2ec5af03d458a7fd2cf49c2fd5e4d7e +OPENJDK_SHA256SUM = adb23e8fe1e2e4fd2f34cfdf57ede78aa3e6f983af113bb8fd7dfe073f343d17 CACAO_VERSION = d6264eb66506 CACAO_SHA256SUM = 94ea7899e806ccbc33a732b5113a8f969d8b1f4ce7ffd27cf04577054f65f63c From ahughes at redhat.com Thu Jul 14 15:14:47 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Thu, 14 Jul 2011 23:14:47 +0100 Subject: Announcing IcedTea8 In-Reply-To: <1310635991.5685.68.camel@springer.wildebeest.org> References: <20110712093149.GC14335@shelob.middle-earth.co.uk> <1310466641.3271.5.camel@springer.wildebeest.org> <1310635991.5685.68.camel@springer.wildebeest.org> Message-ID: <20110714221447.GI32334@rivendell.middle-earth.co.uk> On 11:33 Thu 14 Jul , Mark Wielaard wrote: > On Tue, 2011-07-12 at 12:30 +0200, Mark Wielaard wrote: > > On Tue, 2011-07-12 at 10:31 +0100, Andrew John Hughes wrote: > > > Forests for both OpenJDK7 & OpenJDK8 are on the IcedTea server but we'll currently > > > be reverting back to the OpenJDK servers until the issue with .hg_archival.txt is > > > fixed. At present, checksums are broken by any update to the tree which is > > > unacceptable for releases. > > > > Andrew already found and fixed it. So just for the archives (pun > > intended), the following setting got changed from True to False: > > > > [ui] > > # Whether to include the .hg_archival.txt file containing meta data > > # (hashes for the repository base and for tip) in archives created > > # by the :hg:`archive` command or downloaded via hgweb. > > # Default is True. > > archivemeta=False > > But... That changes the current sha256sums of tar balls downloaded > through the icedtea hg server. This is slightly unfortunate, since it > will mean trouble for old checkouts (not for releases that use premade > tar balls). > Yes but there is only one release (1.14) and it was already broken by tagging for the release, due to the storage of this metadata! Hence, why I wanted this fixed before we do the *real* release (2.0). > The sha256sums should be stable going forward, since we will never > include the archive meta data anymore, so I just changed the one for the > main icedtea repo to match up again: > > 2011-07-14 Mark Wielaard > > * Makefile.am (CORBA_SHA256SUM): Updated for new icedtea hg server > settings. > (HOTSPOT_SHA256SUM): Likewise. > (JAXP_SHA256SUM): Likewise. > (JAXWS_SHA256SUM): Likewise. > (JDK_SHA256SUM): Likewise. > (LANGTOOLS_SHA256SUM): Likewise. > (OPENJDK_SHA256SUM): Likewise. > > Which should fix the buildbot for (what is currently still called > icedtea7, but tracks the main icedtea archive, which will turn into 8): > http://icedtea.classpath.org/icedtea/buildbot/waterfall > Yeah, I saw this. Thanks for doing it, but the effort is a little wasted as I'm working on updating 8 and these checksums have already been invalidated again now that it uses the 8 forest and not 7. > Cheers, > > Mark > > diff -r 2873a95c05c8 Makefile.am > --- a/Makefile.am Tue Jul 12 11:37:19 2011 +0100 > +++ b/Makefile.am Thu Jul 14 11:31:33 2011 +0200 > @@ -10,13 +10,13 @@ > LANGTOOLS_CHANGESET = 1316e51b3995 > OPENJDK_CHANGESET = 2108c94c0d3d > > -CORBA_SHA256SUM = 8d0b3dcbc5e160b0909e66a7b2aaa5f0783892d7ce2df4b7c3a00bb4eee7e882 > -HOTSPOT_SHA256SUM = 1d4643b4a8fb093403eca0bca69e8b6cabf5db4dc7df157650fdbd6f91580246 > -JAXP_SHA256SUM = 9244b44984c255e54e37a4556c4985f5356bd611de536f2bae58f9aa1d82bb7d > -JAXWS_SHA256SUM = 44022c1546f6589f9bac6aa8079642aadf0c43e61afc074b841d3f6dd6e30609 > -JDK_SHA256SUM = ba69d9e4cdd1a92bda3aaaf0fcabafa3663f01e19ee3575fd3d81c6c2027e653 > -LANGTOOLS_SHA256SUM = 022e167d31a948cebe9ea163b4e3dafdc6d23acba16b40170b00c4b24f4a14d0 > -OPENJDK_SHA256SUM = e2ce820b0da226ef334252469ba9e7a6186b35023f3c68751befaaffc6f86ee0 > +CORBA_SHA256SUM = c13569b05931c858c0bb999e160aa89208b507ce5591b068d9b8b672fba34b19 > +HOTSPOT_SHA256SUM = 6fd67e0875b0dbba01b0162c1660deee7642b53acd7358bc207f09ff5a2ad828 > +JAXP_SHA256SUM = 5cbc5f855815cc327fc59452c87116521c2417d7bcbe42229fbb0f7a872dc691 > +JAXWS_SHA256SUM = 9695be9ec5d394bd9212093f03c4064ce4cf29119163e66944692976700a1956 > +JDK_SHA256SUM = 7fa59b0e0d803b603c176b1b1d34375adb417567e31a3735e6e229810266f027 > +LANGTOOLS_SHA256SUM = 41d51de84b8865718fa9085f76bb2f64a2ec5af03d458a7fd2cf49c2fd5e4d7e > +OPENJDK_SHA256SUM = adb23e8fe1e2e4fd2f34cfdf57ede78aa3e6f983af113bb8fd7dfe073f343d17 > > CACAO_VERSION = d6264eb66506 > CACAO_SHA256SUM = 94ea7899e806ccbc33a732b5113a8f969d8b1f4ce7ffd27cf04577054f65f63c > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From drazzib at drazzib.com Thu Jul 14 15:58:44 2011 From: drazzib at drazzib.com (Damien Raude-Morvan) Date: Fri, 15 Jul 2011 00:58:44 +0200 Subject: fcs 147 shark preliminary patches. In-Reply-To: <20110713164211.GE16917@shelob.middle-earth.co.uk> References: <4E1DBCC8.2000708@LGonQn.Org> <20110713164211.GE16917@shelob.middle-earth.co.uk> Message-ID: <201107150058.53943.drazzib@drazzib.com> Hi Chris, Le mercredi 13 juillet 2011 18:42:12, Andrew John Hughes a ?crit : > On Wed, Jul 13, 2011 at 11:42:00AM -0400, Chris Phillips wrote: > > Hi Andrew > > > > On 13/07/11 11:26 AM, Andrew John Hughes wrote: > > > What version of IcedTea is this for? > > > > Its originally for openjdk jdk7 fcs (b147) > > for icedtea7, now matches > > Ok, probably easiest to just work against the IcedTea7 & > IcedTea8 forests (http://icedtea.classpath.org/hg/icedtea8-forest/hotspot > being the latter). > You should have push access (if not, ask Mark Wielaard). > > I don't know who can actually review this; to my knowledge, only > Gary and Xerxes will be familiar enough with Shark. If it's broken > without this patch, and it works with it, I'm happy enough for you > to commit it, but please check with Xerxes first. Parts of your patch [1] have already been reported/fixed by others : - src/cpu/zero/vm/stack_zero.cpp issue has been reported as #753 [2] and Xerxes already provided a patch. It has been reviewed by John Rose [3]. I think it should be pushed to icedtea7 + icedtea (until upstream merge it) - src/share/vm/runtime/vmStructs.cpp issue has been reported as #757 [4] and seems ok for me (built and jtreg results). Should be pushed too. Regarding you changes to sharedRuntime_zero.cpp and methodHandles_zero.hpp it seems that first reference to methodHandles_zero.hpp comes from 7045514 [5], but final commit into hotspot-comp repository doesn't contains this file... a bit weird. [1] http://lgonqn.org/temp/ChrisPhi/webrev/ [2] http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=753 [3] http://mail.openjdk.java.net/pipermail/zero-dev/2011-July/000387.html [4] http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=757 [5] http://cr.openjdk.java.net/~twisti/7045514/ [6] http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/cba7b5c2d53f Cheers, -- Damien -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: This is a digitally signed message part. Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110715/f341b276/attachment.bin From andrew at icedtea.classpath.org Thu Jul 14 16:55:21 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Thu, 14 Jul 2011 23:55:21 +0000 Subject: /hg/icedtea: 2 new changesets Message-ID: changeset 3b8e8ce0aede in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=3b8e8ce0aede author: Andrew John Hughes date: Thu Jul 14 21:12:04 2011 +0100 Prepare for 8. 2011-07-14 Andrew John Hughes Update for 8. * Makefile.am: (OPENJDK_VERSION): Set to b00. (ICEDTEA_PREFIX): Set to icedtea8-forest. (OPENJDK_HG_URL): Use OpenJDK8 tree. (CACIOCAVALLO_HG_URL): Likewise. (ICEDTEA_NAME): Change to IcedTea8. changeset 217390811b61 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=217390811b61 author: Andrew John Hughes date: Fri Jul 15 00:55:03 2011 +0100 Support tip of IcedTea8 forest. 2011-07-13 Andrew John Hughes Bump to tip. * Makefile.am: (CORBA_CHANGESET): Updated. (HOTSPOT_CHANGESET): Likewise. (JAXP_CHANGESET): Likewise. (JAXWS_CHANGESET): Likewise. (JDK_CHANGESET): Likewise. (LANGTOOLS_CHANGESET): Likewise. (OPENJDK_CHANGESET): Likewise. (CORBA_SHA256SUM): Likewise. (HOTSPOT_SHA256SUM): Likewise. (JAXP_SHA256SUM): Likewise. (JAXWS_SHA256SUM): Likewise. (JDK_SHA256SUM): Likewise. (LANGTOOLS_SHA256SUM): Likewise. (OPENJDK_SHA256SUM): Likewise. (JAXWS_DROP_ZIP): Likewise. (JAXWS_DROP_SHA256SUM): Likewise. (JAXP_DROP_ZIP): Likewise. (JAXP_DROP_SHA256SUM): Likewise. (bootstrap-directory- stage1): Use our script for javah. * configure.ac: Generate script for javah. * javah.in: Filter -X commands from javah. * patches/boot/ecj-autoboxing.patch: Updated to apply against b147. * patches/boot/ecj-diamond.patch, * patches/boot/ecj-stringswitch.patch: Likewise and add new cases. * patches/boot/xbootclasspath.patch: Updated against IcedTea8 forest. diffstat: ChangeLog | 49 +- Makefile.am | 48 +- configure.ac | 1 + javah.in | 4 + patches/boot/ecj-autoboxing.patch | 56 +- patches/boot/ecj-diamond.patch | 1862 +++++++++++++++------------------- patches/boot/ecj-stringswitch.patch | 119 +- patches/boot/xbootclasspath.patch | 24 +- 8 files changed, 1023 insertions(+), 1140 deletions(-) diffs (truncated from 3896 to 500 lines): diff -r 5abf79d696a1 -r 217390811b61 ChangeLog --- a/ChangeLog Thu Jul 14 11:32:39 2011 +0200 +++ b/ChangeLog Fri Jul 15 00:55:03 2011 +0100 @@ -1,7 +1,52 @@ +2011-07-13 Andrew John Hughes + + Bump to tip. + * Makefile.am: + (CORBA_CHANGESET): Updated. + (HOTSPOT_CHANGESET): Likewise. + (JAXP_CHANGESET): Likewise. + (JAXWS_CHANGESET): Likewise. + (JDK_CHANGESET): Likewise. + (LANGTOOLS_CHANGESET): Likewise. + (OPENJDK_CHANGESET): Likewise. + (CORBA_SHA256SUM): Likewise. + (HOTSPOT_SHA256SUM): Likewise. + (JAXP_SHA256SUM): Likewise. + (JAXWS_SHA256SUM): Likewise. + (JDK_SHA256SUM): Likewise. + (LANGTOOLS_SHA256SUM): Likewise. + (OPENJDK_SHA256SUM): Likewise. + (JAXWS_DROP_ZIP): Likewise. + (JAXWS_DROP_SHA256SUM): Likewise. + (JAXP_DROP_ZIP): Likewise. + (JAXP_DROP_SHA256SUM): Likewise. + (bootstrap-directory-stage1): Use our + script for javah. + * configure.ac: + Generate script for javah. + * javah.in: Filter -X commands from javah. + * patches/boot/ecj-autoboxing.patch: + Updated to apply against b147. + * patches/boot/ecj-diamond.patch, + * patches/boot/ecj-stringswitch.patch: + Likewise and add new cases. + * patches/boot/xbootclasspath.patch: + Updated against IcedTea8 forest. + +2011-07-14 Andrew John Hughes + + Update for 8. + * Makefile.am: + (OPENJDK_VERSION): Set to b00. + (ICEDTEA_PREFIX): Set to icedtea8-forest. + (OPENJDK_HG_URL): Use OpenJDK8 tree. + (CACIOCAVALLO_HG_URL): Likewise. + (ICEDTEA_NAME): Change to IcedTea8. + 2011-07-14 Mark Wielaard - * Makefile.am (CORBA_SHA256SUM): Updated for new icedtea hg server - settings. + * Makefile.am (CORBA_SHA256SUM): Updated for new + icedtea hg server settings. (HOTSPOT_SHA256SUM): Likewise. (JAXP_SHA256SUM): Likewise. (JAXWS_SHA256SUM): Likewise. diff -r 5abf79d696a1 -r 217390811b61 Makefile.am --- a/Makefile.am Thu Jul 14 11:32:39 2011 +0200 +++ b/Makefile.am Fri Jul 15 00:55:03 2011 +0100 @@ -1,22 +1,22 @@ # Dependencies -OPENJDK_VERSION = b143 +OPENJDK_VERSION = b00 -CORBA_CHANGESET = 279c876d1001 -HOTSPOT_CHANGESET = f7e8b10f51c6 -JAXP_CHANGESET = d8cdc48a42bd -JAXWS_CHANGESET = e514ae6ec042 -JDK_CHANGESET = d28f54a421b1 -LANGTOOLS_CHANGESET = 1316e51b3995 -OPENJDK_CHANGESET = 2108c94c0d3d +CORBA_CHANGESET = 635ebbe236a9 +HOTSPOT_CHANGESET = dc6631a3d175 +JAXP_CHANGESET = bf4b076e4556 +JAXWS_CHANGESET = 8ff499dc157f +JDK_CHANGESET = dc5df74132b6 +LANGTOOLS_CHANGESET = 8caec3672381 +OPENJDK_CHANGESET = 5057eaa7e88a -CORBA_SHA256SUM = c13569b05931c858c0bb999e160aa89208b507ce5591b068d9b8b672fba34b19 -HOTSPOT_SHA256SUM = 6fd67e0875b0dbba01b0162c1660deee7642b53acd7358bc207f09ff5a2ad828 -JAXP_SHA256SUM = 5cbc5f855815cc327fc59452c87116521c2417d7bcbe42229fbb0f7a872dc691 -JAXWS_SHA256SUM = 9695be9ec5d394bd9212093f03c4064ce4cf29119163e66944692976700a1956 -JDK_SHA256SUM = 7fa59b0e0d803b603c176b1b1d34375adb417567e31a3735e6e229810266f027 -LANGTOOLS_SHA256SUM = 41d51de84b8865718fa9085f76bb2f64a2ec5af03d458a7fd2cf49c2fd5e4d7e -OPENJDK_SHA256SUM = adb23e8fe1e2e4fd2f34cfdf57ede78aa3e6f983af113bb8fd7dfe073f343d17 +CORBA_SHA256SUM = 7a1169d8f6e61bb3a24eba710ad4d278ddeedbb60760eb1dda7f2792171be8cb +HOTSPOT_SHA256SUM = 4fe84dbe91df547c076119c4f7608ebecbf0423bc4613c8a1638a0ba62e163bc +JAXP_SHA256SUM = 4032185df59e093e9401160e2b474507055d64a8d7b6e7d5580c721c13e7050c +JAXWS_SHA256SUM = 6d3ce845a2cec9a321cb23fd8039e1c6dce3ad78610f5fc92016ca1a042e1687 +JDK_SHA256SUM = 28694bd1a0ec60c5dd1829829074ce57c920a4c9b3df6ca4d95629af3dcf39a3 +LANGTOOLS_SHA256SUM = e200d58705b1c144f367679ae2091ab070ecd8c9bc9c06c95b0508fb5a252c1f +OPENJDK_SHA256SUM = c0a48e6c8c5251ed86efb4adee0638587052b8308237e4933b4b2448b51dd962 CACAO_VERSION = d6264eb66506 CACAO_SHA256SUM = 94ea7899e806ccbc33a732b5113a8f969d8b1f4ce7ffd27cf04577054f65f63c @@ -31,21 +31,21 @@ JAMVM_SRC_ZIP = jamvm-$(JAMVM_VERSION).tar.gz JAXWS_DROP_URL = http://icedtea.classpath.org/download/drops -JAXWS_DROP_ZIP = jdk7-jaxws2_2_4-b02-2011_05_09.zip -JAXWS_DROP_SHA256SUM = 2fd874aae97a4206c8f4cd93ee419c09f95c3f684349182b66b6ee9010c72f84 +JAXWS_DROP_ZIP = jdk7-jaxws2_2_4-b03-2011_05_27.zip +JAXWS_DROP_SHA256SUM = 05ae7259b75d0f2307276d61ece1887fcd437cb4ecda42fab8c22d4b537effd6 JAF_DROP_URL = http://icedtea.classpath.org/download/drops JAF_DROP_ZIP = jdk7-jaf-2010_08_19.zip JAF_DROP_SHA256SUM = e6aefedfdbb4673e8019583d1344fb162b94e1b10382c362364dbbfd5889c09e JAXP_DROP_URL = http://icedtea.classpath.org/download/drops -JAXP_DROP_ZIP = jaxp-1_4_5.zip -JAXP_DROP_SHA256SUM = 8145a789a61d21d0ff9902e4dc1c7ba492bb407ee614187dc933321922249ddb +JAXP_DROP_ZIP = jaxp145_01.zip +JAXP_DROP_SHA256SUM = c5924c6188988e2e8397ee5143bd8eaa062569d052567afd2ac9326a54a848cb -ICEDTEA_PREFIX = icedtea7-forest +ICEDTEA_PREFIX = icedtea8-forest ICEDTEA_HG_URL = http://icedtea.classpath.org/hg/$(ICEDTEA_PREFIX) -OPENJDK_HG_URL = http://hg.openjdk.java.net/jdk7/jdk7 +OPENJDK_HG_URL = http://hg.openjdk.java.net/jdk8/jdk8 CVMI_HG_URL = http://hg.openjdk.java.net/cvmi/cvmi/ CLOSURES_HG_URL = http://hg.openjdk.java.net/closures/closures/ -CACIOCAVALLO_HG_URL = http://hg.openjdk.java.net/caciocavallo/jdk7/ +CACIOCAVALLO_HG_URL = http://hg.openjdk.java.net/caciocavallo/jdk8/ BSD_HG_URL = http://hg.openjdk.java.net/bsd-port/bsd-port NIO2_HG_URL = http://hg.openjdk.java.net/nio/nio/ @@ -424,7 +424,7 @@ JDK_UPDATE_VERSION = $(shell echo $(OPENJDK_VERSION) | sed -e "s/^b//") COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION) -ICEDTEA_NAME = IcedTea7 +ICEDTEA_NAME = IcedTea8 if HAS_ICEDTEA_REVISION ICEDTEA_REV = +${ICEDTEA_REVISION} endif @@ -1671,7 +1671,7 @@ stamps/bootstrap-directory-stage1.stamp: stamps/native-ecj.stamp mkdir -p $(STAGE1_BOOT_DIR)/bin stamps/ ln -sf $(JAVA) $(STAGE1_BOOT_DIR)/bin/java - ln -sf $(JAVAH) $(STAGE1_BOOT_DIR)/bin/javah + ln -sf ../../../javah $(STAGE1_BOOT_DIR)/bin/javah ln -sf $(RMIC) $(STAGE1_BOOT_DIR)/bin/rmic ln -sf $(JAR) $(STAGE1_BOOT_DIR)/bin/jar ln -sf $(NATIVE2ASCII) $(STAGE1_BOOT_DIR)/bin/native2ascii diff -r 5abf79d696a1 -r 217390811b61 configure.ac --- a/configure.ac Thu Jul 14 11:32:39 2011 +0200 +++ b/configure.ac Fri Jul 15 00:55:03 2011 +0100 @@ -107,6 +107,7 @@ fi AC_CONFIG_FILES([javac], [chmod +x javac]) AC_CONFIG_FILES([javap], [chmod +x javap]) +AC_CONFIG_FILES([javah], [chmod +x javah]) IT_JAVAH IT_LIBRARY_CHECK diff -r 5abf79d696a1 -r 217390811b61 javah.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javah.in Fri Jul 15 00:55:03 2011 +0100 @@ -0,0 +1,4 @@ +#!/usr/bin/perl -w +use strict; + +exec '@JAVAH@', (grep !/^-X/, @ARGV) ; diff -r 5abf79d696a1 -r 217390811b61 patches/boot/ecj-autoboxing.patch --- a/patches/boot/ecj-autoboxing.patch Thu Jul 14 11:32:39 2011 +0200 +++ b/patches/boot/ecj-autoboxing.patch Fri Jul 15 00:55:03 2011 +0100 @@ -1,7 +1,7 @@ -diff -r 1631a3dee8fc src/share/classes/java/lang/invoke/CallSite.java ---- openjdk-boot/jdk/src/share/classes/java/lang/invoke/CallSite.java Wed Apr 20 04:38:36 2011 +0100 -+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/CallSite.java Sat Apr 30 02:38:41 2011 +0100 -@@ -309,7 +309,7 @@ +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/CallSite.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/CallSite.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/CallSite.java 2011-07-12 12:43:47.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/CallSite.java 2011-07-12 15:12:13.210932096 +0100 +@@ -329,7 +329,7 @@ private static Object maybeReBox(Object x) { if (x instanceof Integer) { @@ -10,10 +10,10 @@ if (xi == (byte) xi) x = xi; // must rebox; see JLS 5.1.7 } -diff -r 1631a3dee8fc src/share/classes/java/lang/invoke/FromGeneric.java ---- openjdk-boot/jdk/src/share/classes/java/lang/invoke/FromGeneric.java Wed Apr 20 04:38:36 2011 +0100 -+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/FromGeneric.java Sat Apr 30 02:38:41 2011 +0100 -@@ -502,10 +502,10 @@ +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/FromGeneric.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/FromGeneric.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/FromGeneric.java 2011-06-11 00:38:08.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/FromGeneric.java 2011-07-12 15:12:13.210932096 +0100 +@@ -505,10 +505,10 @@ protected A0 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A0(e, i, c, t); } protected Object invoke_L0() throws Throwable { return convert_L((Object)invoker.invokeExact(target)); } @@ -28,7 +28,7 @@ } static class A1 extends Adapter { protected A1(MethodHandle entryPoint) { super(entryPoint); } // to build prototype -@@ -514,10 +514,10 @@ +@@ -517,10 +517,10 @@ protected A1 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A1(e, i, c, t); } protected Object invoke_L1(Object a0) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0)); } @@ -43,7 +43,7 @@ } static class A2 extends Adapter { protected A2(MethodHandle entryPoint) { super(entryPoint); } // to build prototype -@@ -526,10 +526,10 @@ +@@ -529,10 +529,10 @@ protected A2 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A2(e, i, c, t); } protected Object invoke_L2(Object a0, Object a1) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1)); } @@ -58,7 +58,7 @@ } static class A3 extends Adapter { protected A3(MethodHandle entryPoint) { super(entryPoint); } // to build prototype -@@ -538,10 +538,10 @@ +@@ -541,10 +541,10 @@ protected A3 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A3(e, i, c, t); } protected Object invoke_L3(Object a0, Object a1, Object a2) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2)); } @@ -73,7 +73,7 @@ } static class A4 extends Adapter { protected A4(MethodHandle entryPoint) { super(entryPoint); } // to build prototype -@@ -550,10 +550,10 @@ +@@ -553,10 +553,10 @@ protected A4 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A4(e, i, c, t); } protected Object invoke_L4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3)); } @@ -88,7 +88,7 @@ } static class A5 extends Adapter { protected A5(MethodHandle entryPoint) { super(entryPoint); } // to build prototype -@@ -562,10 +562,10 @@ +@@ -565,10 +565,10 @@ protected A5 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A5(e, i, c, t); } protected Object invoke_L5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4)); } @@ -103,7 +103,7 @@ } static class A6 extends Adapter { protected A6(MethodHandle entryPoint) { super(entryPoint); } // to build prototype -@@ -574,10 +574,10 @@ +@@ -577,10 +577,10 @@ protected A6 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A6(e, i, c, t); } protected Object invoke_L6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } @@ -118,7 +118,7 @@ } static class A7 extends Adapter { protected A7(MethodHandle entryPoint) { super(entryPoint); } // to build prototype -@@ -586,10 +586,10 @@ +@@ -589,10 +589,10 @@ protected A7 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A7(e, i, c, t); } protected Object invoke_L7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } @@ -133,7 +133,7 @@ } static class A8 extends Adapter { protected A8(MethodHandle entryPoint) { super(entryPoint); } // to build prototype -@@ -598,10 +598,10 @@ +@@ -601,10 +601,10 @@ protected A8 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A8(e, i, c, t); } protected Object invoke_L8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } @@ -148,7 +148,7 @@ } static class A9 extends Adapter { protected A9(MethodHandle entryPoint) { super(entryPoint); } // to build prototype -@@ -610,10 +610,10 @@ +@@ -613,10 +613,10 @@ protected A9 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A9(e, i, c, t); } protected Object invoke_L9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } @@ -163,7 +163,7 @@ } static class A10 extends Adapter { protected A10(MethodHandle entryPoint) { super(entryPoint); } // to build prototype -@@ -622,9 +622,9 @@ +@@ -625,9 +625,9 @@ protected A10 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A10(e, i, c, t); } protected Object invoke_L10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } @@ -177,10 +177,10 @@ + protected Object invoke_D10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_D((Double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } } } -diff -r 1631a3dee8fc src/share/classes/java/lang/invoke/MethodHandleImpl.java ---- openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java Wed Apr 20 04:38:36 2011 +0100 -+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java Sat Apr 30 02:38:41 2011 +0100 -@@ -832,52 +832,52 @@ +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java 2011-07-12 12:43:47.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java 2011-07-12 15:12:13.214932157 +0100 +@@ -956,52 +956,52 @@ return addTypeString(target, this); } private Object invoke_V(Object... av) throws Throwable { @@ -243,10 +243,10 @@ return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7); return fallback.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7); } -diff -r 1631a3dee8fc src/share/classes/java/lang/invoke/ToGeneric.java ---- openjdk-boot/jdk/src/share/classes/java/lang/invoke/ToGeneric.java Wed Apr 20 04:38:36 2011 +0100 -+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/ToGeneric.java Sat Apr 30 02:38:41 2011 +0100 -@@ -390,10 +390,10 @@ +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/ToGeneric.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/ToGeneric.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/ToGeneric.java 2011-06-11 00:38:08.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/ToGeneric.java 2011-07-12 15:12:13.214932157 +0100 +@@ -394,10 +394,10 @@ // Code to run when the generic target has finished and produced a value. protected Object return_L(Object res) throws Throwable { return (Object)convert.invokeExact(res); } @@ -261,22 +261,22 @@ static private final String CLASS_PREFIX; // "java.lang.invoke.ToGeneric$" static { -diff -r d28f54a421b1 src/share/classes/sun/invoke/util/ValueConversions.java ---- openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java Mon Jun 13 15:58:42 2011 +0100 -+++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java Thu Jun 23 17:29:41 2011 +0100 -@@ -209,9 +209,9 @@ +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/ValueConversions.java openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/ValueConversions.java 2011-07-12 14:52:51.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java 2011-07-12 15:12:50.499499088 +0100 +@@ -223,9 +223,9 @@ if (x instanceof Number) { res = (Number) x; } else if (x instanceof Boolean) { -- res = ((boolean)x ? 1 : 0); -+ res = ((Boolean)x ? 1 : 0); +- res = ((boolean)x ? ONE_INT : ZERO_INT); ++ res = ((Boolean)x ? ONE_INT : ZERO_INT); } else if (x instanceof Character) { - res = (int)(char)x; + res = (int)(Character)x; } else { // this will fail with the required ClassCastException: res = (Number) x; -@@ -371,7 +371,7 @@ +@@ -386,7 +386,7 @@ static int unboxRawInteger(Object x) { if (x instanceof Integer) diff -r 5abf79d696a1 -r 217390811b61 patches/boot/ecj-diamond.patch --- a/patches/boot/ecj-diamond.patch Thu Jul 14 11:32:39 2011 +0200 +++ b/patches/boot/ecj-diamond.patch Fri Jul 15 00:55:03 2011 +0100 @@ -1,6 +1,6 @@ diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java --- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2011-04-14 01:29:58.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2011-06-14 02:06:39.313002689 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2011-07-12 16:56:06.686259706 +0100 @@ -104,9 +104,9 @@ return this.def.compareTo(that.def); } @@ -72,8 +72,8 @@ for (int i = 0; i < layout.length(); i++) { if (layout.charAt(i++) != '[') diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2011-06-14 01:54:53.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2011-06-14 02:06:39.329002971 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2011-07-12 15:23:26.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2011-07-12 16:56:06.702259970 +0100 @@ -257,7 +257,7 @@ assert(basicCodings[_meta_default] == null); assert(basicCodings[_meta_canon_min] != null); @@ -136,8 +136,8 @@ return true; } diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2011-06-14 01:54:52.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2011-06-14 02:06:39.329002971 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2011-07-12 15:23:26.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2011-07-12 16:56:06.702259970 +0100 @@ -466,7 +466,7 @@ void readInnerClasses(Class cls) throws IOException { @@ -149,7 +149,7 @@ new InnerClass(readClassRef(), diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java --- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java 2011-04-14 01:29:58.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java 2011-06-14 02:06:39.329002971 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java 2011-07-12 16:56:06.702259970 +0100 @@ -743,9 +743,9 @@ // Steps 1/2/3 are interdependent, and may be iterated. // Steps 4 and 5 may be decided independently afterward. @@ -187,7 +187,7 @@ } diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java --- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java 2011-04-14 01:29:58.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java 2011-06-14 02:06:39.329002971 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java 2011-07-12 16:56:06.702259970 +0100 @@ -402,7 +402,7 @@ private static Map codeMap; @@ -199,7 +199,7 @@ if (x1 == null) codeMap.put(x0, x1 = x0); diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java --- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2011-04-14 01:29:58.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2011-06-14 02:06:39.329002971 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2011-07-12 16:56:06.702259970 +0100 @@ -919,7 +919,7 @@ public static Index[] partition(Index ix, int[] keys) { @@ -228,8 +228,8 @@ Entry e = work.previous(); work.remove(); // pop stack diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2011-06-14 01:54:53.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2011-06-14 02:06:39.329002971 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2011-07-12 15:23:26.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2011-07-12 16:56:06.702259970 +0100 @@ -59,7 +59,7 @@ ResourceBundle.getBundle("com.sun.java.util.jar.pack.DriverResource"); @@ -268,7 +268,7 @@ String[] words = optline.split("\\p{Space}+"); diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java --- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2011-04-14 01:29:58.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2011-06-14 02:06:39.329002971 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2011-07-12 16:56:06.702259970 +0100 @@ -45,7 +45,7 @@ private final ArrayList flist; @@ -279,8 +279,8 @@ for (int i = 0 ; i < capacity ; i++) { flist.add(null); diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2011-06-14 01:54:52.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2011-06-14 02:06:39.333003042 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2011-07-12 15:23:26.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2011-07-12 16:56:06.702259970 +0100 @@ -112,7 +112,7 @@ public static final Attribute.Layout attrSourceFileSpecial; public static final Map attrDefs; @@ -436,8 +436,8 @@ // Add to the end of ths list: if (!fileSet.contains(cls.file)) diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2011-06-14 01:54:53.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2011-06-14 02:06:39.333003042 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2011-07-12 15:23:26.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2011-07-12 16:56:06.702259970 +0100 @@ -686,7 +686,7 @@ cp_Signature_classes.expectLength(getIntTotal(numSigClasses)); cp_Signature_classes.readFrom(in); @@ -551,8 +551,8 @@ ClassEntry thisClass = curClass.thisClass; ClassEntry superClass = curClass.superClass; diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2011-06-14 01:54:53.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2011-06-14 02:06:39.333003042 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2011-07-12 15:23:26.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2011-07-12 16:56:06.706260036 +0100 @@ -116,7 +116,7 @@ int[][] attrCounts; // count attr. occurences @@ -609,7 +609,7 @@ if (!cls.hasInnerClasses()) continue; diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java --- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2011-04-14 01:29:58.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2011-06-14 02:06:39.333003042 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2011-07-12 16:56:06.710260102 +0100 @@ -183,8 +183,8 @@ final Map attrDefs; final Map attrCommands; @@ -641,7 +641,7 @@ InFile inFile = new InFile(jf, je); diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java --- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2011-04-14 01:29:59.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2011-06-14 02:06:39.333003042 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2011-07-12 16:56:06.714260168 +0100 @@ -309,7 +309,7 @@ // As each new value is added, we assert that the value // was not already in the set. @@ -652,8 +652,8 @@ maxForDebug += fillp; int min = Integer.MIN_VALUE; // farthest from the center diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2011-06-14 01:54:53.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2011-06-14 02:06:39.333003042 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2011-07-12 15:23:26.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2011-07-12 16:56:06.714260168 +0100 @@ -48,8 +48,8 @@ */ @@ -685,7 +685,7 @@ return res; diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java --- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java 2011-04-14 01:29:59.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java 2011-06-14 02:06:39.333003042 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java 2011-07-12 16:56:06.714260168 +0100 @@ -58,12 +58,12 @@ private final Map memberEntries; @@ -706,8 +706,8 @@ } diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java From ChrisPhi at LGonQn.Org Thu Jul 14 22:29:18 2011 From: ChrisPhi at LGonQn.Org (Chris Phillips) Date: Fri, 15 Jul 2011 01:29:18 -0400 Subject: fcs 147 shark preliminary patches. In-Reply-To: <201107150058.53943.drazzib@drazzib.com> References: <4E1DBCC8.2000708@LGonQn.Org> <20110713164211.GE16917@shelob.middle-earth.co.uk> <201107150058.53943.drazzib@drazzib.com> Message-ID: <4E1FD02E.7020504@LGonQn.Org> Hi Damien, Thanks! Yes I know that Xerxes has submitted the 2 changes you point out, I stand on the shoulders of giants! (I am an amateur in both zero and shark and a total newby in LLVM... ) My Intent is to get a build of icedtea zero/shark with jdk7 147 fcs and begin the work of debugging zero and shark. The 2 patches Xerxes provided were necessary but not sufficient for b147. I now have both product and debug icedtea with zero and shark building albeit with a very hacked Makefile (remove some patches) and only with llvm 2.9, (2.8 can't find getLShr etal?) but shark is dying very early : # Internal Error (/home/local/icedtea/latest/icedtea7/20110708/icedtea7/openjdk/hotspot/src/share/vm/interpreter/linkResolver.cpp:807), pid=6904, tid=47420332263168 # assert(instanceKlass::cast(resolved_method->method_holder())->is_linked()) failed: must be linked [linkResolver.cpp:807 looks funny... assert is there twice? ] and zero is in need of further jsr292 work, which is why I am leery of integrating the patches yet. :-( I am attaching yet another patch set, (except for one, what it takes to get debug to build and that one owes its origin to Xerxes, too. It may be a possible candidate for the failure, but more work is needed.) Chris On 14/07/11 06:58 PM, Damien Raude-Morvan wrote: > Hi Chris, > > Le mercredi 13 juillet 2011 18:42:12, Andrew John Hughes a ?crit : >> On Wed, Jul 13, 2011 at 11:42:00AM -0400, Chris Phillips wrote: >>> Hi Andrew >>> >>> On 13/07/11 11:26 AM, Andrew John Hughes wrote: >>>> What version of IcedTea is this for? >>> Its originally for openjdk jdk7 fcs (b147) >>> for icedtea7, now matches >> Ok, probably easiest to just work against the IcedTea7 & >> IcedTea8 forests (http://icedtea.classpath.org/hg/icedtea8-forest/hotspot >> being the latter). >> You should have push access (if not, ask Mark Wielaard). >> >> I don't know who can actually review this; to my knowledge, only >> Gary and Xerxes will be familiar enough with Shark. If it's broken >> without this patch, and it works with it, I'm happy enough for you >> to commit it, but please check with Xerxes first. > Parts of your patch [1] have already been reported/fixed by others : > > - src/cpu/zero/vm/stack_zero.cpp issue has been reported as #753 [2] and > Xerxes already provided a patch. It has been reviewed by John Rose [3]. I > think it should be pushed to icedtea7 + icedtea (until upstream merge it) > > - src/share/vm/runtime/vmStructs.cpp issue has been reported as #757 [4] and > seems ok for me (built and jtreg results). Should be pushed too. > > Regarding you changes to sharedRuntime_zero.cpp and methodHandles_zero.hpp it > seems that first reference to methodHandles_zero.hpp comes from 7045514 [5], > but final commit into hotspot-comp repository doesn't contains this file... a > bit weird. > > [1] http://lgonqn.org/temp/ChrisPhi/webrev/ > [2] http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=753 > [3] http://mail.openjdk.java.net/pipermail/zero-dev/2011-July/000387.html > [4] http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=757 > > [5] http://cr.openjdk.java.net/~twisti/7045514/ > [6] http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/cba7b5c2d53f > > Cheers, -------------- next part -------------- A non-text attachment was scrubbed... Name: hotspot.patch Type: text/x-patch Size: 7798 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110715/29383738/hotspot.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: webrev.zip Type: application/zip Size: 337556 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110715/29383738/webrev.zip From ptisnovs at redhat.com Fri Jul 15 03:08:29 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Fri, 15 Jul 2011 12:08:29 +0200 Subject: New project available at icedtea.classpath.org - Rhino tests Message-ID: <4E20119D.3090403@redhat.com> Greeting, in the Mercurial repository at http://icedtea.classpath.org/hg was, thanks to Mark Wielaard!, created a new project called rhino-tests. It's address is http://icedtea.classpath.org/hg/rhino-tests/ The purpose of this project is to check if given Java runtime environment supports Rhino (implementation of JSR 223: Scripting for the Java Platform). This project consists of test framework and various tests which are started from this framework. Because this project is created as part of IcedTea it uses similar licence. Building Rhino test framework ============================= This task is very simple: make build Running Rhino tests =================== Run: make runtests Test results are printed to standart and error output, so it's preferable to use this command: make runtests > test_results 2> errors Or to mix both output: make runtests 2>&1 > test_results Cheers, Pavel Tisnovsky From ptisnovs at redhat.com Fri Jul 15 03:20:59 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Fri, 15 Jul 2011 12:20:59 +0200 Subject: Reviewer needed: backport of 6613904: javax.swing.GroupLayout.createParallelGroup(..) doesn't throw IllegalArgumentException for null arg into IcedTea6 HEAD Message-ID: <4E20148B.7000502@redhat.com> Greetings, I'd like to backport "6613904: javax.swing.GroupLayout.createParallelGroup(..) doesn't throw IllegalArgumentException for null arg" fix into IcedTea6 HEAD. This fix was checked on RHEL 5 x86_64. ChangeLog entry: 2011-07-15 Pavel Tisnovsky * Makefile.am: added new patch * NEWS: updated with backport * patches/openjdk/6613904-GroupLayout_createParallelGroup_null_arg.patch: Backport of 6613904. Can anybody please review this change? Thank you in advance, Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 6613904_hg.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110715/0d04ae71/6613904_hg.diff From ahughes at redhat.com Fri Jul 15 04:27:22 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Fri, 15 Jul 2011 12:27:22 +0100 Subject: fcs 147 shark preliminary patches. In-Reply-To: <4E1FD02E.7020504@LGonQn.Org> References: <4E1DBCC8.2000708@LGonQn.Org> <20110713164211.GE16917@shelob.middle-earth.co.uk> <201107150058.53943.drazzib@drazzib.com> <4E1FD02E.7020504@LGonQn.Org> Message-ID: <20110715112722.GA19830@rivendell.middle-earth.co.uk> On 01:29 Fri 15 Jul , Chris Phillips wrote: > Hi Damien, > > Thanks! > > Yes I know that Xerxes has submitted the 2 > changes you point out, I stand on the shoulders of giants! > (I am an amateur in both zero and shark and a total > newby in LLVM... ) > Then I'm confused as to why Xerxes hasn't committed them... I'd prefer we broke this up as much as possible to make it easier to backport relevant parts to IcedTea6. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From jvanek at redhat.com Fri Jul 15 04:25:55 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 15 Jul 2011 13:25:55 +0200 Subject: Reviewer needed: backport of 6613904: javax.swing.GroupLayout.createParallelGroup(..) doesn't throw IllegalArgumentException for null arg into IcedTea6 HEAD In-Reply-To: <4E20148B.7000502@redhat.com> References: <4E20148B.7000502@redhat.com> Message-ID: <4E2023C3.8000804@redhat.com> On 07/15/2011 12:20 PM, Pavel Tisnovsky wrote: > Greetings, > > I'd like to backport "6613904: > javax.swing.GroupLayout.createParallelGroup(..) doesn't throw > IllegalArgumentException for null arg" fix into IcedTea6 HEAD. This fix > was checked on RHEL 5 x86_64. > > > ChangeLog entry: > > 2011-07-15 Pavel Tisnovsky > > * Makefile.am: added new patch > * NEWS: updated with backport > * > patches/openjdk/6613904-GroupLayout_createParallelGroup_null_arg.patch: > Backport of 6613904. > > > > Can anybody please review this change? > > Thank you in advance, > Pavel > > Quit straight forward. Running test on f13. Approved. J From ahughes at redhat.com Fri Jul 15 04:40:56 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Fri, 15 Jul 2011 12:40:56 +0100 Subject: New project available at icedtea.classpath.org - Rhino tests In-Reply-To: <4E20119D.3090403@redhat.com> References: <4E20119D.3090403@redhat.com> Message-ID: <20110715114055.GD19830@rivendell.middle-earth.co.uk> On 12:08 Fri 15 Jul , Pavel Tisnovsky wrote: > Greeting, > > in the Mercurial repository at http://icedtea.classpath.org/hg was, > thanks to Mark Wielaard!, created a new project called rhino-tests. It's > address is http://icedtea.classpath.org/hg/rhino-tests/ > > The purpose of this project is to check if given Java runtime > environment supports Rhino (implementation of JSR 223: Scripting for the > Java Platform). This project consists of test framework and various > tests which are started from this framework. Because this project is > created as part of IcedTea it uses similar licence. > Which is? -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ptisnovs at icedtea.classpath.org Fri Jul 15 05:06:06 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 15 Jul 2011 12:06:06 +0000 Subject: /hg/icedtea6: 6613904: javax.swing.GroupLayout.createParallelGro... Message-ID: changeset 7f168fd8f368 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=7f168fd8f368 author: ptisnovs date: Fri Jul 15 14:05:59 2011 +0200 6613904: javax.swing.GroupLayout.createParallelGroup(..) doesn't throw IllegalArgumentException for null arg diffstat: Makefile.am | 3 +- NEWS | 1 + patches/openjdk/6613904-GroupLayout_createParallelGroup_null_arg.patch | 89 ++++++++++ 3 files changed, 92 insertions(+), 1 deletions(-) diffs (119 lines): diff -r 3d5ae12b32b7 -r 7f168fd8f368 Makefile.am --- a/Makefile.am Wed Jul 13 21:28:45 2011 +0100 +++ b/Makefile.am Fri Jul 15 14:05:59 2011 +0200 @@ -363,7 +363,8 @@ patches/openjdk/6711682-JCheckBox_in_JTable_does_not_respond_to_click.patch \ patches/jtreg-7020373-add-ignore-tag.patch \ patches/openjdk/6758179-D3D_AlphaComposite_is_applied_incorrectly.patch \ - patches/jtreg-ConstructDeflaterInput-fix.patch + patches/jtreg-ConstructDeflaterInput-fix.patch \ + patches/openjdk/6613904-GroupLayout_createParallelGroup_null_arg.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r 3d5ae12b32b7 -r 7f168fd8f368 NEWS --- a/NEWS Wed Jul 13 21:28:45 2011 +0100 +++ b/NEWS Fri Jul 15 14:05:59 2011 +0200 @@ -356,6 +356,7 @@ - S7016856: fix dashing performance regression. Improve other rendering performance. - S6934977: MappedByteBuffer.load crashes with SIGBUS. - S6758179: D3D: AlphaComposite is applied incorrectly for uncached opaque BufferedImage + - S6613904: javax.swing.GroupLayout.createParallelGroup(..) doesn't throw IllegalArgumentException for null arg * Allow selection of test suites using the jtreg_checks argument e.g. jtreg_checks="langtools" * CACAO - Threadlist & threadobject improvements. diff -r 3d5ae12b32b7 -r 7f168fd8f368 patches/openjdk/6613904-GroupLayout_createParallelGroup_null_arg.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6613904-GroupLayout_createParallelGroup_null_arg.patch Fri Jul 15 14:05:59 2011 +0200 @@ -0,0 +1,91 @@ +# HG changeset patch +# User rupashka +# Date 1289665358 -10800 +# Node ID d385b33c0db056aa722f93eed1970f70f0b8f119 +# Parent 286b14273037644c62e7f263d1d9249f4308783b +6613904: javax.swing.GroupLayout.createParallelGroup(..) doesn't throw IllegalArgumentException for null arg +Reviewed-by: peterz + +diff -r 286b14273037 -r d385b33c0db0 src/share/classes/javax/swing/GroupLayout.java +--- openjdk.orig/jdk/src/share/classes/javax/swing/GroupLayout.java Sat Nov 13 13:04:47 2010 +0300 ++++ openjdk/jdk/src/share/classes/javax/swing/GroupLayout.java Sat Nov 13 19:22:38 2010 +0300 +@@ -653,6 +653,10 @@ + */ + public ParallelGroup createParallelGroup(Alignment alignment, + boolean resizable){ ++ if (alignment == null) { ++ throw new IllegalArgumentException("alignment must be non null"); ++ } ++ + if (alignment == Alignment.BASELINE) { + return new BaselineGroup(resizable); + } +diff -r 286b14273037 -r d385b33c0db0 test/javax/swing/GroupLayout/6613904/bug6613904.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/javax/swing/GroupLayout/6613904/bug6613904.java Sat Nov 13 19:22:38 2010 +0300 +@@ -0,0 +1,65 @@ ++/* ++ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++/* ++ * @test ++ * @bug 6613904 ++ * @summary javax.swing.GroupLayout.createParallelGroup(..) doesn't throw IllegalArgumentException for null arg ++ * @author Pavel Porvatov ++ */ ++ ++import javax.swing.*; ++ ++public class bug6613904 { ++ public static void main(String[] args) { ++ SwingUtilities.invokeLater(new Runnable() { ++ public void run() { ++ GroupLayout groupLayout = new GroupLayout(new JPanel()); ++ ++ try { ++ groupLayout.createParallelGroup(null); ++ ++ throw new RuntimeException("groupLayout.createParallelGroup(null) doesn't throw IAE"); ++ } catch (IllegalArgumentException e) { ++ // Ok ++ } ++ ++ try { ++ groupLayout.createParallelGroup(null, true); ++ ++ throw new RuntimeException("groupLayout.createParallelGroup(null, true) doesn't throw IAE"); ++ } catch (IllegalArgumentException e) { ++ // Ok ++ } ++ ++ try { ++ groupLayout.createParallelGroup(null, false); ++ ++ throw new RuntimeException("groupLayout.createParallelGroup(null, false) doesn't throw IAE"); ++ } catch (IllegalArgumentException e) { ++ // Ok ++ } ++ } ++ }); ++ } ++} From ptisnovs at icedtea.classpath.org Fri Jul 15 05:11:45 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 15 Jul 2011 12:11:45 +0000 Subject: /hg/icedtea6: Added ChangeLog entry. Message-ID: changeset 76fc1df7874f in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=76fc1df7874f author: ptisnovs date: Fri Jul 15 14:11:36 2011 +0200 Added ChangeLog entry. diffstat: ChangeLog | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diffs (14 lines): diff -r 7f168fd8f368 -r 76fc1df7874f ChangeLog --- a/ChangeLog Fri Jul 15 14:05:59 2011 +0200 +++ b/ChangeLog Fri Jul 15 14:11:36 2011 +0200 @@ -1,3 +1,10 @@ +2011-07-15 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/6613904-GroupLayout_createParallelGroup_null_arg.patch: + Backport of 6613904. + 2011-07-13 Andrew John Hughes * NEWS: Add b23 changes. From ChrisPhi at LGonQn.Org Fri Jul 15 05:42:09 2011 From: ChrisPhi at LGonQn.Org (Chris Phillips) Date: Fri, 15 Jul 2011 08:42:09 -0400 Subject: fcs 147 shark preliminary patches. In-Reply-To: <20110715112722.GA19830@rivendell.middle-earth.co.uk> References: <4E1DBCC8.2000708@LGonQn.Org> <20110713164211.GE16917@shelob.middle-earth.co.uk> <201107150058.53943.drazzib@drazzib.com> <4E1FD02E.7020504@LGonQn.Org> <20110715112722.GA19830@rivendell.middle-earth.co.uk> Message-ID: <4E2035A1.6000208@LGonQn.Org> Hi Andy, Ok , I'll break it down into separate patches. Chris (Haven't xeen Xerxes on for a while perhaps he's on holidays?) On 15/07/11 07:27 AM, Dr Andrew John Hughes wrote: > On 01:29 Fri 15 Jul , Chris Phillips wrote: >> Hi Damien, >> >> Thanks! >> >> Yes I know that Xerxes has submitted the 2 >> changes you point out, I stand on the shoulders of giants! >> (I am an amateur in both zero and shark and a total >> newby in LLVM... ) >> > Then I'm confused as to why Xerxes hasn't committed them... > > I'd prefer we broke this up as much as possible to make it easier to > backport relevant parts to IcedTea6. From dlila at icedtea.classpath.org Fri Jul 15 05:53:57 2011 From: dlila at icedtea.classpath.org (dlila at icedtea.classpath.org) Date: Fri, 15 Jul 2011 12:53:57 +0000 Subject: /hg/icedtea6: 2 new changesets Message-ID: changeset 523bbe184992 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=523bbe184992 author: dlila date: Fri Jul 15 08:46:37 2011 -0400 Backport anyblit fix. changeset 406c0d434ca3 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=406c0d434ca3 author: dlila date: Fri Jul 15 08:53:07 2011 -0400 Merge diffstat: ChangeLog | 14 + Makefile.am | 4 +- NEWS | 2 + patches/openjdk/6613904-GroupLayout_createParallelGroup_null_arg.patch | 89 ++++++++ patches/openjdk/7049339-anyblit-broken.patch | 109 ++++++++++ 5 files changed, 217 insertions(+), 1 deletions(-) diffs (257 lines): diff -r 3d5ae12b32b7 -r 406c0d434ca3 ChangeLog --- a/ChangeLog Wed Jul 13 21:28:45 2011 +0100 +++ b/ChangeLog Fri Jul 15 08:53:07 2011 -0400 @@ -1,3 +1,17 @@ +2011-07-15 Denis Lila + + * Makefile.am: Added patch. + * NEWS: Added backport. + * patches/openjdk/7049339-anyblit-broken.patch: + Backport of S7049339. + +2011-07-15 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/6613904-GroupLayout_createParallelGroup_null_arg.patch: + Backport of 6613904. + 2011-07-13 Andrew John Hughes * NEWS: Add b23 changes. diff -r 3d5ae12b32b7 -r 406c0d434ca3 Makefile.am --- a/Makefile.am Wed Jul 13 21:28:45 2011 +0100 +++ b/Makefile.am Fri Jul 15 08:53:07 2011 -0400 @@ -363,7 +363,9 @@ patches/openjdk/6711682-JCheckBox_in_JTable_does_not_respond_to_click.patch \ patches/jtreg-7020373-add-ignore-tag.patch \ patches/openjdk/6758179-D3D_AlphaComposite_is_applied_incorrectly.patch \ - patches/jtreg-ConstructDeflaterInput-fix.patch + patches/jtreg-ConstructDeflaterInput-fix.patch \ + patches/openjdk/6613904-GroupLayout_createParallelGroup_null_arg.patch \ + patches/openjdk/7049339-anyblit-broken.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r 3d5ae12b32b7 -r 406c0d434ca3 NEWS --- a/NEWS Wed Jul 13 21:28:45 2011 +0100 +++ b/NEWS Fri Jul 15 08:53:07 2011 -0400 @@ -356,6 +356,8 @@ - S7016856: fix dashing performance regression. Improve other rendering performance. - S6934977: MappedByteBuffer.load crashes with SIGBUS. - S6758179: D3D: AlphaComposite is applied incorrectly for uncached opaque BufferedImage + - S7049339: Image copy operations with a custom composite and a complex clip fail. + - S6613904: javax.swing.GroupLayout.createParallelGroup(..) doesn't throw IllegalArgumentException for null arg * Allow selection of test suites using the jtreg_checks argument e.g. jtreg_checks="langtools" * CACAO - Threadlist & threadobject improvements. diff -r 3d5ae12b32b7 -r 406c0d434ca3 patches/openjdk/6613904-GroupLayout_createParallelGroup_null_arg.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6613904-GroupLayout_createParallelGroup_null_arg.patch Fri Jul 15 08:53:07 2011 -0400 @@ -0,0 +1,91 @@ +# HG changeset patch +# User rupashka +# Date 1289665358 -10800 +# Node ID d385b33c0db056aa722f93eed1970f70f0b8f119 +# Parent 286b14273037644c62e7f263d1d9249f4308783b +6613904: javax.swing.GroupLayout.createParallelGroup(..) doesn't throw IllegalArgumentException for null arg +Reviewed-by: peterz + +diff -r 286b14273037 -r d385b33c0db0 src/share/classes/javax/swing/GroupLayout.java +--- openjdk.orig/jdk/src/share/classes/javax/swing/GroupLayout.java Sat Nov 13 13:04:47 2010 +0300 ++++ openjdk/jdk/src/share/classes/javax/swing/GroupLayout.java Sat Nov 13 19:22:38 2010 +0300 +@@ -653,6 +653,10 @@ + */ + public ParallelGroup createParallelGroup(Alignment alignment, + boolean resizable){ ++ if (alignment == null) { ++ throw new IllegalArgumentException("alignment must be non null"); ++ } ++ + if (alignment == Alignment.BASELINE) { + return new BaselineGroup(resizable); + } +diff -r 286b14273037 -r d385b33c0db0 test/javax/swing/GroupLayout/6613904/bug6613904.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/javax/swing/GroupLayout/6613904/bug6613904.java Sat Nov 13 19:22:38 2010 +0300 +@@ -0,0 +1,65 @@ ++/* ++ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++/* ++ * @test ++ * @bug 6613904 ++ * @summary javax.swing.GroupLayout.createParallelGroup(..) doesn't throw IllegalArgumentException for null arg ++ * @author Pavel Porvatov ++ */ ++ ++import javax.swing.*; ++ ++public class bug6613904 { ++ public static void main(String[] args) { ++ SwingUtilities.invokeLater(new Runnable() { ++ public void run() { ++ GroupLayout groupLayout = new GroupLayout(new JPanel()); ++ ++ try { ++ groupLayout.createParallelGroup(null); ++ ++ throw new RuntimeException("groupLayout.createParallelGroup(null) doesn't throw IAE"); ++ } catch (IllegalArgumentException e) { ++ // Ok ++ } ++ ++ try { ++ groupLayout.createParallelGroup(null, true); ++ ++ throw new RuntimeException("groupLayout.createParallelGroup(null, true) doesn't throw IAE"); ++ } catch (IllegalArgumentException e) { ++ // Ok ++ } ++ ++ try { ++ groupLayout.createParallelGroup(null, false); ++ ++ throw new RuntimeException("groupLayout.createParallelGroup(null, false) doesn't throw IAE"); ++ } catch (IllegalArgumentException e) { ++ // Ok ++ } ++ } ++ }); ++ } ++} diff -r 3d5ae12b32b7 -r 406c0d434ca3 patches/openjdk/7049339-anyblit-broken.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/7049339-anyblit-broken.patch Fri Jul 15 08:53:07 2011 -0400 @@ -0,0 +1,111 @@ +# HG changeset patch +# User dlila +# Date 1308946970 14400 +# Node ID 73d420a7199bcae55fe98f2d31662a7bc1e23920 +# Parent 685a01aa8cd204901853e08425df85e0f0894b3e +7049339: AnyBlit is broken with non-rectangular clips. +Reviewed-by: flar + +diff -r 685a01aa8cd2 -r 73d420a7199b src/share/classes/sun/java2d/loops/Blit.java +--- openjdk.orig/jdk/src/share/classes/sun/java2d/loops/Blit.java Wed May 25 19:53:08 2011 -0700 ++++ openjdk/jdk/src/share/classes/sun/java2d/loops/Blit.java Fri Jun 24 16:22:50 2011 -0400 +@@ -172,11 +172,11 @@ + while (si.nextSpan(span)) { + int w = span[2] - span[0]; + int h = span[3] - span[1]; +- srcRas = srcRas.createChild(srcx + span[0], srcy + span[1], +- w, h, 0, 0, null); +- dstRas = dstRas.createWritableChild(span[0], span[1], +- w, h, 0, 0, null); +- ctx.compose(srcRas, dstRas, dstRas); ++ Raster tmpSrcRas = srcRas.createChild(srcx + span[0], srcy + span[1], ++ w, h, 0, 0, null); ++ WritableRaster tmpDstRas = dstRas.createWritableChild(span[0], span[1], ++ w, h, 0, 0, null); ++ ctx.compose(tmpSrcRas, tmpDstRas, tmpDstRas); + } + ctx.dispose(); + } +diff -r 685a01aa8cd2 -r 73d420a7199b test/sun/java2d/loops/Bug7049339.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/sun/java2d/loops/Bug7049339.java Fri Jun 24 16:22:50 2011 -0400 +@@ -0,0 +1,77 @@ ++/* ++ * Copyright 2011 Red Hat, Inc. All Rights Reserved. ++ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++/* ++ @test ++ @bug 7049339 ++ @summary Copying images with a non-rectangular clip and a custom composite ++ fails ++ @author Denis Lila ++ @run main Bug7049339 ++ */ ++ ++import java.awt.Composite; ++import java.awt.CompositeContext; ++import java.awt.Graphics2D; ++import java.awt.RenderingHints; ++import java.awt.Shape; ++import java.awt.geom.Ellipse2D; ++import java.awt.image.BufferedImage; ++import java.awt.image.ColorModel; ++import java.awt.image.Raster; ++import java.awt.image.WritableRaster; ++ ++public class Bug7049339 { ++ public static void main(String[] argv) { ++ int x = 100, y = 100; ++ BufferedImage src = new BufferedImage(x, y, BufferedImage.TYPE_INT_ARGB); ++ BufferedImage dst = new BufferedImage(x, y, BufferedImage.TYPE_3BYTE_BGR); ++ ++ Graphics2D dstg2d = dst.createGraphics(); ++ dstg2d.setComposite(new Composite() { ++ @Override ++ public CompositeContext createContext( ++ ColorModel srcColorModel, ++ ColorModel dstColorModel, ++ RenderingHints hints) ++ { ++ return new CompositeContext() { ++ @Override ++ public void compose(Raster src, Raster dstIn, ++ WritableRaster dstOut) ++ { ++ // do nothing ++ } ++ @Override ++ public void dispose() { ++ } ++ }; ++ } ++ }); ++ Shape clip = new Ellipse2D.Double(x/4, y/4, x/2, y/2); ++ dstg2d.setClip(clip); ++ // This will throw a RasterFormatException if the bug is present. ++ dstg2d.drawImage(src, 0, 0, null); ++ } ++} +exporting patch: + From ahughes at redhat.com Fri Jul 15 06:04:26 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Fri, 15 Jul 2011 14:04:26 +0100 Subject: fcs 147 shark preliminary patches. In-Reply-To: <4E2035A1.6000208@LGonQn.Org> References: <4E1DBCC8.2000708@LGonQn.Org> <20110713164211.GE16917@shelob.middle-earth.co.uk> <201107150058.53943.drazzib@drazzib.com> <4E1FD02E.7020504@LGonQn.Org> <20110715112722.GA19830@rivendell.middle-earth.co.uk> <4E2035A1.6000208@LGonQn.Org> Message-ID: <20110715130425.GF19830@rivendell.middle-earth.co.uk> On 08:42 Fri 15 Jul , Chris Phillips wrote: > Hi Andy, > > Ok , I'll break it down into separate patches. > Thanks. It's just I know Xerxes ended up having to do this with some of Gary's mega-patches so seems better to get it right from the start. > Chris > > (Haven't xeen Xerxes on for a while perhaps > he's on holidays?) > > > On 15/07/11 07:27 AM, Dr Andrew John Hughes wrote: > > On 01:29 Fri 15 Jul , Chris Phillips wrote: > >> Hi Damien, > >> > >> Thanks! > >> > >> Yes I know that Xerxes has submitted the 2 > >> changes you point out, I stand on the shoulders of giants! > >> (I am an amateur in both zero and shark and a total > >> newby in LLVM... ) > >> > > Then I'm confused as to why Xerxes hasn't committed them... > > > > I'd prefer we broke this up as much as possible to make it easier to > > backport relevant parts to IcedTea6. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ChrisPhi at LGonQn.Org Fri Jul 15 06:53:29 2011 From: ChrisPhi at LGonQn.Org (Chris Phillips) Date: Fri, 15 Jul 2011 09:53:29 -0400 Subject: fcs 147 shark preliminary patches, separated In-Reply-To: <20110715130425.GF19830@rivendell.middle-earth.co.uk> References: <4E1DBCC8.2000708@LGonQn.Org> <20110713164211.GE16917@shelob.middle-earth.co.uk> <201107150058.53943.drazzib@drazzib.com> <4E1FD02E.7020504@LGonQn.Org> <20110715112722.GA19830@rivendell.middle-earth.co.uk> <4E2035A1.6000208@LGonQn.Org> <20110715130425.GF19830@rivendell.middle-earth.co.uk> Message-ID: <4E204659.2050701@LGonQn.Org> Hi, Attached are the separate patches (minus Xerxes changes though I can provide also if you wish). Webrev's here: http://lgonqn.org/temp/ChrisPhi/webrev-frame_zero.cpp-describe_pd_missing/ http://lgonqn.org/temp/ChrisPhi/webrev-sharedRuntime_zero.cpp-needs-rework-after-indy-reorg/ http://lgonqn.org/temp/ChrisPhi/webrev-sharkContext.hpp-typo-in-assert/ http://lgonqn.org/temp/ChrisPhi/webrev-methodHandles_zero.hpp-missing/ With Xerxes fixes, this is what it takes to get zero/shark to compile in product or debug for b147/fcs. There are still significant issues in shark and zero doesn't pass the invoke dynamic tests. Chris PS Full webrev of my current build is here: http://lgonqn.org/temp/ChrisPhi/webrev_3/ On 15/07/11 09:04 AM, Dr Andrew John Hughes wrote: > On 08:42 Fri 15 Jul , Chris Phillips wrote: >> Hi Andy, >> >> Ok , I'll break it down into separate patches. >> > Thanks. It's just I know Xerxes ended up having to do this > with some of Gary's mega-patches so seems better to get it right > from the start. > >> Chris >> >> (Haven't xeen Xerxes on for a while perhaps >> he's on holidays?) >> >> >> On 15/07/11 07:27 AM, Dr Andrew John Hughes wrote: >>> On 01:29 Fri 15 Jul , Chris Phillips wrote: >>>> Hi Damien, >>>> >>>> Thanks! >>>> >>>> Yes I know that Xerxes has submitted the 2 >>>> changes you point out, I stand on the shoulders of giants! >>>> (I am an amateur in both zero and shark and a total >>>> newby in LLVM... ) >>>> >>> Then I'm confused as to why Xerxes hasn't committed them... >>> >>> I'd prefer we broke this up as much as possible to make it easier to >>> backport relevant parts to IcedTea6. -------------- next part -------------- A non-text attachment was scrubbed... Name: hs-frame_zero.cpp-describe_pd_missing.patch Type: text/x-patch Size: 266 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110715/cacc85a9/hs-frame_zero.cpp-describe_pd_missing.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: hs-sharedRuntime_zero.cpp-needs-rework-after-indy-reorg.patch Type: text/x-patch Size: 1845 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110715/cacc85a9/hs-sharedRuntime_zero.cpp-needs-rework-after-indy-reorg.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: hs-sharkContext.hpp-typo-in-assert.patch Type: text/x-patch Size: 454 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110715/cacc85a9/hs-sharkContext.hpp-typo-in-assert.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: hs-methodHandles_zero.hpp-missing.patch Type: text/x-patch Size: 3435 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110715/cacc85a9/hs-methodHandles_zero.hpp-missing.patch From smohammad at redhat.com Fri Jul 15 07:21:12 2011 From: smohammad at redhat.com (Saad Mohammad) Date: Fri, 15 Jul 2011 10:21:12 -0400 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E17493F.5050905@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> Message-ID: <4E204CD8.306@redhat.com> I have updated both the patches that includes the change that you have recommended and requested. I have also added few comments below: >> >> Patch1.patch >> >> >> diff -r 86abbf8be0b1 Makefile.am >> --- a/Makefile.am Thu Jun 23 15:29:45 2011 +0200 >> +++ b/Makefile.am Wed Jul 06 15:03:44 2011 -0400 >> @@ -539,6 +539,19 @@ >> run-netx-unit-tests: stamps/netx-unit-tests-compile.stamp \ >> $(JUNIT_RUNNER_JAR) $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) >> cp >> {$(NETX_UNIT_TEST_SRCDIR),$(NETX_UNIT_TEST_DIR)}/net/sourceforge/jnlp/basic.jnlp >> + mkdir -p $(NETX_UNIT_TEST_DIR)/net/sourceforge/jnlp/templates >> + mkdir -p $(NETX_UNIT_TEST_DIR)/net/sourceforge/jnlp/application >> + cp >> {$(NETX_UNIT_TEST_SRCDIR),$(NETX_UNIT_TEST_DIR)}/net/sourceforge/jnlp/launchApp.jnlp >> + (cd $(NETX_UNIT_TEST_SRCDIR)/net/sourceforge/jnlp/templates/; \ >> + for files in $$(find . -type f); \ >> + do \ >> + cp >> {$(NETX_UNIT_TEST_SRCDIR),$(NETX_UNIT_TEST_DIR)}/net/sourceforge/jnlp/templates/$${files}; >> \ >> + done) >> + (cd $(NETX_UNIT_TEST_SRCDIR)/net/sourceforge/jnlp/application/; \ >> + for files in $$(find . -type f); \ >> + do \ >> + cp >> {$(NETX_UNIT_TEST_SRCDIR),$(NETX_UNIT_TEST_DIR)}/net/sourceforge/jnlp/application/$${files}; >> \ >> + done) >> cd $(NETX_UNIT_TEST_DIR) ; \ >> class_names= ; \ >> for test in `find -type f` ; do \ > > To much lines for simple copying of few resources. As I do not like > resources and sources in same directories and packages, the sources > structure is already adapted for this :( - but not make file. > I thing best fix here is to remove old line with basic.jnlp and > instead of your code to add copying of all not .java files form this > al over this package (NETX_UNIT_TEST_SRCDIR)->(NETX_UNIT_TEST_DIR) Sorry, I didn't clearly understand this part but I assume that you are telling me to copy all non .java files from (NETX_UNIT_TEST_SRCDIR) to (NETX_UNIT_TEST_DIR). I have added this change in the updated patch. >> diff -r 86abbf8be0b1 netx/net/sourceforge/jnlp/JNLPMatcher.java >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ b/netx/net/sourceforge/jnlp/JNLPMatcher.java Wed Jul 06 >> 11:37:07 2011 -0400 >> @@ -0,0 +1,197 @@ >> +package net.sourceforge.jnlp; >> + >> +import java.io.InputStreamReader; >> +import java.io.PipedInputStream; >> +import java.io.PipedOutputStream; >> +import java.util.Arrays; >> +import java.util.LinkedList; >> +import net.sourceforge.nanoxml.XMLElement; >> + >> +/** >> + * To compare launching JNLP file with signed APPLICATION.JNLP or >> + * APPLICATION_TEMPLATE.jnlp. >> + * >> + * Used by net.sourceforge.jnlp.runtime.JNLPCLassLoader >> + */ >> + >> +public final class JNLPMatcher { >> + >> + private Node appTemplateNode = null; >> + private Node launchJNLPNode = null; >> + boolean isTemplate = false; > Those variables are just set in constructor, and then read. Make them > final, (and isTemplate should be also private) - with possible getter. > When those variables will be final with no setters (as it is now! and > right), then whole this class is perfectly immutable. And considering > that input streams going in can not be "rewind" then you > can...SHOULD... cache return value of match method. Then this method > will be able to follow conventions and be named isMatch. I have added all these changes in the updated patch: - Added getter methods - Changed variable members to final and private - Added new variable (match) that caches return value of isMatch() > >> + >> + >> + /** >> + * Public constructor >> + * >> + * @param appTemplate >> + * the reader stream of the signed APPLICATION.jnlp or >> + * APPLICATION_TEMPLATE.jnlp >> + * @param launchJNLP >> + * the reader stream of the launching JNLP file >> + * @param isTemplate >> + * a boolean that specifies if appTemplateFile is a >> template >> + * @throws JNLPMatcherException >> + * if IOException, XMLParseException is thrown >> during parsing; Or launchJNLP/appTemplate is null >> + */ >> + public JNLPMatcher(InputStreamReader appTemplate, >> InputStreamReader launchJNLP, boolean isTemplate) >> + throws JNLPMatcherException { >> + >> + try { >> + >> + if (appTemplate == null&& launchJNLP == null) >> + throw new NullPointerException( >> + "Template JNLP file and Launching JNLP file >> are both null."); >> + else if (appTemplate == null) >> + throw new NullPointerException("Template JNLP file >> is null."); >> + else if (launchJNLP == null) >> + throw new NullPointerException("Launching JNLP file >> is null."); >> + >> + XMLElement appTemplateXML = new XMLElement(); >> + XMLElement launchJNLPXML = new XMLElement(); >> + >> + // Remove the comments and CDATA from the JNLP file >> + final PipedInputStream pinTemplate = new >> PipedInputStream(); >> + final PipedOutputStream poutTemplate = new >> PipedOutputStream(pinTemplate); >> + appTemplateXML.sanitizeInput(appTemplate, poutTemplate); >> + >> + final PipedInputStream pinJNLPFile = new >> PipedInputStream(); >> + final PipedOutputStream poutJNLPFile = new >> PipedOutputStream(pinJNLPFile); >> + launchJNLPXML.sanitizeInput(launchJNLP, poutJNLPFile); >> + >> + // Parse both files >> + appTemplateXML.parseFromReader(new >> InputStreamReader(pinTemplate)); >> + launchJNLPXML.parseFromReader(new >> InputStreamReader(pinJNLPFile)); >> + >> + // Initialize parent nodes >> + this.appTemplateNode = new Node(appTemplateXML); >> + this.launchJNLPNode = new Node(launchJNLPXML); >> + this.isTemplate = isTemplate; >> + >> + } catch (Exception e) { >> + throw new JNLPMatcherException( >> + "Failed to create an instance of JNLPVerify with >> specified InputStreamReader", e); >> + } >> + } > nice >> + >> + /** >> + * Compares both JNLP files >> + * >> + * @return true if both JNLP files are 'matched', otherwise false >> + */ >> + public boolean match() { >> + return matchNodes(appTemplateNode, launchJNLPNode); > When this class will become immutable, then this can look like: > > if (match==null) {match=matchNodes(appTemplateNode, launchJNLPNode);}; > return match; > > Where match is class private variable of type Boolean, which will make > the caching. > > Please note, that as it is written now, double call of match() will > cause an exception, which should not be JNLPMatcherException excepion. > Upper fix should be enough for this issue. I have also added this change and added another test to the test case that calls this method multiple times from the same instance of JNLPMatcher. Renamed this method to IsMatch(). >> + } >> + >> + /** >> + * Compares two Nodes regardless of the order of their >> children/attributes >> + * >> + * @param appTemplate >> + * signed application or template's Node >> + * @param launchJNLP >> + * launching JNLP file's Node >> + * >> + * @return true if both Nodes are 'matched', otherwise false >> + */ >> + private boolean matchNodes(Node appTemplate, Node launchJNLP) { >> + >> + if (appTemplate != null&& launchJNLP != null) { >> + >> + Node appTemplateNode = (Node) appTemplate; >> + Node launchJNLPNode = (Node) launchJNLP; > Please rename Node variables (are hidingglobal fields with same names) > and remove useless type cast. (just recommendation) Done! >> + >> + //Store children of Node >> + LinkedList appTemplateChild = new >> LinkedList(Arrays.asList(appTemplateNode >> + .getChildNodes())); >> + LinkedList launchJNLPChild = new >> LinkedList(Arrays.asList(launchJNLPNode >> + .getChildNodes())); > Those should be just List app...= new LinkedList.... (just > recommendation) Changed this as you recommended! >> + >> + // Compare only if both Nodes have the same name, else >> return false >> + if >> (appTemplateNode.getNodeName().equals(launchJNLPNode.getNodeName())) { >> + >> + if (appTemplateChild.size() == >> launchJNLPChild.size()) { // Compare children >> + >> + int childLength = appTemplateChild.size(); >> + >> + for (int i = 0; i< childLength;) { >> + for (int j = 0; j< childLength; j++) { >> + boolean isSame = >> matchNodes(appTemplateChild.get(i), >> + launchJNLPChild.get(j)); >> + >> + if (!isSame&& j == childLength - 1) >> + return false; >> + else if (isSame) { // If both child >> matches, remove them from the list of children >> + appTemplateChild.remove(i); >> + launchJNLPChild.remove(j); >> + --childLength; >> + break; >> + } >> + } >> + } >> + >> + >> + if >> (!appTemplateNode.getNodeValue().equals(launchJNLPNode.getNodeValue())) >> { >> + >> + //If it's a template and the template's >> value is NOT '*' >> + if (isTemplate&& >> !appTemplateNode.getNodeValue().equals("*")) >> + return false; >> + //Else if it's not a template, then return false >> + else if (!isTemplate) >> + return false; >> + } >> + //Compare attributes of both Nodes >> + return matchAttributes(appTemplateNode, >> launchJNLPNode); >> + } >> + >> + } >> + } >> + return false; >> + } >> + >> + /** >> + * Compares attributes of two Nodes regardless of order >> + * >> + * @param appTemplateNode >> + * signed application or template's Node with attributes >> + * @param launchJNLPNode >> + * launching JNLP file's Node with attributes >> + * >> + * @return true if both Nodes have 'matched' attributes, >> otherwise false >> + */ >> + private boolean matchAttributes(Node appTemplateNode, Node >> launchJNLPNode) { >> + >> + if (appTemplateNode != null&& launchJNLPNode != null) { >> + >> + String [] appTemplateAttributes = >> appTemplateNode.getAttributeNames(); >> + String [] launchJNLPAttributes = >> launchJNLPNode.getAttributeNames(); >> + > > List and Collections framework will serve you well. Chose one of them > and do not convert in vain;) > >> + Arrays.sort(appTemplateAttributes); >> + Arrays.sort(launchJNLPAttributes); >> + >> + if (appTemplateAttributes.length == >> launchJNLPAttributes.length) { >> + >> + int size= appTemplateAttributes.length; //Number of >> attributes >> + >> + for (int i = 0; i< size; i++) { >> + >> + if >> (launchJNLPAttributes[i].equals(appTemplateAttributes[i])){ // If >> both Node's attribute name are the same then compare the values >> + >> + String attribute = launchJNLPAttributes[i]; >> + boolean isSame = >> appTemplateNode.getAttribute(attribute).equals(// Check if the >> Attribute values match >> + >> launchJNLPNode.getAttribute(attribute)); >> + >> + if (!isTemplate&& !isSame) >> + return false; >> + else if (isTemplate&& !isSame >> +&& !appTemplateNode.getAttribute(attribute).equals("*")) >> + return false; >> + >> + } else // If attributes names do not match, >> return false >> + return false; >> + } >> + return true; >> + } >> + } >> + return false; >> + } >> +} >> diff -r 86abbf8be0b1 netx/net/sourceforge/jnlp/JNLPMatcherException.java >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ b/netx/net/sourceforge/jnlp/JNLPMatcherException.java Tue Jul >> 05 14:53:27 2011 -0400 >> @@ -0,0 +1,16 @@ >> +package net.sourceforge.jnlp; >> + >> +public class JNLPMatcherException extends Exception >> +{ >> + private static final long serialVersionUID = 1L; >> + >> + public JNLPMatcherException(String message) >> + { >> + super(message); >> + } >> + >> + public JNLPMatcherException(String message, Throwable cause) >> + { >> + super(message, cause); >> + } >> +} > TYVM! > >> diff -r 86abbf8be0b1 netx/net/sourceforge/jnlp/Node.java >> --- a/netx/net/sourceforge/jnlp/Node.java Thu Jun 23 15:29:45 2011 >> +0200 >> +++ b/netx/net/sourceforge/jnlp/Node.java Tue Jul 05 14:53:27 2011 >> -0400 >> @@ -19,6 +19,7 @@ >> private XMLElement xml; >> private Node next; >> private Node children[]; >> + private String attributeNames[]; >> >> Node(XMLElement xml) { >> this.xml = xml; >> @@ -60,6 +61,19 @@ >> >> return children; >> } >> + >> + String[] getAttributeNames() { >> + if (attributeNames == null) { >> + List list = new ArrayList(); >> + >> + for (Enumeration e = xml.enumerateAttributeNames(); >> e.hasMoreElements();) >> + list.add(new String((String) e.nextElement())); >> + >> + attributeNames = list.toArray(new String[list.size()]); >> + >> + } >> + return attributeNames; >> + } >> > > (recommandationon) > This smells bad:) > The onkly usage of ths method is in String [] > launchJNLPAttributes = launchJNLPNode.getAttributeNames(); > This array is then sorted and iterated through. > > Here you create an (Empty!) arraylist, iterate through enumeration > (without known size) and fill arraylist. Why tehn convert an array? > > My recomandation here is to change attributeNames to List (and > use eg unmodifficable list or whatever). > > You are following children[], I thing you do not need. Everybody can > call List.toArray! > > Changed it :-). Sticking to list as recommended! > >> String getAttribute(String name) { >> return (String) xml.getAttribute(name); >> diff -r 86abbf8be0b1 >> tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ b/tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java >> Tue Jul 05 14:53:27 2011 -0400 >> @@ -0,0 +1,332 @@ >> +package net.sourceforge.jnlp; >> + >> +import static org.junit.Assert.fail; >> + >> +import java.io.IOException; >> +import java.io.InputStream; >> +import java.io.InputStreamReader; >> +import junit.framework.Assert; >> +import org.junit.After; >> +import org.junit.Before; >> +import org.junit.Test; >> + >> +public class JNLPMatcherTest { >> + >> + String tests[] = { >> + "Testing template with CDATA", >> + "Testing template with an exact duplicate of the >> launching JNLP file", >> + "Testing template with wildchars as attribute/element >> values", >> + "Testing template with attributes/elements in different >> order", >> + "Testing template with wildchars as ALL >> element/attribute values", >> + "Testing template with comments", >> + "Testing template with different attribute/element values", >> + "Testing template by adding an additional children to >> element", >> + "Testing template by removing children from element", >> + "Testing template with a complete different JNLP >> template file ", >> + "Testing application with CDATA", >> + "Testing application with an exact duplicate of the >> launching JNLP file", >> + "Testing application with the same element/attribute >> name and value pair in different orders", >> + "Testing application with comments", >> + "Testing application with wildchars as attribute/element >> values", >> + "Testing application with a different codebase attribute >> value", >> + "Testing application by adding additional children to >> element", >> + "Testing application by removing children from element", >> + "Testing application with a complete different JNLP >> application file " }; >> + > nice! > >> + JNLPMatcher test; >> + InputStreamReader fileReader; >> + InputStreamReader launchReader; > Remove those three global fields and use them locally please. Minimze > of variable scope is (more then) good habbit. Done! >> + ClassLoader cl = JNLPMatcherTest.class.getClassLoader(); > make him final. Done! >> + >> + int i = 0; > remove this i - see lower Done! >> + >> + @Before >> + public void setUp() throws Exception { >> + >> + InputStream launchStream = >> cl.getResourceAsStream("net/sourceforge/jnlp/launchApp.jnlp"); >> + launchReader = new InputStreamReader(launchStream); >> + >> + } > This is misuse of setUp/tear down. > Create eg method getResource(String path) which will return > InputStreamReader like this ^^ method. and getLunchResoyrce wwhich > will just call getResource with "net/sourceforge/jnlp/launchApp.jnlp", > and teh use those two ethods in every test. > Dont forget to closeing streams (as you are doing now). Done :) >> + >> + @Test >> + public void testTemplateCDATA() throws JNLPMatcherException, >> IOException { >> + >> + InputStream fileStream = cl >> + >> .getResourceAsStream("net/sourceforge/jnlp/templates/template0.jnlp"); >> + fileReader = new InputStreamReader(fileStream); >> + >> + test = new JNLPMatcher(fileReader, launchReader, true); >> + >> + Assert.assertEquals(tests[i], true, test.match()); >> + >> + fileReader.close(); >> + } >> + >> + @Test >> + public void testTemplateDuplicate() throws JNLPMatcherException, >> IOException { >> + >> + InputStream fileStream = cl >> + >> .getResourceAsStream("net/sourceforge/jnlp/templates/template1.jnlp"); >> + fileReader = new InputStreamReader(fileStream); >> + >> + test = new JNLPMatcher(fileReader, launchReader, true); >> + >> + Assert.assertEquals(tests[i], true, test.match()); >> + fileReader.close(); >> + } >> + >> + @Test >> + public void testTemplateWildCharsRandom() throws >> JNLPMatcherException, IOException { >> + >> + InputStream fileStream = cl >> + >> .getResourceAsStream("net/sourceforge/jnlp/templates/template2.jnlp"); >> + fileReader = new InputStreamReader(fileStream); >> + >> + test = new JNLPMatcher(fileReader, launchReader, true); >> + >> + Assert.assertEquals(tests[i], true, test.match()); >> + fileReader.close(); >> + } >> + >> + @Test >> + public void testTemplateDifferentOrder() throws >> JNLPMatcherException, IOException { >> + >> + InputStream fileStream = cl >> + >> .getResourceAsStream("net/sourceforge/jnlp/templates/template3.jnlp"); >> + fileReader = new InputStreamReader(fileStream); >> + >> + test = new JNLPMatcher(fileReader, launchReader, true); >> + >> + Assert.assertEquals(tests[i], true, test.match()); >> + fileReader.close(); >> + } >> + >> + @Test >> + public void testTemplateWildCharsAsAllValues() throws >> JNLPMatcherException, IOException { >> + >> + InputStream fileStream = cl >> + >> .getResourceAsStream("net/sourceforge/jnlp/templates/template4.jnlp"); >> + fileReader = new InputStreamReader(fileStream); >> + >> + test = new JNLPMatcher(fileReader, launchReader, true); >> + >> + Assert.assertEquals(tests[i], true, test.match()); >> + fileReader.close(); >> + } >> + >> + @Test >> + public void testTemplateComments() throws JNLPMatcherException, >> IOException { >> + >> + InputStream fileStream = cl >> + >> .getResourceAsStream("net/sourceforge/jnlp/templates/template5.jnlp"); >> + fileReader = new InputStreamReader(fileStream); >> + >> + test = new JNLPMatcher(fileReader, launchReader, true); >> + >> + Assert.assertEquals(tests[i], true, test.match()); >> + fileReader.close(); >> + } >> + >> + @Test >> + public void testTemplateDifferentValues() throws >> JNLPMatcherException, IOException { >> + >> + InputStream fileStream = cl >> + >> .getResourceAsStream("net/sourceforge/jnlp/templates/template6.jnlp"); >> + fileReader = new InputStreamReader(fileStream); >> + >> + test = new JNLPMatcher(fileReader, launchReader, true); >> + >> + Assert.assertEquals(tests[i], false, test.match()); >> + fileReader.close(); >> + } >> + >> + @Test >> + public void testTemplateExtraChild() throws >> JNLPMatcherException, IOException { >> + >> + InputStream fileStream = cl >> + >> .getResourceAsStream("net/sourceforge/jnlp/templates/template7.jnlp"); >> + fileReader = new InputStreamReader(fileStream); >> + >> + test = new JNLPMatcher(fileReader, launchReader, true); >> + >> + Assert.assertEquals(tests[i], false, test.match()); >> + fileReader.close(); >> + } >> + >> + @Test >> + public void testTemplateFewerChild() throws >> JNLPMatcherException, IOException { >> + >> + InputStream fileStream = cl >> + >> .getResourceAsStream("net/sourceforge/jnlp/templates/template8.jnlp"); >> + fileReader = new InputStreamReader(fileStream); >> + >> + test = new JNLPMatcher(fileReader, launchReader, true); >> + >> + Assert.assertEquals(tests[i], false, test.match()); >> + fileReader.close(); >> + } >> + >> + @Test >> + public void testTemplateDifferentFile() throws >> JNLPMatcherException, IOException { >> + >> + InputStream fileStream = cl >> + >> .getResourceAsStream("net/sourceforge/jnlp/templates/template9.jnlp"); >> + fileReader = new InputStreamReader(fileStream); >> + >> + test = new JNLPMatcher(fileReader, launchReader, true); >> + >> + Assert.assertEquals(tests[i], false, test.match()); >> + fileReader.close(); >> + } >> + >> + @Test >> + public void testApplicationCDATA() throws JNLPMatcherException, >> IOException { >> + >> + InputStream fileStream = cl >> + >> .getResourceAsStream("net/sourceforge/jnlp/application/application0.jnlp"); >> + fileReader = new InputStreamReader(fileStream); >> + >> + test = new JNLPMatcher(fileReader, launchReader, false); >> + >> + Assert.assertEquals(tests[i], true, test.match()); >> + fileReader.close(); >> + } >> + >> + @Test >> + public void testApplicationDuplicate() throws >> JNLPMatcherException, IOException { >> + >> + InputStream fileStream = cl >> + >> .getResourceAsStream("net/sourceforge/jnlp/application/application1.jnlp"); >> + fileReader = new InputStreamReader(fileStream); >> + >> + test = new JNLPMatcher(fileReader, launchReader, false); >> + >> + Assert.assertEquals(tests[i], true, test.match()); >> + fileReader.close(); >> + } >> + >> + @Test >> + public void testApplicationDifferentOrder() throws >> JNLPMatcherException, IOException { >> + >> + InputStream fileStream = cl >> + >> .getResourceAsStream("net/sourceforge/jnlp/application/application2.jnlp"); >> + fileReader = new InputStreamReader(fileStream); >> + >> + test = new JNLPMatcher(fileReader, launchReader, false); >> + >> + Assert.assertEquals(tests[i], true, test.match()); >> + fileReader.close(); >> + } >> + >> + @Test >> + public void testApplicationComments() throws >> JNLPMatcherException, IOException { >> + >> + InputStream fileStream = cl >> + >> .getResourceAsStream("net/sourceforge/jnlp/application/application3.jnlp"); >> + fileReader = new InputStreamReader(fileStream); >> + >> + test = new JNLPMatcher(fileReader, launchReader, false); >> + >> + Assert.assertEquals(tests[i], true, test.match()); >> + fileReader.close(); >> + } >> + >> + @Test >> + public void testApplicationWildCharsRandom() throws >> JNLPMatcherException, IOException { >> + >> + InputStream fileStream = cl >> + >> .getResourceAsStream("net/sourceforge/jnlp/application/application4.jnlp"); >> + fileReader = new InputStreamReader(fileStream); >> + >> + test = new JNLPMatcher(fileReader, launchReader, false); >> + >> + Assert.assertEquals(tests[i], false, test.match()); >> + fileReader.close(); >> + } >> + >> + @Test >> + public void testApplicationDifferentCodebaseValue() throws >> JNLPMatcherException, IOException { >> + >> + InputStream fileStream = cl >> + >> .getResourceAsStream("net/sourceforge/jnlp/application/application5.jnlp"); >> + fileReader = new InputStreamReader(fileStream); >> + >> + test = new JNLPMatcher(fileReader, launchReader, false); >> + >> + Assert.assertEquals(tests[i], false, test.match()); >> + fileReader.close(); >> + } >> + >> + @Test >> + public void testApplicationExtraChild() throws >> JNLPMatcherException, IOException { >> + >> + InputStream fileStream = cl >> + >> .getResourceAsStream("net/sourceforge/jnlp/application/application6.jnlp"); >> + fileReader = new InputStreamReader(fileStream); >> + >> + test = new JNLPMatcher(fileReader, launchReader, false); >> + >> + Assert.assertEquals(tests[i], false, test.match()); >> + fileReader.close(); >> + } >> + >> + @Test >> + public void testApplicationFewerChild() throws >> JNLPMatcherException, IOException { >> + >> + InputStream fileStream = cl >> + >> .getResourceAsStream("net/sourceforge/jnlp/application/application7.jnlp"); >> + fileReader = new InputStreamReader(fileStream); >> + >> + test = new JNLPMatcher(fileReader, launchReader, false); >> + >> + Assert.assertEquals(tests[i], false, test.match()); >> + fileReader.close(); >> + } >> + >> + @Test >> + public void testApplicationDifferentFile() throws >> JNLPMatcherException, IOException { >> + >> + InputStream fileStream = cl >> + >> .getResourceAsStream("net/sourceforge/jnlp/application/application8.jnlp"); >> + fileReader = new InputStreamReader(fileStream); >> + >> + test = new JNLPMatcher(fileReader, launchReader, false); >> + >> + Assert.assertEquals(tests[i], false, test.match()); >> + fileReader.close(); >> + } >> + >> + @Test >> + public void testNullJNLPFiles() { >> + >> + fileReader = null; >> + >> + try { >> + test = new JNLPMatcher(null, launchReader, false); >> + fail("Created an instance of JNLPMatcher with a null >> JNLP reader parameter"); >> + } catch (JNLPMatcherException e) { >> + // Do nothing, test passed >> + } >> + >> + try { >> + test = new JNLPMatcher(fileReader, null, false); >> + fail("Created an instance of JNLPMatcher with a null >> launching JNLP reader parameter"); >> + } catch (JNLPMatcherException e) { >> + // Do nothing, test passed >> + } >> + >> + try { >> + test = new JNLPMatcher(null, null, false); >> + fail("Created an instance of JNLPMatcher with both JNLP >> reader as null parameters"); >> + } catch (JNLPMatcherException e) { >> + // Do nothing, test passed >> + } > > NOT DO NOTHING :DD > > save exception, and assertequals with expected exception;) Saved exception and used assertequals to compare. Added this change to the updated patch. >> + } >> + >> + @After >> + public void tearDown() throws Exception { >> + launchReader.close(); >> + i++; >> + } >> + > > this 'i' approach is dangerous. The order of tests is not > guaranted.And because you are using this i just for output, please use > tests[1]... (with numbers instead f variable). > > To be honsest - nice set of tests. Some exceptions are never thrown > but those test may be added later (...==never? :) ) I have removed tearDown() and setUp like you have recommended. >> +} >> diff -r 86abbf8be0b1 >> tests/netx/unit/net/sourceforge/jnlp/application/application0.jnlp >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ >> b/tests/netx/unit/net/sourceforge/jnlp/application/application0.jnlp >> Tue Jul 05 14:53:27 2011 -0400 >> @@ -0,0 +1,27 @@ >> + >> +> + codebase="file" >> + href="www.redhat.com" >> +> >> + >> +> + Text you want to escape goes here... >> + random tag test >> + ]]> >> + >> + >> +Sample Test >> +RedHat >> + >> + >> + >> + >> + >> + >> + >> + >> + >> + >> + >> + >> + >> \ No newline at end of file >> diff -r 86abbf8be0b1 >> tests/netx/unit/net/sourceforge/jnlp/application/application1.jnlp >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ >> b/tests/netx/unit/net/sourceforge/jnlp/application/application1.jnlp >> Tue Jul 05 14:53:27 2011 -0400 >> @@ -0,0 +1,13 @@ >> + >> + >> + >> +Sample Test >> +RedHat >> + >> + >> + >> + >> + >> + >> + >> + >> diff -r 86abbf8be0b1 >> tests/netx/unit/net/sourceforge/jnlp/application/application2.jnlp >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ >> b/tests/netx/unit/net/sourceforge/jnlp/application/application2.jnlp >> Tue Jul 05 14:53:27 2011 -0400 >> @@ -0,0 +1,13 @@ >> + >> + >> + >> + >> + >> + >> + >> +RedHat >> +Sample Test >> + >> + >> + >> + >> diff -r 86abbf8be0b1 >> tests/netx/unit/net/sourceforge/jnlp/application/application3.jnlp >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ >> b/tests/netx/unit/net/sourceforge/jnlp/application/application3.jnlp >> Tue Jul 05 14:53:27 2011 -0400 >> @@ -0,0 +1,18 @@ >> + >> + >> + >> + >> +Sample Test >> +RedHat >> + >> + >> + >> + >> + >> + >> + >> + >> + >> + >> + >> + >> diff -r 86abbf8be0b1 >> tests/netx/unit/net/sourceforge/jnlp/application/application4.jnlp >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ >> b/tests/netx/unit/net/sourceforge/jnlp/application/application4.jnlp >> Tue Jul 05 14:53:27 2011 -0400 >> @@ -0,0 +1,13 @@ >> + >> + >> + >> +Sample Test >> +* >> + >> + >> + >> + >> + >> + >> + >> + >> diff -r 86abbf8be0b1 >> tests/netx/unit/net/sourceforge/jnlp/application/application5.jnlp >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ >> b/tests/netx/unit/net/sourceforge/jnlp/application/application5.jnlp >> Tue Jul 05 14:53:27 2011 -0400 >> @@ -0,0 +1,13 @@ >> + >> + >> + >> +Sample Test >> +RedHat >> + >> + >> + >> + >> + >> + >> + >> + >> diff -r 86abbf8be0b1 >> tests/netx/unit/net/sourceforge/jnlp/application/application6.jnlp >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ >> b/tests/netx/unit/net/sourceforge/jnlp/application/application6.jnlp >> Tue Jul 05 14:53:27 2011 -0400 >> @@ -0,0 +1,16 @@ >> + >> + >> + >> +Sample Test >> +RedHat >> + >> + >> + >> + >> + >> + >> + >> + >> + >> + >> + >> diff -r 86abbf8be0b1 >> tests/netx/unit/net/sourceforge/jnlp/application/application7.jnlp >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ >> b/tests/netx/unit/net/sourceforge/jnlp/application/application7.jnlp >> Tue Jul 05 14:53:27 2011 -0400 >> @@ -0,0 +1,11 @@ >> + >> + >> + >> +Sample Test >> +RedHat >> + >> + >> + >> + >> + >> + >> diff -r 86abbf8be0b1 >> tests/netx/unit/net/sourceforge/jnlp/application/application8.jnlp >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ >> b/tests/netx/unit/net/sourceforge/jnlp/application/application8.jnlp >> Tue Jul 05 14:53:27 2011 -0400 >> @@ -0,0 +1,14 @@ >> + >> +> href="Sample2.jnlp"> >> + >> +Sample >> +RedHat >> +This is a sample to test a bug >> + >> + >> + >> + >> + >> + >> + >> + >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ b/tests/netx/unit/net/sourceforge/jnlp/launchApp.jnlp Tue Jul >> 05 15:23:48 2011 -0400 >> @@ -0,0 +1,23 @@ >> + >> +> + codebase="file" >> + href="www.redhat.com" >> +> >> + >> + >> +Sample Test >> +RedHat >> + >> + >> + >> + >> + >> + >> + >> + >> + >> + >> + >> + >> + >> + >> diff -r 86abbf8be0b1 >> tests/netx/unit/net/sourceforge/jnlp/templates/template0.jnlp >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ >> b/tests/netx/unit/net/sourceforge/jnlp/templates/template0.jnlp >> Tue Jul 05 14:53:27 2011 -0400 >> @@ -0,0 +1,28 @@ >> + >> +> + codebase="file" >> + href="*" >> +> >> + >> + >> +Sample Test >> +RedHat >> + >> + >> + >> + >> + >> +> + Text you want to escape goes here... >> + random tag test >> + ]]> >> + >> + >> + >> + >> + >> + >> + >> + >> + >> + >> diff -r 86abbf8be0b1 >> tests/netx/unit/net/sourceforge/jnlp/templates/template1.jnlp >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ >> b/tests/netx/unit/net/sourceforge/jnlp/templates/template1.jnlp >> Tue Jul 05 14:53:27 2011 -0400 >> @@ -0,0 +1,13 @@ >> + >> + >> + >> +Sample Test >> +RedHat >> + >> + >> + >> + >> + >> + >> + >> + >> diff -r 86abbf8be0b1 >> tests/netx/unit/net/sourceforge/jnlp/templates/template2.jnlp >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ >> b/tests/netx/unit/net/sourceforge/jnlp/templates/template2.jnlp >> Tue Jul 05 14:53:27 2011 -0400 >> @@ -0,0 +1,13 @@ >> + >> + >> + >> +Sample Test >> +* >> + >> + >> + >> + >> + >> + >> + >> + >> diff -r 86abbf8be0b1 >> tests/netx/unit/net/sourceforge/jnlp/templates/template3.jnlp >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ >> b/tests/netx/unit/net/sourceforge/jnlp/templates/template3.jnlp >> Tue Jul 05 14:53:27 2011 -0400 >> @@ -0,0 +1,13 @@ >> + >> + >> + >> + >> + >> + >> + >> +RedHat >> +Sample Test >> + >> + >> + >> + >> diff -r 86abbf8be0b1 >> tests/netx/unit/net/sourceforge/jnlp/templates/template4.jnlp >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ >> b/tests/netx/unit/net/sourceforge/jnlp/templates/template4.jnlp >> Tue Jul 05 14:53:27 2011 -0400 >> @@ -0,0 +1,13 @@ >> + >> + >> + >> +* >> +* >> + >> + >> + >> + >> + >> + >> + >> + >> diff -r 86abbf8be0b1 >> tests/netx/unit/net/sourceforge/jnlp/templates/template5.jnlp >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ >> b/tests/netx/unit/net/sourceforge/jnlp/templates/template5.jnlp >> Tue Jul 05 14:53:27 2011 -0400 >> @@ -0,0 +1,23 @@ >> + >> +> + codebase="*" >> + href="*" >> +> >> + >> + >> + >> +* >> +* >> + >> + >> + >> + >> + >> + >> + >> + >> + >> + >> + >> + main-class='*' /> >> + >> \ No newline at end of file >> diff -r 86abbf8be0b1 >> tests/netx/unit/net/sourceforge/jnlp/templates/template6.jnlp >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ >> b/tests/netx/unit/net/sourceforge/jnlp/templates/template6.jnlp >> Tue Jul 05 14:53:27 2011 -0400 >> @@ -0,0 +1,13 @@ >> + >> + >> + >> +Test Sample >> +RedHat >> + >> + >> + >> + >> + >> + >> + >> + >> diff -r 86abbf8be0b1 >> tests/netx/unit/net/sourceforge/jnlp/templates/template7.jnlp >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ >> b/tests/netx/unit/net/sourceforge/jnlp/templates/template7.jnlp >> Tue Jul 05 14:53:27 2011 -0400 >> @@ -0,0 +1,16 @@ >> + >> + >> + >> +Sample Test >> +RedHat >> + >> + >> + >> + >> + >> + >> + >> + >> + >> + >> + >> diff -r 86abbf8be0b1 >> tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ >> b/tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp >> Tue Jul 05 14:53:27 2011 -0400 >> @@ -0,0 +1,8 @@ >> + >> + >> + >> + >> + >> + >> + >> + >> diff -r 86abbf8be0b1 >> tests/netx/unit/net/sourceforge/jnlp/templates/template9.jnlp >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ >> b/tests/netx/unit/net/sourceforge/jnlp/templates/template9.jnlp >> Tue Jul 05 14:53:27 2011 -0400 >> @@ -0,0 +1,14 @@ >> + >> +> href="Sample2.jnlp"> >> + >> +Sample >> +RedHat >> +This is a sample to test a bug >> + >> + >> + >> + >> + >> + >> + >> + >> >> >> Patch2.patch >> >> >> diff -r 86abbf8be0b1 >> netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java >> --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Thu >> Jun 23 15:29:45 2011 +0200 >> +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Tue >> Jul 05 16:31:01 2011 -0400 >> @@ -19,8 +19,10 @@ >> >> import java.io.File; >> import java.io.FileOutputStream; >> +import java.io.FileReader; >> import java.io.IOException; >> import java.io.InputStream; >> +import java.io.InputStreamReader; >> import java.net.MalformedURLException; >> import java.net.URL; >> import java.net.URLClassLoader; >> @@ -51,6 +53,8 @@ >> import net.sourceforge.jnlp.ExtensionDesc; >> import net.sourceforge.jnlp.JARDesc; >> import net.sourceforge.jnlp.JNLPFile; >> +import net.sourceforge.jnlp.JNLPMatcher; >> +import net.sourceforge.jnlp.JNLPMatcherException; >> import net.sourceforge.jnlp.LaunchException; >> import net.sourceforge.jnlp.ParseException; >> import net.sourceforge.jnlp.PluginBridge; >> @@ -80,7 +84,11 @@ >> // todo: initializePermissions should get the permissions from >> // extension classes too so that main file classes can load >> // resources in an extension. >> - >> + >> + /** Signed JNLP File and Template */ >> + final public static String template = >> "JNLP-INF/APPLICATION_TEMPLATE.JNLP"; >> + final public static String application = >> "JNLP-INF/APPLICATION.JNLP"; >> + >> /** map from JNLPFile url to shared classloader */ >> private static Map urlToLoader = >> new HashMap(); // never >> garbage collected! >> @@ -158,8 +166,9 @@ >> * Create a new JNLPClassLoader from the specified file. >> * >> * @param file the JNLP file >> + * @throws JNLPMatcherException if signed JNLP file failed to be >> verified or did not match >> */ >> - protected JNLPClassLoader(JNLPFile file, UpdatePolicy policy) >> throws LaunchException { >> + protected JNLPClassLoader(JNLPFile file, UpdatePolicy policy) >> throws LaunchException, JNLPMatcherException { >> super(new URL[0], JNLPClassLoader.class.getClassLoader()); >> >> if (JNLPRuntime.isDebug()) >> @@ -273,8 +282,9 @@ >> * >> * @param file the file to load classes for >> * @param policy the update policy to use when downloading >> resources >> + * @throws JNLPMatcherException if signed JNLP file failed to be >> verified or did not match >> */ >> - public static JNLPClassLoader getInstance(JNLPFile file, >> UpdatePolicy policy) throws LaunchException { >> + public static JNLPClassLoader getInstance(JNLPFile file, >> UpdatePolicy policy) throws LaunchException, JNLPMatcherException { >> JNLPClassLoader baseLoader = null; >> JNLPClassLoader loader = null; >> String uniqueKey = file.getUniqueKey(); >> @@ -341,9 +351,10 @@ >> * @param location the file's location >> * @param version the file's version >> * @param policy the update policy to use when downloading >> resources >> + * @throws JNLPMatcherException if signed JNLP file failed to be >> verified or did not match >> */ >> public static JNLPClassLoader getInstance(URL location, String >> uniqueKey, Version version, UpdatePolicy policy) >> - throws IOException, ParseException, LaunchException { >> + throws IOException, ParseException, LaunchException, >> JNLPMatcherException { >> JNLPClassLoader loader = urlToLoader.get(uniqueKey); >> >> if (loader == null || >> !location.equals(loader.getJNLPFile().getFileLocation())) >> @@ -403,7 +414,7 @@ >> * Load all of the JARs used in this JNLP file into the >> * ResourceTracker for downloading. >> */ >> - void initializeResources() throws LaunchException { >> + void initializeResources() throws LaunchException, >> JNLPMatcherException { >> JARDesc jars[] = resources.getJARs(); >> if (jars == null || jars.length == 0) >> return; >> @@ -471,8 +482,135 @@ >> //otherwise this jar is simply unsigned -- make >> sure to ask >> //for permission on certain actions >> } >> + >> + if (js.anyJarsSigned()) { >> + //If there are any signed Jars, check if JNLP file >> is signed >> + >> + if (JNLPRuntime.isDebug()) >> + System.out.println("STARTING check for signed >> JNLP file..."); >> + >> + for (int i = 0; i< jars.length; i++) { >> + List eachJar = new ArrayList(); >> + JarSigner signer = new JarSigner(); >> + eachJar.add(jars[i]); //Adds only the single jar >> to check if the jar has a valid signature >> + >> + tracker.addResource(jars[i].getLocation(), >> jars[i].getVersion(), >> + getDownloadOptionsForJar(jars[i]), >> + jars[i].isCacheable() ? >> JNLPRuntime.getDefaultUpdatePolicy() >> + : UpdatePolicy.FORCE); >> + >> + try { >> + signer.verifyJars(eachJar, tracker); >> + >> + if (signer.allJarsSigned()) { //If the jar >> is signed >> + URL location = jars[i].getLocation(); >> + File localFile = >> tracker.getCacheFile(location); >> + >> + >> + if(localFile == null) >> + { >> + throw new >> JNLPMatcherException("Could not locate jar file, returned null"); >> + } >> + >> + else{ >> + try { >> + JarFile jarFile = new >> JarFile(localFile); >> + Enumeration entries = >> jarFile.entries(); >> + JarEntry je; >> + >> + while (entries.hasMoreElements()) { >> + je = entries.nextElement(); >> + String jeName = >> je.getName().toUpperCase(); >> + >> + if (jeName.equals(template) >> || jeName.equals(application)) { >> + >> + if (JNLPRuntime.isDebug()) >> + >> System.out.println("\tCreating Jar InputStream from Jar Entry"); >> + >> + InputStream inStream = >> jarFile.getInputStream(je); >> + InputStreamReader >> inputReader = new InputStreamReader( >> + inStream); >> + >> + if (JNLPRuntime.isDebug()) >> + >> System.out.println("\tCreating File InputStream from lauching JNLP >> file"); >> + >> + JNLPFile jnlp = >> this.getJNLPFile(); >> + URL url = >> jnlp.getFileLocation(); >> + File jn = null; >> + >> + if >> (url.getProtocol().equals("file")) // If the file is on the local >> file system, use original path, otherwise find cache file >> + jn = new >> File(url.getPath()); >> + else >> + jn = >> CacheUtil.getCacheFile(url, null); >> + >> + FileReader fr = new >> FileReader(jn); >> + InputStreamReader >> jnlpReader = fr; >> + JNLPMatcher matcher; >> + >> + try { >> + >> + if >> (jeName.equals(application)) { // If application was found >> + >> + if >> (JNLPRuntime.isDebug()) >> + >> System.out.println("\tAPPLICATION.JNLP has been located within signed >> JAR. Starting verfication..."); >> + >> + matcher = new >> JNLPMatcher(inputReader, jnlpReader, false); >> + } else // Otherwise >> template was >> + // found >> + { >> + if >> (JNLPRuntime.isDebug()) >> + System.out >> + >> .println("\tAPPLICATION_TEMPLATE.JNLP has been located within signed >> JAR. Starting verfication..."); >> + >> + matcher = new >> JNLPMatcher(inputReader,jnlpReader, true); >> + } >> + >> + if (!matcher.match()) Changed matcher.match() to matcher.isMatch() since the method name has been changed. >> + throw new >> JNLPMatcherException( >> + "Signed >> Application did not match launching JNLP File"); >> + >> + if >> (JNLPRuntime.isDebug()) >> + System.out >> + >> .println("\t** Signed Application Verification Successful **"); >> + >> + break; // break >> while loop >> + >> + } catch (Exception e) { >> + throw new >> JNLPMatcherException(e.getMessage(), e); >> + } >> + } >> + >> + } >> + } catch (IOException e) { //'new >> JarFile(localFile)' throws an IOException >> + if (JNLPRuntime.isDebug()) >> + e.printStackTrace(); >> + >> + //After this exception is >> caught, it is escaped. >> + //If this exception is thrown >> when creating an instance of JarFile, >> + //it will skip that jarFile and >> move on to the next jarFile (if there are any) >> + } >> + } >> + } >> + } catch (JNLPMatcherException e) { >> + //Throw e if signed JNLP file failed to be >> verified >> + //Throwing this exception will fail to >> initialize the application resulting in the termination of the >> application >> + throw e; >> + >> + } catch (Exception e) { >> + if (JNLPRuntime.isDebug()) >> + e.printStackTrace(); >> + >> + //After this exception is caught, it is >> escaped. >> + //If an exception is thrown while handling >> the jar file (mainly for JarSigner.verifyJars) >> + //it will consider the jar file to be >> unsigned and skip on to the next jar file (if there are any) >> + } >> + } >> + if (JNLPRuntime.isDebug()) >> + System.out.println("ENDING check for signed JNLP >> file..."); >> + } >> } >> >> + >> for (JARDesc jarDesc : file.getResources().getJARs()) { >> try { >> File cachedFile = >> tracker.getCacheFile(jarDesc.getLocation()); > Generally the classlaoder seams doing what expected, but Deepak must > say final word to it. Please discuss with me adding of reproducrs when > time will come. > > Regards and thanx for yor effort! > > J. As you have requested, I have added the copyright headers to JNLPMatcher.java and JNLPMatcherTest.java. I am not sure if you would also like me to add it to the jnlp files that are being used for test purposes. The reason why I didn't add the header to the jnlp files is because I didn't want anything from the copyright header to interfere with the test. So, that's why I have only added the headers to the two files but please let me know if you would also like me to add them to the jnlp files. Thanks. -- Cheers, Saad Mohammad -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: Patch1a.patch Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110715/beb08427/Patch1a.patch -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: Patch2a.patch Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110715/beb08427/Patch2a.patch From bugzilla-daemon at icedtea.classpath.org Fri Jul 15 19:29:08 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sat, 16 Jul 2011 02:29:08 +0000 Subject: [Bug 760] New: Fatal error when trying to start serviio-console.sh Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=760 Summary: Fatal error when trying to start serviio-console.sh Product: IcedTea Version: unspecified Platform: 64-bit OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: IcedTea6 AssignedTo: unassigned at icedtea.classpath.org ReportedBy: poohba at blkpoohba.dyndns.org Downloaded serviio, extracted it, cd bin. Started server ./serviio.sh &. Started console ./serviio-console.sh. Got error: $ ./serviio-console.sh # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00007fe313453d2f, pid=31027, tid=140613252904704 # # JRE version: 6.0_22-b22 # Java VM: OpenJDK 64-Bit Server VM (20.0-b11 mixed mode linux-amd64 compressed oops) # Derivative: IcedTea6 1.10.2 # Distribution: Fedora release 15 (Lovelock), package fedora-58.1.10.2.fc15-x86_64 # Problematic frame: # V [libjvm.so+0x47bd2f] AsyncGetCallTrace+0x6d57f # # An error report file with more information is saved as: # /tmp/hs_err_pid31027.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 # ./serviio-console.sh: line 67: 31027 Aborted (core dumped) "$JAVA" $JAVA_OPTS -classpath "$SERVIIO_CONSOLE_CLASS_PATH" org.serviio.console.ServiioConsole "$@" -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Sun Jul 17 03:27:51 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 17 Jul 2011 10:27:51 +0000 Subject: [Bug 749] sun.applet.PluginStreamHandler#handleMessage(String) really slow In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=749 --- Comment #2 from ricky 2011-07-17 10:27:50 --- I have just read this thread: http://old.nabble.com/RFC%3A-Patch-for-Bug-749-%28sun.applet.PluginStreamHandler-handleMessage%28String%29-really-slow%29-tt31993146.html And I want to clarify the performance penalty is not in the split but in the concatenating part. The current code splits the message, does some stuff with the first tokens (I think they are for internal use) and then joins the rest to pass them to the next layer using a loop. The problem is in this final loop. If you check my patch, the idea is pretty simple, replacing the loop (100000 concats in my case) for one substring call. Here it's where the benefit is got. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From mark at klomp.org Sun Jul 17 06:45:18 2011 From: mark at klomp.org (Mark Wielaard) Date: Sun, 17 Jul 2011 15:45:18 +0200 Subject: Announcing IcedTea8 In-Reply-To: <20110714221447.GI32334@rivendell.middle-earth.co.uk> References: <20110712093149.GC14335@shelob.middle-earth.co.uk> <1310466641.3271.5.camel@springer.wildebeest.org> <1310635991.5685.68.camel@springer.wildebeest.org> <20110714221447.GI32334@rivendell.middle-earth.co.uk> Message-ID: <20110717134518.GA16087@hermans.wildebeest.org> On Thu, Jul 14, 2011 at 11:14:47PM +0100, Dr Andrew John Hughes wrote: > > Which should fix the buildbot for (what is currently still called > > icedtea7, but tracks the main icedtea archive, which will turn into 8): > > http://icedtea.classpath.org/icedtea/buildbot/waterfall > > > > Yeah, I saw this. Thanks for doing it, but the effort is a little wasted > as I'm working on updating 8 and these checksums have already been invalidated > again now that it uses the 8 forest and not 7. No worries, I had to do the same for the icedtea7 repo: 2011-07-17 Mark Wielaard * Makefile.am (CORBA_SHA256SUM): Updated for new icedtea hg server settings. (HOTSPOT_SHA256SUM): Likewise. (JAXP_SHA256SUM): Likewise. (JAXWS_SHA256SUM): Likewise. (JDK_SHA256SUM): Likewise. (LANGTOOLS_SHA256SUM): Likewise. (OPENJDK_SHA256SUM): Likewise. I didn't have time to setup a new buildbot for it yet though. So atm buildbot will claim to build icedtea7, while in fact it is tracking icedtea (aka icedtea8). Cheers, Mark diff -r 76c688f49231 -r db4c20941851 Makefile.am --- a/Makefile.am Wed Jul 13 22:36:33 2011 +0100 +++ b/Makefile.am Sun Jul 17 15:40:18 2011 +0200 @@ -10,13 +10,13 @@ LANGTOOLS_CHANGESET = 0df09c966a29 OPENJDK_CHANGESET = 3defd24c2671 -CORBA_SHA256SUM = da786a16483ba20113f570284c242cfede65e76e6c8911ad4a238cdc33cbf48d -HOTSPOT_SHA256SUM = 0d5e9b17972e5688e1ec176c25d0055047ed198a804906bcc4cf9993c9a6c118 -JAXP_SHA256SUM = f8416413f66a5b49214b582391c0a00a2ff9487c42965f37e63fd48a89eedb1d -JAXWS_SHA256SUM = 54803ffb5f4badb119c488bc90670661fd9c7049f32ae94668c38bf85e709047 -JDK_SHA256SUM = aa99e5b5e3ee7cb7bf94e90b2fb1bd45382548d620614acbb6621234698b7929 -LANGTOOLS_SHA256SUM = 991fc492c08a51163dd54c3cd247764f1b3986a88a77042c137a5a0c1fac4b1e -OPENJDK_SHA256SUM = 653d459911cae04907adeb1c1c5926c0ff1d874127ad16d72324cba63975f57b +CORBA_SHA256SUM = 7589c42e88b4342750bea5afa306cc662cc9c5f7607fad96f70083ce70f4526e +HOTSPOT_SHA256SUM = b65f1a202851c5db98507477099639354fb536f51b7ce0fb2b8251eb377de328 +JAXP_SHA256SUM = 6ab0cab1965edb28e4093b55436abd04fbffe0b0251016043c75246c4ee9dc2d +JAXWS_SHA256SUM = 5567c90ce2857016365b2e346783a3b16ec0e76b80586a0371f601b4fed01f21 +JDK_SHA256SUM = c698a60613673bfc2e25d7b4d163b192116d5ce7d1a1fb63a1c6349686ce30d7 +LANGTOOLS_SHA256SUM = 0118daf4d280d0a56f657fac640ac191ec42a7f49cc12a0693bd0fdd04ec684a +OPENJDK_SHA256SUM = 4043a75c2c4385dd735f8dbbf2369311ce1b951217c9dbe9bba9609e24eb291e CACAO_VERSION = d6264eb66506 CACAO_SHA256SUM = 94ea7899e806ccbc33a732b5113a8f969d8b1f4ce7ffd27cf04577054f65f63c From mark at icedtea.classpath.org Sun Jul 17 06:45:19 2011 From: mark at icedtea.classpath.org (mark at icedtea.classpath.org) Date: Sun, 17 Jul 2011 13:45:19 +0000 Subject: /hg/icedtea7: Update sha256sums for new icedtea mercurial server... Message-ID: changeset db4c20941851 in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=db4c20941851 author: Mark Wielaard date: Sun Jul 17 15:40:18 2011 +0200 Update sha256sums for new icedtea mercurial server settings. * Makefile.am (CORBA_SHA256SUM): Updated for new icedtea hg server settings. (HOTSPOT_SHA256SUM): Likewise. (JAXP_SHA256SUM): Likewise. (JAXWS_SHA256SUM): Likewise. (JDK_SHA256SUM): Likewise. (LANGTOOLS_SHA256SUM): Likewise. (OPENJDK_SHA256SUM): Likewise. diffstat: ChangeLog | 11 +++++++++++ Makefile.am | 14 +++++++------- 2 files changed, 18 insertions(+), 7 deletions(-) diffs (42 lines): diff -r 76c688f49231 -r db4c20941851 ChangeLog --- a/ChangeLog Wed Jul 13 22:36:33 2011 +0100 +++ b/ChangeLog Sun Jul 17 15:40:18 2011 +0200 @@ -1,3 +1,14 @@ +2011-07-17 Mark Wielaard + + * Makefile.am (CORBA_SHA256SUM): Updated for new icedtea hg server + settings. + (HOTSPOT_SHA256SUM): Likewise. + (JAXP_SHA256SUM): Likewise. + (JAXWS_SHA256SUM): Likewise. + (JDK_SHA256SUM): Likewise. + (LANGTOOLS_SHA256SUM): Likewise. + (OPENJDK_SHA256SUM): Likewise. + 2011-07-13 Andrew John Hughes * Makefile.am: diff -r 76c688f49231 -r db4c20941851 Makefile.am --- a/Makefile.am Wed Jul 13 22:36:33 2011 +0100 +++ b/Makefile.am Sun Jul 17 15:40:18 2011 +0200 @@ -10,13 +10,13 @@ LANGTOOLS_CHANGESET = 0df09c966a29 OPENJDK_CHANGESET = 3defd24c2671 -CORBA_SHA256SUM = da786a16483ba20113f570284c242cfede65e76e6c8911ad4a238cdc33cbf48d -HOTSPOT_SHA256SUM = 0d5e9b17972e5688e1ec176c25d0055047ed198a804906bcc4cf9993c9a6c118 -JAXP_SHA256SUM = f8416413f66a5b49214b582391c0a00a2ff9487c42965f37e63fd48a89eedb1d -JAXWS_SHA256SUM = 54803ffb5f4badb119c488bc90670661fd9c7049f32ae94668c38bf85e709047 -JDK_SHA256SUM = aa99e5b5e3ee7cb7bf94e90b2fb1bd45382548d620614acbb6621234698b7929 -LANGTOOLS_SHA256SUM = 991fc492c08a51163dd54c3cd247764f1b3986a88a77042c137a5a0c1fac4b1e -OPENJDK_SHA256SUM = 653d459911cae04907adeb1c1c5926c0ff1d874127ad16d72324cba63975f57b +CORBA_SHA256SUM = 7589c42e88b4342750bea5afa306cc662cc9c5f7607fad96f70083ce70f4526e +HOTSPOT_SHA256SUM = b65f1a202851c5db98507477099639354fb536f51b7ce0fb2b8251eb377de328 +JAXP_SHA256SUM = 6ab0cab1965edb28e4093b55436abd04fbffe0b0251016043c75246c4ee9dc2d +JAXWS_SHA256SUM = 5567c90ce2857016365b2e346783a3b16ec0e76b80586a0371f601b4fed01f21 +JDK_SHA256SUM = c698a60613673bfc2e25d7b4d163b192116d5ce7d1a1fb63a1c6349686ce30d7 +LANGTOOLS_SHA256SUM = 0118daf4d280d0a56f657fac640ac191ec42a7f49cc12a0693bd0fdd04ec684a +OPENJDK_SHA256SUM = 4043a75c2c4385dd735f8dbbf2369311ce1b951217c9dbe9bba9609e24eb291e CACAO_VERSION = d6264eb66506 CACAO_SHA256SUM = 94ea7899e806ccbc33a732b5113a8f969d8b1f4ce7ffd27cf04577054f65f63c From jvanek at redhat.com Mon Jul 18 02:20:10 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 18 Jul 2011 11:20:10 +0200 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E204CD8.306@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> Message-ID: <4E23FACA.3070305@redhat.com> On 07/15/2011 04:21 PM, Saad Mohammad wrote: > I have updated both the patches that includes the change that you have recommended and requested. > > I have also added few comments below: snip > > As you have requested, I have added the copyright headers to JNLPMatcher.java and JNLPMatcherTest.java. I am not sure if you would also like me to add it to the jnlp files that are being used for test purposes. > The reason why I didn't add the header to the jnlp files is because I didn't want anything from the copyright header to interfere with the test. > So, that's why I have only added the headers to the two files but please let me know if you would also like me to add them to the jnlp files. > Personally I agree with you. I But I think that headers files must be in each file. But plase wait with this change until jnlpMatcher is in and also/or patch for classloader(+ reproducers) is in to protect readability (then I'm afraid it will be necessary). Still some concerns remains (100% of new code :D ) > > Patch1a.patch > > > diff -r 86abbf8be0b1 Makefile.am > --- a/Makefile.am Thu Jun 23 15:29:45 2011 +0200 > +++ b/Makefile.am Thu Jul 14 17:11:49 2011 -0400 > @@ -538,7 +538,14 @@ > > run-netx-unit-tests: stamps/netx-unit-tests-compile.stamp \ > $(JUNIT_RUNNER_JAR) $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) > - cp {$(NETX_UNIT_TEST_SRCDIR),$(NETX_UNIT_TEST_DIR)}/net/sourceforge/jnlp/basic.jnlp > + filename=" " ; \ > + cd $(NETX_UNIT_TEST_SRCDIR) ; \ > + for file in `find . -type f`; do\ > + filename=`echo $$file `; \ > + if [[ $$filename != *$.java ]]; then \ > + cp --parents $$filename $(NETX_UNIT_TEST_DIR) ; \ > + fi ; \ > + done ; \ > cd $(NETX_UNIT_TEST_DIR) ; \ > class_names= ; \ > for test in `find -type f` ; do \ OK here ^, let i t be. Just FYI, find have argument to find all "NOT this suffix" options. (negation by ! or attribute not...) > diff -r 86abbf8be0b1 netx/net/sourceforge/jnlp/JNLPMatcher.java > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/netx/net/sourceforge/jnlp/JNLPMatcher.java Thu Jul 14 17:11:49 2011 -0400 > @@ -0,0 +1,275 @@ > +/* JNLPMatcher.java > + Copyright (C) 2011 Red Hat, Inc. > + > +This file is part of IcedTea. > + > +IcedTea is free software; you can redistribute it and/or > +modify it under the terms of the GNU General Public License as published by > +the Free Software Foundation, version 2. > + > +IcedTea is distributed in the hope that it will be useful, > +but WITHOUT ANY WARRANTY; without even the implied warranty of > +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > +General Public License for more details. > + > +You should have received a copy of the GNU General Public License > +along with IcedTea; see the file COPYING. If not, write to > +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA > +02110-1301 USA. > + > +Linking this library statically or dynamically with other modules is > +making a combined work based on this library. Thus, the terms and > +conditions of the GNU General Public License cover the whole > +combination. > + > +As a special exception, the copyright holders of this library give you > +permission to link this library with independent modules to produce an > +executable, regardless of the license terms of these independent > +modules, and to copy and distribute the resulting executable under > +terms of your choice, provided that you also meet, for each linked > +independent module, the terms and conditions of the license of that > +module. An independent module is a module which is not derived from > +or based on this library. If you modify this library, you may extend > +this exception to your version of the library, but you are not > +obligated to do so. If you do not wish to do so, delete this > +exception statement from your version. > + */ > + > +package net.sourceforge.jnlp; > + > +import java.util.List; > +import java.io.InputStreamReader; > +import java.io.PipedInputStream; > +import java.io.PipedOutputStream; > +import java.util.ArrayList; > +import java.util.Arrays; > +import java.util.Collections; > +import java.util.LinkedList; > +import net.sourceforge.nanoxml.XMLElement; > + > +/** > + * To compare launching JNLP file with signed APPLICATION.JNLP or > + * APPLICATION_TEMPLATE.jnlp. > + * > + * Used by net.sourceforge.jnlp.runtime.JNLPCLassLoader > + */ > + > +public final class JNLPMatcher { > + > + private final Node appTemplateNode; > + private final Node launchJNLPNode; > + private final boolean isTemplate; > + private String match = null; WHY oh why String :-/// !!! This should.. have to ..be Boolean (capital B) > + > + /** > + * Public constructor > + * > + * @param appTemplate > + * the reader stream of the signed APPLICATION.jnlp or > + * APPLICATION_TEMPLATE.jnlp > + * @param launchJNLP > + * the reader stream of the launching JNLP file > + * @param isTemplate > + * a boolean that specifies if appTemplateFile is a template > + * @throws JNLPMatcherException > + * if IOException, XMLParseException is thrown during parsing; > + * Or launchJNLP/appTemplate is null > + */ > + public JNLPMatcher(InputStreamReader appTemplate, InputStreamReader launchJNLP, > + boolean isTemplate) throws JNLPMatcherException { > + > + try { > + > + if (appTemplate == null&& launchJNLP == null) > + throw new NullPointerException( > + "Template JNLP file and Launching JNLP file are both null."); > + else if (appTemplate == null) > + throw new NullPointerException("Template JNLP file is null."); > + else if (launchJNLP == null) > + throw new NullPointerException("Launching JNLP file is null."); > + > + XMLElement appTemplateXML = new XMLElement(); > + XMLElement launchJNLPXML = new XMLElement(); > + > + // Remove the comments and CDATA from the JNLP file > + final PipedInputStream pinTemplate = new PipedInputStream(); > + final PipedOutputStream poutTemplate = new PipedOutputStream(pinTemplate); > + appTemplateXML.sanitizeInput(appTemplate, poutTemplate); > + > + final PipedInputStream pinJNLPFile = new PipedInputStream(); > + final PipedOutputStream poutJNLPFile = new PipedOutputStream(pinJNLPFile); > + launchJNLPXML.sanitizeInput(launchJNLP, poutJNLPFile); > + > + // Parse both files > + appTemplateXML.parseFromReader(new InputStreamReader(pinTemplate)); > + launchJNLPXML.parseFromReader(new InputStreamReader(pinJNLPFile)); > + > + // Initialize parent nodes > + this.appTemplateNode = new Node(appTemplateXML); > + this.launchJNLPNode = new Node(launchJNLPXML); > + this.isTemplate = isTemplate; > + > + } catch (Exception e) { > + throw new JNLPMatcherException( > + "Failed to create an instance of JNLPVerify with specified InputStreamReader", > + e); > + } > + } > + > + /** > + * Compares both JNLP files > + * > + * @return true if both JNLP files are 'matched', otherwise false > + */ > + public boolean isMatch() { > + > + if (match == null) > + match = matchNodes(appTemplateNode, launchJNLPNode) ? "true" : "false"; > + > + if (match.equals("true")) > + return true; > + else > + return false; > + } > + This is really an art how NOT to do it :) Ideal solution can be object wrapping boolean. And we have this one in java...: public boolean isMatch() { if (match == null){ match = matchNodes(appTemplateNode, launchJNLPNode) ; } return match; } Study a little bit about Boolean x boolean and about autoboxing in Java. No more changes here then is already written (eg do NOT return BBBBolean from matchNodes) > + /** > + * Compares two Nodes regardless of the order of their children/attributes > + * > + * @param appTemplate > + * signed application or template's Node > + * @param launchJNLP > + * launching JNLP file's Node > + * > + * @return true if both Nodes are 'matched', otherwise false > + */ > + private boolean matchNodes(Node appTemplate, Node launchJNLP) { > + > + if (appTemplate != null&& launchJNLP != null) { > + > + Node templateNode = appTemplate; > + Node launchNode = launchJNLP; > + // Store children of Node > + List appTemplateChild = new LinkedList(Arrays.asList(templateNode > + .getChildNodes())); > + List launchJNLPChild = new LinkedList(Arrays.asList(launchNode > + .getChildNodes())); > + > + // Compare only if both Nodes have the same name, else return false > + if (templateNode.getNodeName().equals(launchNode.getNodeName())) { > + > + if (appTemplateChild.size() == launchJNLPChild.size()) { // Compare > + // children > + > + int childLength = appTemplateChild.size(); > + > + for (int i = 0; i< childLength;) { > + for (int j = 0; j< childLength; j++) { > + boolean isSame = matchNodes(appTemplateChild.get(i), > + launchJNLPChild.get(j)); > + > + if (!isSame&& j == childLength - 1) > + return false; > + else if (isSame) { // If both child matches, remove them from the list of children > + appTemplateChild.remove(i); > + launchJNLPChild.remove(j); > + --childLength; > + break; > + } > + } > + } > + > + if (!templateNode.getNodeValue().equals(launchNode.getNodeValue())) { > + > + // If it's a template and the template's value is NOT '*' > + if (isTemplate&& !templateNode.getNodeValue().equals("*")) > + return false; > + // Else if it's not a template, then return false > + else if (!isTemplate) > + return false; > + } > + // Compare attributes of both Nodes > + return matchAttributes(templateNode, launchNode); > + } > + > + } > + } > + return false; > + } > + > + /** > + * Compares attributes of two Nodes regardless of order > + * > + * @param appTemplateNode > + * signed application or template's Node with attributes > + * @param launchJNLPNode > + * launching JNLP file's Node with attributes > + * > + * @return true if both Nodes have 'matched' attributes, otherwise false > + */ > + private boolean matchAttributes(Node templateNode, Node launchNode) { > + > + if (templateNode != null&& launchNode != null) { > + > + ArrayList appTemplateAttributes = templateNode.getAttributeNames(); > + ArrayList launchJNLPAttributes = launchNode.getAttributeNames(); > + Same mistake again. Please use interface where-ever it is possible. List appTemplateAttributes = templateNode.getAttributeNames(); List launchJNLPAttributes = launchNode.getAttributeNames(); Will serve you well. > + Collections.sort(appTemplateAttributes); > + Collections.sort(launchJNLPAttributes); > + > + if (appTemplateAttributes.size() == launchJNLPAttributes.size()) { > + > + int size = appTemplateAttributes.size(); // Number of attributes > + > + for (int i = 0; i< size; i++) { > + > + if (launchJNLPAttributes.get(i).equals(appTemplateAttributes.get(i))) { // If both Node's attribute name are the > + // same then compare the values > + > + String attribute = launchJNLPAttributes.get(i); > + boolean isSame = templateNode.getAttribute(attribute).equals( // Check if the Attribute values match > + launchNode.getAttribute(attribute)); > + > + if (!isTemplate&& !isSame) > + return false; > + else if (isTemplate&& !isSame > +&& !templateNode.getAttribute(attribute).equals("*")) > + return false; > + > + } else > + // If attributes names do not match, return false > + return false; > + } > + return true; > + } > + } > + return false; > + } > + > + /** > + * Getter for application/template Node > + * > + * @return the Node of the signed application/template file > + */ > + public Node getAppTemplateNode() { > + return appTemplateNode; > + } > + > + /** > + * Getter for launching application Node > + * > + * @return the Node of the launching JNLP file > + */ > + public Node getLaunchJNLPNode() { > + return launchJNLPNode; > + } > + > + /** > + * Getter for isTemplate > + * > + * @return true if a signed template is being used for matching; otherwise > + * false. > + */ > + public boolean isTemplate() { > + return isTemplate; > + } > +} > diff -r 86abbf8be0b1 netx/net/sourceforge/jnlp/JNLPMatcherException.java > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/netx/net/sourceforge/jnlp/JNLPMatcherException.java Thu Jul 14 17:11:49 2011 -0400 > @@ -0,0 +1,16 @@ > +package net.sourceforge.jnlp; > + > +public class JNLPMatcherException extends Exception > +{ > + private static final long serialVersionUID = 1L; > + > + public JNLPMatcherException(String message) > + { > + super(message); > + } > + > + public JNLPMatcherException(String message, Throwable cause) > + { > + super(message, cause); > + } > +} > diff -r 86abbf8be0b1 netx/net/sourceforge/jnlp/Node.java > --- a/netx/net/sourceforge/jnlp/Node.java Thu Jun 23 15:29:45 2011 +0200 > +++ b/netx/net/sourceforge/jnlp/Node.java Thu Jul 14 17:11:49 2011 -0400 > @@ -19,6 +19,7 @@ > private XMLElement xml; > private Node next; > private Node children[]; > + private ArrayList attributeNames= null; Oh dear :) no No NO private List attributeNames= null; for sure! > > Node(XMLElement xml) { > this.xml = xml; > @@ -60,6 +61,21 @@ > > return children; > } > + > + /** > + * To retrieve all attribute names > + * @return all attribute names of the Node in ArrayList > + */ > + ArrayList getAttributeNames() { :-/ again List getAttributeNames() and in this case this is most important! > + if (attributeNames == null) { > + attributeNames= new ArrayList(); > + > + for (Enumeration e = xml.enumerateAttributeNames(); e.hasMoreElements();) > + attributeNames.add(new String((String) e.nextElement())); > + } > + > + return attributeNames; > + } > > String getAttribute(String name) { > return (String) xml.getAttribute(name); > @@ -86,6 +102,7 @@ > private ParsedXML tinyNode; > private Node next; > private Node children[]; > + private String attributeNames[]; > > Node(ParsedXML tinyNode) { > this.tinyNode = tinyNode; > @@ -127,6 +144,19 @@ > > return children; > } > + > + String[] getAttributeNames() { > + if (attributeNames == null) { > + List list = new ArrayList(); > + > + for (Enumeration e = xml.enumerateAttributeNames(); e.hasMoreElements();) > + list.add(new String((String) e.nextElement())); > + > + attributeNames = list.toArray(new String[list.size()]); > + > + } > + return attributeNames; > + } > > String getAttribute(String name) { > return tinyNode.getAttribute(name); Generally I'm ok with test. I have just idea to test what happens with your engine when something unexpected will happen. Eg one of the files will be un-parse-able (=> matchNodes will proably throw an runtime exception is match probably also....) . Can you add this tests as separate patch after this one is in? ( Which will be next round I suppose;) > diff -r 86abbf8be0b1 tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java Thu Jul 14 17:11:49 2011 -0400 > @@ -0,0 +1,464 @@ > +/* JNLPMatcherTest.java > + Copyright (C) 2011 Red Hat, Inc. > + ...snip... > > Patch2a.patch > > > diff -r 86abbf8be0b1 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java > --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Thu Jun 23 15:29:45 2011 +0200 > +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Thu Jul 14 17:11:49 2011 -0400 > @@ -19,8 +19,10 @@ > > import java.io.File; > import java.io.FileOutputStream; > +import java.io.FileReader; > import java.io.IOException; > import java.io.InputStream; > +import java.io.InputStreamReader; > import java.net.MalformedURLException; > import java.net.URL; > import java.net.URLClassLoader; > @@ -51,6 +53,8 @@ > import net.sourceforge.jnlp.ExtensionDesc; > import net.sourceforge.jnlp.JARDesc; > import net.sourceforge.jnlp.JNLPFile; > +import net.sourceforge.jnlp.JNLPMatcher; > +import net.sourceforge.jnlp.JNLPMatcherException; > import net.sourceforge.jnlp.LaunchException; > import net.sourceforge.jnlp.ParseException; > import net.sourceforge.jnlp.PluginBridge; > @@ -80,7 +84,11 @@ > // todo: initializePermissions should get the permissions from > // extension classes too so that main file classes can load > // resources in an extension. > - > + > + /** Signed JNLP File and Template */ > + final public static String template = "JNLP-INF/APPLICATION_TEMPLATE.JNLP"; > + final public static String application = "JNLP-INF/APPLICATION.JNLP"; > + > /** map from JNLPFile url to shared classloader */ > private static Map urlToLoader = > new HashMap(); // never garbage collected! > @@ -158,8 +166,9 @@ > * Create a new JNLPClassLoader from the specified file. > * > * @param file the JNLP file > + * @throws JNLPMatcherException if signed JNLP file failed to be verified or did not match > */ > - protected JNLPClassLoader(JNLPFile file, UpdatePolicy policy) throws LaunchException { > + protected JNLPClassLoader(JNLPFile file, UpdatePolicy policy) throws LaunchException, JNLPMatcherException { > super(new URL[0], JNLPClassLoader.class.getClassLoader()); > > if (JNLPRuntime.isDebug()) > @@ -273,8 +282,9 @@ > * > * @param file the file to load classes for > * @param policy the update policy to use when downloading resources > + * @throws JNLPMatcherException if signed JNLP file failed to be verified or did not match > */ > - public static JNLPClassLoader getInstance(JNLPFile file, UpdatePolicy policy) throws LaunchException { > + public static JNLPClassLoader getInstance(JNLPFile file, UpdatePolicy policy) throws LaunchException, JNLPMatcherException { > JNLPClassLoader baseLoader = null; > JNLPClassLoader loader = null; > String uniqueKey = file.getUniqueKey(); > @@ -341,9 +351,10 @@ > * @param location the file's location > * @param version the file's version > * @param policy the update policy to use when downloading resources > + * @throws JNLPMatcherException if signed JNLP file failed to be verified or did not match > */ > public static JNLPClassLoader getInstance(URL location, String uniqueKey, Version version, UpdatePolicy policy) > - throws IOException, ParseException, LaunchException { > + throws IOException, ParseException, LaunchException, JNLPMatcherException { > JNLPClassLoader loader = urlToLoader.get(uniqueKey); > > if (loader == null || !location.equals(loader.getJNLPFile().getFileLocation())) > @@ -403,7 +414,7 @@ > * Load all of the JARs used in this JNLP file into the > * ResourceTracker for downloading. > */ > - void initializeResources() throws LaunchException { > + void initializeResources() throws LaunchException, JNLPMatcherException { > JARDesc jars[] = resources.getJARs(); > if (jars == null || jars.length == 0) > return; > @@ -471,8 +482,151 @@ > //otherwise this jar is simply unsigned -- make sure to ask > //for permission on certain actions > } > + > + if (js.anyJarsSigned()) { > + // If there are any signed Jars, check if JNLP file is signed > + > + if (JNLPRuntime.isDebug()) > + System.out.println("STARTING check for signed JNLP file..."); > + > + for (int i = 0; i< jars.length; i++) { > + List eachJar = new ArrayList(); > + JarSigner signer = new JarSigner(); > + eachJar.add(jars[i]); // Adds only the single jar to check > + // if the jar has a valid signature > + > + tracker.addResource(jars[i].getLocation(), jars[i].getVersion(), > + getDownloadOptionsForJar(jars[i]), > + jars[i].isCacheable() ? JNLPRuntime.getDefaultUpdatePolicy() > + : UpdatePolicy.FORCE); > + > + try { > + signer.verifyJars(eachJar, tracker); > + > + if (signer.allJarsSigned()) { // If the jar is signed > + URL location = jars[i].getLocation(); > + File localFile = tracker.getCacheFile(location); > + > + if (localFile == null) { > + throw new JNLPMatcherException( > + "Could not locate jar file, returned null"); > + } > + > + else { > + try { > + JarFile jarFile = new JarFile(localFile); > + Enumeration entries = jarFile.entries(); > + JarEntry je; > + > + while (entries.hasMoreElements()) { > + je = entries.nextElement(); > + String jeName = je.getName().toUpperCase(); > + > + if (jeName.equals(template) > + || jeName.equals(application)) { > + > + if (JNLPRuntime.isDebug()) > + System.out > + .println("\tCreating Jar InputStream from Jar Entry"); > + > + InputStream inStream = jarFile > + .getInputStream(je); > + InputStreamReader inputReader = new InputStreamReader( > + inStream); > + > + if (JNLPRuntime.isDebug()) > + System.out > + .println("\tCreating File InputStream from lauching JNLP file"); > + > + JNLPFile jnlp = this.getJNLPFile(); > + URL url = jnlp.getFileLocation(); > + File jn = null; > + > + if (url.getProtocol().equals("file")) // If the file is on the local file system, use original path, otherwise find cached file > + jn = new File(url.getPath()); > + else > + jn = CacheUtil.getCacheFile(url, null); > + > + FileReader fr = new FileReader(jn); > + InputStreamReader jnlpReader = fr; > + JNLPMatcher matcher; > + > + try { > + > + if (jeName.equals(application)) { // If application was found > + > + if (JNLPRuntime.isDebug()) > + System.out > + .println("\tAPPLICATION.JNLP has been located within signed JAR. Starting verfication..."); > + > + matcher = new JNLPMatcher( > + inputReader, jnlpReader, > + false); > + } else // Otherwise template was > + // found > + { > + if (JNLPRuntime.isDebug()) > + System.out > + .println("\tAPPLICATION_TEMPLATE.JNLP has been located within signed JAR. Starting verfication..."); > + > + matcher = new JNLPMatcher( > + inputReader, jnlpReader, true); > + } > + > + if (!matcher.isMatch()) > + throw new JNLPMatcherException( > + "Signed Application did not match launching JNLP File"); > + > + if (JNLPRuntime.isDebug()) > + System.out > + .println("\t** Signed Application Verification Successful **"); > + > + break; // break while loop > + > + } catch (Exception e) { > + throw new JNLPMatcherException( > + e.getMessage(), e); > + } > + } > + > + } > + } catch (IOException e) { // 'new JarFile(localFile)' throws an IOException > + > + if (JNLPRuntime.isDebug()) > + e.printStackTrace(); > + > + // After this exception is caught, it is > + // escaped. If this exception is thrown when creating > + // an instance of JarFile, it will skip that jarFile and move on to > + // the next jarFile (if there are any) > + } > + } > + } > + } catch (JNLPMatcherException e) { > + // Throw e if signed JNLP file failed to be verified > + > + // Throwing this exception will fail to initialize the > + // application resulting in the termination of the > + // application > + throw e; > + > + } catch (Exception e) { > + if (JNLPRuntime.isDebug()) > + e.printStackTrace(); > + > + // After this exception is caught, it is escaped. > + // If an exception is thrown while handling the jar file > + // (mainly for JarSigner.verifyJars) > + // it will consider the jar file to be unsigned and skip > + // on to the next jar file (if there are any) > + } > + } > + if (JNLPRuntime.isDebug()) > + System.out.println("ENDING check for signed JNLP file..."); > + } > } > > + > for (JARDesc jarDesc : file.getResources().getJARs()) { > try { > File cachedFile = tracker.getCacheFile(jarDesc.getLocation()); Generally ok ^, But it will definitely goes in after patch1a and after some reproducers will be added. How much time do you have to have this finished? Regards J... and.. study interfaces;) From ptisnovs at redhat.com Mon Jul 18 03:30:34 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Mon, 18 Jul 2011 12:30:34 +0200 Subject: Reviewer needed: (IcedTea6 HEAD) added all required source files for reg.test hotspot/7020373, removed binary stuff Message-ID: <4E240B4A.9010902@redhat.com> Greetings, I'd like to push fix for a regression test hotspot/7020373 into IcedTea6 HEAD (and similar patch to IcedTea7 if it will be approved). This fix contains GenOOMCrashClass.java source written by Marc Schoenefeld (Red Hat), I just fixed two minor issues in it (because this generator can be used for creating various types of classes). The fix also contains changed script file used by JTreg tool to run the regression test. Now this test do the following steps: 1) compile GenOOMCrashClass.java ("class generator") 2) run GenOOMCrashClass java to generate the reproduced class file 3) run the reproducer class file If this fix is applied, the following patch is not needed: patches/jtreg-7020373-add-ignore-tag.patch (This change in Makefile.am is also part of the patch). ChangeLog entry: 2011-07-18 Marc Schoenefeld Pavel Tisnovsky * Makefile.am: added new patch * patches/jtreg-hotspot-Test7020373-fix.patch: Fix for regression test hotspot/7020373, added missing source used to create the reproducer. Can anybody please review this change? Thank you in advance, Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: jtreg-hotspot-7020363_hg.diff Type: text/x-patch Size: 7361 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110718/4bfdfa03/jtreg-hotspot-7020363_hg.diff From smohammad at redhat.com Mon Jul 18 13:37:30 2011 From: smohammad at redhat.com (Saad Mohammad) Date: Mon, 18 Jul 2011 16:37:30 -0400 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E23FACA.3070305@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E23FACA.3070305@redhat.com> Message-ID: <4E24998A.9050507@redhat.com> I have attached the updated copy of Patch1 that involves changes that you recommended. Patch2 has not been attached in this email because I haven't made any changes from my previous email. ...[snip]... >> As you have requested, I have added the copyright headers to >> JNLPMatcher.java and JNLPMatcherTest.java. I am not sure if you would >> also like me to add it to the jnlp files that are being used for test >> purposes. >> The reason why I didn't add the header to the jnlp files is because I >> didn't want anything from the copyright header to interfere with the >> test. >> So, that's why I have only added the headers to the two files but >> please let me know if you would also like me to add them to the jnlp >> files. >> > > Personally I agree with you. I But I think that headers files must be > in each file. But plase wait with this change until jnlpMatcher is in > and also/or patch for classloader(+ reproducers) is in to protect > readability (then I'm afraid it will be necessary). > > Still some concerns remains (100% of new code :D ) Okay, I will wait and then implement this change :) > >> >> Patch1a.patch >> >> >> diff -r 86abbf8be0b1 Makefile.am >> --- a/Makefile.am Thu Jun 23 15:29:45 2011 +0200 >> +++ b/Makefile.am Thu Jul 14 17:11:49 2011 -0400 >> @@ -538,7 +538,14 @@ >> >> run-netx-unit-tests: stamps/netx-unit-tests-compile.stamp \ >> $(JUNIT_RUNNER_JAR) $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) >> - cp >> {$(NETX_UNIT_TEST_SRCDIR),$(NETX_UNIT_TEST_DIR)}/net/sourceforge/jnlp/basic.jnlp >> + filename=" " ; \ >> + cd $(NETX_UNIT_TEST_SRCDIR) ; \ >> + for file in `find . -type f`; do\ >> + filename=`echo $$file `; \ >> + if [[ $$filename != *$.java ]]; then \ >> + cp --parents $$filename $(NETX_UNIT_TEST_DIR) ; \ >> + fi ; \ >> + done ; \ >> cd $(NETX_UNIT_TEST_DIR) ; \ >> class_names= ; \ >> for test in `find -type f` ; do \ > > OK here ^, let i t be. Just FYI, find have argument to find all "NOT > this suffix" options. (negation by ! or attribute not...) Changed this! >> diff -r 86abbf8be0b1 netx/net/sourceforge/jnlp/JNLPMatcher.java >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ b/netx/net/sourceforge/jnlp/JNLPMatcher.java Thu Jul 14 >> 17:11:49 2011 -0400 >> @@ -0,0 +1,275 @@ >> +/* JNLPMatcher.java >> + Copyright (C) 2011 Red Hat, Inc. >> + >> +This file is part of IcedTea. >> + >> +IcedTea is free software; you can redistribute it and/or >> +modify it under the terms of the GNU General Public License as >> published by >> +the Free Software Foundation, version 2. >> + >> +IcedTea is distributed in the hope that it will be useful, >> +but WITHOUT ANY WARRANTY; without even the implied warranty of >> +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >> +General Public License for more details. >> + >> +You should have received a copy of the GNU General Public License >> +along with IcedTea; see the file COPYING. If not, write to >> +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >> Boston, MA >> +02110-1301 USA. >> + >> +Linking this library statically or dynamically with other modules is >> +making a combined work based on this library. Thus, the terms and >> +conditions of the GNU General Public License cover the whole >> +combination. >> + >> +As a special exception, the copyright holders of this library give you >> +permission to link this library with independent modules to produce an >> +executable, regardless of the license terms of these independent >> +modules, and to copy and distribute the resulting executable under >> +terms of your choice, provided that you also meet, for each linked >> +independent module, the terms and conditions of the license of that >> +module. An independent module is a module which is not derived from >> +or based on this library. If you modify this library, you may extend >> +this exception to your version of the library, but you are not >> +obligated to do so. If you do not wish to do so, delete this >> +exception statement from your version. >> + */ >> + >> +package net.sourceforge.jnlp; >> + >> +import java.util.List; >> +import java.io.InputStreamReader; >> +import java.io.PipedInputStream; >> +import java.io.PipedOutputStream; >> +import java.util.ArrayList; >> +import java.util.Arrays; >> +import java.util.Collections; >> +import java.util.LinkedList; >> +import net.sourceforge.nanoxml.XMLElement; >> + >> +/** >> + * To compare launching JNLP file with signed APPLICATION.JNLP or >> + * APPLICATION_TEMPLATE.jnlp. >> + * >> + * Used by net.sourceforge.jnlp.runtime.JNLPCLassLoader >> + */ >> + >> +public final class JNLPMatcher { >> + >> + private final Node appTemplateNode; >> + private final Node launchJNLPNode; >> + private final boolean isTemplate; >> + private String match = null; > WHY oh why String :-/// !!! This should.. have to ..be Boolean > (capital B) sorry, changed this too. I was unaware of wrapper classes :( >> + >> + /** >> + * Public constructor >> + * >> + * @param appTemplate >> + * the reader stream of the signed APPLICATION.jnlp or >> + * APPLICATION_TEMPLATE.jnlp >> + * @param launchJNLP >> + * the reader stream of the launching JNLP file >> + * @param isTemplate >> + * a boolean that specifies if appTemplateFile is a >> template >> + * @throws JNLPMatcherException >> + * if IOException, XMLParseException is thrown >> during parsing; >> + * Or launchJNLP/appTemplate is null >> + */ >> + public JNLPMatcher(InputStreamReader appTemplate, >> InputStreamReader launchJNLP, >> + boolean isTemplate) throws JNLPMatcherException { >> + >> + try { >> + >> + if (appTemplate == null&& launchJNLP == null) >> + throw new NullPointerException( >> + "Template JNLP file and Launching JNLP file >> are both null."); >> + else if (appTemplate == null) >> + throw new NullPointerException("Template JNLP file >> is null."); >> + else if (launchJNLP == null) >> + throw new NullPointerException("Launching JNLP file >> is null."); >> + >> + XMLElement appTemplateXML = new XMLElement(); >> + XMLElement launchJNLPXML = new XMLElement(); >> + >> + // Remove the comments and CDATA from the JNLP file >> + final PipedInputStream pinTemplate = new >> PipedInputStream(); >> + final PipedOutputStream poutTemplate = new >> PipedOutputStream(pinTemplate); >> + appTemplateXML.sanitizeInput(appTemplate, poutTemplate); >> + >> + final PipedInputStream pinJNLPFile = new >> PipedInputStream(); >> + final PipedOutputStream poutJNLPFile = new >> PipedOutputStream(pinJNLPFile); >> + launchJNLPXML.sanitizeInput(launchJNLP, poutJNLPFile); >> + >> + // Parse both files >> + appTemplateXML.parseFromReader(new >> InputStreamReader(pinTemplate)); >> + launchJNLPXML.parseFromReader(new >> InputStreamReader(pinJNLPFile)); >> + >> + // Initialize parent nodes >> + this.appTemplateNode = new Node(appTemplateXML); >> + this.launchJNLPNode = new Node(launchJNLPXML); >> + this.isTemplate = isTemplate; >> + >> + } catch (Exception e) { >> + throw new JNLPMatcherException( >> + "Failed to create an instance of JNLPVerify with >> specified InputStreamReader", >> + e); >> + } >> + } >> + >> + /** >> + * Compares both JNLP files >> + * >> + * @return true if both JNLP files are 'matched', otherwise false >> + */ >> + public boolean isMatch() { >> + >> + if (match == null) >> + match = matchNodes(appTemplateNode, launchJNLPNode) ? >> "true" : "false"; >> + >> + if (match.equals("true")) >> + return true; >> + else >> + return false; >> + } >> + > > This is really an art how NOT to do it :) Ideal solution can be object > wrapping boolean. And we have this one in java...: > > public boolean isMatch() { > > if (match == null){ > match = matchNodes(appTemplateNode, launchJNLPNode) ; > } > return match; > > } > > > Study a little bit about Boolean x boolean and about autoboxing in > Java. No more changes here then is already written (eg do NOT return > BBBBolean from matchNodes) Changed this as recommended. > >> + /** >> + * Compares two Nodes regardless of the order of their >> children/attributes >> + * >> + * @param appTemplate >> + * signed application or template's Node >> + * @param launchJNLP >> + * launching JNLP file's Node >> + * >> + * @return true if both Nodes are 'matched', otherwise false >> + */ >> + private boolean matchNodes(Node appTemplate, Node launchJNLP) { >> + >> + if (appTemplate != null&& launchJNLP != null) { >> + >> + Node templateNode = appTemplate; >> + Node launchNode = launchJNLP; >> + // Store children of Node >> + List appTemplateChild = new >> LinkedList(Arrays.asList(templateNode >> + .getChildNodes())); >> + List launchJNLPChild = new >> LinkedList(Arrays.asList(launchNode >> + .getChildNodes())); >> + >> + // Compare only if both Nodes have the same name, else >> return false >> + if >> (templateNode.getNodeName().equals(launchNode.getNodeName())) { >> + >> + if (appTemplateChild.size() == >> launchJNLPChild.size()) { // Compare >> + >> // children >> + >> + int childLength = appTemplateChild.size(); >> + >> + for (int i = 0; i< childLength;) { >> + for (int j = 0; j< childLength; j++) { >> + boolean isSame = >> matchNodes(appTemplateChild.get(i), >> + launchJNLPChild.get(j)); >> + >> + if (!isSame&& j == childLength - 1) >> + return false; >> + else if (isSame) { // If both child >> matches, remove them from the list of children >> + appTemplateChild.remove(i); >> + launchJNLPChild.remove(j); >> + --childLength; >> + break; >> + } >> + } >> + } >> + >> + if >> (!templateNode.getNodeValue().equals(launchNode.getNodeValue())) { >> + >> + // If it's a template and the template's >> value is NOT '*' >> + if (isTemplate&& >> !templateNode.getNodeValue().equals("*")) >> + return false; >> + // Else if it's not a template, then return >> false >> + else if (!isTemplate) >> + return false; >> + } >> + // Compare attributes of both Nodes >> + return matchAttributes(templateNode, launchNode); >> + } >> + >> + } >> + } >> + return false; >> + } >> + >> + /** >> + * Compares attributes of two Nodes regardless of order >> + * >> + * @param appTemplateNode >> + * signed application or template's Node with attributes >> + * @param launchJNLPNode >> + * launching JNLP file's Node with attributes >> + * >> + * @return true if both Nodes have 'matched' attributes, >> otherwise false >> + */ >> + private boolean matchAttributes(Node templateNode, Node >> launchNode) { >> + >> + if (templateNode != null&& launchNode != null) { >> + >> + ArrayList appTemplateAttributes = >> templateNode.getAttributeNames(); >> + ArrayList launchJNLPAttributes = >> launchNode.getAttributeNames(); >> + > > Same mistake again. Please use interface where-ever it is possible. > > List appTemplateAttributes = templateNode.getAttributeNames(); > List launchJNLPAttributes = launchNode.getAttributeNames(); > > Will serve you well. Changed to List. > >> + Collections.sort(appTemplateAttributes); >> + Collections.sort(launchJNLPAttributes); >> + >> + if (appTemplateAttributes.size() == >> launchJNLPAttributes.size()) { >> + >> + int size = appTemplateAttributes.size(); // Number >> of attributes >> + >> + for (int i = 0; i< size; i++) { >> + >> + if >> (launchJNLPAttributes.get(i).equals(appTemplateAttributes.get(i))) { >> // If both Node's attribute name are the >> + >> // same then compare the values >> + >> + String attribute = launchJNLPAttributes.get(i); >> + boolean isSame = >> templateNode.getAttribute(attribute).equals( // Check if the >> Attribute values match >> + launchNode.getAttribute(attribute)); >> + >> + if (!isTemplate&& !isSame) >> + return false; >> + else if (isTemplate&& !isSame >> +&& !templateNode.getAttribute(attribute).equals("*")) >> + return false; >> + >> + } else >> + // If attributes names do not match, return >> false >> + return false; >> + } >> + return true; >> + } >> + } >> + return false; >> + } >> + >> + /** >> + * Getter for application/template Node >> + * >> + * @return the Node of the signed application/template file >> + */ >> + public Node getAppTemplateNode() { >> + return appTemplateNode; >> + } >> + >> + /** >> + * Getter for launching application Node >> + * >> + * @return the Node of the launching JNLP file >> + */ >> + public Node getLaunchJNLPNode() { >> + return launchJNLPNode; >> + } >> + >> + /** >> + * Getter for isTemplate >> + * >> + * @return true if a signed template is being used for matching; >> otherwise >> + * false. >> + */ >> + public boolean isTemplate() { >> + return isTemplate; >> + } >> +} >> diff -r 86abbf8be0b1 netx/net/sourceforge/jnlp/JNLPMatcherException.java >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ b/netx/net/sourceforge/jnlp/JNLPMatcherException.java Thu Jul >> 14 17:11:49 2011 -0400 >> @@ -0,0 +1,16 @@ >> +package net.sourceforge.jnlp; >> + >> +public class JNLPMatcherException extends Exception >> +{ >> + private static final long serialVersionUID = 1L; >> + >> + public JNLPMatcherException(String message) >> + { >> + super(message); >> + } >> + >> + public JNLPMatcherException(String message, Throwable cause) >> + { >> + super(message, cause); >> + } >> +} >> diff -r 86abbf8be0b1 netx/net/sourceforge/jnlp/Node.java >> --- a/netx/net/sourceforge/jnlp/Node.java Thu Jun 23 15:29:45 2011 >> +0200 >> +++ b/netx/net/sourceforge/jnlp/Node.java Thu Jul 14 17:11:49 2011 >> -0400 >> @@ -19,6 +19,7 @@ >> private XMLElement xml; >> private Node next; >> private Node children[]; >> + private ArrayList attributeNames= null; > > Oh dear :) no No NO > private List attributeNames= null; for sure! Changed this to List too :) > >> >> Node(XMLElement xml) { >> this.xml = xml; >> @@ -60,6 +61,21 @@ >> >> return children; >> } >> + >> + /** >> + * To retrieve all attribute names >> + * @return all attribute names of the Node in ArrayList >> + */ >> + ArrayList getAttributeNames() { > :-/ > > again List getAttributeNames() > > and in this case this is most important! Changed. > >> + if (attributeNames == null) { >> + attributeNames= new ArrayList(); >> + >> + for (Enumeration e = xml.enumerateAttributeNames(); >> e.hasMoreElements();) >> + attributeNames.add(new String((String) >> e.nextElement())); >> + } >> + >> + return attributeNames; >> + } >> >> String getAttribute(String name) { >> return (String) xml.getAttribute(name); >> @@ -86,6 +102,7 @@ >> private ParsedXML tinyNode; >> private Node next; >> private Node children[]; >> + private String attributeNames[]; >> >> Node(ParsedXML tinyNode) { >> this.tinyNode = tinyNode; >> @@ -127,6 +144,19 @@ >> >> return children; >> } >> + >> + String[] getAttributeNames() { >> + if (attributeNames == null) { >> + List list = new ArrayList(); >> + >> + for (Enumeration e = xml.enumerateAttributeNames(); >> e.hasMoreElements();) >> + list.add(new String((String) e.nextElement())); >> + >> + attributeNames = list.toArray(new String[list.size()]); >> + >> + } >> + return attributeNames; >> + } >> >> String getAttribute(String name) { >> return tinyNode.getAttribute(name); > > Generally I'm ok with test. I have just idea to test what happens with > your engine when something unexpected will happen. Eg one of the files > will be un-parse-able (=> matchNodes will proably throw an runtime > exception is match probably also....) . Can you add this tests as > separate patch after this one is in? ( Which will be next round I > suppose;) > Sure, I will work on a separate patch that will implement some more tests. >> diff -r 86abbf8be0b1 >> tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ b/tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java >> Thu Jul 14 17:11:49 2011 -0400 >> @@ -0,0 +1,464 @@ >> +/* JNLPMatcherTest.java >> + Copyright (C) 2011 Red Hat, Inc. >> + > > ...snip... > >> >> Patch2a.patch >> >> ...[snip]... > > Generally ok ^, But it will definitely goes in after patch1a and after > some reproducers will be added. How much time do you have to have this > finished? I have until the first week of September to complete everything. > > Regards J... and.. study interfaces;) I hope this is the 110% for Patch1! ;) -- Cheers, Saad Mohammad -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: Patch1b.patch Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110718/27fc6bfe/Patch1b.patch From ahughes at redhat.com Mon Jul 18 17:03:32 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Tue, 19 Jul 2011 01:03:32 +0100 Subject: Reviewer needed: (IcedTea6 HEAD) added all required source files for reg.test hotspot/7020373, removed binary stuff In-Reply-To: <4E240B4A.9010902@redhat.com> References: <4E240B4A.9010902@redhat.com> Message-ID: <20110719000332.GF23991@rivendell.middle-earth.co.uk> On 12:30 Mon 18 Jul , Pavel Tisnovsky wrote: > Greetings, > > I'd like to push fix for a regression test hotspot/7020373 into IcedTea6 > HEAD > (and similar patch to IcedTea7 if it will be approved). This fix contains > GenOOMCrashClass.java source written by Marc Schoenefeld (Red Hat), I just > fixed two minor issues in it (because this generator can be used for > creating > various types of classes). The fix also contains changed script file used by > JTreg tool to run the regression test. Now this test do the following steps: > > 1) compile GenOOMCrashClass.java ("class generator") > 2) run GenOOMCrashClass java to generate the reproduced class file > 3) run the reproducer class file > > If this fix is applied, the following patch is not needed: > patches/jtreg-7020373-add-ignore-tag.patch > > (This change in Makefile.am is also part of the patch). > > ChangeLog entry: > > 2011-07-18 Marc Schoenefeld > Pavel Tisnovsky > > * Makefile.am: added new patch > * patches/jtreg-hotspot-Test7020373-fix.patch: > Fix for regression test hotspot/7020373, added missing > source used to create the reproducer. > > The indentation looks wrong on the new file. Otherwise, ok. For 7, it will need to go into the forest. > > Can anybody please review this change? > > Thank you in advance, > Pavel > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Mon Jul 18 17:04:22 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Tue, 19 Jul 2011 01:04:22 +0100 Subject: Reviewer needed: (IcedTea6 HEAD) added all required source files for reg.test hotspot/7020373, removed binary stuff In-Reply-To: <4E240B4A.9010902@redhat.com> References: <4E240B4A.9010902@redhat.com> Message-ID: <20110719000422.GG23991@rivendell.middle-earth.co.uk> On 12:30 Mon 18 Jul , Pavel Tisnovsky wrote: > Greetings, > > I'd like to push fix for a regression test hotspot/7020373 into IcedTea6 > HEAD > (and similar patch to IcedTea7 if it will be approved). This fix contains > GenOOMCrashClass.java source written by Marc Schoenefeld (Red Hat), I just > fixed two minor issues in it (because this generator can be used for > creating > various types of classes). The fix also contains changed script file used by > JTreg tool to run the regression test. Now this test do the following steps: > > 1) compile GenOOMCrashClass.java ("class generator") > 2) run GenOOMCrashClass java to generate the reproduced class file > 3) run the reproducer class file > > If this fix is applied, the following patch is not needed: > patches/jtreg-7020373-add-ignore-tag.patch > > (This change in Makefile.am is also part of the patch). > > ChangeLog entry: > > 2011-07-18 Marc Schoenefeld > Pavel Tisnovsky > > * Makefile.am: added new patch > * patches/jtreg-hotspot-Test7020373-fix.patch: > Fix for regression test hotspot/7020373, added missing > source used to create the reproducer. > > > > Can anybody please review this change? > > Thank you in advance, > Pavel > Also, neither of the new files have license headers. This needs fixing. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From jvanek at redhat.com Mon Jul 18 23:47:47 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 19 Jul 2011 08:47:47 +0200 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E24998A.9050507@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E23FACA.3070305@redhat.com> <4E24998A.9050507@redhat.com> Message-ID: <4E252893.8050809@redhat.com> On 07/18/2011 10:37 PM, Saad Mohammad wrote: > I have attached the updated copy of Patch1 that involves changes that you recommended. > Patch2 has not been attached in this email because I haven't made any changes from my previous email. > > ...[snip]... >>> As you have requested, I have added the copyright headers to JNLPMatcher.java and JNLPMatcherTest.java. I am not sure if you would also like me to add it to the jnlp files that are being used for test purposes. >>> The reason why I didn't add the header to the jnlp files is because I didn't want anything from the copyright header to interfere with the test. >>> So, that's why I have only added the headers to the two files but please let me know if you would also like me to add them to the jnlp files. >>> >> >> Personally I agree with you. I But I think that headers files must be in each file. But plase wait with this change until jnlpMatcher is in and also/or patch for classloader(+ reproducers) is in to protect readability (then I'm afraid it will be necessary). >> >> Still some concerns remains (100% of new code :D ) > > Okay, I will wait and then implement this change :) > >> >>> ...snip... >>> for test in `find -type f` ; do \ >> >> OK here ^, let i t be. Just FYI, find have argument to find all "NOT this suffix" options. (negation by ! or attribute not...) > > Changed this! > >>> diff -r 86abbf8be0b1 netx/net/sourceforge/jnlp/JNLPMatcher.java >>> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >>> +++ b/netx/net/sourceforge/jnlp/JNLPMatcher.java Thu Jul 14 17:11:49 2011 -0400 >>> @@ -0,0 +1,275 @@ >>> +/* JNLPMatcher.java >>> + Copyright (C) 2011 Red Hat, Inc. >>> + ...snip... >> >> >> Study a little bit about Boolean x boolean and about autoboxing in Java. No more changes here then is already written (eg do NOT return BBBBolean from matchNodes) > > Changed this as recommended. > >> > >> >> Regards J... and.. study interfaces;) > > I hope this is the 110% for Patch1! ;) 99% ;) > > -- > Cheers, > Saad Mohammad > > > Patch1b.patch > > > diff -r 86abbf8be0b1 Makefile.am > --- a/Makefile.am Thu Jun 23 15:29:45 2011 +0200 > +++ b/Makefile.am Mon Jul 18 15:48:33 2011 -0400 > @@ -538,7 +538,12 @@ > > run-netx-unit-tests: stamps/netx-unit-tests-compile.stamp \ > $(JUNIT_RUNNER_JAR) $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) > - cp {$(NETX_UNIT_TEST_SRCDIR),$(NETX_UNIT_TEST_DIR)}/net/sourceforge/jnlp/basic.jnlp > + filename=" " ; \ > + cd $(NETX_UNIT_TEST_SRCDIR) ; \ > + for file in `find . -type f ! -iname *.java`; do\ > + filename=`echo $$file `; \ > + cp --parents $$filename $(NETX_UNIT_TEST_DIR) ; \ > + done ; \ > cd $(NETX_UNIT_TEST_DIR) ; \ > class_names= ; \ > for test in `find -type f` ; do \ Although I have never problems with clear !, it is used to be much safer to use \! (to prevent shell expansion), and same for *.java should be "*.java" (for second one I can be wrong, but it will not work when in working directory will suddenly be any .java file) > diff -r 86abbf8be0b1 netx/net/sourceforge/jnlp/JNLPMatcher.java ...snip... > + > + /** > + * Compares both JNLP files > + * > + * @return true if both JNLP files are 'matched', otherwise false > + */ > + public boolean isMatch() { > + > + if (match == null) > + match = matchNodes(appTemplateNode, launchJNLPNode) ? true : false; > + > + return match; > + } > + :-/ you had clear code form me:( You do not need to test boolean to return boolean. ^^ Is WRONG. Weather autoboxing is nice or not, Java have it. Then boolean IS Boolean from view of syntax.. public boolean isMatch() { if (match == null){ match = matchNodes(appTemplateNode, launchJNLPNode); } return match; } > + /** ...snip... Everything else looks good, and I'm looking forward to have it in. J. From ptisnovs at redhat.com Tue Jul 19 02:52:11 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Tue, 19 Jul 2011 11:52:11 +0200 Subject: Reviewer needed: backport of javac fix "4917091: javac rejects array over 128 in length" into IcedTea6 HEAD Message-ID: <4E2553CB.7080705@redhat.com> Greetings, I'd like to backport java compiler fix 4917091: javac rejects array over 128 in length" into IcedTea6 HEAD. The behaviour of this fix could be checked by three regression tests contained in the backport. Here's ChangeLog entry: 2011-07-18 Pavel Tisnovsky * Makefile.am: added new patch * NEWS: updated with backport * patches/openjdk/4917091-javac_rejects_array_over_128_in_length.patch: Backport of 4917091. Can anybody please review this backport? Thank you in advance, Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: 4917091_hg_diff.patch Type: text/x-patch Size: 18772 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110719/45dc1bff/4917091_hg_diff.patch From ptisnovs at redhat.com Tue Jul 19 04:19:44 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Tue, 19 Jul 2011 13:19:44 +0200 Subject: Reviewer needed: (IcedTea6 HEAD) added all required source files for reg.test hotspot/7020373, removed binary stuff In-Reply-To: <20110719000332.GF23991@rivendell.middle-earth.co.uk> References: <4E240B4A.9010902@redhat.com> <20110719000332.GF23991@rivendell.middle-earth.co.uk> Message-ID: <4E256850.4080500@redhat.com> Dr Andrew John Hughes wrote: > On 12:30 Mon 18 Jul , Pavel Tisnovsky wrote: >> Greetings, >> >> I'd like to push fix for a regression test hotspot/7020373 into IcedTea6 >> HEAD >> (and similar patch to IcedTea7 if it will be approved). This fix contains >> GenOOMCrashClass.java source written by Marc Schoenefeld (Red Hat), I just >> fixed two minor issues in it (because this generator can be used for >> creating >> various types of classes). The fix also contains changed script file used by >> JTreg tool to run the regression test. Now this test do the following steps: >> >> 1) compile GenOOMCrashClass.java ("class generator") >> 2) run GenOOMCrashClass java to generate the reproduced class file >> 3) run the reproducer class file >> >> If this fix is applied, the following patch is not needed: >> patches/jtreg-7020373-add-ignore-tag.patch >> >> (This change in Makefile.am is also part of the patch). >> >> ChangeLog entry: >> >> 2011-07-18 Marc Schoenefeld >> Pavel Tisnovsky >> >> * Makefile.am: added new patch >> * patches/jtreg-hotspot-Test7020373-fix.patch: >> Fix for regression test hotspot/7020373, added missing >> source used to create the reproducer. >> >> > > The indentation looks wrong on the new file. Otherwise, ok. > > For 7, it will need to go into the forest. > Andrew, thank you for your review, I'll fix it. Pavel From ptisnovs at icedtea.classpath.org Tue Jul 19 04:19:43 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 19 Jul 2011 11:19:43 +0000 Subject: /hg/icedtea6: Fix for regression test hotspot/7020373, added mis... Message-ID: changeset 50eeb180dd77 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=50eeb180dd77 author: ptisnovs date: Tue Jul 19 13:19:30 2011 +0200 Fix for regression test hotspot/7020373, added missing source used to create the reproducer, removed unecessary patch patches/jtreg-7020373-add-ignore-tag.patch diffstat: ChangeLog | 10 + Makefile.am | 4 +- patches/jtreg-7020373-add-ignore-tag.patch | 9 - patches/jtreg-hotspot-Test7020373-fix.patch | 185 ++++++++++++++++++++++++++++ 4 files changed, 197 insertions(+), 11 deletions(-) diffs (239 lines): diff -r 406c0d434ca3 -r 50eeb180dd77 ChangeLog --- a/ChangeLog Fri Jul 15 08:53:07 2011 -0400 +++ b/ChangeLog Tue Jul 19 13:19:30 2011 +0200 @@ -1,3 +1,13 @@ +2011-07-19 Marc Schoenefeld + Pavel Tisnovsky + + * Makefile.am: added new patch + * patches/jtreg-hotspot-Test7020373-fix.patch: + Fix for regression test hotspot/7020373, added missing + source used to create the reproducer. + * patches/jtreg-7020373-add-ignore-tag.patch: + Removed because it is not longer needed. + 2011-07-15 Denis Lila * Makefile.am: Added patch. diff -r 406c0d434ca3 -r 50eeb180dd77 Makefile.am --- a/Makefile.am Fri Jul 15 08:53:07 2011 -0400 +++ b/Makefile.am Tue Jul 19 13:19:30 2011 +0200 @@ -361,11 +361,11 @@ patches/openjdk/7036220-shark_llvm_29_headers.patch \ patches/openjdk/7029152-String_intrinsics_miss_optimization.patch \ patches/openjdk/6711682-JCheckBox_in_JTable_does_not_respond_to_click.patch \ - patches/jtreg-7020373-add-ignore-tag.patch \ patches/openjdk/6758179-D3D_AlphaComposite_is_applied_incorrectly.patch \ patches/jtreg-ConstructDeflaterInput-fix.patch \ patches/openjdk/6613904-GroupLayout_createParallelGroup_null_arg.patch \ - patches/openjdk/7049339-anyblit-broken.patch + patches/openjdk/7049339-anyblit-broken.patch \ + patches/jtreg-hotspot-Test7020373-fix.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r 406c0d434ca3 -r 50eeb180dd77 patches/jtreg-7020373-add-ignore-tag.patch --- a/patches/jtreg-7020373-add-ignore-tag.patch Fri Jul 15 08:53:07 2011 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ ---- openjdk.orig/hotspot/test/runtime/7020373/Test7020373.sh 2011-07-08 15:04:32.000000000 +0200 -+++ openjdk/hotspot/test/runtime/7020373/Test7020373.sh 2011-07-08 15:01:13.000000000 +0200 -@@ -3,6 +3,7 @@ - ## - ## @test - ## @bug 7020373 -+## @ignore The original test contains binary jar-file - ## @key cte_test - ## @summary JSR rewriting can overflow memory address size variables - ## @run shell Test7020373.sh diff -r 406c0d434ca3 -r 50eeb180dd77 patches/jtreg-hotspot-Test7020373-fix.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/jtreg-hotspot-Test7020373-fix.patch Tue Jul 19 13:19:30 2011 +0200 @@ -0,0 +1,187 @@ +diff -Nu ./GenOOMCrashClass.java /mnt/jqa/jck/oom/GenOOMCrashClass.java +--- /dev/null 1970-01-01 01:00:00.000000000 +0100 ++++ openjdk/hotspot/test/runtime/7020373/GenOOMCrashClass.java 2011-07-15 16:23:04.373764000 +0200 +@@ -0,0 +1,157 @@ ++/* ++ * Copyright (c) 2011, Red Hat Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2, or (at your option) ++ * any later version. ++ * ++ * 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 for more details. ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ */ ++ ++import java.applet.Applet; ++import java.io.IOException; ++ ++import com.sun.org.apache.bcel.internal.Constants; ++import com.sun.org.apache.bcel.internal.generic.AALOAD; ++import com.sun.org.apache.bcel.internal.generic.ACONST_NULL; ++import com.sun.org.apache.bcel.internal.generic.ALOAD; ++import com.sun.org.apache.bcel.internal.generic.ArrayType; ++import com.sun.org.apache.bcel.internal.generic.ClassGen; ++import com.sun.org.apache.bcel.internal.generic.ConstantPoolGen; ++import com.sun.org.apache.bcel.internal.generic.GOTO; ++import com.sun.org.apache.bcel.internal.generic.ICONST; ++import com.sun.org.apache.bcel.internal.generic.IFEQ; ++import com.sun.org.apache.bcel.internal.generic.ILOAD; ++import com.sun.org.apache.bcel.internal.generic.INVOKESTATIC; ++import com.sun.org.apache.bcel.internal.generic.ISTORE; ++import com.sun.org.apache.bcel.internal.generic.InstructionHandle; ++import com.sun.org.apache.bcel.internal.generic.InstructionList; ++import com.sun.org.apache.bcel.internal.generic.JSR; ++import com.sun.org.apache.bcel.internal.generic.MethodGen; ++import com.sun.org.apache.bcel.internal.generic.RETURN; ++import com.sun.org.apache.bcel.internal.generic.Type; ++ ++ ++public class GenOOMCrashClass { ++ ++ public static String genOOMCrashClass(int maxmeth, int nums/*String[] a*/) throws Exception { ++ String theClassFile = "OOMCrashClass"+nums+"_"+maxmeth; ++ ClassGen cg = new ClassGen(theClassFile, "java.applet.Applet", ++ "", Constants.ACC_PUBLIC | Constants.ACC_SUPER, null); ++ ConstantPoolGen cp = cg.getConstantPool(); // cg creates constant pool ++ ++ // int br0 = cp.addClass("marc.schoenefeld.2008"); ++ ++ int br2 = cp.addMethodref("java.lang.Integer", "parseInt", ++ "(Ljava/lang/String;)I"); ++ ++ Type[] argtype = new Type[] { ++ new ArrayType(Type.STRING, 1) ++ }; ++ ++ for (int j = 0; j < maxmeth; j++) { ++ ++ InstructionList il = new InstructionList(); ++ ++ String methodName = maxmeth == 1 ? "main" : "main" + j; ++ MethodGen mg = new MethodGen(Constants.ACC_STATIC ++ | Constants.ACC_PUBLIC,// access flags ++ Type.VOID, // return type ++ argtype, new String[] { "argv" }, // arg ++ // names ++ methodName, theClassFile, // method, class ++ il, cp); ++ ++ il.append(new ALOAD(0)); ++ il.append(new ICONST(0)); ++ il.append(new AALOAD()); // load something unpredictable, no folding ++ // please ++ ++ il.append(new INVOKESTATIC(br2)); ++ il.append(new ISTORE(1)); ++ ++ GOTO gototail = new GOTO(null); ++ ++ il.append(gototail); ++ ++ InstructionHandle ret = il.append(new RETURN()); ++ InstructionHandle ih = null; ++ for (int i = 0; i < nums; i++) { ++ ih = il.append(new ILOAD(1)); ++ IFEQ ifeq = new IFEQ(null); ++ il.append(ifeq); ++ ++ JSR jsr = new JSR(null); ++ GOTO next = new GOTO(null); ++ ++ InstructionHandle h_jsr = il.append(jsr); ++ InstructionHandle h_goto = il.append(next); ++ InstructionHandle h_ret = il.append(new RETURN()); ++ ++ InstructionHandle danach = il.append(new ACONST_NULL()); ++ jsr.setTarget(h_ret); ++ next.setTarget(danach); ++ ++ il.append(new GOTO(ih)); ++ ifeq.setTarget(ret); ++ ret = ih; ++ } ++ ++ gototail.setTarget(ih); ++ ++ mg.setMaxStack(Integer.MAX_VALUE); // Needed stack size ++ ++ mg.setMaxLocals(); ++ cg.addMethod(mg.getMethod()); ++ } ++ /* Add public method, i.e. empty constructor */ ++ cg.addEmptyConstructor(Constants.ACC_PUBLIC); ++ ++ /* Get JavaClass object and dump it to file. */ ++ try { ++ System.out.println("dumping:"+theClassFile); ++ cg.getJavaClass().dump(theClassFile + ".class"); ++ } catch (java.io.IOException e) { ++ System.err.println(e); ++ } ++ return theClassFile; ++ } ++ ++ public static void main(String[] a) throws Exception { ++ int maxmeth_default = 250; ++ int nums_default = 20; ++ int maxmeth; ++ int nums; ++ try { ++ maxmeth = Integer.parseInt(a[0]); ++ } ++ catch (Exception e) { ++ maxmeth = maxmeth_default; ++ } ++ try { ++ nums = Integer.parseInt(a[1]); ++ } ++ catch (Exception e) { ++ nums = nums_default; ++ } ++ String classname = genOOMCrashClass(maxmeth,nums); ++ System.out.println("Generated"); ++ // System.out.println(a[0]); ++ // System.out.println("Loading"); ++ ++ // long t = System.currentTimeMillis(); ++ // Class g2 = Class.forName(classname); ++ // long u = System.currentTimeMillis(); ++ // System.out.println(g2 + ":" + (u - t)); ++ } ++ ++} +diff -Nu ./Test7020373.sh /mnt/jqa/jck/oom/Test7020373.sh +--- openjdk.orig/hotspot/test/runtime/7020373/Test7020373.sh 2011-07-15 15:41:47.000000000 +0200 ++++ openjdk/hotspot/test/runtime/7020373/Test7020373.sh 2011-07-15 16:37:04.696613000 +0200 +@@ -3,6 +3,7 @@ + ## + ## @test + ## @bug 7020373 ++## @ignore The original test contains binary jar-file + ## @key cte_test + ## @summary JSR rewriting can overflow memory address size variables + ## @run shell Test7020373.sh +@@ -60,8 +60,13 @@ + + ${TESTJAVA}${FS}bin${FS}java ${BIT_FLAG} -version + +-${TESTJAVA}${FS}bin${FS}jar xvf ${TESTSRC}${FS}testcase.jar ++# first step: compile GenOOMCrash generator ++${TESTJAVA}${FS}bin${FS}javac GenOOMCrashClass.java + ++# second step: run the generator to create test class ++${TESTJAVA}${FS}bin${FS}java GenOOMCrashClass 1 4000 ++ ++# third step: run the reproducer + ${TESTJAVA}${FS}bin${FS}java ${BIT_FLAG} OOMCrashClass4000_1 > test.out 2>&1 + + cat test.out From ptisnovs at redhat.com Tue Jul 19 05:32:46 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Tue, 19 Jul 2011 14:32:46 +0200 Subject: Fix for IcedTea7 [was Re: Reviewer needed: (IcedTea6 HEAD) added all required source files for reg.test hotspot/7020373, removed binary stuff] In-Reply-To: <20110719000332.GF23991@rivendell.middle-earth.co.uk> References: <4E240B4A.9010902@redhat.com> <20110719000332.GF23991@rivendell.middle-earth.co.uk> Message-ID: <4E25796E.2070601@redhat.com> Dr Andrew John Hughes wrote: > For 7, it will need to go into the forest. Sure, hg diff generated against IcedTea7-forest (hotspot) is stored in an attachment (please note that the class binary file was really deleted, but diff just said it's changed :-) Here's ChangeLog entry for IcedTea7 HEAD: 2011-07-19 Marc Schoenefeld Pavel Tisnovsky * Makefile.am: (HOTSPOT_CHANGESET): Update regression test hotspot/7020373: added missing source used to create the reproducer, removed now unused binary file. (HOTSPOT_SHA256SUM): Likewise Is it possible to push such changes to IcedTea7 HEAD & IcedTea7 forest please? Thank you in advance, Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: icedtea7-hotspot.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110719/a89b823a/icedtea7-hotspot.diff From asu at redhat.com Tue Jul 19 05:51:48 2011 From: asu at redhat.com (Andrew Su) Date: Tue, 19 Jul 2011 08:51:48 -0400 (EDT) Subject: [RFC][Icedtea-web]: Add code for handling policy files. In-Reply-To: <225191425.1201147.1310141548992.JavaMail.root@zmail01.collab.prod.int.phx2.redhat.com> Message-ID: <1927923940.1420541.1311079908739.JavaMail.root@zmail01.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > From: "Andrew Su" > To: "distro-pkg-dev" > Sent: Friday, July 8, 2011 12:12:28 PM > Subject: Re: [RFC][Icedtea-web]: Add code for handling policy files. > ----- Original Message ----- --snip-- > > Ping. > > 2011-07-08 Andrew Su > > * netx/net/sourceforge/jnlp/util/FileUtils.java: > (writeContentToFile): New method. Writes string content to file. > (readContentFromFile): New method. Reads a file and returns a String. > * netx/net/sourceforge/jnlp/policy/ParseException.java: New class. > * netx/net/sourceforge/jnlp/policy/Policy.java: New class. Used to > represent a policy from a policy file. > * netx/net/sourceforge/jnlp/policy/PolicyFormatter.java: New class. > Formats Policy to a string representation of a policy file or parses a > File/String to convert into Policy objects. > * netx/net/sourceforge/jnlp/policy/PolicyUtils.java: New class. > Methods for handling repetitive tasks when working with policy files. > * netx/net/sourceforge/jnlp/policy/permission/Permission.java: New > class. This represents a general permission. > * netx/net/sourceforge/jnlp/policy/permission/AWTPermission.java > * netx/net/sourceforge/jnlp/policy/permission/AllPermission.java > * netx/net/sourceforge/jnlp/policy/permission/AudioPermission.java > * netx/net/sourceforge/jnlp/policy/permission/AuthPermission.java > * > netx/net/sourceforge/jnlp/policy/permission/DelegationPermission.java > * netx/net/sourceforge/jnlp/policy/permission/FilePermission.java > * netx/net/sourceforge/jnlp/policy/permission/LoggingPermission.java > * netx/net/sourceforge/jnlp/policy/permission/NetPermission.java > * > netx/net/sourceforge/jnlp/policy/permission/PrivateCredentialPermission.java > * netx/net/sourceforge/jnlp/policy/permission/PropertyPermission.java > * netx/net/sourceforge/jnlp/policy/permission/ReflectPermission.java > * netx/net/sourceforge/jnlp/policy/permission/RuntimePermission.java > * netx/net/sourceforge/jnlp/policy/permission/SQLPermission.java > * netx/net/sourceforge/jnlp/policy/permission/SSLPermission.java > * netx/net/sourceforge/jnlp/policy/permission/SecurityPermission.java > * > netx/net/sourceforge/jnlp/policy/permission/SerializablePermission.java > * netx/net/sourceforge/jnlp/policy/permission/ServicePermission.java > * netx/net/sourceforge/jnlp/policy/permission/SocketPermission.java: > New classes. These are the default permission. > * netx/net/sourceforge/jnlp/policy/principal/Principal.java: New > class. This represents a general principal. > * netx/net/sourceforge/jnlp/policy/principal/KerberosPrincipal.java > * netx/net/sourceforge/jnlp/policy/principal/X500Principal.java: > New classes. These are the default principals. Ping again. -------------- next part -------------- A non-text attachment was scrubbed... Name: PolicyHandling.patch Type: text/x-patch Size: 118700 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110719/a0920a53/PolicyHandling.patch From dbhole at redhat.com Tue Jul 19 06:03:38 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Tue, 19 Jul 2011 09:03:38 -0400 Subject: [RFC][Icedtea-web]: Add code for handling policy files. In-Reply-To: <1927923940.1420541.1311079908739.JavaMail.root@zmail01.collab.prod.int.phx2.redhat.com> References: <225191425.1201147.1310141548992.JavaMail.root@zmail01.collab.prod.int.phx2.redhat.com> <1927923940.1420541.1311079908739.JavaMail.root@zmail01.collab.prod.int.phx2.redhat.com> Message-ID: <20110719130337.GA17111@redhat.com> * Andrew Su [2011-07-19 09:01]: > > > ----- Original Message ----- > > From: "Andrew Su" > > To: "distro-pkg-dev" > > Sent: Friday, July 8, 2011 12:12:28 PM > > Subject: Re: [RFC][Icedtea-web]: Add code for handling policy files. > > ----- Original Message ----- > --snip-- > > > > Ping. > > > > 2011-07-08 Andrew Su > > > > * netx/net/sourceforge/jnlp/util/FileUtils.java: > > (writeContentToFile): New method. Writes string content to file. > > (readContentFromFile): New method. Reads a file and returns a String. > > * netx/net/sourceforge/jnlp/policy/ParseException.java: New class. > > * netx/net/sourceforge/jnlp/policy/Policy.java: New class. Used to > > represent a policy from a policy file. > > * netx/net/sourceforge/jnlp/policy/PolicyFormatter.java: New class. > > Formats Policy to a string representation of a policy file or parses a > > File/String to convert into Policy objects. > > * netx/net/sourceforge/jnlp/policy/PolicyUtils.java: New class. > > Methods for handling repetitive tasks when working with policy files. > > * netx/net/sourceforge/jnlp/policy/permission/Permission.java: New > > class. This represents a general permission. > > * netx/net/sourceforge/jnlp/policy/permission/AWTPermission.java > > * netx/net/sourceforge/jnlp/policy/permission/AllPermission.java > > * netx/net/sourceforge/jnlp/policy/permission/AudioPermission.java > > * netx/net/sourceforge/jnlp/policy/permission/AuthPermission.java > > * > > netx/net/sourceforge/jnlp/policy/permission/DelegationPermission.java > > * netx/net/sourceforge/jnlp/policy/permission/FilePermission.java > > * netx/net/sourceforge/jnlp/policy/permission/LoggingPermission.java > > * netx/net/sourceforge/jnlp/policy/permission/NetPermission.java > > * > > netx/net/sourceforge/jnlp/policy/permission/PrivateCredentialPermission.java > > * netx/net/sourceforge/jnlp/policy/permission/PropertyPermission.java > > * netx/net/sourceforge/jnlp/policy/permission/ReflectPermission.java > > * netx/net/sourceforge/jnlp/policy/permission/RuntimePermission.java > > * netx/net/sourceforge/jnlp/policy/permission/SQLPermission.java > > * netx/net/sourceforge/jnlp/policy/permission/SSLPermission.java > > * netx/net/sourceforge/jnlp/policy/permission/SecurityPermission.java > > * > > netx/net/sourceforge/jnlp/policy/permission/SerializablePermission.java > > * netx/net/sourceforge/jnlp/policy/permission/ServicePermission.java > > * netx/net/sourceforge/jnlp/policy/permission/SocketPermission.java: > > New classes. These are the default permission. > > * netx/net/sourceforge/jnlp/policy/principal/Principal.java: New > > class. This represents a general principal. > > * netx/net/sourceforge/jnlp/policy/principal/KerberosPrincipal.java > > * netx/net/sourceforge/jnlp/policy/principal/X500Principal.java: > > New classes. These are the default principals. > > Ping again. Hi, This is on my todo list but will take a while since the whole application is attached as one big patch... please break it down in the future. Cheers, Deepak > diff --git a/netx/net/sourceforge/jnlp/policy/ParseException.java b/netx/net/sourceforge/jnlp/policy/ParseException.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/ParseException.java > @@ -0,0 +1,34 @@ > +/* ParseException.java -- Exception for parsing errors. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy; > + > +/** > + * Exception for caught parsing errors. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public class ParseException extends Exception { > + public ParseException(String msg) { > + super(msg); > + } > + > + public ParseException(String msg, int lineNumber) { > + super(msg + "[Line: " + lineNumber + "]"); > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/Policy.java b/netx/net/sourceforge/jnlp/policy/Policy.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/Policy.java > @@ -0,0 +1,228 @@ > +/* Policy.java -- Store information about a policy. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy; > + > +import java.net.MalformedURLException; > +import java.net.URL; > +import java.util.ArrayList; > + > +import net.sourceforge.jnlp.policy.permission.Permission; > +import net.sourceforge.jnlp.policy.principal.Principal; > + > +/** > + * This class is to store information about a policy. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public class Policy { > + /* who signed this policy */ > + private String signedBy; > + /* codebase that this policy affects */ > + private URL codeBase; > + /* list of permissions for this policy */ > + private final ArrayList permissionList; > + /* list of principals for this policy */ > + private final ArrayList principalList; > + > + private String displayName; > + > + /** > + * Create an empty policy. > + * > + * @throws MalformedURLException > + */ > + public Policy() throws MalformedURLException { > + this(null, null); > + } > + > + /** > + * Create a policy with default signed by and codebase. > + * > + * @param signedBy the signer > + * @param codeBase the codebase > + * @throws MalformedURLException codebase is not a valid URL. > + */ > + public Policy(String signedBy, String codeBase) > + throws MalformedURLException { > + > + setCodeBase(codeBase); > + setSignedBy(signedBy); > + > + this.permissionList = new ArrayList(); > + this.principalList = new ArrayList(); > + } > + > + /** > + * Add a permission to the list of permissions. > + * > + * @param permission permission to be added. > + */ > + public void addPermission(Permission permission) { > + if (permission == null) { > + throw new NullPointerException("Permission can not be null."); > + } > + this.permissionList.add(permission); > + } > + > + /** > + * Add a principal to the list for principals. > + * > + * @param principal principal to be added. > + */ > + public void addPrincipal(Principal principal) { > + if (principal == null) { > + throw new NullPointerException("Principal can not be null."); > + } > + this.principalList.add(principal); > + } > + > + /** > + * Get the codebase associated with this policy. > + * > + * @return a URL representing the codebase, null if no codebase set. > + */ > + public URL getCodeBase() { > + return this.codeBase; > + } > + > + /** > + * Get the display name for this Policy > + * > + * @return a String representing the custom display name, null if no display > + * name set. > + */ > + public String getDisplayName() { > + return this.displayName; > + } > + > + /** > + * Return the current list permissions. (Not a copy) > + * > + * @return ArrayList of Permission for this Policy. > + */ > + public ArrayList getPermissions() { > + return this.permissionList; > + } > + > + /** > + * Return the current list principals. (Not a copy) > + * > + * @return ArrayList of Principals for this Policy. > + */ > + public ArrayList getPrincipals() { > + return this.principalList; > + } > + > + /** > + * Get the signer for this policy. > + * > + * @return String representing the signer, null if no signer assigned. > + */ > + public String getSignedBy() { > + return this.signedBy; > + } > + > + /** > + * Remove a permission. > + * > + * @param permission Permission to remove from this policy. > + * @return true if removal was successful, false otherwise. > + */ > + public boolean removePermission(Permission permission) { > + return this.permissionList.remove(permission); > + } > + > + /** > + * Removes a principal. > + * > + * @param principal Principal to remove from this policy. > + * @return true if removal was successful, false otherwise. > + */ > + public boolean removePrincipal(Principal principal) { > + return this.principalList.remove(principal); > + } > + > + /** > + * Set the codebase for this policy. > + * > + * @param codeBase String containing the codebase. > + * @throws MalformedURLException codebase is not a valid URL. > + */ > + public void setCodeBase(String codeBase) throws MalformedURLException { > + URL url = null; > + if (codeBase != null) { > + codeBase = codeBase.trim(); > + url = codeBase.length() == 0 ? null : new URL(codeBase); > + } > + > + this.codeBase = url; > + } > + > + /** > + * Set the display name of the policy. > + * > + * @param displayName a custom display name. > + */ > + public void setDisplayName(String displayName) { > + if (displayName != null) { > + displayName = displayName.trim(); > + } > + > + int i = 0; > + boolean valid = false; > + > + while (displayName != null > + && i < displayName.length() > + && (valid = PolicyUtils > + .isValidNameChar(displayName.charAt(i++)))) { > + ; > + } > + > + if (valid) { > + this.displayName = displayName; > + } else { > + this.displayName = null; > + } > + } > + > + /** > + * Set who signed this policy. > + * > + * @param signedBy String containing the name of the signer. > + */ > + public void setSignedBy(String signedBy) { > + // FIXME: Check if signer is valid (Check keystore?) > + > + if (signedBy != null) { > + signedBy = signedBy.trim(); > + } > + > + if (signedBy != null && signedBy.length() == 0) { > + signedBy = null; > + } > + > + this.signedBy = signedBy; > + } > + > + @Override > + public String toString() { > + return getDisplayName() != null ? getDisplayName() : "Policy " > + + this.permissionList.size() + " " + this.principalList.size(); > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/PolicyFormatter.java b/netx/net/sourceforge/jnlp/policy/PolicyFormatter.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/PolicyFormatter.java > @@ -0,0 +1,831 @@ > +/* PolicyFormatter.java -- Format and parse a policy file. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy; > + > +import java.io.File; > +import java.io.IOException; > +import java.net.MalformedURLException; > +import java.util.LinkedList; > + > +import net.sourceforge.jnlp.policy.permission.Permission; > +import net.sourceforge.jnlp.policy.principal.Principal; > +import net.sourceforge.jnlp.util.FileUtils; > + > +/** > + * This class can format and parse a policy file. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public class PolicyFormatter { > + > + /* policy used for formatting */ > + private Policy[] policies = null; > + > + /* keyword constants. */ > + private static final String strGrant = "grant"; > + private static final String strSignedBy = "signedby"; > + private static final String strCodeBase = "codebase"; > + private static final String strPrincipal = "principal"; > + private static final String strPermission = "permission"; > + private static final String strName = "#NAME:"; > + > + /** > + * Create a new PolicyFormatter. > + */ > + public PolicyFormatter() { > + this(null); > + } > + > + /** > + * Create a new PolicyFormatter. > + * > + * @param policies array of Policy to format. > + */ > + public PolicyFormatter(Policy[] policies) { > + setPolicies(policies); > + } > + > + /** > + * Check if we detect the "permission" keyword. > + * > + * @param input String to check. > + * @param i Index to begin checking from. > + * @return true if keyword permission is found, false > + * otherwise. > + */ > + private boolean checkIfPermission(String input, int i) { > + final int index = input.indexOf(PolicyFormatter.strPermission, i); > + if (!input.startsWith(PolicyFormatter.strPermission, i)) { > + return false; > + } > + > + final int newIndex = index + PolicyFormatter.strPermission.length(); > + if (newIndex > input.length()) { > + return false; > + } > + // We want permission followed by a space, newline, return carriage, or > + // tab. > + return PolicyUtils.isSpace(input.charAt(newIndex)); > + } > + > + /** > + * Check if we detect the "principal" keyword. > + * > + * @param input String to check. > + * @param i Index to begin checking from. > + * @return true if keyword principal is found, false otherwise. > + */ > + private boolean checkIfPrincipal(String input, int i) { > + final int index = input.indexOf(PolicyFormatter.strPrincipal, i); > + if (!input.startsWith(PolicyFormatter.strPrincipal, i)) { > + return false; > + } > + > + final int newIndex = index + PolicyFormatter.strPrincipal.length(); > + if (newIndex > input.length()) { > + return false; > + } > + > + // We want principal followed by a space, newline, return carriage, or > + // tab. > + return PolicyUtils.isSpace(input.charAt(newIndex)); > + } > + > + /** > + * Get the codeBase value if it begins at the current index. > + * > + * @param input String to check. > + * @param i Index to begin checking from. > + * @return true if keyword codebase is found, false otherwise. > + * @throws ParseException Value for codebase exist but is not properly > + * quoted. > + */ > + private String findCodeBase(final String input, final String lcaseInput, > + int i) throws ParseException { > + > + final int newIndex = i + PolicyFormatter.strCodeBase.length(); > + String result = null; > + > + if (lcaseInput.startsWith(PolicyFormatter.strCodeBase, i) > + && newIndex < input.length() > + && PolicyUtils.isSpace(input.charAt(newIndex))) { > + result = PolicyUtils.getQuotedText(input, newIndex); > + } > + > + return result; > + } > + > + /** > + * Given the input converted to lowercase, check if it contains the keyword > + * "grant" at location i. > + * > + * @param input String to check. > + * @param i Index to begin checking from. > + * @return true if keyword grant is found, false otherwise. > + */ > + private boolean findGrant(String input, int i) { > + > + if (!input.startsWith(PolicyFormatter.strGrant, i)) { > + return false; > + } > + > + // We want grant followed by a space, newline, return carriage, or tab. > + final int newIndex = i + PolicyFormatter.strGrant.length(); > + if (newIndex > input.length()) { > + return false; > + } > + final char c = input.charAt(newIndex); > + return PolicyUtils.isSpace(c) || c == '{'; > + } > + > + /** > + * Get the signedBy value if it begins at the current index. > + * > + * @param input String to check. > + * @param i Index to begin checking from. > + * @return true if keyword signedBy is found, false otherwise. > + * @throws ParseException Value for SignedBy exist but is not properly > + * quoted. > + */ > + private String findSignedBy(final String input, final String lcaseInput, > + int i) throws ParseException { > + > + final int newIndex = i + PolicyFormatter.strSignedBy.length(); > + String result = null; > + > + if (lcaseInput.startsWith(PolicyFormatter.strSignedBy, i) > + && newIndex < input.length() > + && PolicyUtils.isSpace(input.charAt(newIndex))) { > + result = PolicyUtils.getQuotedText(input, newIndex); > + } > + > + return result; > + } > + > + /** > + * This method will return a string representation of a properly formatted > + * policy file. > + * > + * @return > + */ > + public String format() { > + if (this.policies == null) { > + throw new NullPointerException("Must have policies."); > + } > + > + final StringBuffer sb = new StringBuffer(); > + boolean havePrev = false; > + > + for (final Policy p : this.policies) { > + if (havePrev) { > + sb.append("\n\n"); > + } > + > + havePrev = false; > + > + if (p == null) { > + continue; // We'll just skip it if it is null. > + } > + > + String name = p.getDisplayName(); > + if (name != null) { > + sb.append(PolicyUtils.makeComment(PolicyFormatter.strName > + + name) > + + "\n"); > + } > + sb.append("grant"); > + if (p.getSignedBy() != null) { > + sb.append(" signedBy "); > + sb.append(PolicyUtils.quote(PolicyUtils.escape(p.getSignedBy()))); > + havePrev = true; > + } > + > + if (p.getCodeBase() != null) { > + if (havePrev) { > + sb.append(","); > + } > + > + sb.append(" codeBase "); > + sb.append(PolicyUtils.quote(p.getCodeBase().toString())); > + havePrev = true; > + } > + > + // Add the principals. > + for (final Principal principal : p.getPrincipals()) { > + if (!principal.isValid()) { > + continue; > + } > + > + if (havePrev) { > + sb.append(",\n "); > + } > + > + sb.append(" principal "); > + name = principal.getDisplayName(); > + if (name != null) { > + sb.append(PolicyUtils.makeComment(PolicyFormatter.strName > + + name) > + + " "); > + } > + > + sb.append(principal.getFullClassName() + " "); > + sb.append(PolicyUtils.quote(principal.getName())); > + havePrev = true; > + } > + > + havePrev = false; > + sb.append(" {\n"); > + > + // Add permissions here. > + for (final Permission permission : p.getPermissions()) { > + if (!permission.isValid()) { > + continue; > + } > + > + if (havePrev) { > + sb.append(";\n"); > + } > + sb.append(" permission "); > + name = permission.getDisplayName(); > + if (name != null) { > + sb.append(PolicyUtils.makeComment(PolicyFormatter.strName > + + name) > + + " "); > + } > + sb.append(permission.getFullClassName()); > + if (permission.getTarget() != null) { > + sb.append(" " > + + PolicyUtils.quote(PolicyUtils.escape(permission > + .getTarget()))); > + } > + if (permission.getAction() != null) { > + sb.append(", " + PolicyUtils.quote(permission.getAction())); > + } > + > + if (permission.getSignedBy() != null) { > + sb.append(", signedBy "); > + sb.append(PolicyUtils.quote(PolicyUtils.escape(permission > + .getSignedBy()))); > + } > + > + havePrev = true; > + } > + > + sb.append((havePrev ? ";" : "") + "\n};"); > + havePrev = true; > + > + } > + > + return sb.toString(); > + } > + > + /** > + * Get all the characters that make up a class name. > + * > + * @param input String to search in. > + * @param i index to start searching from. > + * @return String representing a class name, null if not found. > + */ > + private String getClassName(String input, int i) { > + /* > + * FIXME: A valid class name must be of the form: > + * ^([a-zA-Z_][\w_]*\.)*([a-zA-Z_][\w_]*)$ > + */ > + i = PolicyUtils.skipSpace(input, i); > + > + String fullClassName = null; > + if (i < input.length()) { > + final int initial = i; > + while (i < input.length() > + && PolicyUtils.isValidClassChar(input.charAt(i))) { > + i++; > + } > + fullClassName = input.substring(initial, i); > + if (fullClassName.length() == 0) { > + fullClassName = null; > + } > + } > + > + return fullClassName; > + } > + > + /** > + * Get the permission's target. > + * > + * @param input String to search in. > + * @param i offset to start searching from. > + * @return String representing a permission target, null if not found. > + * @throws ParseException Value for Target exist but is not properly quoted. > + */ > + private String getPermissionTarget(String input, int i) > + throws ParseException { > + String result = null; > + if (i < input.length()) { > + i = PolicyUtils.skipSpace(input, i); > + result = PolicyUtils.getQuotedText(input, i); > + } > + > + return result; > + } > + > + /** > + * Get the principal name. > + * > + * @param input String to search in. > + * @param i Index to start searching from. > + * @return String representing a principal name, null if not found. > + * @throws ParseException Value for Name exist but is not properly quoted. > + */ > + private String getPrincipalName(String input, int i) throws ParseException { > + i = PolicyUtils.skipSpace(input, i); > + > + String fullClassName = null; > + if (i < input.length()) { > + fullClassName = PolicyUtils.getQuotedText(input, i); > + } > + return fullClassName; > + } > + > + /** > + * Parse a given file for policies. > + * > + * @param file File to read from. > + * @return Array of Policy parsed from contents in file. > + * @throws IOException Error with reading the file. > + * @throws ParseException Policy file is not properly formatted. > + */ > + public Policy[] parse(File file) throws IOException, ParseException { > + final String content = FileUtils.readContentFromFile(file); > + return parse(content); > + } > + > + /** > + * parse a given String for policies. > + * > + * @param input > + * @return > + * @throws MalformedURLException Codebase specified in file is invalid. > + */ > + public Policy[] parse(final String input) throws ParseException, > + MalformedURLException { > + /* lower case version of input, used for calls to StartsWith. */ > + final String lcaseInput = input.toLowerCase(); > + final LinkedList policies = new LinkedList(); > + > + /* Store which part of the string we're working with. */ > + boolean foundGrant = false; > + boolean inBody = false; > + boolean signedBy = false; > + boolean codeBase = false; > + boolean principalFound = false; > + boolean permissionFound = false; > + boolean permissionClassFound = false; > + boolean permissionTargetFound = false; > + boolean action = false; > + boolean reachedEnd = false; > + boolean commaFound = false; > + > + /* If there was a previous entry. */ > + boolean havePrev = false; > + > + /* Used for keeping track of comments */ > + boolean fslashFound = false; > + boolean asteriskFound = false; > + boolean comment = false; > + > + int index = 0; > + int prevIndex = -1; > + > + /* Store the display names. */ > + String policyName = null; > + String principalName = null; > + String permissionName = null; > + > + /* > + * Store the different permission field. Needed because we search for > + * each part in a separate iteration. > + */ > + String permissionClass = null; > + String permissionTarget = null; > + String permissionSignedBy = null; > + String permissionAction = null; > + > + Policy policy = null; > + > + // Begin parsing! > + while (index < input.length()) { > + if (prevIndex == index) { > + // This should never happen.. but just in case. > + throw new InternalError("Infinite Loop."); > + } > + prevIndex = index; > + > + // Go to next significant character (space is insignificant here) > + if (!((index = PolicyUtils.skipSpace(input, index)) < input > + .length())) { > + break; > + } > + > + final char c = input.charAt(index); > + > + // Comments take priority > + switch (c) { > + case '*': > + if (fslashFound && !comment) { > + comment = true; > + fslashFound = false; > + } else { > + asteriskFound = true; > + } > + index++; > + continue; > + case '/': > + if (asteriskFound && comment) { > + comment = false; > + asteriskFound = false; > + } else { > + fslashFound = true; > + } > + index++; > + continue; > + default: > + fslashFound = false; > + asteriskFound = false; > + } > + > + if (comment) { > + if (!foundGrant > + && policyName == null > + && (policyName = parseNameComment(input, index)) != null) { > + index += PolicyFormatter.strName.length() > + + policyName.length(); > + } else if (principalFound > + && principalName == null > + && (principalName = parseNameComment(input, index)) != null) { > + index += PolicyFormatter.strName.length() > + + principalName.length(); > + } else if (permissionFound > + && permissionName == null > + && (permissionName = parseNameComment(input, index)) != null) { > + index += PolicyFormatter.strName.length() > + + permissionName.length(); > + } else { > + index++; > + } > + } else { > + switch (c) { > + case '\r': > + case '\n': > + case '\t': > + case ' ': > + index++; > + continue; > + case ',': > + if (commaFound) { > + throw new ParseException("Unexpected ',' detected."); > + } > + index++; > + commaFound = true; > + continue; > + case '{': > + if (inBody || principalFound) { > + throw new ParseException("Unexpected '{' detected."); > + } > + signedBy = false; > + codeBase = false; > + commaFound = false; > + inBody = true; > + index++; > + continue; > + case '}': > + if (!inBody) { > + throw new ParseException("Unexpected '}' detected."); > + } > + inBody = false; > + reachedEnd = true; > + index++; > + continue; > + case ';': > + if (inBody && !permissionFound || !inBody > + && !reachedEnd) { > + throw new ParseException("Unexpected ';' detected."); > + } > + > + if (inBody && permissionFound) { > + if (!permissionClassFound) { > + throw new ParseException( > + "Missing permission class."); > + } > + > + final Permission permission = Permission > + .newInstanceOf(permissionClass); > + permission.setTarget(permissionTarget); > + permission.setAction(permissionAction); > + permission.setSignedBy(permissionSignedBy); > + permission.setDisplayName(permissionName); > + > + if (!permission.isValid()) { > + throw new ParseException( > + "Invalid permission provided. [Class:" > + + permission.getFullClassName() > + + ", Target:" > + + PolicyUtils.quote(permission > + .getTarget()) > + + ", Action:" > + + PolicyUtils.quote(permission > + .getAction()) > + + ", SignedBy:" > + + PolicyUtils.quote(permission > + .getSignedBy()) + "]"); > + } > + > + policy.addPermission(permission); > + > + // Reset all markers. > + permissionFound = false; > + permissionClassFound = false; > + permissionTargetFound = false; > + > + permissionClass = null; > + permissionTarget = null; > + permissionSignedBy = null; > + permissionAction = null; > + > + permissionName = null; > + > + signedBy = false; > + action = false; > + } > + > + if (reachedEnd) { > + // Reached the end of a policy (might have more) > + havePrev = false; > + reachedEnd = false; > + foundGrant = false; > + policies.add(policy); > + policy = null; > + } > + index++; > + continue; > + } > + if (!inBody) { > + if (!foundGrant) { > + if (!(foundGrant = findGrant(lcaseInput, index))) { > + throw new ParseException( > + "Missing GRANT keyword. (Case insensitive)"); > + } > + if (policy != null) { // This should never happen. > + throw new RuntimeException( > + "Something has gone horribly wrong."); > + } > + > + index += PolicyFormatter.strGrant.length(); > + final int curIndex = index; > + index = PolicyUtils.skipSpace(input, index); > + if (curIndex == index) { > + throw new ParseException( > + "Missing GRANT keyword. (Case insensitive)"); > + } > + policy = new Policy(); // Prepare a new policy to use. > + policy.setDisplayName(policyName); > + policyName = null; > + } else { // Check for signedBy, codebase and principal. > + /* > + * We are still not in the body, check for signedBy, > + * codebase, and principal. Also need to check for comma > + * between each entry. > + */ > + final String strSignedBy = findSignedBy(input, > + lcaseInput, index); > + if (!signedBy > + && strSignedBy != null > + && !principalFound > + && (havePrev && commaFound || !havePrev > + && !commaFound)) { > + commaFound = false; > + signedBy = true; > + index += PolicyFormatter.strSignedBy.length(); > + index = input.indexOf(strSignedBy, index) > + + strSignedBy.length(); > + policy.setSignedBy(PolicyUtils.unescape(PolicyUtils > + .unquote(strSignedBy))); > + havePrev = true; > + continue; > + } else if (signedBy && strSignedBy != null) { > + throw new ParseException( > + "Multiple signedBy detected."); > + } > + > + final String strCodeBase = findCodeBase(input, > + lcaseInput, index); > + if (!codeBase > + && strCodeBase != null > + && !principalFound > + && (havePrev && commaFound || !havePrev > + && !commaFound)) { > + commaFound = false; > + codeBase = true; > + index += PolicyFormatter.strCodeBase.length(); > + index = input.indexOf(strCodeBase, index) > + + strCodeBase.length(); > + policy.setCodeBase(PolicyUtils.unescape(PolicyUtils > + .unquote(strCodeBase))); > + havePrev = true; > + continue; > + } else if (codeBase && strCodeBase != null) { > + throw new ParseException( > + "Multiple codeBase detected."); > + } > + > + /* > + * If we get here, then we either have a principal or > + * something illegal, so we will check for principal > + * first then a catch all to throw error if we find > + * something we are not expecting. > + */ > + if (!principalFound > + && (principalFound = checkIfPrincipal( > + lcaseInput, index)) > + && (havePrev && commaFound || !havePrev > + && !commaFound)) { > + commaFound = false; > + index += PolicyFormatter.strPrincipal.length(); > + > + continue; > + } > + > + if (principalFound) { > + final String principalClass = getClassName(input, > + index); > + if (principalClass == null) { > + throw new ParseException( > + "Could not find principal class."); > + } > + index = input.indexOf(principalClass, index) > + + principalClass.length(); > + > + String pName = getPrincipalName(input, index); > + if (pName == null) { > + throw new ParseException( > + "Principal name not found."); > + } > + index = input.indexOf(pName, index) > + + pName.length(); > + pName = PolicyUtils.unescape(PolicyUtils > + .unquote(pName)); > + > + final Principal principal = Principal > + .newInstanceOf(principalClass); > + principal.setName(pName); > + policy.addPrincipal(principal); > + principal.setDisplayName(principalName); > + > + havePrev = true; > + principalFound = false; > + principalName = null; > + > + continue; > + } > + > + // If we reach here then it means we found something > + // that is invalid. Such as unknown keywords. > + throw new ParseException( > + "Invalid character/keyword detected starting at index " > + + index); > + } > + } else { > + if (!permissionFound > + && checkIfPermission(lcaseInput, index)) { > + permissionFound = true; > + index += PolicyFormatter.strPermission.length(); > + continue; > + } > + > + if (permissionFound && !permissionClassFound) { > + permissionClass = getClassName(input, index); > + if (permissionClass == null) { > + throw new ParseException( > + "Could not find permission class."); > + } > + index = input.indexOf(permissionClass, index) > + + permissionClass.length(); > + permissionClassFound = true; > + continue; > + } > + > + if (permissionClassFound && !permissionTargetFound) { > + if (!commaFound > + && (permissionTarget = getPermissionTarget( > + input, index)) != null) { > + index = input.indexOf(permissionTarget, index) > + + permissionTarget.length(); > + permissionTarget = PolicyUtils.unescape(PolicyUtils > + .unquote(permissionTarget)); > + permissionTargetFound = true; > + } else { > + throw new ParseException("Could not find target."); > + } > + continue; > + } > + > + if (permissionTargetFound && commaFound) { > + // Check for Action or signedBy whichever comes first. > + commaFound = false; > + > + permissionSignedBy = findSignedBy(input, lcaseInput, > + index); > + if (!signedBy && permissionSignedBy != null) { > + signedBy = true; > + index = input.indexOf(permissionSignedBy, index) > + + permissionSignedBy.length(); > + permissionSignedBy = PolicyUtils > + .unescape(PolicyUtils > + .unquote(permissionSignedBy)); > + continue; > + } else if (signedBy && permissionSignedBy != null) { > + throw new ParseException( > + "Multiple signedBy detected."); > + } > + > + permissionAction = PolicyUtils.getQuotedText(input, > + index); > + if (!signedBy && !action && permissionAction != null) { > + action = true; > + index += permissionAction.length(); > + permissionAction = PolicyUtils.unescape(PolicyUtils > + .unquote(permissionAction)); > + continue; > + } else if ((signedBy || action) > + && permissionAction != null) { > + throw new ParseException( > + "signedBy found before ACTION or multiple ACTION found."); > + } > + > + throw new ParseException( > + "Unexpected input from policy file."); > + } > + > + throw new ParseException( > + "End of permission expected, but found more stuff." > + + index); > + } > + } > + } > + > + if (foundGrant) { > + throw new ParseException("Missing body."); > + } > + > + return policies.toArray(new Policy[policies.size()]); > + } > + > + /** > + * Get comment name from input. > + * > + * @param input > + * @param i > + * @return name or null if not found. > + */ > + private String parseNameComment(String input, int i) { > + final StringBuffer buf = new StringBuffer(); > + if (input.startsWith(PolicyFormatter.strName, i)) { > + i += PolicyFormatter.strName.length(); > + char c; > + while (PolicyUtils.isValidNameChar(c = input.charAt(i++))) { > + buf.append(c); > + } > + } > + if (buf.length() > 0) { > + return buf.toString(); > + } else { > + return null; > + } > + } > + > + /** > + * This sets the policy file to be used when formatting. This does NOT use > + * copies, but the actual array passed in. Modifying this array's content > + * while formatting will yield undetermined results. > + * > + * @param policies > + */ > + public void setPolicies(Policy[] policies) { > + this.policies = policies; > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/PolicyUtils.java b/netx/net/sourceforge/jnlp/policy/PolicyUtils.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/PolicyUtils.java > @@ -0,0 +1,194 @@ > +/* PolicyUtils.java -- Provides some utilities for working with policy file. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy; > + > +/** > + * This class provides some utility functions for working with policy files. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public class PolicyUtils { > + /** > + * This escapes all quotation marks. > + * > + * @param str string to be escaped. > + * @return a string with its double quotes escaped. > + */ > + public static String escape(String str) { > + return str.replaceAll("\"", "\\\\\""); > + } > + > + /** > + * This will grab text enclosed in quotation, and it also checks for escaped > + * quotations. Will return null if no quotations found. > + * > + * @param input String to search in. > + * @param i Index to start searching from. > + * @return String containing text enclosed with quotations, null otherwise. > + * @throws ParseException newline found within quotes, or reached end of > + * file and no closing quotes. > + */ > + public static String getQuotedText(final String input, int i) > + throws ParseException { > + char c = input.charAt(i); > + > + /* > + * We are skipping all the spaces here until we reach the first non > + * blank character. It would be ideal if we can keep track of how much > + * spaces we skipped so that we don't have to re-check later. But this > + * can be overcome by doing an "indexOf" search for the value returned. > + */ > + while (i < input.length() && isSpace(c = input.charAt(i))) { > + i++; > + } > + > + String result = null; > + if (c == '\"') { > + /* > + * Count the number of consecutive backslashes. If we have an odd > + * number of backslashes, followed by double quotes that means it's > + * an escaped character. > + */ > + int bs = 0; > + final int initial = i; > + while (++i < input.length() > + && ((c = input.charAt(i)) != '\"' || bs % 2 != 0)) { > + if (c == '\r' || c == '\n') { > + throw new ParseException( > + "End of line reached, could not find closing quotations."); > + } else if (c == '\\') { > + bs++; > + } else { > + bs = 0; > + } > + } > + if (i++ > input.length()) { > + throw new ParseException( > + "End of input reached, could not find closing quotations."); > + } > + > + result = input.substring(initial, i); > + } > + > + return result; > + } > + > + /** > + * Check if character is a space, tab, newline, or return carriage. > + * > + * @param c character to check. > + * @return true if character is a space, tab, newline, or return carriage, > + * false otherwise. > + */ > + public static boolean isSpace(char c) { > + switch (c) { > + case ' ': > + case '\t': > + case '\r': > + case '\n': > + return true; > + default: > + return false; > + } > + } > + > + /** > + * Check if the character is a valid class name character. [a-zA-Z0-9_\.] > + * > + * @param c character to check. > + * @return true if it is a valid class name character, false otherwise. > + */ > + public static boolean isValidClassChar(char c) { > + return isValidNameChar(c) || c == '_' || c == '.'; > + } > + > + /** > + * Check if character is valid for names. [a-zA-Z0-9] > + * > + * @param c character to check. > + * @return true if character is a valid name character, false otherwise. > + */ > + public static boolean isValidNameChar(char c) { > + > + return c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c >= '0' > + && c <= '9'; > + > + } > + > + /** > + * Convert given string to a policy file styled comment. > + * > + * @param str string to turn into a comment. > + * @return a comment string > + */ > + public static String makeComment(String str) { > + return "/* " + str + " */"; > + } > + > + /** > + * Surround the given string in quotations. > + * > + * @param str string to quote > + * @return Quoted String > + */ > + public static String quote(String str) { > + return "\"" + str + "\""; > + } > + > + /** > + * Get the next index which is a non-space character. > + * > + * @param input String to check. > + * @param i index to begin checking from. > + * @return the next non whitespace character's index. > + */ > + public static int skipSpace(final String input, int i) { > + while (i < input.length() && isSpace(input.charAt(i))) { > + i++; > + } > + return i; > + } > + > + /** > + * This converts all the escaped quotation marks back to original unescaped > + * version. > + * > + * @param str String to unescape. > + * @return a string with its escaped quotation unescaped. > + */ > + public static String unescape(String str) { > + return str.replaceAll("\\\\\"", "\""); > + } > + > + /** > + * Remove quotations from the given string. > + * > + * @param str String to unquote. > + * @return String with first leading and first trailing double quotes > + * removed. > + */ > + public static String unquote(String str) { > + if (str.charAt(0) != '"' || str.charAt(str.length() - 1) != '"') { > + // FIXME: Maybe we could just return the string as is? > + throw new IllegalArgumentException("String is not quoted"); > + } > + > + return str.substring(1, str.length() - 1); > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/permission/AWTPermission.java b/netx/net/sourceforge/jnlp/policy/permission/AWTPermission.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/permission/AWTPermission.java > @@ -0,0 +1,45 @@ > +/* AWTPermission.java -- Represents AWTPermission permission. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy.permission; > + > +/** > + * This class represents the AWTPermission permission. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public final class AWTPermission extends Permission { > + > + /** > + * Create a new AWTPermission. > + */ > + public AWTPermission() { > + super("java.awt.AWTPermission", new String[] { "accessClipboard", > + "accessEventQueue", "accessSystemTray", "createRobot", > + "fullScreenExclusive", "listenToAllAWTEvents", > + "readDisplayPixels", "replaceKeyboardFocusManager", > + "setAppletStub", "setWindowAlwaysOnTop", > + "showWindowWithoutWarningBanner", "toolkitModality", > + "watchMousePointer" }, null); > + } > + > + @Override > + public AWTPermission newInstance() { > + return new AWTPermission(); > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/permission/AllPermission.java b/netx/net/sourceforge/jnlp/policy/permission/AllPermission.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/permission/AllPermission.java > @@ -0,0 +1,44 @@ > +/* AllPermission.java -- Represents AllPermission permission. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy.permission; > + > +/** > + * This class represents the AllPermission permission. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public final class AllPermission extends Permission { > + > + /** > + * Create a new AllPermission. > + */ > + public AllPermission() { > + super("java.security.AllPermission", null, null); > + } > + > + @Override > + public AllPermission newInstance() { > + return new AllPermission(); > + } > + > + @Override > + public boolean validTarget(String target) { > + return target == null || target.trim().length() == 0; > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/permission/AudioPermission.java b/netx/net/sourceforge/jnlp/policy/permission/AudioPermission.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/permission/AudioPermission.java > @@ -0,0 +1,40 @@ > +/* AudioPermission.java -- Represents AudioPermission permission. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy.permission; > + > +/** > + * This class represents the AudioPermission permission. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public final class AudioPermission extends Permission { > + > + /** > + * Create a new AudioPermission. > + */ > + public AudioPermission() { > + super("javax.sound.sampled.AudioPermission", new String[] { "play", > + "record" }, null); > + } > + > + @Override > + public AudioPermission newInstance() { > + return new AudioPermission(); > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/permission/AuthPermission.java b/netx/net/sourceforge/jnlp/policy/permission/AuthPermission.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/permission/AuthPermission.java > @@ -0,0 +1,71 @@ > +/* AuthPermission.java -- Represents AuthPermission permission. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy.permission; > + > +/** > + * This class represents the AuthPermission permission. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public final class AuthPermission extends Permission { > + > + /** > + * Create a new AuthPermission. > + */ > + public AuthPermission() { > + super("javax.security.auth.AuthPermission", > + new String[] { "doAs", "doAsPrivileged", "getSubject", > + "getSubjectFromDomainCombiner", "setReadOnly", > + "modifyPrincipals", "modifyPublicCredentials", > + "modifyPrivateCredentials", "refreshCredential", > + "destroyCredential", "createLoginContext.{name}", > + "getLoginConfiguration", "setLoginConfiguration", > + "createLoginConfiguration.{name}", > + "refreshLoginConfiguration" }, null); > + } > + > + @Override > + public AuthPermission newInstance() { > + return new AuthPermission(); > + } > + > + @Override > + public boolean validTarget(String target) { > + boolean isValid = super.validTarget(target); > + > + /* > + * Need to handle special cases: "createLoginContext.{name}" > + * "createLoginConfiguration.{name}" > + */ > + > + if (target != null) > + target = target.trim(); > + > + if (!isValid && target != null && target.length() > 0) { > + if (!target.endsWith(".")) { > + isValid = target.startsWith("createLoginContext.") > + || target.equals("createLoginContext") > + || target.startsWith("createLoginConfiguration.") > + || target.equals("createLoginConfiguration"); > + } > + } > + > + return isValid; > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/permission/DelegationPermission.java b/netx/net/sourceforge/jnlp/policy/permission/DelegationPermission.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/permission/DelegationPermission.java > @@ -0,0 +1,75 @@ > +/* DelegationPermission.java -- Represents DelegationPermission permission. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy.permission; > + > +import net.sourceforge.jnlp.policy.PolicyUtils; > + > +/** > + * This class represents the DelegationPermission permission. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public final class DelegationPermission extends Permission { > + > + /** > + * Create a new DelegationPermission. > + */ > + public DelegationPermission() { > + super("javax.security.auth.kerberos.DelegationPermission", null, null); > + } > + > + @Override > + public DelegationPermission newInstance() { > + return new DelegationPermission(); > + } > + > + @Override > + public boolean validTarget(String target) { > + if (target != null) { > + target = target.trim(); > + } > + boolean isValid = false; > + if (target != null && target.length() > 0) { > + StringBuilder sb = new StringBuilder(); > + for (int index = 0; index < target.length();) { > + isValid = false; > + sb.setLength(0); > + char c = target.charAt(index); > + for (int i = index; i < target.length() > + && !PolicyUtils.isSpace(c = target.charAt(i));) { > + sb.append(c); > + index = ++i; > + } > + > + try { > + String s = PolicyUtils.unquote(sb.toString()); > + isValid = s.length() > 0 && s.indexOf('\"') == -1; > + if (!isValid) > + break; > + } catch (IllegalArgumentException e) { > + break; > + } > + > + if (PolicyUtils.isSpace(c)) > + index++; > + } > + } > + return isValid; > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/permission/FilePermission.java b/netx/net/sourceforge/jnlp/policy/permission/FilePermission.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/permission/FilePermission.java > @@ -0,0 +1,46 @@ > +/* FilePermission.java -- Represents FilePermission permission. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy.permission; > + > +/** > + * This class represents the FilePermission permission. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public final class FilePermission extends Permission { > + > + /** > + * Create a new FilePermission. > + */ > + public FilePermission() { > + super("java.io.FilePermission", new String[] { "<>" }, > + new String[] { "read", "write", "delete", "execute" }); > + } > + > + @Override > + public FilePermission newInstance() { > + return new FilePermission(); > + } > + > + @Override > + public boolean validTarget(String target) { > + return super.validTarget(target) > + || (target != null && target.trim().length() > 0); > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/permission/LoggingPermission.java b/netx/net/sourceforge/jnlp/policy/permission/LoggingPermission.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/permission/LoggingPermission.java > @@ -0,0 +1,40 @@ > +/* LoggingPermission.java -- Represents LoggingPermission permission. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy.permission; > + > +/** > + * This class represents the LoggingPermission permission. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public class LoggingPermission extends Permission { > + > + /** > + * Create a new LoggingPermission. > + */ > + public LoggingPermission() { > + super("java.util.logging.LoggingPermission", > + new String[] { "control" }, null); > + } > + > + @Override > + public LoggingPermission newInstance() { > + return new LoggingPermission(); > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/permission/NetPermission.java b/netx/net/sourceforge/jnlp/policy/permission/NetPermission.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/permission/NetPermission.java > @@ -0,0 +1,43 @@ > +/* NetPermission.java -- Represents NetPermission permission. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy.permission; > + > +/** > + * This class represents the NetPermission permission. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public final class NetPermission extends Permission { > + > + /** > + * Create a new NetPermission. > + */ > + public NetPermission() { > + super("java.net.NetPermission", new String[] { > + "setDefaultAuthenticator", "requestPasswordAuthentication", > + "specifyStreamHandler", "setProxySelector", "getProxySelector", > + "setCookieHandler", "getCookieHandler", "setResponseCache", > + "getResponseCache" }, null); > + } > + > + @Override > + public NetPermission newInstance() { > + return new NetPermission(); > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/permission/Permission.java b/netx/net/sourceforge/jnlp/policy/permission/Permission.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/permission/Permission.java > @@ -0,0 +1,447 @@ > +/* Permission.java -- Represents a general permission. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy.permission; > + > +import java.util.HashSet; > + > +import net.sourceforge.jnlp.policy.PolicyUtils; > + > +/** > + * This class represents a general Permission. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public class Permission { > + /* This is the class which all permissions should extend. */ > + private static final Class c; > + private static final String canonClassName; > + static { > + try { > + c = Class.forName("java.security.Permission"); > + } catch (final ClassNotFoundException e) { > + // This should never happen.. > + throw new RuntimeException( > + "We can't find the permission class. Die here."); > + } > + canonClassName = c.getCanonicalName(); > + } > + > + /* Default permissions */ > + private static Permission[] DEFAULT_PERMISSIONS = new Permission[] { > + new AllPermission(), new AudioPermission(), new AuthPermission(), > + new AWTPermission(), new DelegationPermission(), > + new FilePermission(), new LoggingPermission(), new NetPermission(), > + new PrivateCredentialPermission(), new PropertyPermission(), > + new ReflectPermission(), new RuntimePermission(), > + new SecurityPermission(), new SerializablePermission(), > + new ServicePermission(), new SocketPermission(), > + new SQLPermission(), new SSLPermission(), }; > + > + /** > + * Returns an array of default permissions. > + * > + * @return a copy of the default permissions. > + */ > + public static Permission[] getDefaults() { > + final Permission[] permissions = new Permission[DEFAULT_PERMISSIONS.length]; > + for (int i = 0; i < permissions.length; i++) { > + permissions[i] = DEFAULT_PERMISSIONS[i].newInstance(); > + } > + > + return permissions; > + } > + > + /** > + * This is used to verify that this is a valid permission class. However if > + * the class can not be found during the current runtime, it is assumed > + * valid. > + * > + * @param fullClassName class name to validate > + * @return true if class is valid, false otherwise. > + */ > + public static boolean isValidClass(String fullClassName) { > + boolean isValid = false; > + // Lazy check. > + for (final Permission p : DEFAULT_PERMISSIONS) { > + if (p.getFullClassName().equals(fullClassName)) { > + return true; > + } > + } > + > + try { > + // Get the class if it exists. Otherwise an exception will be > + // thrown. > + final Class clazz = Class.forName(fullClassName, false, null); > + > + for (final Class i : clazz.getClasses()) { > + final String canon = i.getCanonicalName(); > + if (canon != null && canon.equals(canonClassName)) { > + isValid = true; > + break; > + } > + } > + > + } catch (final ClassNotFoundException e) { > + isValid = fullClassName > + .matches("^([a-zA-Z_][\\w_]*\\.)*([a-zA-Z_][\\w_]*)$"); > + } > + > + return isValid; > + } > + > + /** > + * Return a Permission instance which is of the same type as argument. > + * > + * @param permission permission to create a new instance of. > + * @return an instance of the given permission. (Permission with the same > + * fullClassName.) > + */ > + public static Permission newInstanceOf(Permission permission) { > + return permission != null ? newInstanceOf(permission.getFullClassName()) > + : null; > + } > + > + /** > + * Returns a Permission which is represented by fullClassName. > + * > + * @param fullClassName name of class to get. > + * @return permission with the given fullClassName. > + */ > + public static Permission newInstanceOf(String fullClassName) { > + if (fullClassName != null) { > + fullClassName = fullClassName.trim(); > + } > + > + if (fullClassName == null || fullClassName != null > + && fullClassName.length() == 0) { > + return null; > + } > + > + for (final Permission p : DEFAULT_PERMISSIONS) { > + if (p.getFullClassName().equals(fullClassName)) { > + return p.newInstance(); > + } > + } > + > + return new Permission(fullClassName, null, null); > + } > + > + private final String className; > + private final String fullClassName; > + private final String[] targets; > + > + private final String[] actions; > + > + private String target; > + > + private String action; // FIXME: Actions can be more than one. > + > + private String signedBy = null; > + > + private String displayName = null; > + > + /** > + * Creates a new Permission. > + * > + * @param fullClassName full class name > + * @param targets targets this class have > + * @param actions actions this class have. > + */ > + public Permission(String fullClassName, String[] targets, String[] actions) { > + // Can't call isValidClass since while creating defaults, the default is > + // not set. > + if (fullClassName == null > + || !fullClassName > + .matches("^([a-zA-Z_][\\w_]*\\.)*([a-zA-Z_][\\w_]*)$")) { > + throw new IllegalArgumentException( > + "Class name must not be null and must match: ^([a-zA-Z_][\\w_]*\\.)*([a-zA-Z_][\\w_]*)$"); > + } > + > + final String[] className = fullClassName.split("\\."); > + this.className = className[className.length - 1]; > + this.fullClassName = fullClassName; > + this.targets = targets; > + this.actions = actions; > + } > + > + /** > + * Get the action that has been set for this permission. > + * > + * @return a comma separated string of action, null if no action exist. > + */ > + public String getAction() { > + if (this.action != null) { > + StringBuilder sb = new StringBuilder(); > + String[] actions = this.action.split(","); > + for (String s : actions) { > + String val = s.trim(); > + > + if (val.length() > 0 && sb.length() > 0) > + sb.append(", "); > + sb.append(val); > + } > + return sb.toString(); > + } > + > + return this.action; > + } > + > + /** > + * Get the actions associated with this permission. > + * > + * @return array of actions, null if no actions exist > + */ > + public final String[] getActions() { > + return this.actions; > + } > + > + /** > + * Get the class name. > + * > + * @return class name > + */ > + public final String getClassName() { > + return this.className; > + } > + > + /** > + * Get the display name for this permission. > + * > + * @return String representing the display name, null otherwise. > + */ > + public final String getDisplayName() { > + return this.displayName; > + } > + > + /** > + * Get the full class name. > + * > + * @return full class name. > + */ > + public final String getFullClassName() { > + return this.fullClassName; > + } > + > + /** > + * Get the signed by value that was set. > + * > + * @return signer for permission. > + */ > + > + public final String getSignedBy() { > + return this.signedBy; > + } > + > + /** > + * Get the target that has been set for this permission. > + * > + * @return target assigned to this permission, null if not set. > + */ > + public String getTarget() { > + return this.target; > + } > + > + /** > + * Get the targets associated with this permission. > + * > + * @return array of targets this permisison has, null if not set. > + */ > + public final String[] getTargets() { > + return this.targets; > + } > + > + /** > + * Checks whether this permission is valid. It is considered valid if both > + * the target and action are valid. > + * > + * @return true if it has a valid fullClassName, target and action, false > + * otherwise. > + */ > + public boolean isValid() { > + return validTarget(this.target) && validAction(this.action) > + && isValidClass(getFullClassName()); > + } > + > + /** > + * Return a new instance of the permission. > + * > + * @return a new instance of this permission. > + */ > + public Permission newInstance() { > + return newInstanceOf(this); > + } > + > + /** > + * Set the action for this permission. > + * > + * @param action action to assign to this permission. > + */ > + public void setAction(String action) { > + if (action != null) { > + action = action.trim(); > + action.toLowerCase(); > + } > + > + if (action != null && action.length() > 0) { > + HashSet hs = new HashSet(); > + for (String s : action.split("\\s*,\\s*")) { > + hs.add(s.trim()); > + } > + action = ""; > + for (String s : hs) { > + if (s.length() > 0 && action.length() > 0) > + action += ", "; > + action += s; > + } > + > + } else { > + action = null; > + } > + > + this.action = action; > + } > + > + /** > + * Set the display name for this permission. > + * > + * @param displayName display name to use. > + */ > + public void setDisplayName(String displayName) { > + if (displayName != null) { > + displayName = displayName.trim(); > + } > + > + int i = 0; > + boolean valid = false; > + > + while (displayName != null > + && i < displayName.length() > + && (valid = PolicyUtils > + .isValidNameChar(displayName.charAt(i++)))) { > + ; > + } > + > + if (valid) { > + this.displayName = displayName; > + } else { > + this.displayName = null; > + } > + } > + > + /** > + * Set the signed by value, value will be trimmed and set to null when > + * appropriate. > + * > + * @param signedBy signer of this permission. > + */ > + public final void setSignedBy(String signedBy) { > + if (signedBy != null) { > + signedBy = signedBy.trim(); > + } > + > + if (signedBy != null && signedBy.length() == 0) { > + signedBy = null; > + } > + > + this.signedBy = signedBy; > + } > + > + /** > + * Set the target for this Permission. > + * > + * @param target target to assign to this permission. > + */ > + public void setTarget(String target) { > + if (target != null) { > + target = target.trim(); > + } > + > + if (target != null && target.length() == 0) { > + target = null; > + } > + > + this.target = target; > + } > + > + @Override > + public final String toString() { > + return (getDisplayName() != null ? getDisplayName() : getClassName()) > + + (isValid() ? "" : "*"); > + } > + > + /** > + * Check if given Action is valid. > + * > + * @param action Action to be checked. > + * @return true if action is valid, false otherwise. > + */ > + public boolean validAction(String action) { > + boolean isValid = false; > + boolean isDefault = false; > + if (action != null) { > + action = action.trim().toLowerCase(); > + } > + > + for (Permission p : DEFAULT_PERMISSIONS) { > + isDefault = p.getFullClassName().equals(this.getFullClassName()); > + if (isDefault) > + break; > + } > + > + if (action != null && action.length() > 0 && this.actions != null) { > + for (String s : action.split("\\s*,\\s*")) { > + isValid = false; > + for (String defaultAction : getActions()) { > + if (defaultAction.equalsIgnoreCase(s.trim())) { > + isValid = true; > + break; > + } > + } > + } > + } else { > + isValid = (!isDefault && this.actions == null) > + || this.actions == null > + && (action == null || action.length() == 0); > + } > + > + return isValid; > + } > + > + /** > + * Check if a given target is valid. > + * > + * @param target Target to be checked. > + * @return true if target is valid, false otherwise. > + */ > + public boolean validTarget(String target) { > + boolean isValid = false; > + if (target != null) { > + target = target.trim(); > + } > + > + if (target != null && target.length() > 0) { > + for (int i = 0; this.targets != null && !isValid > + && i < this.targets.length; i++) { > + isValid = this.targets[i].equals(target); > + } > + } > + > + return isValid; > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/permission/PrivateCredentialPermission.java b/netx/net/sourceforge/jnlp/policy/permission/PrivateCredentialPermission.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/permission/PrivateCredentialPermission.java > @@ -0,0 +1,106 @@ > +/* PrivateCredentialPermission.java -- Represents PrivateCredentialPermission permission. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy.permission; > + > +import net.sourceforge.jnlp.policy.ParseException; > +import net.sourceforge.jnlp.policy.PolicyUtils; > + > +/** > + * This class represents the PrivateCredentialPermission permission. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public final class PrivateCredentialPermission extends Permission { > + > + /** > + * Create a new PrivateCredentialPermission. > + */ > + public PrivateCredentialPermission() { > + super("javax.security.auth.PrivateCredentialPermission", null, > + new String[] { "read" }); > + > + } > + > + @Override > + public PrivateCredentialPermission newInstance() { > + return new PrivateCredentialPermission(); > + } > + > + @Override > + public boolean validTarget(String target) { > + if (target != null) > + target = target.trim(); > + > + if (target != null && target.length() == 0) > + target = null; > + > + boolean isValid = false; > + if (target != null) { > + boolean credential = false; > + boolean principal = false; > + > + String quote = null; > + for (int index = 0; index < target.length();) { > + index = PolicyUtils.skipSpace(target, index); > + isValid = false; > + char c = target.charAt(index); > + boolean nonSpaceFound = false; > + for (int i = index; i < target.length() > + && !PolicyUtils.isSpace(c = target.charAt(i));) { > + nonSpaceFound = true; > + if (credential && principal) { > + try { > + quote = PolicyUtils.getQuotedText(target, index); > + if (quote != null) { > + index += quote.length(); > + i = index; > + } else { > + return false; > + } > + } catch (ParseException e) { > + return false; > + } > + } else { > + index = ++i; > + } > + } > + > + if (!credential && nonSpaceFound) { > + credential = true; > + } else if (!principal && nonSpaceFound) { > + principal = true; > + } else if (credential && principal) { > + if (quote != null && quote.length() > 1 > + && quote.charAt(0) == '\"' > + && quote.charAt(quote.length() - 1) == '\"') { > + principal = false; > + isValid = true; > + quote = null; > + } else { > + break; > + } > + > + } > + } > + > + } > + > + return isValid; > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/permission/PropertyPermission.java b/netx/net/sourceforge/jnlp/policy/permission/PropertyPermission.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/permission/PropertyPermission.java > @@ -0,0 +1,55 @@ > +/* PropertyPermission.java -- Represents PropertyPermission permission. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy.permission; > + > +/** > + * This class represents the PropertyPermission permission. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public final class PropertyPermission extends Permission { > + > + /** > + * Create a new PropertyPermission. > + */ > + public PropertyPermission() { > + super("java.util.PropertyPermission", null, new String[] { "read", > + "write" }); > + } > + > + @Override > + public PropertyPermission newInstance() { > + return new PropertyPermission(); > + } > + > + @Override > + public boolean validTarget(String target) { > + if (target != null) > + target = target.trim(); > + > + boolean isValid = false; > + if (target != null && target.length() > 0) { > + int index = target.indexOf('*'); > + isValid = (index == 0 && target.length() == 1) > + || (index > 0 && index == target.length() - 1 && target > + .charAt(index - 1) == '.') || (index == -1); > + } > + return isValid; > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/permission/ReflectPermission.java b/netx/net/sourceforge/jnlp/policy/permission/ReflectPermission.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/permission/ReflectPermission.java > @@ -0,0 +1,40 @@ > +/* ReflectPermission.java -- Represents ReflectPermission permission. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy.permission; > + > +/** > + * This class represents the ReflectPermission permission. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public final class ReflectPermission extends Permission { > + > + /** > + * Create a new ReflectPermission. > + */ > + public ReflectPermission() { > + super("java.lang.reflect.ReflectPermission", > + new String[] { "suppressAccessChecks" }, null); > + } > + > + @Override > + public ReflectPermission newInstance() { > + return new ReflectPermission(); > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/permission/RuntimePermission.java b/netx/net/sourceforge/jnlp/policy/permission/RuntimePermission.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/permission/RuntimePermission.java > @@ -0,0 +1,85 @@ > +/* RuntimePermission.java -- Represents RuntimePermission permission. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy.permission; > + > +/** > + * This class represents the RuntimePermission permission. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public final class RuntimePermission extends Permission { > + > + /** > + * Create a new RuntimePermission. > + */ > + public RuntimePermission() { > + super("java.lang.RuntimePermission", new String[] { > + "createClassLoader", "getClassLoader", "setContextClassLoader", > + "enableContextClassLoaderOverride", "setSecurityManage", > + "createSecurityManager", "getenv.{variable name}", > + "exitVM.{exit status}", "shutdownHooks", "setFactory", "setIO", > + "modifyThread", "stopThread", "modifyThreadGroup", > + "getProtectionDomain", "readFileDescriptor", > + "writeFileDescriptor", "loadLibrary.{library name}", > + "accessClassInPackage.{package name}", > + "defineClassInPackage.{package name}", "accessDeclaredMembers", > + "queuePrintJob", "getStackTrace", > + "setDefaultUncaughtExceptionHandler", "preferences", > + "usePolicy", }, null); > + } > + > + @Override > + public RuntimePermission newInstance() { > + return new RuntimePermission(); > + } > + > + @Override > + public boolean validTarget(String target) { > + boolean isValid = super.validTarget(target); > + /* > + * Need to handle special cases: "getenv.{variable name}" > + * "exitVM.{exit status}" "loadLibrary.{library name}" > + * "accessClassInPackage.{package name}" > + * "defineClassInPackage.{package name}" > + */ > + > + if (target != null) > + target = target.trim(); > + > + if (!isValid && target != null && target.length() > 0) { > + int index = target.indexOf('*'); > + boolean validAsterisk = (index == 0 && target.length() == 1) > + || (index > 0 && index == target.length() - 1 && target > + .charAt(index - 1) == '.') || (index == -1); > + boolean isSpecial = false; > + if (!target.endsWith(".")) { > + isSpecial = target.startsWith("getenv.") > + || target.startsWith("exitVM.") > + || target.startsWith("loadLibrary.") > + || target.startsWith("accessClassInPackage.") > + || target.startsWith("defineClassInPackage."); > + } > + > + isValid = validAsterisk && isSpecial || index == 0 > + && target.length() == 1; > + } > + > + return isValid; > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/permission/SQLPermission.java b/netx/net/sourceforge/jnlp/policy/permission/SQLPermission.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/permission/SQLPermission.java > @@ -0,0 +1,39 @@ > +/* SQLPermission.java -- Represents SQLPermission permission. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy.permission; > + > +/** > + * This class represents the SQLPermission permission. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public final class SQLPermission extends Permission { > + > + /** > + * Create a new SQLPermission. > + */ > + public SQLPermission() { > + super("java.sql.SQLPermission", new String[] { "setLog" }, null); > + } > + > + @Override > + public SQLPermission newInstance() { > + return new SQLPermission(); > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/permission/SSLPermission.java b/netx/net/sourceforge/jnlp/policy/permission/SSLPermission.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/permission/SSLPermission.java > @@ -0,0 +1,40 @@ > +/* SSLPermission.java -- Represents SSLPermission permission. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy.permission; > + > +/** > + * This class represents the SSLPermission permission. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public final class SSLPermission extends Permission { > + > + /** > + * Create a new SSLPermission. > + */ > + public SSLPermission() { > + super("javax.net.ssl.SSLPermission", new String[] { > + "setHostnameVerifier", "getSSLSessionContext" }, null); > + } > + > + @Override > + public SSLPermission newInstance() { > + return new SSLPermission(); > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/permission/SecurityPermission.java b/netx/net/sourceforge/jnlp/policy/permission/SecurityPermission.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/permission/SecurityPermission.java > @@ -0,0 +1,81 @@ > +/* SecurityPermission.java -- Represents SecurityPermission permission. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy.permission; > + > +/** > + * This class represents the SecurityPermission permission. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public final class SecurityPermission extends Permission { > + > + /** > + * Create a new SecurityPermission. > + */ > + public SecurityPermission() { > + super("java.security.SecurityPermission", new String[] { > + "createAccessControlContext", "getDomainCombiner", "getPolicy", > + "setPolicy", "createPolicy.{policy type}", "getProperty.{key}", > + "setProperty.{key}", "insertProvider.{provider name}", > + "removeProvider.{provider name}", > + "clearProviderProperties.{provider name}", > + "putProviderProperty.{provider name}", > + "removeProviderProperty.{provider name}", "setSystemScope", > + "setIdentityPublicKey", "setIdentityInfo", > + "addIdentityCertificate", "removeIdentityCertificate", > + "printIdentity", "getSignerPrivateKey", "setSignerKeyPair" }, > + null); > + } > + > + @Override > + public SecurityPermission newInstance() { > + return new SecurityPermission(); > + } > + > + @Override > + public boolean validTarget(String target) { > + boolean isValid = super.validTarget(target); > + > + /* > + * Need to handle special cases: "getProperty.{key}" > + * "setProperty.{key}", "insertProvider.{provider name}" > + * "removeProvider.{provider name}" > + * "clearProviderProperties.{provider name}" > + * "putProviderProperty.{provider name}" > + * "removeProviderProperty.{provider name}" > + */ > + > + if (target != null) > + target = target.trim(); > + > + if (!isValid && target != null && target.length() > 0) { > + if (!target.endsWith(".")) { > + isValid = target.startsWith("getProperty.") > + || target.startsWith("setProperty.") > + || target.startsWith("insertProvider.") > + || target.startsWith("removeProvider.") > + || target.startsWith("clearProviderProperties.") > + || target.startsWith("putProviderProperty.") > + || target.startsWith("removeProviderProperty."); > + } > + } > + > + return isValid; > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/permission/SerializablePermission.java b/netx/net/sourceforge/jnlp/policy/permission/SerializablePermission.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/permission/SerializablePermission.java > @@ -0,0 +1,40 @@ > +/* SerializablePermission.java -- Represents SerializablePermission permission. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy.permission; > + > +/** > + * This class represents the SerializablePermission permission. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public final class SerializablePermission extends Permission { > + > + /** > + * Create a new SerializablePermission. > + */ > + public SerializablePermission() { > + super("java.io.SerializablePermission", new String[] { > + "enableSubclassImplementation", "enableSubstitution" }, null); > + } > + > + @Override > + public SerializablePermission newInstance() { > + return new SerializablePermission(); > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/permission/ServicePermission.java b/netx/net/sourceforge/jnlp/policy/permission/ServicePermission.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/permission/ServicePermission.java > @@ -0,0 +1,51 @@ > +/* ServicePermission.java -- Represents ServicePermission permission. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy.permission; > + > +/** > + * This class represents the ServicePermission permission. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public final class ServicePermission extends Permission { > + > + /** > + * Create a new ServicePermission. > + */ > + public ServicePermission() { > + super("javax.security.auth.kerberos.ServicePermission", null, > + new String[] { "initiate", "accept" }); > + } > + > + @Override > + public ServicePermission newInstance() { > + return new ServicePermission(); > + } > + > + @Override > + public boolean validTarget(String target) { > + if (target != null) > + target = target.trim(); > + > + if (target != null && target.length() == 0) > + target = null; > + > + return target != null; > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/permission/SocketPermission.java b/netx/net/sourceforge/jnlp/policy/permission/SocketPermission.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/permission/SocketPermission.java > @@ -0,0 +1,87 @@ > +/* SocketPermission.java -- Represents SocketPermission permission. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy.permission; > + > +/** > + * This class represents the SocketPermission permission. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public final class SocketPermission extends Permission { > + > + /** > + * Create a new SocketPermission. > + */ > + public SocketPermission() { > + super("java.net.SocketPermission", null, new String[] { "accept", > + "connect", "listen", "resolve" }); > + } > + > + @Override > + public SocketPermission newInstance() { > + return new SocketPermission(); > + } > + > + @Override > + public boolean validTarget(String target) { > + if (target != null) > + target = target.trim(); > + > + boolean isValid = false; > + if (target != null && target.length() != 0) { > + String[] split = target.split(":"); > + if (split.length == 1) { > + isValid = !target.endsWith(":"); > + } else if (split.length == 2) { > + String host = split[0]; > + String port = split[1]; > + > + // Verify host. > + boolean validHost = false; > + int index = host.lastIndexOf('*'); > + if (index == 0 || index == -1) { > + validHost = true; > + } > + > + // Verify port. > + if (validHost) { > + index = port.indexOf('-'); > + if (index != -1) { > + if (index == 0) { > + port = port.substring(1); > + } else if (index == port.length() - 1) { > + port = port.substring(0, index); > + } > + > + } > + if (port.length() > 0) { > + try { > + int portVal = Integer.parseInt(port); > + isValid = portVal > 0 && portVal < Math.pow(2, 16); > + } catch (NumberFormatException e) { > + // Just ignore it. > + } > + } > + } > + } > + } > + > + return isValid; > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/principal/KerberosPrincipal.java b/netx/net/sourceforge/jnlp/policy/principal/KerberosPrincipal.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/principal/KerberosPrincipal.java > @@ -0,0 +1,39 @@ > +/* AllPermission.java -- Represents AllPermission permission. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy.principal; > + > +/** > + * This class represents the KerberosPrincipal principal. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public final class KerberosPrincipal extends Principal { > + > + /** > + * Create new KerberosPrincipal. > + */ > + public KerberosPrincipal() { > + super("javax.security.auth.kerberos.KerberosPrincipal"); > + } > + > + @Override > + public KerberosPrincipal newInstance() { > + return new KerberosPrincipal(); > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/principal/Principal.java b/netx/net/sourceforge/jnlp/policy/principal/Principal.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/principal/Principal.java > @@ -0,0 +1,298 @@ > +/* Principal.java -- Represents a general Principal. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy.principal; > + > +import net.sourceforge.jnlp.policy.PolicyUtils; > + > +/** > + * This class represent a general Principal. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public class Principal { > + /* This is the class which all principal classes should extend. */ > + private static final Class c; > + private static final String canonClassName; > + static { > + try { > + c = Class.forName("java.security.Principal", false, null); > + } catch (final ClassNotFoundException e) { > + // This should never happen.. > + throw new RuntimeException( > + "We can't find the principal interface class. Die here."); > + } > + canonClassName = c.getCanonicalName(); > + } > + > + private static Principal[] DEFAULT_PRINCIPALS = new Principal[] { > + new KerberosPrincipal(), new X500Principal(), }; > + > + /** > + * Returns an array of default principals. > + * > + * @return a copy of the default principals. > + */ > + public static Principal[] getDefaults() { > + final Principal[] principal = new Principal[DEFAULT_PRINCIPALS.length]; > + for (int i = 0; i < principal.length; i++) { > + principal[i] = DEFAULT_PRINCIPALS[i].newInstance(); > + } > + > + return principal; > + } > + > + /** > + * This is used to verify that this is a valid principal class. However if > + * the class can not be found during the current runtime, it is assumed > + * valid. > + * > + * @param fullClassName class name to validate > + * @return true if class is valid, false otherwise. > + */ > + public static boolean isValidClass(String fullClassName) { > + boolean isValid = false; > + // Lazy check. > + for (final Principal p : DEFAULT_PRINCIPALS) { > + if (p.getFullClassName().equals(fullClassName)) { > + return true; > + } > + } > + try { > + // Get the class if it exists. Otherwise an exception will be > + // thrown. > + final Class clazz = Class.forName(fullClassName, false, null); > + > + for (final Class i : clazz.getClasses()) { > + final String canon = i.getCanonicalName(); > + if (canon != null && canon.equals(canonClassName)) { > + isValid = true; > + break; > + } > + } > + > + /* > + * FIXME: Try to instantiate the class with given parameters to see > + * if it's valid. This should throw an exception if invalid. That > + * way we can catch it and remedy the problem. > + */ > + } catch (final ClassNotFoundException e) { > + isValid = fullClassName > + .matches("^([a-zA-Z_][\\w_]*\\.)*([a-zA-Z_][\\w_]*)$"); > + } > + > + return isValid; > + } > + > + /** > + * Return a Principal instance which is of the same type as argument. > + * > + * @param principal principal to create a new instance of. > + * @return an instance of the given principal. (principal with the same > + * fullClassName.) > + */ > + public static Principal newInstanceOf(Principal principal) { > + return principal != null ? newInstanceOf(principal.getFullClassName()) > + : null; > + } > + > + /** > + * Returns a Principal which is represented by fullClassName. > + * > + * @param fullClassName name of class to get. > + * @return principal with the given fullClassName. > + */ > + public static Principal newInstanceOf(String fullClassName) { > + if (fullClassName != null) { > + fullClassName = fullClassName.trim(); > + } > + > + if (fullClassName == null || fullClassName != null > + && fullClassName.length() == 0) { > + return null; > + } > + > + for (final Principal p : DEFAULT_PRINCIPALS) { > + if (p.getFullClassName().equals(fullClassName)) { > + return p.newInstance(); > + } > + } > + > + return new Principal(fullClassName); > + } > + > + private final String className; > + > + private final String fullClassName; > + > + private String name; > + > + private String displayName = null; > + > + /** > + * Creates a new Principal. > + * > + * @param fullClassName full class name > + */ > + public Principal(String fullClassName) { > + // Can't call isValidClass since while creating defaults, the default is > + // not set. > + if (fullClassName == null > + || !fullClassName > + .matches("^([a-zA-Z_][\\w_]*\\.)*([a-zA-Z_][\\w_]*)$")) { > + throw new IllegalArgumentException( > + "Class name must not be null and must match: ^([a-zA-Z_][\\w_]*\\.)*([a-zA-Z_][\\w_]*)$"); > + } > + > + final String[] className = fullClassName.split("\\."); > + this.className = className[className.length - 1]; > + this.fullClassName = fullClassName; > + } > + > + @Override > + public boolean equals(Object o) { > + if (o instanceof Principal) { > + return ((Principal) o).getFullClassName() > + .equals(getFullClassName()); > + } > + > + return false; > + } > + > + /** > + * Get the class name. > + * > + * @return class name > + */ > + public final String getClassName() { > + return this.className; > + } > + > + /** > + * Get the display name for this principal. > + * > + * @return String representing the display name, null otherwise. > + */ > + public final String getDisplayName() { > + return this.displayName; > + } > + > + /** > + * Get the full class name. > + * > + * @return full class name > + */ > + public final String getFullClassName() { > + return this.fullClassName; > + } > + > + /** > + * Get the name set for this principal. > + * > + * @return name assigned to this principal. > + */ > + public String getName() { > + return this.name; > + } > + > + /** > + * Checks whether this principal is valid. It is considered valid if the > + * name is valid. > + * > + * @return true if this principal is valid, false otherwise. > + */ > + public boolean isValid() { > + return validName(getName()); > + } > + > + /** > + * Return a new instance of the principal. > + * > + * @return a new instance of this principal. > + */ > + public Principal newInstance() { > + return newInstanceOf(this); > + } > + > + /** > + * Set the display name for this principal. > + * > + * @param displayName display name to use. > + */ > + public void setDisplayName(String displayName) { > + if (displayName != null) { > + displayName = displayName.trim(); > + } > + > + int i = 0; > + boolean valid = false; > + > + while (displayName != null > + && i < displayName.length() > + && (valid = PolicyUtils > + .isValidNameChar(displayName.charAt(i++)))) { > + ; > + } > + > + if (valid) { > + this.displayName = displayName; > + } else { > + this.displayName = null; > + } > + } > + > + /** > + * Set the name for principal. > + * > + * @param name name to set for this principal > + */ > + public void setName(String name) { > + if (name != null) { > + name = name.trim(); > + } > + > + if (name != null && name.length() == 0) { > + name = null; > + } > + > + this.name = name; > + } > + > + @Override > + public final String toString() { > + return (getDisplayName() != null ? getDisplayName() : getClassName()) > + + (isValid() ? "" : "*"); > + } > + > + /** > + * Check if given Name is valid. > + * > + * @param name name to be checked. > + * @return true if name is valid, false otherwise. > + */ > + public boolean validName(String name) { > + if (name != null) { > + name = name.trim(); > + } > + > + if (name != null && name.length() == 0) { > + name = null; > + } > + return name != null; > + } > +} > diff --git a/netx/net/sourceforge/jnlp/policy/principal/X500Principal.java b/netx/net/sourceforge/jnlp/policy/principal/X500Principal.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/policy/principal/X500Principal.java > @@ -0,0 +1,59 @@ > +/* AllPermission.java -- Represents AllPermission permission. > +Copyright (C) 2010 Red Hat > + > +This program 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 of the License, or > +(at your option) any later version. > + > +This program 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 this program; if not, write to the Free Software > +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > +package net.sourceforge.jnlp.policy.principal; > + > +import sun.security.x509.X500Name; > + > +/** > + * This class represents the X500Principal principal. > + * > + * @author Andrew Su (asu at redhat.com, andrew.su at utoronto.ca) > + * > + */ > +public final class X500Principal extends Principal { > + > + /** > + * Create new X500Principal. > + */ > + public X500Principal() { > + super("javax.security.auth.x500.X500Principal"); > + } > + > + @Override > + public X500Principal newInstance() { > + return new X500Principal(); > + } > + > + @Override > + public boolean validName(String name) { > + if (name != null) { > + name = name.trim(); > + } > + > + X500Name x500Name = null; > + if (name != null && name.length() > 0) { > + try { > + // If X500Name throws any exception that means name is invalid. > + x500Name = new X500Name(name); > + } catch (Exception e) { > + // Exception means the name is invalid. > + } > + } > + return x500Name != null; > + } > +} > diff --git a/netx/net/sourceforge/jnlp/util/FileUtils.java b/netx/net/sourceforge/jnlp/util/FileUtils.java > --- a/netx/net/sourceforge/jnlp/util/FileUtils.java > +++ b/netx/net/sourceforge/jnlp/util/FileUtils.java > @@ -18,10 +18,17 @@ > > import static net.sourceforge.jnlp.runtime.Translator.R; > > +import java.io.BufferedReader; > +import java.io.BufferedWriter; > import java.io.File; > +import java.io.FileInputStream; > import java.io.FileNotFoundException; > +import java.io.FileReader; > +import java.io.FileWriter; > import java.io.IOException; > +import java.io.InputStreamReader; > import java.io.RandomAccessFile; > +import java.io.Writer; > import java.nio.channels.FileChannel; > import java.nio.channels.FileLock; > > @@ -334,4 +341,42 @@ > } > return lock; > } > + > + /** > + * Write string content to file. (File will be overwritten) > + * > + * @param file File to write to. > + * @param content String to be written to file. > + * @throws IOException on an io exception. > + */ > + public static void writeContentToFile(File file, String content) > + throws IOException { > + BufferedWriter writer = new BufferedWriter(new FileWriter(file)); > + try { > + writer.write(content); > + } finally { > + writer.close(); > + } > + } > + > + /** > + * Read file contents. > + * > + * @param file File to be read. > + * @return String containing the contents of the file. > + * @throws IOException on an io exception. > + */ > + public static String readContentFromFile(File file) throws IOException { > + BufferedReader reader = new BufferedReader(new FileReader(file)); > + StringBuilder sb = new StringBuilder(); > + try { > + int c; > + while ((c = reader.read()) != -1) { > + sb.append((char) c); > + } > + } finally { > + reader.close(); > + } > + return sb.toString(); > + } > } From ptisnovs at redhat.com Tue Jul 19 06:15:19 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Tue, 19 Jul 2011 15:15:19 +0200 Subject: [RFC] - extended creation of simple reproducers jars In-Reply-To: <4E1C03A0.1010705@redhat.com> References: <4E1C03A0.1010705@redhat.com> Message-ID: <4E258367.8080507@redhat.com> Hi Jiri, thank you for your work. The patch itself looks good, I'm just curious if this approach would work in case of many "simple" tests, for example 1000 tests. I mean this line: + $(BOOT_DIR)/bin/javac -d $(JNLP_TESTS_DIR)/$$dir/ $$srcFiles ; \ Maybe it would be good to compile the tests in a program loop (it's possible to create for-each loop which can run for files found by find ;-) ) but if your solution works, I'm ok with it. Also ChangeLog entry should be IMHO reworded as it's not understandable (at least for me, but as you know I'm not a native speaker ;-) Cheers, Pavel Jiri Vanek wrote: > Hi! > This patch removes old compiling of files in src directory (by "*") in > simple reproducers by finding .java files (honours also directory > structure which previous technique ignored) and also copy all not java > files into resulted jar (also ignored in "*" approach) > Motivation for this patch are by-jnlp-signed reproducers which can > appear soon and I do not want to have special build code for them (== > including application.jnlp or template.jnlp files) > > > 2011-07-12 Jiri Vanek > > *Makefile.am: (stamps/netx-dist-tests-prepare-reproducers.stamp): > now honour directory structure under srcs in simple reproducer and > copy also not compiled java files into resulted jars from src directory > From jvanek at redhat.com Tue Jul 19 06:45:10 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 19 Jul 2011 15:45:10 +0200 Subject: Reviewer needed: backport of javac fix "4917091: javac rejects array over 128 in length" into IcedTea6 HEAD In-Reply-To: <4E2553CB.7080705@redhat.com> References: <4E2553CB.7080705@redhat.com> Message-ID: <4E258A66.9040309@redhat.com> On 07/19/2011 11:52 AM, Pavel Tisnovsky wrote: > Greetings, > > I'd like to backport java compiler fix 4917091: javac rejects array over > 128 in length" into IcedTea6 HEAD. The behaviour of this fix could be > checked by three regression tests contained in the backport. > > Here's ChangeLog entry: > > 2011-07-18 Pavel Tisnovsky > > * Makefile.am: added new patch > * NEWS: updated with backport > * > patches/openjdk/4917091-javac_rejects_array_over_128_in_length.patch: > Backport of 4917091. > > > Can anybody please review this backport? > > Thank you in advance, > Pavel ok here. From smohammad at redhat.com Tue Jul 19 07:54:54 2011 From: smohammad at redhat.com (Saad Mohammad) Date: Tue, 19 Jul 2011 10:54:54 -0400 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E252893.8050809@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E23FACA.3070305@redhat.com> <4E24998A.9050507@redhat.com> <4E252893.8050809@redhat.com> Message-ID: <4E259ABE.2070606@redhat.com> I have attached the updated copy of Patch1. On 07/19/2011 02:47 AM, Jiri Vanek wrote: >> >> I hope this is the 110% for Patch1! ;) > 99% ;) This is for sure the 110% ;) -- Cheers, Saad Mohammad -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: Patch1c.patch Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110719/a911f2e7/Patch1c.patch From jvanek at redhat.com Tue Jul 19 08:16:18 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 19 Jul 2011 17:16:18 +0200 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E259ABE.2070606@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E23FACA.3070305@redhat.com> <4E24998A.9050507@redhat.com> <4E252893.8050809@redhat.com> <4E259ABE.2070606@redhat.com> Message-ID: <4E259FC2.3050308@redhat.com> On 07/19/2011 04:54 PM, Saad Mohammad wrote: > I have attached the updated copy of Patch1. > > On 07/19/2011 02:47 AM, Jiri Vanek wrote: >>> >>> I hope this is the 110% for Patch1! ;) >> 99% ;) > > This is for sure the 110% ;) > go on. feel free to commit. Please use already posted and approved changelog and update authors file with yourself. Regards J. From smohammad at icedtea.classpath.org Tue Jul 19 09:14:53 2011 From: smohammad at icedtea.classpath.org (smohammad at icedtea.classpath.org) Date: Tue, 19 Jul 2011 16:14:53 +0000 Subject: /hg/icedtea-web: Added algorithm that compares signed JNLP appli... Message-ID: changeset 4267bb156f08 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=4267bb156f08 author: Saad Mohammad date: Tue Jul 19 12:14:35 2011 -0400 Added algorithm that compares signed JNLP application/template file with launching JNLP file (with test case and its resources) diffstat: ChangeLog | 73 + Makefile.am | 7 +- netx/net/sourceforge/jnlp/JNLPMatcher.java | 272 +++++ netx/net/sourceforge/jnlp/JNLPMatcherException.java | 16 + netx/net/sourceforge/jnlp/Node.java | 30 + tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java | 464 ++++++++++ tests/netx/unit/net/sourceforge/jnlp/application/application0.jnlp | 27 + tests/netx/unit/net/sourceforge/jnlp/application/application1.jnlp | 13 + tests/netx/unit/net/sourceforge/jnlp/application/application2.jnlp | 13 + tests/netx/unit/net/sourceforge/jnlp/application/application3.jnlp | 18 + tests/netx/unit/net/sourceforge/jnlp/application/application4.jnlp | 13 + tests/netx/unit/net/sourceforge/jnlp/application/application5.jnlp | 13 + tests/netx/unit/net/sourceforge/jnlp/application/application6.jnlp | 16 + tests/netx/unit/net/sourceforge/jnlp/application/application7.jnlp | 11 + tests/netx/unit/net/sourceforge/jnlp/application/application8.jnlp | 14 + tests/netx/unit/net/sourceforge/jnlp/launchApp.jnlp | 23 + tests/netx/unit/net/sourceforge/jnlp/templates/template0.jnlp | 28 + tests/netx/unit/net/sourceforge/jnlp/templates/template1.jnlp | 13 + tests/netx/unit/net/sourceforge/jnlp/templates/template2.jnlp | 13 + tests/netx/unit/net/sourceforge/jnlp/templates/template3.jnlp | 13 + tests/netx/unit/net/sourceforge/jnlp/templates/template4.jnlp | 13 + tests/netx/unit/net/sourceforge/jnlp/templates/template5.jnlp | 23 + tests/netx/unit/net/sourceforge/jnlp/templates/template6.jnlp | 13 + tests/netx/unit/net/sourceforge/jnlp/templates/template7.jnlp | 16 + tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp | 8 + tests/netx/unit/net/sourceforge/jnlp/templates/template9.jnlp | 14 + 26 files changed, 1176 insertions(+), 1 deletions(-) diffs (truncated from 1319 to 500 lines): diff -r 86abbf8be0b1 -r 4267bb156f08 ChangeLog --- a/ChangeLog Thu Jun 23 15:29:45 2011 +0200 +++ b/ChangeLog Tue Jul 19 12:14:35 2011 -0400 @@ -1,3 +1,76 @@ +2011-07-19 Saad Mohammad + + * netx/net/sourceforge/jnlp/JNLPMatcher.java: + Created this class to compare signed JNLP file with the launching + JNLP file. When comparing, it has support for both method of signing + of a JNLP file: APPLICATION_TEMPLATE.JNLP and APPLICATION.JNLP. + * netx/net/sourceforge/jnlp/JNLPMatcherException.java: + Added a custom exception: JNLPMatcherException. Thrown if verifying + signed JNLP files fails. + * netx/net/sourceforge/jnlp/Node.java: + Created a method that retrieves the attribute names of the Node and + stores it in private string [] member. The method returns the + attribute names. + * tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java: + This is a test case that tests the functionality of JNLPMatcher. + It tests the algorithm with a variety of template and application + JNLP files. + * tests/netx/unit/net/sourceforge/jnlp/launchApp.jnlp: + Launching JNLP file: This is the launching JNLP file used to compare + with templates and application JNLP files in JNLPMatcherTest.java + * tests/netx/unit/net/sourceforge/jnlp/templates/template0.jnlp: + Test Template JNLP file: Contains CDATA. + * tests/netx/unit/net/sourceforge/jnlp/templates/template1.jnlp: + Test Template JNLP file: An exact duplicate of the launching + JNLP file. + * tests/netx/unit/net/sourceforge/jnlp/templates/template2.jnlp: + Test Template JNLP file: Contains wildchars as attribute/element + values. + * tests/netx/unit/net/sourceforge/jnlp/templates/template3.jnlp: + Test Template JNLP file: Different order of elements/attributes + (same value) + * tests/netx/unit/net/sourceforge/jnlp/templates/template4.jnlp: + Test Template JNLP file: Contains wildchars as values of ALL elements + and attribute. + * tests/netx/unit/net/sourceforge/jnlp/templates/template5.jnlp: + Test Template JNLP file: Contains comments. + * tests/netx/unit/net/sourceforge/jnlp/templates/template6.jnlp: + Test Template JNLP file: Contains different attribute and element + values. + * tests/netx/unit/net/sourceforge/jnlp/templates/template7.jnlp: + Test Template JNLP file: Contains additional children in element. + * tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp: + Test Template JNLP file: Contains fewer children in element. + * tests/netx/unit/net/sourceforge/jnlp/templates/template9.jnlp: + Test Template JNLP file: All values are different from the launching + JNLP file. + * tests/netx/unit/net/sourceforge/jnlp/application/application0.jnlp: + Test Application JNLP file: Contains CDATA. + * tests/netx/unit/net/sourceforge/jnlp/application/application1.jnlp: + Test Application JNLP file: An exact duplicate of the launching + JNLP file. + * tests/netx/unit/net/sourceforge/jnlp/application/application2.jnlp: + Test Application JNLP file: Different order of element/attributes + (same value). + * tests/netx/unit/net/sourceforge/jnlp/application/application3.jnlp: + Test Application JNLP file: Contains comments. + * tests/netx/unit/net/sourceforge/jnlp/application/application4.jnlp: + Test Application JNLP file: Contains wildchars as attribute/element + values. + * tests/netx/unit/net/sourceforge/jnlp/application/application5.jnlp: + Test Application JNLP file: Contains a different attribute (codebase) + value. + * tests/netx/unit/net/sourceforge/jnlp/application/application6.jnlp: + Test Application JNLP file: Contains additional children in element. + * tests/netx/unit/net/sourceforge/jnlp/application/application7.jnlp: + Test Application JNLP file: Contains fewer children in element. + * tests/netx/unit/net/sourceforge/jnlp/application/application8.jnlp: + Test Application JNLP file: All values are different from the + launching JNLP file. + * Makefile.am: + (run-netx-unit-tests): Copies resources(non java files) to test.build + before running the unit tests. + 2011-06-22 Jiri Vanek * tests/report-styles/jreport.xsl: part with classes statistics is now collapsable diff -r 86abbf8be0b1 -r 4267bb156f08 Makefile.am --- a/Makefile.am Thu Jun 23 15:29:45 2011 +0200 +++ b/Makefile.am Tue Jul 19 12:14:35 2011 -0400 @@ -538,7 +538,12 @@ run-netx-unit-tests: stamps/netx-unit-tests-compile.stamp \ $(JUNIT_RUNNER_JAR) $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) - cp {$(NETX_UNIT_TEST_SRCDIR),$(NETX_UNIT_TEST_DIR)}/net/sourceforge/jnlp/basic.jnlp + filename=" " ; \ + cd $(NETX_UNIT_TEST_SRCDIR) ; \ + for file in `find . -type f \! -iname "*.java"`; do\ + filename=`echo $$file `; \ + cp --parents $$filename $(NETX_UNIT_TEST_DIR) ; \ + done ; \ cd $(NETX_UNIT_TEST_DIR) ; \ class_names= ; \ for test in `find -type f` ; do \ diff -r 86abbf8be0b1 -r 4267bb156f08 netx/net/sourceforge/jnlp/JNLPMatcher.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netx/net/sourceforge/jnlp/JNLPMatcher.java Tue Jul 19 12:14:35 2011 -0400 @@ -0,0 +1,272 @@ +/* JNLPMatcher.java + Copyright (C) 2011 Red Hat, Inc. + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as published by +the Free Software Foundation, version 2. + +IcedTea is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. + */ + +package net.sourceforge.jnlp; + +import java.util.List; +import java.io.InputStreamReader; +import java.io.PipedInputStream; +import java.io.PipedOutputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.LinkedList; +import net.sourceforge.nanoxml.XMLElement; + +/** + * To compare launching JNLP file with signed APPLICATION.JNLP or + * APPLICATION_TEMPLATE.jnlp. + * + * Used by net.sourceforge.jnlp.runtime.JNLPCLassLoader + */ + +public final class JNLPMatcher { + + private final Node appTemplateNode; + private final Node launchJNLPNode; + private final boolean isTemplate; + private Boolean match; + + /** + * Public constructor + * + * @param appTemplate + * the reader stream of the signed APPLICATION.jnlp or + * APPLICATION_TEMPLATE.jnlp + * @param launchJNLP + * the reader stream of the launching JNLP file + * @param isTemplate + * a boolean that specifies if appTemplateFile is a template + * @throws JNLPMatcherException + * if IOException, XMLParseException is thrown during parsing; + * Or launchJNLP/appTemplate is null + */ + public JNLPMatcher(InputStreamReader appTemplate, InputStreamReader launchJNLP, + boolean isTemplate) throws JNLPMatcherException { + + try { + + if (appTemplate == null && launchJNLP == null) + throw new NullPointerException( + "Template JNLP file and Launching JNLP file are both null."); + else if (appTemplate == null) + throw new NullPointerException("Template JNLP file is null."); + else if (launchJNLP == null) + throw new NullPointerException("Launching JNLP file is null."); + + XMLElement appTemplateXML = new XMLElement(); + XMLElement launchJNLPXML = new XMLElement(); + + // Remove the comments and CDATA from the JNLP file + final PipedInputStream pinTemplate = new PipedInputStream(); + final PipedOutputStream poutTemplate = new PipedOutputStream(pinTemplate); + appTemplateXML.sanitizeInput(appTemplate, poutTemplate); + + final PipedInputStream pinJNLPFile = new PipedInputStream(); + final PipedOutputStream poutJNLPFile = new PipedOutputStream(pinJNLPFile); + launchJNLPXML.sanitizeInput(launchJNLP, poutJNLPFile); + + // Parse both files + appTemplateXML.parseFromReader(new InputStreamReader(pinTemplate)); + launchJNLPXML.parseFromReader(new InputStreamReader(pinJNLPFile)); + + // Initialize parent nodes + this.appTemplateNode = new Node(appTemplateXML); + this.launchJNLPNode = new Node(launchJNLPXML); + this.isTemplate = isTemplate; + + } catch (Exception e) { + throw new JNLPMatcherException( + "Failed to create an instance of JNLPVerify with specified InputStreamReader", + e); + } + } + + /** + * Compares both JNLP files + * + * @return true if both JNLP files are 'matched', otherwise false + */ + public boolean isMatch() { + + if (match == null) + match = matchNodes(appTemplateNode, launchJNLPNode); + + return match; + } + + /** + * Compares two Nodes regardless of the order of their children/attributes + * + * @param appTemplate + * signed application or template's Node + * @param launchJNLP + * launching JNLP file's Node + * + * @return true if both Nodes are 'matched', otherwise false + */ + private boolean matchNodes(Node appTemplate, Node launchJNLP) { + + if (appTemplate != null && launchJNLP != null) { + + Node templateNode = appTemplate; + Node launchNode = launchJNLP; + // Store children of Node + List appTemplateChild = new LinkedList(Arrays.asList(templateNode + .getChildNodes())); + List launchJNLPChild = new LinkedList(Arrays.asList(launchNode + .getChildNodes())); + + // Compare only if both Nodes have the same name, else return false + if (templateNode.getNodeName().equals(launchNode.getNodeName())) { + + if (appTemplateChild.size() == launchJNLPChild.size()) { // Compare + // children + + int childLength = appTemplateChild.size(); + + for (int i = 0; i < childLength;) { + for (int j = 0; j < childLength; j++) { + boolean isSame = matchNodes(appTemplateChild.get(i), + launchJNLPChild.get(j)); + + if (!isSame && j == childLength - 1) + return false; + else if (isSame) { // If both child matches, remove them from the list of children + appTemplateChild.remove(i); + launchJNLPChild.remove(j); + --childLength; + break; + } + } + } + + if (!templateNode.getNodeValue().equals(launchNode.getNodeValue())) { + + // If it's a template and the template's value is NOT '*' + if (isTemplate && !templateNode.getNodeValue().equals("*")) + return false; + // Else if it's not a template, then return false + else if (!isTemplate) + return false; + } + // Compare attributes of both Nodes + return matchAttributes(templateNode, launchNode); + } + + } + } + return false; + } + + /** + * Compares attributes of two Nodes regardless of order + * + * @param appTemplateNode + * signed application or template's Node with attributes + * @param launchJNLPNode + * launching JNLP file's Node with attributes + * + * @return true if both Nodes have 'matched' attributes, otherwise false + */ + private boolean matchAttributes(Node templateNode, Node launchNode) { + + if (templateNode != null && launchNode != null) { + + List appTemplateAttributes = templateNode.getAttributeNames(); + List launchJNLPAttributes = launchNode.getAttributeNames(); + + Collections.sort(appTemplateAttributes); + Collections.sort(launchJNLPAttributes); + + if (appTemplateAttributes.size() == launchJNLPAttributes.size()) { + + int size = appTemplateAttributes.size(); // Number of attributes + + for (int i = 0; i < size; i++) { + + if (launchJNLPAttributes.get(i).equals(appTemplateAttributes.get(i))) { // If both Node's attribute name are the + // same then compare the values + + String attribute = launchJNLPAttributes.get(i); + boolean isSame = templateNode.getAttribute(attribute).equals( // Check if the Attribute values match + launchNode.getAttribute(attribute)); + + if (!isTemplate && !isSame) + return false; + else if (isTemplate && !isSame + && !templateNode.getAttribute(attribute).equals("*")) + return false; + + } else + // If attributes names do not match, return false + return false; + } + return true; + } + } + return false; + } + + /** + * Getter for application/template Node + * + * @return the Node of the signed application/template file + */ + public Node getAppTemplateNode() { + return appTemplateNode; + } + + /** + * Getter for launching application Node + * + * @return the Node of the launching JNLP file + */ + public Node getLaunchJNLPNode() { + return launchJNLPNode; + } + + /** + * Getter for isTemplate + * + * @return true if a signed template is being used for matching; otherwise + * false. + */ + public boolean isTemplate() { + return isTemplate; + } +} diff -r 86abbf8be0b1 -r 4267bb156f08 netx/net/sourceforge/jnlp/JNLPMatcherException.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netx/net/sourceforge/jnlp/JNLPMatcherException.java Tue Jul 19 12:14:35 2011 -0400 @@ -0,0 +1,16 @@ +package net.sourceforge.jnlp; + +public class JNLPMatcherException extends Exception +{ + private static final long serialVersionUID = 1L; + + public JNLPMatcherException(String message) + { + super(message); + } + + public JNLPMatcherException(String message, Throwable cause) + { + super(message, cause); + } +} diff -r 86abbf8be0b1 -r 4267bb156f08 netx/net/sourceforge/jnlp/Node.java --- a/netx/net/sourceforge/jnlp/Node.java Thu Jun 23 15:29:45 2011 +0200 +++ b/netx/net/sourceforge/jnlp/Node.java Tue Jul 19 12:14:35 2011 -0400 @@ -19,6 +19,7 @@ private XMLElement xml; private Node next; private Node children[]; + private List attributeNames= null; Node(XMLElement xml) { this.xml = xml; @@ -60,6 +61,21 @@ return children; } + + /** + * To retrieve all attribute names + * @return all attribute names of the Node in ArrayList + */ + List getAttributeNames() { + if (attributeNames == null) { + attributeNames= new ArrayList(); + + for (Enumeration e = xml.enumerateAttributeNames(); e.hasMoreElements();) + attributeNames.add(new String((String) e.nextElement())); + } + + return attributeNames; + } String getAttribute(String name) { return (String) xml.getAttribute(name); @@ -86,6 +102,7 @@ private ParsedXML tinyNode; private Node next; private Node children[]; + private String attributeNames[]; Node(ParsedXML tinyNode) { this.tinyNode = tinyNode; @@ -127,6 +144,19 @@ return children; } + + String[] getAttributeNames() { + if (attributeNames == null) { + List list = new ArrayList(); + + for (Enumeration e = xml.enumerateAttributeNames(); e.hasMoreElements();) + list.add(new String((String) e.nextElement())); + + attributeNames = list.toArray(new String[list.size()]); + + } + return attributeNames; + } String getAttribute(String name) { return tinyNode.getAttribute(name); diff -r 86abbf8be0b1 -r 4267bb156f08 tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java Tue Jul 19 12:14:35 2011 -0400 @@ -0,0 +1,464 @@ +/* JNLPMatcherTest.java + Copyright (C) 2011 Red Hat, Inc. + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as published by +the Free Software Foundation, version 2. + +IcedTea is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. + */ + +package net.sourceforge.jnlp; + +import static org.junit.Assert.fail; + +import java.io.IOException; From ahughes at redhat.com Tue Jul 19 10:07:31 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Tue, 19 Jul 2011 18:07:31 +0100 Subject: Fix for IcedTea7 [was Re: Reviewer needed: (IcedTea6 HEAD) added all required source files for reg.test hotspot/7020373, removed binary stuff] In-Reply-To: <4E25796E.2070601@redhat.com> References: <4E240B4A.9010902@redhat.com> <20110719000332.GF23991@rivendell.middle-earth.co.uk> <4E25796E.2070601@redhat.com> Message-ID: <20110719170730.GB19626@rivendell.middle-earth.co.uk> On 14:32 Tue 19 Jul , Pavel Tisnovsky wrote: > Dr Andrew John Hughes wrote: > > > For 7, it will need to go into the forest. > > Sure, hg diff generated against IcedTea7-forest (hotspot) is stored in > an attachment (please note that the class binary file was really > deleted, but diff just said it's changed :-) > > > Here's ChangeLog entry for IcedTea7 HEAD: > > 2011-07-19 Marc Schoenefeld > Pavel Tisnovsky > > * Makefile.am: > (HOTSPOT_CHANGESET): Update regression test > hotspot/7020373: added missing source used > to create the reproducer, removed now unused > binary file. > (HOTSPOT_SHA256SUM): Likewise > > > Is it possible to push such changes to IcedTea7 HEAD & IcedTea7 forest > please? > Have you done a full build (bootstrap) of IcedTea7 with the new changeset? If so, ok. > Thank you in advance, > Pavel > diff -r 6844f4ba31ea test/runtime/7020373/GenOOMCrashClass.java > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/test/runtime/7020373/GenOOMCrashClass.java Tue Jul 19 14:03:48 2011 +0200 > @@ -0,0 +1,157 @@ > +/* > + * Copyright (c) 2011, Red Hat Inc. All Rights Reserved. > + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. > + * > + * This code is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License as published by > + * the Free Software Foundation; either version 2, or (at your option) > + * any later version. > + * > + * 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 for more details. > + * > + * You should have received a copy of the GNU General Public License version > + * 2 along with this work; if not, write to the Free Software Foundation, > + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. > + */ > + > +import java.applet.Applet; > +import java.io.IOException; > + > +import com.sun.org.apache.bcel.internal.Constants; > +import com.sun.org.apache.bcel.internal.generic.AALOAD; > +import com.sun.org.apache.bcel.internal.generic.ACONST_NULL; > +import com.sun.org.apache.bcel.internal.generic.ALOAD; > +import com.sun.org.apache.bcel.internal.generic.ArrayType; > +import com.sun.org.apache.bcel.internal.generic.ClassGen; > +import com.sun.org.apache.bcel.internal.generic.ConstantPoolGen; > +import com.sun.org.apache.bcel.internal.generic.GOTO; > +import com.sun.org.apache.bcel.internal.generic.ICONST; > +import com.sun.org.apache.bcel.internal.generic.IFEQ; > +import com.sun.org.apache.bcel.internal.generic.ILOAD; > +import com.sun.org.apache.bcel.internal.generic.INVOKESTATIC; > +import com.sun.org.apache.bcel.internal.generic.ISTORE; > +import com.sun.org.apache.bcel.internal.generic.InstructionHandle; > +import com.sun.org.apache.bcel.internal.generic.InstructionList; > +import com.sun.org.apache.bcel.internal.generic.JSR; > +import com.sun.org.apache.bcel.internal.generic.MethodGen; > +import com.sun.org.apache.bcel.internal.generic.RETURN; > +import com.sun.org.apache.bcel.internal.generic.Type; > + > + > +public class GenOOMCrashClass { > + > + public static String genOOMCrashClass(int maxmeth, int nums/*String[] a*/) throws Exception { > + String theClassFile = "OOMCrashClass"+nums+"_"+maxmeth; > + ClassGen cg = new ClassGen(theClassFile, "java.applet.Applet", > + "", Constants.ACC_PUBLIC | Constants.ACC_SUPER, null); > + ConstantPoolGen cp = cg.getConstantPool(); // cg creates constant pool > + > + // int br0 = cp.addClass("marc.schoenefeld.2008"); > + > + int br2 = cp.addMethodref("java.lang.Integer", "parseInt", > + "(Ljava/lang/String;)I"); > + > + Type[] argtype = new Type[] { > + new ArrayType(Type.STRING, 1) > + }; > + > + for (int j = 0; j < maxmeth; j++) { > + > + InstructionList il = new InstructionList(); > + > + String methodName = maxmeth == 1 ? "main" : "main" + j; > + MethodGen mg = new MethodGen(Constants.ACC_STATIC > + | Constants.ACC_PUBLIC,// access flags > + Type.VOID, // return type > + argtype, new String[] { "argv" }, // arg > + // names > + methodName, theClassFile, // method, class > + il, cp); > + > + il.append(new ALOAD(0)); > + il.append(new ICONST(0)); > + il.append(new AALOAD()); // load something unpredictable, no folding > + // please > + > + il.append(new INVOKESTATIC(br2)); > + il.append(new ISTORE(1)); > + > + GOTO gototail = new GOTO(null); > + > + il.append(gototail); > + > + InstructionHandle ret = il.append(new RETURN()); > + InstructionHandle ih = null; > + for (int i = 0; i < nums; i++) { > + ih = il.append(new ILOAD(1)); > + IFEQ ifeq = new IFEQ(null); > + il.append(ifeq); > + > + JSR jsr = new JSR(null); > + GOTO next = new GOTO(null); > + > + InstructionHandle h_jsr = il.append(jsr); > + InstructionHandle h_goto = il.append(next); > + InstructionHandle h_ret = il.append(new RETURN()); > + > + InstructionHandle danach = il.append(new ACONST_NULL()); > + jsr.setTarget(h_ret); > + next.setTarget(danach); > + > + il.append(new GOTO(ih)); > + ifeq.setTarget(ret); > + ret = ih; > + } > + > + gototail.setTarget(ih); > + > + mg.setMaxStack(Integer.MAX_VALUE); // Needed stack size > + > + mg.setMaxLocals(); > + cg.addMethod(mg.getMethod()); > + } > + /* Add public method, i.e. empty constructor */ > + cg.addEmptyConstructor(Constants.ACC_PUBLIC); > + > + /* Get JavaClass object and dump it to file. */ > + try { > + System.out.println("dumping:"+theClassFile); > + cg.getJavaClass().dump(theClassFile + ".class"); > + } catch (java.io.IOException e) { > + System.err.println(e); > + } > + return theClassFile; > + } > + > + public static void main(String[] a) throws Exception { > + int maxmeth_default = 250; > + int nums_default = 20; > + int maxmeth; > + int nums; > + try { > + maxmeth = Integer.parseInt(a[0]); > + } > + catch (Exception e) { > + maxmeth = maxmeth_default; > + } > + try { > + nums = Integer.parseInt(a[1]); > + } > + catch (Exception e) { > + nums = nums_default; > + } > + String classname = genOOMCrashClass(maxmeth,nums); > + System.out.println("Generated"); > + // System.out.println(a[0]); > + // System.out.println("Loading"); > + > + // long t = System.currentTimeMillis(); > + // Class g2 = Class.forName(classname); > + // long u = System.currentTimeMillis(); > + // System.out.println(g2 + ":" + (u - t)); > + } > + > +} > diff -r 6844f4ba31ea test/runtime/7020373/Test7020373.sh > --- a/test/runtime/7020373/Test7020373.sh Mon Jul 11 22:05:46 2011 +0100 > +++ b/test/runtime/7020373/Test7020373.sh Tue Jul 19 14:03:48 2011 +0200 > @@ -61,8 +61,13 @@ > > ${TESTJAVA}${FS}bin${FS}java ${BIT_FLAG} -version > > -${TESTJAVA}${FS}bin${FS}jar xvf ${TESTSRC}${FS}testcase.jar > +# first step: compile GenOOMCrash generator > +${TESTJAVA}${FS}bin${FS}javac GenOOMCrashClass.java > > +# second step: run the generator to create test class > +${TESTJAVA}${FS}bin${FS}java GenOOMCrashClass 1 4000 > + > +# third step: run the reproducer > ${TESTJAVA}${FS}bin${FS}java ${BIT_FLAG} OOMCrashClass4000_1 > test.out 2>&1 > > cat test.out > diff -r 6844f4ba31ea test/runtime/7020373/testcase.jar > Binary file test/runtime/7020373/testcase.jar has changed -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Tue Jul 19 10:16:46 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Tue, 19 Jul 2011 18:16:46 +0100 Subject: Reviewer needed: backport of javac fix "4917091: javac rejects array over 128 in length" into IcedTea6 HEAD In-Reply-To: <4E2553CB.7080705@redhat.com> References: <4E2553CB.7080705@redhat.com> Message-ID: <20110719171646.GC19626@rivendell.middle-earth.co.uk> On 11:52 Tue 19 Jul , Pavel Tisnovsky wrote: > Greetings, > > I'd like to backport java compiler fix 4917091: javac rejects array over > 128 in length" into IcedTea6 HEAD. The behaviour of this fix could be > checked by three regression tests contained in the backport. > > Here's ChangeLog entry: > > 2011-07-18 Pavel Tisnovsky > > * Makefile.am: added new patch > * NEWS: updated with backport > * > patches/openjdk/4917091-javac_rejects_array_over_128_in_length.patch: > Backport of 4917091. > > > Can anybody please review this backport? > Approved. > Thank you in advance, > Pavel -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From jvanek at redhat.com Tue Jul 19 10:20:28 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 19 Jul 2011 19:20:28 +0200 Subject: [RFC] - extended creation of simple reproducers jars In-Reply-To: <4E258367.8080507@redhat.com> References: <4E1C03A0.1010705@redhat.com> <4E258367.8080507@redhat.com> Message-ID: <4E25BCDC.4040804@redhat.com> On 07/19/2011 03:15 PM, Pavel Tisnovsky wrote: Hi! Thanx for review: > Hi Jiri, > > thank you for your work. The patch itself looks good, I'm just curious > if this approach would work in case of many "simple" tests, for example > 1000 tests. I mean this line: > > + $(BOOT_DIR)/bin/javac -d $(JNLP_TESTS_DIR)/$$dir/ $$srcFiles ; \ > This line always compile one single reproducer. They have mostly one or two classes and it is nearly unbelievable that single reproducer will have more tehn hundrets of files. Commandline have 128KB buffer. It i smore then enough for SIMPLE reproducer :D > Maybe it would be good to compile the tests in a program loop (it's > possible to create for-each loop which can run for files found by find > ;-) ) but if your solution works, I'm ok with it. > > > Also ChangeLog entry should be IMHO reworded as it's not understandable > (at least for me, but as you know I'm not a native speaker ;-) > > Cheers, > Pavel > > > Jiri Vanek wrote: >> Hi! >> This patch removes old compiling of files in src directory (by "*") in >> simple reproducers by finding .java files (honours also directory >> structure which previous technique ignored) and also copy all not java >> files into resulted jar (also ignored in "*" approach) >> Motivation for this patch are by-jnlp-signed reproducers which can >> appear soon and I do not want to have special build code for them (== >> including application.jnlp or template.jnlp files) >> >> >> 2011-07-12 Jiri Vanek >> >> *Makefile.am: (stamps/netx-dist-tests-prepare-reproducers.stamp): >> now honour directory structure under srcs in simple reproducer and >> copy also not compiled java files into resulted jars from src directory >> > 2011-07-19 Jiri Vanek *Makefile.am: (stamps/netx-dist-tests-prepare-reproducers.stamp): now are compiled files correctly compiled from directory structure. Also not java files are copied with expected directory structure and jarred together with classes. Better? The patch remains same. Regards J. -------------- next part -------------- A non-text attachment was scrubbed... Name: honoredDirs.patch Type: text/x-patch Size: 2647 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110719/c1c6d66d/honoredDirs.patch From ahughes at redhat.com Tue Jul 19 13:06:49 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Tue, 19 Jul 2011 21:06:49 +0100 Subject: [RFC] - extended creation of simple reproducers jars In-Reply-To: <4E258367.8080507@redhat.com> References: <4E1C03A0.1010705@redhat.com> <4E258367.8080507@redhat.com> Message-ID: <20110719200649.GD19626@rivendell.middle-earth.co.uk> On 15:15 Tue 19 Jul , Pavel Tisnovsky wrote: > Hi Jiri, > > thank you for your work. The patch itself looks good, I'm just curious > if this approach would work in case of many "simple" tests, for example > 1000 tests. I mean this line: > > + $(BOOT_DIR)/bin/javac -d $(JNLP_TESTS_DIR)/$$dir/ $$srcFiles ; \ > > Maybe it would be good to compile the tests in a program loop (it's > possible to create for-each loop which can run for files found by find > ;-) ) but if your solution works, I'm ok with it. > I agree. Why is this rule using a different style to the main NetX/JavaWS rules? These proceed as follows: 1. Build a list into a text file in one rule 2. Compile/copy in a second rule One other advantage (other than that outlined by Pavel) is that the list of files does not have to be rebuilt to recompile/recopy. > > Also ChangeLog entry should be IMHO reworded as it's not understandable > (at least for me, but as you know I'm not a native speaker ;-) > It's barely understandable, but only just for me. I'm not sure what is meant by 'honour[ing] the directory structure'. > Cheers, > Pavel > > > Jiri Vanek wrote: > > Hi! > > This patch removes old compiling of files in src directory (by "*") in > > simple reproducers by finding .java files (honours also directory > > structure which previous technique ignored) and also copy all not java > > files into resulted jar (also ignored in "*" approach) > > Motivation for this patch are by-jnlp-signed reproducers which can > > appear soon and I do not want to have special build code for them (== > > including application.jnlp or template.jnlp files) > > > > > > 2011-07-12 Jiri Vanek > > > > *Makefile.am: (stamps/netx-dist-tests-prepare-reproducers.stamp): > > now honour directory structure under srcs in simple reproducer and > > copy also not compiled java files into resulted jars from src directory > > > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From andrew at icedtea.classpath.org Tue Jul 19 14:00:58 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 19 Jul 2011 21:00:58 +0000 Subject: /hg/release/icedtea6-1.8: PR744: Fix jaxws patch broken by lates... Message-ID: changeset ed75c53af605 in /hg/release/icedtea6-1.8 details: http://icedtea.classpath.org/hg/release/icedtea6-1.8?cmd=changeset;node=ed75c53af605 author: Andrew John Hughes date: Tue Jul 19 22:00:36 2011 +0100 PR744: Fix jaxws patch broken by latest security update. 2011-07-11 Andrew John Hughes PR744: Patching error * NEWS: Updated. * patches/ecj/icedtea-jaxws-getdtdtype.patch: Update patch to apply after security patch. diffstat: ChangeLog | 7 +++++++ NEWS | 3 +++ patches/ecj/icedtea-jaxws-getdtdtype.patch | 9 ++++----- 3 files changed, 14 insertions(+), 5 deletions(-) diffs (55 lines): diff -r 208ad2bea295 -r ed75c53af605 ChangeLog --- a/ChangeLog Wed Jun 08 17:59:56 2011 +0100 +++ b/ChangeLog Tue Jul 19 22:00:36 2011 +0100 @@ -1,3 +1,10 @@ +2011-07-11 Andrew John Hughes + + PR744: Patching error + * NEWS: Updated. + * patches/ecj/icedtea-jaxws-getdtdtype.patch: + Update patch to apply after security patch. + 2011-06-08 Andrew John Hughes * NEWS: Add 1.8.9 section. diff -r 208ad2bea295 -r ed75c53af605 NEWS --- a/NEWS Wed Jun 08 17:59:56 2011 +0100 +++ b/NEWS Tue Jul 19 22:00:36 2011 +0100 @@ -10,6 +10,9 @@ New in release 1.8.9 (20XX-XX-XX): +* Bug fixes + - PR744: icedtea6-1.10.2 : patching error + New in release 1.8.8 (2011-06-07): * Security fixes diff -r 208ad2bea295 -r ed75c53af605 patches/ecj/icedtea-jaxws-getdtdtype.patch --- a/patches/ecj/icedtea-jaxws-getdtdtype.patch Wed Jun 08 17:59:56 2011 +0100 +++ b/patches/ecj/icedtea-jaxws-getdtdtype.patch Tue Jul 19 22:00:36 2011 +0100 @@ -1,18 +1,18 @@ diff -Nru openjdk-ecj.orig/jaxws/build.properties openjdk-ecj/jaxws/build.properties ---- openjdk-ecj.orig/jaxws/build.properties 2010-03-01 15:13:38.000000000 +0000 -+++ openjdk-ecj/jaxws/build.properties 2010-03-01 15:14:30.000000000 +0000 -@@ -81,7 +81,7 @@ +--- openjdk-ecj.orig/jaxws/build.properties 2011-07-11 21:56:16.000000000 +0100 ++++ openjdk-ecj/jaxws/build.properties 2011-07-11 21:58:15.168357598 +0100 +@@ -78,7 +78,7 @@ patches.dir=patches # Patches to apply --jaxws_src.patch.list=xjc.patch -+jaxws_src.patch.list=xjc.patch getdtdtype.patch +-jaxws_src.patch.list=7013971.patch xjc.patch ++jaxws_src.patch.list=7013971.patch xjc.patch getdtdtype.patch # Sanity information sanity.info= Sanity Settings:${line.separator}\ diff -Nru openjdk-ecj.orig/jaxws/patches/jaxws_src/getdtdtype.patch openjdk-ecj/jaxws/patches/jaxws_src/getdtdtype.patch --- openjdk-ecj.orig/jaxws/patches/jaxws_src/getdtdtype.patch 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk-ecj/jaxws/patches/jaxws_src/getdtdtype.patch 2010-03-01 15:15:10.000000000 +0000 ++++ openjdk-ecj/jaxws/patches/jaxws_src/getdtdtype.patch 2011-07-11 21:57:55.656033418 +0100 @@ -0,0 +1,27 @@ +--- src/com/sun/xml/internal/bind/v2/runtime/unmarshaller/StAXEventConnector.java 2009-11-17 16:37:06.000000000 +0000 ++++ src/com/sun/xml/internal/bind/v2/runtime/unmarshaller/StAXEventConnector.java 2009-11-17 16:38:00.000000000 +0000 From andrew at icedtea.classpath.org Tue Jul 19 14:04:09 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 19 Jul 2011 21:04:09 +0000 Subject: /hg/release/icedtea6-1.9: PR744: Fix jaxws patch broken by lates... Message-ID: changeset 11e7784eb228 in /hg/release/icedtea6-1.9 details: http://icedtea.classpath.org/hg/release/icedtea6-1.9?cmd=changeset;node=11e7784eb228 author: Andrew John Hughes date: Tue Jul 19 22:04:04 2011 +0100 PR744: Fix jaxws patch broken by latest security update. 2011-07-11 Andrew John Hughes PR744: Patching error * NEWS: Updated. * patches/ecj/icedtea-jaxws-getdtdtype.patch: Update patch to apply after security patch. diffstat: ChangeLog | 7 +++++++ NEWS | 2 ++ patches/ecj/icedtea-jaxws-getdtdtype.patch | 4 ++-- 3 files changed, 11 insertions(+), 2 deletions(-) diffs (40 lines): diff -r 1c554e7ce79e -r 11e7784eb228 ChangeLog --- a/ChangeLog Sat Jul 09 16:58:17 2011 +0200 +++ b/ChangeLog Tue Jul 19 22:04:04 2011 +0100 @@ -1,3 +1,10 @@ +2011-07-11 Andrew John Hughes + + PR744: Patching error + * NEWS: Updated. + * patches/ecj/icedtea-jaxws-getdtdtype.patch: + Update patch to apply after security patch. + 2011-07-09 Xerxes R??nby Mark Wielaard diff -r 1c554e7ce79e -r 11e7784eb228 NEWS --- a/NEWS Sat Jul 09 16:58:17 2011 +0200 +++ b/NEWS Tue Jul 19 22:04:04 2011 +0100 @@ -10,6 +10,8 @@ New in release 1.9.9 (20XX-XX-XX): +* Bug Fixes + - PR744: icedtea6-1.10.2 : patching error * Shark - PR632: patches/security/20110215/6878713.patch breaks shark zero build diff -r 1c554e7ce79e -r 11e7784eb228 patches/ecj/icedtea-jaxws-getdtdtype.patch --- a/patches/ecj/icedtea-jaxws-getdtdtype.patch Sat Jul 09 16:58:17 2011 +0200 +++ b/patches/ecj/icedtea-jaxws-getdtdtype.patch Tue Jul 19 22:04:04 2011 +0100 @@ -5,8 +5,8 @@ patches.dir=patches # Patches to apply --jaxws_src.patch.list=xjc.patch -+jaxws_src.patch.list=xjc.patch getdtdtype.patch +-jaxws_src.patch.list=7013971.patch xjc.patch ++jaxws_src.patch.list=7013971.patch xjc.patch getdtdtype.patch # Sanity information sanity.info= Sanity Settings:${line.separator}\ From andrew at icedtea.classpath.org Tue Jul 19 14:13:48 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 19 Jul 2011 21:13:48 +0000 Subject: /hg/release/icedtea6-1.10: PR744: Fix jaxws patch broken by late... Message-ID: changeset f6d1c2b1d869 in /hg/release/icedtea6-1.10 details: http://icedtea.classpath.org/hg/release/icedtea6-1.10?cmd=changeset;node=f6d1c2b1d869 author: Andrew John Hughes date: Tue Jul 19 22:13:38 2011 +0100 PR744: Fix jaxws patch broken by latest security update. 2011-07-11 Andrew John Hughes PR744: Patching error * NEWS: Updated. * patches/ecj/icedtea-jaxws-getdtdtype.patch: Update patch to apply after security patch. diffstat: ChangeLog | 7 +++++++ NEWS | 1 + patches/ecj/jaxws-getdtdtype.patch | 4 ++-- 3 files changed, 10 insertions(+), 2 deletions(-) diffs (39 lines): diff -r 6c21fc007867 -r f6d1c2b1d869 ChangeLog --- a/ChangeLog Wed Jun 29 18:16:57 2011 +0100 +++ b/ChangeLog Tue Jul 19 22:13:38 2011 +0100 @@ -1,3 +1,10 @@ +2011-07-11 Andrew John Hughes + + PR744: Patching error + * NEWS: Updated. + * patches/ecj/icedtea-jaxws-getdtdtype.patch: + Update patch to apply after security patch. + 2011-06-29 Andrew John Hughes * acinclude.m4: diff -r 6c21fc007867 -r f6d1c2b1d869 NEWS --- a/NEWS Wed Jun 29 18:16:57 2011 +0100 +++ b/NEWS Tue Jul 19 22:13:38 2011 +0100 @@ -13,6 +13,7 @@ * Bug fixes - PR748: Icedtea6 fails to build with Linux 3.0. + - PR744: icedtea6-1.10.2 : patching error * Backports: - S7037283, RH712211: Null Pointer Exception in SwingUtilities2. - S6769607, PR677: Modal frame hangs for a while. diff -r 6c21fc007867 -r f6d1c2b1d869 patches/ecj/jaxws-getdtdtype.patch --- a/patches/ecj/jaxws-getdtdtype.patch Wed Jun 29 18:16:57 2011 +0100 +++ b/patches/ecj/jaxws-getdtdtype.patch Tue Jul 19 22:13:38 2011 +0100 @@ -5,8 +5,8 @@ patches.dir=patches # Patches to apply --jaxws_src.patch.list=xjc.patch -+jaxws_src.patch.list=xjc.patch getdtdtype.patch +-jaxws_src.patch.list=7013971.patch xjc.patch ++jaxws_src.patch.list=7013971.patch xjc.patch getdtdtype.patch # Sanity information sanity.info= Sanity Settings:${line.separator}\ From andrew at icedtea.classpath.org Tue Jul 19 17:00:09 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 20 Jul 2011 00:00:09 +0000 Subject: /hg/release/icedtea6-1.8: Allow Linux 3* to pass through the Hot... Message-ID: changeset c5121c10ed2f in /hg/release/icedtea6-1.8 details: http://icedtea.classpath.org/hg/release/icedtea6-1.8?cmd=changeset;node=c5121c10ed2f author: Andrew John Hughes date: Wed Jul 20 00:59:54 2011 +0100 Allow Linux 3* to pass through the HotSpot OS version filter. 2011-06-28 Andrew John Hughes * Makefile.am: Add new patch. * patches/support_linux_3.patch: Allow Linux 3* through the HotSpot OS version filter. * NEWS: Updated. diffstat: ChangeLog | 8 ++++++++ Makefile.am | 3 ++- NEWS | 1 + patches/support_linux_3.patch | 18 ++++++++++++++++++ 4 files changed, 29 insertions(+), 1 deletions(-) diffs (62 lines): diff -r ed75c53af605 -r c5121c10ed2f ChangeLog --- a/ChangeLog Tue Jul 19 22:00:36 2011 +0100 +++ b/ChangeLog Wed Jul 20 00:59:54 2011 +0100 @@ -1,3 +1,11 @@ +2011-06-28 Andrew John Hughes + + * Makefile.am: Add new patch. + * patches/support_linux_3.patch: + Allow Linux 3* through the HotSpot OS version + filter. + * NEWS: Updated. + 2011-07-11 Andrew John Hughes PR744: Patching error diff -r ed75c53af605 -r c5121c10ed2f Makefile.am --- a/Makefile.am Tue Jul 19 22:00:36 2011 +0100 +++ b/Makefile.am Wed Jul 20 00:59:54 2011 +0100 @@ -387,7 +387,8 @@ patches/openjdk/6675802-securityExceptions-applets.patch \ patches/openjdk/6691503-malicious-applet-always-on-top.patch \ patches/jtreg-LastErrorString.patch \ - patches/mark_sun_toolkit_privileged_code.patch + patches/mark_sun_toolkit_privileged_code.patch \ + patches/support_linux_3.patch if WITH_ALT_HSBUILD ICEDTEA_PATCHES += patches/hotspot/$(HSBUILD)/openjdk-6886353-ignore_deoptimizealot.patch \ diff -r ed75c53af605 -r c5121c10ed2f NEWS --- a/NEWS Tue Jul 19 22:00:36 2011 +0100 +++ b/NEWS Wed Jul 20 00:59:54 2011 +0100 @@ -12,6 +12,7 @@ * Bug fixes - PR744: icedtea6-1.10.2 : patching error + - PR748: Icedtea6 fails to build with Linux 3.0. New in release 1.8.8 (2011-06-07): diff -r ed75c53af605 -r c5121c10ed2f patches/support_linux_3.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/support_linux_3.patch Wed Jul 20 00:59:54 2011 +0100 @@ -0,0 +1,19 @@ +# HG changeset patch +# User andrew +# Date 1309217125 -3600 +# Node ID f7e8b10f51c6a622520b55df0c644fb09ec78542 +# Parent b8227c320dec384a94026fcaa650b0ebd4eef13b +Allow building HotSpot with any Linux 3 version. + +diff -r b8227c320dec -r f7e8b10f51c6 make/linux/Makefile +--- openjdk/hotspot/make/linux/Makefile Wed Jun 15 18:56:52 2011 +0100 ++++ openjdk/hotspot/make/linux/Makefile Tue Jun 28 00:25:25 2011 +0100 +@@ -230,7 +230,7 @@ + # Solaris 2.5.1, 2.6). + # Disable this check by setting DISABLE_HOTSPOT_OS_VERSION_CHECK=ok. + +-SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 2.7% ++SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% + OS_VERSION := $(shell uname -r) + EMPTY_IF_NOT_SUPPORTED = $(filter $(SUPPORTED_OS_VERSION),$(OS_VERSION)) + From jvanek at redhat.com Tue Jul 19 22:19:26 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 20 Jul 2011 07:19:26 +0200 Subject: [RFC] - extended creation of simple reproducers jars In-Reply-To: <4E25BCDC.4040804@redhat.com> References: <4E1C03A0.1010705@redhat.com> <4E258367.8080507@redhat.com> <4E25BCDC.4040804@redhat.com> Message-ID: <4E26655E.1000602@redhat.com> Hi Andrew! thank you for more comments. I think that reply have missed you so this is it. Is chaneglog better in this version? Also few comments to your concerns are included. On 07/19/2011 07:20 PM, Jiri Vanek wrote: > On 07/19/2011 03:15 PM, Pavel Tisnovsky wrote: > Hi! > Thanx for review: >> Hi Jiri, >> >> thank you for your work. The patch itself looks good, I'm just curious >> if this approach would work in case of many "simple" tests, for example >> 1000 tests. I mean this line: >> >> + $(BOOT_DIR)/bin/javac -d $(JNLP_TESTS_DIR)/$$dir/ $$srcFiles ; \ >> > > This line always compile one single reproducer. They have mostly one or two classes and it is nearly unbelievable that single reproducer will have more tehn hundrets of files. Commandline have 128KB buffer. It i smore then enough for SIMPLE reproducer :D >> Maybe it would be good to compile the tests in a program loop (it's >> possible to create for-each loop which can run for files found by find >> ;-) ) but if your solution works, I'm ok with it. >> >> >> Also ChangeLog entry should be IMHO reworded as it's not understandable >> (at least for me, but as you know I'm not a native speaker ;-) >> >> Cheers, >> Pavel >> >> >> Jiri Vanek wrote: >>> Hi! >>> This patch removes old compiling of files in src directory (by "*") in >>> simple reproducers by finding .java files (honours also directory >>> structure which previous technique ignored) and also copy all not java >>> files into resulted jar (also ignored in "*" approach) >>> Motivation for this patch are by-jnlp-signed reproducers which can >>> appear soon and I do not want to have special build code for them (== >>> including application.jnlp or template.jnlp files) >>> >>> >>> 2011-07-12 Jiri Vanek >>> >>> *Makefile.am: (stamps/netx-dist-tests-prepare-reproducers.stamp): >>> now honour directory structure under srcs in simple reproducer and >>> copy also not compiled java files into resulted jars from src directory >>> >> > New changelog: > 2011-07-19 Jiri Vanek > > *Makefile.am: (stamps/netx-dist-tests-prepare-reproducers.stamp): > now are compiled files correctly compiled from directory structure. > Also not java files are copied with expected directory structure and > jarred together with classes. > > > > Better? The patch remains same. > > Regards J. > > > honoredDirs.patch > I think that I'm following the rest of icedtea-web styl. I'm creating file with list of reproduces in one step, and then compiling and jarring them in second. Please note, that there is much more reproducers then files in each of one of them. > > diff -r 4267bb156f08 Makefile.am > --- a/Makefile.am Tue Jul 19 12:14:35 2011 -0400 > +++ b/Makefile.am Tue Jul 19 19:16:19 2011 +0200 > @@ -465,11 +465,18 @@ > stamps/netx-dist-tests-prepare-reproducers.stamp: junit-jnlp-dist-dirs.txt > simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-dirs.txt `); \ ^^ list gathered in previous step > for dir in "$${simpleReproducers[@]}" ; do \ traversing through this list > + echo "processing: $$dir" ; \ > mkdir -p $(JNLP_TESTS_DIR)/$$dir ; \ > - $(BOOT_DIR)/bin/javac -d $(JNLP_TESTS_DIR)/$$dir/ $(JNLP_TESTS_SRCDIR)/simple/$$dir/srcs/* ; \ > d=`pwd` ; \ > + cd $(JNLP_TESTS_SRCDIR)/simple/$$dir/srcs/ ; \ > + srcFiles=`find . -mindepth 1 -type f -name "*.java" | sed "s/.\/*//"` ; \ finding java files of this reproducer > + notSrcFiles=`find . -mindepth 1 -type f \! -name "*.java" | sed "s/.\/*//"` ; \ finding non-java files of this reproducer > + $(BOOT_DIR)/bin/javac -d $(JNLP_TESTS_DIR)/$$dir/ $$srcFiles ; \ all java files of this reproducer compiled > + if [ -n "$$notSrcFiles" ] ; then \ > + cp -R --parents $$notSrcFiles $(JNLP_TESTS_DIR)/$$dir/ ; \ all non src files of reproducer copied. > + fi ; \ > cd $(JNLP_TESTS_DIR)/$$dir/ ; \ > - $(BOOT_DIR)/bin/jar cf $(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar * ; \ > + $(BOOT_DIR)/bin/jar cf $(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar * ; \ final jar constructed from classes and copied files. > cd $$d ; \ > cp -R $(JNLP_TESTS_SRCDIR)/simple/$$dir/resources/* $(JNLP_TESTS_SERVER_DEPLOYDIR)/ ; \ > done ; \ > diff -r 4267bb156f08 tests/jnlp_tests/README > --- a/tests/jnlp_tests/README Tue Jul 19 12:14:35 2011 -0400 > +++ b/tests/jnlp_tests/README Tue Jul 19 19:16:19 2011 +0200 > @@ -1,1 +1,2 @@ > -Each file in directory simple must follows naming convention and is compiled/jared automatically into server's working directory and content of resources likewise. The name of jnlp is independent, and there can be even more jnlps for each future jar. Files in advanced directory have to care about themselves, but even those can have some parts inside simple directory, so some parts of them are processed automatically. There are three reproducers ? simpletest1, simpletest2 and deadlocktest, which tests test?s suite itself and serve as examples of behaviour. > +Each file in directory simple must follows naming convention and is compiled/jared automatically into server's working directory and content of resources likewise. The name of jnlp is independent, and there can be even more jnlps for each future jar. Directories should be honored in srcs and in resources, but noty in testcases. > +Files in advanced directory have to care about themselves, but even those can have some parts inside simple directory, so some parts of them are processed automatically. There are three reproducers ? simpletest1, simpletest2 and deadlocktest, which tests test?s suite itself and serve as examples of behaviour. From ptisnovs at icedtea.classpath.org Wed Jul 20 01:28:32 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 20 Jul 2011 08:28:32 +0000 Subject: /hg/icedtea6: S4917091: javac rejects array over 128 in length Message-ID: changeset 96f22f84fb9d in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=96f22f84fb9d author: ptisnovs date: Wed Jul 20 10:28:01 2011 +0200 S4917091: javac rejects array over 128 in length diffstat: ChangeLog | 7 + Makefile.am | 3 +- NEWS | 1 + patches/openjdk/4917091-javac_rejects_array_over_128_in_length.patch | 306 ++++++++++ 4 files changed, 316 insertions(+), 1 deletions(-) diffs (354 lines): diff -r 50eeb180dd77 -r 96f22f84fb9d ChangeLog --- a/ChangeLog Tue Jul 19 13:19:30 2011 +0200 +++ b/ChangeLog Wed Jul 20 10:28:01 2011 +0200 @@ -1,3 +1,10 @@ +2011-07-20 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/4917091-javac_rejects_array_over_128_in_length.patch: + Backport of 4917091. + 2011-07-19 Marc Schoenefeld Pavel Tisnovsky diff -r 50eeb180dd77 -r 96f22f84fb9d Makefile.am --- a/Makefile.am Tue Jul 19 13:19:30 2011 +0200 +++ b/Makefile.am Wed Jul 20 10:28:01 2011 +0200 @@ -365,7 +365,8 @@ patches/jtreg-ConstructDeflaterInput-fix.patch \ patches/openjdk/6613904-GroupLayout_createParallelGroup_null_arg.patch \ patches/openjdk/7049339-anyblit-broken.patch \ - patches/jtreg-hotspot-Test7020373-fix.patch + patches/jtreg-hotspot-Test7020373-fix.patch \ + patches/openjdk/4917091-javac_rejects_array_over_128_in_length.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r 50eeb180dd77 -r 96f22f84fb9d NEWS --- a/NEWS Tue Jul 19 13:19:30 2011 +0200 +++ b/NEWS Wed Jul 20 10:28:01 2011 +0200 @@ -358,6 +358,7 @@ - S6758179: D3D: AlphaComposite is applied incorrectly for uncached opaque BufferedImage - S7049339: Image copy operations with a custom composite and a complex clip fail. - S6613904: javax.swing.GroupLayout.createParallelGroup(..) doesn't throw IllegalArgumentException for null arg + - S4917091: javac rejects array over 128 in length * Allow selection of test suites using the jtreg_checks argument e.g. jtreg_checks="langtools" * CACAO - Threadlist & threadobject improvements. diff -r 50eeb180dd77 -r 96f22f84fb9d patches/openjdk/4917091-javac_rejects_array_over_128_in_length.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/4917091-javac_rejects_array_over_128_in_length.patch Wed Jul 20 10:28:01 2011 +0200 @@ -0,0 +1,312 @@ +# HG changeset patch +# User jjg +# Date 1291911882 28800 +# Node ID bcf44475aeee9de251b8a8d519735138985dea12 +# Parent e3df8d7a9752d8b5df756d2029d77d69f963574b +4917091: javac rejects array over 128 in length +Reviewed-by: mcimadamore + +diff -r e3df8d7a9752 -r bcf44475aeee src/share/classes/com/sun/tools/javac/jvm/Gen.java +--- openjdk.orig/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java Thu Dec 09 15:50:57 2010 +0000 ++++ openjdk/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java Thu Dec 09 08:24:42 2010 -0800 +@@ -1749,7 +1749,7 @@ + */ + Item makeNewArray(DiagnosticPosition pos, Type type, int ndims) { + Type elemtype = types.elemtype(type); +- if (types.dimensions(elemtype) + ndims > ClassFile.MAX_DIMENSIONS) { ++ if (types.dimensions(type) > ClassFile.MAX_DIMENSIONS) { + log.error(pos, "limit.dimensions"); + nerrs++; + } +diff -r e3df8d7a9752 -r bcf44475aeee test/tools/javac/4917091/Test255.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/langtools/test/tools/javac/4917091/Test255.java Thu Dec 09 08:24:42 2010 -0800 +@@ -0,0 +1,89 @@ ++/* ++ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++/* ++ * @test ++ * @bug 4917091 ++ * @summary javac rejects array over 128 in length ++ */ ++ ++ ++public class Test255 { ++ public static void main(String... args) { ++ // allocating an array with 255 dimensions is allowed ++ Object expected = (Object)new Object ++ [1/*001*/][1/*002*/][1/*003*/][1/*004*/][1/*005*/] ++ [1/*006*/][1/*007*/][1/*008*/][1/*009*/][1/*010*/] ++ [1/*011*/][1/*012*/][1/*013*/][1/*014*/][1/*015*/] ++ [1/*016*/][1/*017*/][1/*018*/][1/*019*/][1/*020*/] ++ [1/*021*/][1/*022*/][1/*023*/][1/*024*/][1/*025*/] ++ [1/*026*/][1/*027*/][1/*028*/][1/*029*/][1/*030*/] ++ [1/*031*/][1/*032*/][1/*033*/][1/*034*/][1/*035*/] ++ [1/*036*/][1/*037*/][1/*038*/][1/*039*/][1/*040*/] ++ [1/*041*/][1/*042*/][1/*043*/][1/*044*/][1/*045*/] ++ [1/*046*/][1/*047*/][1/*048*/][1/*049*/][1/*050*/] ++ [1/*051*/][1/*052*/][1/*053*/][1/*054*/][1/*055*/] ++ [1/*056*/][1/*057*/][1/*058*/][1/*059*/][1/*060*/] ++ [1/*061*/][1/*062*/][1/*063*/][1/*064*/][1/*065*/] ++ [1/*066*/][1/*067*/][1/*068*/][1/*069*/][1/*070*/] ++ [1/*071*/][1/*072*/][1/*073*/][1/*074*/][1/*075*/] ++ [1/*076*/][1/*077*/][1/*078*/][1/*079*/][1/*080*/] ++ [1/*081*/][1/*082*/][1/*083*/][1/*084*/][1/*085*/] ++ [1/*086*/][1/*087*/][1/*088*/][1/*089*/][1/*090*/] ++ [1/*091*/][1/*092*/][1/*093*/][1/*094*/][1/*095*/] ++ [1/*096*/][1/*097*/][1/*098*/][1/*099*/][1/*100*/] ++ ++ [1/*101*/][1/*102*/][1/*103*/][1/*104*/][1/*105*/] ++ [1/*106*/][1/*107*/][1/*108*/][1/*109*/][1/*110*/] ++ [1/*111*/][1/*112*/][1/*113*/][1/*114*/][1/*115*/] ++ [1/*116*/][1/*117*/][1/*118*/][1/*119*/][1/*120*/] ++ [1/*121*/][1/*122*/][1/*123*/][1/*124*/][1/*125*/] ++ [1/*126*/][1/*127*/][1/*128*/][1/*129*/][1/*130*/] ++ [1/*131*/][1/*132*/][1/*133*/][1/*134*/][1/*135*/] ++ [1/*136*/][1/*137*/][1/*138*/][1/*139*/][1/*140*/] ++ [1/*141*/][1/*142*/][1/*143*/][1/*144*/][1/*145*/] ++ [1/*146*/][1/*147*/][1/*148*/][1/*149*/][1/*150*/] ++ [1/*151*/][1/*152*/][1/*153*/][1/*154*/][1/*155*/] ++ [1/*156*/][1/*157*/][1/*158*/][1/*159*/][1/*160*/] ++ [1/*161*/][1/*162*/][1/*163*/][1/*164*/][1/*165*/] ++ [1/*166*/][1/*167*/][1/*168*/][1/*169*/][1/*170*/] ++ [1/*171*/][1/*172*/][1/*173*/][1/*174*/][1/*175*/] ++ [1/*176*/][1/*177*/][1/*178*/][1/*179*/][1/*180*/] ++ [1/*181*/][1/*182*/][1/*183*/][1/*184*/][1/*185*/] ++ [1/*186*/][1/*187*/][1/*188*/][1/*189*/][1/*190*/] ++ [1/*191*/][1/*192*/][1/*193*/][1/*194*/][1/*195*/] ++ [1/*196*/][1/*197*/][1/*198*/][1/*199*/][1/*200*/] ++ ++ [1/*201*/][1/*202*/][1/*203*/][1/*204*/][1/*205*/] ++ [1/*206*/][1/*207*/][1/*208*/][1/*209*/][1/*210*/] ++ [1/*211*/][1/*212*/][1/*213*/][1/*214*/][1/*215*/] ++ [1/*216*/][1/*217*/][1/*218*/][1/*219*/][1/*220*/] ++ [1/*221*/][1/*222*/][1/*223*/][1/*224*/][1/*225*/] ++ [1/*226*/][1/*227*/][1/*228*/][1/*229*/][1/*230*/] ++ [1/*231*/][1/*232*/][1/*233*/][1/*234*/][1/*235*/] ++ [1/*236*/][1/*237*/][1/*238*/][1/*239*/][1/*240*/] ++ [1/*241*/][1/*242*/][1/*243*/][1/*244*/][1/*245*/] ++ [1/*246*/][1/*247*/][1/*248*/][1/*249*/][1/*250*/] ++ [1/*251*/][1/*252*/][1/*253*/][1/*254*/][1/*255*/]; ++ } ++} +diff -r e3df8d7a9752 -r bcf44475aeee test/tools/javac/4917091/Test256a.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/langtools/test/tools/javac/4917091/Test256a.java Thu Dec 09 08:24:42 2010 -0800 +@@ -0,0 +1,88 @@ ++/* ++ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++/* ++ * @test ++ * @bug 4917091 ++ * @summary javac rejects array over 128 in length ++ * @compile/fail/ref=Test256a.out -XDrawDiagnostics Test256a.java ++ */ ++ ++public class Test256a { ++ // allocating an array with more than 255 dimensions is not allowed ++ static Object expected = (Object)new Object ++ [1/*001*/][1/*002*/][1/*003*/][1/*004*/][1/*005*/] ++ [1/*006*/][1/*007*/][1/*008*/][1/*009*/][1/*010*/] ++ [1/*011*/][1/*012*/][1/*013*/][1/*014*/][1/*015*/] ++ [1/*016*/][1/*017*/][1/*018*/][1/*019*/][1/*020*/] ++ [1/*021*/][1/*022*/][1/*023*/][1/*024*/][1/*025*/] ++ [1/*026*/][1/*027*/][1/*028*/][1/*029*/][1/*030*/] ++ [1/*031*/][1/*032*/][1/*033*/][1/*034*/][1/*035*/] ++ [1/*036*/][1/*037*/][1/*038*/][1/*039*/][1/*040*/] ++ [1/*041*/][1/*042*/][1/*043*/][1/*044*/][1/*045*/] ++ [1/*046*/][1/*047*/][1/*048*/][1/*049*/][1/*050*/] ++ [1/*051*/][1/*052*/][1/*053*/][1/*054*/][1/*055*/] ++ [1/*056*/][1/*057*/][1/*058*/][1/*059*/][1/*060*/] ++ [1/*061*/][1/*062*/][1/*063*/][1/*064*/][1/*065*/] ++ [1/*066*/][1/*067*/][1/*068*/][1/*069*/][1/*070*/] ++ [1/*071*/][1/*072*/][1/*073*/][1/*074*/][1/*075*/] ++ [1/*076*/][1/*077*/][1/*078*/][1/*079*/][1/*080*/] ++ [1/*081*/][1/*082*/][1/*083*/][1/*084*/][1/*085*/] ++ [1/*086*/][1/*087*/][1/*088*/][1/*089*/][1/*090*/] ++ [1/*091*/][1/*092*/][1/*093*/][1/*094*/][1/*095*/] ++ [1/*096*/][1/*097*/][1/*098*/][1/*099*/][1/*100*/] ++ ++ [1/*101*/][1/*102*/][1/*103*/][1/*104*/][1/*105*/] ++ [1/*106*/][1/*107*/][1/*108*/][1/*109*/][1/*110*/] ++ [1/*111*/][1/*112*/][1/*113*/][1/*114*/][1/*115*/] ++ [1/*116*/][1/*117*/][1/*118*/][1/*119*/][1/*120*/] ++ [1/*121*/][1/*122*/][1/*123*/][1/*124*/][1/*125*/] ++ [1/*126*/][1/*127*/][1/*128*/][1/*129*/][1/*130*/] ++ [1/*131*/][1/*132*/][1/*133*/][1/*134*/][1/*135*/] ++ [1/*136*/][1/*137*/][1/*138*/][1/*139*/][1/*140*/] ++ [1/*141*/][1/*142*/][1/*143*/][1/*144*/][1/*145*/] ++ [1/*146*/][1/*147*/][1/*148*/][1/*149*/][1/*150*/] ++ [1/*151*/][1/*152*/][1/*153*/][1/*154*/][1/*155*/] ++ [1/*156*/][1/*157*/][1/*158*/][1/*159*/][1/*160*/] ++ [1/*161*/][1/*162*/][1/*163*/][1/*164*/][1/*165*/] ++ [1/*166*/][1/*167*/][1/*168*/][1/*169*/][1/*170*/] ++ [1/*171*/][1/*172*/][1/*173*/][1/*174*/][1/*175*/] ++ [1/*176*/][1/*177*/][1/*178*/][1/*179*/][1/*180*/] ++ [1/*181*/][1/*182*/][1/*183*/][1/*184*/][1/*185*/] ++ [1/*186*/][1/*187*/][1/*188*/][1/*189*/][1/*190*/] ++ [1/*191*/][1/*192*/][1/*193*/][1/*194*/][1/*195*/] ++ [1/*196*/][1/*197*/][1/*198*/][1/*199*/][1/*200*/] ++ ++ [1/*201*/][1/*202*/][1/*203*/][1/*204*/][1/*205*/] ++ [1/*206*/][1/*207*/][1/*208*/][1/*209*/][1/*210*/] ++ [1/*211*/][1/*212*/][1/*213*/][1/*214*/][1/*215*/] ++ [1/*216*/][1/*217*/][1/*218*/][1/*219*/][1/*220*/] ++ [1/*221*/][1/*222*/][1/*223*/][1/*224*/][1/*225*/] ++ [1/*226*/][1/*227*/][1/*228*/][1/*229*/][1/*230*/] ++ [1/*231*/][1/*232*/][1/*233*/][1/*234*/][1/*235*/] ++ [1/*236*/][1/*237*/][1/*238*/][1/*239*/][1/*240*/] ++ [1/*241*/][1/*242*/][1/*243*/][1/*244*/][1/*245*/] ++ [1/*246*/][1/*247*/][1/*248*/][1/*249*/][1/*250*/] ++ [1/*251*/][1/*252*/][1/*253*/][1/*254*/][1/*255*/] ++ [1/*256*/]; ++} +diff -r e3df8d7a9752 -r bcf44475aeee test/tools/javac/4917091/Test256a.out +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/langtools/test/tools/javac/4917091/Test256a.out Thu Dec 09 08:24:42 2010 -0800 +@@ -0,0 +1,2 @@ ++Test256a.java:33:46: compiler.err.limit.dimensions ++1 error +diff -r e3df8d7a9752 -r bcf44475aeee test/tools/javac/4917091/Test256b.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/langtools/test/tools/javac/4917091/Test256b.java Thu Dec 09 08:24:42 2010 -0800 +@@ -0,0 +1,91 @@ ++/* ++ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++/* ++ * @test ++ * @bug 4917091 ++ * @summary javac rejects array over 128 in length ++ * @compile/fail/ref=Test256b.out -XDrawDiagnostics Test256b.java ++ */ ++ ++public class Test256b { ++ // allocating an array with 255 dimensions whose component ++ // type provides additional dimensions is not allowed, ++ // since the type descriptor for any array is limited to ++ // 255 dimensions: JVMS3, section 4.3.2. ++ static Object expected = (Object)new Object ++ [1/*001*/][1/*002*/][1/*003*/][1/*004*/][1/*005*/] ++ [1/*006*/][1/*007*/][1/*008*/][1/*009*/][1/*010*/] ++ [1/*011*/][1/*012*/][1/*013*/][1/*014*/][1/*015*/] ++ [1/*016*/][1/*017*/][1/*018*/][1/*019*/][1/*020*/] ++ [1/*021*/][1/*022*/][1/*023*/][1/*024*/][1/*025*/] ++ [1/*026*/][1/*027*/][1/*028*/][1/*029*/][1/*030*/] ++ [1/*031*/][1/*032*/][1/*033*/][1/*034*/][1/*035*/] ++ [1/*036*/][1/*037*/][1/*038*/][1/*039*/][1/*040*/] ++ [1/*041*/][1/*042*/][1/*043*/][1/*044*/][1/*045*/] ++ [1/*046*/][1/*047*/][1/*048*/][1/*049*/][1/*050*/] ++ [1/*051*/][1/*052*/][1/*053*/][1/*054*/][1/*055*/] ++ [1/*056*/][1/*057*/][1/*058*/][1/*059*/][1/*060*/] ++ [1/*061*/][1/*062*/][1/*063*/][1/*064*/][1/*065*/] ++ [1/*066*/][1/*067*/][1/*068*/][1/*069*/][1/*070*/] ++ [1/*071*/][1/*072*/][1/*073*/][1/*074*/][1/*075*/] ++ [1/*076*/][1/*077*/][1/*078*/][1/*079*/][1/*080*/] ++ [1/*081*/][1/*082*/][1/*083*/][1/*084*/][1/*085*/] ++ [1/*086*/][1/*087*/][1/*088*/][1/*089*/][1/*090*/] ++ [1/*091*/][1/*092*/][1/*093*/][1/*094*/][1/*095*/] ++ [1/*096*/][1/*097*/][1/*098*/][1/*099*/][1/*100*/] ++ ++ [1/*101*/][1/*102*/][1/*103*/][1/*104*/][1/*105*/] ++ [1/*106*/][1/*107*/][1/*108*/][1/*109*/][1/*110*/] ++ [1/*111*/][1/*112*/][1/*113*/][1/*114*/][1/*115*/] ++ [1/*116*/][1/*117*/][1/*118*/][1/*119*/][1/*120*/] ++ [1/*121*/][1/*122*/][1/*123*/][1/*124*/][1/*125*/] ++ [1/*126*/][1/*127*/][1/*128*/][1/*129*/][1/*130*/] ++ [1/*131*/][1/*132*/][1/*133*/][1/*134*/][1/*135*/] ++ [1/*136*/][1/*137*/][1/*138*/][1/*139*/][1/*140*/] ++ [1/*141*/][1/*142*/][1/*143*/][1/*144*/][1/*145*/] ++ [1/*146*/][1/*147*/][1/*148*/][1/*149*/][1/*150*/] ++ [1/*151*/][1/*152*/][1/*153*/][1/*154*/][1/*155*/] ++ [1/*156*/][1/*157*/][1/*158*/][1/*159*/][1/*160*/] ++ [1/*161*/][1/*162*/][1/*163*/][1/*164*/][1/*165*/] ++ [1/*166*/][1/*167*/][1/*168*/][1/*169*/][1/*170*/] ++ [1/*171*/][1/*172*/][1/*173*/][1/*174*/][1/*175*/] ++ [1/*176*/][1/*177*/][1/*178*/][1/*179*/][1/*180*/] ++ [1/*181*/][1/*182*/][1/*183*/][1/*184*/][1/*185*/] ++ [1/*186*/][1/*187*/][1/*188*/][1/*189*/][1/*190*/] ++ [1/*191*/][1/*192*/][1/*193*/][1/*194*/][1/*195*/] ++ [1/*196*/][1/*197*/][1/*198*/][1/*199*/][1/*200*/] ++ ++ [1/*201*/][1/*202*/][1/*203*/][1/*204*/][1/*205*/] ++ [1/*206*/][1/*207*/][1/*208*/][1/*209*/][1/*210*/] ++ [1/*211*/][1/*212*/][1/*213*/][1/*214*/][1/*215*/] ++ [1/*216*/][1/*217*/][1/*218*/][1/*219*/][1/*220*/] ++ [1/*221*/][1/*222*/][1/*223*/][1/*224*/][1/*225*/] ++ [1/*226*/][1/*227*/][1/*228*/][1/*229*/][1/*230*/] ++ [1/*231*/][1/*232*/][1/*233*/][1/*234*/][1/*235*/] ++ [1/*236*/][1/*237*/][1/*238*/][1/*239*/][1/*240*/] ++ [1/*241*/][1/*242*/][1/*243*/][1/*244*/][1/*245*/] ++ [1/*246*/][1/*247*/][1/*248*/][1/*249*/][1/*250*/] ++ [1/*251*/][1/*252*/][1/*253*/][1/*254*/][1/*255*/] ++ []; ++} +diff -r e3df8d7a9752 -r bcf44475aeee test/tools/javac/4917091/Test256b.out +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/langtools/test/tools/javac/4917091/Test256b.out Thu Dec 09 08:24:42 2010 -0800 +@@ -0,0 +1,2 @@ ++Test256b.java:36:46: compiler.err.limit.dimensions ++1 error From ptisnovs at icedtea.classpath.org Wed Jul 20 03:14:38 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 20 Jul 2011 10:14:38 +0000 Subject: /hg/icedtea7: Updated regression test hotspot/7020373: added mis... Message-ID: changeset 0eac7d4e7536 in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=0eac7d4e7536 author: ptisnovs date: Wed Jul 20 12:12:22 2011 +0200 Updated regression test hotspot/7020373: added missing source used to create the reproducer. diffstat: ChangeLog | 9 +++++++++ Makefile.am | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diffs (37 lines): diff -r db4c20941851 -r 0eac7d4e7536 ChangeLog --- a/ChangeLog Sun Jul 17 15:40:18 2011 +0200 +++ b/ChangeLog Wed Jul 20 12:12:22 2011 +0200 @@ -1,3 +1,12 @@ +2011-07-20 Marc Schoenefeld + Pavel Tisnovsky + + * Makefile.am: + (HOTSPOT_CHANGESET): Update regression test + hotspot/7020373: added missing source used + to create the reproducer. + (HOTSPOT_SHA256SUM): Likewise + 2011-07-17 Mark Wielaard * Makefile.am (CORBA_SHA256SUM): Updated for new icedtea hg server diff -r db4c20941851 -r 0eac7d4e7536 Makefile.am --- a/Makefile.am Sun Jul 17 15:40:18 2011 +0200 +++ b/Makefile.am Wed Jul 20 12:12:22 2011 +0200 @@ -3,7 +3,7 @@ OPENJDK_VERSION = b147 CORBA_CHANGESET = 616c760dc288 -HOTSPOT_CHANGESET = 6844f4ba31ea +HOTSPOT_CHANGESET = 5d5c6ef3435d JAXP_CHANGESET = c40983d6ae70 JAXWS_CHANGESET = 83db5e316798 JDK_CHANGESET = 483d8dacfbd8 @@ -11,7 +11,7 @@ OPENJDK_CHANGESET = 3defd24c2671 CORBA_SHA256SUM = 7589c42e88b4342750bea5afa306cc662cc9c5f7607fad96f70083ce70f4526e -HOTSPOT_SHA256SUM = b65f1a202851c5db98507477099639354fb536f51b7ce0fb2b8251eb377de328 +HOTSPOT_SHA256SUM = e0114f1beb395065fbe1421a248f7169898bde47ac7b33a81f354de453e3b5b1 JAXP_SHA256SUM = 6ab0cab1965edb28e4093b55436abd04fbffe0b0251016043c75246c4ee9dc2d JAXWS_SHA256SUM = 5567c90ce2857016365b2e346783a3b16ec0e76b80586a0371f601b4fed01f21 JDK_SHA256SUM = c698a60613673bfc2e25d7b4d163b192116d5ce7d1a1fb63a1c6349686ce30d7 From ptisnovs at redhat.com Wed Jul 20 04:33:23 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Wed, 20 Jul 2011 13:33:23 +0200 Subject: Reviewer needed: backport of javac fix into IcedTea6 HEAD (6390045: Unexpected error "cannot access java.lang.Void" with '-target cldc1.0' with -source >=1.5) Message-ID: <4E26BD03.1010006@redhat.com> Greetings, is it possible to backport following java compiler fix into IcedTea6 HEAD please? It's this fix: '6390045: Unexpected error "cannot access java.lang.Void" with '-target cldc1.0' with -source >=1.5' which can be checked by the regression test contained in the patch itself (it's already checked on RHEL 5 x86_64, of course). ChangeLog entry: 2011-07-20 Pavel Tisnovsky * Makefile.am: added new patch * NEWS: updated with backport * patches/openjdk/6390045-error_cannot_access_java_lang_void.patch: Backport of 6390045. Can anybody please review this change? Thank you in advance, Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: 6390045_hg_diff.patch Type: text/x-patch Size: 5940 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110720/09674c3e/6390045_hg_diff.patch From andrew at icedtea.classpath.org Wed Jul 20 04:32:47 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 20 Jul 2011 11:32:47 +0000 Subject: /hg/release/icedtea6-1.9: Allow Linux 3* to pass through the Hot... Message-ID: changeset b80005297ae5 in /hg/release/icedtea6-1.9 details: http://icedtea.classpath.org/hg/release/icedtea6-1.9?cmd=changeset;node=b80005297ae5 author: Andrew John Hughes date: Wed Jul 20 12:32:30 2011 +0100 Allow Linux 3* to pass through the HotSpot OS version filter. 2011-06-28 Andrew John Hughes * Makefile.am: Add new patch. * patches/support_linux_3.patch: Allow Linux 3* through the HotSpot OS version filter. * NEWS: Updated. diffstat: ChangeLog | 8 ++++++++ Makefile.am | 3 ++- NEWS | 1 + patches/support_linux_3.patch | 18 ++++++++++++++++++ 4 files changed, 29 insertions(+), 1 deletions(-) diffs (62 lines): diff -r 11e7784eb228 -r b80005297ae5 ChangeLog --- a/ChangeLog Tue Jul 19 22:04:04 2011 +0100 +++ b/ChangeLog Wed Jul 20 12:32:30 2011 +0100 @@ -1,3 +1,11 @@ +2011-06-28 Andrew John Hughes + + * Makefile.am: Add new patch. + * patches/support_linux_3.patch: + Allow Linux 3* through the HotSpot OS version + filter. + * NEWS: Updated. + 2011-07-11 Andrew John Hughes PR744: Patching error diff -r 11e7784eb228 -r b80005297ae5 Makefile.am --- a/Makefile.am Tue Jul 19 22:04:04 2011 +0100 +++ b/Makefile.am Wed Jul 20 12:32:30 2011 +0100 @@ -353,7 +353,8 @@ patches/jtreg-LastErrorString.patch \ patches/shark-llvm-2.9.patch \ patches/mark_sun_toolkit_privileged_code.patch \ - patches/fonts-rhel-version.patch + patches/fonts-rhel-version.patch \ + patches/support_linux_3.patch if WITH_ALT_HSBUILD ICEDTEA_PATCHES += \ diff -r 11e7784eb228 -r b80005297ae5 NEWS --- a/NEWS Tue Jul 19 22:04:04 2011 +0100 +++ b/NEWS Wed Jul 20 12:32:30 2011 +0100 @@ -12,6 +12,7 @@ * Bug Fixes - PR744: icedtea6-1.10.2 : patching error + - PR748: Icedtea6 fails to build with Linux 3.0. * Shark - PR632: patches/security/20110215/6878713.patch breaks shark zero build diff -r 11e7784eb228 -r b80005297ae5 patches/support_linux_3.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/support_linux_3.patch Wed Jul 20 12:32:30 2011 +0100 @@ -0,0 +1,19 @@ +# HG changeset patch +# User andrew +# Date 1309217125 -3600 +# Node ID f7e8b10f51c6a622520b55df0c644fb09ec78542 +# Parent b8227c320dec384a94026fcaa650b0ebd4eef13b +Allow building HotSpot with any Linux 3 version. + +diff -r b8227c320dec -r f7e8b10f51c6 make/linux/Makefile +--- openjdk/hotspot/make/linux/Makefile Wed Jun 15 18:56:52 2011 +0100 ++++ openjdk/hotspot/make/linux/Makefile Tue Jun 28 00:25:25 2011 +0100 +@@ -230,7 +230,7 @@ + # Solaris 2.5.1, 2.6). + # Disable this check by setting DISABLE_HOTSPOT_OS_VERSION_CHECK=ok. + +-SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 2.7% ++SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% + OS_VERSION := $(shell uname -r) + EMPTY_IF_NOT_SUPPORTED = $(filter $(SUPPORTED_OS_VERSION),$(OS_VERSION)) + From jvanek at redhat.com Wed Jul 20 05:08:55 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 20 Jul 2011 14:08:55 +0200 Subject: Reviewer needed: backport of javac fix into IcedTea6 HEAD (6390045: Unexpected error "cannot access java.lang.Void" with '-target cldc1.0' with -source >=1.5) In-Reply-To: <4E26BD03.1010006@redhat.com> References: <4E26BD03.1010006@redhat.com> Message-ID: <4E26C557.4070409@redhat.com> Hi! Patch itself looks good, but it is not applicable. It is funny taht this one is in collision with your last commit:D When patch corrected for head, then worked fine (f13 x86_64). Adapt to head and feel free to commit. J. On 07/20/2011 01:33 PM, Pavel Tisnovsky wrote: > Greetings, > > is it possible to backport following java compiler fix into IcedTea6 > HEAD please? > > It's this fix: '6390045: Unexpected error "cannot access java.lang.Void" > with '-target cldc1.0' with -source>=1.5' which can be checked by the > regression test contained in the patch itself (it's already checked on > RHEL 5 x86_64, of course). > > ChangeLog entry: > > 2011-07-20 Pavel Tisnovsky > > * Makefile.am: added new patch FYI... or just to think about - maybe you can start to write here properly * Makefile.am:(target)added new patch_WHICh_one.patch - even when it is written as new file, below. But it will duplicate information in news. Its an question where this should belongs. (There is me the One who do not know). > * NEWS: updated with backport ^^^ again, maybe some info which one. and why. > * patches/openjdk/6390045-error_cannot_access_java_lang_void.patch: > Backport of 6390045. > > > Can anybody please review this change? > > Thank you in advance, > Pavel > > > 6390045_hg_diff.patch > > > diff -r 406c0d434ca3 Makefile.am > --- a/Makefile.am Fri Jul 15 08:53:07 2011 -0400 > +++ b/Makefile.am Mon Jul 18 19:13:56 2011 +0200 > @@ -365,7 +365,8 @@ > patches/openjdk/6758179-D3D_AlphaComposite_is_applied_incorrectly.patch \ > patches/jtreg-ConstructDeflaterInput-fix.patch \ > patches/openjdk/6613904-GroupLayout_createParallelGroup_null_arg.patch \ > - patches/openjdk/7049339-anyblit-broken.patch > + patches/openjdk/7049339-anyblit-broken.patch \ > + patches/openjdk/6390045-error_cannot_access_java_lang_void.patch > > if WITH_RHINO > ICEDTEA_PATCHES += \ > diff -r 406c0d434ca3 NEWS > --- a/NEWS Fri Jul 15 08:53:07 2011 -0400 > +++ b/NEWS Mon Jul 18 19:13:56 2011 +0200 > @@ -358,6 +358,7 @@ > - S6758179: D3D: AlphaComposite is applied incorrectly for uncached opaque BufferedImage > - S7049339: Image copy operations with a custom composite and a complex clip fail. > - S6613904: javax.swing.GroupLayout.createParallelGroup(..) doesn't throw IllegalArgumentException for null arg > + - S6390045: Unexpected error "cannot access java.lang.Void" with '-target cldc1.0' with -source>=1.5 > * Allow selection of test suites using the jtreg_checks argument e.g. jtreg_checks="langtools" > * CACAO > - Threadlist& threadobject improvements. > diff -r 406c0d434ca3 patches/openjdk/6390045-error_cannot_access_java_lang_void.patch > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/patches/openjdk/6390045-error_cannot_access_java_lang_void.patch Mon Jul 18 19:13:56 2011 +0200 > @@ -0,0 +1,104 @@ > +# HG changeset patch > +# User mcimadamore > +# Date 1249949533 -3600 > +# Node ID abe992640c5a766e54f8490cf1d85ff2aacbbb5d > +# Parent d5f6c475f475b905f04446ea54ff455cd9d067fe > +6390045: Unexpected error "cannot access java.lang.Void" with '-target cldc1.0' with -source>=1.5 > +Summary: javac needs to synthetize a fake java.lang.Void symbol if one is not given on the classpath > +Reviewed-by: jjg > + > +diff -r d5f6c475f475 -r abe992640c5a src/share/classes/com/sun/tools/javac/code/Symtab.java > +--- openjdk.orig/langtools/src/share/classes/com/sun/tools/javac/code/Symtab.java Tue Aug 11 01:11:37 2009 +0100 > ++++ openjdk/langtools/src/share/classes/com/sun/tools/javac/code/Symtab.java Tue Aug 11 01:12:13 2009 +0100 > +@@ -440,6 +440,7 @@ > + synthesizeEmptyInterfaceIfMissing(serializableType); > + synthesizeBoxTypeIfMissing(doubleType); > + synthesizeBoxTypeIfMissing(floatType); > ++ synthesizeBoxTypeIfMissing(voidType); > + > + // Enter a synthetic class that is used to mark internal > + // proprietary classes in ct.sym. This class does not have a > +diff -r d5f6c475f475 -r abe992640c5a test/tools/javac/6390045/T6390045a.java > +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 > ++++ openjdk/langtools/test/tools/javac/6390045/T6390045a.java Tue Aug 11 01:12:13 2009 +0100 > +@@ -0,0 +1,38 @@ > ++/* > ++ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. > ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. > ++ * > ++ * This code is free software; you can redistribute it and/or modify it > ++ * under the terms of the GNU General Public License version 2 only, as > ++ * published by the Free Software Foundation. > ++ * > ++ * This code is distributed in the hope that it will be useful, but WITHOUT > ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or > ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License > ++ * version 2 for more details (a copy is included in the LICENSE file that > ++ * accompanied this code). > ++ * > ++ * You should have received a copy of the GNU General Public License version > ++ * 2 along with this work; if not, write to the Free Software Foundation, > ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. > ++ * > ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, > ++ * CA 95054 USA or visitwww.sun.com if you need additional information or > ++ * have any questions. > ++ */ > ++ > ++/* > ++ * @test > ++ * @bug 6390045 > ++ * @summary Unexpected error "cannot access java.lang.Void" with '-target cldc1.0' with -source>=1.5 > ++ * > ++ * @author mcimadamore > ++ * @compile -XDfailcomplete=java.lang.Void T6390045a.java > ++ */ > ++ > ++class T6390045a { > ++ boolean b; > ++ short s; > ++ Object o; > ++ Object p = b ? o : s; > ++} > +diff -r d5f6c475f475 -r abe992640c5a test/tools/javac/6390045/T6390045b.java > +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 > ++++ openjdk/langtools/test/tools/javac/6390045/T6390045b.java Tue Aug 11 01:12:13 2009 +0100 > +@@ -0,0 +1,38 @@ > ++/* > ++ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. > ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. > ++ * > ++ * This code is free software; you can redistribute it and/or modify it > ++ * under the terms of the GNU General Public License version 2 only, as > ++ * published by the Free Software Foundation. > ++ * > ++ * This code is distributed in the hope that it will be useful, but WITHOUT > ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or > ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License > ++ * version 2 for more details (a copy is included in the LICENSE file that > ++ * accompanied this code). > ++ * > ++ * You should have received a copy of the GNU General Public License version > ++ * 2 along with this work; if not, write to the Free Software Foundation, > ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. > ++ * > ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, > ++ * CA 95054 USA or visitwww.sun.com if you need additional information or > ++ * have any questions. > ++ */ > ++ > ++/* > ++ * @test > ++ * @bug 6390045 > ++ * @summary Unexpected error "cannot access java.lang.Void" with '-target cldc1.0' with -source>=1.5 > ++ * > ++ * @author mcimadamore > ++ * @compile -XDfailcomplete=java.lang.Void T6390045b.java > ++ */ > ++ > ++class T6390045b { > ++ short s; > ++ Object o; > ++ Object p = choose(o, s); > ++ T choose(T t1, T t2) { return t1; } > ++} From ahughes at redhat.com Wed Jul 20 06:08:53 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Wed, 20 Jul 2011 14:08:53 +0100 Subject: Reviewer needed: backport of javac fix into IcedTea6 HEAD (6390045: Unexpected error "cannot access java.lang.Void" with '-target cldc1.0' with -source >=1.5) In-Reply-To: <4E26C557.4070409@redhat.com> References: <4E26BD03.1010006@redhat.com> <4E26C557.4070409@redhat.com> Message-ID: <20110720130853.GA22933@rivendell.middle-earth.co.uk> On 14:08 Wed 20 Jul , Jiri Vanek wrote: > > Hi! > > Patch itself looks good, but it is not applicable. It is funny taht this one is in collision with your last commit:D > When patch corrected for head, then worked fine (f13 x86_64). > Adapt to head and feel free to commit. > Please don't top-post. > J. > > On 07/20/2011 01:33 PM, Pavel Tisnovsky wrote: > > Greetings, > > > > is it possible to backport following java compiler fix into IcedTea6 > > HEAD please? > > > > It's this fix: '6390045: Unexpected error "cannot access java.lang.Void" > > with '-target cldc1.0' with -source>=1.5' which can be checked by the > > regression test contained in the patch itself (it's already checked on > > RHEL 5 x86_64, of course). > > > > ChangeLog entry: > > > > 2011-07-20 Pavel Tisnovsky > > > > * Makefile.am: added new patch > > FYI... or just to think about - maybe you can start to write here properly * Makefile.am:(target)added new patch_WHICh_one.patch - even when it is written as new file, below. > But it will duplicate information in news. Its an question where this should belongs. (There is me the One who do not know). Well the patch being added is the one in the ChangeLog... > > > * NEWS: updated with backport > ^^^ again, maybe some info which one. and why. > > * patches/openjdk/6390045-error_cannot_access_java_lang_void.patch: > > Backport of 6390045. ^^ i.e. here. > > > > > > Can anybody please review this change? > > Looks ok, but check the indentation in NEWS. > > Thank you in advance, > > Pavel > > > > > > 6390045_hg_diff.patch > > > > > > diff -r 406c0d434ca3 Makefile.am > > --- a/Makefile.am Fri Jul 15 08:53:07 2011 -0400 > > +++ b/Makefile.am Mon Jul 18 19:13:56 2011 +0200 > > @@ -365,7 +365,8 @@ > > patches/openjdk/6758179-D3D_AlphaComposite_is_applied_incorrectly.patch \ > > patches/jtreg-ConstructDeflaterInput-fix.patch \ > > patches/openjdk/6613904-GroupLayout_createParallelGroup_null_arg.patch \ > > - patches/openjdk/7049339-anyblit-broken.patch > > + patches/openjdk/7049339-anyblit-broken.patch \ > > + patches/openjdk/6390045-error_cannot_access_java_lang_void.patch > > > > if WITH_RHINO > > ICEDTEA_PATCHES += \ > > diff -r 406c0d434ca3 NEWS > > --- a/NEWS Fri Jul 15 08:53:07 2011 -0400 > > +++ b/NEWS Mon Jul 18 19:13:56 2011 +0200 > > @@ -358,6 +358,7 @@ > > - S6758179: D3D: AlphaComposite is applied incorrectly for uncached opaque BufferedImage > > - S7049339: Image copy operations with a custom composite and a complex clip fail. > > - S6613904: javax.swing.GroupLayout.createParallelGroup(..) doesn't throw IllegalArgumentException for null arg > > + - S6390045: Unexpected error "cannot access java.lang.Void" with '-target cldc1.0' with -source>=1.5 Indentation error here? > > * Allow selection of test suites using the jtreg_checks argument e.g. jtreg_checks="langtools" > > * CACAO > > - Threadlist& threadobject improvements. > > diff -r 406c0d434ca3 patches/openjdk/6390045-error_cannot_access_java_lang_void.patch > > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > > +++ b/patches/openjdk/6390045-error_cannot_access_java_lang_void.patch Mon Jul 18 19:13:56 2011 +0200 > > @@ -0,0 +1,104 @@ > > +# HG changeset patch > > +# User mcimadamore > > +# Date 1249949533 -3600 > > +# Node ID abe992640c5a766e54f8490cf1d85ff2aacbbb5d > > +# Parent d5f6c475f475b905f04446ea54ff455cd9d067fe > > +6390045: Unexpected error "cannot access java.lang.Void" with '-target cldc1.0' with -source>=1.5 > > +Summary: javac needs to synthetize a fake java.lang.Void symbol if one is not given on the classpath > > +Reviewed-by: jjg > > + > > +diff -r d5f6c475f475 -r abe992640c5a src/share/classes/com/sun/tools/javac/code/Symtab.java > > +--- openjdk.orig/langtools/src/share/classes/com/sun/tools/javac/code/Symtab.java Tue Aug 11 01:11:37 2009 +0100 > > ++++ openjdk/langtools/src/share/classes/com/sun/tools/javac/code/Symtab.java Tue Aug 11 01:12:13 2009 +0100 > > +@@ -440,6 +440,7 @@ > > + synthesizeEmptyInterfaceIfMissing(serializableType); > > + synthesizeBoxTypeIfMissing(doubleType); > > + synthesizeBoxTypeIfMissing(floatType); > > ++ synthesizeBoxTypeIfMissing(voidType); > > + > > + // Enter a synthetic class that is used to mark internal > > + // proprietary classes in ct.sym. This class does not have a > > +diff -r d5f6c475f475 -r abe992640c5a test/tools/javac/6390045/T6390045a.java > > +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 > > ++++ openjdk/langtools/test/tools/javac/6390045/T6390045a.java Tue Aug 11 01:12:13 2009 +0100 > > +@@ -0,0 +1,38 @@ > > ++/* > > ++ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. > > ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. > > ++ * > > ++ * This code is free software; you can redistribute it and/or modify it > > ++ * under the terms of the GNU General Public License version 2 only, as > > ++ * published by the Free Software Foundation. > > ++ * > > ++ * This code is distributed in the hope that it will be useful, but WITHOUT > > ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or > > ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License > > ++ * version 2 for more details (a copy is included in the LICENSE file that > > ++ * accompanied this code). > > ++ * > > ++ * You should have received a copy of the GNU General Public License version > > ++ * 2 along with this work; if not, write to the Free Software Foundation, > > ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. > > ++ * > > ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, > > ++ * CA 95054 USA or visitwww.sun.com if you need additional information or > > ++ * have any questions. > > ++ */ > > ++ > > ++/* > > ++ * @test > > ++ * @bug 6390045 > > ++ * @summary Unexpected error "cannot access java.lang.Void" with '-target cldc1.0' with -source>=1.5 > > ++ * > > ++ * @author mcimadamore > > ++ * @compile -XDfailcomplete=java.lang.Void T6390045a.java > > ++ */ > > ++ > > ++class T6390045a { > > ++ boolean b; > > ++ short s; > > ++ Object o; > > ++ Object p = b ? o : s; > > ++} > > +diff -r d5f6c475f475 -r abe992640c5a test/tools/javac/6390045/T6390045b.java > > +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 > > ++++ openjdk/langtools/test/tools/javac/6390045/T6390045b.java Tue Aug 11 01:12:13 2009 +0100 > > +@@ -0,0 +1,38 @@ > > ++/* > > ++ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. > > ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. > > ++ * > > ++ * This code is free software; you can redistribute it and/or modify it > > ++ * under the terms of the GNU General Public License version 2 only, as > > ++ * published by the Free Software Foundation. > > ++ * > > ++ * This code is distributed in the hope that it will be useful, but WITHOUT > > ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or > > ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License > > ++ * version 2 for more details (a copy is included in the LICENSE file that > > ++ * accompanied this code). > > ++ * > > ++ * You should have received a copy of the GNU General Public License version > > ++ * 2 along with this work; if not, write to the Free Software Foundation, > > ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. > > ++ * > > ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, > > ++ * CA 95054 USA or visitwww.sun.com if you need additional information or > > ++ * have any questions. > > ++ */ > > ++ > > ++/* > > ++ * @test > > ++ * @bug 6390045 > > ++ * @summary Unexpected error "cannot access java.lang.Void" with '-target cldc1.0' with -source>=1.5 > > ++ * > > ++ * @author mcimadamore > > ++ * @compile -XDfailcomplete=java.lang.Void T6390045b.java > > ++ */ > > ++ > > ++class T6390045b { > > ++ short s; > > ++ Object o; > > ++ Object p = choose(o, s); > > ++ T choose(T t1, T t2) { return t1; } > > ++} > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Wed Jul 20 07:12:41 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Wed, 20 Jul 2011 15:12:41 +0100 Subject: [SECURITY] IcedTea6 1.8.9 & 1.9.9 Released! Message-ID: <20110720141241.GB32327@rivendell.middle-earth.co.uk> There is a new set of security releases: IcedTea6 1.8.9 and IcedTea6 1.9.9. This security issue concerns IcedTea-Web, which is not part of the IcedTea6 1.10 series, hence there will be no IcedTea6 1.10 security update. However, an IcedTea6 1.10 bug fix update will follow shortly. This update contains the following security updates: * RH718164, CVE-2011-2513: Home directory path disclosure to untrusted apps The IcedTea project provides a harness to build the source code from OpenJDK6 using Free Software build tools. It also includes the only Free Java plugin and Web Start implementation, and support for additional architectures over and above x86, x86_64 and SPARC via the Zero assembler port. What Else Is New? ================= New in release 1.9.9 (2011-07-20): * Bug fixes - PR744: icedtea6-1.10.2 : patching error - PR748: Icedtea6 fails to build with Linux 3.0. New in release 1.8.9 (2011-07-20): * Bug Fixes - PR744: icedtea6-1.10.2 : patching error - PR748: Icedtea6 fails to build with Linux 3.0. * Shark - PR632: patches/security/20110215/6878713.patch breaks shark zero build The tarballs can be downloaded from: http://icedtea.classpath.org/download/source/icedtea6-1.8.9.tar.gz http://icedtea.classpath.org/download/source/icedtea6-1.9.9.tar.gz SHA256 sums e12e06c2ee642396f1d080d871a42fa4db38aced10bf13c20644f752ef03741f icedtea6-1.8.9.tar.gz c2419896f8925822b0135bcd2db37affcb2b9f6f50d782e7f6b8d23afb5beb39 icedtea6-1.9.9.tar.gz The following people helped with these releases: * Andrew John Hughes * Omair Majid * Xerxes R?nby * Pavel Tisnovsky * Mark Wielaard We would also like to thank the bug reporters and testers! To get started: $ tar xzf icedtea6-.tar.gz $ cd icedtea6- Full build requirements and instructions are in INSTALL: $ ./configure [--enable-zero --enable-pulse-java --enable-systemtap ...] $ make Thanks, -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From dbhole at redhat.com Wed Jul 20 07:32:04 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Wed, 20 Jul 2011 10:32:04 -0400 Subject: IcedTea-Web 1.0.4 and 1.1.1 (security releases) released Message-ID: <20110720143203.GH17111@redhat.com> IcedTea-Web 1.0.4 and 1.1.1 have been released. These are security fix only releases and address a couple of security issues. What?s new in 1.0.4 and 1.1.1: RH718164, CVE-2011-2513: Home directory path disclosure to untrusted applications RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation The following people helped with this release: Omair Majid Checksums: d3e841be0cca8daef70404df5fdfe678559e1b12cd0ae3d658da68f61ab888e1 icedtea-web-1.0.4.tar.gz 0051005302e698f2468e6cae275b8c58869c85be04c269f2f266389a4e6a66c7 icedtea-web-1.1.1.tar.gz Download links: http://icedtea.classpath.org/download/source/icedtea-web-1.0.4.tar.gz http://icedtea.classpath.org/download/source/icedtea-web-1.1.1.tar.gz After extracting, it can be built as per instructions here: http://icedtea.classpath.org/wiki/IcedTea-Web#Building_IcedTea-Web Cheers, Deepak From dbhole at icedtea.classpath.org Wed Jul 20 07:39:09 2011 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Wed, 20 Jul 2011 14:39:09 +0000 Subject: /hg/release/icedtea-web-1.0: 5 new changesets Message-ID: changeset b29fdd0f4d04 in /hg/release/icedtea-web-1.0 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.0?cmd=changeset;node=b29fdd0f4d04 author: Deepak Bhole date: Fri Jul 15 15:42:38 2011 -0400 RH718164, CVE-2011-2513: Home directory path disclosure to untrusted applications changeset b99f9a9769e0 in /hg/release/icedtea-web-1.0 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.0?cmd=changeset;node=b99f9a9769e0 author: Deepak Bhole date: Fri Jul 15 15:43:34 2011 -0400 RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation changeset 99a3760950c6 in /hg/release/icedtea-web-1.0 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.0?cmd=changeset;node=99a3760950c6 author: Deepak Bhole date: Fri Jul 15 15:44:17 2011 -0400 Prepare to release 1.0.4 changeset df07b8cb968a in /hg/release/icedtea-web-1.0 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.0?cmd=changeset;node=df07b8cb968a author: Deepak Bhole date: Wed Jul 20 09:31:11 2011 -0400 Added tag icedtea-web-1.0.4 for changeset 99a3760950c6 changeset 197556ca1b03 in /hg/release/icedtea-web-1.0 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.0?cmd=changeset;node=197556ca1b03 author: Deepak Bhole date: Wed Jul 20 09:31:28 2011 -0400 Prepare for 1.0.5 diffstat: .hgtags | 1 + ChangeLog | 37 ++ NEWS | 7 +- configure.ac | 2 +- netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java | 157 +++++++++++ netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 24 +- netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java | 4 + netx/net/sourceforge/jnlp/services/XExtendedService.java | 6 +- netx/net/sourceforge/jnlp/services/XFileContents.java | 3 +- netx/net/sourceforge/jnlp/util/UrlUtils.java | 53 +++ 10 files changed, 281 insertions(+), 13 deletions(-) diffs (432 lines): diff -r 7e1ca05d223f -r 197556ca1b03 .hgtags --- a/.hgtags Mon Jun 13 17:26:41 2011 -0400 +++ b/.hgtags Wed Jul 20 09:31:28 2011 -0400 @@ -3,3 +3,4 @@ 6af7ac54a177bf31d335ce4a58f6c7abcbd0333c icedtea-web-1.0.1 de51c15ae614f5877373d82a8fa492325d4d6db8 icedtea-web-1.0.2 1cff369667f834dba0d9f01722245c3004947647 icedtea-web-1.0.3 +99a3760950c668b7da194ac3705e13d4677b3ef7 icedtea-web-1.0.4 diff -r 7e1ca05d223f -r 197556ca1b03 ChangeLog --- a/ChangeLog Mon Jun 13 17:26:41 2011 -0400 +++ b/ChangeLog Wed Jul 20 09:31:28 2011 -0400 @@ -1,3 +1,40 @@ +2011-07-20 Deepak Bhole + + * configure.ac: Prepare for 1.0.5 + * NEWS: Same + +2011-07-15 Deepak Bhole + + * configure.ac: Prepare to release 1.0.4 + * NEWS: Same + +2011-07-14 Omair Majid + + RH718170, CVE-2011-2514: Java Web Start security warning dialog + manipulation + * netx/net/sourceforge/jnlp/services/XExtendedService.java + (openFile): Create XContents based on a copy of the File object to prevent + overloaded File classes from mangling the name. + (XFileContents): Create a separate copy of File object for local use. + +2011-07-14 Omair Majid + + RH718164, CVE-2011-2513: Home directory path disclosure to untrusted + applications + * netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java: New file. + * netx/net/sourceforge/jnlp/util/UrlUtils.java: New file. + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: + jarLocationSecurityMap now contains originating urls, not cache urls. + (initializeResources): Add remote url to map instead of local url. + (activateJars): Add remote url to the classloader's urls. Add mapping for + remote to local url. Put remote url in jarLocationSecurityMap. + (loadClass): Add remote url to the classloader's urls. Add mapping for + remote to local url. + (getCodeSourceSecurity): Update javadoc to note that the url must be + remote. + * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java + (initialize): Set the callback for URLJarFile. + 2011-06-13 Deepak Bhole * configure.ac: Prepare for 1.0.4. diff -r 7e1ca05d223f -r 197556ca1b03 NEWS --- a/NEWS Mon Jun 13 17:26:41 2011 -0400 +++ b/NEWS Wed Jul 20 09:31:28 2011 -0400 @@ -8,7 +8,12 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY -New in release 1.0.4 (2011-XX-XX): +New in release 1.0.5 (2011-XX-XX): + +New in release 1.0.4 (2011-07-20): +* Security updates: + - RH718164, CVE-2011-2513: Home directory path disclosure to untrusted applications + - RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation New in release 1.0.3 (2011-06-13): * Plugin diff -r 7e1ca05d223f -r 197556ca1b03 configure.ac --- a/configure.ac Mon Jun 13 17:26:41 2011 -0400 +++ b/configure.ac Wed Jul 20 09:31:28 2011 -0400 @@ -1,4 +1,4 @@ -AC_INIT([icedtea-web],[1.0.4pre],[distro-pkg-dev at openjdk.java.net], [icedtea-web], [http://icedtea.classpath.org/wiki/IcedTea-Web]) +AC_INIT([icedtea-web],[1.0.5pre],[distro-pkg-dev at openjdk.java.net], [icedtea-web], [http://icedtea.classpath.org/wiki/IcedTea-Web]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) diff -r 7e1ca05d223f -r 197556ca1b03 netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java Wed Jul 20 09:31:28 2011 -0400 @@ -0,0 +1,157 @@ +/* CachedJarFileCallback.java + Copyright (C) 2011 Red Hat, Inc. + Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as published by +the Free Software Foundation, version 2. + +IcedTea is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package net.sourceforge.jnlp.runtime; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URL; +import java.security.AccessController; +import java.security.PrivilegedActionException; +import java.security.PrivilegedExceptionAction; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.jar.JarFile; + +import net.sourceforge.jnlp.util.UrlUtils; + +import sun.net.www.protocol.jar.URLJarFile; +import sun.net.www.protocol.jar.URLJarFileCallBack; + +/** + * Invoked by URLJarFile to get a JarFile corresponding to a URL. + * + * Large parts of this class are based on JarFileFactory and URLJarFile. + */ +final class CachedJarFileCallback implements URLJarFileCallBack { + + private static final CachedJarFileCallback INSTANCE = new CachedJarFileCallback(); + + public synchronized static CachedJarFileCallback getInstance() { + return INSTANCE; + } + + /* our managed cache */ + private final Map mapping; + + private CachedJarFileCallback() { + mapping = new ConcurrentHashMap(); + } + + protected void addMapping(URL remoteUrl, URL localUrl) { + mapping.put(remoteUrl, localUrl); + } + + @Override + public JarFile retrieve(URL url) throws IOException { + URL localUrl = mapping.get(url); + + if (localUrl == null) { + /* + * If the jar url is not known, treat it as it would be treated in + * general by URLJarFile. + */ + return cacheJarFile(url); + } + + if (UrlUtils.isLocalFile(localUrl)) { + // if it is known to us, just return the cached file + return new JarFile(localUrl.getPath()); + } else { + // throw new IllegalStateException("a non-local file in cache"); + return null; + } + + } + + /* + * This method is a copy of URLJarFile.retrieve() without the callback check. + */ + private JarFile cacheJarFile(URL url) throws IOException { + JarFile result = null; + + final int BUF_SIZE = 2048; + + /* get the stream before asserting privileges */ + final InputStream in = url.openConnection().getInputStream(); + + try { + result = + AccessController.doPrivileged(new PrivilegedExceptionAction() { + @Override + public JarFile run() throws IOException { + OutputStream out = null; + File tmpFile = null; + try { + tmpFile = File.createTempFile("jar_cache", null); + tmpFile.deleteOnExit(); + out = new FileOutputStream(tmpFile); + int read = 0; + byte[] buf = new byte[BUF_SIZE]; + while ((read = in.read(buf)) != -1) { + out.write(buf, 0, read); + } + out.close(); + out = null; + return new URLJarFile(tmpFile, null); + } catch (IOException e) { + if (tmpFile != null) { + tmpFile.delete(); + } + throw e; + } finally { + if (in != null) { + in.close(); + } + if (out != null) { + out.close(); + } + } + } + }); + } catch (PrivilegedActionException pae) { + throw (IOException) pae.getException(); + } + + return result; + } + +} diff -r 7e1ca05d223f -r 197556ca1b03 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Mon Jun 13 17:26:41 2011 -0400 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Jul 20 09:31:28 2011 -0400 @@ -141,7 +141,7 @@ /** File entries in the jar files available to this classloader */ private TreeSet jarEntries = new TreeSet(); - /** Map of specific codesources to securitydesc */ + /** Map of specific original (remote) CodeSource Urls to securitydesc */ private HashMap jarLocationSecurityMap = new HashMap(); @@ -490,7 +490,7 @@ } } - jarLocationSecurityMap.put(location, jarSecurity); + jarLocationSecurityMap.put(jarDesc.getLocation(), jarSecurity); } catch (MalformedURLException mfe) { System.err.println(mfe.getMessage()); } @@ -711,7 +711,10 @@ try { URL fileURL = new URL("file://" + extractedJarLocation); - addURL(fileURL); + // there is no remote URL for this, so lets fake one + URL fakeRemote = new URL(jar.getLocation().toString() + "!" + je.getName()); + CachedJarFileCallback.getInstance().addMapping(fakeRemote, fileURL); + addURL(fakeRemote); SecurityDesc jarSecurity = file.getSecurity(); @@ -732,7 +735,7 @@ codebase.getHost()); } - jarLocationSecurityMap.put(fileURL, jarSecurity); + jarLocationSecurityMap.put(fakeRemote, jarSecurity); } catch (MalformedURLException mfue) { if (JNLPRuntime.isDebug()) @@ -747,15 +750,18 @@ } - addURL(location); + addURL(jar.getLocation()); // there is currently no mechanism to cache files per // instance.. so only index cached files if (localFile != null) { + CachedJarFileCallback.getInstance().addMapping(jar.getLocation(), localFile.toURL()); JarIndex index = JarIndex.getJarIndex(new JarFile(localFile.getAbsolutePath()), null); if (index != null) jarIndexes.add(index); + } else { + CachedJarFileCallback.getInstance().addMapping(jar.getLocation(), jar.getLocation()); } if (JNLPRuntime.isDebug()) @@ -1031,8 +1037,10 @@ throw new ClassNotFoundException(name); } - if (u != null) - addURL(u); + if (u != null) { + addURL(remoteURL); + CachedJarFileCallback.getInstance().addMapping(remoteURL, u); + } } @@ -1222,7 +1230,7 @@ /** * Returns the security descriptor for given code source URL * - * @param source The code source + * @param source the origin (remote) url of the code * @return The SecurityDescriptor for that source */ diff -r 7e1ca05d223f -r 197556ca1b03 netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Mon Jun 13 17:26:41 2011 -0400 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Wed Jul 20 09:31:28 2011 -0400 @@ -34,6 +34,8 @@ import javax.swing.UIManager; import javax.swing.text.html.parser.ParserDelegator; +import sun.net.www.protocol.jar.URLJarFile; + import net.sourceforge.jnlp.*; import net.sourceforge.jnlp.cache.*; import net.sourceforge.jnlp.security.JNLPAuthenticator; @@ -223,6 +225,8 @@ Security.setProperty("package.access", Security.getProperty("package.access")+",net.sourceforge.jnlp"); + URLJarFile.setCallBack(CachedJarFileCallback.getInstance()); + initialized = true; } diff -r 7e1ca05d223f -r 197556ca1b03 netx/net/sourceforge/jnlp/services/XExtendedService.java --- a/netx/net/sourceforge/jnlp/services/XExtendedService.java Mon Jun 13 17:26:41 2011 -0400 +++ b/netx/net/sourceforge/jnlp/services/XExtendedService.java Wed Jul 20 09:31:28 2011 -0400 @@ -34,10 +34,12 @@ public FileContents openFile(File file) throws IOException { + File secureFile = new File(file.getPath()); + /* FIXME: this opens a file with read/write mode, not just read or write */ - if (ServiceUtil.checkAccess(AccessType.READ_FILE, new Object[] { file.getAbsolutePath() })) { + if (ServiceUtil.checkAccess(AccessType.READ_FILE, new Object[] { secureFile.getAbsolutePath() })) { return (FileContents) ServiceUtil.createPrivilegedProxy(FileContents.class, - new XFileContents(file)); + new XFileContents(secureFile)); } else { return null; } diff -r 7e1ca05d223f -r 197556ca1b03 netx/net/sourceforge/jnlp/services/XFileContents.java --- a/netx/net/sourceforge/jnlp/services/XFileContents.java Mon Jun 13 17:26:41 2011 -0400 +++ b/netx/net/sourceforge/jnlp/services/XFileContents.java Wed Jul 20 09:31:28 2011 -0400 @@ -40,7 +40,8 @@ * Create a file contents implementation for the file. */ protected XFileContents(File file) { - this.file = file; + // create a safe copy + this.file = new File(file.getPath()); } /** diff -r 7e1ca05d223f -r 197556ca1b03 netx/net/sourceforge/jnlp/util/UrlUtils.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netx/net/sourceforge/jnlp/util/UrlUtils.java Wed Jul 20 09:31:28 2011 -0400 @@ -0,0 +1,53 @@ +/* UrlUtils.java + Copyright (C) 2011 Red Hat, Inc. + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as published by +the Free Software Foundation, version 2. + +IcedTea is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package net.sourceforge.jnlp.util; + +import java.net.URL; + +public class UrlUtils { + + public static boolean isLocalFile(URL url) { + + if (url.getProtocol().equals("file") && + (url.getAuthority() == null || url.getAuthority().equals("")) && + (url.getHost() == null || url.getHost().equals(("")))) { + return true; + } + return false; + } +} From dbhole at icedtea.classpath.org Wed Jul 20 07:39:25 2011 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Wed, 20 Jul 2011 14:39:25 +0000 Subject: /hg/release/icedtea-web-1.1: 5 new changesets Message-ID: changeset c7ce6c0e6227 in /hg/release/icedtea-web-1.1 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.1?cmd=changeset;node=c7ce6c0e6227 author: Deepak Bhole date: Fri Jul 15 15:44:56 2011 -0400 RH718164, CVE-2011-2513: Home directory path disclosure to untrusted applications changeset 512de5d90388 in /hg/release/icedtea-web-1.1 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.1?cmd=changeset;node=512de5d90388 author: Deepak Bhole date: Fri Jul 15 16:02:00 2011 -0400 RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation changeset 44535ca47593 in /hg/release/icedtea-web-1.1 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.1?cmd=changeset;node=44535ca47593 author: Deepak Bhole date: Fri Jul 15 16:03:02 2011 -0400 Prepare to release 1.1.1 changeset c0b896b5313a in /hg/release/icedtea-web-1.1 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.1?cmd=changeset;node=c0b896b5313a author: Deepak Bhole date: Wed Jul 20 09:31:39 2011 -0400 Added tag icedtea-web-1.1.1 for changeset 44535ca47593 changeset ed8d0139b60b in /hg/release/icedtea-web-1.1 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.1?cmd=changeset;node=ed8d0139b60b author: Deepak Bhole date: Wed Jul 20 09:33:13 2011 -0400 Prepare for 1.1.2 diffstat: .hgtags | 1 + ChangeLog | 37 ++ NEWS | 7 +- configure.ac | 2 +- netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java | 157 +++++++++++ netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 27 +- netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java | 4 + netx/net/sourceforge/jnlp/services/XExtendedService.java | 6 +- netx/net/sourceforge/jnlp/services/XFileContents.java | 3 +- netx/net/sourceforge/jnlp/util/UrlUtils.java | 53 +++ 10 files changed, 281 insertions(+), 16 deletions(-) diffs (436 lines): diff -r 910fb608062d -r ed8d0139b60b .hgtags --- a/.hgtags Tue Jun 14 13:29:12 2011 -0400 +++ b/.hgtags Wed Jul 20 09:33:13 2011 -0400 @@ -1,2 +1,3 @@ 692d7e5b31039156aff1600fd7f5034fead2f258 icedtea-web-1.0-branchpoint ff05275397cad39391677d22a077a013a1203afa icedtea-web-1.1 +44535ca475930d6f6a307b852ccb3f3aa97f0887 icedtea-web-1.1.1 diff -r 910fb608062d -r ed8d0139b60b ChangeLog --- a/ChangeLog Tue Jun 14 13:29:12 2011 -0400 +++ b/ChangeLog Wed Jul 20 09:33:13 2011 -0400 @@ -1,3 +1,40 @@ +2011-07-20 Deepak Bhole + + * configure.ac: Prepare for 1.1.2 + * NEWS: Same + +2011-07-15 Deepak Bhole + + * configure.ac: Prepare to release 1.1.1 + * NEWS: Same + +2011-07-14 Omair Majid + + RH718170, CVE-2011-2514: Java Web Start security warning dialog + manipulation + * netx/net/sourceforge/jnlp/services/XExtendedService.java + (openFile): Create XContents based on a copy of the File object to prevent + overloaded File classes from mangling the name. + (XFileContents): Create a separate copy of File object for local use. + +2011-07-14 Omair Majid + + RH718164, CVE-2011-2513: Home directory path disclosure to untrusted + applications + * netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java: New file. + * netx/net/sourceforge/jnlp/util/UrlUtils.java: New file. + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: + jarLocationSecurityMap now contains originating urls, not cache urls. + (initializeResources): Add remote url to map instead of local url. + (activateJars): Add remote url to the classloader's urls. Add mapping for + remote to local url. Put remote url in jarLocationSecurityMap. + (loadClass): Add remote url to the classloader's urls. Add mapping for + remote to local url. + (getCodeSourceSecurity): Update javadoc to note that the url must be + remote. + * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java + (initialize): Set the callback for URLJarFile. + 2011-06-14 Andrew Su * netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java: diff -r 910fb608062d -r ed8d0139b60b NEWS --- a/NEWS Tue Jun 14 13:29:12 2011 -0400 +++ b/NEWS Wed Jul 20 09:33:13 2011 -0400 @@ -8,7 +8,12 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY -New in release 1.1.1 (2011-XX-XX): +New in release 1.1.2 (2011-XX-XX): + +New in release 1.1.1 (2011-07-20): +* Security updates: + - RH718164, CVE-2011-2513: Home directory path disclosure to untrusted applications + - RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation New in release 1.1 (2011-06-08): * New Features diff -r 910fb608062d -r ed8d0139b60b configure.ac --- a/configure.ac Tue Jun 14 13:29:12 2011 -0400 +++ b/configure.ac Wed Jul 20 09:33:13 2011 -0400 @@ -1,4 +1,4 @@ -AC_INIT([icedtea-web],[1.1.1pre],[distro-pkg-dev at openjdk.java.net], [icedtea-web], [http://icedtea.classpath.org/wiki/IcedTea-Web]) +AC_INIT([icedtea-web],[1.1.2pre],[distro-pkg-dev at openjdk.java.net], [icedtea-web], [http://icedtea.classpath.org/wiki/IcedTea-Web]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile netx.manifest]) diff -r 910fb608062d -r ed8d0139b60b netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java Wed Jul 20 09:33:13 2011 -0400 @@ -0,0 +1,157 @@ +/* CachedJarFileCallback.java + Copyright (C) 2011 Red Hat, Inc. + Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as published by +the Free Software Foundation, version 2. + +IcedTea is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package net.sourceforge.jnlp.runtime; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URL; +import java.security.AccessController; +import java.security.PrivilegedActionException; +import java.security.PrivilegedExceptionAction; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.jar.JarFile; + +import net.sourceforge.jnlp.util.UrlUtils; + +import sun.net.www.protocol.jar.URLJarFile; +import sun.net.www.protocol.jar.URLJarFileCallBack; + +/** + * Invoked by URLJarFile to get a JarFile corresponding to a URL. + * + * Large parts of this class are based on JarFileFactory and URLJarFile. + */ +final class CachedJarFileCallback implements URLJarFileCallBack { + + private static final CachedJarFileCallback INSTANCE = new CachedJarFileCallback(); + + public synchronized static CachedJarFileCallback getInstance() { + return INSTANCE; + } + + /* our managed cache */ + private final Map mapping; + + private CachedJarFileCallback() { + mapping = new ConcurrentHashMap(); + } + + protected void addMapping(URL remoteUrl, URL localUrl) { + mapping.put(remoteUrl, localUrl); + } + + @Override + public JarFile retrieve(URL url) throws IOException { + URL localUrl = mapping.get(url); + + if (localUrl == null) { + /* + * If the jar url is not known, treat it as it would be treated in + * general by URLJarFile. + */ + return cacheJarFile(url); + } + + if (UrlUtils.isLocalFile(localUrl)) { + // if it is known to us, just return the cached file + return new JarFile(localUrl.getPath()); + } else { + // throw new IllegalStateException("a non-local file in cache"); + return null; + } + + } + + /* + * This method is a copy of URLJarFile.retrieve() without the callback check. + */ + private JarFile cacheJarFile(URL url) throws IOException { + JarFile result = null; + + final int BUF_SIZE = 2048; + + /* get the stream before asserting privileges */ + final InputStream in = url.openConnection().getInputStream(); + + try { + result = + AccessController.doPrivileged(new PrivilegedExceptionAction() { + @Override + public JarFile run() throws IOException { + OutputStream out = null; + File tmpFile = null; + try { + tmpFile = File.createTempFile("jar_cache", null); + tmpFile.deleteOnExit(); + out = new FileOutputStream(tmpFile); + int read = 0; + byte[] buf = new byte[BUF_SIZE]; + while ((read = in.read(buf)) != -1) { + out.write(buf, 0, read); + } + out.close(); + out = null; + return new URLJarFile(tmpFile, null); + } catch (IOException e) { + if (tmpFile != null) { + tmpFile.delete(); + } + throw e; + } finally { + if (in != null) { + in.close(); + } + if (out != null) { + out.close(); + } + } + } + }); + } catch (PrivilegedActionException pae) { + throw (IOException) pae.getException(); + } + + return result; + } + +} diff -r 910fb608062d -r ed8d0139b60b netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Tue Jun 14 13:29:12 2011 -0400 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Jul 20 09:33:13 2011 -0400 @@ -147,7 +147,7 @@ /** File entries in the jar files available to this classloader */ private TreeSet jarEntries = new TreeSet(); - /** Map of specific codesources to securitydesc */ + /** Map of specific original (remote) CodeSource Urls to securitydesc */ private HashMap jarLocationSecurityMap = new HashMap(); @@ -509,7 +509,7 @@ } } - jarLocationSecurityMap.put(location, jarSecurity); + jarLocationSecurityMap.put(jarDesc.getLocation(), jarSecurity); } catch (MalformedURLException mfe) { System.err.println(mfe.getMessage()); } @@ -731,7 +731,10 @@ try { URL fileURL = new URL("file://" + extractedJarLocation); - addURL(fileURL); + // there is no remote URL for this, so lets fake one + URL fakeRemote = new URL(jar.getLocation().toString() + "!" + je.getName()); + CachedJarFileCallback.getInstance().addMapping(fakeRemote, fileURL); + addURL(fakeRemote); SecurityDesc jarSecurity = file.getSecurity(); @@ -752,7 +755,7 @@ codebase.getHost()); } - jarLocationSecurityMap.put(fileURL, jarSecurity); + jarLocationSecurityMap.put(fakeRemote, jarSecurity); } catch (MalformedURLException mfue) { if (JNLPRuntime.isDebug()) @@ -767,17 +770,21 @@ } - addURL(location); + addURL(jar.getLocation()); // there is currently no mechanism to cache files per // instance.. so only index cached files if (localFile != null) { + CachedJarFileCallback.getInstance().addMapping(jar.getLocation(), localFile.toURL()); + JarFile jarFile = new JarFile(localFile.getAbsolutePath()); Manifest mf = jarFile.getManifest(); classpaths.addAll(getClassPathsFromManifest(mf, jar.getLocation().getPath())); JarIndex index = JarIndex.getJarIndex(jarFile, null); if (index != null) jarIndexes.add(index); + } else { + CachedJarFileCallback.getInstance().addMapping(jar.getLocation(), jar.getLocation()); } if (JNLPRuntime.isDebug()) @@ -1098,11 +1105,9 @@ ); URL remoteURL = desc.getLocation(); - - URL u = tracker.getCacheURL(remoteURL); - if (u != null) { - addURL(u); - } + URL cachedUrl = tracker.getCacheURL(remoteURL); + addURL(remoteURL); + CachedJarFileCallback.getInstance().addMapping(remoteURL, cachedUrl); } /** @@ -1295,7 +1300,7 @@ /** * Returns the security descriptor for given code source URL * - * @param source The code source + * @param source the origin (remote) url of the code * @return The SecurityDescriptor for that source */ diff -r 910fb608062d -r ed8d0139b60b netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Tue Jun 14 13:29:12 2011 -0400 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Wed Jul 20 09:33:13 2011 -0400 @@ -35,6 +35,8 @@ import javax.swing.UIManager; import javax.swing.text.html.parser.ParserDelegator; +import sun.net.www.protocol.jar.URLJarFile; + import net.sourceforge.jnlp.*; import net.sourceforge.jnlp.browser.BrowserAwareProxySelector; import net.sourceforge.jnlp.cache.*; @@ -237,6 +239,8 @@ Security.setProperty("package.access", Security.getProperty("package.access")+",net.sourceforge.jnlp"); + URLJarFile.setCallBack(CachedJarFileCallback.getInstance()); + initialized = true; } diff -r 910fb608062d -r ed8d0139b60b netx/net/sourceforge/jnlp/services/XExtendedService.java --- a/netx/net/sourceforge/jnlp/services/XExtendedService.java Tue Jun 14 13:29:12 2011 -0400 +++ b/netx/net/sourceforge/jnlp/services/XExtendedService.java Wed Jul 20 09:33:13 2011 -0400 @@ -34,10 +34,12 @@ public FileContents openFile(File file) throws IOException { + File secureFile = new File(file.getPath()); + /* FIXME: this opens a file with read/write mode, not just read or write */ - if (ServiceUtil.checkAccess(AccessType.READ_FILE, new Object[] { file.getAbsolutePath() })) { + if (ServiceUtil.checkAccess(AccessType.READ_FILE, new Object[] { secureFile.getAbsolutePath() })) { return (FileContents) ServiceUtil.createPrivilegedProxy(FileContents.class, - new XFileContents(file)); + new XFileContents(secureFile)); } else { return null; } diff -r 910fb608062d -r ed8d0139b60b netx/net/sourceforge/jnlp/services/XFileContents.java --- a/netx/net/sourceforge/jnlp/services/XFileContents.java Tue Jun 14 13:29:12 2011 -0400 +++ b/netx/net/sourceforge/jnlp/services/XFileContents.java Wed Jul 20 09:33:13 2011 -0400 @@ -34,7 +34,8 @@ * Create a file contents implementation for the file. */ protected XFileContents(File file) { - this.file = file; + // create a safe copy + this.file = new File(file.getPath()); } /** diff -r 910fb608062d -r ed8d0139b60b netx/net/sourceforge/jnlp/util/UrlUtils.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netx/net/sourceforge/jnlp/util/UrlUtils.java Wed Jul 20 09:33:13 2011 -0400 @@ -0,0 +1,53 @@ +/* UrlUtils.java + Copyright (C) 2011 Red Hat, Inc. + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as published by +the Free Software Foundation, version 2. + +IcedTea is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package net.sourceforge.jnlp.util; + +import java.net.URL; + +public class UrlUtils { + + public static boolean isLocalFile(URL url) { + + if (url.getProtocol().equals("file") && + (url.getAuthority() == null || url.getAuthority().equals("")) && + (url.getHost() == null || url.getHost().equals(("")))) { + return true; + } + return false; + } +} From dbhole at icedtea.classpath.org Wed Jul 20 07:39:39 2011 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Wed, 20 Jul 2011 14:39:39 +0000 Subject: /hg/icedtea-web: 2 new changesets Message-ID: changeset a9061a71cfc7 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=a9061a71cfc7 author: Deepak Bhole date: Fri Jul 15 15:44:56 2011 -0400 RH718164, CVE-2011-2513: Home directory path disclosure to untrusted applications changeset 7dd63058c234 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=7dd63058c234 author: Deepak Bhole date: Fri Jul 15 16:02:00 2011 -0400 RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation diffstat: ChangeLog | 27 + NEWS | 5 + netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java | 157 +++++++++++ netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 27 +- netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java | 4 + netx/net/sourceforge/jnlp/services/XExtendedService.java | 6 +- netx/net/sourceforge/jnlp/services/XFileContents.java | 3 +- netx/net/sourceforge/jnlp/util/UrlUtils.java | 53 +++ 8 files changed, 268 insertions(+), 14 deletions(-) diffs (411 lines): diff -r 4267bb156f08 -r 7dd63058c234 ChangeLog --- a/ChangeLog Tue Jul 19 12:14:35 2011 -0400 +++ b/ChangeLog Fri Jul 15 16:02:00 2011 -0400 @@ -128,6 +128,33 @@ (clean_tests_reports): new goal to remove report styles directory and indexs html files. +2011-07-14 Omair Majid + + RH718170, CVE-2011-2514: Java Web Start security warning dialog + manipulation + * netx/net/sourceforge/jnlp/services/XExtendedService.java + (openFile): Create XContents based on a copy of the File object to prevent + overloaded File classes from mangling the name. + (XFileContents): Create a separate copy of File object for local use. + +2011-07-14 Omair Majid + + RH718164, CVE-2011-2513: Home directory path disclosure to untrusted + applications + * netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java: New file. + * netx/net/sourceforge/jnlp/util/UrlUtils.java: New file. + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: + jarLocationSecurityMap now contains originating urls, not cache urls. + (initializeResources): Add remote url to map instead of local url. + (activateJars): Add remote url to the classloader's urls. Add mapping for + remote to local url. Put remote url in jarLocationSecurityMap. + (loadClass): Add remote url to the classloader's urls. Add mapping for + remote to local url. + (getCodeSourceSecurity): Update javadoc to note that the url must be + remote. + * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java + (initialize): Set the callback for URLJarFile. + 2011-06-14 Andrew Su * netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java: diff -r 4267bb156f08 -r 7dd63058c234 NEWS --- a/NEWS Tue Jul 19 12:14:35 2011 -0400 +++ b/NEWS Fri Jul 15 16:02:00 2011 -0400 @@ -8,6 +8,11 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY +New in release 1.2 (2011-XX-XX): +* Security updates: + - RH718164, CVE-2011-2513: Home directory path disclosure to untrusted applications + - RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation + New in release 1.1 (2011-XX-XX): * Security updates - S6983554, CVE-2010-4450: Launcher incorrect processing of empty library path entries diff -r 4267bb156f08 -r 7dd63058c234 netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java Fri Jul 15 16:02:00 2011 -0400 @@ -0,0 +1,157 @@ +/* CachedJarFileCallback.java + Copyright (C) 2011 Red Hat, Inc. + Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as published by +the Free Software Foundation, version 2. + +IcedTea is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package net.sourceforge.jnlp.runtime; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URL; +import java.security.AccessController; +import java.security.PrivilegedActionException; +import java.security.PrivilegedExceptionAction; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.jar.JarFile; + +import net.sourceforge.jnlp.util.UrlUtils; + +import sun.net.www.protocol.jar.URLJarFile; +import sun.net.www.protocol.jar.URLJarFileCallBack; + +/** + * Invoked by URLJarFile to get a JarFile corresponding to a URL. + * + * Large parts of this class are based on JarFileFactory and URLJarFile. + */ +final class CachedJarFileCallback implements URLJarFileCallBack { + + private static final CachedJarFileCallback INSTANCE = new CachedJarFileCallback(); + + public synchronized static CachedJarFileCallback getInstance() { + return INSTANCE; + } + + /* our managed cache */ + private final Map mapping; + + private CachedJarFileCallback() { + mapping = new ConcurrentHashMap(); + } + + protected void addMapping(URL remoteUrl, URL localUrl) { + mapping.put(remoteUrl, localUrl); + } + + @Override + public JarFile retrieve(URL url) throws IOException { + URL localUrl = mapping.get(url); + + if (localUrl == null) { + /* + * If the jar url is not known, treat it as it would be treated in + * general by URLJarFile. + */ + return cacheJarFile(url); + } + + if (UrlUtils.isLocalFile(localUrl)) { + // if it is known to us, just return the cached file + return new JarFile(localUrl.getPath()); + } else { + // throw new IllegalStateException("a non-local file in cache"); + return null; + } + + } + + /* + * This method is a copy of URLJarFile.retrieve() without the callback check. + */ + private JarFile cacheJarFile(URL url) throws IOException { + JarFile result = null; + + final int BUF_SIZE = 2048; + + /* get the stream before asserting privileges */ + final InputStream in = url.openConnection().getInputStream(); + + try { + result = + AccessController.doPrivileged(new PrivilegedExceptionAction() { + @Override + public JarFile run() throws IOException { + OutputStream out = null; + File tmpFile = null; + try { + tmpFile = File.createTempFile("jar_cache", null); + tmpFile.deleteOnExit(); + out = new FileOutputStream(tmpFile); + int read = 0; + byte[] buf = new byte[BUF_SIZE]; + while ((read = in.read(buf)) != -1) { + out.write(buf, 0, read); + } + out.close(); + out = null; + return new URLJarFile(tmpFile, null); + } catch (IOException e) { + if (tmpFile != null) { + tmpFile.delete(); + } + throw e; + } finally { + if (in != null) { + in.close(); + } + if (out != null) { + out.close(); + } + } + } + }); + } catch (PrivilegedActionException pae) { + throw (IOException) pae.getException(); + } + + return result; + } + +} diff -r 4267bb156f08 -r 7dd63058c234 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Tue Jul 19 12:14:35 2011 -0400 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Fri Jul 15 16:02:00 2011 -0400 @@ -147,7 +147,7 @@ /** File entries in the jar files available to this classloader */ private TreeSet jarEntries = new TreeSet(); - /** Map of specific codesources to securitydesc */ + /** Map of specific original (remote) CodeSource Urls to securitydesc */ private HashMap jarLocationSecurityMap = new HashMap(); @@ -509,7 +509,7 @@ } } - jarLocationSecurityMap.put(location, jarSecurity); + jarLocationSecurityMap.put(jarDesc.getLocation(), jarSecurity); } catch (MalformedURLException mfe) { System.err.println(mfe.getMessage()); } @@ -731,7 +731,10 @@ try { URL fileURL = new URL("file://" + extractedJarLocation); - addURL(fileURL); + // there is no remote URL for this, so lets fake one + URL fakeRemote = new URL(jar.getLocation().toString() + "!" + je.getName()); + CachedJarFileCallback.getInstance().addMapping(fakeRemote, fileURL); + addURL(fakeRemote); SecurityDesc jarSecurity = file.getSecurity(); @@ -752,7 +755,7 @@ codebase.getHost()); } - jarLocationSecurityMap.put(fileURL, jarSecurity); + jarLocationSecurityMap.put(fakeRemote, jarSecurity); } catch (MalformedURLException mfue) { if (JNLPRuntime.isDebug()) @@ -767,17 +770,21 @@ } - addURL(location); + addURL(jar.getLocation()); // there is currently no mechanism to cache files per // instance.. so only index cached files if (localFile != null) { + CachedJarFileCallback.getInstance().addMapping(jar.getLocation(), localFile.toURL()); + JarFile jarFile = new JarFile(localFile.getAbsolutePath()); Manifest mf = jarFile.getManifest(); classpaths.addAll(getClassPathsFromManifest(mf, jar.getLocation().getPath())); JarIndex index = JarIndex.getJarIndex(jarFile, null); if (index != null) jarIndexes.add(index); + } else { + CachedJarFileCallback.getInstance().addMapping(jar.getLocation(), jar.getLocation()); } if (JNLPRuntime.isDebug()) @@ -1098,11 +1105,9 @@ ); URL remoteURL = desc.getLocation(); - - URL u = tracker.getCacheURL(remoteURL); - if (u != null) { - addURL(u); - } + URL cachedUrl = tracker.getCacheURL(remoteURL); + addURL(remoteURL); + CachedJarFileCallback.getInstance().addMapping(remoteURL, cachedUrl); } /** @@ -1295,7 +1300,7 @@ /** * Returns the security descriptor for given code source URL * - * @param source The code source + * @param source the origin (remote) url of the code * @return The SecurityDescriptor for that source */ diff -r 4267bb156f08 -r 7dd63058c234 netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Tue Jul 19 12:14:35 2011 -0400 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Fri Jul 15 16:02:00 2011 -0400 @@ -35,6 +35,8 @@ import javax.swing.UIManager; import javax.swing.text.html.parser.ParserDelegator; +import sun.net.www.protocol.jar.URLJarFile; + import net.sourceforge.jnlp.*; import net.sourceforge.jnlp.browser.BrowserAwareProxySelector; import net.sourceforge.jnlp.cache.*; @@ -237,6 +239,8 @@ Security.setProperty("package.access", Security.getProperty("package.access")+",net.sourceforge.jnlp"); + URLJarFile.setCallBack(CachedJarFileCallback.getInstance()); + initialized = true; } diff -r 4267bb156f08 -r 7dd63058c234 netx/net/sourceforge/jnlp/services/XExtendedService.java --- a/netx/net/sourceforge/jnlp/services/XExtendedService.java Tue Jul 19 12:14:35 2011 -0400 +++ b/netx/net/sourceforge/jnlp/services/XExtendedService.java Fri Jul 15 16:02:00 2011 -0400 @@ -34,10 +34,12 @@ public FileContents openFile(File file) throws IOException { + File secureFile = new File(file.getPath()); + /* FIXME: this opens a file with read/write mode, not just read or write */ - if (ServiceUtil.checkAccess(AccessType.READ_FILE, new Object[] { file.getAbsolutePath() })) { + if (ServiceUtil.checkAccess(AccessType.READ_FILE, new Object[] { secureFile.getAbsolutePath() })) { return (FileContents) ServiceUtil.createPrivilegedProxy(FileContents.class, - new XFileContents(file)); + new XFileContents(secureFile)); } else { return null; } diff -r 4267bb156f08 -r 7dd63058c234 netx/net/sourceforge/jnlp/services/XFileContents.java --- a/netx/net/sourceforge/jnlp/services/XFileContents.java Tue Jul 19 12:14:35 2011 -0400 +++ b/netx/net/sourceforge/jnlp/services/XFileContents.java Fri Jul 15 16:02:00 2011 -0400 @@ -34,7 +34,8 @@ * Create a file contents implementation for the file. */ protected XFileContents(File file) { - this.file = file; + // create a safe copy + this.file = new File(file.getPath()); } /** diff -r 4267bb156f08 -r 7dd63058c234 netx/net/sourceforge/jnlp/util/UrlUtils.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netx/net/sourceforge/jnlp/util/UrlUtils.java Fri Jul 15 16:02:00 2011 -0400 @@ -0,0 +1,53 @@ +/* UrlUtils.java + Copyright (C) 2011 Red Hat, Inc. + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as published by +the Free Software Foundation, version 2. + +IcedTea is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package net.sourceforge.jnlp.util; + +import java.net.URL; + +public class UrlUtils { + + public static boolean isLocalFile(URL url) { + + if (url.getProtocol().equals("file") && + (url.getAuthority() == null || url.getAuthority().equals("")) && + (url.getHost() == null || url.getHost().equals(("")))) { + return true; + } + return false; + } +} From bugzilla-daemon at icedtea.classpath.org Wed Jul 20 07:48:58 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 20 Jul 2011 14:48:58 +0000 Subject: [Bug 761] New: Netx depends on sun.net.www.protocol.jar.URLJarFile Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=761 Summary: Netx depends on sun.net.www.protocol.jar.URLJarFile Product: IcedTea-Web Version: hg Platform: all OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: NetX AssignedTo: omajid at redhat.com ReportedBy: omajid at redhat.com CC: unassigned at icedtea.classpath.org Blocks: 562 http://icedtea.classpath.org/hg/icedtea-web/rev/a9061a71cfc7 adds a new dependency on sun.net.www.protocol.jar.URLJarFile -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Jul 20 07:52:32 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 20 Jul 2011 14:52:32 +0000 Subject: [Bug 762] New: Netx depends on sun.net.www.protocol.jar.URLJarFileCallBack Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=762 Summary: Netx depends on sun.net.www.protocol.jar.URLJarFileCallBack Product: IcedTea-Web Version: hg Platform: all OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: NetX AssignedTo: omajid at redhat.com ReportedBy: omajid at redhat.com CC: unassigned at icedtea.classpath.org Blocks: 562 The changeset http://icedtea.classpath.org/hg/icedtea-web/rev/a9061a71cfc7 introduces a new dependency on sun.net.www.protocol.jar.URLJarFileCallBack -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From andrew at icedtea.classpath.org Wed Jul 20 08:31:53 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 20 Jul 2011 15:31:53 +0000 Subject: /hg/release/icedtea6-1.8: 3 new changesets Message-ID: changeset d40e83dd3bb2 in /hg/release/icedtea6-1.8 details: http://icedtea.classpath.org/hg/release/icedtea6-1.8?cmd=changeset;node=d40e83dd3bb2 author: Andrew John Hughes date: Wed Jul 20 13:58:04 2011 +0100 RH718164, CVE-2011-2513: Home directory path disclosure to untrusted apps 2011-07-20 Andrew John Hughes * NEWS: List security fix. 2011-07-14 Omair Majid * netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java: New file. * netx/net/sourceforge/jnlp/util/UrlUtils.java: New file. * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: jarLocationSecurityMap now contains originating urls, not cache urls. (initializeResources): Add remote url to map instead of local url. (activateJars): Add remote url to the classloader's urls. Add mapping for remote to local url. Put remote url in jarLocationSecurityMap. (loadClass): Add remote url to the classloader's urls. Add mapping for remote to local url. (getCodeSourceSecurity): Update javadoc to note that the url must be remote. * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java (initialize): Set the callback for URLJarFile. changeset ae7e52528576 in /hg/release/icedtea6-1.8 details: http://icedtea.classpath.org/hg/release/icedtea6-1.8?cmd=changeset;node=ae7e52528576 author: Andrew John Hughes date: Wed Jul 20 13:59:37 2011 +0100 Prepare for 1.8.9 release. 2011-07-20 Andrew John Hughes * NEWS: Add release date. * configure.ac: Bump to 1.8.9 proper. changeset c29cc85ba0f8 in /hg/release/icedtea6-1.8 details: http://icedtea.classpath.org/hg/release/icedtea6-1.8?cmd=changeset;node=c29cc85ba0f8 author: Andrew John Hughes date: Wed Jul 20 16:31:47 2011 +0100 Added tag icedtea6-1.8.9 for changeset ae7e52528576 diffstat: .hgtags | 1 + ChangeLog | 25 + NEWS | 4 +- configure.ac | 2 +- netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java | 157 +++++++++++ netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 26 +- netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java | 4 + netx/net/sourceforge/jnlp/util/UrlUtils.java | 53 +++ 8 files changed, 261 insertions(+), 11 deletions(-) diffs (389 lines): diff -r c5121c10ed2f -r c29cc85ba0f8 .hgtags --- a/.hgtags Wed Jul 20 00:59:54 2011 +0100 +++ b/.hgtags Wed Jul 20 16:31:47 2011 +0100 @@ -29,3 +29,4 @@ c43e42301ab86152257fc7eb9c249b2be2c1accc icedtea6-1.8.6 24dfe84f55e3dc68d95c1688f8a678341c86ddf7 icedtea6-1.8.7 2cc9c0e4eadeacc5f52aae1424917aceeebe00c4 icedtea6-1.8.8 +ae7e52528576f9f176761d4d41219084682be3df icedtea6-1.8.9 diff -r c5121c10ed2f -r c29cc85ba0f8 ChangeLog --- a/ChangeLog Wed Jul 20 00:59:54 2011 +0100 +++ b/ChangeLog Wed Jul 20 16:31:47 2011 +0100 @@ -1,3 +1,28 @@ +2011-07-20 Andrew John Hughes + + * NEWS: Add release date. + * configure.ac: Bump to 1.8.9 proper. + +2011-07-20 Andrew John Hughes + + * NEWS: List security fix. + +2011-07-14 Omair Majid + + * netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java: New file. + * netx/net/sourceforge/jnlp/util/UrlUtils.java: New file. + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: + jarLocationSecurityMap now contains originating urls, not cache urls. + (initializeResources): Add remote url to map instead of local url. + (activateJars): Add remote url to the classloader's urls. Add mapping for + remote to local url. Put remote url in jarLocationSecurityMap. + (loadClass): Add remote url to the classloader's urls. Add mapping for + remote to local url. + (getCodeSourceSecurity): Update javadoc to note that the url must be + remote. + * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java + (initialize): Set the callback for URLJarFile. + 2011-06-28 Andrew John Hughes * Makefile.am: Add new patch. diff -r c5121c10ed2f -r c29cc85ba0f8 NEWS --- a/NEWS Wed Jul 20 00:59:54 2011 +0100 +++ b/NEWS Wed Jul 20 16:31:47 2011 +0100 @@ -8,8 +8,10 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY -New in release 1.8.9 (20XX-XX-XX): +New in release 1.8.9 (2011-07-20): +* Security fixes + - RH718164, CVE-2011-2513: Home directory path disclosure to untrusted apps * Bug fixes - PR744: icedtea6-1.10.2 : patching error - PR748: Icedtea6 fails to build with Linux 3.0. diff -r c5121c10ed2f -r c29cc85ba0f8 configure.ac --- a/configure.ac Wed Jul 20 00:59:54 2011 +0100 +++ b/configure.ac Wed Jul 20 16:31:47 2011 +0100 @@ -1,4 +1,4 @@ -AC_INIT([icedtea6],[1.8.9pre],[distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea6],[1.8.9],[distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) diff -r c5121c10ed2f -r c29cc85ba0f8 netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java Wed Jul 20 16:31:47 2011 +0100 @@ -0,0 +1,157 @@ +/* CachedJarFileCallback.java + Copyright (C) 2011 Red Hat, Inc. + Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as published by +the Free Software Foundation, version 2. + +IcedTea is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package net.sourceforge.jnlp.runtime; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URL; +import java.security.AccessController; +import java.security.PrivilegedActionException; +import java.security.PrivilegedExceptionAction; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.jar.JarFile; + +import net.sourceforge.jnlp.util.UrlUtils; + +import sun.net.www.protocol.jar.URLJarFile; +import sun.net.www.protocol.jar.URLJarFileCallBack; + +/** + * Invoked by URLJarFile to get a JarFile corresponding to a URL. + * + * Large parts of this class are based on JarFileFactory and URLJarFile. + */ +final class CachedJarFileCallback implements URLJarFileCallBack { + + private static final CachedJarFileCallback INSTANCE = new CachedJarFileCallback(); + + public synchronized static CachedJarFileCallback getInstance() { + return INSTANCE; + } + + /* our managed cache */ + private final Map mapping; + + private CachedJarFileCallback() { + mapping = new ConcurrentHashMap(); + } + + protected void addMapping(URL remoteUrl, URL localUrl) { + mapping.put(remoteUrl, localUrl); + } + + @Override + public JarFile retrieve(URL url) throws IOException { + URL localUrl = mapping.get(url); + + if (localUrl == null) { + /* + * If the jar url is not known, treat it as it would be treated in + * general by URLJarFile. + */ + return cacheJarFile(url); + } + + if (UrlUtils.isLocalFile(localUrl)) { + // if it is known to us, just return the cached file + return new JarFile(localUrl.getPath()); + } else { + // throw new IllegalStateException("a non-local file in cache"); + return null; + } + + } + + /* + * This method is a copy of URLJarFile.retrieve() without the callback check. + */ + private JarFile cacheJarFile(URL url) throws IOException { + JarFile result = null; + + final int BUF_SIZE = 2048; + + /* get the stream before asserting privileges */ + final InputStream in = url.openConnection().getInputStream(); + + try { + result = + AccessController.doPrivileged(new PrivilegedExceptionAction() { + @Override + public JarFile run() throws IOException { + OutputStream out = null; + File tmpFile = null; + try { + tmpFile = File.createTempFile("jar_cache", null); + tmpFile.deleteOnExit(); + out = new FileOutputStream(tmpFile); + int read = 0; + byte[] buf = new byte[BUF_SIZE]; + while ((read = in.read(buf)) != -1) { + out.write(buf, 0, read); + } + out.close(); + out = null; + return new URLJarFile(tmpFile, null); + } catch (IOException e) { + if (tmpFile != null) { + tmpFile.delete(); + } + throw e; + } finally { + if (in != null) { + in.close(); + } + if (out != null) { + out.close(); + } + } + } + }); + } catch (PrivilegedActionException pae) { + throw (IOException) pae.getException(); + } + + return result; + } + +} diff -r c5121c10ed2f -r c29cc85ba0f8 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Jul 20 00:59:54 2011 +0100 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Jul 20 16:31:47 2011 +0100 @@ -141,7 +141,7 @@ /** File entries in the jar files available to this classloader */ private TreeSet jarEntries = new TreeSet(); - /** Map of specific codesources to securitydesc */ + /** Map of specific original (remote) CodeSource urls to securitydesc */ private HashMap jarLocationSecurityMap = new HashMap(); /** @@ -457,7 +457,7 @@ } } - jarLocationSecurityMap.put(location, jarSecurity); + jarLocationSecurityMap.put(jarDesc.getLocation(), jarSecurity); } catch (MalformedURLException mfe) { System.err.println(mfe.getMessage()); } @@ -675,8 +675,11 @@ try { URL fileURL = new URL("file://" + extractedJarLocation); - addURL(fileURL); - + // there is no remote URL for this, so lets fake one + URL fakeRemote = new URL(jar.getLocation().toString() + "!" + je.getName()); + CachedJarFileCallback.getInstance().addMapping(fakeRemote, fileURL); + addURL(fakeRemote); + SecurityDesc jarSecurity = file.getSecurity(); if (file instanceof PluginBridge) { @@ -696,7 +699,7 @@ codebase.getHost()); } - jarLocationSecurityMap.put(fileURL, jarSecurity); + jarLocationSecurityMap.put(fakeRemote, jarSecurity); } catch (MalformedURLException mfue) { if (JNLPRuntime.isDebug()) @@ -711,15 +714,18 @@ } - addURL(location); + addURL(jar.getLocation()); // there is currently no mechanism to cache files per // instance.. so only index cached files if (localFile != null) { + CachedJarFileCallback.getInstance().addMapping(jar.getLocation(), localFile.toURL()); JarIndex index = JarIndex.getJarIndex(new JarFile(localFile.getAbsolutePath()), null); if (index != null) jarIndexes.add(index); + } else { + CachedJarFileCallback.getInstance().addMapping(jar.getLocation(), jar.getLocation()); } if (JNLPRuntime.isDebug()) @@ -985,8 +991,10 @@ throw new ClassNotFoundException(name); } - if (u != null) - addURL(u); + if (u != null) { + addURL(remoteURL); + CachedJarFileCallback.getInstance().addMapping(remoteURL, u); + } } @@ -1173,7 +1181,7 @@ /** * Returns the security descriptor for given code source URL * - * @param source The code source + * @param source the origin (remote) url of the code * @return The SecurityDescriptor for that source */ diff -r c5121c10ed2f -r c29cc85ba0f8 netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Wed Jul 20 00:59:54 2011 +0100 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Wed Jul 20 16:31:47 2011 +0100 @@ -25,6 +25,8 @@ import java.security.*; import javax.jnlp.*; +import sun.net.www.protocol.jar.URLJarFile; + import net.sourceforge.jnlp.*; import net.sourceforge.jnlp.cache.*; import net.sourceforge.jnlp.services.*; @@ -201,6 +203,8 @@ System.setSecurityManager(security); } + URLJarFile.setCallBack(CachedJarFileCallback.getInstance()); + initialized = true; } diff -r c5121c10ed2f -r c29cc85ba0f8 netx/net/sourceforge/jnlp/util/UrlUtils.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netx/net/sourceforge/jnlp/util/UrlUtils.java Wed Jul 20 16:31:47 2011 +0100 @@ -0,0 +1,53 @@ +/* UrlUtils.java + Copyright (C) 2011 Red Hat, Inc. + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as published by +the Free Software Foundation, version 2. + +IcedTea is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package net.sourceforge.jnlp.util; + +import java.net.URL; + +public class UrlUtils { + + public static boolean isLocalFile(URL url) { + + if (url.getProtocol().equals("file") && + (url.getAuthority() == null || url.getAuthority().equals("")) && + (url.getHost() == null || url.getHost().equals(("")))) { + return true; + } + return false; + } +} From andrew at icedtea.classpath.org Wed Jul 20 08:32:14 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 20 Jul 2011 15:32:14 +0000 Subject: /hg/release/icedtea6-1.9: 3 new changesets Message-ID: changeset 5fe46e0ad4ba in /hg/release/icedtea6-1.9 details: http://icedtea.classpath.org/hg/release/icedtea6-1.9?cmd=changeset;node=5fe46e0ad4ba author: Andrew John Hughes date: Wed Jul 20 12:38:14 2011 +0100 Prepare for 1.9.9 release. 2011-07-20 Andrew John Hughes * NEWS: Set release date to 2011-07-20. * configure.ac: Bump to 1.9.9 proper. changeset 5eedbbda2c82 in /hg/release/icedtea6-1.9 details: http://icedtea.classpath.org/hg/release/icedtea6-1.9?cmd=changeset;node=5eedbbda2c82 author: Andrew John Hughes date: Wed Jul 20 14:01:34 2011 +0100 RH718164, CVE-2011-2513: Home directory path disclosure to untrusted apps 2011-07-20 Andrew John Hughes * NEWS: List security fix. 2011-07-14 Omair Majid * netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java: New file. * netx/net/sourceforge/jnlp/util/UrlUtils.java: New file. * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: jarLocationSecurityMap now contains originating urls, not cache urls. (initializeResources): Add remote url to map instead of local url. (activateJars): Add remote url to the classloader's urls. Add mapping for remote to local url. Put remote url in jarLocationSecurityMap. (loadClass): Add remote url to the classloader's urls. Add mapping for remote to local url. (getCodeSourceSecurity): Update javadoc to note that the url must be remote. * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java (initialize): Set the callback for URLJarFile. changeset eb05a18232e9 in /hg/release/icedtea6-1.9 details: http://icedtea.classpath.org/hg/release/icedtea6-1.9?cmd=changeset;node=eb05a18232e9 author: Andrew John Hughes date: Wed Jul 20 16:32:04 2011 +0100 Added tag icedtea6-1.9.9 for changeset 5eedbbda2c82 diffstat: .hgtags | 1 + ChangeLog | 25 + NEWS | 4 +- configure.ac | 2 +- netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java | 157 +++++++++++ netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 24 +- netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java | 4 + netx/net/sourceforge/jnlp/util/UrlUtils.java | 53 +++ 8 files changed, 260 insertions(+), 10 deletions(-) diffs (387 lines): diff -r b80005297ae5 -r eb05a18232e9 .hgtags --- a/.hgtags Wed Jul 20 12:32:30 2011 +0100 +++ b/.hgtags Wed Jul 20 16:32:04 2011 +0100 @@ -28,3 +28,4 @@ 03258f7ff9107c7e3be6931df2093b8395db89e4 icedtea6-1.9.6 9822da18c162896b9da66d45bdc341a1cd53581b icedtea6-1.9.7 25b9909a5432b811f85b121305a6ba7f01c7aace icedtea6-1.9.8 +5eedbbda2c822758fd693f7b1ad9a73caca53471 icedtea6-1.9.9 diff -r b80005297ae5 -r eb05a18232e9 ChangeLog --- a/ChangeLog Wed Jul 20 12:32:30 2011 +0100 +++ b/ChangeLog Wed Jul 20 16:32:04 2011 +0100 @@ -1,3 +1,28 @@ +2011-07-20 Andrew John Hughes + + * NEWS: List security fix. + +2011-07-14 Omair Majid + + * netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java: New file. + * netx/net/sourceforge/jnlp/util/UrlUtils.java: New file. + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: + jarLocationSecurityMap now contains originating urls, not cache urls. + (initializeResources): Add remote url to map instead of local url. + (activateJars): Add remote url to the classloader's urls. Add mapping for + remote to local url. Put remote url in jarLocationSecurityMap. + (loadClass): Add remote url to the classloader's urls. Add mapping for + remote to local url. + (getCodeSourceSecurity): Update javadoc to note that the url must be + remote. + * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java + (initialize): Set the callback for URLJarFile. + +2011-07-20 Andrew John Hughes + + * NEWS: Set release date to 2011-07-20. + * configure.ac: Bump to 1.9.9 proper. + 2011-06-28 Andrew John Hughes * Makefile.am: Add new patch. diff -r b80005297ae5 -r eb05a18232e9 NEWS --- a/NEWS Wed Jul 20 12:32:30 2011 +0100 +++ b/NEWS Wed Jul 20 16:32:04 2011 +0100 @@ -8,8 +8,10 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY -New in release 1.9.9 (20XX-XX-XX): +New in release 1.9.9 (2011-07-20): +* Security fixes + - RH718164, CVE-2011-2513: Home directory path disclosure to untrusted apps * Bug Fixes - PR744: icedtea6-1.10.2 : patching error - PR748: Icedtea6 fails to build with Linux 3.0. diff -r b80005297ae5 -r eb05a18232e9 configure.ac --- a/configure.ac Wed Jul 20 12:32:30 2011 +0100 +++ b/configure.ac Wed Jul 20 16:32:04 2011 +0100 @@ -1,4 +1,4 @@ -AC_INIT([icedtea6],[1.9.9pre],[distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea6],[1.9.9],[distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) diff -r b80005297ae5 -r eb05a18232e9 netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java Wed Jul 20 16:32:04 2011 +0100 @@ -0,0 +1,157 @@ +/* CachedJarFileCallback.java + Copyright (C) 2011 Red Hat, Inc. + Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as published by +the Free Software Foundation, version 2. + +IcedTea is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package net.sourceforge.jnlp.runtime; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URL; +import java.security.AccessController; +import java.security.PrivilegedActionException; +import java.security.PrivilegedExceptionAction; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.jar.JarFile; + +import net.sourceforge.jnlp.util.UrlUtils; + +import sun.net.www.protocol.jar.URLJarFile; +import sun.net.www.protocol.jar.URLJarFileCallBack; + +/** + * Invoked by URLJarFile to get a JarFile corresponding to a URL. + * + * Large parts of this class are based on JarFileFactory and URLJarFile. + */ +final class CachedJarFileCallback implements URLJarFileCallBack { + + private static final CachedJarFileCallback INSTANCE = new CachedJarFileCallback(); + + public synchronized static CachedJarFileCallback getInstance() { + return INSTANCE; + } + + /* our managed cache */ + private final Map mapping; + + private CachedJarFileCallback() { + mapping = new ConcurrentHashMap(); + } + + protected void addMapping(URL remoteUrl, URL localUrl) { + mapping.put(remoteUrl, localUrl); + } + + @Override + public JarFile retrieve(URL url) throws IOException { + URL localUrl = mapping.get(url); + + if (localUrl == null) { + /* + * If the jar url is not known, treat it as it would be treated in + * general by URLJarFile. + */ + return cacheJarFile(url); + } + + if (UrlUtils.isLocalFile(localUrl)) { + // if it is known to us, just return the cached file + return new JarFile(localUrl.getPath()); + } else { + // throw new IllegalStateException("a non-local file in cache"); + return null; + } + + } + + /* + * This method is a copy of URLJarFile.retrieve() without the callback check. + */ + private JarFile cacheJarFile(URL url) throws IOException { + JarFile result = null; + + final int BUF_SIZE = 2048; + + /* get the stream before asserting privileges */ + final InputStream in = url.openConnection().getInputStream(); + + try { + result = + AccessController.doPrivileged(new PrivilegedExceptionAction() { + @Override + public JarFile run() throws IOException { + OutputStream out = null; + File tmpFile = null; + try { + tmpFile = File.createTempFile("jar_cache", null); + tmpFile.deleteOnExit(); + out = new FileOutputStream(tmpFile); + int read = 0; + byte[] buf = new byte[BUF_SIZE]; + while ((read = in.read(buf)) != -1) { + out.write(buf, 0, read); + } + out.close(); + out = null; + return new URLJarFile(tmpFile, null); + } catch (IOException e) { + if (tmpFile != null) { + tmpFile.delete(); + } + throw e; + } finally { + if (in != null) { + in.close(); + } + if (out != null) { + out.close(); + } + } + } + }); + } catch (PrivilegedActionException pae) { + throw (IOException) pae.getException(); + } + + return result; + } + +} diff -r b80005297ae5 -r eb05a18232e9 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Jul 20 12:32:30 2011 +0100 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Jul 20 16:32:04 2011 +0100 @@ -141,7 +141,7 @@ /** File entries in the jar files available to this classloader */ private TreeSet jarEntries = new TreeSet(); - /** Map of specific codesources to securitydesc */ + /** Map of specific original (remote) CodeSource Urls to securitydesc */ private HashMap jarLocationSecurityMap = new HashMap(); /** @@ -458,7 +458,7 @@ } } - jarLocationSecurityMap.put(location, jarSecurity); + jarLocationSecurityMap.put(jarDesc.getLocation(), jarSecurity); } catch (MalformedURLException mfe) { System.err.println(mfe.getMessage()); } @@ -676,7 +676,10 @@ try { URL fileURL = new URL("file://" + extractedJarLocation); - addURL(fileURL); + // there is no remote URL for this, so lets fake one + URL fakeRemote = new URL(jar.getLocation().toString() + "!" + je.getName()); + CachedJarFileCallback.getInstance().addMapping(fakeRemote, fileURL); + addURL(fakeRemote); SecurityDesc jarSecurity = file.getSecurity(); @@ -697,7 +700,7 @@ codebase.getHost()); } - jarLocationSecurityMap.put(fileURL, jarSecurity); + jarLocationSecurityMap.put(fakeRemote, jarSecurity); } catch (MalformedURLException mfue) { if (JNLPRuntime.isDebug()) @@ -712,15 +715,18 @@ } - addURL(location); + addURL(jar.getLocation()); // there is currently no mechanism to cache files per // instance.. so only index cached files if (localFile != null) { + CachedJarFileCallback.getInstance().addMapping(jar.getLocation(), localFile.toURL()); JarIndex index = JarIndex.getJarIndex(new JarFile(localFile.getAbsolutePath()), null); if (index != null) jarIndexes.add(index); + } else { + CachedJarFileCallback.getInstance().addMapping(jar.getLocation(), jar.getLocation()); } if (JNLPRuntime.isDebug()) @@ -986,8 +992,10 @@ throw new ClassNotFoundException(name); } - if (u != null) - addURL(u); + if (u != null) { + addURL(remoteURL); + CachedJarFileCallback.getInstance().addMapping(remoteURL, u); + } } @@ -1174,7 +1182,7 @@ /** * Returns the security descriptor for given code source URL * - * @param source The code source + * @param source the origin (remote) url of the code * @return The SecurityDescriptor for that source */ diff -r b80005297ae5 -r eb05a18232e9 netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Wed Jul 20 12:32:30 2011 +0100 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Wed Jul 20 16:32:04 2011 +0100 @@ -25,6 +25,8 @@ import java.security.*; import javax.jnlp.*; +import sun.net.www.protocol.jar.URLJarFile; + import net.sourceforge.jnlp.*; import net.sourceforge.jnlp.cache.*; import net.sourceforge.jnlp.services.*; @@ -201,6 +203,8 @@ System.setSecurityManager(security); } + URLJarFile.setCallBack(CachedJarFileCallback.getInstance()); + initialized = true; } diff -r b80005297ae5 -r eb05a18232e9 netx/net/sourceforge/jnlp/util/UrlUtils.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netx/net/sourceforge/jnlp/util/UrlUtils.java Wed Jul 20 16:32:04 2011 +0100 @@ -0,0 +1,53 @@ +/* UrlUtils.java + Copyright (C) 2011 Red Hat, Inc. + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as published by +the Free Software Foundation, version 2. + +IcedTea is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package net.sourceforge.jnlp.util; + +import java.net.URL; + +public class UrlUtils { + + public static boolean isLocalFile(URL url) { + + if (url.getProtocol().equals("file") && + (url.getAuthority() == null || url.getAuthority().equals("")) && + (url.getHost() == null || url.getHost().equals(("")))) { + return true; + } + return false; + } +} From dbhole at redhat.com Wed Jul 20 12:23:21 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Wed, 20 Jul 2011 15:23:21 -0400 Subject: RFC: Patch for Bug#749 (sun.applet.PluginStreamHandler#handleMessage(String) really slow) In-Reply-To: <20110708154444.GC23867@redhat.com> References: <20110704223514.GB10339@redhat.com> <20110705014810.GG17947@shelob.middle-earth.co.uk> <20110705151616.GD10339@redhat.com> <20110708154444.GC23867@redhat.com> Message-ID: <20110720192320.GN17111@redhat.com> * Deepak Bhole [2011-07-08 11:45]: > * Deepak Bhole [2011-07-05 11:16]: > > * Andrew John Hughes [2011-07-04 21:48]: > > > ... > > New patch with updated docs attached. Thanks for taking a look! > > > > ping? > ping2? Deepak > Deepak From dlila at redhat.com Wed Jul 20 13:08:06 2011 From: dlila at redhat.com (Denis Lila) Date: Wed, 20 Jul 2011 16:08:06 -0400 (EDT) Subject: RFC: Patch for Bug#749 (sun.applet.PluginStreamHandler#handleMessage(String) really slow) In-Reply-To: <20110720192320.GN17111@redhat.com> Message-ID: <1985707260.795993.1311192486457.JavaMail.root@zmail04.collab.prod.int.phx2.redhat.com> Hi Deepak. > ping2? If there is no "privileges" but there is "src", won't src be included in rest? I'm pretty sure in the previous version src was not included in rest, so if the answer to my question is "yes", this would be a change in behaviour. Regards, Denis. ----- Original Message ----- > * Deepak Bhole [2011-07-08 11:45]: > > * Deepak Bhole [2011-07-05 11:16]: > > > * Andrew John Hughes [2011-07-04 21:48]: > > > > > ... > > > New patch with updated docs attached. Thanks for taking a look! > > > > > > > ping? > > > > > Deepak > > > Deepak From dbhole at redhat.com Wed Jul 20 13:10:35 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Wed, 20 Jul 2011 16:10:35 -0400 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E14B940.6080109@redhat.com> References: <4E14B940.6080109@redhat.com> Message-ID: <20110720201035.GO17111@redhat.com> * Saad Mohammad [2011-07-06 15:38]: > This is the updated patch for adding support of signed JNLP file. I > have attached two patches. > > More Info: > http://jcp.org/aboutJava/communityprocess/maintenance/jsr056/jnlp-7_0-changes.html > (Change 3) > > Hi Saad, Generally the patch is good. I have a few minor corrections, please see below. Cheers, Deepak > diff -r 86abbf8be0b1 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java > --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Thu Jun 23 15:29:45 2011 +0200 > +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Tue Jul 05 16:31:01 2011 -0400 > @@ -19,8 +19,10 @@ > > import java.io.File; > import java.io.FileOutputStream; > +import java.io.FileReader; > import java.io.IOException; > import java.io.InputStream; > +import java.io.InputStreamReader; > import java.net.MalformedURLException; > import java.net.URL; > import java.net.URLClassLoader; > @@ -51,6 +53,8 @@ > import net.sourceforge.jnlp.ExtensionDesc; > import net.sourceforge.jnlp.JARDesc; > import net.sourceforge.jnlp.JNLPFile; > +import net.sourceforge.jnlp.JNLPMatcher; > +import net.sourceforge.jnlp.JNLPMatcherException; > import net.sourceforge.jnlp.LaunchException; > import net.sourceforge.jnlp.ParseException; > import net.sourceforge.jnlp.PluginBridge; > @@ -80,7 +84,11 @@ > // todo: initializePermissions should get the permissions from > // extension classes too so that main file classes can load > // resources in an extension. > - > + > + /** Signed JNLP File and Template */ > + final public static String template = "JNLP-INF/APPLICATION_TEMPLATE.JNLP"; > + final public static String application = "JNLP-INF/APPLICATION.JNLP"; > + > /** map from JNLPFile url to shared classloader */ > private static Map urlToLoader = > new HashMap(); // never garbage collected! > @@ -158,8 +166,9 @@ > * Create a new JNLPClassLoader from the specified file. > * > * @param file the JNLP file > + * @throws JNLPMatcherException if signed JNLP file failed to be verified or did not match > */ > - protected JNLPClassLoader(JNLPFile file, UpdatePolicy policy) throws LaunchException { > + protected JNLPClassLoader(JNLPFile file, UpdatePolicy policy) throws LaunchException, JNLPMatcherException { > super(new URL[0], JNLPClassLoader.class.getClassLoader()); > I don't think the constructor needs to throw a JNLPME. It should be caught, processed and a LaunchException should be the only think it throws. > if (JNLPRuntime.isDebug()) > @@ -273,8 +282,9 @@ > * > * @param file the file to load classes for > * @param policy the update policy to use when downloading resources > + * @throws JNLPMatcherException if signed JNLP file failed to be verified or did not match > */ > - public static JNLPClassLoader getInstance(JNLPFile file, UpdatePolicy policy) throws LaunchException { > + public static JNLPClassLoader getInstance(JNLPFile file, UpdatePolicy policy) throws LaunchException, JNLPMatcherException { Once above is resolved, the JNLPME throw will be gone. > JNLPClassLoader baseLoader = null; > JNLPClassLoader loader = null; > String uniqueKey = file.getUniqueKey(); > @@ -341,9 +351,10 @@ > * @param location the file's location > * @param version the file's version > * @param policy the update policy to use when downloading resources > + * @throws JNLPMatcherException if signed JNLP file failed to be verified or did not match > */ > public static JNLPClassLoader getInstance(URL location, String uniqueKey, Version version, UpdatePolicy policy) > - throws IOException, ParseException, LaunchException { > + throws IOException, ParseException, LaunchException, JNLPMatcherException { > JNLPClassLoader loader = urlToLoader.get(uniqueKey); > Same. > if (loader == null || !location.equals(loader.getJNLPFile().getFileLocation())) > @@ -403,7 +414,7 @@ > * Load all of the JARs used in this JNLP file into the > * ResourceTracker for downloading. > */ > - void initializeResources() throws LaunchException { > + void initializeResources() throws LaunchException, JNLPMatcherException { > JARDesc jars[] = resources.getJARs(); > if (jars == null || jars.length == 0) > return; > @@ -471,8 +482,135 @@ > //otherwise this jar is simply unsigned -- make sure to ask > //for permission on certain actions > } > + > + if (js.anyJarsSigned()) { > + //If there are any signed Jars, check if JNLP file is signed > + > + if (JNLPRuntime.isDebug()) > + System.out.println("STARTING check for signed JNLP file..."); > + Above should print to STDERR, not STDOUT. > + for (int i = 0; i < jars.length; i++) { > + List eachJar = new ArrayList(); > + JarSigner signer = new JarSigner(); > + eachJar.add(jars[i]); //Adds only the single jar to check if the jar has a valid signature > + > + tracker.addResource(jars[i].getLocation(), jars[i].getVersion(), > + getDownloadOptionsForJar(jars[i]), > + jars[i].isCacheable() ? JNLPRuntime.getDefaultUpdatePolicy() > + : UpdatePolicy.FORCE); > + > + try { > + signer.verifyJars(eachJar, tracker); > + > + if (signer.allJarsSigned()) { //If the jar is signed > + URL location = jars[i].getLocation(); > + File localFile = tracker.getCacheFile(location); > + > + > + if(localFile == null) Minor nit-pick.. there should be a space between the if and the ( > + { > + throw new JNLPMatcherException("Could not locate jar file, returned null"); > + } > + > + else{ Space between else and { > + try { > + JarFile jarFile = new JarFile(localFile); > + Enumeration entries = jarFile.entries(); > + JarEntry je; > + > + while (entries.hasMoreElements()) { > + je = entries.nextElement(); > + String jeName = je.getName().toUpperCase(); > + > + if (jeName.equals(template) || jeName.equals(application)) { > + > + if (JNLPRuntime.isDebug()) > + System.out.println("\tCreating Jar InputStream from Jar Entry"); > + > + InputStream inStream = jarFile.getInputStream(je); There is a resource leak here.. this stream is opened, but who is closing it? > + InputStreamReader inputReader = new InputStreamReader( > + inStream); > + > + if (JNLPRuntime.isDebug()) > + System.out.println("\tCreating File InputStream from lauching JNLP file"); > + STDERR instead of STDOUT > + JNLPFile jnlp = this.getJNLPFile(); > + URL url = jnlp.getFileLocation(); > + File jn = null; > + > + if (url.getProtocol().equals("file")) // If the file is on the local file system, use original path, otherwise find cache file > + jn = new File(url.getPath()); > + else > + jn = CacheUtil.getCacheFile(url, null); > + > + FileReader fr = new FileReader(jn); Same as above.. resource leak. Stream is opened but not closed. > + InputStreamReader jnlpReader = fr; > + JNLPMatcher matcher; > + > + try { > + > + if (jeName.equals(application)) { // If application was found > + > + if (JNLPRuntime.isDebug()) > + System.out.println("\tAPPLICATION.JNLP has been located within signed JAR. Starting verfication..."); > + > + matcher = new JNLPMatcher(inputReader, jnlpReader, false); > + } else // Otherwise template was > + // found > + { > + if (JNLPRuntime.isDebug()) > + System.out > + .println("\tAPPLICATION_TEMPLATE.JNLP has been located within signed JAR. Starting verfication..."); > + Print should be to STDERR (I will skip there from here on.. just change them all though please :)) > + matcher = new JNLPMatcher(inputReader,jnlpReader, true); > + } > + > + if (!matcher.match()) > + throw new JNLPMatcherException( > + "Signed Application did not match launching JNLP File"); > + > + if (JNLPRuntime.isDebug()) > + System.out > + .println("\t** Signed Application Verification Successful **"); > + > + break; // break while loop > + > + } catch (Exception e) { If there a reason why it is catching 'Exception' rather than specific checked ones? > + throw new JNLPMatcherException(e.getMessage(), e); > + } > + } > + break should probably be moved here.. if there is an exception, do we want it to keep looping? > + } > + } catch (IOException e) { //'new JarFile(localFile)' throws an IOException > + if (JNLPRuntime.isDebug()) > + e.printStackTrace(); > + > + //After this exception is caught, it is escaped. > + //If this exception is thrown when creating an instance of JarFile, > + //it will skip that jarFile and move on to the next jarFile (if there are any) > + } > + } > + } > + } catch (JNLPMatcherException e) { > + //Throw e if signed JNLP file failed to be verified > + //Throwing this exception will fail to initialize the application resulting in the termination of the application > + throw e; > + > + } catch (Exception e) { > + if (JNLPRuntime.isDebug()) > + e.printStackTrace(); > + > + //After this exception is caught, it is escaped. > + //If an exception is thrown while handling the jar file (mainly for JarSigner.verifyJars) > + //it will consider the jar file to be unsigned and skip on to the next jar file (if there are any) > + } > + } > + if (JNLPRuntime.isDebug()) > + System.out.println("ENDING check for signed JNLP file..."); > + } > } > > + Above new-line is not needed :) Cheers, Deepak > for (JARDesc jarDesc : file.getResources().getJARs()) { > try { > File cachedFile = tracker.getCacheFile(jarDesc.getLocation()); From dbhole at redhat.com Wed Jul 20 13:26:50 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Wed, 20 Jul 2011 16:26:50 -0400 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E259ABE.2070606@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E23FACA.3070305@redhat.com> <4E24998A.9050507@redhat.com> <4E252893.8050809@redhat.com> <4E259ABE.2070606@redhat.com> Message-ID: <20110720202650.GP17111@redhat.com> * Saad Mohammad [2011-07-19 11:04]: > I have attached the updated copy of Patch1. > > On 07/19/2011 02:47 AM, Jiri Vanek wrote: > >> > >>I hope this is the 110% for Patch1! ;) > >99% ;) > > This is for sure the 110% ;) > > -- > Cheers, > Saad Mohammad > Hi Saad, I have a few minor corrections for this one... > + > + if (appTemplate == null && launchJNLP == null) > + throw new NullPointerException( > + "Template JNLP file and Launching JNLP file are both null."); > + else if (appTemplate == null) > + throw new NullPointerException("Template JNLP file is null."); > + else if (launchJNLP == null) > + throw new NullPointerException("Launching JNLP file is null."); > + Throwing RuntimeExceptions is generally not a good idea. Consider making the above a checked exception. > + XMLElement appTemplateXML = new XMLElement(); > + XMLElement launchJNLPXML = new XMLElement(); > + > + // Remove the comments and CDATA from the JNLP file > + final PipedInputStream pinTemplate = new PipedInputStream(); > + final PipedOutputStream poutTemplate = new PipedOutputStream(pinTemplate); > + appTemplateXML.sanitizeInput(appTemplate, poutTemplate); > + > + final PipedInputStream pinJNLPFile = new PipedInputStream(); > + final PipedOutputStream poutJNLPFile = new PipedOutputStream(pinJNLPFile); > + launchJNLPXML.sanitizeInput(launchJNLP, poutJNLPFile); > + The above streams are never closed. > + // Parse both files > + appTemplateXML.parseFromReader(new InputStreamReader(pinTemplate)); > + launchJNLPXML.parseFromReader(new InputStreamReader(pinJNLPFile)); > + > + // Initialize parent nodes > + this.appTemplateNode = new Node(appTemplateXML); > + this.launchJNLPNode = new Node(launchJNLPXML); > + this.isTemplate = isTemplate; > + > + } catch (Exception e) { > + throw new JNLPMatcherException( > + "Failed to create an instance of JNLPVerify with specified InputStreamReader", > + e); > + } > + } > + > + /** > + * Compares both JNLP files > + * > + * @return true if both JNLP files are 'matched', otherwise false > + */ > + public boolean isMatch() { > + > + if (match == null) > + match = matchNodes(appTemplateNode, launchJNLPNode); > + > + return match; > + } > + Is there a case where match needs to be cached (i.e. isMatch is called multiple times for the same JNLPMatcher)? If not, the above function is not needed. ... > + > + /** > + * Getter for application/template Node > + * > + * @return the Node of the signed application/template file > + */ > + public Node getAppTemplateNode() { > + return appTemplateNode; > + } > + > + /** > + * Getter for launching application Node > + * > + * @return the Node of the launching JNLP file > + */ > + public Node getLaunchJNLPNode() { > + return launchJNLPNode; > + } > + I don't see anything calling the above .. the functions should be removed in that case. ... > @@ -86,6 +102,7 @@ > private ParsedXML tinyNode; > private Node next; > private Node children[]; > + private String attributeNames[]; > > Node(ParsedXML tinyNode) { > this.tinyNode = tinyNode; > @@ -127,6 +144,19 @@ > > return children; > } > + > + String[] getAttributeNames() { > + if (attributeNames == null) { > + List list = new ArrayList(); > + > + for (Enumeration e = xml.enumerateAttributeNames(); e.hasMoreElements();) > + list.add(new String((String) e.nextElement())); > + > + attributeNames = list.toArray(new String[list.size()]); > + > + } > + return attributeNames; > + } > Isn't the above all in commented code? Line 100 to 176 is commented out in HEAD: http://icedtea.classpath.org/hg/icedtea-web/file/7dd63058c234/netx/net/sourceforge/jnlp/Node.java I will leave all of the test case reviews to Jiri :) Cheers, Deepak From dbhole at redhat.com Wed Jul 20 13:38:12 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Wed, 20 Jul 2011 16:38:12 -0400 Subject: RFC: Patch for Bug#749 (sun.applet.PluginStreamHandler#handleMessage(String) really slow) In-Reply-To: <1985707260.795993.1311192486457.JavaMail.root@zmail04.collab.prod.int.phx2.redhat.com> References: <20110720192320.GN17111@redhat.com> <1985707260.795993.1311192486457.JavaMail.root@zmail04.collab.prod.int.phx2.redhat.com> Message-ID: <20110720203812.GA20519@redhat.com> * Denis Lila [2011-07-20 16:08]: > Hi Deepak. > > > ping2? > > If there is no "privileges" but there is "src", won't src be > included in rest? I'm pretty sure in the previous version > src was not included in rest, so if the answer to my question > is "yes", this would be a change in behaviour. > Hi Denis, There have been no code changes between any of the patches (i.e. between the original patch posted on bugzilla, the first iteration I posted, or this one). The only changes have been doc/spacing related -- I just double checked. As for no privileges but src, I don't see how it would get included.. the code-block is: // is there a src? if ("src".equals(msgComponents[0])) { src = msgComponents[1]; oldPos = pos; pos = readPair(message, oldPos, msgComponents); } // is there a privileges? if ("privileges".equals(msgComponents[0])) { String privs = msgComponents[1]; privileges = privs.split(","); oldPos = pos; } // rest if (message.length() > oldPos) { rest = message.substring(oldPos); } So if there is no privileges, oldPos will be where pos was right after the src value. OTOH if there were privileges, oldPos will be right after the privileges value. Cheers, Deepak > Regards, > Denis. > > ----- Original Message ----- > > * Deepak Bhole [2011-07-08 11:45]: > > > * Deepak Bhole [2011-07-05 11:16]: > > > > * Andrew John Hughes [2011-07-04 21:48]: > > > > > > > ... > > > > New patch with updated docs attached. Thanks for taking a look! > > > > > > > > > > ping? > > > > > > > > > > Deepak > > > > > Deepak From dlila at redhat.com Wed Jul 20 13:43:14 2011 From: dlila at redhat.com (Denis Lila) Date: Wed, 20 Jul 2011 16:43:14 -0400 (EDT) Subject: RFC: Patch for Bug#749 (sun.applet.PluginStreamHandler#handleMessage(String) really slow) In-Reply-To: <20110720203812.GA20519@redhat.com> Message-ID: <607253029.797025.1311194594502.JavaMail.root@zmail04.collab.prod.int.phx2.redhat.com> > So if there is no privileges, oldPos will be where pos was right after > the src > value. OTOH if there were privileges, oldPos will be right after the > privileges > value. Aha! I see it now. The patch looks ok to me. Cheers, Denis. ----- Original Message ----- > * Denis Lila [2011-07-20 16:08]: > > Hi Deepak. > > > > > ping2? > > > > If there is no "privileges" but there is "src", won't src be > > included in rest? I'm pretty sure in the previous version > > src was not included in rest, so if the answer to my question > > is "yes", this would be a change in behaviour. > > > > Hi Denis, > > There have been no code changes between any of the patches (i.e. > between the > original patch posted on bugzilla, the first iteration I posted, or > this one). > The only changes have been doc/spacing related -- I just double > checked. > > As for no privileges but src, I don't see how it would get included.. > the code-block is: > > // is there a src? > if ("src".equals(msgComponents[0])) { > src = msgComponents[1]; > oldPos = pos; > pos = readPair(message, oldPos, msgComponents); > } > > // is there a privileges? > if ("privileges".equals(msgComponents[0])) { > String privs = msgComponents[1]; > privileges = privs.split(","); > oldPos = pos; > } > > // rest > if (message.length() > oldPos) { > rest = message.substring(oldPos); > } > > > Cheers, > Deepak > > > Regards, > > Denis. > > > > ----- Original Message ----- > > > * Deepak Bhole [2011-07-08 11:45]: > > > > * Deepak Bhole [2011-07-05 11:16]: > > > > > * Andrew John Hughes [2011-07-04 21:48]: > > > > > > > > > ... > > > > > New patch with updated docs attached. Thanks for taking a > > > > > look! > > > > > > > > > > > > > ping? > > > > > > > > > > > > > > > Deepak > > > > > > > Deepak From ahughes at redhat.com Wed Jul 20 14:18:45 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Wed, 20 Jul 2011 22:18:45 +0100 Subject: RFC: Patch for Bug#749 (sun.applet.PluginStreamHandler#handleMessage(String) really slow) In-Reply-To: <20110705151616.GD10339@redhat.com> References: <20110704223514.GB10339@redhat.com> <20110705014810.GG17947@shelob.middle-earth.co.uk> <20110705151616.GD10339@redhat.com> Message-ID: <20110720211844.GM32327@rivendell.middle-earth.co.uk> On 11:16 Tue 05 Jul , Deepak Bhole wrote: > * Andrew John Hughes [2011-07-04 21:48]: > > On Mon, Jul 04, 2011 at 06:35:14PM -0400, Deepak Bhole wrote: > > > Hi, > > > > > > This is a cleaned up version of the patch posted for Bug# 749: > > > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=749 > > > > > > I have reviewed the patch myself and found no issues. The patch is > > > fairly straightforward and if there are no emails by tomorrow, > > > I will go ahead and commit to 1.0, 1.1 and HEAD. > > > > > > Cheers, > > > Deepak > > > > I've commented inline. The code itself looks ok, but it needs to be > > better documented. > > > > However, your comment about applying this patch, given no response > > disturbs me. We don't have a policy of doing this and I strongly > > think we should not do so. Please wait for a review, especially > > for release branch patches. You can't take no response after some > > short period (and 'tomorrow' is quite vague) as implicit approval > > of your patch. People do have other stuff to work on. > > > > The fix looked quite harmless so I didn't think much of it. Yeah, the point wasn't about the fix itself, but more a general point about submitting patches. > Nonetheless, > I will wait for approval next time. > Thanks. > New patch with updated docs attached. Thanks for taking a look! > Thanks. Probably best to delete the old one next time to avoid confusion, though I admit the old comments are useful :-) Approved (not before time... guess it got lost in the mail outage). > Cheers, > Deepak > > diff -r 86abbf8be0b1 AUTHORS > --- a/AUTHORS Thu Jun 23 15:29:45 2011 +0200 > +++ b/AUTHORS Tue Jul 05 11:12:20 2011 -0400 > @@ -3,6 +3,7 @@ > > Lillian Angel > Deepak Bhole > +Ricardo Mart?n Camarero > Thomas Fitzsimmons > Mark Greenwood > Andrew John Hughes > diff -r 86abbf8be0b1 ChangeLog > --- a/ChangeLog Thu Jun 23 15:29:45 2011 +0200 > +++ b/ChangeLog Tue Jul 05 11:12:20 2011 -0400 > @@ -1,3 +1,12 @@ > +2011-07-05 Deepak Bhole > + > + PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow > + Patch from: Ricardo Mart?n Camarero (Ricky) > + * plugin/icedteanp/java/sun/applet/PluginStreamHandler.java > + (readPair): New function. > + (handleMessage): Use readPair to incrementally tokenize message, rather > + than using String.split(). > + > 2011-06-22 Jiri Vanek > > * tests/report-styles/jreport.xsl: part with classes statistics is now collapsable > diff -r 86abbf8be0b1 NEWS > --- a/NEWS Thu Jun 23 15:29:45 2011 +0200 > +++ b/NEWS Tue Jul 05 11:12:20 2011 -0400 > @@ -8,6 +8,10 @@ > > CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY > > +New in release 1.2 (2011-XX-XX): > +* Plugin > + - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow > + > New in release 1.1 (2011-XX-XX): > * Security updates > - S6983554, CVE-2010-4450: Launcher incorrect processing of empty library path entries > diff -r 86abbf8be0b1 plugin/icedteanp/java/sun/applet/PluginStreamHandler.java > --- a/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Thu Jun 23 15:29:45 2011 +0200 > +++ b/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Tue Jul 05 11:12:20 2011 -0400 > @@ -113,18 +113,58 @@ > listenerThread.start(); > } > > + /** > + * Given a string, reads the first two (space separated) tokens. > + * > + * @param message The string to read > + * @param start The position to start reading at > + * @param array The array into which the first two tokens are placed > + * @return Position where the next token starts > + */ > + private int readPair(String message, int start, String[] array) { > + > + int end = start; > + array[0] = null; > + array[1] = null; > + > + if (message.length() > start) { > + int firstSpace = message.indexOf(' ', start); > + if (firstSpace == -1) { > + array[0] = message.substring(start); > + end = message.length(); > + } else { > + array[0] = message.substring(start, firstSpace); > + if (message.length() > firstSpace + 1) { > + int secondSpace = message.indexOf(' ', firstSpace + 1); > + if (secondSpace == -1) { > + array[1] = message.substring(firstSpace + 1); > + end = message.length(); > + } else { > + array[1] = message.substring(firstSpace + 1, secondSpace); > + end = secondSpace + 1; > + } > + } > + } > + } > + > + PluginDebug.debug("readPair: '", array[0], "' - '", array[1], "' ", end); > + return end; > + } > + > public void handleMessage(String message) throws PluginException { > > - int nextIndex = 0; > int reference = -1; > String src = null; > String[] privileges = null; > String rest = ""; > + String[] msgComponents = new String[2]; > + int pos = 0; > + int oldPos = 0; > > - String[] msgComponents = message.split(" "); > - > - if (msgComponents.length < 2) > + pos = readPair(message, oldPos, msgComponents); > + if (msgComponents[0] == null || msgComponents[1] == null) { > return; > + } > > if (msgComponents[0].startsWith("plugin")) { > handlePluginMessage(message); > @@ -134,38 +174,38 @@ > // type and identifier are guaranteed to be there > String type = msgComponents[0]; > final int identifier = Integer.parseInt(msgComponents[1]); > - nextIndex = 2; > > // reference, src and privileges are optional components, > // and are guaranteed to be in that order, if they occur > + oldPos = pos; > + pos = readPair(message, oldPos, msgComponents); > > // is there a reference ? > - if (msgComponents[nextIndex].equals("reference")) { > - reference = Integer.parseInt(msgComponents[nextIndex + 1]); > - nextIndex += 2; > + if ("reference".equals(msgComponents[0])) { > + reference = Integer.parseInt(msgComponents[1]); > + oldPos = pos; > + pos = readPair(message, oldPos, msgComponents); > } > > // is there a src? > - if (msgComponents[nextIndex].equals("src")) { > - src = msgComponents[nextIndex + 1]; > - nextIndex += 2; > + if ("src".equals(msgComponents[0])) { > + src = msgComponents[1]; > + oldPos = pos; > + pos = readPair(message, oldPos, msgComponents); > } > > // is there a privileges? > - if (msgComponents[nextIndex].equals("privileges")) { > - String privs = msgComponents[nextIndex + 1]; > + if ("privileges".equals(msgComponents[0])) { > + String privs = msgComponents[1]; > privileges = privs.split(","); > - nextIndex += 2; > + oldPos = pos; > } > > // rest > - for (int i = nextIndex; i < msgComponents.length; i++) { > - rest += msgComponents[i]; > - rest += " "; > + if (message.length() > oldPos) { > + rest = message.substring(oldPos); > } > > - rest = rest.trim(); > - > try { > > PluginDebug.debug("Breakdown -- type: ", type, " identifier: ", identifier, " reference: ", reference, " src: ", src, " privileges: ", privileges, " rest: \"", rest, "\""); -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Wed Jul 20 14:24:40 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Wed, 20 Jul 2011 22:24:40 +0100 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <20110720202650.GP17111@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E23FACA.3070305@redhat.com> <4E24998A.9050507@redhat.com> <4E252893.8050809@redhat.com> <4E259ABE.2070606@redhat.com> <20110720202650.GP17111@redhat.com> Message-ID: <20110720212440.GN32327@rivendell.middle-earth.co.uk> On 16:26 Wed 20 Jul , Deepak Bhole wrote: > * Saad Mohammad [2011-07-19 11:04]: > > I have attached the updated copy of Patch1. > > > > On 07/19/2011 02:47 AM, Jiri Vanek wrote: > > >> > > >>I hope this is the 110% for Patch1! ;) > > >99% ;) > > > > This is for sure the 110% ;) > > > > -- > > Cheers, > > Saad Mohammad > > > > Hi Saad, > > I have a few minor corrections for this one... > I was going to comment on this yesterday, but it appears it was already committed. I suggest a new patch is made wrt. mine and Deepak's comments. > > + > > + if (appTemplate == null && launchJNLP == null) > > + throw new NullPointerException( > > + "Template JNLP file and Launching JNLP file are both null."); > > + else if (appTemplate == null) > > + throw new NullPointerException("Template JNLP file is null."); > > + else if (launchJNLP == null) > > + throw new NullPointerException("Launching JNLP file is null."); > > + > > Throwing RuntimeExceptions is generally not a good idea. Consider making > the above a checked exception. > I do think RuntimeExceptions are appropriate as regards argument checks like this, but it depends on the context from which they are called. However, these are thrown here but then caught by the block below... This seems wrong. Just throw the JNLPMatcherExcpetion up here if that's the right course of action. > > + XMLElement appTemplateXML = new XMLElement(); > > + XMLElement launchJNLPXML = new XMLElement(); > > + > > + // Remove the comments and CDATA from the JNLP file > > + final PipedInputStream pinTemplate = new PipedInputStream(); > > + final PipedOutputStream poutTemplate = new PipedOutputStream(pinTemplate); > > + appTemplateXML.sanitizeInput(appTemplate, poutTemplate); > > + > > + final PipedInputStream pinJNLPFile = new PipedInputStream(); > > + final PipedOutputStream poutJNLPFile = new PipedOutputStream(pinJNLPFile); > > + launchJNLPXML.sanitizeInput(launchJNLP, poutJNLPFile); > > + > > The above streams are never closed. > > > + // Parse both files > > + appTemplateXML.parseFromReader(new InputStreamReader(pinTemplate)); > > + launchJNLPXML.parseFromReader(new InputStreamReader(pinJNLPFile)); > > + > > + // Initialize parent nodes > > + this.appTemplateNode = new Node(appTemplateXML); > > + this.launchJNLPNode = new Node(launchJNLPXML); > > + this.isTemplate = isTemplate; > > + > > + } catch (Exception e) { > > + throw new JNLPMatcherException( > > + "Failed to create an instance of JNLPVerify with specified InputStreamReader", > > + e); > > + } I think the handling here should be more specific. > > + } > > + > > + /** > > + * Compares both JNLP files > > + * > > + * @return true if both JNLP files are 'matched', otherwise false > > + */ > > + public boolean isMatch() { > > + > > + if (match == null) > > + match = matchNodes(appTemplateNode, launchJNLPNode); > > + > > + return match; > > + } > > + > > Is there a case where match needs to be cached (i.e. isMatch is called > multiple times for the same JNLPMatcher)? If not, the above function is > not needed. > > ... > > + > > + /** > > + * Getter for application/template Node > > + * > > + * @return the Node of the signed application/template file > > + */ > > + public Node getAppTemplateNode() { > > + return appTemplateNode; > > + } > > + > > + /** > > + * Getter for launching application Node > > + * > > + * @return the Node of the launching JNLP file > > + */ > > + public Node getLaunchJNLPNode() { > > + return launchJNLPNode; > > + } > > + > > I don't see anything calling the above .. the functions should be > removed in that case. > > ... > > @@ -86,6 +102,7 @@ > > private ParsedXML tinyNode; > > private Node next; > > private Node children[]; > > + private String attributeNames[]; > > > > Node(ParsedXML tinyNode) { > > this.tinyNode = tinyNode; > > @@ -127,6 +144,19 @@ > > > > return children; > > } > > + > > + String[] getAttributeNames() { > > + if (attributeNames == null) { > > + List list = new ArrayList(); > > + > > + for (Enumeration e = xml.enumerateAttributeNames(); e.hasMoreElements();) > > + list.add(new String((String) e.nextElement())); > > + > > + attributeNames = list.toArray(new String[list.size()]); > > + > > + } > > + return attributeNames; > > + } > > > > Isn't the above all in commented code? Line 100 to 176 is commented out > in HEAD: > http://icedtea.classpath.org/hg/icedtea-web/file/7dd63058c234/netx/net/sourceforge/jnlp/Node.java > The use of new String and casting seems wrong. I'm not sure what e.nextElement is returning but that enumeration should be using generics. Can xml not return the number of element names beforehand? I'm not familiar with this XML API. Where is it from? Doesn't look like JAXP. > I will leave all of the test case reviews to Jiri :) > > Cheers, > Deepak -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From jvanek at redhat.com Thu Jul 21 00:15:38 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 21 Jul 2011 09:15:38 +0200 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <20110720202650.GP17111@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E23FACA.3070305@redhat.com> <4E24998A.9050507@redhat.com> <4E252893.8050809@redhat.com> <4E259ABE.2070606@redhat.com> <20110720202650.GP17111@redhat.com> Message-ID: <4E27D21A.1070102@redhat.com> On 07/20/2011 10:26 PM, Deepak Bhole wrote: > * Saad Mohammad [2011-07-19 11:04]: >> > I have attached the updated copy of Patch1. >> > >> > On 07/19/2011 02:47 AM, Jiri Vanek wrote: >>>> > >> >>>> > >>I hope this is the 110% for Patch1! ;) >>> > >99% ;) >> > >> > This is for sure the 110% ;) >> > >> > -- >> > Cheers, >> > Saad Mohammad >> > > Hi Saad, > > I have a few minor corrections for this one... > >> > + >> > + if (appTemplate == null&& launchJNLP == null) >> > + throw new NullPointerException( >> > + "Template JNLP file and Launching JNLP file are both null."); >> > + else if (appTemplate == null) >> > + throw new NullPointerException("Template JNLP file is null."); >> > + else if (launchJNLP == null) >> > + throw new NullPointerException("Launching JNLP file is null."); >> > + > Throwing RuntimeExceptions is generally not a good idea. Consider making > the above a checked exception. I believe nullpointer exception is correct here. Or it will make mess later. Although to repalce it with JNLMatch exception can do no harm. > >> > + XMLElement appTemplateXML = new XMLElement(); >> > + XMLElement launchJNLPXML = new XMLElement(); >> > + >> > + // Remove the comments and CDATA from the JNLP file >> > + final PipedInputStream pinTemplate = new PipedInputStream(); >> > + final PipedOutputStream poutTemplate = new PipedOutputStream(pinTemplate); >> > + appTemplateXML.sanitizeInput(appTemplate, poutTemplate); >> > + >> > + final PipedInputStream pinJNLPFile = new PipedInputStream(); >> > + final PipedOutputStream poutJNLPFile = new PipedOutputStream(pinJNLPFile); >> > + launchJNLPXML.sanitizeInput(launchJNLP, poutJNLPFile); >> > + > The above streams are never closed. I' guess, ... ...see previous email.. ...l) s.close(); } around s.close() yo can possibly clsoe io exception into JNLPMatcherException. > >> > + // Parse both files >> > + appTemplateXML.parseFromReader(new InputStreamReader(pinTemplate)); >> > + launchJNLPXML.parseFromReader(new InputStreamReader(pinJNLPFile)); >> > + >> > + // Initialize parent nodes >> > + this.appTemplateNode = new Node(appTemplateXML); >> > + this.launchJNLPNode = new Node(launchJNLPXML); >> > + this.isTemplate = isTemplate; >> > + >> > + } catch (Exception e) { >> > + throw new JNLPMatcherException( >> > + "Failed to create an instance of JNLPVerify with specified InputStreamReader", >> > + e); >> > + } >> > + } >> > + >> > + /** >> > + * Compares both JNLP files >> > + * >> > + * @return true if both JNLP files are 'matched', otherwise false >> > + */ >> > + public boolean isMatch() { >> > + >> > + if (match == null) >> > + match = matchNodes(appTemplateNode, launchJNLPNode); >> > + >> > + return match; >> > + } >> > + > Is there a case where match needs to be cached (i.e. isMatch is called > multiple times for the same JNLPMatcher)? If not, the above function is > not needed. > > ... >> > + >> > + /** >> > + * Getter for application/template Node >> > + * >> > + * @return the Node of the signed application/template file >> > + */ >> > + public Node getAppTemplateNode() { >> > + return appTemplateNode; >> > + } >> > + >> > + /** >> > + * Getter for launching application Node >> > + * >> > + * @return the Node of the launching JNLP file >> > + */ >> > + public Node getLaunchJNLPNode() { >> > + return launchJNLPNode; >> > + } >> > + > I don't see anything calling the above .. the functions should be > removed in that case. > > ... >> > @@ -86,6 +102,7 @@ >> > private ParsedXML tinyNode; >> > private Node next; >> > private Node children[]; >> > + private String attributeNames[]; >> > >> > Node(ParsedXML tinyNode) { >> > this.tinyNode = tinyNode; >> > @@ -127,6 +144,19 @@ >> > >> > return children; >> > } >> > + >> > + String[] getAttributeNames() { >> > + if (attributeNames == null) { >> > + List list = new ArrayList(); >> > + >> > + for (Enumeration e = xml.enumerateAttributeNames(); e.hasMoreElements();) >> > + list.add(new String((String) e.nextElement())); >> > + >> > + attributeNames = list.toArray(new String[list.size()]); >> > + >> > + } >> > + return attributeNames; >> > + } >> > > Isn't the above all in commented code? Line 100 to 176 is commented out > in HEAD: > http://icedtea.classpath.org/hg/icedtea-web/file/7dd63058c234/netx/net/sourceforge/jnlp/Node.java Yes, this was already commited. Suggested changes can be posted as new patch. > > I will leave all of the test case reviews to Jiri :) > > Cheers, > Deepak Deepak, Tahnx a lot for remarks! Regards J. From jvanek at redhat.com Thu Jul 21 00:15:44 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 21 Jul 2011 09:15:44 +0200 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <20110720201035.GO17111@redhat.com> References: <4E14B940.6080109@redhat.com> <20110720201035.GO17111@redhat.com> Message-ID: <4E27D220.5000605@redhat.com> On 07/20/2011 10:10 PM, Deepak Bhole wrote: > * Saad Mohammad [2011-07-06 15:38]: >> > This is the updated patch for adding support of signed JNLP file. I >> > have attached two patches. >> > >> > More Info: >> > http://jcp.org/aboutJava/communityprocess/maintenance/jsr056/jnlp-7_0-changes.html >> > (Change 3) >> > >> > > Hi Saad, > > Generally the patch is good. I have a few minor corrections, please see > below. ...snip... >> > + try { >> > + JarFile jarFile = new JarFile(localFile); >> > + Enumeration entries = jarFile.entries(); >> > + JarEntry je; >> > + >> > + while (entries.hasMoreElements()) { >> > + je = entries.nextElement(); >> > + String jeName = je.getName().toUpperCase(); >> > + >> > + if (jeName.equals(template) || jeName.equals(application)) { >> > + >> > + if (JNLPRuntime.isDebug()) >> > + System.out.println("\tCreating Jar InputStream from Jar Entry"); >> > + >> > + InputStream inStream = jarFile.getInputStream(je); > There is a resource leak here.. this stream is opened, but who is closing it? I' guess, that parser is closing the stream, thats why I did not point to this. When I tried to reuse the strem, "stream already closed" exception was thrown. Saad, can you check it one more time? But it si true tht wenexception is thrown, then there should be some finally blok which will close the streams. it should be reffactored to: Strams s=null; try{ }catch(Exception 1 e){... }catch(Exception 2 e){... }.. }finally{ if (s!=null) s.close(); } around s.close() yo can possibly clsoe io exception into JNLPMatcherException. > >> > + InputStreamReader inputReader = new InputStreamReader( >> > + inStream); >>snip... >> > + if (url.getProtocol().equals("file")) // If the file is on the local file system, use original path, otherwise find cache file >> > + jn = new File(url.getPath()); >> > + else >> > + jn = CacheUtil.getCacheFile(url, null); >> > + >> > + FileReader fr = new FileReader(jn); > Same as above.. resource leak. Stream is opened but not closed. > >> > + InputStreamReader jnlpReader = fr; .getLocation()); J. From jvanek at redhat.com Thu Jul 21 00:21:02 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 21 Jul 2011 09:21:02 +0200 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <20110720212440.GN32327@rivendell.middle-earth.co.uk> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E23FACA.3070305@redhat.com> <4E24998A.9050507@redhat.com> <4E252893.8050809@redhat.com> <4E259ABE.2070606@redhat.com> <20110720202650.GP17111@redhat.com> <20110720212440.GN32327@rivendell.middle-earth.co.uk> Message-ID: <4E27D35E.1000105@redhat.com> On 07/20/2011 11:24 PM, Dr Andrew John Hughes wrote: > On 16:26 Wed 20 Jul , Deepak Bhole wrote: >> * Saad Mohammad [2011-07-19 11:04]: >>> I have attached the updated copy of Patch1. >>> >>> On 07/19/2011 02:47 AM, Jiri Vanek wrote: >>>>> >>>>> I hope this is the 110% for Patch1! ;) >>>> 99% ;) >>> ..snip... > > The use of new String and casting seems wrong. I'm not sure what e.nextElement is returning > but that enumeration should be using generics. This method was refactored to return pure list and is now working correctly. > > Can xml not return the number of element names beforehand? Bad luck. No:( > > I'm not familiar with this XML API. Where is it from? Doesn't look like JAXP. This is tiny html parser coded directly inside icedtea-web.... not sure if it is right choice ... but is is here very long tim and a several things depnde on him. It was chosen because he is much m,ore tolerant then xml parsers. Weather it is benefit is question,, but it was decided long ago and is working fine. > >> I will leave all of the test case reviews to Jiri :) >> >> Cheers, >> Deepak > J From ptisnovs at icedtea.classpath.org Thu Jul 21 00:42:14 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 21 Jul 2011 07:42:14 +0000 Subject: /hg/icedtea6: S6390045: Unexpected error "cannot access java.lan... Message-ID: changeset c2a1c2cf027e in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=c2a1c2cf027e author: ptisnovs date: Thu Jul 21 09:42:07 2011 +0200 S6390045: Unexpected error "cannot access java.lang.Void" with '-target cldc1.0' with -source >=1.5 diffstat: ChangeLog | 7 + Makefile.am | 3 +- NEWS | 1 + patches/openjdk/6390045-error_cannot_access_java_lang_void.patch | 101 ++++++++++ 4 files changed, 111 insertions(+), 1 deletions(-) diffs (146 lines): diff -r 96f22f84fb9d -r c2a1c2cf027e ChangeLog --- a/ChangeLog Wed Jul 20 10:28:01 2011 +0200 +++ b/ChangeLog Thu Jul 21 09:42:07 2011 +0200 @@ -1,3 +1,10 @@ +2011-07-21 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/6390045-error_cannot_access_java_lang_void.patch: + Backport of 6390045. + 2011-07-20 Pavel Tisnovsky * Makefile.am: added new patch diff -r 96f22f84fb9d -r c2a1c2cf027e Makefile.am --- a/Makefile.am Wed Jul 20 10:28:01 2011 +0200 +++ b/Makefile.am Thu Jul 21 09:42:07 2011 +0200 @@ -366,7 +366,8 @@ patches/openjdk/6613904-GroupLayout_createParallelGroup_null_arg.patch \ patches/openjdk/7049339-anyblit-broken.patch \ patches/jtreg-hotspot-Test7020373-fix.patch \ - patches/openjdk/4917091-javac_rejects_array_over_128_in_length.patch + patches/openjdk/4917091-javac_rejects_array_over_128_in_length.patch \ + patches/openjdk/6390045-error_cannot_access_java_lang_void.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r 96f22f84fb9d -r c2a1c2cf027e NEWS --- a/NEWS Wed Jul 20 10:28:01 2011 +0200 +++ b/NEWS Thu Jul 21 09:42:07 2011 +0200 @@ -359,6 +359,7 @@ - S7049339: Image copy operations with a custom composite and a complex clip fail. - S6613904: javax.swing.GroupLayout.createParallelGroup(..) doesn't throw IllegalArgumentException for null arg - S4917091: javac rejects array over 128 in length + - S6390045: Unexpected error "cannot access java.lang.Void" with '-target cldc1.0' with -source >=1.5 * Allow selection of test suites using the jtreg_checks argument e.g. jtreg_checks="langtools" * CACAO - Threadlist & threadobject improvements. diff -r 96f22f84fb9d -r c2a1c2cf027e patches/openjdk/6390045-error_cannot_access_java_lang_void.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6390045-error_cannot_access_java_lang_void.patch Thu Jul 21 09:42:07 2011 +0200 @@ -0,0 +1,104 @@ +# HG changeset patch +# User mcimadamore +# Date 1249949533 -3600 +# Node ID abe992640c5a766e54f8490cf1d85ff2aacbbb5d +# Parent d5f6c475f475b905f04446ea54ff455cd9d067fe +6390045: Unexpected error "cannot access java.lang.Void" with '-target cldc1.0' with -source >=1.5 +Summary: javac needs to synthetize a fake java.lang.Void symbol if one is not given on the classpath +Reviewed-by: jjg + +diff -r d5f6c475f475 -r abe992640c5a src/share/classes/com/sun/tools/javac/code/Symtab.java +--- openjdk.orig/langtools/src/share/classes/com/sun/tools/javac/code/Symtab.java Tue Aug 11 01:11:37 2009 +0100 ++++ openjdk/langtools/src/share/classes/com/sun/tools/javac/code/Symtab.java Tue Aug 11 01:12:13 2009 +0100 +@@ -440,6 +440,7 @@ + synthesizeEmptyInterfaceIfMissing(serializableType); + synthesizeBoxTypeIfMissing(doubleType); + synthesizeBoxTypeIfMissing(floatType); ++ synthesizeBoxTypeIfMissing(voidType); + + // Enter a synthetic class that is used to mark internal + // proprietary classes in ct.sym. This class does not have a +diff -r d5f6c475f475 -r abe992640c5a test/tools/javac/6390045/T6390045a.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/langtools/test/tools/javac/6390045/T6390045a.java Tue Aug 11 01:12:13 2009 +0100 +@@ -0,0 +1,38 @@ ++/* ++ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++/* ++ * @test ++ * @bug 6390045 ++ * @summary Unexpected error "cannot access java.lang.Void" with '-target cldc1.0' with -source >=1.5 ++ * ++ * @author mcimadamore ++ * @compile -XDfailcomplete=java.lang.Void T6390045a.java ++ */ ++ ++class T6390045a { ++ boolean b; ++ short s; ++ Object o; ++ Object p = b ? o : s; ++} +diff -r d5f6c475f475 -r abe992640c5a test/tools/javac/6390045/T6390045b.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/langtools/test/tools/javac/6390045/T6390045b.java Tue Aug 11 01:12:13 2009 +0100 +@@ -0,0 +1,38 @@ ++/* ++ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++/* ++ * @test ++ * @bug 6390045 ++ * @summary Unexpected error "cannot access java.lang.Void" with '-target cldc1.0' with -source >=1.5 ++ * ++ * @author mcimadamore ++ * @compile -XDfailcomplete=java.lang.Void T6390045b.java ++ */ ++ ++class T6390045b { ++ short s; ++ Object o; ++ Object p = choose(o, s); ++ T choose(T t1, T t2) { return t1; } ++} From ptisnovs at redhat.com Thu Jul 21 00:47:40 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Thu, 21 Jul 2011 09:47:40 +0200 Subject: [RFC] - extended creation of simple reproducers jars In-Reply-To: <4E25BCDC.4040804@redhat.com> References: <4E1C03A0.1010705@redhat.com> <4E258367.8080507@redhat.com> <4E25BCDC.4040804@redhat.com> Message-ID: <4E27D99C.6060309@redhat.com> Jiri Vanek wrote: > On 07/19/2011 03:15 PM, Pavel Tisnovsky wrote: > Hi! > Thanx for review: >> Hi Jiri, >> >> thank you for your work. The patch itself looks good, I'm just curious >> if this approach would work in case of many "simple" tests, for example >> 1000 tests. I mean this line: >> >> + $(BOOT_DIR)/bin/javac -d $(JNLP_TESTS_DIR)/$$dir/ $$srcFiles ; \ >> > > This line always compile one single reproducer. They have mostly one or > two classes and it is nearly unbelievable that single reproducer will > have more tehn hundrets of files. Commandline have 128KB buffer. It i > smore then enough for SIMPLE reproducer :D thanks for the explanation. Then I'm satisfied with it :-) >> Maybe it would be good to compile the tests in a program loop (it's >> possible to create for-each loop which can run for files found by find >> ;-) ) but if your solution works, I'm ok with it. >> >> >> Also ChangeLog entry should be IMHO reworded as it's not understandable >> (at least for me, but as you know I'm not a native speaker ;-) >> >> Cheers, >> Pavel >> >> >> Jiri Vanek wrote: >>> Hi! >>> This patch removes old compiling of files in src directory (by "*") in >>> simple reproducers by finding .java files (honours also directory >>> structure which previous technique ignored) and also copy all not java >>> files into resulted jar (also ignored in "*" approach) >>> Motivation for this patch are by-jnlp-signed reproducers which can >>> appear soon and I do not want to have special build code for them (== >>> including application.jnlp or template.jnlp files) >>> >>> >>> 2011-07-12 Jiri Vanek >>> >>> *Makefile.am: (stamps/netx-dist-tests-prepare-reproducers.stamp): >>> now honour directory structure under srcs in simple reproducer and >>> copy also not compiled java files into resulted jars from src >>> directory >>> >> > > 2011-07-19 Jiri Vanek > > *Makefile.am: (stamps/netx-dist-tests-prepare-reproducers.stamp): > now are compiled files correctly compiled from directory structure. > Also not java files are copied with expected directory structure and > jarred together with classes. > > > > Better? The patch remains same. > > Regards J. > From ptisnovs at redhat.com Thu Jul 21 01:01:08 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Thu, 21 Jul 2011 10:01:08 +0200 Subject: Reviwer needed: backport of fix "6752638: java.awt.GraphicsEnvironment.preferLocaleFonts() throws NPE on Linux" into IcedTea6 HEAD Message-ID: <4E27DCC4.5020706@redhat.com> Greetings, is it possible to push the fix "6752638: java.awt.GraphicsEnvironment.preferLocaleFonts() throws NPE on Linux" into IcedTea6 HEAD" please? The behaviour of this fix was checked on RHELs. Here's ChangeLog entry: 2011-07-21 Pavel Tisnovsky * Makefile.am: added new patch * NEWS: updated with backport * patches/openjdk/6752638-preferLocaleFonts_throws_NPE.patch: Backport of 6752638. Can anybody please review this change? Thank you in advance, Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 6752638_hg.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110721/4aba35bb/6752638_hg.diff From ptisnovs at icedtea.classpath.org Thu Jul 21 01:17:55 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 21 Jul 2011 08:17:55 +0000 Subject: /hg/gfx-test: Added ChangeLog, added 2011 year in a copyright he... Message-ID: changeset 70dddc9b0917 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=70dddc9b0917 author: Pavel Tisnovsky date: Thu Jul 21 10:19:13 2011 +0200 Added ChangeLog, added 2011 year in a copyright header for all source files. diffstat: AUTHORS | 5 + ChangeLog | 74 ++++++++++ src/org/gfxtest/ImageDiffer/ComparisonResult.java | 2 +- src/org/gfxtest/ImageDiffer/Configuration.java | 2 +- src/org/gfxtest/ImageDiffer/ImageComparator.java | 2 +- src/org/gfxtest/ImageDiffer/ImageUtils.java | 2 +- src/org/gfxtest/ImageDiffer/Main.java | 4 +- src/org/gfxtest/ImageDiffer/ResultWriters/HtmlStructureWriter.java | 2 +- src/org/gfxtest/ImageDiffer/ResultWriters/HtmlWriter.java | 2 +- src/org/gfxtest/ImageDiffer/ResultWriters/ResultWriter.java | 2 +- src/org/gfxtest/ImageDiffer/ResultWriters/XmlWriter.java | 2 +- src/org/gfxtest/common/Configuration.java | 2 +- src/org/gfxtest/common/ConfigurationException.java | 2 +- src/org/gfxtest/common/InvalidParameterValueException.java | 2 +- src/org/gfxtest/framework/EntityRenderingStyle.java | 2 +- src/org/gfxtest/framework/GfxTest.java | 2 +- src/org/gfxtest/framework/GfxTestConfiguration.java | 2 +- src/org/gfxtest/framework/Log.java | 2 +- src/org/gfxtest/framework/ParameterNotFoundException.java | 2 +- src/org/gfxtest/framework/TestImage.java | 2 +- src/org/gfxtest/framework/TestResult.java | 2 +- src/org/gfxtest/framework/annotations/GraphicsPrimitive.java | 2 +- src/org/gfxtest/framework/annotations/GraphicsPrimitives.java | 2 +- src/org/gfxtest/framework/annotations/RenderStyle.java | 2 +- src/org/gfxtest/framework/annotations/RenderStyles.java | 2 +- src/org/gfxtest/framework/annotations/TestType.java | 2 +- src/org/gfxtest/framework/annotations/TestTypes.java | 2 +- src/org/gfxtest/framework/annotations/Transformation.java | 2 +- src/org/gfxtest/framework/annotations/Transformations.java | 2 +- src/org/gfxtest/framework/annotations/Zoom.java | 2 +- src/org/gfxtest/harness/Configuration.java | 2 +- src/org/gfxtest/harness/Dialogs.java | 2 +- src/org/gfxtest/harness/ExternalCommands.java | 2 +- src/org/gfxtest/harness/FileSystemTools.java | 2 +- src/org/gfxtest/harness/MainWindow.java | 2 +- src/org/gfxtest/harness/Paths.java | 2 +- src/org/gfxtest/harness/SourceViewer.java | 2 +- src/org/gfxtest/reporter/Reporter.java | 2 +- src/org/gfxtest/reporter/ReporterConfiguration.java | 2 +- src/org/gfxtest/reporter/TestResult.java | 2 +- src/org/gfxtest/testsuites/AALines.java | 2 +- src/org/gfxtest/testsuites/BlankImage.java | 2 +- src/org/gfxtest/testsuites/DashedArcs.java | 2 +- src/org/gfxtest/testsuites/DashedCircles.java | 2 +- src/org/gfxtest/testsuites/DashedEllipses.java | 2 +- src/org/gfxtest/testsuites/DashedLines.java | 2 +- src/org/gfxtest/testsuites/DashedPolygons.java | 2 +- src/org/gfxtest/testsuites/DashedPolylines.java | 2 +- src/org/gfxtest/testsuites/DashedRectangles.java | 2 +- src/org/gfxtest/testsuites/DashedRoundRectangles.java | 2 +- src/org/gfxtest/testsuites/FilledArcs.java | 2 +- src/org/gfxtest/testsuites/FilledCircles.java | 2 +- src/org/gfxtest/testsuites/FilledEllipses.java | 2 +- src/org/gfxtest/testsuites/FilledPolygons.java | 2 +- src/org/gfxtest/testsuites/FilledRectangles.java | 2 +- src/org/gfxtest/testsuites/FilledRoundRectangles.java | 2 +- src/org/gfxtest/testsuites/Normal3DRectangles.java | 2 +- src/org/gfxtest/testsuites/NormalArcs.java | 2 +- src/org/gfxtest/testsuites/NormalCircles.java | 2 +- src/org/gfxtest/testsuites/NormalEllipses.java | 2 +- src/org/gfxtest/testsuites/NormalLines.java | 2 +- src/org/gfxtest/testsuites/NormalPolygons.java | 2 +- src/org/gfxtest/testsuites/NormalPolylines.java | 2 +- src/org/gfxtest/testsuites/NormalRectangles.java | 2 +- src/org/gfxtest/testsuites/NormalRoundRectangles.java | 2 +- src/org/gfxtest/testsuites/ScaledLines.java | 2 +- src/org/gfxtest/testsuites/ScaledPolylines.java | 2 +- src/org/gfxtest/testsuites/ScaledRectangles.java | 2 +- src/org/gfxtest/testsuites/SpecialCases.java | 2 +- 69 files changed, 147 insertions(+), 68 deletions(-) diffs (truncated from 903 to 500 lines): diff -r 4fc0e4476c9b -r 70dddc9b0917 AUTHORS --- a/AUTHORS Wed Jul 13 14:54:33 2011 +0200 +++ b/AUTHORS Thu Jul 21 10:19:13 2011 +0200 @@ -4,3 +4,8 @@ Denis Lila Pavel Tisnovsky +The following people provided feedback and bug reports: + +If your name doesn't appear on either list, but should, if it appears +on the wrong list, or if your name or mail address is misspelled, +please let us know. diff -r 4fc0e4476c9b -r 70dddc9b0917 ChangeLog --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ChangeLog Thu Jul 21 10:19:13 2011 +0200 @@ -0,0 +1,74 @@ +2011-07-21 Pavel Tisnovsky + + * AUTHORS: added footer + * ChangeLog: created + * src/org/gfxtest/common/ConfigurationException.java: + * src/org/gfxtest/common/Configuration.java: + * src/org/gfxtest/common/InvalidParameterValueException.java: + * src/org/gfxtest/framework/EntityRenderingStyle.java: + * src/org/gfxtest/framework/GfxTestConfiguration.java: + * src/org/gfxtest/framework/GfxTest.java: + * src/org/gfxtest/framework/Log.java: + * src/org/gfxtest/framework/ParameterNotFoundException.java: + * src/org/gfxtest/framework/TestImage.java: + * src/org/gfxtest/framework/TestResult.java: + * src/org/gfxtest/framework/annotations/GraphicsPrimitive.java: + * src/org/gfxtest/framework/annotations/GraphicsPrimitives.java: + * src/org/gfxtest/framework/annotations/RenderStyle.java: + * src/org/gfxtest/framework/annotations/RenderStyles.java: + * src/org/gfxtest/framework/annotations/TestType.java: + * src/org/gfxtest/framework/annotations/TestTypes.java: + * src/org/gfxtest/framework/annotations/Transformation.java: + * src/org/gfxtest/framework/annotations/Transformations.java: + * src/org/gfxtest/framework/annotations/Zoom.java: + * src/org/gfxtest/harness/Configuration.java: + * src/org/gfxtest/harness/Dialogs.java: + * src/org/gfxtest/harness/ExternalCommands.java: + * src/org/gfxtest/harness/FileSystemTools.java: + * src/org/gfxtest/harness/MainWindow.java: + * src/org/gfxtest/harness/Paths.java: + * src/org/gfxtest/harness/SourceViewer.java: + * src/org/gfxtest/ImageDiffer/ComparisonResult.java: + * src/org/gfxtest/ImageDiffer/Configuration.java: + * src/org/gfxtest/ImageDiffer/ImageComparator.java: + * src/org/gfxtest/ImageDiffer/ImageUtils.java: + * src/org/gfxtest/ImageDiffer/Main.java: + * src/org/gfxtest/ImageDiffer/ResultWriters: + * src/org/gfxtest/ImageDiffer/ResultWriters/HtmlStructureWriter.java: + * src/org/gfxtest/ImageDiffer/ResultWriters/HtmlWriter.java: + * src/org/gfxtest/ImageDiffer/ResultWriters/ResultWriter.java: + * src/org/gfxtest/ImageDiffer/ResultWriters/XmlWriter.java: + * src/org/gfxtest/reporter/ReporterConfiguration.java: + * src/org/gfxtest/reporter/Reporter.java: + * src/org/gfxtest/reporter/TestResult.java: + * src/org/gfxtest/testsuites/AALines.java: + * src/org/gfxtest/testsuites/BlankImage.java: + * src/org/gfxtest/testsuites/DashedArcs.java: + * src/org/gfxtest/testsuites/DashedCircles.java: + * src/org/gfxtest/testsuites/DashedEllipses.java: + * src/org/gfxtest/testsuites/DashedLines.java: + * src/org/gfxtest/testsuites/DashedPolygons.java: + * src/org/gfxtest/testsuites/DashedPolylines.java: + * src/org/gfxtest/testsuites/DashedRectangles.java: + * src/org/gfxtest/testsuites/DashedRoundRectangles.java: + * src/org/gfxtest/testsuites/FilledArcs.java: + * src/org/gfxtest/testsuites/FilledCircles.java: + * src/org/gfxtest/testsuites/FilledEllipses.java: + * src/org/gfxtest/testsuites/FilledPolygons.java: + * src/org/gfxtest/testsuites/FilledRectangles.java: + * src/org/gfxtest/testsuites/FilledRoundRectangles.java: + * src/org/gfxtest/testsuites/Normal3DRectangles.java: + * src/org/gfxtest/testsuites/NormalArcs.java: + * src/org/gfxtest/testsuites/NormalCircles.java: + * src/org/gfxtest/testsuites/NormalEllipses.java: + * src/org/gfxtest/testsuites/NormalLines.java: + * src/org/gfxtest/testsuites/NormalPolygons.java: + * src/org/gfxtest/testsuites/NormalPolylines.java: + * src/org/gfxtest/testsuites/NormalRectangles.java: + * src/org/gfxtest/testsuites/NormalRoundRectangles.java: + * src/org/gfxtest/testsuites/ScaledLines.java: + * src/org/gfxtest/testsuites/ScaledPolylines.java: + * src/org/gfxtest/testsuites/ScaledRectangles.java: + * src/org/gfxtest/testsuites/SpecialCases.java: + Change year in a copyright header. + diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/ImageDiffer/ComparisonResult.java --- a/src/org/gfxtest/ImageDiffer/ComparisonResult.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/ImageDiffer/ComparisonResult.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/ImageDiffer/Configuration.java --- a/src/org/gfxtest/ImageDiffer/Configuration.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/ImageDiffer/Configuration.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/ImageDiffer/ImageComparator.java --- a/src/org/gfxtest/ImageDiffer/ImageComparator.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/ImageDiffer/ImageComparator.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/ImageDiffer/ImageUtils.java --- a/src/org/gfxtest/ImageDiffer/ImageUtils.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/ImageDiffer/ImageUtils.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/ImageDiffer/Main.java --- a/src/org/gfxtest/ImageDiffer/Main.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/ImageDiffer/Main.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. @@ -107,7 +107,7 @@ { System.out.println( "Welcome to Lupic, the yet another image comparator\n\n" + - "(c) 2010 Pavel Tisnovsky, Red Hat Inc.\n\n" + + "(c) 2010, 2011 Pavel Tisnovsky, Red Hat Inc.\n\n" + " Usage:\n " + "java -jar lupic.jar -s1=./samples -s2=./output -m=./masks -b=./bitmap-masks -o=./output --html --html-results --xml-results --diff-images --struct-diff-images\n" + "\n" + diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/ImageDiffer/ResultWriters/HtmlStructureWriter.java --- a/src/org/gfxtest/ImageDiffer/ResultWriters/HtmlStructureWriter.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/ImageDiffer/ResultWriters/HtmlStructureWriter.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/ImageDiffer/ResultWriters/HtmlWriter.java --- a/src/org/gfxtest/ImageDiffer/ResultWriters/HtmlWriter.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/ImageDiffer/ResultWriters/HtmlWriter.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/ImageDiffer/ResultWriters/ResultWriter.java --- a/src/org/gfxtest/ImageDiffer/ResultWriters/ResultWriter.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/ImageDiffer/ResultWriters/ResultWriter.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/ImageDiffer/ResultWriters/XmlWriter.java --- a/src/org/gfxtest/ImageDiffer/ResultWriters/XmlWriter.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/ImageDiffer/ResultWriters/XmlWriter.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/common/Configuration.java --- a/src/org/gfxtest/common/Configuration.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/common/Configuration.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/common/ConfigurationException.java --- a/src/org/gfxtest/common/ConfigurationException.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/common/ConfigurationException.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/common/InvalidParameterValueException.java --- a/src/org/gfxtest/common/InvalidParameterValueException.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/common/InvalidParameterValueException.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/framework/EntityRenderingStyle.java --- a/src/org/gfxtest/framework/EntityRenderingStyle.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/framework/EntityRenderingStyle.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/framework/GfxTest.java --- a/src/org/gfxtest/framework/GfxTest.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/framework/GfxTest.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/framework/GfxTestConfiguration.java --- a/src/org/gfxtest/framework/GfxTestConfiguration.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/framework/GfxTestConfiguration.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/framework/Log.java --- a/src/org/gfxtest/framework/Log.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/framework/Log.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/framework/ParameterNotFoundException.java --- a/src/org/gfxtest/framework/ParameterNotFoundException.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/framework/ParameterNotFoundException.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/framework/TestImage.java --- a/src/org/gfxtest/framework/TestImage.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/framework/TestImage.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/framework/TestResult.java --- a/src/org/gfxtest/framework/TestResult.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/framework/TestResult.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/framework/annotations/GraphicsPrimitive.java --- a/src/org/gfxtest/framework/annotations/GraphicsPrimitive.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/framework/annotations/GraphicsPrimitive.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/framework/annotations/GraphicsPrimitives.java --- a/src/org/gfxtest/framework/annotations/GraphicsPrimitives.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/framework/annotations/GraphicsPrimitives.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/framework/annotations/RenderStyle.java --- a/src/org/gfxtest/framework/annotations/RenderStyle.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/framework/annotations/RenderStyle.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/framework/annotations/RenderStyles.java --- a/src/org/gfxtest/framework/annotations/RenderStyles.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/framework/annotations/RenderStyles.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/framework/annotations/TestType.java --- a/src/org/gfxtest/framework/annotations/TestType.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/framework/annotations/TestType.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/framework/annotations/TestTypes.java --- a/src/org/gfxtest/framework/annotations/TestTypes.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/framework/annotations/TestTypes.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/framework/annotations/Transformation.java --- a/src/org/gfxtest/framework/annotations/Transformation.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/framework/annotations/Transformation.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/framework/annotations/Transformations.java --- a/src/org/gfxtest/framework/annotations/Transformations.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/framework/annotations/Transformations.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/framework/annotations/Zoom.java --- a/src/org/gfxtest/framework/annotations/Zoom.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/framework/annotations/Zoom.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/harness/Configuration.java --- a/src/org/gfxtest/harness/Configuration.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/harness/Configuration.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/harness/Dialogs.java --- a/src/org/gfxtest/harness/Dialogs.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/harness/Dialogs.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/harness/ExternalCommands.java --- a/src/org/gfxtest/harness/ExternalCommands.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/harness/ExternalCommands.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/harness/FileSystemTools.java --- a/src/org/gfxtest/harness/FileSystemTools.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/harness/FileSystemTools.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/harness/MainWindow.java --- a/src/org/gfxtest/harness/MainWindow.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/harness/MainWindow.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010 Red Hat + Copyright (C) 2010, 2011 Red Hat This file is part of IcedTea. diff -r 4fc0e4476c9b -r 70dddc9b0917 src/org/gfxtest/harness/Paths.java --- a/src/org/gfxtest/harness/Paths.java Wed Jul 13 14:54:33 2011 +0200 +++ b/src/org/gfxtest/harness/Paths.java Thu Jul 21 10:19:13 2011 +0200 @@ -1,7 +1,7 @@ /* From jvanek at redhat.com Thu Jul 21 01:26:40 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 21 Jul 2011 10:26:40 +0200 Subject: [RFC][icedtea-web] -Xtrustall opinion added Message-ID: <4E27E2C0.3050704@redhat.com> -------- Original Message -------- Subject: Re: [RFC][icedtea-web] -Xtrustall opinion added Date: Tue, 28 Jun 2011 11:39:41 +0200 From: Jiri Vanek To: Omair Majid CC: IcedTea Distro List On 06/27/2011 04:46 PM, Omair Majid wrote: > On 06/26/2011 02:04 PM, Jiri Vanek wrote: >> Hi! >> Attached patch is adding (especially for testing purposes) -Xtrustall >> parameter for javaws. When javaws is lunched with this parameter, then >> user is not asked for any security issues, and any necessary steps he >> had to accept are now trusted. >> I believe it is implemented correctly, because running code which need >> to be signed on signed, but without permissions or unsigned will still >> fail. > > Sorry, I dont understand this bit. Xtrustall will just trust all certificates right? If there are none, there is nothing to trust and so things will Yes - it trust certificate, when there is no certificate or nothing to trust, then it have no affect to code. > >> It is worthy to say, that there already existed >> DeploymentConfiguration.KEY_SECURITY_PROMPT_USER key for deploy >> configuration, but this one just hiding all security dialogs to user, >> but thy were then evaluated as untrusted. > > That's working as designed. If the user says he doesn't want to see any prompts, then we shouldn't be accepting the security prompts. That would lead to malicious programs doing whatever they wanted. true > >> >> >> diff -r 86abbf8be0b1 netx/net/sourceforge/jnlp/runtime/Boot.java >> --- a/netx/net/sourceforge/jnlp/runtime/Boot.java Thu Jun 23 15:29:45 2011 +0200 >> +++ b/netx/net/sourceforge/jnlp/runtime/Boot.java Sun Jun 26 18:47:30 2011 +0200 >> @@ -156,6 +156,9 @@ >> if (null != getOption("-Xnofork")) { >> JNLPRuntime.setForksAllowed(false); >> } >> + if (null != getOption("-Xtrustall")) { >> + JNLPRuntime.setTrustAll(true); >> + } >> >> JNLPRuntime.setInitialArgments(Arrays.asList(argsIn)); >> >> diff -r 86abbf8be0b1 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java >> --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Thu Jun 23 15:29:45 2011 +0200 >> +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Sun Jun 26 18:47:30 2011 +0200 >> @@ -519,6 +519,9 @@ >> } >> ?v?v?v?v?v?v?v?v?v?v?v?v?v?v?v?v?v?v?v?v?v?v?v?v?v? >> private void checkTrustWithUser(JarSigner js) throws LaunchException { >> + if (JNLPRuntime.isTrustAll()){ >> + return; >> + } >> if (!js.getRootInCacerts()) { //root cert is not in cacerts >> boolean b = SecurityDialogs.showCertWarningDialog( >> AccessType.UNVERIFIED, file, js); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >> diff -r 86abbf8be0b1 netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java >> --- a/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Thu Jun 23 15:29:45 2011 +0200 >> +++ b/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Sun Jun 26 18:47:30 2011 +0200 >> @@ -121,6 +121,9 @@ >> /** set to false to indicate another JVM should not be spawned, even if necessary */ >> private static boolean forksAllowed = true; >> >> + /** all security dialogs will be consumed and pretented as beeing verified by user and allowed.*/ > > typo here: "being" thanx. fixed > >> + private static boolean trustAll=false; >> + >> /** contains the arguments passed to the jnlp runtime */ >> private static List initialArguments; >> >> @@ -130,6 +133,7 @@ >> public static final String STDERR_FILE = "java.stderr"; >> public static final String STDOUT_FILE = "java.stdout"; >> >> + >> /** >> * Returns whether the JNLP runtime environment has been >> * initialized. Once initialized, some properties such as the >> @@ -728,4 +732,12 @@ >> } >> } >> >> + static void setTrustAll(boolean b) { >> + trustAll=b; >> + } >> + >> + public static boolean isTrustAll() { >> + return trustAll; >> + } >> + > > Could you please add a javadoc comment to these two methods noting that they are for testing only? Sure. Tahnx. > >> } >> diff -r 86abbf8be0b1 netx/net/sourceforge/jnlp/security/SecurityDialogs.java >> --- a/netx/net/sourceforge/jnlp/security/SecurityDialogs.java Thu Jun 23 15:29:45 2011 +0200 >> +++ b/netx/net/sourceforge/jnlp/security/SecurityDialogs.java Sun Jun 26 18:47:30 2011 +0200 >> @@ -358,8 +358,12 @@ >> return AccessController.doPrivileged(new PrivilegedAction() { >> @Override >> public Boolean run() { >> + if (JNLPRuntime.isTrustAll()) { >> + return false; > > I am a little confused here. Every place that is calling this method (shouldPromptUser) will assume the security check failed and will not continue an action - with a name like trustAll, dont we want the security check to succeed? Would you mind explaining why this change is needed? Yes, you are right, but You probably have missed part in claslaoder - part between V and ^ - When user should be asked (shouldPromptUser - used only in SecurityDialogs class) , then it acts as KEY_SECURITY_PROMPT_USER and user is not asked. But certificates verification (trustall:) ) is entirely skipped with trustAll flag true. I believe (but don't KNOW!) that untrusted application can not be loaded (so it can not set trustall to true) . On the other way, when signed jar is loaded, then it can set this option to true (even by reflection) and then any unsigned jar will pass inside.... (????????????????? XXX ???????????) There is rising an question how to deal with diferent styles of signing (eg doubled jnlp by Saad).. Even handling this signatures in "my amazing" framework;) > >> + }else{ >> return Boolean.valueOf(JNLPRuntime.getConfiguration() >> .getProperty(DeploymentConfiguration.KEY_SECURITY_PROMPT_USER)); >> + } > > Please fix the indentation. > >> } >> }); >> } > > Cheers, > Omair ping From jvanek at redhat.com Thu Jul 21 01:31:53 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 21 Jul 2011 10:31:53 +0200 Subject: Fwd: Re: ping: [FYI][icedtea-web] minor changes in reproducers engine Message-ID: <4E27E3F9.7050607@redhat.com> -------- Original Message -------- Subject: Re: ping: [FYI][icedtea-web] minor changes in reproducers engine Date: Mon, 11 Jul 2011 13:37:26 +0200 From: Jiri Vanek To: Omair Majid CC: IcedTea Distro List changelog: *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: String containing "localhost" have been declared as final constant. (SERVER_NAME) have been moved instant Server instance so each server can have it name without affecting others (getUrl()) added - can return URL of server singleton. Implementation of this method is inside server, so each server can return its own useful URL. (saveFile()) is now public. Added identification for ThreadedProcess based on commandlineArgs and its run is now slowed by Thread.sleep (ServerLuncher) inner class is now public (it was bug to not be as we have getIndependentInstance of it method ) and renamed to ServerLauncher Enchanted wrapping of executeProcess On 06/29/2011 07:08 PM, Omair Majid wrote: > On 06/24/2011 05:21 AM, Jiri Vanek wrote: >> changelog: >> >> *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: String containing "localhost" have been declared as final constant. >> (SERVER_NAME) have been moved instant Server instance so each >> server can have it name without affecting others >> (getUrl()) added - can return URL of server singleton. >> Implementation of this method is inside server, so each server can >> return its own useful URL. >> (saveFile()) is now public. >> Added identification for ThreadedProcess based on commandlineArgs >> and its run is now slowed by Thread.sleep >> (ServerLuncher) inner class is now public (it was bug to not be as >> we have getIndependentInstance of it method ) >> Enchanted wrapping of executeProcess >> >> > > Comments in-line below. > >> + >> + /** >> + * >> + * @return port on which is runing cached server. If non singleton instance is runnig, new is created. >> + */ > > Javadoc says port, but the method is named getUrl :/ Thanx for catch. Fixed > >> + public URL getUrl(String resource) throws MalformedURLException { >> + if (server == null) { >> + getInstance(); >> + } >> + //if (!server.isRunning()) throw new RuntimeException("Server mysteriously died"); >> + return server.getUrl(resource); >> + >> + } >> + /** >> + * >> + * @return port on which is runing cached server. If non singleton instance is runnig, new is created. >> + */ >> + public URL getUrl() throws MalformedURLException { >> + if (server == null) { >> + getInstance(); >> + } >> + //if (!server.isRunning()) throw new RuntimeException("Server mysteriously died"); >> + return getUrl(""); >> + >> + } > > You might be able to get away with just getUrl(""); getUrl(String) already does the checks. done. thanx. > >> @@ -566,6 +591,7 @@ >> List args; >> Integer exitCode; >> Boolean running; >> + String commandLine="unknown command"; >> >> public Boolean isRunning() { >> return running; >> @@ -578,8 +604,21 @@ >> public ThreadedProcess(List args) { >> >> this.args = args; >> + if (args!=null&& args.size()>0){ >> + commandLine=""; >> + for (Iterator it = args.iterator(); it.hasNext();) { >> + String string = it.next(); >> + commandLine=commandLine+" "+string; >> + >> + } >> + } >> } >> >> + public String getCommandLine() { >> + return commandLine; >> + } >> + >> + >> public Process getP() { >> return p; >> } > > commandLine has a large overlap with args. It is also not used - the runtime.exec() call still uses args. Wouldn't it make more sense to create the commandLine string in getCommandLine()? variable with uselessly "cached" valuee removed, String generating code moved to method as suggested. ok? > >> @@ -609,12 +648,27 @@ >> * to allow terminations and stuff arround. >> */ >> >> - static class ServerLuncher implements Runnable { >> + public static class ServerLuncher implements Runnable { >> > > If you are fixing this, you might want to rename it to ServerL*a*uncher - unless it actually eats servers for lunch :) Done. I have increased inner version flag by one due to change of "api". > >> @@ -778,23 +842,26 @@ >> //System.out.println(time - startTime); >> //System.out.println((time - startTime)> timeout); >> if ((time - startTime)> timeout) { >> - System.err.println("Timeouted " + p.toString() + " .. killing"); >> + System.err.println("Timeouted " + p.toString() +" "+ p.getP().toString()+" .. killing "+p.getCommandLine()+": "); >> System.err.flush(); >> wasTerminated = true; >> p.interrupt(); >> while (!terminated.contains(p)) { >> Thread.sleep(100); >> } >> - System.err.println("Timeouted " + p.toString() + " .. killed"); >> + System.err.println("Timeouted " + p.toString() +" "+ p.getP().toString()+ " .. killed "+p.getCommandLine()); >> System.err.flush(); >> break; >> >> >> } >> + Thread.sleep(100); >> } catch (Exception ex) { >> ex.printStackTrace(); >> } >> } >> + System.err.println("assasin for" + p.toString() +" "+ p.getP().toString()+" .. done "+p.getCommandLine()+" termination "+wasTerminated); >> + System.err.flush(); >> } >> } >> > > ThreadedProcess does not have a toString() method. Do you really need to see the object ids, or can you get rid of p.toString()? I would like to keep this in code. It helps me to find correct process when debuging. > > Everything else looks fine. > > Cheers, > Omair Thank you for your time J. ping -------------- next part -------------- A non-text attachment was scrubbed... Name: fixedMinorChanges.diff Type: text/x-patch Size: 12054 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110721/21133a55/fixedMinorChanges.diff From ptisnovs at icedtea.classpath.org Thu Jul 21 02:29:47 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 21 Jul 2011 09:29:47 +0000 Subject: /hg/gfx-test: Add image zooming capability into gfx-test harness. Message-ID: changeset f4113de94b6f in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=f4113de94b6f author: Pavel Tisnovsky date: Thu Jul 21 11:31:09 2011 +0200 Add image zooming capability into gfx-test harness. diffstat: ChangeLog | 5 + src/org/gfxtest/ImageDiffer/ImageUtils.java | 22 ++++ src/org/gfxtest/harness/MainWindow.java | 153 +++++++++++++++++++++++---- 3 files changed, 157 insertions(+), 23 deletions(-) diffs (337 lines): diff -r 70dddc9b0917 -r f4113de94b6f ChangeLog --- a/ChangeLog Thu Jul 21 10:19:13 2011 +0200 +++ b/ChangeLog Thu Jul 21 11:31:09 2011 +0200 @@ -1,3 +1,8 @@ +2011-07-21 Pavel Tisnovsky + * src/org/gfxtest/ImageDiffer/ImageUtils.java: + * src/org/gfxtest/harness/MainWindow.java: + Add image zooming capability into gfx-test harness. + 2011-07-21 Pavel Tisnovsky * AUTHORS: added footer diff -r 70dddc9b0917 -r f4113de94b6f src/org/gfxtest/ImageDiffer/ImageUtils.java --- a/src/org/gfxtest/ImageDiffer/ImageUtils.java Thu Jul 21 10:19:13 2011 +0200 +++ b/src/org/gfxtest/ImageDiffer/ImageUtils.java Thu Jul 21 11:31:09 2011 +0200 @@ -41,6 +41,8 @@ package org.gfxtest.ImageDiffer; import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; @@ -132,5 +134,25 @@ } return images; } + + /** + * Return new scaled image. When the image is scaled up, nearest neighbor + * algorithm is used to not to "hide" one-pixel errors. + * + * @param inputImage source image to be scaled + * @param scale scale factor + * @return new scaled image + */ + public static BufferedImage scaleImage(BufferedImage inputImage, float scale) + { + int width = (int) Math.ceil(inputImage.getWidth() * scale); + int height = (int) Math.ceil(inputImage.getHeight() * scale); + BufferedImage scaledImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); + Graphics2D graphics2D = scaledImage.createGraphics(); + graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR); + graphics2D.drawImage(inputImage, 0, 0, width, height, null); + graphics2D.dispose(); + return scaledImage; + } } diff -r 70dddc9b0917 -r f4113de94b6f src/org/gfxtest/harness/MainWindow.java --- a/src/org/gfxtest/harness/MainWindow.java Thu Jul 21 10:19:13 2011 +0200 +++ b/src/org/gfxtest/harness/MainWindow.java Thu Jul 21 11:31:09 2011 +0200 @@ -57,6 +57,7 @@ import org.gfxtest.ImageDiffer.ComparisonResult; import org.gfxtest.ImageDiffer.ImageComparator; +import org.gfxtest.ImageDiffer.ImageUtils; /** * Main window code and basic application logic for graphic test harness. @@ -65,7 +66,6 @@ * TODO: dialog for setting verbose output * TODO: image comparator * TODO: image viewer - * TODO: image zoomer * TODO: grid * TODO: refactoring! * @@ -94,7 +94,12 @@ private Dialogs dialogs = null; private Configuration configuration = null; + private BufferedImage sampleImage = null; + private BufferedImage testImage = null; + private BufferedImage diffImage = null; + private boolean tableIsErasing; + private float scale = 1.0f; private JMenuBar createMainMenuBar() { @@ -219,6 +224,44 @@ { JMenu zoomMenu = new JMenu("Zoom"); zoomMenu.setMnemonic(KeyEvent.VK_Z); + + JMenuItem zoomMenuZoomIn = new JMenuItem("Zoom In", KeyEvent.VK_Z); + zoomMenuZoomIn.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, ActionEvent.CTRL_MASK)); + zoomMenuZoomIn.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_EQUALS, ActionEvent.CTRL_MASK)); + zoomMenuZoomIn.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + onZoomInSelected(); + } + }); + zoomMenu.add(zoomMenuZoomIn); + + JMenuItem zoomMenuZoomOut = new JMenuItem("Zoom Out", KeyEvent.VK_O); + zoomMenuZoomOut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, ActionEvent.CTRL_MASK)); + zoomMenuZoomOut.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + onZoomOutSelected(); + } + }); + zoomMenu.add(zoomMenuZoomOut); + + JMenuItem zoomMenuReset = new JMenuItem("Normal Size", KeyEvent.VK_N); + zoomMenuReset.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_0, ActionEvent.CTRL_MASK)); + zoomMenuReset.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + onResetZoomMenuSelected(); + } + }); + zoomMenu.add(zoomMenuReset); + return zoomMenu; } @@ -227,9 +270,9 @@ JMenu helpMenu = new JMenu("Help"); helpMenu.setMnemonic(KeyEvent.VK_H); - JMenuItem fileHelpAbout = new JMenuItem("About", KeyEvent.VK_A); - fileHelpAbout.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.CTRL_MASK)); - fileHelpAbout.addActionListener(new ActionListener() + JMenuItem menuHelpAbout = new JMenuItem("About", KeyEvent.VK_A); + menuHelpAbout.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.CTRL_MASK)); + menuHelpAbout.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) @@ -237,7 +280,7 @@ onHelpAboutMenuSelected(); } }); - helpMenu.add(fileHelpAbout); + helpMenu.add(menuHelpAbout); return helpMenu; } @@ -393,18 +436,42 @@ topRightPanel.setMinimumSize(new Dimension(320, 240)); //topRightPanel.setBackground(Color.green); topRightPanel.add(this.topRightLabel); + topRightPanel.addMouseWheelListener(new MouseWheelListener() + { + @Override + public void mouseWheelMoved(MouseWheelEvent e) + { + onMouseWheelRotated(e); + } + }); rightVerticalSplitPane.add(topRightPanel); JPanel bottomLeftPanel = new JPanel(); bottomLeftPanel.setMinimumSize(new Dimension(320, 240)); //bottomLeftPanel.setBackground(Color.blue); bottomLeftPanel.add(this.bottomLeftLabel); + bottomLeftPanel.addMouseWheelListener(new MouseWheelListener() + { + @Override + public void mouseWheelMoved(MouseWheelEvent e) + { + onMouseWheelRotated(e); + } + }); leftVerticalSplitPane.add(bottomLeftPanel); JPanel bottomRightPanel = new JPanel(); bottomRightPanel.setMinimumSize(new Dimension(320, 240)); //bottomRightPanel.setBackground(Color.yellow); bottomRightPanel.add(this.bottomRightLabel); + bottomRightPanel.addMouseWheelListener(new MouseWheelListener() + { + @Override + public void mouseWheelMoved(MouseWheelEvent e) + { + onMouseWheelRotated(e); + } + }); rightVerticalSplitPane.add(bottomRightPanel); window.getContentPane().add(horizontalSplitPane); @@ -474,9 +541,9 @@ + ".png"; String sampleFileName = FileSystemTools.constructTestDirectoryName(this.configuration.getOutputDirectory(), this.selectedTestSuite); String testFileName = FileSystemTools.constructTestDirectoryName(this.configuration.getOutputDirectory(), this.selectedTestSuite); - BufferedImage sampleImage = loadAndShowSampleImage(testName, sampleFileName); - BufferedImage testImage = loadAndShowTestImage(testName, testFileName); - computeAndShowImagesDifference(testName, sampleImage, testImage); + loadAndShowSampleImage(testName, sampleFileName); + loadAndShowTestImage(testName, testFileName); + computeAndShowImagesDifference(testName); /* * JOptionPane.showMessageDialog(this.mainWindow, "Selected test: " * + testName, WINDOW_TITLE, JOptionPane.INFORMATION_MESSAGE); @@ -484,16 +551,16 @@ } } - private BufferedImage loadAndShowTestImage(String testName, String testFileName) + private void loadAndShowTestImage(String testName, String testFileName) { - BufferedImage testImage = null; + this.testImage = null; File testImageFile = new File(testFileName, testName); if (testImageFile.exists() && testImageFile.isFile()) { try { - testImage = ImageIO.read(new File(testFileName, testName)); - this.bottomRightLabel.setIcon(new ImageIcon(testImage)); + this.testImage = ImageIO.read(new File(testFileName, testName)); + this.bottomRightLabel.setIcon(new ImageIcon(this.testImage)); this.bottomRightLabel.setText(""); } catch (IOException e) @@ -502,19 +569,19 @@ this.bottomRightLabel.setText(e.getMessage()); } } - return testImage; } - private BufferedImage loadAndShowSampleImage(String testName, String sampleFileName) + private void loadAndShowSampleImage(String testName, String sampleFileName) { - BufferedImage sampleImage = null; + this.sampleImage = null; File sampleImageFile = new File(sampleFileName, testName); if (sampleImageFile.exists() && sampleImageFile.isFile()) { try { - sampleImage = ImageIO.read(new File(sampleFileName, testName)); - this.topRightLabel.setIcon(new ImageIcon(sampleImage)); + this.sampleImage = ImageIO.read(new File(sampleFileName, testName)); + + this.topRightLabel.setIcon(new ImageIcon(this.sampleImage)); this.topRightLabel.setText(""); } catch (IOException e) @@ -523,17 +590,17 @@ this.topRightLabel.setText(e.getMessage()); } } - return sampleImage; } - private void computeAndShowImagesDifference(String testName, BufferedImage sampleImage, BufferedImage testImage) + private void computeAndShowImagesDifference(String testName) { - if (testImage != null && sampleImage != null) + if (this.testImage != null && this.sampleImage != null) { ImageComparator comparator = new ImageComparator(); org.gfxtest.ImageDiffer.Configuration cfg = new org.gfxtest.ImageDiffer.Configuration(); - ComparisonResult result = comparator.diffImages(testName, new BufferedImage[] { testImage, sampleImage }, cfg); - this.bottomLeftLabel.setIcon(new ImageIcon(result.getDiffImage())); + ComparisonResult result = comparator.diffImages(testName, new BufferedImage[] { this.testImage, this.sampleImage }, cfg); + this.diffImage = result.getDiffImage(); + this.bottomLeftLabel.setIcon(new ImageIcon(this.diffImage)); this.bottomLeftLabel.setText(""); } else @@ -614,6 +681,28 @@ this.tableIsErasing = false; } + protected void onMouseWheelRotated(MouseWheelEvent e) + { + int rotation = e.getWheelRotation(); + if (rotation < 0) + { + this.scale *= 1.2; + redrawImages(); + } + else if (rotation > 0) + { + this.scale /= 1.2; + redrawImages(); + } + } + + private void redrawImages() + { + this.topRightLabel.setIcon(new ImageIcon(ImageUtils.scaleImage(this.sampleImage, this.scale))); + this.bottomRightLabel.setIcon(new ImageIcon(ImageUtils.scaleImage(this.testImage, this.scale))); + this.bottomLeftLabel.setIcon(new ImageIcon(ImageUtils.scaleImage(this.diffImage, this.scale))); + } + protected void onCompilationVerboseCheckBoxChanged(boolean verboseCompile) { this.configuration.setVerboseCompile(verboseCompile); @@ -671,6 +760,24 @@ this.dialogs.showAboutDialog(); } + protected void onResetZoomMenuSelected() + { + this.scale = 1.0f; + redrawImages(); + } + + protected void onZoomInSelected() + { + this.scale *= 1.2f; + redrawImages(); + } + + protected void onZoomOutSelected() + { + this.scale /= 1.2f; + redrawImages(); + } + protected void onCompileButtonPressed() { if (this.selectedTestSuite == null) @@ -746,7 +853,7 @@ { this.dialogs.showNoTestSelectedMessage(); } - String outputDirectory = this.configuration.getTestClassesDirectory(); + String outputDirectory = Configuration.getTestClassesDirectory(); if (outputDirectory == null) { this.dialogs.showErrorMessage("Output directory is not set"); From jvanek at redhat.com Thu Jul 21 03:08:29 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 21 Jul 2011 12:08:29 +0200 Subject: [ping] [RFC] Re: [RFC] Re: RFC: make IcedTea-web to be compatible with RHEL5 libraries Message-ID: <4E27FA9D.8060404@redhat.com> -------- Original Message -------- Subject: [ping] [RFC] Re: [RFC] Re: RFC: make IcedTea-web to be compatible with RHEL5 libraries Date: Thu, 07 Jul 2011 11:59:41 +0200 From: Jiri Vanek To: IcedTea Distro List -------- Original Message -------- Subject: [RFC] Re: [RFC] Re: RFC: make IcedTea-web to be compatible with RHEL5 libraries Date: Thu, 30 Jun 2011 13:40:03 +0200 From: Jiri Vanek To: Andrew John Hughes CC: distro-pkg-dev at openjdk.java.net Based also on http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2011-June/014879.html Hi! This patch is another attempt o make icedtea-web buildable on rhel 5 with older libraries. Before build of plugin itself is started, then testing c++ program is tried to be linked with same options. If this compilation fails, then original IcedTeaNPPlugin.cc is backuped, glibBuildable.patch is applied to IcedTeaNPPlugin.cc and then plugin is linked. During clean-plugin original IcedTeaNPPlugin.cc is restored from backup (and when test application is compiled, then this binary is deleted, also backup is delete) Please, when you will ask me to include this "solution" more to configure (or autotools or anywhere) then I will need a little bit of help. cc - Deepak as maintainer of icedtea-web, Andrew as head of idea, Pavel as author of original patch changelog : Makefile.am: added PLUGIN_TOBEPATCHED* variables to work with patched file, TESTGLIBS* variables to work with testing code (stamps/patch-for-glib): new goal to test compilation and patch IcedTeaNPPlugin.cc if necessary (clean-IcedTeaPlugin): added deleting of compiled test, reverting patched file,and deleting backup of it. (stamps/plugin.stamp): now depends on stamps/patch-for-glib glibBuildable.patch: new file with patch to plugin/icedteanp/IcedTeaNPPlugin.cc testGlibs.cc: testing file which not-successful compilation will leed to patching of IcedTeaNPPlugin.cc ps: Is funny hat looking for hell, in hello by g_strcmp0 will return -111 ;) Regards J. On 06/30/2011 12:24 AM, Andrew John Hughes wrote: > On Mon, Jun 27, 2011 at 02:05:36PM +0200, Jiri Vanek wrote: >> On 06/16/2011 08:10 PM, Jiri Vanek wrote: >>> On 05/18/2011 07:08 PM, Dr Andrew John Hughes wrote: >>>> On 12:48 Wed 18 May , Pavel Tisnovsky wrote: >>>>> Hi all, >>>>> >>>>> I've found that IcedTea-web can not be build on RHEL5 because this >>>>> system has older glibc libraries (2.5-*) and some code in >>>>> IcedTeaNPPlugin.cc depends on newer functions. >>>>> >>>>> I've tried to rewrite this class not to use these functions. Can anybody >>>>> please look at these changes? They are stored in an attachments as patch >>>>> file. >>>>> >>>>> Any comments are welcome! >>>>> >>>>> Cheers, >>>>> Pavel >>>> >>>> Looking at the changes, I think you mean glib not glibc. >>>> >>>> I don't think this is the right way to fix this. If RHEL5 is missing these >>>> glib functions, we should test for that in configure and use local definitions >>>> of those functions, rather than using inferior functions on all platforms. >>> >>> As there was no reply to this issue, I have an idea to add configure otion --with-rhel5-buildable, which will include pavel's patch to icedtea-web and compile it on rhel 5 so he will be able to run it on his rhel 5 test machines. What do you think? >>> > > No, I've already outlined the correct solution above. configure should check for > the availability of the missing functions (g_hash_table_iter and g_strcmp0 from what > I can see in the patch below) and use alternatives if they are unavailable (via > #ifdef in the code). The patch below seems to require the user to know how to > invoke a specific make command to apply a patch, whereas the process should be > automated. It's also nothing to do with rhel5 as such; it's to do with supporting > older versions of glib. > >>> Regards J. >> -------------- next part -------------- A non-text attachment was scrubbed... Name: autoRhel5patching.diff Type: text/x-patch Size: 5686 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110721/a6b713d5/autoRhel5patching.diff From jvanek at redhat.com Thu Jul 21 03:29:21 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 21 Jul 2011 12:29:21 +0200 Subject: Reviwer needed: backport of fix "6752638: java.awt.GraphicsEnvironment.preferLocaleFonts() throws NPE on Linux" into IcedTea6 HEAD In-Reply-To: <4E27DCC4.5020706@redhat.com> References: <4E27DCC4.5020706@redhat.com> Message-ID: <4E27FF81.9050700@redhat.com> On 07/21/2011 10:01 AM, Pavel Tisnovsky wrote: > Greetings, > > is it possible to push the fix "6752638: > java.awt.GraphicsEnvironment.preferLocaleFonts() throws NPE on Linux" > into IcedTea6 HEAD" please? > > The behaviour of this fix was checked on RHELs. > > Here's ChangeLog entry: > > 2011-07-21 Pavel Tisnovsky > > * Makefile.am: added new patch > * NEWS: updated with backport > * patches/openjdk/6752638-preferLocaleFonts_throws_NPE.patch: > Backport of 6752638. > > > Can anybody please review this change? > > Thank you in advance, > Pavel approved From andrew at icedtea.classpath.org Thu Jul 21 05:30:07 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Thu, 21 Jul 2011 12:30:07 +0000 Subject: /hg/release/icedtea6-1.10: 2 new changesets Message-ID: changeset 7ba3ed55131e in /hg/release/icedtea6-1.10 details: http://icedtea.classpath.org/hg/release/icedtea6-1.10?cmd=changeset;node=7ba3ed55131e author: Andrew John Hughes date: Thu Jul 21 03:31:37 2011 +0100 Set release date. 2011-07-21 Andrew John Hughes * NEWS: Set release date. changeset 21fdc9bc300d in /hg/release/icedtea6-1.10 details: http://icedtea.classpath.org/hg/release/icedtea6-1.10?cmd=changeset;node=21fdc9bc300d author: Andrew John Hughes date: Thu Jul 21 13:29:53 2011 +0100 Added tag icedtea6-1.10.3 for changeset 7ba3ed55131e diffstat: .hgtags | 1 + ChangeLog | 4 ++++ NEWS | 2 +- 3 files changed, 6 insertions(+), 1 deletions(-) diffs (31 lines): diff -r f6d1c2b1d869 -r 21fdc9bc300d .hgtags --- a/.hgtags Tue Jul 19 22:13:38 2011 +0100 +++ b/.hgtags Thu Jul 21 13:29:53 2011 +0100 @@ -23,3 +23,4 @@ 9f4eced56544b0326bb5aa011de6263ca121c7c1 icedtea6-1.10 e92db53adff0de7449fa76bb178f96989ddddb28 icedtea6-1.10.1 e0ac0f52f73819683e794410c2b37305287327c8 icedtea6-1.10.2 +7ba3ed55131e6fffd788ed4ce2d703eea7ba1eaa icedtea6-1.10.3 diff -r f6d1c2b1d869 -r 21fdc9bc300d ChangeLog --- a/ChangeLog Tue Jul 19 22:13:38 2011 +0100 +++ b/ChangeLog Thu Jul 21 13:29:53 2011 +0100 @@ -1,3 +1,7 @@ +2011-07-21 Andrew John Hughes + + * NEWS: Set release date. + 2011-07-11 Andrew John Hughes PR744: Patching error diff -r f6d1c2b1d869 -r 21fdc9bc300d NEWS --- a/NEWS Tue Jul 19 22:13:38 2011 +0100 +++ b/NEWS Thu Jul 21 13:29:53 2011 +0100 @@ -9,7 +9,7 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY -New in release 1.10.3 (20XX-XX-XX): +New in release 1.10.3 (2011-07-21): * Bug fixes - PR748: Icedtea6 fails to build with Linux 3.0. From ahughes at redhat.com Thu Jul 21 06:16:27 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Thu, 21 Jul 2011 14:16:27 +0100 Subject: Reviwer needed: backport of fix "6752638: java.awt.GraphicsEnvironment.preferLocaleFonts() throws NPE on Linux" into IcedTea6 HEAD In-Reply-To: <4E27DCC4.5020706@redhat.com> References: <4E27DCC4.5020706@redhat.com> Message-ID: <20110721131627.GQ32327@rivendell.middle-earth.co.uk> On 10:01 Thu 21 Jul , Pavel Tisnovsky wrote: > Greetings, > > is it possible to push the fix "6752638: > java.awt.GraphicsEnvironment.preferLocaleFonts() throws NPE on Linux" > into IcedTea6 HEAD" please? > > The behaviour of this fix was checked on RHELs. > > Here's ChangeLog entry: > > 2011-07-21 Pavel Tisnovsky > > * Makefile.am: added new patch > * NEWS: updated with backport > * patches/openjdk/6752638-preferLocaleFonts_throws_NPE.patch: > Backport of 6752638. > > > Can anybody please review this change? > > Thank you in advance, > Pavel Looks ok. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Thu Jul 21 06:21:12 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Thu, 21 Jul 2011 14:21:12 +0100 Subject: [ping] [RFC] Re: [RFC] Re: RFC: make IcedTea-web to be compatible with RHEL5 libraries In-Reply-To: <4E27FA9D.8060404@redhat.com> References: <4E27FA9D.8060404@redhat.com> Message-ID: <20110721132112.GR32327@rivendell.middle-earth.co.uk> On 12:08 Thu 21 Jul , Jiri Vanek wrote: > > Hi! > > This patch is another attempt o make icedtea-web buildable on rhel 5 with older libraries. Before build of plugin itself is started, then testing c++ program is tried to be linked with same options. If this compilation fails, then original IcedTeaNPPlugin.cc is backuped, glibBuildable.patch is applied to IcedTeaNPPlugin.cc and then plugin is linked. > During clean-plugin original IcedTeaNPPlugin.cc is restored from backup (and when test application is compiled, then this binary is deleted, also backup is delete) > > Please, when you will ask me to include this "solution" more to configure (or autotools or anywhere) then I will need a little bit of help. > I suggest taking a look at the autoconf manual and function detection: http://www.gnu.org/software/autoconf/manual/autoconf.html#Library-Functions Then, rather than patching, I'd add a header file with #ifdefs to handle both cases. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Thu Jul 21 06:25:50 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Thu, 21 Jul 2011 14:25:50 +0100 Subject: How to get a java plugin manually installed in Firefox, using ubuntu? In-Reply-To: <1311231233.28160.2154193101@webmail.messagingengine.com> References: <1311231233.28160.2154193101@webmail.messagingengine.com> Message-ID: <20110721132550.GS32327@rivendell.middle-earth.co.uk> On 23:53 Wed 20 Jul , Lee Gold wrote: > > > > Hi, using Uubuntu 11.04 > > I don't like Firefox 4 and 5 so I uninstalled it and installed FF 3.6.19 > manually in the /opt directory. It works really well. I wanted to add a > java icedtea plugin to FF. But I can't use Synaptics (the package > installer). Synaptics does not see the FF 3.6.19 - it does not know it's > there (because I manually installed FF 3.6.19) and will try an install > FF5 if I use it (synaptic) to install the icetea plugin - makes sense it > would do that - it thinks no FF is installed > > How do I get a java plugin installed considering how FF is implemented > on my system? > > I have tried getting a .so icetea plugin and using a link from the .so > file to where I think it should be in the FF directory, but no luck. > [Ccing distro-pkg-dev where work on IcedTea-Web is discussed] You'll need to build your own version of IcedTea-Web: http://dbhole.wordpress.com/2011/07/20/icedtea-web-1-0-4-and-1-1-1-security-releases-released/ against the Firefox installed in /opt which uses xulrunner 1.9. The version with 4 & 5 will use xulrunner 2 and so presumably won't work with FF 3.6.x. I imagine you'll need to set PKG_CONFIG_PATH to the location of the *.pc files in your /opt installed Mozilla so IcedTea-Web's build picks it up. > Thanks, > > Lee G. > > -- > http://www.fastmail.fm - IMAP accessible web-mail > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Thu Jul 21 06:31:05 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Thu, 21 Jul 2011 14:31:05 +0100 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E27D35E.1000105@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E23FACA.3070305@redhat.com> <4E24998A.9050507@redhat.com> <4E252893.8050809@redhat.com> <4E259ABE.2070606@redhat.com> <20110720202650.GP17111@redhat.com> <20110720212440.GN32327@rivendell.middle-earth.co.uk> <4E27D35E.1000105@redhat.com> Message-ID: <20110721133105.GT32327@rivendell.middle-earth.co.uk> On 09:21 Thu 21 Jul , Jiri Vanek wrote: > On 07/20/2011 11:24 PM, Dr Andrew John Hughes wrote: > > On 16:26 Wed 20 Jul , Deepak Bhole wrote: > >> * Saad Mohammad [2011-07-19 11:04]: > >>> I have attached the updated copy of Patch1. > >>> > >>> On 07/19/2011 02:47 AM, Jiri Vanek wrote: > >>>>> > >>>>> I hope this is the 110% for Patch1! ;) > >>>> 99% ;) > >>> > ..snip... > > > > The use of new String and casting seems wrong. I'm not sure what e.nextElement is returning > > but that enumeration should be using generics. > > This method was refactored to return pure list and is now working correctly. > So where's the new patch? > > > > Can xml not return the number of element names beforehand? > Bad luck. No:( > > > > I'm not familiar with this XML API. Where is it from? Doesn't look like JAXP. > This is tiny html parser coded directly inside icedtea-web.... not sure if it is right choice ... but is is here very long tim and a several things depnde on him. It was chosen because he is much m,ore tolerant then xml parsers. > Weather it is benefit is question,, but it was decided long ago and is working fine. > There was a plan to replace that. Omair? > > > >> I will leave all of the test case reviews to Jiri :) > >> > >> Cheers, > >> Deepak > > > > J -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From omajid at redhat.com Thu Jul 21 06:34:00 2011 From: omajid at redhat.com (Omair Majid) Date: Thu, 21 Jul 2011 09:34:00 -0400 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E204CD8.306@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> Message-ID: <4E282AC8.1070900@redhat.com> On 07/15/2011 10:21 AM, Saad Mohammad wrote: > I have updated both the patches that includes the change that you have > recommended and requested. I haven't looked into this in too much detail, but I have a few questions (and concerns) after reading this patch. They are included in line, below. > diff -r 86abbf8be0b1 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java > --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Thu Jun 23 15:29:45 2011 +0200 > +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Thu Jul 14 17:11:49 2011 -0400 > @@ -471,8 +482,151 @@ > //otherwise this jar is simply unsigned -- make sure to ask > //for permission on certain actions > } I have a number of questions about this next bit, but that could just be because I am not clear on what you are trying to do. You may want to split code into a new method and/or add more comments. > + > + if (js.anyJarsSigned()) { > + // If there are any signed Jars, check if JNLP file is signed > + > + if (JNLPRuntime.isDebug()) > + System.out.println("STARTING check for signed JNLP file..."); > + > + for (int i = 0; i< jars.length; i++) { > + List eachJar = new ArrayList(); > + JarSigner signer = new JarSigner(); > + eachJar.add(jars[i]); // Adds only the single jar to check > + // if the jar has a valid signature > + There is already JarSigner object that JNLPClassLoader is using. Is there a reason for creating this new JarSigner object? > + tracker.addResource(jars[i].getLocation(), jars[i].getVersion(), > + getDownloadOptionsForJar(jars[i]), > + jars[i].isCacheable() ? JNLPRuntime.getDefaultUpdatePolicy() > + : UpdatePolicy.FORCE); > + Unless I am mistaken, this is already done a few lines above this. > + try { > + signer.verifyJars(eachJar, tracker); > + The jarsigner js has already verified a subset of these earlier. Do you really want to verify everything again? Also, note that calling JarSigner.verify() for all jars means that all jars are downloaded (this method blocks) - even jars marked as lazy. This makes the lazy/eager-loading mechanism useless. I am not a fan of lazy loading myself, but I am not sure if that's what you meant. If you really mean to do this, than it should be a lot more explicit (a separate patch?). > + if (signer.allJarsSigned()) { // If the jar is signed > + URL location = jars[i].getLocation(); > + File localFile = tracker.getCacheFile(location); > + > + if (localFile == null) { > + throw new JNLPMatcherException( > + "Could not locate jar file, returned null"); > + } > + Looking at the code that catches this exception, it sounds like if the jar could not be cached the application aborts? Perhaps you should just assume failure in matching jnlp files? Or treat it the same way as if signed jnlp files are not present? > + else { > + try { > + JarFile jarFile = new JarFile(localFile); > + Enumeration entries = jarFile.entries(); > + JarEntry je; > + > + while (entries.hasMoreElements()) { > + je = entries.nextElement(); > + String jeName = je.getName().toUpperCase(); > + > + if (jeName.equals(template) > + || jeName.equals(application)) { > + Is this intentional? Do we want case-insensitive matching? If so, please add a comment here (or add/modify variable names to make it explicit). > + if (JNLPRuntime.isDebug()) > + System.out > + .println("\tCreating Jar InputStream from Jar Entry"); > + > + InputStream inStream = jarFile > + .getInputStream(je); > + InputStreamReader inputReader = new InputStreamReader( > + inStream); > + > + if (JNLPRuntime.isDebug()) > + System.out > + .println("\tCreating File InputStream from lauching JNLP file"); > + > + JNLPFile jnlp = this.getJNLPFile(); > + URL url = jnlp.getFileLocation(); > + File jn = null; > + > + if (url.getProtocol().equals("file")) // If the file is on the local file system, use original path, otherwise find cached file > + jn = new File(url.getPath()); > + else > + jn = CacheUtil.getCacheFile(url, null); > + > + FileReader fr = new FileReader(jn); > + InputStreamReader jnlpReader = fr; > + JNLPMatcher matcher; > + > + try { > + > + if (jeName.equals(application)) { // If application was found > + > + if (JNLPRuntime.isDebug()) > + System.out > + .println("\tAPPLICATION.JNLP has been located within signed JAR. Starting verfication..."); > + > + matcher = new JNLPMatcher( > + inputReader, jnlpReader, > + false); > + } else // Otherwise template was > + // found > + { > + if (JNLPRuntime.isDebug()) > + System.out > + .println("\tAPPLICATION_TEMPLATE.JNLP has been located within signed JAR. Starting verfication..."); > + > + matcher = new JNLPMatcher( > + inputReader, jnlpReader, true); > + } > + > + if (!matcher.isMatch()) > + throw new JNLPMatcherException( > + "Signed Application did not match launching JNLP File"); > + > + if (JNLPRuntime.isDebug()) > + System.out > + .println("\t** Signed Application Verification Successful **"); > + > + break; // break while loop > + > + } catch (Exception e) { > + throw new JNLPMatcherException( > + e.getMessage(), e); > + } > + } > + > + } So here's what I am really confused about: what does matching do? I see that if there is no signed jnlp file, the code runs normally. If there is a correctly signed jnlp file the code also continues normally. So why are signed jnlp files needed at all? What problem are they solving? I guess I am missing something obvious; an explanation of what this code is trying to do would be appreciated. Thanks, Omair From ahughes at redhat.com Thu Jul 21 06:36:21 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Thu, 21 Jul 2011 14:36:21 +0100 Subject: IcedTea6 1.10.3 Released! Message-ID: <20110721133621.GU32327@rivendell.middle-earth.co.uk> We are pleased to announce a new minor release of IcedTea6, 1.10.3! The IcedTea6 project provides a harness to build the source code from OpenJDK6 using Free Software build tools. It also includes support for using alternate virtual machines such as CACAO and JamVM. What?s New? ?????? New in release 1.10.3 (2011-07-21): * Bug fixes - PR748: Icedtea6 fails to build with Linux 3.0. - PR744: icedtea6-1.10.2 : patching error * Backports: - S7037283, RH712211: Null Pointer Exception in SwingUtilities2. - S6769607, PR677: Modal frame hangs for a while. - S6578583: Modality is broken in windows vista home premium from jdk1.7 b02 onwards. - S6610244: modal dialog closes with fatal error if -Xcheck:jni is set The tarball can be downloaded from: * http://icedtea.classpath.org/download/source/icedtea6-1.10.3.tar.gz SHA256 sums: c29827bf4b5ceed41799e680395fa475b67f5bbc94de7bc323030feb4f2be5db icedtea6-1.10.3.tar.gz The following people helped with this release: * Andrew John Hughes * Denis Lila * Pavel Tisnovsky We would also like to thank the bug reporters and testers! To get started: $ tar xzf icedtea6-1.10.3.tar.gz $ cd icedtea6-1.10.3 Full build requirements and instructions are in INSTALL: $ ./configure [--enable-cacao --enable-pulse-java --enable-systemtap ...] $ make -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From jvanek at redhat.com Thu Jul 21 06:51:11 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 21 Jul 2011 15:51:11 +0200 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <20110721133105.GT32327@rivendell.middle-earth.co.uk> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E23FACA.3070305@redhat.com> <4E24998A.9050507@redhat.com> <4E252893.8050809@redhat.com> <4E259ABE.2070606@redhat.com> <20110720202650.GP17111@redhat.com> <20110720212440.GN32327@rivendell.middle-earth.co.uk> <4E27D35E.1000105@redhat.com> <20110721133105.GT32327@rivendell.middle-earth.co.uk> Message-ID: <4E282ECF.6060503@redhat.com> On 07/21/2011 03:31 PM, Dr Andrew John Hughes wrote: > On 09:21 Thu 21 Jul , Jiri Vanek wrote: ..snip... >>> >>> The use of new String and casting seems wrong. I'm not sure what e.nextElement is returning >>> but that enumeration should be using generics. >> >> This method was refactored to return pure list and is now working correctly. >> > > So where's the new patch? > >>> ..snip... You are right. This method is relict. It was fixed in patch by correct version but this relict remains. This method you are mentioning is in commented section. I do not know why there is such a big commented section (some kind of "class backup" ) (If Saad did this it must be fixed) I will try to find an guilty one;) J. From omajid at redhat.com Thu Jul 21 07:03:11 2011 From: omajid at redhat.com (Omair Majid) Date: Thu, 21 Jul 2011 10:03:11 -0400 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <20110721133105.GT32327@rivendell.middle-earth.co.uk> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E23FACA.3070305@redhat.com> <4E24998A.9050507@redhat.com> <4E252893.8050809@redhat.com> <4E259ABE.2070606@redhat.com> <20110720202650.GP17111@redhat.com> <20110720212440.GN32327@rivendell.middle-earth.co.uk> <4E27D35E.1000105@redhat.com> <20110721133105.GT32327@rivendell.middle-earth.co.uk> Message-ID: <4E28319F.6030508@redhat.com> On 07/21/2011 09:31 AM, Dr Andrew John Hughes wrote: > On 09:21 Thu 21 Jul , Jiri Vanek wrote: >>> >>> Can xml not return the number of element names beforehand? >> Bad luck. No:( >>> >>> I'm not familiar with this XML API. Where is it from? Doesn't look like JAXP. >> This is tiny html parser coded directly inside icedtea-web.... not sure if it is right choice ... but is is here very long tim and a several things depnde on him. It was chosen because he is much m,ore tolerant then xml parsers. >> Weather it is benefit is question,, but it was decided long ago and is working fine. >> > IcedTea-Web (or Netx, if you will, since this part of code has not been significantly modified) uses a (quite old) embedded copy of the NanoXML parser [1]. It had a number of problems (it could not even deal with comments when we first added netx to icedtea), but I think we have reached a point where it works fine for most users. > There was a plan to replace that. Omair? > There still is. First, let me clarify something about jnlp files. They may look like (and they are defined to be, as far as I know) XML files. But thanks to the fact that there is just one reference implementation and it does not rely on a validating XML parser (as far as I can tell), the JNLP files are often not valid XML files. This causes a huge risk of regressions if we replace a 'XML' parser with another one. That said, I did spend some time looking into replacing NanoXML with a JAXP-based SAX parser (actually, most of the code was in Netx but was just commented out). The unit tests pointed out a few regression, so I did not commit it. As much as I would love to remove the embedded NanoXML code, I am concerned about breaking applications. Going forward, the plan is to switch to a parser designed for parsing malformed xml files. I have tested tagsoup and it looks somewhat promising [2]. But I am not very eager to do that in a minor release as the risk of regressions is still significant. It is currently scheduled for the 2.0 release [3], where I expect a few other major changes too. Cheers, Omair [1] http://sourceforge.net/projects/nanoxml/ [2] http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2011-January/011681.html [3] http://icedtea.classpath.org/wiki/IcedTea-Web#IcedTea-Web_2.0 From andrew at icedtea.classpath.org Thu Jul 21 07:06:31 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Thu, 21 Jul 2011 14:06:31 +0000 Subject: /hg/release/icedtea6-1.10: Prepare for 1.10.4. Message-ID: changeset b4b912ba7688 in /hg/release/icedtea6-1.10 details: http://icedtea.classpath.org/hg/release/icedtea6-1.10?cmd=changeset;node=b4b912ba7688 author: Andrew John Hughes date: Thu Jul 21 15:06:15 2011 +0100 Prepare for 1.10.4. 2011-07-21 Andrew John Hughes * NEWS: Prepare for 1.10.4. * configure.ac: Bump to 1.10.4pre. diffstat: ChangeLog | 5 +++++ NEWS | 2 ++ configure.ac | 2 +- 3 files changed, 8 insertions(+), 1 deletions(-) diffs (33 lines): diff -r 21fdc9bc300d -r b4b912ba7688 ChangeLog --- a/ChangeLog Thu Jul 21 13:29:53 2011 +0100 +++ b/ChangeLog Thu Jul 21 15:06:15 2011 +0100 @@ -1,3 +1,8 @@ +2011-07-21 Andrew John Hughes + + * NEWS: Prepare for 1.10.4. + * configure.ac: Bump to 1.10.4pre. + 2011-07-21 Andrew John Hughes * NEWS: Set release date. diff -r 21fdc9bc300d -r b4b912ba7688 NEWS --- a/NEWS Thu Jul 21 13:29:53 2011 +0100 +++ b/NEWS Thu Jul 21 15:06:15 2011 +0100 @@ -9,6 +9,8 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY +New in release 1.10.4 (2011-XX-XX): + New in release 1.10.3 (2011-07-21): * Bug fixes diff -r 21fdc9bc300d -r b4b912ba7688 configure.ac --- a/configure.ac Thu Jul 21 13:29:53 2011 +0100 +++ b/configure.ac Thu Jul 21 15:06:15 2011 +0100 @@ -1,4 +1,4 @@ -AC_INIT([icedtea6],[1.10.3],[distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea6],[1.10.4pre],[distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) From andrew at icedtea.classpath.org Thu Jul 21 07:08:44 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Thu, 21 Jul 2011 14:08:44 +0000 Subject: /hg/release/icedtea6-1.9: Prepare for 1.9.10. Message-ID: changeset 0f6deb60d29b in /hg/release/icedtea6-1.9 details: http://icedtea.classpath.org/hg/release/icedtea6-1.9?cmd=changeset;node=0f6deb60d29b author: Andrew John Hughes date: Thu Jul 21 15:08:30 2011 +0100 Prepare for 1.9.10. 2011-07-21 Andrew John Hughes * NEWS: Prepare for 1.9.10. * configure.ac: Bump to 1.9.10pre. diffstat: ChangeLog | 5 +++++ NEWS | 2 ++ configure.ac | 2 +- 3 files changed, 8 insertions(+), 1 deletions(-) diffs (33 lines): diff -r eb05a18232e9 -r 0f6deb60d29b ChangeLog --- a/ChangeLog Wed Jul 20 16:32:04 2011 +0100 +++ b/ChangeLog Thu Jul 21 15:08:30 2011 +0100 @@ -1,3 +1,8 @@ +2011-07-21 Andrew John Hughes + + * NEWS: Prepare for 1.9.10. + * configure.ac: Bump to 1.9.10pre. + 2011-07-20 Andrew John Hughes * NEWS: List security fix. diff -r eb05a18232e9 -r 0f6deb60d29b NEWS --- a/NEWS Wed Jul 20 16:32:04 2011 +0100 +++ b/NEWS Thu Jul 21 15:08:30 2011 +0100 @@ -8,6 +8,8 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY +New in release 1.9.10 (2011-XX-XX): + New in release 1.9.9 (2011-07-20): * Security fixes diff -r eb05a18232e9 -r 0f6deb60d29b configure.ac --- a/configure.ac Wed Jul 20 16:32:04 2011 +0100 +++ b/configure.ac Thu Jul 21 15:08:30 2011 +0100 @@ -1,4 +1,4 @@ -AC_INIT([icedtea6],[1.9.9],[distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea6],[1.9.10pre],[distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) From andrew at icedtea.classpath.org Thu Jul 21 07:13:09 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Thu, 21 Jul 2011 14:13:09 +0000 Subject: /hg/release/icedtea6-1.8: Prepare for 1.8.10. Message-ID: changeset 3f75d74db864 in /hg/release/icedtea6-1.8 details: http://icedtea.classpath.org/hg/release/icedtea6-1.8?cmd=changeset;node=3f75d74db864 author: Andrew John Hughes date: Thu Jul 21 15:13:04 2011 +0100 Prepare for 1.8.10. 2011-07-21 Andrew John Hughes * NEWS: Prepare for 1.8.10. * configure.ac: Bump to 1.8.10pre. diffstat: ChangeLog | 5 +++++ NEWS | 2 ++ configure.ac | 2 +- 3 files changed, 8 insertions(+), 1 deletions(-) diffs (33 lines): diff -r c29cc85ba0f8 -r 3f75d74db864 ChangeLog --- a/ChangeLog Wed Jul 20 16:31:47 2011 +0100 +++ b/ChangeLog Thu Jul 21 15:13:04 2011 +0100 @@ -1,3 +1,8 @@ +2011-07-21 Andrew John Hughes + + * NEWS: Prepare for 1.8.10. + * configure.ac: Bump to 1.8.10pre. + 2011-07-20 Andrew John Hughes * NEWS: Add release date. diff -r c29cc85ba0f8 -r 3f75d74db864 NEWS --- a/NEWS Wed Jul 20 16:31:47 2011 +0100 +++ b/NEWS Thu Jul 21 15:13:04 2011 +0100 @@ -8,6 +8,8 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY +New in release 1.8.10 (2011-XX-XX): + New in release 1.8.9 (2011-07-20): * Security fixes diff -r c29cc85ba0f8 -r 3f75d74db864 configure.ac --- a/configure.ac Wed Jul 20 16:31:47 2011 +0100 +++ b/configure.ac Thu Jul 21 15:13:04 2011 +0100 @@ -1,4 +1,4 @@ -AC_INIT([icedtea6],[1.8.9],[distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea6],[1.8.10pre],[distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) From dbhole at redhat.com Thu Jul 21 07:37:00 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Thu, 21 Jul 2011 10:37:00 -0400 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E27D21A.1070102@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E23FACA.3070305@redhat.com> <4E24998A.9050507@redhat.com> <4E252893.8050809@redhat.com> <4E259ABE.2070606@redhat.com> <20110720202650.GP17111@redhat.com> <4E27D21A.1070102@redhat.com> Message-ID: <20110721143700.GA2941@redhat.com> * Jiri Vanek [2011-07-21 03:19]: > On 07/20/2011 10:26 PM, Deepak Bhole wrote: > >* Saad Mohammad [2011-07-19 11:04]: > >>> I have attached the updated copy of Patch1. > >>> > >>> On 07/19/2011 02:47 AM, Jiri Vanek wrote: > >>>>> >> > >>>>> >>I hope this is the 110% for Patch1! ;) > >>>> >99% ;) > >>> > >>> This is for sure the 110% ;) > >>> > >>> -- > >>> Cheers, > >>> Saad Mohammad > >>> > >Hi Saad, > > > >I have a few minor corrections for this one... > > > >>> + > >>> + if (appTemplate == null&& launchJNLP == null) > >>> + throw new NullPointerException( > >>> + "Template JNLP file and Launching JNLP file are both null."); > >>> + else if (appTemplate == null) > >>> + throw new NullPointerException("Template JNLP file is null."); > >>> + else if (launchJNLP == null) > >>> + throw new NullPointerException("Launching JNLP file is null."); > >>> + > >Throwing RuntimeExceptions is generally not a good idea. Consider making > >the above a checked exception. > > I believe nullpointer exception is correct here. Or it will make mess later. > Although to repalce it with JNLMatch exception can do no harm. > I guess it is a matter of preference. I generally avoid them because the API user then has to be aware of it. In this case, it is not even mentioned in the Javadocs that the method throws an NPE... Cheers, Deepak From omajid at redhat.com Thu Jul 21 07:53:02 2011 From: omajid at redhat.com (Omair Majid) Date: Thu, 21 Jul 2011 10:53:02 -0400 Subject: Fwd: Re: ping: [FYI][icedtea-web] minor changes in reproducers engine In-Reply-To: <4E27E3F9.7050607@redhat.com> References: <4E27E3F9.7050607@redhat.com> Message-ID: <4E283D4E.9050100@redhat.com> Hi Jiri, Sorry about the delay in replying. I was quite busy with other stuff. On 07/21/2011 04:31 AM, Jiri Vanek wrote: > > > *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: > String containing "localhost" have been declared as final constant. > (SERVER_NAME) have been moved instant Server instance so each > server can have it name without affecting others > (getUrl()) added - can return URL of server singleton. > Implementation of this method is inside server, so each server can > return its own useful URL. > (saveFile()) is now public. > Added identification for ThreadedProcess based on commandlineArgs > and its run is now slowed by Thread.sleep > (ServerLuncher) inner class is now public (it was bug to not be as > we have getIndependentInstance of it method ) and renamed to ServerLauncher > Enchanted wrapping of executeProcess > The formatting looks wrong, but I am going to assume you will fix this when editing the ChangeLog file. > > diff -r 86abbf8be0b1 tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java > --- a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java Thu Jun 23 15:29:45 2011 +0200 > +++ b/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java Mon Jul 11 13:27:20 2011 +0200 > @@ -576,8 +579,25 @@ > } > > public ThreadedProcess(List args) { > + this.args = args; > + } > > - this.args = args; > + public String getCommandLine() { > + String commandLine = "unknown command"; > + try { > + if (args != null&& args.size()> 0) { > + commandLine = ""; > + for (Iterator it = args.iterator(); it.hasNext();) { > + String string = it.next(); > + commandLine = commandLine + " " + string; > + > + } This is more of a FYI, but i think it's clearer to do it this way: for (String string: args) { commandLine = commandLine + " " + string; } But it's fine the way it is. You don't have to change it. > @@ -608,14 +628,26 @@ > * wrapper arround tiny http server to separate lunch configgurations and servers. > * to allow terminations and stuff arround. > */ > + public static class ServerLauncher implements Runnable { > > - static class ServerLuncher implements Runnable { > - > + /** > + * default url name part. > + * This can be changed in runtime, but will affect all following tasks upon those server > + */ > + private String serverName = DEFAULT_LOCALHOST_NAME; > private boolean running; > private final Integer port; > private final File dir; > > - public ServerLuncher(Integer portt, File dirr) { > + public String getServerName() { > + return serverName; > + } > + > + public void setServerName(String serverName) { > + this.serverName = serverName; > + } > + > + public ServerLauncher(Integer portt, File dirr) { Typo here. Should be 'port' and 'dir' Other than those minor problems, it looks fine to me. Okay to commit after fixing those. Cheers, Omair From omajid at redhat.com Thu Jul 21 11:22:00 2011 From: omajid at redhat.com (Omair Majid) Date: Thu, 21 Jul 2011 14:22:00 -0400 Subject: [OpenJDK 2D-Dev] com.sun.image.codec.jpeg.JPEGImageEncoder with OpenJDK In-Reply-To: <4bfd4000d00641573a4524b55b201587.squirrel@isp2.logentis.net> References: <4bfd4000d00641573a4524b55b201587.squirrel@isp2.logentis.net> Message-ID: <4E286E48.3050907@redhat.com> Hi, (CC'ing distro-pkg-dev as this looks like an IcedTea6 issue) On 07/21/2011 11:58 AM, ml at logemann.org wrote: > can anyone tell me the status of com.sun.image.codec.jpeg.JPEGImageEncoder > with OpenJDK 7 ? I will echo the thoughts of others: this is a legacy API. You should not be using it when developing new applications. For existing projects though, you may not have much choice. > We tried running OpenJDK6 on Linux and werent able to use > it since one project of ours use > com.sun.image.codec.jpeg.JPEGImageEncoder. > > it seems that with OpenJDK6 this is an interface where the project expects > it to be a class (or vice versa, dont know anymore). > IcedTea6 (which is what most Linux distributions package as OpenJDK6) provides an implementation of com.sun.image.codec.jpeg*. It seems you are running into specific bugs with that implementation. There have been a number of fixes [1][2] recently to the com.sun.image.codec.jpeg.* classes in IcedTea6. I would suggest that you build a recent version of IcedTea6 from source (see [3] for details and please use the the 'bleeding-edge' version from http://icedtea.classpath.org/hg/icedtea6), and run the program with that. If you are still running into issues, you might want to file specific bugs against IcedTea6 in the icedtea bugzilla [4]. Thanks, Omair [1] http://icedtea.classpath.org/hg/icedtea6/rev/8720a7df46e3 [2] http://icedtea.classpath.org/hg/icedtea6/rev/944778c61e3c [3] http://icedtea.classpath.org/wiki/Main_Page#Quickstart_.26_Building [4] http://icedtea.classpath.org/bugzilla/ From dbhole at icedtea.classpath.org Thu Jul 21 12:13:45 2011 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Thu, 21 Jul 2011 19:13:45 +0000 Subject: /hg/icedtea-web: PR749: sun.applet.PluginStreamHandler#handleMes... Message-ID: changeset 6bfd819570c1 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=6bfd819570c1 author: Deepak Bhole date: Thu Jul 21 15:11:38 2011 -0400 PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow Original patch from: Ricardo Mart?n Camarero diffstat: AUTHORS | 1 + ChangeLog | 9 + NEWS | 2 + plugin/icedteanp/java/sun/applet/PluginStreamHandler.java | 78 +++++++++++--- 4 files changed, 71 insertions(+), 19 deletions(-) diffs (159 lines): diff -r 7dd63058c234 -r 6bfd819570c1 AUTHORS --- a/AUTHORS Fri Jul 15 16:02:00 2011 -0400 +++ b/AUTHORS Thu Jul 21 15:11:38 2011 -0400 @@ -3,6 +3,7 @@ Lillian Angel Deepak Bhole +Ricardo Mart??n Camarero Thomas Fitzsimmons Mark Greenwood Andrew John Hughes diff -r 7dd63058c234 -r 6bfd819570c1 ChangeLog --- a/ChangeLog Fri Jul 15 16:02:00 2011 -0400 +++ b/ChangeLog Thu Jul 21 15:11:38 2011 -0400 @@ -1,3 +1,12 @@ +2011-07-21 Deepak Bhole + + PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow + Original patch from: Ricardo Mart??n Camarero + * plugin/icedteanp/java/sun/applet/PluginStreamHandler.java + (readPair): New function. + (handleMessage): Use readPair to incrementally tokenize message, rather + than using String.split(). + 2011-07-19 Saad Mohammad * netx/net/sourceforge/jnlp/JNLPMatcher.java: diff -r 7dd63058c234 -r 6bfd819570c1 NEWS --- a/NEWS Fri Jul 15 16:02:00 2011 -0400 +++ b/NEWS Thu Jul 21 15:11:38 2011 -0400 @@ -12,6 +12,8 @@ * Security updates: - RH718164, CVE-2011-2513: Home directory path disclosure to untrusted applications - RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation +* Plugin + - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow New in release 1.1 (2011-XX-XX): * Security updates diff -r 7dd63058c234 -r 6bfd819570c1 plugin/icedteanp/java/sun/applet/PluginStreamHandler.java --- a/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Fri Jul 15 16:02:00 2011 -0400 +++ b/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Thu Jul 21 15:11:38 2011 -0400 @@ -113,18 +113,58 @@ listenerThread.start(); } + /** + * Given a string, reads the first two (space separated) tokens. + * + * @param message The string to read + * @param start The position to start reading at + * @param array The array into which the first two tokens are placed + * @return Position where the next token starts + */ + private int readPair(String message, int start, String[] array) { + + int end = start; + array[0] = null; + array[1] = null; + + if (message.length() > start) { + int firstSpace = message.indexOf(' ', start); + if (firstSpace == -1) { + array[0] = message.substring(start); + end = message.length(); + } else { + array[0] = message.substring(start, firstSpace); + if (message.length() > firstSpace + 1) { + int secondSpace = message.indexOf(' ', firstSpace + 1); + if (secondSpace == -1) { + array[1] = message.substring(firstSpace + 1); + end = message.length(); + } else { + array[1] = message.substring(firstSpace + 1, secondSpace); + end = secondSpace + 1; + } + } + } + } + + PluginDebug.debug("readPair: '", array[0], "' - '", array[1], "' ", end); + return end; + } + public void handleMessage(String message) throws PluginException { - int nextIndex = 0; int reference = -1; String src = null; String[] privileges = null; String rest = ""; + String[] msgComponents = new String[2]; + int pos = 0; + int oldPos = 0; - String[] msgComponents = message.split(" "); - - if (msgComponents.length < 2) + pos = readPair(message, oldPos, msgComponents); + if (msgComponents[0] == null || msgComponents[1] == null) { return; + } if (msgComponents[0].startsWith("plugin")) { handlePluginMessage(message); @@ -134,38 +174,38 @@ // type and identifier are guaranteed to be there String type = msgComponents[0]; final int identifier = Integer.parseInt(msgComponents[1]); - nextIndex = 2; // reference, src and privileges are optional components, // and are guaranteed to be in that order, if they occur + oldPos = pos; + pos = readPair(message, oldPos, msgComponents); // is there a reference ? - if (msgComponents[nextIndex].equals("reference")) { - reference = Integer.parseInt(msgComponents[nextIndex + 1]); - nextIndex += 2; + if ("reference".equals(msgComponents[0])) { + reference = Integer.parseInt(msgComponents[1]); + oldPos = pos; + pos = readPair(message, oldPos, msgComponents); } // is there a src? - if (msgComponents[nextIndex].equals("src")) { - src = msgComponents[nextIndex + 1]; - nextIndex += 2; + if ("src".equals(msgComponents[0])) { + src = msgComponents[1]; + oldPos = pos; + pos = readPair(message, oldPos, msgComponents); } // is there a privileges? - if (msgComponents[nextIndex].equals("privileges")) { - String privs = msgComponents[nextIndex + 1]; + if ("privileges".equals(msgComponents[0])) { + String privs = msgComponents[1]; privileges = privs.split(","); - nextIndex += 2; + oldPos = pos; } // rest - for (int i = nextIndex; i < msgComponents.length; i++) { - rest += msgComponents[i]; - rest += " "; + if (message.length() > oldPos) { + rest = message.substring(oldPos); } - rest = rest.trim(); - try { PluginDebug.debug("Breakdown -- type: ", type, " identifier: ", identifier, " reference: ", reference, " src: ", src, " privileges: ", privileges, " rest: \"", rest, "\""); From dbhole at icedtea.classpath.org Thu Jul 21 12:14:03 2011 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Thu, 21 Jul 2011 19:14:03 +0000 Subject: /hg/release/icedtea-web-1.0: PR749: sun.applet.PluginStreamHandl... Message-ID: changeset a20bd5a4d035 in /hg/release/icedtea-web-1.0 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.0?cmd=changeset;node=a20bd5a4d035 author: Deepak Bhole date: Thu Jul 21 15:12:38 2011 -0400 PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow Patch from: Ricardo Mart?n Camarero (Ricky) diffstat: AUTHORS | 1 + ChangeLog | 9 + NEWS | 2 + plugin/icedteanp/java/sun/applet/PluginStreamHandler.java | 78 +++++++++++--- 4 files changed, 71 insertions(+), 19 deletions(-) diffs (159 lines): diff -r 197556ca1b03 -r a20bd5a4d035 AUTHORS --- a/AUTHORS Wed Jul 20 09:31:28 2011 -0400 +++ b/AUTHORS Thu Jul 21 15:12:38 2011 -0400 @@ -3,6 +3,7 @@ Lillian Angel Deepak Bhole +Ricardo Mart??n Camarero Thomas Fitzsimmons Mark Greenwood Andrew John Hughes diff -r 197556ca1b03 -r a20bd5a4d035 ChangeLog --- a/ChangeLog Wed Jul 20 09:31:28 2011 -0400 +++ b/ChangeLog Thu Jul 21 15:12:38 2011 -0400 @@ -1,3 +1,12 @@ +2011-07-21 Deepak Bhole + + PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow + Patch from: Ricardo Mart??n Camarero (Ricky) + * plugin/icedteanp/java/sun/applet/PluginStreamHandler.java + (readPair): New function. + (handleMessage): Use readPair to incrementally tokenize message, rather + than using String.split(). + 2011-07-20 Deepak Bhole * configure.ac: Prepare for 1.0.5 diff -r 197556ca1b03 -r a20bd5a4d035 NEWS --- a/NEWS Wed Jul 20 09:31:28 2011 -0400 +++ b/NEWS Thu Jul 21 15:12:38 2011 -0400 @@ -9,6 +9,8 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY New in release 1.0.5 (2011-XX-XX): +* Plugin + - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow New in release 1.0.4 (2011-07-20): * Security updates: diff -r 197556ca1b03 -r a20bd5a4d035 plugin/icedteanp/java/sun/applet/PluginStreamHandler.java --- a/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Wed Jul 20 09:31:28 2011 -0400 +++ b/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Thu Jul 21 15:12:38 2011 -0400 @@ -188,18 +188,58 @@ listenerThread.start(); } + /** + * Given a string, reads the first two (space separated) tokens. + * + * @param message The string to read + * @param start The position to start reading at + * @param array The array into which the first two tokens are placed + * @return Position where the next token starts + */ + private int readPair(String message, int start, String[] array) { + + int end = start; + array[0] = null; + array[1] = null; + + if (message.length() > start) { + int firstSpace = message.indexOf(' ', start); + if (firstSpace == -1) { + array[0] = message.substring(start); + end = message.length(); + } else { + array[0] = message.substring(start, firstSpace); + if (message.length() > firstSpace + 1) { + int secondSpace = message.indexOf(' ', firstSpace + 1); + if (secondSpace == -1) { + array[1] = message.substring(firstSpace + 1); + end = message.length(); + } else { + array[1] = message.substring(firstSpace + 1, secondSpace); + end = secondSpace + 1; + } + } + } + } + + PluginDebug.debug("readPair: '", array[0], "' - '", array[1], "' ", end); + return end; + } + public void handleMessage(String message) throws PluginException { - int nextIndex = 0; int reference = -1; String src = null; String[] privileges = null; String rest = ""; + String[] msgComponents = new String[2]; + int pos = 0; + int oldPos = 0; - String[] msgComponents = message.split(" "); - - if (msgComponents.length < 2) + pos = readPair(message, oldPos, msgComponents); + if (msgComponents[0] == null || msgComponents[1] == null) { return; + } if (msgComponents[0].startsWith("plugin")) { handlePluginMessage(message); @@ -209,38 +249,38 @@ // type and identifier are guaranteed to be there String type = msgComponents[0]; final int identifier = Integer.parseInt(msgComponents[1]); - nextIndex = 2; // reference, src and privileges are optional components, // and are guaranteed to be in that order, if they occur + oldPos = pos; + pos = readPair(message, oldPos, msgComponents); // is there a reference ? - if (msgComponents[nextIndex].equals("reference")) { - reference = Integer.parseInt(msgComponents[nextIndex + 1]); - nextIndex += 2; + if ("reference".equals(msgComponents[0])) { + reference = Integer.parseInt(msgComponents[1]); + oldPos = pos; + pos = readPair(message, oldPos, msgComponents); } // is there a src? - if (msgComponents[nextIndex].equals("src")) { - src = msgComponents[nextIndex + 1]; - nextIndex += 2; + if ("src".equals(msgComponents[0])) { + src = msgComponents[1]; + oldPos = pos; + pos = readPair(message, oldPos, msgComponents); } // is there a privileges? - if (msgComponents[nextIndex].equals("privileges")) { - String privs = msgComponents[nextIndex + 1]; + if ("privileges".equals(msgComponents[0])) { + String privs = msgComponents[1]; privileges = privs.split(","); - nextIndex += 2; + oldPos = pos; } // rest - for (int i = nextIndex; i < msgComponents.length; i++) { - rest += msgComponents[i]; - rest += " "; + if (message.length() > oldPos) { + rest = message.substring(oldPos); } - rest = rest.trim(); - try { PluginDebug.debug("Breakdown -- type: " + type + " identifier: " + identifier + " reference: " + reference + " src: " + src + " privileges: " + privileges + " rest: \"" + rest + "\""); From dbhole at icedtea.classpath.org Thu Jul 21 12:14:13 2011 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Thu, 21 Jul 2011 19:14:13 +0000 Subject: /hg/release/icedtea-web-1.1: PR749: sun.applet.PluginStreamHandl... Message-ID: changeset f9c1a27fada9 in /hg/release/icedtea-web-1.1 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.1?cmd=changeset;node=f9c1a27fada9 author: Deepak Bhole date: Thu Jul 21 15:13:34 2011 -0400 PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow Patch from: Ricardo Mart?n Camarero (Ricky) diffstat: AUTHORS | 1 + ChangeLog | 9 + NEWS | 2 + plugin/icedteanp/java/sun/applet/PluginStreamHandler.java | 78 +++++++++++--- 4 files changed, 71 insertions(+), 19 deletions(-) diffs (159 lines): diff -r ed8d0139b60b -r f9c1a27fada9 AUTHORS --- a/AUTHORS Wed Jul 20 09:33:13 2011 -0400 +++ b/AUTHORS Thu Jul 21 15:13:34 2011 -0400 @@ -3,6 +3,7 @@ Lillian Angel Deepak Bhole +Ricardo Mart??n Camarero Thomas Fitzsimmons Mark Greenwood Andrew John Hughes diff -r ed8d0139b60b -r f9c1a27fada9 ChangeLog --- a/ChangeLog Wed Jul 20 09:33:13 2011 -0400 +++ b/ChangeLog Thu Jul 21 15:13:34 2011 -0400 @@ -1,3 +1,12 @@ +2011-07-21 Deepak Bhole + + PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow + Patch from: Ricardo Mart??n Camarero (Ricky) + * plugin/icedteanp/java/sun/applet/PluginStreamHandler.java + (readPair): New function. + (handleMessage): Use readPair to incrementally tokenize message, rather + than using String.split(). + 2011-07-20 Deepak Bhole * configure.ac: Prepare for 1.1.2 diff -r ed8d0139b60b -r f9c1a27fada9 NEWS --- a/NEWS Wed Jul 20 09:33:13 2011 -0400 +++ b/NEWS Thu Jul 21 15:13:34 2011 -0400 @@ -9,6 +9,8 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY New in release 1.1.2 (2011-XX-XX): +* Plugin + - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow New in release 1.1.1 (2011-07-20): * Security updates: diff -r ed8d0139b60b -r f9c1a27fada9 plugin/icedteanp/java/sun/applet/PluginStreamHandler.java --- a/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Wed Jul 20 09:33:13 2011 -0400 +++ b/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Thu Jul 21 15:13:34 2011 -0400 @@ -113,18 +113,58 @@ listenerThread.start(); } + /** + * Given a string, reads the first two (space separated) tokens. + * + * @param message The string to read + * @param start The position to start reading at + * @param array The array into which the first two tokens are placed + * @return Position where the next token starts + */ + private int readPair(String message, int start, String[] array) { + + int end = start; + array[0] = null; + array[1] = null; + + if (message.length() > start) { + int firstSpace = message.indexOf(' ', start); + if (firstSpace == -1) { + array[0] = message.substring(start); + end = message.length(); + } else { + array[0] = message.substring(start, firstSpace); + if (message.length() > firstSpace + 1) { + int secondSpace = message.indexOf(' ', firstSpace + 1); + if (secondSpace == -1) { + array[1] = message.substring(firstSpace + 1); + end = message.length(); + } else { + array[1] = message.substring(firstSpace + 1, secondSpace); + end = secondSpace + 1; + } + } + } + } + + PluginDebug.debug("readPair: '", array[0], "' - '", array[1], "' ", end); + return end; + } + public void handleMessage(String message) throws PluginException { - int nextIndex = 0; int reference = -1; String src = null; String[] privileges = null; String rest = ""; + String[] msgComponents = new String[2]; + int pos = 0; + int oldPos = 0; - String[] msgComponents = message.split(" "); - - if (msgComponents.length < 2) + pos = readPair(message, oldPos, msgComponents); + if (msgComponents[0] == null || msgComponents[1] == null) { return; + } if (msgComponents[0].startsWith("plugin")) { handlePluginMessage(message); @@ -134,38 +174,38 @@ // type and identifier are guaranteed to be there String type = msgComponents[0]; final int identifier = Integer.parseInt(msgComponents[1]); - nextIndex = 2; // reference, src and privileges are optional components, // and are guaranteed to be in that order, if they occur + oldPos = pos; + pos = readPair(message, oldPos, msgComponents); // is there a reference ? - if (msgComponents[nextIndex].equals("reference")) { - reference = Integer.parseInt(msgComponents[nextIndex + 1]); - nextIndex += 2; + if ("reference".equals(msgComponents[0])) { + reference = Integer.parseInt(msgComponents[1]); + oldPos = pos; + pos = readPair(message, oldPos, msgComponents); } // is there a src? - if (msgComponents[nextIndex].equals("src")) { - src = msgComponents[nextIndex + 1]; - nextIndex += 2; + if ("src".equals(msgComponents[0])) { + src = msgComponents[1]; + oldPos = pos; + pos = readPair(message, oldPos, msgComponents); } // is there a privileges? - if (msgComponents[nextIndex].equals("privileges")) { - String privs = msgComponents[nextIndex + 1]; + if ("privileges".equals(msgComponents[0])) { + String privs = msgComponents[1]; privileges = privs.split(","); - nextIndex += 2; + oldPos = pos; } // rest - for (int i = nextIndex; i < msgComponents.length; i++) { - rest += msgComponents[i]; - rest += " "; + if (message.length() > oldPos) { + rest = message.substring(oldPos); } - rest = rest.trim(); - try { PluginDebug.debug("Breakdown -- type: ", type, " identifier: ", identifier, " reference: ", reference, " src: ", src, " privileges: ", privileges, " rest: \"", rest, "\""); From bugzilla-daemon at icedtea.classpath.org Thu Jul 21 12:17:03 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 21 Jul 2011 19:17:03 +0000 Subject: [Bug 749] sun.applet.PluginStreamHandler#handleMessage(String) really slow In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=749 Deepak Bhole changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED --- Comment #3 from Deepak Bhole 2011-07-21 19:17:03 --- Thank you very much for the patch! I have added some docs, fixed spacing and committed it to all supported branches: http://icedtea.classpath.org/hg/icedtea-web/rev/6bfd819570c1 http://icedtea.classpath.org/hg/release/icedtea-web-1.0/rev/a20bd5a4d035 http://icedtea.classpath.org/hg/release/icedtea-web-1.1/rev/f9c1a27fada9 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From ptisnovs at icedtea.classpath.org Fri Jul 22 01:26:46 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 22 Jul 2011 08:26:46 +0000 Subject: /hg/icedtea6: S6752638: java.awt.GraphicsEnvironment.preferLocal... Message-ID: changeset 3c107fae0e9d in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=3c107fae0e9d author: ptisnovs date: Fri Jul 22 10:26:38 2011 +0200 S6752638: java.awt.GraphicsEnvironment.preferLocaleFonts() throws NPE on Linux diffstat: ChangeLog | 7 + Makefile.am | 3 +- NEWS | 1 + patches/openjdk/6752638-preferLocaleFonts_throws_NPE.patch | 95 ++++++++++++++ 4 files changed, 105 insertions(+), 1 deletions(-) diffs (139 lines): diff -r c2a1c2cf027e -r 3c107fae0e9d ChangeLog --- a/ChangeLog Thu Jul 21 09:42:07 2011 +0200 +++ b/ChangeLog Fri Jul 22 10:26:38 2011 +0200 @@ -1,3 +1,10 @@ +2011-07-22 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/6752638-preferLocaleFonts_throws_NPE.patch: + Backport of 6752638. + 2011-07-21 Pavel Tisnovsky * Makefile.am: added new patch diff -r c2a1c2cf027e -r 3c107fae0e9d Makefile.am --- a/Makefile.am Thu Jul 21 09:42:07 2011 +0200 +++ b/Makefile.am Fri Jul 22 10:26:38 2011 +0200 @@ -367,7 +367,8 @@ patches/openjdk/7049339-anyblit-broken.patch \ patches/jtreg-hotspot-Test7020373-fix.patch \ patches/openjdk/4917091-javac_rejects_array_over_128_in_length.patch \ - patches/openjdk/6390045-error_cannot_access_java_lang_void.patch + patches/openjdk/6390045-error_cannot_access_java_lang_void.patch \ + patches/openjdk/6752638-preferLocaleFonts_throws_NPE.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r c2a1c2cf027e -r 3c107fae0e9d NEWS --- a/NEWS Thu Jul 21 09:42:07 2011 +0200 +++ b/NEWS Fri Jul 22 10:26:38 2011 +0200 @@ -360,6 +360,7 @@ - S6613904: javax.swing.GroupLayout.createParallelGroup(..) doesn't throw IllegalArgumentException for null arg - S4917091: javac rejects array over 128 in length - S6390045: Unexpected error "cannot access java.lang.Void" with '-target cldc1.0' with -source >=1.5 + - S6752638: java.awt.GraphicsEnvironment.preferLocaleFonts() throws NPE on Linux * Allow selection of test suites using the jtreg_checks argument e.g. jtreg_checks="langtools" * CACAO - Threadlist & threadobject improvements. diff -r c2a1c2cf027e -r 3c107fae0e9d patches/openjdk/6752638-preferLocaleFonts_throws_NPE.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6752638-preferLocaleFonts_throws_NPE.patch Fri Jul 22 10:26:38 2011 +0200 @@ -0,0 +1,97 @@ +# HG changeset patch +# User prr +# Date 1230141468 28800 +# Node ID 40ec164889bd9ec1955e36864593bc222474ba43 +# Parent f68864fe53d39a994f53ee8dd5c8e9875076e95f +6752638: java.awt.GraphicsEnvironment.preferLocaleFonts() throws NPE on Linux +Reviewed-by: bae, igor + +diff -r f68864fe53d3 -r 40ec164889bd src/share/classes/java/awt/GraphicsEnvironment.java +--- openjdk.orig/jdk/src/share/classes/java/awt/GraphicsEnvironment.java Wed Dec 24 09:53:52 2008 -0800 ++++ openjdk/jdk/src/share/classes/java/awt/GraphicsEnvironment.java Wed Dec 24 09:57:48 2008 -0800 +@@ -356,6 +356,9 @@ + * @since 1.5 + */ + public void preferLocaleFonts() { ++ if (!(this instanceof SunGraphicsEnvironment)) { ++ return; ++ } + sun.font.FontManager.preferLocaleFonts(); + } + +@@ -376,6 +379,9 @@ + * @since 1.5 + */ + public void preferProportionalFonts() { ++ if (!(this instanceof SunGraphicsEnvironment)) { ++ return; ++ } + sun.font.FontManager.preferProportionalFonts(); + } + +diff -r f68864fe53d3 -r 40ec164889bd test/java/awt/GraphicsEnvironment/PreferLocaleFonts.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/java/awt/GraphicsEnvironment/PreferLocaleFonts.java Wed Dec 24 09:57:48 2008 -0800 +@@ -0,0 +1,62 @@ ++/* ++ * Copyright (c) 2008 Sun Microsystems, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++/* ++ * @test ++ * @bug 6752638 ++ * @summary Test no NPE calling preferLocaleFonts() on custom GE. ++ * @run main PreferLocaleFonts ++ */ ++ ++import java.util.*; ++import java.awt.*; ++import java.awt.image.*; ++ ++public class PreferLocaleFonts extends GraphicsEnvironment { ++ ++ public static void main(String args[]) { ++(new PreferLocaleFonts()).preferLocaleFonts(); ++ } ++ public PreferLocaleFonts() { ++ super(); ++ } ++ public Graphics2D createGraphics(BufferedImage image) { ++ return null; ++ } ++ public String[] getAvailableFontFamilyNames(Locale locale) { ++ return null; ++ } ++ public String[] getAvailableFontFamilyNames() { ++ return null; ++ } ++ public Font[] getAllFonts() { ++ return null; ++ } ++ public GraphicsDevice getDefaultScreenDevice() throws HeadlessException { ++ return null; ++ } ++ public GraphicsDevice[] getScreenDevices() throws HeadlessException { ++ return null; ++ } ++} ++ From a.radke at arcor.de Fri Jul 22 03:54:11 2011 From: a.radke at arcor.de (Andreas Radke) Date: Fri, 22 Jul 2011 12:54:11 +0200 Subject: IcedTea6 1.10.3 Released! In-Reply-To: <20110721133621.GU32327@rivendell.middle-earth.co.uk> References: <20110721133621.GU32327@rivendell.middle-earth.co.uk> Message-ID: <20110722125411.0951415c@workstation64.home> This brings up a regression here using it-finance.com stock market charting software. While I can use it well with icedtea 1.10.2 it doesn't take any input from mouse or keyboard with 1.10.3. So I have to downgrade the package here. Console output: working 1.10.2: java version "1.6.0_22" OpenJDK Runtime Environment (IcedTea6 1.10.2) (ArchLinux-6.b22_1.10.2-1-x86_64) OpenJDK 64-Bit Server VM (build 19.0-b09, mixed mode) Unable to use Firefox's proxy settings. Using "DIRECT" as proxy type. 22.07.2011 12:41:45 Control init INFO: Control Applet v1.09-SNAPSHOT 22.07.2011 12:41:46 Control memoryDetection INFO: Detected 16065 Mo RAM Unable to use Firefox's proxy settings. Using "DIRECT" as proxy type. Unable to use Firefox's proxy settings. Using "DIRECT" as proxy type. 22.07.11 12:41 : v8.02.447 - codebase : http://e4.md.it-finance.com/MDV8/ 22.07.11 12:41 : Java Version : 1.6.0_22 22.07.11 12:41 : System : Linux 2.6.39-ARCH amd64 22.07.11 12:41 : Processors : 8 22.07.11 12:41 : Memory allocated : 48.5Mb max: 711.125Mb free: 33.585487Mb 22.07.11 12:41 : Classpath : [http://www.marketdatasystems.com/download/charts/V8/applet447.jar] 22.07.11 12:41 : Screens : 1 22.07.11 12:41 : Screen 0 : :0.0 - 1274x958x-1 - (0.0, 0.0) - [top=0, left=0, bottom=41, right=0] - 60 Hz - Video acceleration: true 22.07.11 12:41 : init bundle "texts.texts" with locale de_DE_IGIndex 22.07.11 12:41 : init bundle "texts/dateformats" with locale de_DE_IGIndex 22.07.11 12:41 : init bundle "texts.proorder" with locale de_DE_IGIndex 22.07.11 12:41 : init bundle "texts.igindex" with locale de_DE_IGIndex 22.07.11 12:41 : load plugin IGIndex successfully 22.07.11 12:41 : init bundle "PRTLines.prt" with locale de_DE_IGIndex 22.07.11 12:41 : load plugin PRTLines successfully broken with 1.10.3 Exception in thread "pool-1-thread-1" java.util.concurrent.RejectedExecutionException at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1956) at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:816) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1337) at java.util.concurrent.Executors$DelegatedExecutorService.execute(Executors.java:629) at InstrumentSender.run(InstrumentSender.java:52) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:679) 22.07.2011 12:34:47 Control init INFO: Control Applet v1.09-SNAPSHOT 22.07.2011 12:34:48 Control memoryDetection INFO: Detected 16065 Mo RAM Unable to use Firefox's proxy settings. Using "DIRECT" as proxy type. Unable to use Firefox's proxy settings. Using "DIRECT" as proxy type. 22.07.11 12:34 : v8.02.447 - codebase : http://e5.md.it-finance.com/MDV8/ 22.07.11 12:34 : Java Version : 1.6.0_22 22.07.11 12:34 : System : Linux 2.6.39-ARCH amd64 22.07.11 12:34 : Processors : 8 22.07.11 12:34 : Memory allocated : 46.0Mb max: 711.125Mb free: 30.918549Mb 22.07.11 12:34 : Classpath : [http://www.marketdatasystems.com/download/charts/V8/applet447.jar] 22.07.11 12:34 : Screens : 1 22.07.11 12:34 : Screen 0 : :0.0 - 1274x958x-1 - (0.0, 0.0) - [top=0, left=0, bottom=41, right=0] - 60 Hz - Video acceleration: true 22.07.11 12:34 : init bundle "texts.texts" with locale de_DE_IGIndex 22.07.11 12:34 : init bundle "texts/dateformats" with locale de_DE_IGIndex 22.07.11 12:34 : init bundle "texts.proorder" with locale de_DE_IGIndex 22.07.11 12:34 : init bundle "texts.igindex" with locale de_DE_IGIndex 22.07.11 12:34 : load plugin IGIndex successfully 22.07.11 12:34 : init bundle "PRTLines.prt" with locale de_DE_IGIndex 22.07.11 12:34 : load plugin PRTLines successfully any idea? -Andy (also ArchLinux Icedtea/OpenJDK package maintainer) From ptisnovs at redhat.com Fri Jul 22 06:25:20 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Fri, 22 Jul 2011 15:25:20 +0200 Subject: Reviewer needed: backport of "S5047314: [Col] Collator.compare() runs indefinitely for a certain set of Thai strings" into IcedTea6 HEAD Message-ID: <4E297A40.6030604@redhat.com> Greetings, is it possible to push the backport of fix "S5047314: [Col] Collator.compare() runs indefinitely for a certain set of Thai strings" into IcedTea6 HEAD please? The behaviour of this fix was checked on RHELs. Here's ChangeLog entry: 2011-07-22 Pavel Tisnovsky * Makefile.am: added new patch * NEWS: updated with backport * patches/openjdk/5047314-Collator_compare_runs_indefinitely.patch: Backport of 5047314. Can anybody please review this change? Thank you in advance, Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 5047314_hg.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110722/76d0dd80/5047314_hg.diff From ptisnovs at icedtea.classpath.org Fri Jul 22 06:45:32 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 22 Jul 2011 13:45:32 +0000 Subject: /hg/gfx-test: Added capability of showing values of selected pix... Message-ID: changeset 1d0b42c72878 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=1d0b42c72878 author: Pavel Tisnovsky date: Fri Jul 22 15:46:54 2011 +0200 Added capability of showing values of selected pixels from sample and test images and for computing difference between the selected pixel. diffstat: ChangeLog | 7 + src/org/gfxtest/harness/MainWindow.java | 181 +++++++++++++++++++++---- src/org/gfxtest/harness/PixelPanel.java | 216 ++++++++++++++++++++++++++++++++ 3 files changed, 371 insertions(+), 33 deletions(-) diffs (truncated from 515 to 500 lines): diff -r f4113de94b6f -r 1d0b42c72878 ChangeLog --- a/ChangeLog Thu Jul 21 11:31:09 2011 +0200 +++ b/ChangeLog Fri Jul 22 15:46:54 2011 +0200 @@ -1,3 +1,10 @@ +2011-07-22 Pavel Tisnovsky + * src/org/gfxtest/harness/PixelPanel.java: created + * src/org/gfxtest/harness/MainWindow.java: + Add capability of showing values of selected pixels from + sample and test images and for computing difference between + the selected pixel. + 2011-07-21 Pavel Tisnovsky * src/org/gfxtest/ImageDiffer/ImageUtils.java: * src/org/gfxtest/harness/MainWindow.java: diff -r f4113de94b6f -r 1d0b42c72878 src/org/gfxtest/harness/MainWindow.java --- a/src/org/gfxtest/harness/MainWindow.java Thu Jul 21 11:31:09 2011 +0200 +++ b/src/org/gfxtest/harness/MainWindow.java Fri Jul 22 15:46:54 2011 +0200 @@ -40,21 +40,55 @@ package org.gfxtest.harness; +import java.awt.AWTException; +import java.awt.Color; import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; -import java.awt.event.*; +import java.awt.Point; +import java.awt.Robot; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.awt.event.KeyEvent; +import java.awt.event.MouseEvent; +import java.awt.event.MouseMotionListener; +import java.awt.event.MouseWheelEvent; +import java.awt.event.MouseWheelListener; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; -import java.util.*; +import java.util.Set; +import java.util.TreeSet; import javax.imageio.ImageIO; -import javax.swing.*; -import javax.swing.event.*; +import javax.swing.DefaultListModel; +import javax.swing.ImageIcon; +import javax.swing.JButton; +import javax.swing.JCheckBoxMenuItem; +import javax.swing.JFileChooser; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JList; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JSplitPane; +import javax.swing.JTable; +import javax.swing.JTextArea; +import javax.swing.KeyStroke; +import javax.swing.ListSelectionModel; +import javax.swing.SwingConstants; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; import javax.swing.table.DefaultTableModel; + + import org.gfxtest.ImageDiffer.ComparisonResult; import org.gfxtest.ImageDiffer.ImageComparator; import org.gfxtest.ImageDiffer.ImageUtils; @@ -93,10 +127,12 @@ private JLabel bottomRightLabel = new JLabel("test image"); private Dialogs dialogs = null; private Configuration configuration = null; + private PixelPanel pixelPanel = new PixelPanel(); private BufferedImage sampleImage = null; private BufferedImage testImage = null; private BufferedImage diffImage = null; + private Robot robot = null; private boolean tableIsErasing; private float scale = 1.0f; @@ -391,12 +427,11 @@ panel.add(resultTextPane, constraints(1, 7, 2, 1, 0.3, 0.5, GridBagConstraints.BOTH)); panel.add(this.commandShowSource, constraints(1, 1, 1, 1, 0.1, 0.0, GridBagConstraints.HORIZONTAL)); - panel.add(new JPanel(), constraints(1, 5, 1, 1, 0.1, 1.0, GridBagConstraints.BOTH)); panel.add(this.commandCompile, constraints(1, 2, 1, 1, 0.1, 0.0, GridBagConstraints.HORIZONTAL)); panel.add(this.commandRun, constraints(1, 3, 1, 1, 0.1, 0.0, GridBagConstraints.HORIZONTAL)); panel.add(this.commandDeleteClass, constraints(1, 4, 1, 1, 0.1, 0.0, GridBagConstraints.HORIZONTAL)); + panel.add(this.pixelPanel, constraints(1, 5, 1, 1, 0.1, 1.0, GridBagConstraints.BOTH)); panel.add(this.commandRefresh, constraints(1, 6, 1, 1, 0.1, 0.0, GridBagConstraints.HORIZONTAL)); - panel.add(new JPanel(), constraints(1, 5, 1, 1, 0.1, 1.0, GridBagConstraints.BOTH)); } /** @@ -404,37 +439,68 @@ */ protected void createMainWindow() { + try + { + this.robot = new Robot(); + } + catch (AWTException e) + { + e.printStackTrace(); + } JFrame window = new JFrame(Configuration.getWindowTitle()); this.dialogs = new Dialogs(Configuration.getWindowTitle(), window); - window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - window.setJMenuBar(createMainMenuBar()); - JSplitPane horizontalSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); - horizontalSplitPane.setOneTouchExpandable(true); - horizontalSplitPane.setDividerLocation(1. / 2); - - JSplitPane leftVerticalSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT); - leftVerticalSplitPane.setOneTouchExpandable(true); - leftVerticalSplitPane.setDividerLocation(1. / 2); - - JSplitPane rightVerticalSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT); - rightVerticalSplitPane.setOneTouchExpandable(true); - rightVerticalSplitPane.setDividerLocation(1. / 2); + JSplitPane horizontalSplitPane = createHorizontalSplitPane(); + JSplitPane leftVerticalSplitPane = createRightVerticalSplitPane(); + JSplitPane rightVerticalSplitPane = createRightVerticalSplitPane(); horizontalSplitPane.add(leftVerticalSplitPane); horizontalSplitPane.add(rightVerticalSplitPane); + leftVerticalSplitPane.add(createTopLeftPanel()); + rightVerticalSplitPane.add(createTopRightPanel()); + leftVerticalSplitPane.add(createBottomLeftPanel()); + rightVerticalSplitPane.add(createBottomRightPanel()); + + window.getContentPane().add(horizontalSplitPane); + + // Display the window. + window.setSize(this.configuration.getMainWindowWidth(), this.configuration.getMainWindowHeight()); + window.setVisible(true); + this.setMainWindow(window); + } + + private JSplitPane createHorizontalSplitPane() + { + JSplitPane horizontalSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); + horizontalSplitPane.setOneTouchExpandable(true); + horizontalSplitPane.setDividerLocation(1. / 2); + return horizontalSplitPane; + } + + private JSplitPane createRightVerticalSplitPane() + { + JSplitPane rightVerticalSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT); + rightVerticalSplitPane.setOneTouchExpandable(true); + rightVerticalSplitPane.setDividerLocation(1. / 2); + return rightVerticalSplitPane; + } + + private JPanel createTopLeftPanel() + { JPanel topLeftPanel = new JPanel(); topLeftPanel.setLayout(new GridBagLayout()); //topLeftPanel.setMinimumSize(new Dimension(320, 240)); createTopLeftPanelControls(topLeftPanel); - leftVerticalSplitPane.add(topLeftPanel); + return topLeftPanel; + } + private JPanel createTopRightPanel() + { JPanel topRightPanel = new JPanel(); topRightPanel.setMinimumSize(new Dimension(320, 240)); - //topRightPanel.setBackground(Color.green); topRightPanel.add(this.topRightLabel); topRightPanel.addMouseWheelListener(new MouseWheelListener() { @@ -444,11 +510,27 @@ onMouseWheelRotated(e); } }); - rightVerticalSplitPane.add(topRightPanel); + topRightPanel.addMouseMotionListener(new MouseMotionListener() + { + @Override + public void mouseDragged(MouseEvent e) + { + // correct to be empty + } + + @Override + public void mouseMoved(MouseEvent e) + { + onMouseMovedOverSampleImage(e); + } + }); + return topRightPanel; + } + private JPanel createBottomLeftPanel() + { JPanel bottomLeftPanel = new JPanel(); bottomLeftPanel.setMinimumSize(new Dimension(320, 240)); - //bottomLeftPanel.setBackground(Color.blue); bottomLeftPanel.add(this.bottomLeftLabel); bottomLeftPanel.addMouseWheelListener(new MouseWheelListener() { @@ -458,11 +540,13 @@ onMouseWheelRotated(e); } }); - leftVerticalSplitPane.add(bottomLeftPanel); + return bottomLeftPanel; + } + private JPanel createBottomRightPanel() + { JPanel bottomRightPanel = new JPanel(); bottomRightPanel.setMinimumSize(new Dimension(320, 240)); - //bottomRightPanel.setBackground(Color.yellow); bottomRightPanel.add(this.bottomRightLabel); bottomRightPanel.addMouseWheelListener(new MouseWheelListener() { @@ -472,14 +556,21 @@ onMouseWheelRotated(e); } }); - rightVerticalSplitPane.add(bottomRightPanel); - - window.getContentPane().add(horizontalSplitPane); - - // Display the window. - window.setSize(this.configuration.getMainWindowWidth(), this.configuration.getMainWindowHeight()); - window.setVisible(true); - this.setMainWindow(window); + bottomRightPanel.addMouseMotionListener(new MouseMotionListener() + { + @Override + public void mouseDragged(MouseEvent e) + { + // correct to be empty + } + + @Override + public void mouseMoved(MouseEvent e) + { + onMouseMovedOverTestImage(e); + } + }); + return bottomRightPanel; } /** @@ -681,6 +772,30 @@ this.tableIsErasing = false; } + protected void onMouseMovedOverSampleImage(MouseEvent e) + { + if (this.sampleImage != null && this.robot != null) + { + Point location = e.getLocationOnScreen(); + Color c1 = this.robot.getPixelColor(location.x, location.y); + int offsetY = this.bottomRightLabel.getY() - this.topRightLabel.getY(); + Color c2 = this.robot.getPixelColor(location.x, location.y + offsetY); + this.pixelPanel.showPixelValues(c1, c2); + } + } + + protected void onMouseMovedOverTestImage(MouseEvent e) + { + if (this.testImage != null && this.robot != null) + { + Point location = e.getLocationOnScreen(); + Color c1 = this.robot.getPixelColor(location.x, location.y); + int offsetY = this.bottomRightLabel.getY() - this.topRightLabel.getY(); + Color c2 = this.robot.getPixelColor(location.x, location.y - offsetY); + this.pixelPanel.showPixelValues(c1, c2); + } + } + protected void onMouseWheelRotated(MouseWheelEvent e) { int rotation = e.getWheelRotation(); diff -r f4113de94b6f -r 1d0b42c72878 src/org/gfxtest/harness/PixelPanel.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/gfxtest/harness/PixelPanel.java Fri Jul 22 15:46:54 2011 +0200 @@ -0,0 +1,216 @@ +/* + Java gfx-test framework + + Copyright (C) 2010, 2011 Red Hat + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +IcedTea is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package org.gfxtest.harness; + +import java.awt.Color; +import java.awt.Dimension; +import java.awt.GridLayout; + +import javax.swing.JLabel; +import javax.swing.JPanel; + + + +/** + * Class representing panel which displays value of selected pixel from sample + * image and value of relevant pixel from the test image. Pixel values are + * printed as hexadecimal triplets (as in HTML) + colored panel (it's background + * is changed). Additionally red, green and blue difference between the two + * pixels are computed and shown on this panel too. + * + * @author Pavel Tisnovsky + */ +public class PixelPanel extends JPanel +{ + /** + * Generated serial version UID. + */ + private static final long serialVersionUID = 579405820041982604L; + + /** + * Label containing fixed test. + */ + private JLabel samplePixelLabel = new JLabel("Sample:"); + + /** + * Label containing fixed test. + */ + private JLabel testedPixelLabel = new JLabel("Tested:"); + + /** + * Label containing fixed test. + */ + private JLabel differenceLabel = new JLabel("Diff:"); + + /** + * Label containing first pixel value (color) + */ + private JLabel samplePixelValue = new JLabel("?"); + + /** + * Label containing second pixel value (color) + */ + private JLabel testedPixelValue = new JLabel("?"); + + /** + * Label containing difference between two pixels. + */ + private JLabel differenceValue = new JLabel("?"); + + /** + * Panel used to shown color of selected pixel from sample image. + */ + private JPanel samplePixelPanel = new JPanel(); + + /** + * Panel used to shown color of selected pixel from tested image. + */ + private JPanel testedPixelPanel = new JPanel(); + + /** + * Constructor. + */ + public PixelPanel() + { + super(); + setComponentSizes(); + setLayout(); + addComponentsToPanel(); + } + + /** + * Set sizes of panels using to shown pixel color. + */ + private void setComponentSizes() + { + setSize(this.samplePixelPanel); + setSize(this.testedPixelPanel); + } + + /** + * Set the panel layout. + */ + private void setLayout() + { + this.setLayout(new GridLayout(3, 3, 0, 5)); + } + + /** + * Add all components to panel. + */ + private void addComponentsToPanel() + { + this.add(this.samplePixelLabel); + this.add(this.samplePixelValue); + this.add(this.samplePixelPanel); + this.add(this.testedPixelLabel); + this.add(this.testedPixelValue); + this.add(this.testedPixelPanel); + this.add(this.differenceLabel); + this.add(this.differenceValue); + } + + /** + * Set size of one panel used to show pixel color. + * + * @param panel + * selected panel + */ + private void setSize(JPanel panel) + { + Dimension dimension = new Dimension(20, 20); + panel.setMaximumSize(dimension); + panel.setMinimumSize(dimension); + panel.setPreferredSize(dimension); + } + + /** + * Compute and show value of pixel from sample image. + * + * @param rgb + * pixel value, ie. its RGB+alpha (unused) + */ + private void computeAndShowSamplePixelValue(int rgb) + { + this.samplePixelValue.setText(String.format("%06x", Integer.valueOf(rgb))); + this.samplePixelPanel.setBackground(new Color(rgb)); + } + + /** + * Compute and show value of pixel from tested image. + * + * @param rgb + * pixel value, ie. its RGB+alpha (unused) + */ + private void computeAndShowTestedPixelValue(int rgb) + { + this.testedPixelValue.setText(String.format("%06x", Integer.valueOf(rgb))); + this.testedPixelPanel.setBackground(new Color(rgb)); + } + + /** + * Compute and show differences between two pixels - one pixel is from + * sample image, second pixel is from tested image. + * + * @param color1 first pixel color + * @param color2 second pixel color + */ + private void computeAndShowPixelDifferenceValue(Color color1, Color color2) + { + int deltaRed = color1.getRed() - color2.getRed(); + int deltaGreen = color1.getGreen() - color2.getGreen(); + int deltaBlue = color1.getBlue() - color2.getBlue(); + this.differenceValue.setText(String.format("(%d) (%d) (%d)", Integer.valueOf(deltaRed), Integer.valueOf(deltaGreen), Integer.valueOf(deltaBlue))); From ptisnovs at icedtea.classpath.org Fri Jul 22 07:24:03 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 22 Jul 2011 14:24:03 +0000 Subject: /hg/rhino-tests: Added licence and JavaDoc to TestClass.java, fi... Message-ID: changeset 0ba6349ef301 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=0ba6349ef301 author: Pavel Tisnovsky date: Fri Jul 22 16:25:36 2011 +0200 Added licence and JavaDoc to TestClass.java, fixed address in AUTHORS, fixed order of entries in ChangeLog. diffstat: AUTHORS | 2 +- ChangeLog | 17 ++++- src/org/RhinoTests/TestClasses/TestClass.java | 77 ++++++++++++++++++++++++++- 3 files changed, 88 insertions(+), 8 deletions(-) diffs (183 lines): diff -r 9622545698bb -r 0ba6349ef301 AUTHORS --- a/AUTHORS Fri Jul 15 10:45:01 2011 +0200 +++ b/AUTHORS Fri Jul 22 16:25:36 2011 +0200 @@ -1,6 +1,6 @@ The following people contributed code and patches to Rhino Tests project: -Pavel Tisnovsky (ptisnovs at redhat.com) +Pavel Tisnovsky The following people provided feedback and bug reports: diff -r 9622545698bb -r 0ba6349ef301 ChangeLog --- a/ChangeLog Fri Jul 15 10:45:01 2011 +0200 +++ b/ChangeLog Fri Jul 22 16:25:36 2011 +0200 @@ -1,3 +1,15 @@ +2011-07-22 Pavel Tisnovsky + + * ChangeLog: fixed order of changelog entries + * AUTHORS: fixed mail addresses + * src/org/RhinoTests/TestClasses/TestClass.java: + Added licence and JavaDoc. + +2011-07-15 Pavel Tisnovsky + + * README: added basic info about this application + * Makefile: created + 2011-07-14 Pavel Tisnovsky * AUTHORS: created @@ -6,8 +18,3 @@ * README: created * ChangeLog: created -2011-07-15 Pavel Tisnovsky - - * README: added basic info about this application - * Makefile: created - diff -r 9622545698bb -r 0ba6349ef301 src/org/RhinoTests/TestClasses/TestClass.java --- a/src/org/RhinoTests/TestClasses/TestClass.java Fri Jul 15 10:45:01 2011 +0200 +++ b/src/org/RhinoTests/TestClasses/TestClass.java Fri Jul 22 16:25:36 2011 +0200 @@ -1,3 +1,43 @@ +/* + Rhino test framework + + Copyright (C) 2011 Red Hat + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +IcedTea is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + package org.RhinoTests.TestClasses; import java.awt.Color; @@ -6,57 +46,89 @@ /** - * Test class used by various Rhino tests. - * TODO: javadoc + * Test class used (called) by various Rhino tests. */ public class TestClass { + /** + * Private value which can accessed throught getter and setter. + */ private String value; + /** + * Set the new value of object attribute. + */ public void setValue(String value) { System.out.println("\tTestClass setter called"); this.value = value; } + /** + * Get current value of object attribute. + */ public String getValue() { System.out.println("\tTestClass getter called"); return this.value; } + /** + * Public method which is overloaded (to test Rhino reflection properties) + */ public String overloaded(Object o) { System.out.println("\toverloaded(object) called with parameter "+ o); return "Object"; } + /** + * Public method which is overloaded (to test Rhino reflection properties) + */ public String overloaded(String o) { System.out.println("\toverloaded(string) called with parameter " + o); return "String"; } + /** + * Public method which is overloaded (to test Rhino reflection properties) + */ public String overloaded(int o) { System.out.println("\toverloaded(int) called with parameter " + o); return "Integer"; } + /** + * Public method which is overloaded (to test Rhino reflection properties) + */ public String overloaded(double o) { System.out.println("\toverloaded(double) called with parameter " + o); return "Double"; } + /** + * Public method which is overloaded (to test Rhino reflection properties) + */ public String overloaded(Date o) { System.out.println("\toverloaded(Date) called with parameter " + o); return "Date"; } + /** + * Public method which is overloaded (to test Rhino reflection properties) + */ public String overloaded(Color o) { System.out.println("\toverloaded(Color) called with parameter " + o); return "Color"; } + /** + * Public method which is overloaded (to test Rhino reflection properties) + */ public String overloaded(boolean o) { System.out.println("\toverloaded(boolean) called with parameter " + o); return "boolean"; } + /** + * Public method which is overloaded (to test Rhino reflection properties) + */ public String overloaded(Boolean o) { System.out.println("\toverloaded(boolean) called with parameter " + o); return "Boolean"; @@ -67,3 +139,4 @@ return "This is TestClass"; } } + From bugzilla-daemon at icedtea.classpath.org Fri Jul 22 10:11:05 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 22 Jul 2011 17:11:05 +0000 Subject: [Bug 763] New: Oanda 's online trading app doesn't run on linux Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=763 Summary: Oanda 's online trading app doesn't run on linux Product: IcedTea-Web Version: 1.0.3 Platform: all OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: General AssignedTo: unassigned at icedtea.classpath.org ReportedBy: andrei.ilie at ymail.com CC: unassigned at icedtea.classpath.org Hello, I use an online trading app that works just fine on WinXP + official Java. The problem is that on my linux system all the fun stops (the app doesn't load), but the java test works (http://www.java.com/en/download/testjava.jsp). My system: Fedora 15 (kernel 2.6.38.8-35.fc15.x86_64) icedtea-web (version 1.0.3-1.fc15) firefox (version 5.0-2.fc15) PS: the problematic app is located at https://fxtrade.oanda.com/fxgui/platform/fxgame/trading_platform/ -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. You are the assignee for the bug. From dbhole at redhat.com Fri Jul 22 10:30:24 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Fri, 22 Jul 2011 13:30:24 -0400 Subject: [RFC] One line fix for PR763 Message-ID: <20110722173024.GF2941@redhat.com> Hi, Attached is a simple fix for PR763. Okay for HEAD and 1.0/1.1? ChangeLog: 2011-07-22 Deepak Bhole PR763: Oanda 's online trading app doesn't run on linux * netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java (checkExit): Print exit-access-denied message to stderr rather than throwing an exception. Cheers, Deepak -------------- next part -------------- diff -r 6bfd819570c1 NEWS --- a/NEWS Thu Jul 21 15:11:38 2011 -0400 +++ b/NEWS Fri Jul 22 13:27:52 2011 -0400 @@ -14,6 +14,7 @@ - RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation * Plugin - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow + - PR763: Oanda's online trading app doesn't run on linux New in release 1.1 (2011-XX-XX): * Security updates diff -r 6bfd819570c1 netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java Thu Jul 21 15:11:38 2011 -0400 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java Fri Jul 22 13:27:52 2011 -0400 @@ -449,8 +449,10 @@ Class stack[] = getClassContext(); if (!exitAllowed) { for (int i = 0; i < stack.length; i++) - if (stack[i].getClassLoader() != null) - throw new AccessControlException("Applets may not call System.exit()"); + if (stack[i].getClassLoader() != null) { + System.err.println("Applets may not call System.exit()"); + return; + } } super.checkExit(status); From bugzilla-daemon at icedtea.classpath.org Fri Jul 22 10:34:08 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 22 Jul 2011 17:34:08 +0000 Subject: [Bug 763] Oanda 's online trading app doesn't run on linux In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=763 Deepak Bhole changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dbhole at redhat.com --- Comment #1 from Deepak Bhole 2011-07-22 17:34:08 --- I've posted a fix for this and will commit it as soon as it is approved. In the mean time, feel free to try out the patch locally: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2011-July/015224.html -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Fri Jul 22 10:36:18 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 22 Jul 2011 17:36:18 +0000 Subject: [Bug 763] Oanda 's online trading app doesn't run on linux In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=763 Deepak Bhole changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at icedtea.classpath|dbhole at redhat.com |.org | Component|General |Plugin -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Fri Jul 22 10:40:22 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 22 Jul 2011 17:40:22 +0000 Subject: [Bug 763] Oanda 's online trading app doesn't run on linux In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=763 --- Comment #2 from Andrei ILIE 2011-07-22 17:40:21 --- (In reply to comment #1) > I've posted a fix for this and will commit it as soon as it is approved. In the > mean time, feel free to try out the patch locally: > > http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2011-July/015224.html > Wow, that was quick, thx very much ! I haven't tried your patch yet and I think I'll wait for Fedora to release a updated icedtea-web RPM package. thx again -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From jvanek at redhat.com Mon Jul 25 02:30:41 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 25 Jul 2011 11:30:41 +0200 Subject: Reviewer needed: backport of "S5047314: [Col] Collator.compare() runs indefinitely for a certain set of Thai strings" into IcedTea6 HEAD In-Reply-To: <4E297A40.6030604@redhat.com> References: <4E297A40.6030604@redhat.com> Message-ID: <4E2D37C1.7040604@redhat.com> On 07/22/2011 03:25 PM, Pavel Tisnovsky wrote: > Greetings, > > is it possible to push the backport of fix "S5047314: [Col] > Collator.compare() runs indefinitely for a certain set of Thai strings" > into IcedTea6 HEAD please? > > The behaviour of this fix was checked on RHELs. > > Here's ChangeLog entry: > > > 2011-07-22 Pavel Tisnovsky > > * Makefile.am: added new patch > * NEWS: updated with backport > * patches/openjdk/5047314-Collator_compare_runs_indefinitely.patch: > Backport of 5047314. > > > > Can anybody please review this change? > > Thank you in advance, > Pavel > approved From ptisnovs at icedtea.classpath.org Mon Jul 25 04:41:57 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 25 Jul 2011 11:41:57 +0000 Subject: /hg/icedtea6: S5047314: [Col] Collator.compare() runs indefinite... Message-ID: changeset 8fa33e715417 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=8fa33e715417 author: ptisnovs date: Mon Jul 25 13:41:45 2011 +0200 S5047314: [Col] Collator.compare() runs indefinitely for a certain set of Thai strings diffstat: 5047314_hg.diff | 54 ++++ ChangeLog | 7 + Makefile.am | 3 +- NEWS | 1 + patches/openjdk/5047314-Collator_compare_runs_indefinitely.patch | 115 ++++++++++ 5 files changed, 179 insertions(+), 1 deletions(-) diffs (308 lines): diff -r 3c107fae0e9d -r 8fa33e715417 5047314_hg.diff --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/5047314_hg.diff Mon Jul 25 13:41:45 2011 +0200 @@ -0,0 +1,145 @@ +diff -r 3c107fae0e9d Makefile.am +--- a/Makefile.am Fri Jul 22 10:26:38 2011 +0200 ++++ b/Makefile.am Fri Jul 22 15:15:10 2011 +0200 +@@ -368,7 +368,8 @@ + patches/jtreg-hotspot-Test7020373-fix.patch \ + patches/openjdk/4917091-javac_rejects_array_over_128_in_length.patch \ + patches/openjdk/6390045-error_cannot_access_java_lang_void.patch \ +- patches/openjdk/6752638-preferLocaleFonts_throws_NPE.patch ++ patches/openjdk/6752638-preferLocaleFonts_throws_NPE.patch \ ++ patches/openjdk/5047314-Collator_compare_runs_indefinitely.patch + + if WITH_RHINO + ICEDTEA_PATCHES += \ +diff -r 3c107fae0e9d NEWS +--- a/NEWS Fri Jul 22 10:26:38 2011 +0200 ++++ b/NEWS Fri Jul 22 15:15:10 2011 +0200 +@@ -325,6 +325,7 @@ + - S6999460: Glassfish build with JDK 6 / 7 is 5x-10x slower on Windows than on Linux + - S6999891: DefaultFileManager incorrect + - S7033660: Update copyright year to 2011 on any files changed in 2011 ++ - S5047314: [Col] Collator.compare() runs indefinitely for a certain set of Thai strings + * Backports + - S7019861: Last scanline skpped when doing AA. + - S6748082: remove platform-specific code from SwingUtilities2.isDisplayLocal +diff -r 3c107fae0e9d patches/openjdk/5047314-Collator_compare_runs_indefinitely.patch +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/patches/openjdk/5047314-Collator_compare_runs_indefinitely.patch Fri Jul 22 15:15:10 2011 +0200 +@@ -0,0 +1,117 @@ ++# HG changeset patch ++# User peytoia ++# Date 1260856201 -32400 ++# Node ID de7807599a9b1aabb574bc2ccf0d84b166103aef ++# Parent f012e2c094ffa7b58f66c7e56320580a83f7bf80 ++5047314: [Col] Collator.compare() runs indefinitely for a certain set of Thai strings ++Reviewed-by: okutsu ++ ++diff -r f012e2c094ff -r de7807599a9b src/share/classes/java/text/CollationElementIterator.java ++--- openjdk.orig/jdk/src/share/classes/java/text/CollationElementIterator.java Thu Dec 10 12:08:58 2009 +0300 +++++ openjdk/jdk/src/share/classes/java/text/CollationElementIterator.java Tue Dec 15 14:50:01 2009 +0900 ++@@ -232,7 +232,7 @@ ++ buffer = makeReorderedBuffer(consonant, value, buffer, true); ++ value = buffer[0]; ++ expIndex = 1; ++- } else { +++ } else if (consonant != NormalizerBase.DONE) { ++ text.previous(); ++ } ++ } ++@@ -242,7 +242,7 @@ ++ buffer = makeReorderedBuffer(consonant, value, buffer, true); ++ value = buffer[0]; ++ expIndex = 1; ++- } else { +++ } else if (consonant != NormalizerBase.DONE) { ++ text.previous(); ++ } ++ } ++diff -r f012e2c094ff -r de7807599a9b test/java/text/Collator/Bug5047314.java ++--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++++ openjdk/jdk/test/java/text/Collator/Bug5047314.java Tue Dec 15 14:50:01 2009 +0900 ++@@ -0,0 +1,84 @@ +++/* +++ * Copyright (c) 2009 Sun Microsystems, Inc. All Rights Reserved. +++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +++ * +++ * This code is free software; you can redistribute it and/or modify it +++ * under the terms of the GNU General Public License version 2 only, as +++ * published by the Free Software Foundation. +++ * +++ * This code is distributed in the hope that it will be useful, but WITHOUT +++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +++ * version 2 for more details (a copy is included in the LICENSE file that +++ * accompanied this code). +++ * +++ * You should have received a copy of the GNU General Public License version +++ * 2 along with this work; if not, write to the Free Software Foundation, +++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +++ * +++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, +++ * CA 95054 USA or visit www.sun.com if you need additional information or +++ * have any questions. +++ */ +++ +++/* +++ * @test +++ * @bug 5047314 +++ * @summary verify that compare() and getCollationKey() don't go into an infinite loop for unfinished Thai/Lao text. +++ * @run main/timeout=60 Bug5047314 +++ */ +++import java.text.Collator; +++import java.util.Locale; +++ +++public class Bug5047314 { +++ +++ private static Collator colLao = Collator.getInstance(new Locale("lo")); +++ private static Collator colThai = Collator.getInstance(new Locale("th")); +++ +++ private static String[] textLao = { +++ "\u0ec0", "\u0ec1", "\u0ec2", "\u0ec3", "\u0ec4" +++ }; +++ private static String[] textThai = { +++ "\u0e40", "\u0e41", "\u0e42", "\u0e43", "\u0e44" +++ }; +++ +++ public static void main(String[] args) { +++ testLao1(); +++ testLao2(); +++ testThai1(); +++ testThai2(); +++ } +++ +++ private static void testLao1() { +++ System.out.print("Test(Lao 1) .... "); +++ for (int i = 0; i < textLao.length; i++) { +++ colLao.compare(textLao[i], textLao[i]); +++ } +++ System.out.println("Passed."); +++ } +++ +++ private static void testLao2() { +++ System.out.print("Test(Lao 2) .... "); +++ for (int i = 0; i < textLao.length; i++) { +++ colLao.compare(textLao[i], textLao[i]); +++ } +++ System.out.println("Passed."); +++ } +++ +++ private static void testThai1() { +++ System.out.print("Test(Thai 1) .... "); +++ for (int i = 0; i < textThai.length; i++) { +++ colThai.compare(textThai[i], textThai[i]); +++ } +++ System.out.println("Passed."); +++ } +++ +++ private static void testThai2() { +++ System.out.print("Test(Thai 2) .... "); +++ for (int i = 0; i < textThai.length; i++) { +++ colThai.getCollationKey(textThai[i]); +++ } +++ System.out.println("Passed."); +++ } +++ +++} diff -r 3c107fae0e9d -r 8fa33e715417 ChangeLog --- a/ChangeLog Fri Jul 22 10:26:38 2011 +0200 +++ b/ChangeLog Mon Jul 25 13:41:45 2011 +0200 @@ -1,3 +1,10 @@ +2011-07-25 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/5047314-Collator_compare_runs_indefinitely.patch: + Backport of 5047314. + 2011-07-22 Pavel Tisnovsky * Makefile.am: added new patch diff -r 3c107fae0e9d -r 8fa33e715417 Makefile.am --- a/Makefile.am Fri Jul 22 10:26:38 2011 +0200 +++ b/Makefile.am Mon Jul 25 13:41:45 2011 +0200 @@ -368,7 +368,8 @@ patches/jtreg-hotspot-Test7020373-fix.patch \ patches/openjdk/4917091-javac_rejects_array_over_128_in_length.patch \ patches/openjdk/6390045-error_cannot_access_java_lang_void.patch \ - patches/openjdk/6752638-preferLocaleFonts_throws_NPE.patch + patches/openjdk/6752638-preferLocaleFonts_throws_NPE.patch \ + patches/openjdk/5047314-Collator_compare_runs_indefinitely.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r 3c107fae0e9d -r 8fa33e715417 NEWS --- a/NEWS Fri Jul 22 10:26:38 2011 +0200 +++ b/NEWS Mon Jul 25 13:41:45 2011 +0200 @@ -361,6 +361,7 @@ - S4917091: javac rejects array over 128 in length - S6390045: Unexpected error "cannot access java.lang.Void" with '-target cldc1.0' with -source >=1.5 - S6752638: java.awt.GraphicsEnvironment.preferLocaleFonts() throws NPE on Linux + - S5047314: [Col] Collator.compare() runs indefinitely for a certain set of Thai strings * Allow selection of test suites using the jtreg_checks argument e.g. jtreg_checks="langtools" * CACAO - Threadlist & threadobject improvements. diff -r 3c107fae0e9d -r 8fa33e715417 patches/openjdk/5047314-Collator_compare_runs_indefinitely.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/5047314-Collator_compare_runs_indefinitely.patch Mon Jul 25 13:41:45 2011 +0200 @@ -0,0 +1,117 @@ +# HG changeset patch +# User peytoia +# Date 1260856201 -32400 +# Node ID de7807599a9b1aabb574bc2ccf0d84b166103aef +# Parent f012e2c094ffa7b58f66c7e56320580a83f7bf80 +5047314: [Col] Collator.compare() runs indefinitely for a certain set of Thai strings +Reviewed-by: okutsu + +diff -r f012e2c094ff -r de7807599a9b src/share/classes/java/text/CollationElementIterator.java +--- openjdk.orig/jdk/src/share/classes/java/text/CollationElementIterator.java Thu Dec 10 12:08:58 2009 +0300 ++++ openjdk/jdk/src/share/classes/java/text/CollationElementIterator.java Tue Dec 15 14:50:01 2009 +0900 +@@ -232,7 +232,7 @@ + buffer = makeReorderedBuffer(consonant, value, buffer, true); + value = buffer[0]; + expIndex = 1; +- } else { ++ } else if (consonant != NormalizerBase.DONE) { + text.previous(); + } + } +@@ -242,7 +242,7 @@ + buffer = makeReorderedBuffer(consonant, value, buffer, true); + value = buffer[0]; + expIndex = 1; +- } else { ++ } else if (consonant != NormalizerBase.DONE) { + text.previous(); + } + } +diff -r f012e2c094ff -r de7807599a9b test/java/text/Collator/Bug5047314.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/java/text/Collator/Bug5047314.java Tue Dec 15 14:50:01 2009 +0900 +@@ -0,0 +1,84 @@ ++/* ++ * Copyright (c) 2009 Sun Microsystems, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++/* ++ * @test ++ * @bug 5047314 ++ * @summary verify that compare() and getCollationKey() don't go into an infinite loop for unfinished Thai/Lao text. ++ * @run main/timeout=60 Bug5047314 ++ */ ++import java.text.Collator; ++import java.util.Locale; ++ ++public class Bug5047314 { ++ ++ private static Collator colLao = Collator.getInstance(new Locale("lo")); ++ private static Collator colThai = Collator.getInstance(new Locale("th")); ++ ++ private static String[] textLao = { ++ "\u0ec0", "\u0ec1", "\u0ec2", "\u0ec3", "\u0ec4" ++ }; ++ private static String[] textThai = { ++ "\u0e40", "\u0e41", "\u0e42", "\u0e43", "\u0e44" ++ }; ++ ++ public static void main(String[] args) { ++ testLao1(); ++ testLao2(); ++ testThai1(); ++ testThai2(); ++ } ++ ++ private static void testLao1() { ++ System.out.print("Test(Lao 1) .... "); ++ for (int i = 0; i < textLao.length; i++) { ++ colLao.compare(textLao[i], textLao[i]); ++ } ++ System.out.println("Passed."); ++ } ++ ++ private static void testLao2() { ++ System.out.print("Test(Lao 2) .... "); ++ for (int i = 0; i < textLao.length; i++) { ++ colLao.compare(textLao[i], textLao[i]); ++ } ++ System.out.println("Passed."); ++ } ++ ++ private static void testThai1() { ++ System.out.print("Test(Thai 1) .... "); ++ for (int i = 0; i < textThai.length; i++) { ++ colThai.compare(textThai[i], textThai[i]); ++ } ++ System.out.println("Passed."); ++ } ++ ++ private static void testThai2() { ++ System.out.print("Test(Thai 2) .... "); ++ for (int i = 0; i < textThai.length; i++) { ++ colThai.getCollationKey(textThai[i]); ++ } ++ System.out.println("Passed."); ++ } ++ ++} From ptisnovs at icedtea.classpath.org Mon Jul 25 04:45:02 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 25 Jul 2011 11:45:02 +0000 Subject: /hg/icedtea6: Fixed typo in NEWS, removed unnecessary patch file. Message-ID: changeset a6ba1170da98 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=a6ba1170da98 author: ptisnovs date: Mon Jul 25 13:44:57 2011 +0200 Fixed typo in NEWS, removed unnecessary patch file. diffstat: 5047314_hg.diff | 142 -------------------------------------------------------- NEWS | 2 +- 2 files changed, 1 insertions(+), 143 deletions(-) diffs (161 lines): diff -r 8fa33e715417 -r a6ba1170da98 5047314_hg.diff --- a/5047314_hg.diff Mon Jul 25 13:41:45 2011 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,145 +0,0 @@ -diff -r 3c107fae0e9d Makefile.am ---- a/Makefile.am Fri Jul 22 10:26:38 2011 +0200 -+++ b/Makefile.am Fri Jul 22 15:15:10 2011 +0200 -@@ -368,7 +368,8 @@ - patches/jtreg-hotspot-Test7020373-fix.patch \ - patches/openjdk/4917091-javac_rejects_array_over_128_in_length.patch \ - patches/openjdk/6390045-error_cannot_access_java_lang_void.patch \ -- patches/openjdk/6752638-preferLocaleFonts_throws_NPE.patch -+ patches/openjdk/6752638-preferLocaleFonts_throws_NPE.patch \ -+ patches/openjdk/5047314-Collator_compare_runs_indefinitely.patch - - if WITH_RHINO - ICEDTEA_PATCHES += \ -diff -r 3c107fae0e9d NEWS ---- a/NEWS Fri Jul 22 10:26:38 2011 +0200 -+++ b/NEWS Fri Jul 22 15:15:10 2011 +0200 -@@ -325,6 +325,7 @@ - - S6999460: Glassfish build with JDK 6 / 7 is 5x-10x slower on Windows than on Linux - - S6999891: DefaultFileManager incorrect - - S7033660: Update copyright year to 2011 on any files changed in 2011 -+ - S5047314: [Col] Collator.compare() runs indefinitely for a certain set of Thai strings - * Backports - - S7019861: Last scanline skpped when doing AA. - - S6748082: remove platform-specific code from SwingUtilities2.isDisplayLocal -diff -r 3c107fae0e9d patches/openjdk/5047314-Collator_compare_runs_indefinitely.patch ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/patches/openjdk/5047314-Collator_compare_runs_indefinitely.patch Fri Jul 22 15:15:10 2011 +0200 -@@ -0,0 +1,117 @@ -+# HG changeset patch -+# User peytoia -+# Date 1260856201 -32400 -+# Node ID de7807599a9b1aabb574bc2ccf0d84b166103aef -+# Parent f012e2c094ffa7b58f66c7e56320580a83f7bf80 -+5047314: [Col] Collator.compare() runs indefinitely for a certain set of Thai strings -+Reviewed-by: okutsu -+ -+diff -r f012e2c094ff -r de7807599a9b src/share/classes/java/text/CollationElementIterator.java -+--- openjdk.orig/jdk/src/share/classes/java/text/CollationElementIterator.java Thu Dec 10 12:08:58 2009 +0300 -++++ openjdk/jdk/src/share/classes/java/text/CollationElementIterator.java Tue Dec 15 14:50:01 2009 +0900 -+@@ -232,7 +232,7 @@ -+ buffer = makeReorderedBuffer(consonant, value, buffer, true); -+ value = buffer[0]; -+ expIndex = 1; -+- } else { -++ } else if (consonant != NormalizerBase.DONE) { -+ text.previous(); -+ } -+ } -+@@ -242,7 +242,7 @@ -+ buffer = makeReorderedBuffer(consonant, value, buffer, true); -+ value = buffer[0]; -+ expIndex = 1; -+- } else { -++ } else if (consonant != NormalizerBase.DONE) { -+ text.previous(); -+ } -+ } -+diff -r f012e2c094ff -r de7807599a9b test/java/text/Collator/Bug5047314.java -+--- /dev/null Thu Jan 01 00:00:00 1970 +0000 -++++ openjdk/jdk/test/java/text/Collator/Bug5047314.java Tue Dec 15 14:50:01 2009 +0900 -+@@ -0,0 +1,84 @@ -++/* -++ * Copyright (c) 2009 Sun Microsystems, Inc. All Rights Reserved. -++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -++ * -++ * This code is free software; you can redistribute it and/or modify it -++ * under the terms of the GNU General Public License version 2 only, as -++ * published by the Free Software Foundation. -++ * -++ * This code is distributed in the hope that it will be useful, but WITHOUT -++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -++ * version 2 for more details (a copy is included in the LICENSE file that -++ * accompanied this code). -++ * -++ * You should have received a copy of the GNU General Public License version -++ * 2 along with this work; if not, write to the Free Software Foundation, -++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -++ * -++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -++ * CA 95054 USA or visit www.sun.com if you need additional information or -++ * have any questions. -++ */ -++ -++/* -++ * @test -++ * @bug 5047314 -++ * @summary verify that compare() and getCollationKey() don't go into an infinite loop for unfinished Thai/Lao text. -++ * @run main/timeout=60 Bug5047314 -++ */ -++import java.text.Collator; -++import java.util.Locale; -++ -++public class Bug5047314 { -++ -++ private static Collator colLao = Collator.getInstance(new Locale("lo")); -++ private static Collator colThai = Collator.getInstance(new Locale("th")); -++ -++ private static String[] textLao = { -++ "\u0ec0", "\u0ec1", "\u0ec2", "\u0ec3", "\u0ec4" -++ }; -++ private static String[] textThai = { -++ "\u0e40", "\u0e41", "\u0e42", "\u0e43", "\u0e44" -++ }; -++ -++ public static void main(String[] args) { -++ testLao1(); -++ testLao2(); -++ testThai1(); -++ testThai2(); -++ } -++ -++ private static void testLao1() { -++ System.out.print("Test(Lao 1) .... "); -++ for (int i = 0; i < textLao.length; i++) { -++ colLao.compare(textLao[i], textLao[i]); -++ } -++ System.out.println("Passed."); -++ } -++ -++ private static void testLao2() { -++ System.out.print("Test(Lao 2) .... "); -++ for (int i = 0; i < textLao.length; i++) { -++ colLao.compare(textLao[i], textLao[i]); -++ } -++ System.out.println("Passed."); -++ } -++ -++ private static void testThai1() { -++ System.out.print("Test(Thai 1) .... "); -++ for (int i = 0; i < textThai.length; i++) { -++ colThai.compare(textThai[i], textThai[i]); -++ } -++ System.out.println("Passed."); -++ } -++ -++ private static void testThai2() { -++ System.out.print("Test(Thai 2) .... "); -++ for (int i = 0; i < textThai.length; i++) { -++ colThai.getCollationKey(textThai[i]); -++ } -++ System.out.println("Passed."); -++ } -++ -++} diff -r 8fa33e715417 -r a6ba1170da98 NEWS --- a/NEWS Mon Jul 25 13:41:45 2011 +0200 +++ b/NEWS Mon Jul 25 13:44:57 2011 +0200 @@ -326,7 +326,7 @@ - S6999891: DefaultFileManager incorrect - S7033660: Update copyright year to 2011 on any files changed in 2011 * Backports - - S7019861: Last scanline skpped when doing AA. + - S7019861: Last scanline skipped when doing AA. - S6748082: remove platform-specific code from SwingUtilities2.isDisplayLocal - S6708580: Java applications slow when EXA enabled - S6986968: Crash on XIM server restart From ptisnovs at redhat.com Mon Jul 25 05:25:54 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Mon, 25 Jul 2011 14:25:54 +0200 Subject: Reviewer needed: backport of "6970930: RuleBasedCollator.compare(String, null) throws IAE (should be NPE)" into IcedTea6 HEAD Message-ID: <4E2D60D2.4010608@redhat.com> Greetings, is it possible to push the backport of fix "6970930: RuleBasedCollator.compare(String,null) throws IAE (should be NPE)" into IcedTea6 HEAD please? The behaviour of this fix was checked on RHELs. Here's ChangeLog entry: 2011-07-25 Pavel Tisnovsky * Makefile.am: added new patch * NEWS: updated with backport * patches/openjdk/6970930-RuleBasedCollator_compare_throws_IAE.patch: Backport of 6970930.patch. Can anybody please review this change? Thank you in advance, Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 6970930_hg.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110725/8a9429be/6970930_hg.diff From ahughes at redhat.com Mon Jul 25 06:51:55 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Mon, 25 Jul 2011 14:51:55 +0100 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E28319F.6030508@redhat.com> References: <4E204CD8.306@redhat.com> <4E23FACA.3070305@redhat.com> <4E24998A.9050507@redhat.com> <4E252893.8050809@redhat.com> <4E259ABE.2070606@redhat.com> <20110720202650.GP17111@redhat.com> <20110720212440.GN32327@rivendell.middle-earth.co.uk> <4E27D35E.1000105@redhat.com> <20110721133105.GT32327@rivendell.middle-earth.co.uk> <4E28319F.6030508@redhat.com> Message-ID: <20110725135155.GA17692@rivendell.middle-earth.co.uk> On 10:03 Thu 21 Jul , Omair Majid wrote: > On 07/21/2011 09:31 AM, Dr Andrew John Hughes wrote: > > On 09:21 Thu 21 Jul , Jiri Vanek wrote: > >>> > >>> Can xml not return the number of element names beforehand? > >> Bad luck. No:( > >>> > >>> I'm not familiar with this XML API. Where is it from? Doesn't look like JAXP. > >> This is tiny html parser coded directly inside icedtea-web.... not sure if it is right choice ... but is is here very long tim and a several things depnde on him. It was chosen because he is much m,ore tolerant then xml parsers. > >> Weather it is benefit is question,, but it was decided long ago and is working fine. > >> > > > > IcedTea-Web (or Netx, if you will, since this part of code has not been > significantly modified) uses a (quite old) embedded copy of the NanoXML > parser [1]. It had a number of problems (it could not even deal with > comments when we first added netx to icedtea), but I think we have > reached a point where it works fine for most users. > > > There was a plan to replace that. Omair? > > > > There still is. > > First, let me clarify something about jnlp files. They may look like > (and they are defined to be, as far as I know) XML files. But thanks to > the fact that there is just one reference implementation and it does not > rely on a validating XML parser (as far as I can tell), the JNLP files > are often not valid XML files. This causes a huge risk of regressions if > we replace a 'XML' parser with another one. > > That said, I did spend some time looking into replacing NanoXML with a > JAXP-based SAX parser (actually, most of the code was in Netx but was > just commented out). The unit tests pointed out a few regression, so I > did not commit it. As much as I would love to remove the embedded > NanoXML code, I am concerned about breaking applications. > > Going forward, the plan is to switch to a parser designed for parsing > malformed xml files. I have tested tagsoup and it looks somewhat > promising [2]. But I am not very eager to do that in a minor release as > the risk of regressions is still significant. It is currently scheduled > for the 2.0 release [3], where I expect a few other major changes too. > I remember us discussing all this at the end of last year. Are we not working on 2.0 yet? Not sure what the current state of things is. > Cheers, > Omair > > > [1] http://sourceforge.net/projects/nanoxml/ > [2] > http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2011-January/011681.html > [3] http://icedtea.classpath.org/wiki/IcedTea-Web#IcedTea-Web_2.0 -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Mon Jul 25 06:54:00 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Mon, 25 Jul 2011 14:54:00 +0100 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E27D21A.1070102@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E23FACA.3070305@redhat.com> <4E24998A.9050507@redhat.com> <4E252893.8050809@redhat.com> <4E259ABE.2070606@redhat.com> <20110720202650.GP17111@redhat.com> <4E27D21A.1070102@redhat.com> Message-ID: <20110725135400.GB17692@rivendell.middle-earth.co.uk> On 09:15 Thu 21 Jul , Jiri Vanek wrote: > On 07/20/2011 10:26 PM, Deepak Bhole wrote: > > * Saad Mohammad [2011-07-19 11:04]: > >> > I have attached the updated copy of Patch1. > >> > > >> > On 07/19/2011 02:47 AM, Jiri Vanek wrote: > >>>> > >> > >>>> > >>I hope this is the 110% for Patch1! ;) > >>> > >99% ;) > >> > > >> > This is for sure the 110% ;) > >> > > >> > -- > >> > Cheers, > >> > Saad Mohammad > >> > > > Hi Saad, > > > > I have a few minor corrections for this one... > > > >> > + > >> > + if (appTemplate == null&& launchJNLP == null) > >> > + throw new NullPointerException( > >> > + "Template JNLP file and Launching JNLP file are both null."); > >> > + else if (appTemplate == null) > >> > + throw new NullPointerException("Template JNLP file is null."); > >> > + else if (launchJNLP == null) > >> > + throw new NullPointerException("Launching JNLP file is null."); > >> > + > > Throwing RuntimeExceptions is generally not a good idea. Consider making > > the above a checked exception. > > I believe nullpointer exception is correct here. Or it will make mess later. > Although to repalce it with JNLMatch exception can do no harm. > I don't see the point of throwing an NPE, catching it and throwing it attached to something else. > > > >> > + XMLElement appTemplateXML = new XMLElement(); > >> > + XMLElement launchJNLPXML = new XMLElement(); > >> > + > >> > + // Remove the comments and CDATA from the JNLP file > >> > + final PipedInputStream pinTemplate = new PipedInputStream(); > >> > + final PipedOutputStream poutTemplate = new PipedOutputStream(pinTemplate); > >> > + appTemplateXML.sanitizeInput(appTemplate, poutTemplate); > >> > + > >> > + final PipedInputStream pinJNLPFile = new PipedInputStream(); > >> > + final PipedOutputStream poutJNLPFile = new PipedOutputStream(pinJNLPFile); > >> > + launchJNLPXML.sanitizeInput(launchJNLP, poutJNLPFile); > >> > + > > The above streams are never closed. > > I' guess, ... > > ...see previous email.. > > ...l) s.close(); > } > > > around s.close() yo can possibly clsoe io exception into JNLPMatcherException. > You need a finally block. > > > Regards J. > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Mon Jul 25 06:56:50 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Mon, 25 Jul 2011 14:56:50 +0100 Subject: [RFC] - extended creation of simple reproducers jars In-Reply-To: <4E26655E.1000602@redhat.com> References: <4E1C03A0.1010705@redhat.com> <4E258367.8080507@redhat.com> <4E25BCDC.4040804@redhat.com> <4E26655E.1000602@redhat.com> Message-ID: <20110725135650.GC17692@rivendell.middle-earth.co.uk> On 07:19 Wed 20 Jul , Jiri Vanek wrote: > snip... > > I think that I'm following the rest of icedtea-web styl. I'm creating file with list of reproduces in one step, and then compiling and jarring them in second. Please note, that there is much more reproducers then files in each of one of them. IcedTea-Web uses multiple rules. This is all in one rule. > > > > diff -r 4267bb156f08 Makefile.am > > --- a/Makefile.am Tue Jul 19 12:14:35 2011 -0400 > > +++ b/Makefile.am Tue Jul 19 19:16:19 2011 +0200 > > @@ -465,11 +465,18 @@ > > stamps/netx-dist-tests-prepare-reproducers.stamp: junit-jnlp-dist-dirs.txt > > simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-dirs.txt `); \ > ^^ list gathered in previous step > > for dir in "$${simpleReproducers[@]}" ; do \ > traversing through this list > > + echo "processing: $$dir" ; \ > > mkdir -p $(JNLP_TESTS_DIR)/$$dir ; \ > > - $(BOOT_DIR)/bin/javac -d $(JNLP_TESTS_DIR)/$$dir/ $(JNLP_TESTS_SRCDIR)/simple/$$dir/srcs/* ; \ > > d=`pwd` ; \ > > + cd $(JNLP_TESTS_SRCDIR)/simple/$$dir/srcs/ ; \ > > + srcFiles=`find . -mindepth 1 -type f -name "*.java" | sed "s/.\/*//"` ; \ > finding java files of this reproducer > > + notSrcFiles=`find . -mindepth 1 -type f \! -name "*.java" | sed "s/.\/*//"` ; \ > finding non-java files of this reproducer > > + $(BOOT_DIR)/bin/javac -d $(JNLP_TESTS_DIR)/$$dir/ $$srcFiles ; \ > all java files of this reproducer compiled > > + if [ -n "$$notSrcFiles" ] ; then \ > > + cp -R --parents $$notSrcFiles $(JNLP_TESTS_DIR)/$$dir/ ; \ > all non src files of reproducer copied. > > + fi ; \ > > cd $(JNLP_TESTS_DIR)/$$dir/ ; \ > > - $(BOOT_DIR)/bin/jar cf $(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar * ; \ > > + $(BOOT_DIR)/bin/jar cf $(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar * ; \ > final jar constructed from classes and copied files. > > cd $$d ; \ > > cp -R $(JNLP_TESTS_SRCDIR)/simple/$$dir/resources/* $(JNLP_TESTS_SERVER_DEPLOYDIR)/ ; \ > > done ; \ > > diff -r 4267bb156f08 tests/jnlp_tests/README > > --- a/tests/jnlp_tests/README Tue Jul 19 12:14:35 2011 -0400 > > +++ b/tests/jnlp_tests/README Tue Jul 19 19:16:19 2011 +0200 > > @@ -1,1 +1,2 @@ > > -Each file in directory simple must follows naming convention and is compiled/jared automatically into server's working directory and content of resources likewise. The name of jnlp is independent, and there can be even more jnlps for each future jar. Files in advanced directory have to care about themselves, but even those can have some parts inside simple directory, so some parts of them are processed automatically. There are three reproducers ? simpletest1, simpletest2 and deadlocktest, which tests test?s suite itself and serve as examples of behaviour. > > +Each file in directory simple must follows naming convention and is compiled/jared automatically into server's working directory and content of resources likewise. The name of jnlp is independent, and there can be even more jnlps for each future jar. Directories should be honored in srcs and in resources, but noty in testcases. > > +Files in advanced directory have to care about themselves, but even those can have some parts inside simple directory, so some parts of them are processed automatically. There are three reproducers ? simpletest1, simpletest2 and deadlocktest, which tests test?s suite itself and serve as examples of behaviour. > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From omajid at redhat.com Mon Jul 25 07:45:29 2011 From: omajid at redhat.com (Omair Majid) Date: Mon, 25 Jul 2011 10:45:29 -0400 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <20110725135155.GA17692@rivendell.middle-earth.co.uk> References: <4E204CD8.306@redhat.com> <4E23FACA.3070305@redhat.com> <4E24998A.9050507@redhat.com> <4E252893.8050809@redhat.com> <4E259ABE.2070606@redhat.com> <20110720202650.GP17111@redhat.com> <20110720212440.GN32327@rivendell.middle-earth.co.uk> <4E27D35E.1000105@redhat.com> <20110721133105.GT32327@rivendell.middle-earth.co.uk> <4E28319F.6030508@redhat.com> <20110725135155.GA17692@rivendell.middle-earth.co.uk> Message-ID: <4E2D8189.3000106@redhat.com> On 07/25/2011 09:51 AM, Dr Andrew John Hughes wrote: > On 10:03 Thu 21 Jul , Omair Majid wrote: >> On 07/21/2011 09:31 AM, Dr Andrew John Hughes wrote: >>> On 09:21 Thu 21 Jul , Jiri Vanek wrote: >>>>> >>>>> Can xml not return the number of element names beforehand? >>>> Bad luck. No:( >>>>> >>>>> I'm not familiar with this XML API. Where is it from? Doesn't look like JAXP. >>>> This is tiny html parser coded directly inside icedtea-web.... not sure if it is right choice ... but is is here very long tim and a several things depnde on him. It was chosen because he is much m,ore tolerant then xml parsers. >>>> Weather it is benefit is question,, but it was decided long ago and is working fine. >>>> >>> >> >> IcedTea-Web (or Netx, if you will, since this part of code has not been >> significantly modified) uses a (quite old) embedded copy of the NanoXML >> parser [1]. It had a number of problems (it could not even deal with >> comments when we first added netx to icedtea), but I think we have >> reached a point where it works fine for most users. >> >>> There was a plan to replace that. Omair? >>> >> >> There still is. >> >> First, let me clarify something about jnlp files. They may look like >> (and they are defined to be, as far as I know) XML files. But thanks to >> the fact that there is just one reference implementation and it does not >> rely on a validating XML parser (as far as I can tell), the JNLP files >> are often not valid XML files. This causes a huge risk of regressions if >> we replace a 'XML' parser with another one. >> >> That said, I did spend some time looking into replacing NanoXML with a >> JAXP-based SAX parser (actually, most of the code was in Netx but was >> just commented out). The unit tests pointed out a few regression, so I >> did not commit it. As much as I would love to remove the embedded >> NanoXML code, I am concerned about breaking applications. >> >> Going forward, the plan is to switch to a parser designed for parsing >> malformed xml files. I have tested tagsoup and it looks somewhat >> promising [2]. But I am not very eager to do that in a minor release as >> the risk of regressions is still significant. It is currently scheduled >> for the 2.0 release [3], where I expect a few other major changes too. >> > > I remember us discussing all this at the end of last year. Are we not working > on 2.0 yet? Not sure what the current state of things is. > I believe the next release is 1.2 [1]. 2.0 is after that. Or in other words, once I see other major/significant changes start going in, I will try to push this too. Cheers, Omair [1] http://icedtea.classpath.org/wiki/IcedTea-Web#Release_Plans From smohammad at redhat.com Mon Jul 25 08:32:04 2011 From: smohammad at redhat.com (Saad Mohammad) Date: Mon, 25 Jul 2011 11:32:04 -0400 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E282AC8.1070900@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E282AC8.1070900@redhat.com> Message-ID: <4E2D8C74.5060901@redhat.com> On 07/21/2011 09:34 AM, Omair Majid wrote: > On 07/15/2011 10:21 AM, Saad Mohammad wrote: >> I have updated both the patches that includes the change that you have >> recommended and requested. > > I haven't looked into this in too much detail, but I have a few > questions (and concerns) after reading this patch. They are included > in line, below. > >> diff -r 86abbf8be0b1 >> netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java >> --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Thu >> Jun 23 15:29:45 2011 +0200 >> +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Thu >> Jul 14 17:11:49 2011 -0400 > >> @@ -471,8 +482,151 @@ >> //otherwise this jar is simply unsigned -- make >> sure to ask >> //for permission on certain actions >> } > > I have a number of questions about this next bit, but that could just > be because I am not clear on what you are trying to do. > > You may want to split code into a new method and/or add more comments. Sure, I will add a few more comments! > >> + >> + if (js.anyJarsSigned()) { >> + // If there are any signed Jars, check if JNLP file >> is signed >> + >> + if (JNLPRuntime.isDebug()) >> + System.out.println("STARTING check for signed >> JNLP file..."); >> + >> + for (int i = 0; i< jars.length; i++) { >> + List eachJar = new ArrayList(); >> + JarSigner signer = new JarSigner(); >> + eachJar.add(jars[i]); // Adds only the single >> jar to check >> + // if the jar has a valid >> signature >> + > > There is already JarSigner object that JNLPClassLoader is using. Is > there a reason for creating this new JarSigner object? I can use the JarSigner object that already exists. > >> + tracker.addResource(jars[i].getLocation(), >> jars[i].getVersion(), >> + getDownloadOptionsForJar(jars[i]), >> + jars[i].isCacheable() ? >> JNLPRuntime.getDefaultUpdatePolicy() >> + : UpdatePolicy.FORCE); >> + > > Unless I am mistaken, this is already done a few lines above this. Yes, I can remove this code. Just tested it! > >> + try { >> + signer.verifyJars(eachJar, tracker); >> + > > The jarsigner js has already verified a subset of these earlier. Do > you really want to verify everything again? This is the method that is checking each jar file individually. So 'eachJar' stores only one jar file at a time and then checks if that jar file is signed or not. It then uses allJarsSigned() to validate if the jar file is signed. I added this because I did not find a solution that can track whether an individual jar file is signed or not. The previous check that JarSigner does uses all the jar resources (passed as parameter) and does not keep track which jar files are signed and which are not. Unless I am mistaken and there is a way of determining this. > > Also, note that calling JarSigner.verify() for all jars means that all > jars are downloaded (this method blocks) - even jars marked as lazy. > This makes the lazy/eager-loading mechanism useless. I am not a fan of > lazy loading myself, but I am not sure if that's what you meant. If > you really mean to do this, than it should be a lot more explicit (a > separate patch?). I am new with lazy and eager. But I will look into that and get back to you. > >> + if (signer.allJarsSigned()) { // If the jar >> is signed >> + URL location = jars[i].getLocation(); >> + File localFile = >> tracker.getCacheFile(location); >> + >> + if (localFile == null) { >> + throw new JNLPMatcherException( >> + "Could not locate jar file, >> returned null"); >> + } >> + > > Looking at the code that catches this exception, it sounds like if the > jar could not be cached the application aborts? Perhaps you should > just assume failure in matching jnlp files? Or treat it the same way > as if signed jnlp files are not present? > Yes, you are right. I will make this change. >> + else { >> + try { >> + JarFile jarFile = new >> JarFile(localFile); >> + Enumeration entries = >> jarFile.entries(); >> + JarEntry je; >> + >> + while (entries.hasMoreElements()) { >> + je = entries.nextElement(); >> + String jeName = >> je.getName().toUpperCase(); >> + >> + if (jeName.equals(template) >> + || >> jeName.equals(application)) { >> + > > Is this intentional? Do we want case-insensitive matching? If so, > please add a comment here (or add/modify variable names to make it > explicit). Yes, the changelog states that the filename should be all in UPPERCASE but should also be recognized regardless of the case Change #3: (http://jcp.org/aboutJava/communityprocess/maintenance/jsr056/jnlp-7_0-changes.html). I will add a comment to make it more specific. > >> + if (JNLPRuntime.isDebug()) >> + System.out >> + >> .println("\tCreating Jar InputStream from Jar Entry"); >> + >> + InputStream inStream = >> jarFile >> + >> .getInputStream(je); >> + InputStreamReader >> inputReader = new InputStreamReader( >> + inStream); >> + >> + if (JNLPRuntime.isDebug()) >> + System.out >> + >> .println("\tCreating File InputStream from lauching JNLP file"); >> + >> + JNLPFile jnlp = >> this.getJNLPFile(); >> + URL url = >> jnlp.getFileLocation(); >> + File jn = null; >> + >> + if >> (url.getProtocol().equals("file")) // If the file is on the local >> file system, use original path, otherwise find cached file >> + jn = new >> File(url.getPath()); >> + else >> + jn = >> CacheUtil.getCacheFile(url, null); >> + >> + FileReader fr = new >> FileReader(jn); >> + InputStreamReader >> jnlpReader = fr; >> + JNLPMatcher matcher; >> + >> + try { >> + >> + if >> (jeName.equals(application)) { // If application was found >> + >> + if >> (JNLPRuntime.isDebug()) >> + System.out >> + >> .println("\tAPPLICATION.JNLP has been located within signed JAR. >> Starting verfication..."); >> + >> + matcher = new >> JNLPMatcher( >> + >> inputReader, jnlpReader, >> + false); >> + } else // Otherwise >> template was >> + // found >> + { >> + if >> (JNLPRuntime.isDebug()) >> + System.out >> + >> .println("\tAPPLICATION_TEMPLATE.JNLP has been located within signed >> JAR. Starting verfication..."); >> + >> + matcher = new >> JNLPMatcher( >> + >> inputReader, jnlpReader, true); >> + } >> + >> + if (!matcher.isMatch()) >> + throw new >> JNLPMatcherException( >> + "Signed >> Application did not match launching JNLP File"); >> + >> + if >> (JNLPRuntime.isDebug()) >> + System.out >> + >> .println("\t** Signed Application Verification Successful **"); >> + >> + break; // break >> while loop >> + >> + } catch (Exception e) { >> + throw new >> JNLPMatcherException( >> + >> e.getMessage(), e); >> + } >> + } >> + >> + } > > So here's what I am really confused about: what does matching do? I > see that if there is no signed jnlp file, the code runs normally. If > there is a correctly signed jnlp file the code also continues > normally. So why are signed jnlp files needed at all? What problem are > they solving? > > I guess I am missing something obvious; an explanation of what this > code is trying to do would be appreciated. If there is no signed JNLP file, the code runs normally. (as you mentioned above) If there is a matching signed JNLP file, the code runs normally. (as you mentioned above) If there is an unmatched signed JNLP file, the application is not initialized and fails to start. The reason why I found this beneficial is because the signer may not want their signed jars to be used if the launching JNLP file is not the same as the one the signer provides. Anyone can just create their own JNLP file to launch the application as long as they know the location of the resource(s). I think this way the signer has the option to put restrictions onto their signed jar file; so under certain conditions the jar files can be used only if the launching JNLP file is "approved" by the signer. I think another reason why a signer might do this is so the signer does not have another person running their code and using their signed jar files as resource (using the API? If they know it). I am not sure about this one, but it makes sense. > > Thanks, > Omair Thanks Andrew, Jiri, Omair and Deepak for your input on this patch. Sorry, I couldn't reply much sooner, I was on PTO last Thursday and Friday. =( Unfortunately I did commit one of the patches, but I will create another patches with the updated changes. I will also send a patch with the updated JNLPClassLoader with the new changes. Thanks again. =) -- Cheers, Saad Mohammad From omajid at redhat.com Mon Jul 25 09:30:27 2011 From: omajid at redhat.com (Omair Majid) Date: Mon, 25 Jul 2011 12:30:27 -0400 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E2D8C74.5060901@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E282AC8.1070900@redhat.com> <4E2D8C74.5060901@redhat.com> Message-ID: <4E2D9A23.7030108@redhat.com> On 07/25/2011 11:32 AM, Saad Mohammad wrote: > On 07/21/2011 09:34 AM, Omair Majid wrote: >> On 07/15/2011 10:21 AM, Saad Mohammad wrote: >>> I have updated both the patches that includes the change that you have >>> recommended and requested. >> >> I haven't looked into this in too much detail, but I have a few >> questions (and concerns) after reading this patch. They are included >> in line, below. >> >> >>> + >>> + if (js.anyJarsSigned()) { >>> + // If there are any signed Jars, check if JNLP file is signed >>> + >>> + if (JNLPRuntime.isDebug()) >>> + System.out.println("STARTING check for signed JNLP file..."); >>> + >>> + for (int i = 0; i< jars.length; i++) { >>> + List eachJar = new ArrayList(); >>> + JarSigner signer = new JarSigner(); >>> + eachJar.add(jars[i]); // Adds only the single jar to check >>> + // if the jar has a valid signature >>> + >> >> There is already JarSigner object that JNLPClassLoader is using. Is >> there a reason for creating this new JarSigner object? > > I can use the JarSigner object that already exists. > Well, I am not sure if that's the right thing. Perhaps it maintains some state that you would not be fine with? I was really hoping you would explain why you are using a new JarSigner object :) >> >>> + try { >>> + signer.verifyJars(eachJar, tracker); >>> + >> >> The jarsigner js has already verified a subset of these earlier. Do >> you really want to verify everything again? > > This is the method that is checking each jar file individually. So > 'eachJar' stores only one jar file at a time and then checks if that jar > file is signed or not. It then uses allJarsSigned() to validate if the > jar file is signed. I added this because I did not find a solution that > can track whether an individual jar file is signed or not. The previous > check that JarSigner does uses all the jar resources (passed as > parameter) and does not keep track which jar files are signed and which > are not. Unless I am mistaken and there is a way of determining this. > Ah, that makes sense now. I suppose you only want to make sure that only a signed jar file contains the signed jnlp file. >> So here's what I am really confused about: what does matching do? I >> see that if there is no signed jnlp file, the code runs normally. If >> there is a correctly signed jnlp file the code also continues >> normally. So why are signed jnlp files needed at all? What problem are >> they solving? >> >> I guess I am missing something obvious; an explanation of what this >> code is trying to do would be appreciated. > > If there is no signed JNLP file, the code runs normally. (as you > mentioned above) > If there is a matching signed JNLP file, the code runs normally. (as you > mentioned above) > If there is an unmatched signed JNLP file, the application is not > initialized and fails to start. The reason why I found this beneficial > is because the signer may not want their signed jars to be used if the > launching JNLP file is not the same as the one the signer provides. > Anyone can just create their own JNLP file to launch the application as > long as they know the location of the resource(s). I think this way the > signer has the option to put restrictions onto their signed jar file; so > under certain conditions the jar files can be used only if the launching > JNLP file is "approved" by the signer. I think another reason why a > signer might do this is so the signer does not have another person > running their code and using their signed jar files as resource (using > the API? If they know it). I am not sure about this one, but it makes > sense. > Personally, I don't see that as a problem that Sun/Oracle would attempt to solve (what's so special about this "approved" file?). I suspect it has more to do with granting additional security privileges. I found this thread [1] after a quick search and it mentions a number of things you may find interesting (including secure system properties). There is probably a lot more information on this. Could you please look around some more and tell us what you find? Thanks, Omair [1] http://forums.oracle.com/forums/thread.jspa?threadID=1303509&tstart=105 From dbhole at redhat.com Mon Jul 25 10:14:12 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 25 Jul 2011 13:14:12 -0400 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E282AC8.1070900@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E282AC8.1070900@redhat.com> Message-ID: <20110725171412.GA2963@redhat.com> * Omair Majid [2011-07-21 09:35]: > On 07/15/2011 10:21 AM, Saad Mohammad wrote: > >I have updated both the patches that includes the change that you have > >recommended and requested. > ... ... > >+ if (signer.allJarsSigned()) { // If the jar is signed > >+ URL location = jars[i].getLocation(); > >+ File localFile = tracker.getCacheFile(location); > >+ > >+ if (localFile == null) { > >+ throw new JNLPMatcherException( > >+ "Could not locate jar file, returned null"); > >+ } > >+ > > Looking at the code that catches this exception, it sounds like if > the jar could not be cached the application aborts? Perhaps you > should just assume failure in matching jnlp files? Or treat it the > same way as if signed jnlp files are not present? > I thought we had this discussion on IRC before.. I may be mistaken, but didn't we determine that there should never be a case where caching is not possible? If so, I think aborting here would be the right thing to do.. Cheers, Deepak From smohammad at redhat.com Mon Jul 25 10:49:12 2011 From: smohammad at redhat.com (Saad Mohammad) Date: Mon, 25 Jul 2011 13:49:12 -0400 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <20110725171412.GA2963@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E282AC8.1070900@redhat.com> <20110725171412.GA2963@redhat.com> Message-ID: <4E2DAC98.2060307@redhat.com> On 07/25/2011 01:14 PM, Deepak Bhole wrote: > I thought we had this discussion on IRC before.. I may be mistaken, but > didn't we determine that there should never be a case where caching is > not possible? If so, I think aborting here would be the right thing to > do.. > > Cheers, > Deepak Yes, we did have this talk. We talked about using the 'cache' attribute within jar element. eg: Not really sure if the cache attribute really exist, I couldn't find any documentation on it. :P But anyways, I think Omair is talking about the 'download' attribute. eg: If the cache attribute exist, do both behave similarly? It's always cached? -- Cheers, Saad Mohammad From smohammad at redhat.com Mon Jul 25 11:02:53 2011 From: smohammad at redhat.com (Saad Mohammad) Date: Mon, 25 Jul 2011 14:02:53 -0400 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E282ECF.6060503@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E23FACA.3070305@redhat.com> <4E24998A.9050507@redhat.com> <4E252893.8050809@redhat.com> <4E259ABE.2070606@redhat.com> <20110720202650.GP17111@redhat.com> <20110720212440.GN32327@rivendell.middle-earth.co.uk> <4E27D35E.1000105@redhat.com> <20110721133105.GT32327@rivendell.middle-earth.co.uk> <4E282ECF.6060503@redhat.com> Message-ID: <4E2DAFCD.3070505@redhat.com> On 07/21/2011 09:51 AM, Jiri Vanek wrote: > On 07/21/2011 03:31 PM, Dr Andrew John Hughes wrote: >> On 09:21 Thu 21 Jul , Jiri Vanek wrote: > ..snip... >>>> >>>> The use of new String and casting seems wrong. I'm not sure what >>>> e.nextElement is returning >>>> but that enumeration should be using generics. >>> >>> This method was refactored to return pure list and is now >>> working correctly. >>> >> >> So where's the new patch? >> >>>> > ..snip... > > You are right. This method is relict. It was fixed in patch by correct > version but this relict remains. > This method you are mentioning is in commented section. I do not know > why there is such a big commented section (some kind of "class backup" > ) (If Saad did this it must be fixed) > I will try to find an guilty one;) > > J. I will save u trouble! It wasn't me! :D. I didn't add the commented section. It was there from the very beginning (rev 0). Should I remove the commented section on my next patch? I don't see any relevance for it to be there. -- Cheers, Saad Mohammad From dbhole at redhat.com Mon Jul 25 11:04:21 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 25 Jul 2011 14:04:21 -0400 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E2DAC98.2060307@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E282AC8.1070900@redhat.com> <20110725171412.GA2963@redhat.com> <4E2DAC98.2060307@redhat.com> Message-ID: <20110725180421.GC2963@redhat.com> * Saad Mohammad [2011-07-25 13:49]: > On 07/25/2011 01:14 PM, Deepak Bhole wrote: > >I thought we had this discussion on IRC before.. I may be mistaken, but > >didn't we determine that there should never be a case where caching is > >not possible? If so, I think aborting here would be the right thing to > >do.. > > > >Cheers, > >Deepak > Yes, we did have this talk. We talked about using the 'cache' > attribute within jar element. eg: > > Ah, so there is an attribute that can disable caching. Okay, in that case I think it would be more prudent to check if it is set, and ignore the local file not found error only if caching is disabled. We should not allow bypass of a security check just because there is an error in our code somewhere (i.e. when caching is enabled and file did not get cached). > Not really sure if the cache attribute really exist, I couldn't find > any documentation on it. :P > But anyways, I think Omair is talking about the 'download' attribute. eg: > > The download=lazy attribute is a different matter, mitigated by the download command above it. Cheers, Deepak > If the cache attribute exist, do both behave similarly? It's always cached? > > -- > Cheers, > Saad Mohammad > From omajid at redhat.com Mon Jul 25 11:04:32 2011 From: omajid at redhat.com (Omair Majid) Date: Mon, 25 Jul 2011 14:04:32 -0400 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E2DAC98.2060307@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E282AC8.1070900@redhat.com> <20110725171412.GA2963@redhat.com> <4E2DAC98.2060307@redhat.com> Message-ID: <4E2DB030.4030703@redhat.com> On 07/25/2011 01:49 PM, Saad Mohammad wrote: > On 07/25/2011 01:14 PM, Deepak Bhole wrote: >> I thought we had this discussion on IRC before.. I may be mistaken, but >> didn't we determine that there should never be a case where caching is >> not possible? If so, I think aborting here would be the right thing to >> do.. >> Oh, yes, I recall that now. In that case, Saad, please ignore my comment. > Yes, we did have this talk. We talked about using the 'cache' attribute > within jar element. eg: > > > Not really sure if the cache attribute really exist, I couldn't find any > documentation on it. :P Sorry, but I cant recall this bit at all :/ I dont think I have ever seen that cache attribute. The JARDesc class in IcedTea-Web has an attribute cacheable, but that's only used by the plugin. > But anyways, I think Omair is talking about the 'download' attribute. eg: > > Well, yes and no. Jars being cached is orthogonal to jars being downloaded lazily. > If the cache attribute exist, do both behave similarly? It's always cached? Lazy just refers to when a jar is downloaded (and it has to be downloaded so the java class files can be read and the code executed - whether it's being cached or not), not if it is kept on disk. Cheers, Omair From bugzilla-daemon at icedtea.classpath.org Mon Jul 25 13:28:04 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 25 Jul 2011 20:28:04 +0000 Subject: [Bug 764] New: icedtea 1.8.9 fails to build in CachedJarFileCallback.java Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=764 Summary: icedtea 1.8.9 fails to build in CachedJarFileCallback.java Product: IcedTea Version: 6-1.8.9 Platform: all OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: NetX AssignedTo: unassigned at icedtea.classpath.org ReportedBy: sbeattie at ubuntu.com Created an attachment (id=553) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=553) icedtea 1.8.9 build failure log IcedTea 1.8.9, released to fix CVE-2011-2513, fails to build on Ubuntu with the following errors: /build/buildd/openjdk-6b18-6b18-1.8.8/build/bootstrap/jdk1.6.0/bin/javac -g -encoding utf-8 \ -d /build/buildd/openjdk-6b18-6b18-1.8.8/build/netx.build \ -classpath /build/buildd/openjdk-6b18-6b18-1.8.8/build/lib/rt:/usr/lib/jvm/java-gcj/jre/lib/rt.jar \ -sourcepath /build/buildd/openjdk-6b18-6b18-1.8.8/build/../netx:/build/buildd/openjdk-6b18-6b18-1.8.8/build/generated:openjdk-ecj/jdk/src/share/classes:openjdk-ecj/jdk/src/solaris/classes:openjdk-ecj/langtools/src/share/classes:openjdk-ecj/corba/src/share/classes \ -bootclasspath \'\' \ @netx-source-files.txt incorrect classpath: '' ---------- 1. ERROR in /build/buildd/openjdk-6b18-6b18-1.8.8/build/../netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java (at line 84) public JarFile retrieve(URL url) throws IOException { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The method retrieve(URL) of type CachedJarFileCallback must override a superclass method ---------- 2. ERROR in /build/buildd/openjdk-6b18-6b18-1.8.8/build/../netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java (at line 120) public JarFile run() throws IOException { ^^^^^^^^^^^^^^^^^^^^^^^^ The method run() of type new PrivilegedExceptionAction(){} must override a superclass method This looks to my untrained eyes to be an issue caused by the semantic difference in the @override keyword between 1.5 and 1.6; icedtea 1.8.x builds with '-source 1.5' specified in a number of places, whereas 1.9.x and newer specify '-source 6' by default. Complete build failure log attached -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Mon Jul 25 15:23:49 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 25 Jul 2011 22:23:49 +0000 Subject: [Bug 764] icedtea 1.8.9 fails to build in CachedJarFileCallback.java In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=764 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ahughes at redhat.com --- Comment #1 from Andrew John Hughes 2011-07-25 22:23:49 --- This is odd; I don't see these errors in my build and I don't see any configuration differences to suggest this issue. What ecj is being used here? As far as I can tell, everything will be compiled as 1.5 (javac.in) contains this and the classes referenced should contain those methods. You could try with the attached patch to remove the redundant @Override annotations. They don't have any value anyway and I don't know why they were added. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Mon Jul 25 15:24:20 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 25 Jul 2011 22:24:20 +0000 Subject: [Bug 764] icedtea 1.8.9 fails to build in CachedJarFileCallback.java In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=764 --- Comment #2 from Andrew John Hughes 2011-07-25 22:24:20 --- Created an attachment (id=554) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=554) Remove @Override -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From ahughes at redhat.com Mon Jul 25 16:43:19 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Tue, 26 Jul 2011 00:43:19 +0100 Subject: Reviewer needed: backport of "6970930: RuleBasedCollator.compare(String, null) throws IAE (should be NPE)" into IcedTea6 HEAD In-Reply-To: <4E2D60D2.4010608@redhat.com> References: <4E2D60D2.4010608@redhat.com> Message-ID: <20110725234319.GF17692@rivendell.middle-earth.co.uk> On 14:25 Mon 25 Jul , Pavel Tisnovsky wrote: > Greetings, > > is it possible to push the backport of fix "6970930: > RuleBasedCollator.compare(String,null) throws IAE (should be NPE)" > into IcedTea6 HEAD please? > > The behaviour of this fix was checked on RHELs. > > > Here's ChangeLog entry: > > 2011-07-25 Pavel Tisnovsky > > * Makefile.am: added new patch > * NEWS: updated with backport > * > patches/openjdk/6970930-RuleBasedCollator_compare_throws_IAE.patch: > Backport of 6970930.patch. > > > > Can anybody please review this change? > > Thank you in advance, > Pavel > No. This changes the behaviour of a standard method. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Mon Jul 25 16:47:59 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Tue, 26 Jul 2011 00:47:59 +0100 Subject: [RFC] One line fix for PR763 In-Reply-To: <20110722173024.GF2941@redhat.com> References: <20110722173024.GF2941@redhat.com> Message-ID: <20110725234759.GG17692@rivendell.middle-earth.co.uk> On 13:30 Fri 22 Jul , Deepak Bhole wrote: > Hi, > > Attached is a simple fix for PR763. Okay for HEAD and 1.0/1.1? > > ChangeLog: > 2011-07-22 Deepak Bhole > > PR763: Oanda 's online trading app doesn't run on linux > * netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java > (checkExit): Print exit-access-denied message to stderr rather than > throwing an exception. > > Cheers, > Deepak How safe is this? Where is the code now returning to, instead of throwing the exception? > diff -r 6bfd819570c1 NEWS > --- a/NEWS Thu Jul 21 15:11:38 2011 -0400 > +++ b/NEWS Fri Jul 22 13:27:52 2011 -0400 > @@ -14,6 +14,7 @@ > - RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation > * Plugin > - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow > + - PR763: Oanda's online trading app doesn't run on linux > > New in release 1.1 (2011-XX-XX): > * Security updates > diff -r 6bfd819570c1 netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java > --- a/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java Thu Jul 21 15:11:38 2011 -0400 > +++ b/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java Fri Jul 22 13:27:52 2011 -0400 > @@ -449,8 +449,10 @@ > Class stack[] = getClassContext(); > if (!exitAllowed) { > for (int i = 0; i < stack.length; i++) > - if (stack[i].getClassLoader() != null) > - throw new AccessControlException("Applets may not call System.exit()"); > + if (stack[i].getClassLoader() != null) { > + System.err.println("Applets may not call System.exit()"); > + return; > + } > } > > super.checkExit(status); -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From dbhole at redhat.com Mon Jul 25 16:55:45 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 25 Jul 2011 19:55:45 -0400 Subject: [RFC] One line fix for PR763 In-Reply-To: <20110725234759.GG17692@rivendell.middle-earth.co.uk> References: <20110722173024.GF2941@redhat.com> <20110725234759.GG17692@rivendell.middle-earth.co.uk> Message-ID: <20110725235545.GI2963@redhat.com> * Dr Andrew John Hughes [2011-07-25 19:48]: > On 13:30 Fri 22 Jul , Deepak Bhole wrote: > > Hi, > > > > Attached is a simple fix for PR763. Okay for HEAD and 1.0/1.1? > > > > ChangeLog: > > 2011-07-22 Deepak Bhole > > > > PR763: Oanda 's online trading app doesn't run on linux > > * netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java > > (checkExit): Print exit-access-denied message to stderr rather than > > throwing an exception. > > > > Cheers, > > Deepak > > How safe is this? Where is the code now returning to, instead of throwing > the exception? > Hi, Sorry, I forgot to reply back. Omair found an issue with this patch. I will be rewriting it and posting a new version as soon as I can. Cheers, Deepak > > diff -r 6bfd819570c1 NEWS > > --- a/NEWS Thu Jul 21 15:11:38 2011 -0400 > > +++ b/NEWS Fri Jul 22 13:27:52 2011 -0400 > > @@ -14,6 +14,7 @@ > > - RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation > > * Plugin > > - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow > > + - PR763: Oanda's online trading app doesn't run on linux > > > > New in release 1.1 (2011-XX-XX): > > * Security updates > > diff -r 6bfd819570c1 netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java > > --- a/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java Thu Jul 21 15:11:38 2011 -0400 > > +++ b/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java Fri Jul 22 13:27:52 2011 -0400 > > @@ -449,8 +449,10 @@ > > Class stack[] = getClassContext(); > > if (!exitAllowed) { > > for (int i = 0; i < stack.length; i++) > > - if (stack[i].getClassLoader() != null) > > - throw new AccessControlException("Applets may not call System.exit()"); > > + if (stack[i].getClassLoader() != null) { > > + System.err.println("Applets may not call System.exit()"); > > + return; > > + } > > } > > > > super.checkExit(status); > > > -- > Andrew :) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > Support Free Java! > Contribute to GNU Classpath and IcedTea > http://www.gnu.org/software/classpath > http://icedtea.classpath.org > PGP Key: F5862A37 (https://keys.indymedia.org/) > Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Mon Jul 25 16:56:08 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Tue, 26 Jul 2011 00:56:08 +0100 Subject: IcedTea6 1.10.3 Released! In-Reply-To: <20110722125411.0951415c@workstation64.home> References: <20110721133621.GU32327@rivendell.middle-earth.co.uk> <20110722125411.0951415c@workstation64.home> Message-ID: <20110725235608.GI17692@rivendell.middle-earth.co.uk> On 12:54 Fri 22 Jul , Andreas Radke wrote: > This brings up a regression here using it-finance.com stock market > charting software. > > While I can use it well with icedtea 1.10.2 it doesn't take any input > from mouse or keyboard with 1.10.3. So I have to downgrade the package > here. > > Console output: > > working 1.10.2: > > java version "1.6.0_22" > OpenJDK Runtime Environment (IcedTea6 1.10.2) (ArchLinux-6.b22_1.10.2-1-x86_64) > OpenJDK 64-Bit Server VM (build 19.0-b09, mixed mode) > Unable to use Firefox's proxy settings. Using "DIRECT" as proxy type. > 22.07.2011 12:41:45 Control init > INFO: Control Applet v1.09-SNAPSHOT > 22.07.2011 12:41:46 Control memoryDetection > INFO: Detected 16065 Mo RAM > Unable to use Firefox's proxy settings. Using "DIRECT" as proxy type. > Unable to use Firefox's proxy settings. Using "DIRECT" as proxy type. > 22.07.11 12:41 : v8.02.447 - codebase : http://e4.md.it-finance.com/MDV8/ > 22.07.11 12:41 : Java Version : 1.6.0_22 > 22.07.11 12:41 : System : Linux 2.6.39-ARCH amd64 > 22.07.11 12:41 : Processors : 8 > 22.07.11 12:41 : Memory allocated : 48.5Mb max: 711.125Mb free: 33.585487Mb > 22.07.11 12:41 : Classpath : [http://www.marketdatasystems.com/download/charts/V8/applet447.jar] > 22.07.11 12:41 : Screens : 1 > 22.07.11 12:41 : Screen 0 : :0.0 - 1274x958x-1 - (0.0, 0.0) - [top=0, left=0, bottom=41, right=0] - 60 Hz - Video acceleration: true > 22.07.11 12:41 : init bundle "texts.texts" with locale de_DE_IGIndex > 22.07.11 12:41 : init bundle "texts/dateformats" with locale de_DE_IGIndex > 22.07.11 12:41 : init bundle "texts.proorder" with locale de_DE_IGIndex > 22.07.11 12:41 : init bundle "texts.igindex" with locale de_DE_IGIndex > 22.07.11 12:41 : load plugin IGIndex successfully > 22.07.11 12:41 : init bundle "PRTLines.prt" with locale de_DE_IGIndex > 22.07.11 12:41 : load plugin PRTLines successfully > > broken with 1.10.3 > > Exception in thread "pool-1-thread-1" java.util.concurrent.RejectedExecutionException > at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1956) > at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:816) > at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1337) > at java.util.concurrent.Executors$DelegatedExecutorService.execute(Executors.java:629) > at InstrumentSender.run(InstrumentSender.java:52) > at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > at java.lang.Thread.run(Thread.java:679) > 22.07.2011 12:34:47 Control init > INFO: Control Applet v1.09-SNAPSHOT > 22.07.2011 12:34:48 Control memoryDetection > INFO: Detected 16065 Mo RAM > Unable to use Firefox's proxy settings. Using "DIRECT" as proxy type. > Unable to use Firefox's proxy settings. Using "DIRECT" as proxy type. > 22.07.11 12:34 : v8.02.447 - codebase : http://e5.md.it-finance.com/MDV8/ > 22.07.11 12:34 : Java Version : 1.6.0_22 > 22.07.11 12:34 : System : Linux 2.6.39-ARCH amd64 > 22.07.11 12:34 : Processors : 8 > 22.07.11 12:34 : Memory allocated : 46.0Mb max: 711.125Mb free: 30.918549Mb > 22.07.11 12:34 : Classpath : [http://www.marketdatasystems.com/download/charts/V8/applet447.jar] > 22.07.11 12:34 : Screens : 1 > 22.07.11 12:34 : Screen 0 : :0.0 - 1274x958x-1 - (0.0, 0.0) - [top=0, left=0, bottom=41, right=0] - 60 Hz - Video acceleration: true > 22.07.11 12:34 : init bundle "texts.texts" with locale de_DE_IGIndex > 22.07.11 12:34 : init bundle "texts/dateformats" with locale de_DE_IGIndex > 22.07.11 12:34 : init bundle "texts.proorder" with locale de_DE_IGIndex > 22.07.11 12:34 : init bundle "texts.igindex" with locale de_DE_IGIndex > 22.07.11 12:34 : load plugin IGIndex successfully > 22.07.11 12:34 : init bundle "PRTLines.prt" with locale de_DE_IGIndex > 22.07.11 12:34 : load plugin PRTLines successfully > > > any idea? > > -Andy > (also ArchLinux Icedtea/OpenJDK package maintainer) Are you sure this is something to do with IcedTea6 1.10.3? This looks like output from the web plugin which isn't part of IcedTea6 but part of IcedTea-Web. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From jvanek at redhat.com Mon Jul 25 23:08:03 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 26 Jul 2011 08:08:03 +0200 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E2DAFCD.3070505@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E23FACA.3070305@redhat.com> <4E24998A.9050507@redhat.com> <4E252893.8050809@redhat.com> <4E259ABE.2070606@redhat.com> <20110720202650.GP17111@redhat.com> <20110720212440.GN32327@rivendell.middle-earth.co.uk> <4E27D35E.1000105@redhat.com> <20110721133105.GT32327@rivendell.middle-earth.co.uk> <4E282ECF.6060503@redhat.com> <4E2DAFCD.3070505@redhat.com> Message-ID: <4E2E59C3.1060908@redhat.com> On 07/25/2011 08:02 PM, Saad Mohammad wrote: > On 07/21/2011 09:51 AM, Jiri Vanek wrote: >> On 07/21/2011 03:31 PM, Dr Andrew John Hughes wrote: >>> On 09:21 Thu 21 Jul , Jiri Vanek wrote: >> ..snip... >>>>> >>>>> The use of new String and casting seems wrong. I'm not sure what e.nextElement is returning >>>>> but that enumeration should be using generics. >>>> >>>> This method was refactored to return pure list and is now working correctly. >>>> >>> >>> So where's the new patch? >>> >>>>> >> ..snip... >> >> You are right. This method is relict. It was fixed in patch by correct version but this relict remains. >> This method you are mentioning is in commented section. I do not know why there is such a big commented section (some kind of "class backup" ) (If Saad did this it must be fixed) >> I will try to find an guilty one;) >> >> J. > I will save u trouble! It wasn't me! :D. > I didn't add the commented section. It was there from the very beginning (rev 0). Should I remove the commented section on my next patch? I don't see any relevance for it to be there. > Yes please, remove your method (not whole section of)from commented code. Regards J. From ptisnovs at redhat.com Tue Jul 26 02:04:54 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Tue, 26 Jul 2011 11:04:54 +0200 Subject: Reviewer needed: backport of "6970930: RuleBasedCollator.compare(String, null) throws IAE (should be NPE)" into IcedTea6 HEAD In-Reply-To: <20110725234319.GF17692@rivendell.middle-earth.co.uk> References: <4E2D60D2.4010608@redhat.com> <20110725234319.GF17692@rivendell.middle-earth.co.uk> Message-ID: <4E2E8336.5020801@redhat.com> Dr Andrew John Hughes wrote: > On 14:25 Mon 25 Jul , Pavel Tisnovsky wrote: >> Greetings, >> >> is it possible to push the backport of fix "6970930: >> RuleBasedCollator.compare(String,null) throws IAE (should be NPE)" >> into IcedTea6 HEAD please? >> >> The behaviour of this fix was checked on RHELs. >> >> >> Here's ChangeLog entry: >> >> 2011-07-25 Pavel Tisnovsky >> >> * Makefile.am: added new patch >> * NEWS: updated with backport >> * >> patches/openjdk/6970930-RuleBasedCollator_compare_throws_IAE.patch: >> Backport of 6970930.patch. >> >> >> >> Can anybody please review this change? >> >> Thank you in advance, >> Pavel >> > > No. This changes the behaviour of a standard method. Hi Andrew, do you mean that the new method behaviour is wrong (IMHO not because both exceptions are RuntimeException's subclasses) or that there's a problem in changed API in Comparator interface (in *JDK7 doc it's explicitly written, that NPE should occurs)? Pavel From ptisnovs at icedtea.classpath.org Tue Jul 26 02:48:02 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 26 Jul 2011 09:48:02 +0000 Subject: /hg/gfx-test: Added new test suite - rendering of quadratic curves. Message-ID: changeset 06963bda3bcb in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=06963bda3bcb author: Pavel Tisnovsky date: Tue Jul 26 11:49:25 2011 +0200 Added new test suite - rendering of quadratic curves. diffstat: ChangeLog | 4 + Makefile | 1 + src/org/gfxtest/framework/annotations/GraphicsPrimitives.java | 53 + src/org/gfxtest/testsuites/NormalQuadraticCurve.java | 379 ++++++++++ 4 files changed, 437 insertions(+), 0 deletions(-) diffs (478 lines): diff -r 1d0b42c72878 -r 06963bda3bcb ChangeLog --- a/ChangeLog Fri Jul 22 15:46:54 2011 +0200 +++ b/ChangeLog Tue Jul 26 11:49:25 2011 +0200 @@ -1,3 +1,7 @@ +2011-07-26 Pavel Tisnovsky + * src/org/gfxtest/testsuites/NormalQuadraticCurve.java: created + Added new test suite - drawing of normal quadratic curves. + 2011-07-22 Pavel Tisnovsky * src/org/gfxtest/harness/PixelPanel.java: created * src/org/gfxtest/harness/MainWindow.java: diff -r 1d0b42c72878 -r 06963bda3bcb Makefile --- a/Makefile Fri Jul 22 15:46:54 2011 +0200 +++ b/Makefile Tue Jul 26 11:49:25 2011 +0200 @@ -104,6 +104,7 @@ $(CLASSES)/$(TESTSUITE_DIR)/NormalRectangles.class \ $(CLASSES)/$(TESTSUITE_DIR)/NormalRoundRectangles.class \ $(CLASSES)/$(TESTSUITE_DIR)/Normal3DRectangles.class \ + $(CLASSES)/$(TESTSUITE_DIR)/NormalQuadraticCurve.class \ $(CLASSES)/$(TESTSUITE_DIR)/FilledArcs.class \ $(CLASSES)/$(TESTSUITE_DIR)/FilledCircles.class \ $(CLASSES)/$(TESTSUITE_DIR)/FilledEllipses.class \ diff -r 1d0b42c72878 -r 06963bda3bcb src/org/gfxtest/framework/annotations/GraphicsPrimitives.java --- a/src/org/gfxtest/framework/annotations/GraphicsPrimitives.java Fri Jul 22 15:46:54 2011 +0200 +++ b/src/org/gfxtest/framework/annotations/GraphicsPrimitives.java Tue Jul 26 11:49:25 2011 +0200 @@ -40,16 +40,69 @@ package org.gfxtest.framework.annotations; + + +/** + * Names of graphics primitives used for annotation of each test suite. + * + * @author Pavel Tisnovsky + */ public enum GraphicsPrimitives { + /** + * Raster image. + */ COMMON_BITMAP, + + /** + * Line segment in (x, y) coordinate space. + */ LINE, + + /** + * Rectangle defined by a location (x, y) and dimension (w x h). + */ RECTANGLE, + + /** + * Rectangle with rounded corners defined by a location (x, y), a dimension + * (w x h), and the width and height of the corner arc. + */ ROUND_RECTANGLE, + + /** + * Rectangle with "3d shade" defined by a location (x, y) and dimension (w x + * h). + */ THREE_D_RECTANGLE, + + /** + * Sequence of connected lines defined as general path. + */ POLYLINE, + + /** + * Closed sequence of connected lines defined as general path. + */ POLYGON, + + /** + * Circular or elliptical arc covering the specified rectangle. + */ ARC, + + /** + * Circle defined by a bounding square (special case of ellipse). + */ CIRCLE, + + /** + * Ellipse defined by a bounding rectangle. + */ ELLIPSE, + + /** + * Quadratic parametric curve segment in (x, y) coordinate space. + */ + QUADRATIC_CURVE, } diff -r 1d0b42c72878 -r 06963bda3bcb src/org/gfxtest/testsuites/NormalQuadraticCurve.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/gfxtest/testsuites/NormalQuadraticCurve.java Tue Jul 26 11:49:25 2011 +0200 @@ -0,0 +1,379 @@ +/* + Java gfx-test framework + + Copyright (C) 2010, 2011 Red Hat + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +IcedTea is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package org.gfxtest.testsuites; + +import java.awt.BasicStroke; +import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.geom.QuadCurve2D; + +import org.gfxtest.framework.*; +import org.gfxtest.framework.annotations.*; + +/** + * This test renders various quadratic curves using identity transformation + * matrix. Quadratic curves are constructed as Paths or using QuadCurve2D class. + * + * @author Pavel Tisnovsky + */ + at TestType(TestTypes.RENDER_TEST) + at GraphicsPrimitive(GraphicsPrimitives.QUADRATIC_CURVE) + at RenderStyle(RenderStyles.NORMAL) + at Transformation(Transformations.NONE) + at Zoom(1) +public class NormalQuadraticCurve extends GfxTest +{ + + /** + * Draw quadratic curve onto canvas specified by Graphics2D class. + * + * @param graphics + * graphics canvas + * @param width + * canvas width + * @param height + * canvas height + * @param quadCurve + * curve to be drawn + * @param color + * curve color or null when Color.BLACK can be used. + * @return test status + */ + private TestResult drawQuadraticCurve(Graphics2D graphics, int width, int height, QuadCurve2D quadCurve, Color color) + { + // construct QuadCurve2D.Float with set coordinates + quadCurve.setCurve(width/4, 20, width/2, 20 + height*2/3, width*3/4, 20); + + // set the specified color + graphics.setColor(color == null ? Color.BLACK : color); + + // draw QuadCurve2D + graphics.draw(quadCurve); + + return TestResult.PASSED; + } + + /** + * Draw quadratic curve onto canvas specified by Graphics2D class using + * black color. + * + * @param graphics + * graphics canvas + * @param width + * canvas width + * @param height + * canvas height + * @param quadCurve + * curve to be drawn + * @return test status + */ + private TestResult drawQuadraticCurve(Graphics2D graphics, int w, int h, QuadCurve2D quadCurve) + { + return drawQuadraticCurve(graphics, w, h, quadCurve, Color.BLACK); + } + + /** + * Test if quadratic curve created by QuadCurve2D.Float() is rendered + * correctly. + * + * @param image image to which two dimensional shape is to be rendered + * @param graphics graphics context for image + * @return test result - PASSED, FAILED or ERROR + */ + public TestResult test0(TestImage image, Graphics2D graphics) + { + // calculate image dimensions + int w = image.getWidth(); + int h = image.getHeight(); + + // create new QuadCurve2D.Float + QuadCurve2D quadCurve = new QuadCurve2D.Float(); + + // draw quadratic curve + return drawQuadraticCurve(graphics, w, h, quadCurve); + } + + /** + * Test if quadratic curve created by QuadCurve2D.Double() is rendered + * correctly. + * + * @param image image to which two dimensional shape is to be rendered + * @param graphics graphics context for image + * @return test result - PASSED, FAILED or ERROR + */ + public TestResult test1(TestImage image, Graphics2D graphics) + { + // calculate image dimensions + int w = image.getWidth(); + int h = image.getHeight(); + + // create new QuadCurve2D.Float + QuadCurve2D quadCurve = new QuadCurve2D.Double(); + + // draw quadratic curve + return drawQuadraticCurve(graphics, w, h, quadCurve); + } + + /** + * Test if quadratic curve created by QuadCurve2D.Float() is rendered + * correctly. Curve is to be drawn with 10 pixels wide line and default + * caps. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result - PASSED, FAILED or ERROR + */ + public TestResult test2(TestImage image, Graphics2D graphics) + { + // calculate image dimensions + int w = image.getWidth(); + int h = image.getHeight(); + + // set 10 pixels wide line + graphics.setStroke(new BasicStroke(10)); + + // create new QuadCurve2D.Float + QuadCurve2D quadCurve = new QuadCurve2D.Float(); + + // draw quadratic curve + return drawQuadraticCurve(graphics, w, h, quadCurve); + } + + /** + * Test if quadratic curve created by QuadCurve2D.Float() is rendered + * correctly. Curve is to be drawn with 10 pixels wide line and default + * CAP_BUTT. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result - PASSED, FAILED or ERROR + */ + public TestResult test3(TestImage image, Graphics2D graphics) + { + // calculate image dimensions + int w = image.getWidth(); + int h = image.getHeight(); + + // set 10 pixels wide line and CAP_BUTT + graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); + + // create new QuadCurve2D.Float + QuadCurve2D quadCurve = new QuadCurve2D.Float(); + + // draw quadratic curve + return drawQuadraticCurve(graphics, w, h, quadCurve); + } + + /** + * Test if quadratic curve created by QuadCurve2D.Float() is rendered + * correctly. Curve is to be drawn with 10 pixels wide line and default + * CAP_ROUND. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result - PASSED, FAILED or ERROR + */ + public TestResult test4(TestImage image, Graphics2D graphics) + { + // calculate image dimensions + int w = image.getWidth(); + int h = image.getHeight(); + + // set 10 pixels wide line and CAP_ROUND + graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL)); + + // create new QuadCurve2D.Float + QuadCurve2D quadCurve = new QuadCurve2D.Float(); + + // draw quadratic curve + return drawQuadraticCurve(graphics, w, h, quadCurve); + } + + /** + * Test if quadratic curve created by QuadCurve2D.Float() is rendered + * correctly. Curve is to be drawn with 10 pixels wide line and default + * CAP_SQUARE. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result - PASSED, FAILED or ERROR + */ + public TestResult test5(TestImage image, Graphics2D graphics) + { + // calculate image dimensions + int w = image.getWidth(); + int h = image.getHeight(); + + // set 10 pixels wide line and CAP_SQUARE + graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL)); + + // create new QuadCurve2D.Float + QuadCurve2D quadCurve = new QuadCurve2D.Float(); + + // draw quadratic curve + return drawQuadraticCurve(graphics, w, h, quadCurve); + } + + /** + * Test if quadratic curve created by QuadCurve2D.Float() is rendered + * correctly. Curve is drawn using different colors. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result - PASSED, FAILED or ERROR + */ + public TestResult test6(TestImage image, Graphics2D graphics) + { + // calculate image dimensions + int w = image.getWidth(); + int h = image.getHeight(); + + Color[] colors = new Color[] + { + Color.BLACK, + Color.BLUE, + Color.CYAN, + Color.GREEN, + Color.ORANGE, + Color.RED, + Color.YELLOW, + Color.GRAY + }; + + int offset = 0; + + // Draw each curve with different color. + for (Color color : colors) + { + // create new QuadCurve2D.Float + QuadCurve2D quadCurve = new QuadCurve2D.Float(); + + // construct QuadCurve2D.Float with set coordinates + quadCurve.setCurve(w/4, offset, w/2, h*2/3 + offset, w*3/4, offset); + + // set the specified color + graphics.setColor(color); + + // draw QuadCurve2D + graphics.draw(quadCurve); + + // move next curve down + offset += 20; + } + + return TestResult.PASSED; + } + + /** + * Test if quadratic curve created by QuadCurve2D.Float() is rendered + * correctly. Curve is drawn using different colors. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result - PASSED, FAILED or ERROR + */ + public TestResult test7(TestImage image, Graphics2D graphics) + { + // calculate image dimensions + int w = image.getWidth(); + int h = image.getHeight(); + + Color[] colors = new Color[] + { + Color.BLACK, + Color.BLUE, + Color.CYAN, + Color.GREEN, + Color.ORANGE, + Color.RED, + Color.YELLOW, + Color.GRAY + }; + + // set 10 pixels wide line and CAP_ROUND + graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL)); + + int offset = 0; + + // Draw each curve with different color. + for (Color color : colors) + { + // create new QuadCurve2D.Float + QuadCurve2D quadCurve = new QuadCurve2D.Float(); + + // construct QuadCurve2D.Float with set coordinates + quadCurve.setCurve(w/4, offset, w/2, h*2/3 + offset, w*3/4, offset); + + // set the specified color + graphics.setColor(color); + + // draw QuadCurve2D + graphics.draw(quadCurve); + + // move next curve down + offset += 20; + } + + return TestResult.PASSED; + } + + /** + * Entry point to the test suite. + * + * @param args not used in this case + */ + public static void main(String[] args) + { + new NormalQuadraticCurve().runTestSuite(args); + } +} From jvanek at redhat.com Tue Jul 26 03:49:04 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 26 Jul 2011 12:49:04 +0200 Subject: [RFC] - extended creation of simple reproducers jars In-Reply-To: <20110725135650.GC17692@rivendell.middle-earth.co.uk> References: <4E1C03A0.1010705@redhat.com> <4E258367.8080507@redhat.com> <4E25BCDC.4040804@redhat.com> <4E26655E.1000602@redhat.com> <20110725135650.GC17692@rivendell.middle-earth.co.uk> Message-ID: <4E2E9BA0.5060206@redhat.com> On 07/25/2011 03:56 PM, Dr Andrew John Hughes wrote: > On 07:19 Wed 20 Jul , Jiri Vanek wrote: >> > > snip... > >> >> I think that I'm following the rest of icedtea-web styl. I'm creating file with list of reproduces in one step, and then compiling and jarring them in second. Please note, that there is much more reproducers then files in each of one of them. > > IcedTea-Web uses multiple rules. This is all in one rule. Hm... So you are not ok with situation that all directories which will be proceeded are listed in junit-jnlp-dist-dirs.txt - generated by rule before , and then that files are proceeded in runtime cycle? What is your counsel here? I have an opinion to generate for each of the line (directory) in junit-jnlp-dist-dirs.txt file NAME_java.txt and NAME_notjava.txt which will contains its java/nonJava files. But this will generate quite a lot small files (each wich 1-5 lines). I still considersolution below as more user-friendly. Thanx for any advice, J. > >>> >>> diff -r 4267bb156f08 Makefile.am >>> --- a/Makefile.am Tue Jul 19 12:14:35 2011 -0400 >>> +++ b/Makefile.am Tue Jul 19 19:16:19 2011 +0200 >>> @@ -465,11 +465,18 @@ >>> stamps/netx-dist-tests-prepare-reproducers.stamp: junit-jnlp-dist-dirs.txt >>> simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-dirs.txt `); \ >> ^^ list gathered in previous step >>> for dir in "$${simpleReproducers[@]}" ; do \ >> traversing through this list >>> + echo "processing: $$dir" ; \ >>> mkdir -p $(JNLP_TESTS_DIR)/$$dir ; \ >>> - $(BOOT_DIR)/bin/javac -d $(JNLP_TESTS_DIR)/$$dir/ $(JNLP_TESTS_SRCDIR)/simple/$$dir/srcs/* ; \ >>> d=`pwd` ; \ >>> + cd $(JNLP_TESTS_SRCDIR)/simple/$$dir/srcs/ ; \ >>> + srcFiles=`find . -mindepth 1 -type f -name "*.java" | sed "s/.\/*//"` ; \ >> finding java files of this reproducer >>> + notSrcFiles=`find . -mindepth 1 -type f \! -name "*.java" | sed "s/.\/*//"` ; \ >> finding non-java files of this reproducer >>> + $(BOOT_DIR)/bin/javac -d $(JNLP_TESTS_DIR)/$$dir/ $$srcFiles ; \ >> all java files of this reproducer compiled >>> + if [ -n "$$notSrcFiles" ] ; then \ >>> + cp -R --parents $$notSrcFiles $(JNLP_TESTS_DIR)/$$dir/ ; \ >> all non src files of reproducer copied. >>> + fi ; \ >>> cd $(JNLP_TESTS_DIR)/$$dir/ ; \ >>> - $(BOOT_DIR)/bin/jar cf $(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar * ; \ >>> + $(BOOT_DIR)/bin/jar cf $(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar * ; \ >> final jar constructed from classes and copied files. >>> cd $$d ; \ >>> cp -R $(JNLP_TESTS_SRCDIR)/simple/$$dir/resources/* $(JNLP_TESTS_SERVER_DEPLOYDIR)/ ; \ >>> done ; \ >>> diff -r 4267bb156f08 tests/jnlp_tests/README >>> --- a/tests/jnlp_tests/README Tue Jul 19 12:14:35 2011 -0400 >>> +++ b/tests/jnlp_tests/README Tue Jul 19 19:16:19 2011 +0200 >>> @@ -1,1 +1,2 @@ >>> -Each file in directory simple must follows naming convention and is compiled/jared automatically into server's working directory and content of resources likewise. The name of jnlp is independent, and there can be even more jnlps for each future jar. Files in advanced directory have to care about themselves, but even those can have some parts inside simple directory, so some parts of them are processed automatically. There are three reproducers ? simpletest1, simpletest2 and deadlocktest, which tests test?s suite itself and serve as examples of behaviour. >>> +Each file in directory simple must follows naming convention and is compiled/jared automatically into server's working directory and content of resources likewise. The name of jnlp is independent, and there can be even more jnlps for each future jar. Directories should be honored in srcs and in resources, but noty in testcases. >>> +Files in advanced directory have to care about themselves, but even those can have some parts inside simple directory, so some parts of them are processed automatically. There are three reproducers ? simpletest1, simpletest2 and deadlocktest, which tests test?s suite itself and serve as examples of behaviour. >> > From jvanek at icedtea.classpath.org Tue Jul 26 04:34:44 2011 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Tue, 26 Jul 2011 11:34:44 +0000 Subject: /hg/icedtea-web: minor changes in reproducers engine Message-ID: changeset 35f3c783e997 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=35f3c783e997 author: Jiri Vanek date: Tue Jul 26 13:24:16 2011 +0200 minor changes in reproducers engine diffstat: ChangeLog | 16 + tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java | 127 ++++++--- 2 files changed, 100 insertions(+), 43 deletions(-) diffs (362 lines): diff -r 6bfd819570c1 -r 35f3c783e997 ChangeLog --- a/ChangeLog Thu Jul 21 15:11:38 2011 -0400 +++ b/ChangeLog Tue Jul 26 13:24:16 2011 +0200 @@ -1,3 +1,19 @@ +2011-07-26 Jiri Vanek + + *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: String + containing "localhost" have been declared as final constant. + (SERVER_NAME) have been moved instant Server instance so each server can + have it name without affecting others + (getUrl()) added - can return URL of server singleton. Implementation of + this method is inside server, so each server can return its own useful URL. + (saveFile()) is now public. + Added identification for ThreadedProcess based on commandlineArgs and its + run is now slowed by Thread.sleep + (ServerLuncher) inner class is now public (it was bug to not be as we have + getIndependentInstance of it method ) and renamed to ServerLauncher + Enchanted wrapping of executeProcess + + 2011-07-21 Deepak Bhole PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow diff -r 6bfd819570c1 -r 35f3c783e997 tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java --- a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java Thu Jul 21 15:11:38 2011 -0400 +++ b/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java Tue Jul 26 13:24:16 2011 +0200 @@ -50,11 +50,13 @@ import java.io.Reader; import java.io.Writer; import java.net.HttpURLConnection; +import java.net.MalformedURLException; import java.net.ServerSocket; import java.net.Socket; import java.net.URL; import java.util.ArrayList; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.StringTokenizer; @@ -86,26 +88,22 @@ * java property which value containig path to installed (makefile by) javaws binary */ public static final String JAVAWS_BUILD_BIN = "javaws.build.bin"; + public static final String DEFAULT_LOCALHOST_NAME = "localhost"; /** * server instance singeton */ - private static ServerLuncher server; + private static ServerLauncher server; /** * inner version if engine */ - private static final String version = "3"; + private static final String version = "4"; /** * timeout to read 'remote' resources * This can be changed in runtime, but will affect all following tasks */ public static int READ_TIMEOUT = 1000; /** - * default url name part. - * This can be changed in runtime, but will affect all following tasks - */ - public static String SERVER_NAME = "localhost"; - /** - * timeout to let process to finish, before assasin wil kill it. + * timeout in ms to let process to finish, before assasin wil kill it. * This can be changed in runtime, but will affect all following tasks */ public static long PROCESS_TIMEOUT = 10 * 1000;//ms @@ -151,7 +149,7 @@ * * @return cahed instance. If none, then creates new */ - public static ServerLuncher getInstance() { + public static ServerLauncher getInstance() { if (server == null) { server = getIndependentInstance(); } @@ -163,7 +161,7 @@ * @return new not cached iserver instance on random port, * usefull for testing application loading from different url then base */ - public static ServerLuncher getIndependentInstance() { + public static ServerLauncher getIndependentInstance() { String dir = (System.getProperty(TEST_SERVER_DIR)); return getIndependentInstance(dir); } @@ -173,7 +171,7 @@ * @return new not cached iserver instance on random port upon custom www root directory, * usefull for testing application loading from different url then base */ - public static ServerLuncher getIndependentInstance(String dir) { + public static ServerLauncher getIndependentInstance(String dir) { if (dir == null || dir.trim().length() == 0 || !new File(dir).exists() || !new File(dir).isDirectory()) { @@ -181,7 +179,7 @@ } try { int port = findFreePort(); - ServerLuncher lServerLuncher = new ServerLuncher(port, new File(dir)); + ServerLauncher lServerLuncher = new ServerLauncher(port, new File(dir)); new Thread(lServerLuncher).start(); return lServerLuncher; } catch (Exception ex) { @@ -243,24 +241,17 @@ String portFileContent = getContentOfStream(new FileInputStream(portFile)); String dirFileContent = getContentOfStream(new FileInputStream(dirFile)); - - URL portUrl = new URL("http", "localhost", server.getPort(), "/server.port"); URL dirUrl = new URL("http", "localhost", server.getPort(), "/server.dir"); - String portUrlContent = getContentOfStream(portUrl.openConnection().getInputStream()); String dirUrlContent = getContentOfStream(dirUrl.openConnection().getInputStream()); - Assert.assertEquals(portUrlContent.trim(), portFileContent.trim()); Assert.assertEquals(dirUrlContent.trim(), dirFileContent.trim()); Assert.assertEquals(new File(dirUrlContent.trim()), server.getDir()); Assert.assertEquals(new Integer(portUrlContent.trim()), server.getPort()); - - - } /** @@ -286,6 +277,26 @@ } // if (!server.isRunning()) throw new RuntimeException("Server mysteriously died"); return server.getDir(); + } + + /** + * + * @return url pointing to cached server resource. If non singleton instance is runnig, new is created. + */ + public URL getUrl(String resource) throws MalformedURLException { + if (server == null) { + getInstance(); + } + //if (!server.isRunning()) throw new RuntimeException("Server mysteriously died"); + return server.getUrl(resource); + } + + /** + * + * @return url pointing to cached server . If non singleton instance is runnig, new is created. + */ + public URL getUrl() throws MalformedURLException { + return getUrl(""); } @@ -310,9 +321,7 @@ * @throws IOException if connection cant be established or resource do not exists */ public ByteArrayOutputStream getResourceAsBytes(String resource) throws IOException { - URL u = new URL("http", SERVER_NAME, getPort(), resource); - return getResourceAsBytes(u); - + return getResourceAsBytes(getUrl(resource)); } /** @@ -323,9 +332,7 @@ * @throws IOException if connection cant be established or resource do not exists */ public String getResourceAsString(String resource) throws IOException { - URL u = new URL("http", SERVER_NAME, getPort(), resource); - return getResourceAsString(u); - + return getResourceAsString(getUrl(resource)); } /** @@ -414,7 +421,7 @@ * @param f * @throws IOException */ - private static void saveFile(String content, File f) throws IOException { + public static void saveFile(String content, File f) throws IOException { Writer output = new BufferedWriter(new FileWriter(f)); output.write(content); output.flush(); @@ -471,7 +478,7 @@ * @throws Exception */ public ProcessResult executeJavaws(List otherargs, String resource) throws Exception { - return executeProcessUponURL(getJavawsLocation(), otherargs, new URL("http", SERVER_NAME, getPort(), resource)); + return executeProcessUponURL(getJavawsLocation(), otherargs, new URL("http", server.getServerName(), getPort(), resource)); } /** @@ -508,8 +515,6 @@ return executeProcess(urledArgs); } - - /** * utility method to lunch process, get its stdou/stderr, its return value and to kill it if runing to long (@see PROCESS_TIMEOUT) * @@ -553,13 +558,11 @@ return new ProcessResult(crs.getContent(), cre.getContent(), t.getP(), pa.wasTerminated(), t.getExitCode()); } - /** * * wrapper arround Runtime.getRuntime().exec(...) which ensures taht process is run inside its own, by us controlled, thread. * Proces sbuilder caused som einexpected and wired behaviour:/ */ - private static class ThreadedProcess extends Thread { Process p = null; @@ -576,8 +579,24 @@ } public ThreadedProcess(List args) { + this.args = args; + } - this.args = args; + public String getCommandLine() { + String commandLine = "unknown command"; + try { + if (args != null && args.size() > 0) { + commandLine = ""; + for (String string : args) { + commandLine = commandLine + " " + string; + + } + } + } catch (Exception ex) { + ex.printStackTrace(); + } finally { + return commandLine; + } } public Process getP() { @@ -608,16 +627,28 @@ * wrapper arround tiny http server to separate lunch configgurations and servers. * to allow terminations and stuff arround. */ + public static class ServerLauncher implements Runnable { - static class ServerLuncher implements Runnable { - + /** + * default url name part. + * This can be changed in runtime, but will affect all following tasks upon those server + */ + private String serverName = DEFAULT_LOCALHOST_NAME; private boolean running; private final Integer port; private final File dir; - public ServerLuncher(Integer portt, File dirr) { - port = portt; - dir = dirr; + public String getServerName() { + return serverName; + } + + public void setServerName(String serverName) { + this.serverName = serverName; + } + + public ServerLauncher(Integer port, File dir) { + this.port = port; + this.dir = dir; System.err.println("port: " + port); System.err.println("dir: " + dir); } @@ -634,16 +665,16 @@ return dir; } - public ServerLuncher(File dir) { + public ServerLauncher(File dir) { this(8181, dir); } - public ServerLuncher(Integer port) { + public ServerLauncher(Integer port) { this(port, new File(System.getProperty("user.dir"))); } - public ServerLuncher() { + public ServerLauncher() { this(8181, new File(System.getProperty("user.dir"))); } @@ -664,7 +695,13 @@ } + public URL getUrl(String resource) throws MalformedURLException { + return new URL("http", getServerName(), getPort(), resource); + } + public URL getUrl() throws MalformedURLException { + return getUrl(""); + } /** * based on http://www.mcwalter.org/technology/java/httpd/tiny/index.html @@ -731,7 +768,6 @@ } } - /** * class which timeout any ThreadedProcess. This killing of 'theread with process' replaced not working process.destroy(). */ @@ -757,6 +793,8 @@ public void setCanRun(boolean canRun) { this.canRun = canRun; + System.err.println("Stopping assasin for" + p.toString() + " " + p.getP().toString() + " " + p.getCommandLine() + ": "); + System.err.flush(); } public boolean isCanRun() { @@ -778,23 +816,26 @@ //System.out.println(time - startTime); //System.out.println((time - startTime) > timeout); if ((time - startTime) > timeout) { - System.err.println("Timeouted " + p.toString() + " .. killing"); + System.err.println("Timeouted " + p.toString() + " " + p.getP().toString() + " .. killing " + p.getCommandLine() + ": "); System.err.flush(); wasTerminated = true; p.interrupt(); while (!terminated.contains(p)) { Thread.sleep(100); } - System.err.println("Timeouted " + p.toString() + " .. killed"); + System.err.println("Timeouted " + p.toString() + " " + p.getP().toString() + " .. killed " + p.getCommandLine()); System.err.flush(); break; } + Thread.sleep(100); } catch (Exception ex) { ex.printStackTrace(); } } + System.err.println("assasin for" + p.toString() + " " + p.getP().toString() + " .. done " + p.getCommandLine() + " termination " + wasTerminated); + System.err.flush(); } } From ahughes at redhat.com Tue Jul 26 05:36:05 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Tue, 26 Jul 2011 13:36:05 +0100 Subject: Reviewer needed: backport of "6970930: RuleBasedCollator.compare(String, null) throws IAE (should be NPE)" into IcedTea6 HEAD In-Reply-To: <4E2E8336.5020801@redhat.com> References: <4E2D60D2.4010608@redhat.com> <20110725234319.GF17692@rivendell.middle-earth.co.uk> <4E2E8336.5020801@redhat.com> Message-ID: <20110726123605.GA7976@rivendell.middle-earth.co.uk> On 11:04 Tue 26 Jul , Pavel Tisnovsky wrote: > Dr Andrew John Hughes wrote: > > On 14:25 Mon 25 Jul , Pavel Tisnovsky wrote: > >> Greetings, > >> > >> is it possible to push the backport of fix "6970930: > >> RuleBasedCollator.compare(String,null) throws IAE (should be NPE)" > >> into IcedTea6 HEAD please? > >> > >> The behaviour of this fix was checked on RHELs. > >> > >> > >> Here's ChangeLog entry: > >> > >> 2011-07-25 Pavel Tisnovsky > >> > >> * Makefile.am: added new patch > >> * NEWS: updated with backport > >> * > >> patches/openjdk/6970930-RuleBasedCollator_compare_throws_IAE.patch: > >> Backport of 6970930.patch. > >> > >> > >> > >> Can anybody please review this change? > >> > >> Thank you in advance, > >> Pavel > >> > > > > No. This changes the behaviour of a standard method. > > Hi Andrew, > > do you mean that the new method behaviour is wrong (IMHO not because > both exceptions are RuntimeException's subclasses) or that there's a > problem in changed API in Comparator interface (in *JDK7 doc it's > explicitly written, that NPE should occurs)? > The latter. You're changing the behaviour of the method. However correct that is, we can't do it in 1.6. > Pavel -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From aph at redhat.com Tue Jul 26 05:48:58 2011 From: aph at redhat.com (Andrew Haley) Date: Tue, 26 Jul 2011 13:48:58 +0100 Subject: Reviewer needed: backport of "6970930: RuleBasedCollator.compare(String, null) throws IAE (should be NPE)" into IcedTea6 HEAD In-Reply-To: <20110726123605.GA7976@rivendell.middle-earth.co.uk> References: <4E2D60D2.4010608@redhat.com> <20110725234319.GF17692@rivendell.middle-earth.co.uk> <4E2E8336.5020801@redhat.com> <20110726123605.GA7976@rivendell.middle-earth.co.uk> Message-ID: <4E2EB7BA.5060403@redhat.com> On 07/26/2011 01:36 PM, Dr Andrew John Hughes wrote: > On 11:04 Tue 26 Jul , Pavel Tisnovsky wrote: >> Dr Andrew John Hughes wrote: >>> On 14:25 Mon 25 Jul , Pavel Tisnovsky wrote: >>>> Greetings, >>>> >>>> is it possible to push the backport of fix "6970930: >>>> RuleBasedCollator.compare(String,null) throws IAE (should be NPE)" >>>> into IcedTea6 HEAD please? >>>> >>>> The behaviour of this fix was checked on RHELs. >>>> >>>> >>>> Here's ChangeLog entry: >>>> >>>> 2011-07-25 Pavel Tisnovsky >>>> >>>> * Makefile.am: added new patch >>>> * NEWS: updated with backport >>>> * >>>> patches/openjdk/6970930-RuleBasedCollator_compare_throws_IAE.patch: >>>> Backport of 6970930.patch. >>>> >>>> >>>> >>>> Can anybody please review this change? >>> >>> No. This changes the behaviour of a standard method. >> >> Hi Andrew, >> >> do you mean that the new method behaviour is wrong (IMHO not because >> both exceptions are RuntimeException's subclasses) or that there's a >> problem in changed API in Comparator interface (in *JDK7 doc it's >> explicitly written, that NPE should occurs)? > > The latter. You're changing the behaviour of the method. However > correct that is, we can't do it in 1.6. I think that's true. However bogus, some program may be catching the IllegalArgumentException. Andrew. From ptisnovs at redhat.com Tue Jul 26 05:50:58 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Tue, 26 Jul 2011 14:50:58 +0200 Subject: Reviewer needed: backport of "6970930: RuleBasedCollator.compare(String, null) throws IAE (should be NPE)" into IcedTea6 HEAD In-Reply-To: <20110726123605.GA7976@rivendell.middle-earth.co.uk> References: <4E2D60D2.4010608@redhat.com> <20110725234319.GF17692@rivendell.middle-earth.co.uk> <4E2E8336.5020801@redhat.com> <20110726123605.GA7976@rivendell.middle-earth.co.uk> Message-ID: <4E2EB832.6050501@redhat.com> Dr Andrew John Hughes wrote: > On 11:04 Tue 26 Jul , Pavel Tisnovsky wrote: >> Dr Andrew John Hughes wrote: >>> On 14:25 Mon 25 Jul , Pavel Tisnovsky wrote: >>>> Greetings, >>>> >>>> is it possible to push the backport of fix "6970930: >>>> RuleBasedCollator.compare(String,null) throws IAE (should be NPE)" >>>> into IcedTea6 HEAD please? >>>> >>>> The behaviour of this fix was checked on RHELs. >>>> >>>> >>>> Here's ChangeLog entry: >>>> >>>> 2011-07-25 Pavel Tisnovsky >>>> >>>> * Makefile.am: added new patch >>>> * NEWS: updated with backport >>>> * >>>> patches/openjdk/6970930-RuleBasedCollator_compare_throws_IAE.patch: >>>> Backport of 6970930.patch. >>>> >>>> >>>> >>>> Can anybody please review this change? >>>> >>>> Thank you in advance, >>>> Pavel >>>> >>> No. This changes the behaviour of a standard method. >> Hi Andrew, >> >> do you mean that the new method behaviour is wrong (IMHO not because >> both exceptions are RuntimeException's subclasses) or that there's a >> problem in changed API in Comparator interface (in *JDK7 doc it's >> explicitly written, that NPE should occurs)? >> > > The latter. You're changing the behaviour of the method. However > correct that is, we can't do it in 1.6. I see, thank you for explanation. > >> Pavel > From ptisnovs at icedtea.classpath.org Tue Jul 26 06:50:45 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 26 Jul 2011 13:50:45 +0000 Subject: /hg/gfx-test: Added new test suite - drawing of normal quadratic... Message-ID: changeset a9d264b14ae5 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=a9d264b14ae5 author: Pavel Tisnovsky date: Tue Jul 26 15:52:18 2011 +0200 Added new test suite - drawing of normal quadratic curves using Path2D. diffstat: ChangeLog | 6 + Makefile | 5 +- gfx_harness.properties | 4 +- src/org/gfxtest/testsuites/NormalQuadraticCurve.java | 379 -------- src/org/gfxtest/testsuites/NormalQuadraticCurves.java | 468 ++++++++++ src/org/gfxtest/testsuites/NormalQuadraticCurvesAsPaths.java | 494 +++++++++++ 6 files changed, 974 insertions(+), 382 deletions(-) diffs (truncated from 1399 to 500 lines): diff -r 06963bda3bcb -r a9d264b14ae5 ChangeLog --- a/ChangeLog Tue Jul 26 11:49:25 2011 +0200 +++ b/ChangeLog Tue Jul 26 15:52:18 2011 +0200 @@ -1,3 +1,9 @@ +2011-07-26 Pavel Tisnovsky + * src/org/gfxtest/testsuites/NormalQuadraticCurve.java: renamed + * src/org/gfxtest/testsuites/NormalQuadraticCurves.java: renamed + * src/org/gfxtest/testsuites/NormalQuadraticCurvesAsPaths.java: created + Added new test suite - drawing of normal quadratic curves using Path2D. + 2011-07-26 Pavel Tisnovsky * src/org/gfxtest/testsuites/NormalQuadraticCurve.java: created Added new test suite - drawing of normal quadratic curves. diff -r 06963bda3bcb -r a9d264b14ae5 Makefile --- a/Makefile Tue Jul 26 11:49:25 2011 +0200 +++ b/Makefile Tue Jul 26 15:52:18 2011 +0200 @@ -104,7 +104,8 @@ $(CLASSES)/$(TESTSUITE_DIR)/NormalRectangles.class \ $(CLASSES)/$(TESTSUITE_DIR)/NormalRoundRectangles.class \ $(CLASSES)/$(TESTSUITE_DIR)/Normal3DRectangles.class \ - $(CLASSES)/$(TESTSUITE_DIR)/NormalQuadraticCurve.class \ + $(CLASSES)/$(TESTSUITE_DIR)/NormalQuadraticCurves.class \ + $(CLASSES)/$(TESTSUITE_DIR)/NormalQuadraticCurvesAsPaths.class \ $(CLASSES)/$(TESTSUITE_DIR)/FilledArcs.class \ $(CLASSES)/$(TESTSUITE_DIR)/FilledCircles.class \ $(CLASSES)/$(TESTSUITE_DIR)/FilledEllipses.class \ @@ -136,6 +137,8 @@ $(RESULTS)/NormalRectangles \ $(RESULTS)/NormalRoundRectangles \ $(RESULTS)/Normal3DRectangles \ + $(RESULTS)/NormalQuadraticCurves \ + $(RESULTS)/NormalQuadraticCurvesAsPaths \ $(RESULTS)/FilledArcs \ $(RESULTS)/FilledCircles \ $(RESULTS)/FilledEllipses \ diff -r 06963bda3bcb -r a9d264b14ae5 gfx_harness.properties --- a/gfx_harness.properties Tue Jul 26 11:49:25 2011 +0200 +++ b/gfx_harness.properties Tue Jul 26 15:52:18 2011 +0200 @@ -5,5 +5,5 @@ jre.tested=/usr/lib/jvm/java/bin/java jre.reference=/usr/lib/jvm/java/bin/java run.verbose=false -mainWindow.height=768 -mainWindow.width=1024 +mainWindow.height=1000 +mainWindow.width=1200 diff -r 06963bda3bcb -r a9d264b14ae5 src/org/gfxtest/testsuites/NormalQuadraticCurve.java --- a/src/org/gfxtest/testsuites/NormalQuadraticCurve.java Tue Jul 26 11:49:25 2011 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,379 +0,0 @@ -/* - Java gfx-test framework - - Copyright (C) 2010, 2011 Red Hat - -This file is part of IcedTea. - -IcedTea is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -IcedTea is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with IcedTea; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. -*/ - -package org.gfxtest.testsuites; - -import java.awt.BasicStroke; -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.geom.QuadCurve2D; - -import org.gfxtest.framework.*; -import org.gfxtest.framework.annotations.*; - -/** - * This test renders various quadratic curves using identity transformation - * matrix. Quadratic curves are constructed as Paths or using QuadCurve2D class. - * - * @author Pavel Tisnovsky - */ - at TestType(TestTypes.RENDER_TEST) - at GraphicsPrimitive(GraphicsPrimitives.QUADRATIC_CURVE) - at RenderStyle(RenderStyles.NORMAL) - at Transformation(Transformations.NONE) - at Zoom(1) -public class NormalQuadraticCurve extends GfxTest -{ - - /** - * Draw quadratic curve onto canvas specified by Graphics2D class. - * - * @param graphics - * graphics canvas - * @param width - * canvas width - * @param height - * canvas height - * @param quadCurve - * curve to be drawn - * @param color - * curve color or null when Color.BLACK can be used. - * @return test status - */ - private TestResult drawQuadraticCurve(Graphics2D graphics, int width, int height, QuadCurve2D quadCurve, Color color) - { - // construct QuadCurve2D.Float with set coordinates - quadCurve.setCurve(width/4, 20, width/2, 20 + height*2/3, width*3/4, 20); - - // set the specified color - graphics.setColor(color == null ? Color.BLACK : color); - - // draw QuadCurve2D - graphics.draw(quadCurve); - - return TestResult.PASSED; - } - - /** - * Draw quadratic curve onto canvas specified by Graphics2D class using - * black color. - * - * @param graphics - * graphics canvas - * @param width - * canvas width - * @param height - * canvas height - * @param quadCurve - * curve to be drawn - * @return test status - */ - private TestResult drawQuadraticCurve(Graphics2D graphics, int w, int h, QuadCurve2D quadCurve) - { - return drawQuadraticCurve(graphics, w, h, quadCurve, Color.BLACK); - } - - /** - * Test if quadratic curve created by QuadCurve2D.Float() is rendered - * correctly. - * - * @param image image to which two dimensional shape is to be rendered - * @param graphics graphics context for image - * @return test result - PASSED, FAILED or ERROR - */ - public TestResult test0(TestImage image, Graphics2D graphics) - { - // calculate image dimensions - int w = image.getWidth(); - int h = image.getHeight(); - - // create new QuadCurve2D.Float - QuadCurve2D quadCurve = new QuadCurve2D.Float(); - - // draw quadratic curve - return drawQuadraticCurve(graphics, w, h, quadCurve); - } - - /** - * Test if quadratic curve created by QuadCurve2D.Double() is rendered - * correctly. - * - * @param image image to which two dimensional shape is to be rendered - * @param graphics graphics context for image - * @return test result - PASSED, FAILED or ERROR - */ - public TestResult test1(TestImage image, Graphics2D graphics) - { - // calculate image dimensions - int w = image.getWidth(); - int h = image.getHeight(); - - // create new QuadCurve2D.Float - QuadCurve2D quadCurve = new QuadCurve2D.Double(); - - // draw quadratic curve - return drawQuadraticCurve(graphics, w, h, quadCurve); - } - - /** - * Test if quadratic curve created by QuadCurve2D.Float() is rendered - * correctly. Curve is to be drawn with 10 pixels wide line and default - * caps. - * - * @param image - * image to which two dimensional shape is to be rendered - * @param graphics - * graphics context for image - * @return test result - PASSED, FAILED or ERROR - */ - public TestResult test2(TestImage image, Graphics2D graphics) - { - // calculate image dimensions - int w = image.getWidth(); - int h = image.getHeight(); - - // set 10 pixels wide line - graphics.setStroke(new BasicStroke(10)); - - // create new QuadCurve2D.Float - QuadCurve2D quadCurve = new QuadCurve2D.Float(); - - // draw quadratic curve - return drawQuadraticCurve(graphics, w, h, quadCurve); - } - - /** - * Test if quadratic curve created by QuadCurve2D.Float() is rendered - * correctly. Curve is to be drawn with 10 pixels wide line and default - * CAP_BUTT. - * - * @param image - * image to which two dimensional shape is to be rendered - * @param graphics - * graphics context for image - * @return test result - PASSED, FAILED or ERROR - */ - public TestResult test3(TestImage image, Graphics2D graphics) - { - // calculate image dimensions - int w = image.getWidth(); - int h = image.getHeight(); - - // set 10 pixels wide line and CAP_BUTT - graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); - - // create new QuadCurve2D.Float - QuadCurve2D quadCurve = new QuadCurve2D.Float(); - - // draw quadratic curve - return drawQuadraticCurve(graphics, w, h, quadCurve); - } - - /** - * Test if quadratic curve created by QuadCurve2D.Float() is rendered - * correctly. Curve is to be drawn with 10 pixels wide line and default - * CAP_ROUND. - * - * @param image - * image to which two dimensional shape is to be rendered - * @param graphics - * graphics context for image - * @return test result - PASSED, FAILED or ERROR - */ - public TestResult test4(TestImage image, Graphics2D graphics) - { - // calculate image dimensions - int w = image.getWidth(); - int h = image.getHeight(); - - // set 10 pixels wide line and CAP_ROUND - graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL)); - - // create new QuadCurve2D.Float - QuadCurve2D quadCurve = new QuadCurve2D.Float(); - - // draw quadratic curve - return drawQuadraticCurve(graphics, w, h, quadCurve); - } - - /** - * Test if quadratic curve created by QuadCurve2D.Float() is rendered - * correctly. Curve is to be drawn with 10 pixels wide line and default - * CAP_SQUARE. - * - * @param image - * image to which two dimensional shape is to be rendered - * @param graphics - * graphics context for image - * @return test result - PASSED, FAILED or ERROR - */ - public TestResult test5(TestImage image, Graphics2D graphics) - { - // calculate image dimensions - int w = image.getWidth(); - int h = image.getHeight(); - - // set 10 pixels wide line and CAP_SQUARE - graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL)); - - // create new QuadCurve2D.Float - QuadCurve2D quadCurve = new QuadCurve2D.Float(); - - // draw quadratic curve - return drawQuadraticCurve(graphics, w, h, quadCurve); - } - - /** - * Test if quadratic curve created by QuadCurve2D.Float() is rendered - * correctly. Curve is drawn using different colors. - * - * @param image - * image to which two dimensional shape is to be rendered - * @param graphics - * graphics context for image - * @return test result - PASSED, FAILED or ERROR - */ - public TestResult test6(TestImage image, Graphics2D graphics) - { - // calculate image dimensions - int w = image.getWidth(); - int h = image.getHeight(); - - Color[] colors = new Color[] - { - Color.BLACK, - Color.BLUE, - Color.CYAN, - Color.GREEN, - Color.ORANGE, - Color.RED, - Color.YELLOW, - Color.GRAY - }; - - int offset = 0; - - // Draw each curve with different color. - for (Color color : colors) - { - // create new QuadCurve2D.Float - QuadCurve2D quadCurve = new QuadCurve2D.Float(); - - // construct QuadCurve2D.Float with set coordinates - quadCurve.setCurve(w/4, offset, w/2, h*2/3 + offset, w*3/4, offset); - - // set the specified color - graphics.setColor(color); - - // draw QuadCurve2D - graphics.draw(quadCurve); - - // move next curve down - offset += 20; - } - - return TestResult.PASSED; - } - - /** - * Test if quadratic curve created by QuadCurve2D.Float() is rendered - * correctly. Curve is drawn using different colors. - * - * @param image - * image to which two dimensional shape is to be rendered - * @param graphics - * graphics context for image - * @return test result - PASSED, FAILED or ERROR - */ - public TestResult test7(TestImage image, Graphics2D graphics) - { - // calculate image dimensions - int w = image.getWidth(); - int h = image.getHeight(); - - Color[] colors = new Color[] - { - Color.BLACK, - Color.BLUE, - Color.CYAN, - Color.GREEN, - Color.ORANGE, - Color.RED, - Color.YELLOW, - Color.GRAY - }; - - // set 10 pixels wide line and CAP_ROUND - graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL)); - - int offset = 0; - - // Draw each curve with different color. - for (Color color : colors) - { - // create new QuadCurve2D.Float - QuadCurve2D quadCurve = new QuadCurve2D.Float(); - - // construct QuadCurve2D.Float with set coordinates - quadCurve.setCurve(w/4, offset, w/2, h*2/3 + offset, w*3/4, offset); - - // set the specified color - graphics.setColor(color); - - // draw QuadCurve2D - graphics.draw(quadCurve); - - // move next curve down - offset += 20; - } - - return TestResult.PASSED; - } - - /** - * Entry point to the test suite. - * - * @param args not used in this case - */ - public static void main(String[] args) - { - new NormalQuadraticCurve().runTestSuite(args); - } -} diff -r 06963bda3bcb -r a9d264b14ae5 src/org/gfxtest/testsuites/NormalQuadraticCurves.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/gfxtest/testsuites/NormalQuadraticCurves.java Tue Jul 26 15:52:18 2011 +0200 @@ -0,0 +1,468 @@ +/* + Java gfx-test framework + + Copyright (C) 2010, 2011 Red Hat + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +IcedTea is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package org.gfxtest.testsuites; + +import java.awt.BasicStroke; +import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.geom.QuadCurve2D; + +import org.gfxtest.framework.*; +import org.gfxtest.framework.annotations.*; + + + +/** + * This test renders various quadratic curves using identity transformation + * matrix. Quadratic curves are constructed using QuadCurve2D class. Curves + * are drawn using various colors and stroke width. + * + * @author Pavel Tisnovsky + */ + at TestType(TestTypes.RENDER_TEST) + at GraphicsPrimitive(GraphicsPrimitives.QUADRATIC_CURVE) + at RenderStyle(RenderStyles.NORMAL) + at Transformation(Transformations.NONE) + at Zoom(1) +public class NormalQuadraticCurves extends GfxTest +{ + /** From bugzilla-daemon at icedtea.classpath.org Tue Jul 26 07:04:24 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 26 Jul 2011 14:04:24 +0000 Subject: [Bug 765] New: Lazy jars do not have a signature check Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=765 Summary: Lazy jars do not have a signature check Product: IcedTea-Web Version: hg Platform: all OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: NetX AssignedTo: smohammad at redhat.com ReportedBy: smohammad at redhat.com CC: unassigned at icedtea.classpath.org In the launching JNLP file, IcedTea-Web treats all resources with download="lazy" (within the jar element) as unsigned jars, even if a valid signature exist. If the signature is invalid, it still runs the application but as an unsigned application. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Tue Jul 26 11:13:30 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 26 Jul 2011 18:13:30 +0000 Subject: [Bug 766] New: javaws fails to parse an node that contains CDATA. Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=766 Summary: javaws fails to parse an node that contains CDATA. Product: IcedTea-Web Version: unspecified Platform: all OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: NetX AssignedTo: omajid at redhat.com ReportedBy: philippe.laflamme at gmail.com CC: unassigned at icedtea.classpath.org I have a jnlp file that contains an node that itself contains a CDATA node: ... en http://localhost:8080/instruments/BloodPressureBpTru /home/plaflamme/projects/onyx-1.8.x/onyx-example/target/example-webapp/instruments/BloodPressureBpTru/launch.jnlp http://localhost:8080/remoting z5i5vf56933o1kb0amh5tmb99 ]]> ... Its used to embed a java.util.Properties object serialized as XML. When launching this jnlp, the result is an empty node which results in an empty String args[] variable in the main method. Running javaws -verbose on this jnlp produces this output: ... line: 38 line: 39 line: 40 ... The same jnlp works using the Sun/Oracle javaws. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Tue Jul 26 13:52:24 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 26 Jul 2011 20:52:24 +0000 Subject: [Bug 764] icedtea 1.8.9 fails to build in CachedJarFileCallback.java In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=764 --- Comment #3 from Steve Beattie 2011-07-26 20:52:24 --- Thanks, building without the @Override attributes compiles successfully. ecj is 3.5.1-1 from Ubuntu 10.10 (aka maverick). We only build the icedtea 1.8.x series for ARM (armel); for all other architectures we support, we use 1.9.x or newer. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From ahughes at redhat.com Tue Jul 26 17:26:22 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Wed, 27 Jul 2011 01:26:22 +0100 Subject: Review Request: zero-methodHandle 7009923-regression In-Reply-To: <4E1C61C6.9000506@zafena.se> References: <4E1C5E4F.1080307@zafena.se> <20110712145800.GL14335@shelob.middle-earth.co.uk> <4E1C61C6.9000506@zafena.se> Message-ID: <20110727002622.GE17134@rivendell.middle-earth.co.uk> On 17:01 Tue 12 Jul , Xerxes R?nby wrote: > On 2011-07-12 16:58, Andrew John Hughes wrote: > > On Tue, Jul 12, 2011 at 04:46:39PM +0200, Xerxes R?nby wrote: > >> Hi all! > >> > >> Zero FTBFS after the recent 7009923 JSR292 fixes like this: > >> openjdk/hotspot/src/cpu/zero/vm/stack_zero.cpp:72: > >> error: no matching function for call to > >> 'Exceptions::throw_stack_overflow_exception(JavaThread*&, const char [110], > >> int)' > >> openjdk/hotspot/src/share/vm/utilities/exceptions.hpp:147: > >> note: candidates are: static void > >> Exceptions::throw_stack_overflow_exception(Thread*, const char*, int, > >> methodHandle) > >> make[7]: *** [stack_zero.o] Error 1 > >> > >> This webrev updates Zero to handle the > >> Exceptions::throw_stack_overflow_exception API change. > >> > >> http://labb.zafena.se/openjdk/zero-methodHandle-7009923-regression/ > >> Summary of changes: 2 lines changed: 1 ins; 0 del; 1 mod; 87 unchg > >> > >> I don't have a bug id for this. > >> > >> I have signed the SCA. > >> http://sca.java.net/CA_signatories.htm > >> > >> Cheers > >> Xerxes > > > > Have you pushed this to any of the IcedTea repositories? > > No. i have only posted the patch to the icedtea bugzilla: > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=753 Please push such fixes to IcedTea in future. I've added this to the IcedTea7 forest. I don't know which versions of IcedTea6 it affects, but it will need to go there as well. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From xerxes at zafena.se Wed Jul 27 02:00:11 2011 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Wed, 27 Jul 2011 11:00:11 +0200 Subject: Review Request: zero-methodHandle 7009923-regression In-Reply-To: <20110727002622.GE17134@rivendell.middle-earth.co.uk> References: <4E1C5E4F.1080307@zafena.se> <20110712145800.GL14335@shelob.middle-earth.co.uk> <4E1C61C6.9000506@zafena.se> <20110727002622.GE17134@rivendell.middle-earth.co.uk> Message-ID: <4E2FD39B.80207@zafena.se> On 2011-07-27 02:26, Dr Andrew John Hughes wrote: > On 17:01 Tue 12 Jul , Xerxes R?nby wrote: >> On 2011-07-12 16:58, Andrew John Hughes wrote: >>> On Tue, Jul 12, 2011 at 04:46:39PM +0200, Xerxes R?nby wrote: >>>> Hi all! >>>> >>>> This webrev updates Zero to handle the >>>> Exceptions::throw_stack_overflow_exception API change. >>>> >>>> http://labb.zafena.se/openjdk/zero-methodHandle-7009923-regression/ >>> Have you pushed this to any of the IcedTea repositories? >> >> No. i have only posted the patch to the icedtea bugzilla: >> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=753 > > Please push such fixes to IcedTea in future. > I've added this to the IcedTea7 forest. Thank you for merging this patch so that it gets included before the 28'th, I will quickly fill in its current upstream status: The patch have been picked up upstream and been placed in a pending review queue: http://hg.openjdk.java.net/mlvm/mlvm/hotspot/file/tip/meth-zero-7066143.patch I have since then been waiting some weeks for the patch to get reviewed. Yesterday on the 26'th of July Christian have started to examining the patch. http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2011-July/005968.html When it gets merged upstream and gets assigned a bug id then we can simply merge in the change from upstream. > I don't know which versions of > IcedTea6 it affects, but it will need to go there as well. No, This patch do not need to be backported to IcedTea 6 unless the whole invoke dynamic JSR292 gets backported, wich are unlikely to happen since its a OpenJDK 7 feature. Cheers Xerxes From ptisnovs at redhat.com Wed Jul 27 06:16:14 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Wed, 27 Jul 2011 15:16:14 +0200 Subject: Reviewer needed: backport of "S6669869: Beans.isDesignTime() and other queries should be per-AppContext" into IcedTea6 HEAD Message-ID: <4E300F9E.3010306@redhat.com> Greetings, is it possible to push the backport of fix "S6669869: Beans.isDesignTime() and other queries should be per-AppContext" into IcedTea6 HEAD please? The behaviour of this fix was checked on RHELs. Please note, that the fix seems to be long and difficult, but in fact the changes are quite simple (four lines of code contains the fix, other changes are just caused by not using full class names with theirs packages). Here's ChangeLog entry: 2011-07-27 Pavel Tisnovsky * Makefile.am: added new patch * NEWS: updated with backport * patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch: Backport of 6669869. Can anybody please review this change? Thank you in advance, Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 6669869_hg.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110727/19fe6dd1/6669869_hg.diff From ptisnovs at icedtea.classpath.org Wed Jul 27 06:39:17 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 27 Jul 2011 13:39:17 +0000 Subject: /hg/gfx-test: Added new test suite - drawing of normal cubic cur... Message-ID: changeset e2ffa5184756 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=e2ffa5184756 author: Pavel Tisnovsky date: Wed Jul 27 15:38:53 2011 +0200 Added new test suite - drawing of normal cubic curves. diffstat: ChangeLog | 6 ++++++ Makefile | 2 ++ src/org/gfxtest/framework/annotations/GraphicsPrimitives.java | 5 +++++ src/org/gfxtest/testsuites/NormalQuadraticCurves.java | 4 ++-- src/org/gfxtest/testsuites/NormalQuadraticCurvesAsPaths.java | 4 ++-- 5 files changed, 17 insertions(+), 4 deletions(-) diffs (94 lines): diff -r a9d264b14ae5 -r e2ffa5184756 ChangeLog --- a/ChangeLog Tue Jul 26 15:52:18 2011 +0200 +++ b/ChangeLog Wed Jul 27 15:38:53 2011 +0200 @@ -1,3 +1,8 @@ +2011-07-27 Pavel Tisnovsky + * Makefile: added new class to compile & run: NormalCubicCurves.java + * src/org/gfxtest/testsuites/NormalCubicCurves.java: cretaded + Added new test suite - drawing of normal cubic curves. + 2011-07-26 Pavel Tisnovsky * src/org/gfxtest/testsuites/NormalQuadraticCurve.java: renamed * src/org/gfxtest/testsuites/NormalQuadraticCurves.java: renamed @@ -5,6 +10,7 @@ Added new test suite - drawing of normal quadratic curves using Path2D. 2011-07-26 Pavel Tisnovsky + * Makefile: added new class to compile & run: NormalQuadraticCurve.java * src/org/gfxtest/testsuites/NormalQuadraticCurve.java: created Added new test suite - drawing of normal quadratic curves. diff -r a9d264b14ae5 -r e2ffa5184756 Makefile --- a/Makefile Tue Jul 26 15:52:18 2011 +0200 +++ b/Makefile Wed Jul 27 15:38:53 2011 +0200 @@ -106,6 +106,7 @@ $(CLASSES)/$(TESTSUITE_DIR)/Normal3DRectangles.class \ $(CLASSES)/$(TESTSUITE_DIR)/NormalQuadraticCurves.class \ $(CLASSES)/$(TESTSUITE_DIR)/NormalQuadraticCurvesAsPaths.class \ + $(CLASSES)/$(TESTSUITE_DIR)/NormalCubicCurves.class \ $(CLASSES)/$(TESTSUITE_DIR)/FilledArcs.class \ $(CLASSES)/$(TESTSUITE_DIR)/FilledCircles.class \ $(CLASSES)/$(TESTSUITE_DIR)/FilledEllipses.class \ @@ -139,6 +140,7 @@ $(RESULTS)/Normal3DRectangles \ $(RESULTS)/NormalQuadraticCurves \ $(RESULTS)/NormalQuadraticCurvesAsPaths \ + $(RESULTS)/NormalCubicCurves \ $(RESULTS)/FilledArcs \ $(RESULTS)/FilledCircles \ $(RESULTS)/FilledEllipses \ diff -r a9d264b14ae5 -r e2ffa5184756 src/org/gfxtest/framework/annotations/GraphicsPrimitives.java --- a/src/org/gfxtest/framework/annotations/GraphicsPrimitives.java Tue Jul 26 15:52:18 2011 +0200 +++ b/src/org/gfxtest/framework/annotations/GraphicsPrimitives.java Wed Jul 27 15:38:53 2011 +0200 @@ -105,4 +105,9 @@ * Quadratic parametric curve segment in (x, y) coordinate space. */ QUADRATIC_CURVE, + + /** + * Cubic parametric curve segment in (x, y) coordinate space. + */ + CUBIC_CURVE, } diff -r a9d264b14ae5 -r e2ffa5184756 src/org/gfxtest/testsuites/NormalQuadraticCurves.java --- a/src/org/gfxtest/testsuites/NormalQuadraticCurves.java Tue Jul 26 15:52:18 2011 +0200 +++ b/src/org/gfxtest/testsuites/NormalQuadraticCurves.java Wed Jul 27 15:38:53 2011 +0200 @@ -443,7 +443,7 @@ */ private int computeY2(int height) { - return 20 + height * 2 / 3; + return DEFAULT_Y_OFFSET + height * 2 / 3; } /** @@ -453,7 +453,7 @@ */ private int computeY3() { - return 20; + return DEFAULT_Y_OFFSET; } /** diff -r a9d264b14ae5 -r e2ffa5184756 src/org/gfxtest/testsuites/NormalQuadraticCurvesAsPaths.java --- a/src/org/gfxtest/testsuites/NormalQuadraticCurvesAsPaths.java Tue Jul 26 15:52:18 2011 +0200 +++ b/src/org/gfxtest/testsuites/NormalQuadraticCurvesAsPaths.java Wed Jul 27 15:38:53 2011 +0200 @@ -469,7 +469,7 @@ */ private int computeY2(int height) { - return 20 + height * 2 / 3; + return DEFAULT_Y_OFFSET + height * 2 / 3; } /** @@ -479,7 +479,7 @@ */ private int computeY3() { - return 20; + return DEFAULT_Y_OFFSET; } /** From ptisnovs at icedtea.classpath.org Wed Jul 27 08:17:16 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 27 Jul 2011 15:17:16 +0000 Subject: /hg/gfx-test: Added new build targets - doc and clean-doc, fixed... Message-ID: changeset 623e7a4847bf in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=623e7a4847bf author: Pavel Tisnovsky date: Wed Jul 27 17:18:56 2011 +0200 Added new build targets - doc and clean-doc, fixed javadoc tool warnings, added doc to all methods and attributes of the TestImage class. diffstat: ChangeLog | 10 +- Makefile | 8 +- diff.diff | 318 +++++++++++++ src/org/gfxtest/framework/GfxTest.java | 13 +- src/org/gfxtest/framework/TestImage.java | 143 +++++- src/org/gfxtest/testsuites/NormalCubicCurves.java | 501 ++++++++++++++++++++++ 6 files changed, 978 insertions(+), 15 deletions(-) diffs (truncated from 1170 to 500 lines): diff -r e2ffa5184756 -r 623e7a4847bf ChangeLog --- a/ChangeLog Wed Jul 27 15:38:53 2011 +0200 +++ b/ChangeLog Wed Jul 27 17:18:56 2011 +0200 @@ -1,6 +1,14 @@ +2011-07-27 Pavel Tisnovsky + * Makefile: + Added new build targets - doc and clean-doc + * src/org/gfxtest/framework/GfxTest.java: + Fixed javadoc tool warnings. + * src/org/gfxtest/framework/TestImage.java: + Fixed javadoc tool warnings, added doc to all methods and attributes. + 2011-07-27 Pavel Tisnovsky * Makefile: added new class to compile & run: NormalCubicCurves.java - * src/org/gfxtest/testsuites/NormalCubicCurves.java: cretaded + * src/org/gfxtest/testsuites/NormalCubicCurves.java: created Added new test suite - drawing of normal cubic curves. 2011-07-26 Pavel Tisnovsky diff -r e2ffa5184756 -r 623e7a4847bf Makefile --- a/Makefile Wed Jul 27 15:38:53 2011 +0200 +++ b/Makefile Wed Jul 27 17:18:56 2011 +0200 @@ -42,6 +42,7 @@ SAMPLES=samples RESULTS=results TEST_BUILD=test-build +DOCS=docs COMMON_DIR=org/gfxtest/common FRAMEWORK_DIR=org/gfxtest/framework @@ -210,6 +211,9 @@ runtests: gfxtest.jar $(TESTSUITES) +doc: + javadoc -sourcepath src -d $(DOCS) org.gfxtest.ImageDiffer org.gfxtest.common org.gfxtest.framework org.gfxtest.harness org.gfxtest.reporter org.gfxtest.testsuites + # multiple targets - one for each test suite $(TESTSUITES): gfxtest.jar mkdir -p $(OUTPUT)/$@ @@ -238,7 +242,7 @@ harness: gfxtest.jar java -cp gfxtest.jar org.gfxtest.harness.MainWindow -cleanall: clean clean-output clean-results clean-samples clean-test-build +cleanall: clean clean-output clean-results clean-samples clean-test-build clean-doc clean-all: cleanall @@ -260,3 +264,5 @@ clean-samples: rm -rf $(SAMPLES) +clean-doc: + rm -rf $(DOCS) diff -r e2ffa5184756 -r 623e7a4847bf diff.diff --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/diff.diff Wed Jul 27 17:18:56 2011 +0200 @@ -0,0 +1,321 @@ +diff -r e2ffa5184756 Makefile +--- a/Makefile Wed Jul 27 15:38:53 2011 +0200 ++++ b/Makefile Wed Jul 27 17:15:32 2011 +0200 +@@ -42,6 +42,7 @@ + SAMPLES=samples + RESULTS=results + TEST_BUILD=test-build ++DOCS=docs + + COMMON_DIR=org/gfxtest/common + FRAMEWORK_DIR=org/gfxtest/framework +@@ -210,6 +211,9 @@ + + runtests: gfxtest.jar $(TESTSUITES) + ++doc: ++ javadoc -sourcepath src -d $(DOCS) org.gfxtest.ImageDiffer org.gfxtest.common org.gfxtest.framework org.gfxtest.harness org.gfxtest.reporter org.gfxtest.testsuites ++ + # multiple targets - one for each test suite + $(TESTSUITES): gfxtest.jar + mkdir -p $(OUTPUT)/$@ +@@ -238,7 +242,7 @@ + harness: gfxtest.jar + java -cp gfxtest.jar org.gfxtest.harness.MainWindow + +-cleanall: clean clean-output clean-results clean-samples clean-test-build ++cleanall: clean clean-output clean-results clean-samples clean-test-build clean-doc + + clean-all: cleanall + +@@ -260,3 +264,5 @@ + clean-samples: + rm -rf $(SAMPLES) + ++clean-doc: ++ rm -rf $(DOCS) +diff -r e2ffa5184756 src/org/gfxtest/framework/GfxTest.java +--- a/src/org/gfxtest/framework/GfxTest.java Wed Jul 27 15:38:53 2011 +0200 ++++ b/src/org/gfxtest/framework/GfxTest.java Wed Jul 27 17:15:32 2011 +0200 +@@ -219,11 +219,18 @@ + { + // to be overrided by test cases + } +- ++ + /** + * Method which can be overridden by inherited classes. +- * +- * @param configuration configuration of current test case. ++ * ++ * @param image ++ * image representing drawing destination ++ * @param graphics ++ * graphics canvas derived from image object ++ * @param testNumber ++ * test number ++ * @param entityRenderingStyle ++ * object containing entity rendering style + */ + protected void drawEntity(TestImage image, Graphics2D graphics, int testNumber, EntityRenderingStyle entityRenderingStyle) + { +diff -r e2ffa5184756 src/org/gfxtest/framework/TestImage.java +--- a/src/org/gfxtest/framework/TestImage.java Wed Jul 27 15:38:53 2011 +0200 ++++ b/src/org/gfxtest/framework/TestImage.java Wed Jul 27 17:15:32 2011 +0200 +@@ -48,12 +48,47 @@ + + import javax.imageio.ImageIO; + ++ ++ ++/** ++ * Class representing raster image on which shapes are rendered. ++ * ++ * @author Pavel Tisnovsky ++ */ + public class TestImage + { ++ /** ++ * Simple logger object. ++ */ + private Log log = null; ++ ++ /** ++ * Size of grid used to draw image background. ++ */ + private static final int GRID_SIZE = 20; ++ ++ /** ++ * Object representing the raster canvas. ++ */ + private BufferedImage image = null; + ++ /** ++ * Implicit constructor should be disabled for this object type. ++ */ ++ @SuppressWarnings("unused") ++ private TestImage() ++ { ++ // empty as expected :-) ++ } ++ ++ /** ++ * Initialization of TestImage object. ++ * ++ * @param configuration ++ * configuration of current test suite ++ * @param zoom ++ * zoom factor ++ */ + public TestImage(GfxTestConfiguration configuration, int zoom) + { + this.log = new Log(this.getClass().getName(), false); +@@ -62,9 +97,11 @@ + + /** + * Create new buffered image with given width, height and image type. +- * @param configuration configuration of current test suite +- * @param zoom zoom factor +- * @return ++ * ++ * @param configuration ++ * configuration of current test suite ++ * @param zoom ++ * zoom factor + */ + public void createImage(GfxTestConfiguration configuration, int zoom) + { +@@ -77,11 +114,21 @@ + } + } + ++ /** ++ * Clear the background of the test image ie. fill the whole image with ++ * white color. ++ */ + protected void clearImage() + { + fillImage(Color.WHITE); + } + ++ /** ++ * Fill whole image using given color. ++ * ++ * @param color ++ * color used to fill whole image. ++ */ + public void fillImage(Color color) + { + Graphics2D graphics = this.image.createGraphics(); +@@ -90,6 +137,16 @@ + graphics.dispose(); + } + ++ /** ++ * Read raster image from external file. ++ * ++ * @param directory ++ * directory containing the image ++ * @param fileName ++ * raster image file name ++ * @return image read from external file ++ * @throws IOException ++ */ + @SuppressWarnings("nls") + protected BufferedImage readImage(File directory, String fileName) throws IOException + { +@@ -98,6 +155,15 @@ + return ImageIO.read(imageFile); + } + ++ /** ++ * Write raster image to an external file. ++ * ++ * @param directory ++ * directory containing the image ++ * @param fileName ++ * raster image file name ++ * @throws IOException ++ */ + @SuppressWarnings("nls") + private void writeImage(File directory, String fileName) throws IOException + { +@@ -107,30 +173,38 @@ + + /** + * Write given buffered image to PNG file. +- * +- * @param image ++ * + * @param configuration ++ * current configuration of GfxTest framework ++ * @param suiteName ++ * name of test suite + * @param testName ++ * name of test from the given test suite + * @throws IOException ++ * can occurs during PNG file creation + */ + @SuppressWarnings("nls") + public void writeImage(GfxTestConfiguration configuration, String suiteName, String testName) throws IOException + { + this.writeImage(configuration.getOutputPath(), suiteName + "_" + testName + ".png"); + } +- ++ + /** + * This method draws grid below the test (rendered) pattern. +- * @param image reference to the image created by test case ++ * ++ * @param image ++ * reference to the image created by test case + */ + private void drawGrid() + { + Graphics2D graphics = this.image.createGraphics(); + graphics.setColor(new Color(0xa0, 0xa0, 0xff)); ++ // draw vertical lines + for (int x = 0; x < this.image.getWidth(); x += GRID_SIZE) + { + graphics.drawLine(x, 0, x, this.image.getHeight() - 1); + } ++ // draw horizontal lines + for (int y = 0; y < this.image.getHeight(); y += GRID_SIZE) + { + graphics.drawLine(0, y, this.image.getWidth() - 1, y); +@@ -138,43 +212,92 @@ + graphics.dispose(); + } + ++ /** ++ * Returns graphics2d object for this instance of test image. ++ * ++ * @return graphics2d object for this instance of test image. ++ */ + public Graphics2D getGraphics() + { +- Graphics2D g2d = (Graphics2D) this.image.getGraphics(); +- g2d.setRenderingHint(java.awt.RenderingHints.KEY_STROKE_CONTROL, java.awt.RenderingHints.VALUE_STROKE_PURE); +- return g2d; ++ Graphics2D graphics2d = (Graphics2D) this.image.getGraphics(); ++ graphics2d.setRenderingHint(java.awt.RenderingHints.KEY_STROKE_CONTROL, java.awt.RenderingHints.VALUE_STROKE_PURE); ++ return graphics2d; + } + ++ /** ++ * Return width of the test image. ++ * ++ * @return width of the test image. ++ */ + public int getWidth() + { + return this.image.getWidth(); + } + ++ /** ++ * Return height of the test image. ++ * ++ * @return height of the test image. ++ */ + public int getHeight() + { + return this.image.getHeight(); + } + ++ /** ++ * Return x-coordinate of the center of the test image. ++ * ++ * @return x-coordinate of the center of the test image. ++ */ + public int getCenterX() + { + return this.getWidth() >> 1; + } + ++ /** ++ * Return y-coordinate of the center of the test image. ++ * ++ * @return y-coordinate of the center of the test image. ++ */ + public int getCenterY() + { + return this.getHeight() >> 1; + } + ++ /** ++ * Return pixel color at given coordinates. ++ * ++ * @param x ++ * the x coordinate of the pixel from which to get the color ++ * @param y ++ * the y coordinate of the pixel from which to get the color ++ * @return color in the default sRGB color space ++ */ + public int getRGB(int x, int y) + { + return this.image.getRGB(x, y); + } + ++ /** ++ * Set color of pixel at given coordinates. ++ * ++ * @param x ++ * the x coordinate of the pixel to set the color ++ * @param y ++ * the y coordinate of the pixel to set the color ++ * @param rgb ++ * color in the default sRGB color space ++ */ + public void setRGB(int x, int y, int rgb) + { + this.image.setRGB(x, y, rgb); + } + ++ /** ++ * Get the raster image on which this project is based. ++ * ++ * @return raster image ++ */ + public BufferedImage getImage() + { + return this.image; diff -r e2ffa5184756 -r 623e7a4847bf src/org/gfxtest/framework/GfxTest.java --- a/src/org/gfxtest/framework/GfxTest.java Wed Jul 27 15:38:53 2011 +0200 +++ b/src/org/gfxtest/framework/GfxTest.java Wed Jul 27 17:18:56 2011 +0200 @@ -219,11 +219,18 @@ { // to be overrided by test cases } - + /** * Method which can be overridden by inherited classes. - * - * @param configuration configuration of current test case. + * + * @param image + * image representing drawing destination + * @param graphics + * graphics canvas derived from image object + * @param testNumber + * test number + * @param entityRenderingStyle + * object containing entity rendering style */ protected void drawEntity(TestImage image, Graphics2D graphics, int testNumber, EntityRenderingStyle entityRenderingStyle) { diff -r e2ffa5184756 -r 623e7a4847bf src/org/gfxtest/framework/TestImage.java --- a/src/org/gfxtest/framework/TestImage.java Wed Jul 27 15:38:53 2011 +0200 +++ b/src/org/gfxtest/framework/TestImage.java Wed Jul 27 17:18:56 2011 +0200 @@ -48,12 +48,47 @@ import javax.imageio.ImageIO; + + +/** + * Class representing raster image on which shapes are rendered. + * + * @author Pavel Tisnovsky + */ public class TestImage { + /** + * Simple logger object. + */ private Log log = null; + + /** + * Size of grid used to draw image background. + */ private static final int GRID_SIZE = 20; + + /** + * Object representing the raster canvas. + */ private BufferedImage image = null; + /** + * Implicit constructor should be disabled for this object type. + */ + @SuppressWarnings("unused") + private TestImage() + { + // empty as expected :-) + } + + /** + * Initialization of TestImage object. + * + * @param configuration + * configuration of current test suite + * @param zoom + * zoom factor + */ public TestImage(GfxTestConfiguration configuration, int zoom) { this.log = new Log(this.getClass().getName(), false); @@ -62,9 +97,11 @@ /** * Create new buffered image with given width, height and image type. - * @param configuration configuration of current test suite - * @param zoom zoom factor - * @return + * + * @param configuration + * configuration of current test suite + * @param zoom + * zoom factor */ public void createImage(GfxTestConfiguration configuration, int zoom) { @@ -77,11 +114,21 @@ } } + /** + * Clear the background of the test image ie. fill the whole image with + * white color. + */ protected void clearImage() { fillImage(Color.WHITE); } + /** + * Fill whole image using given color. + * + * @param color + * color used to fill whole image. + */ public void fillImage(Color color) { Graphics2D graphics = this.image.createGraphics(); @@ -90,6 +137,16 @@ graphics.dispose(); } + /** + * Read raster image from external file. + * From ahughes at redhat.com Wed Jul 27 11:12:23 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Wed, 27 Jul 2011 19:12:23 +0100 Subject: Reviewer needed: backport of "S6669869: Beans.isDesignTime() and other queries should be per-AppContext" into IcedTea6 HEAD In-Reply-To: <4E300F9E.3010306@redhat.com> References: <4E300F9E.3010306@redhat.com> Message-ID: <20110727181223.GC22822@rivendell.middle-earth.co.uk> On 15:16 Wed 27 Jul , Pavel Tisnovsky wrote: > Greetings, > > is it possible to push the backport of fix "S6669869: > Beans.isDesignTime() and other queries should be per-AppContext" > into IcedTea6 HEAD please? > > The behaviour of this fix was checked on RHELs. > > Please note, that the fix seems to be long and difficult, but in fact > the changes are quite simple (four lines of code contains the fix, other > changes are just caused by not using full class names with theirs packages). > Ugh, I wish they wouldn't create such noisy changesets. > > Here's ChangeLog entry: > > 2011-07-27 Pavel Tisnovsky > > * Makefile.am: added new patch > * NEWS: updated with backport > * > patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch: > Backport of 6669869. > > > Can anybody please review this change? > I'm not sure about this. Won't it change the runtime behaviour of these methods? > Thank you in advance, > Pavel > > > diff -r a6ba1170da98 Makefile.am > --- a/Makefile.am Mon Jul 25 13:44:57 2011 +0200 > +++ b/Makefile.am Wed Jul 27 14:53:06 2011 +0200 > @@ -369,7 +369,8 @@ > patches/openjdk/4917091-javac_rejects_array_over_128_in_length.patch \ > patches/openjdk/6390045-error_cannot_access_java_lang_void.patch \ > patches/openjdk/6752638-preferLocaleFonts_throws_NPE.patch \ > - patches/openjdk/5047314-Collator_compare_runs_indefinitely.patch > + patches/openjdk/5047314-Collator_compare_runs_indefinitely.patch \ > + patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch > > if WITH_RHINO > ICEDTEA_PATCHES += \ > diff -r a6ba1170da98 NEWS > --- a/NEWS Mon Jul 25 13:44:57 2011 +0200 > +++ b/NEWS Wed Jul 27 14:53:06 2011 +0200 > @@ -362,6 +362,7 @@ > - S6390045: Unexpected error "cannot access java.lang.Void" with '-target cldc1.0' with -source >=1.5 > - S6752638: java.awt.GraphicsEnvironment.preferLocaleFonts() throws NPE on Linux > - S5047314: [Col] Collator.compare() runs indefinitely for a certain set of Thai strings > + - S6669869: Beans.isDesignTime() and other queries should be per-AppContext > * Allow selection of test suites using the jtreg_checks argument e.g. jtreg_checks="langtools" > * CACAO > - Threadlist & threadobject improvements. > diff -r a6ba1170da98 patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch Wed Jul 27 14:53:06 2011 +0200 > @@ -0,0 +1,346 @@ > +# HG changeset patch > +# User malenkov > +# Date 1233842457 -10800 > +# Node ID 27dabbdfdcacc855219955f4eb610856b13d4543 > +# Parent 62a84e564a8c9686b19b9bc09d76f8c9c41ab264 > +6669869: Beans.isDesignTime() and other queries should be per-AppContext > +Reviewed-by: peterz, rupashka > + > +diff -r 62a84e564a8c -r 27dabbdfdcac src/share/classes/java/beans/Beans.java > +--- openjdk.orig/jdk/src/share/classes/java/beans/Beans.java Thu Feb 05 14:48:10 2009 +0300 > ++++ openjdk/jdk/src/share/classes/java/beans/Beans.java Thu Feb 05 17:00:57 2009 +0300 > +@@ -27,26 +27,41 @@ > + > + import com.sun.beans.finder.ClassFinder; > + > +-import java.applet.*; > ++import java.applet.Applet; > ++import java.applet.AppletContext; > ++import java.applet.AppletStub; > ++import java.applet.AudioClip; > + > +-import java.awt.*; > +- > +-import java.beans.AppletInitializer; > ++import java.awt.GraphicsEnvironment; > ++import java.awt.Image; > + > + import java.beans.beancontext.BeanContext; > + > +-import java.io.*; > +- > +-import java.lang.reflect.Constructor; > ++import java.io.IOException; > ++import java.io.InputStream; > ++import java.io.ObjectInputStream; > ++import java.io.ObjectStreamClass; > ++import java.io.StreamCorruptedException; > + > + import java.net.URL; > +-import java.lang.reflect.Array; > ++ > ++import java.security.AccessController; > ++import java.security.PrivilegedAction; > ++ > ++import java.util.Enumeration; > ++import java.util.Hashtable; > ++import java.util.Iterator; > ++import java.util.Vector; > ++ > ++import sun.awt.AppContext; > + > + /** > + * This class provides some general purpose beans control methods. > + */ > + > + public class Beans { > ++ private static final Object DESIGN_TIME = new Object(); > ++ private static final Object GUI_AVAILABLE = new Object(); > + > + /** > + *

> +@@ -59,12 +74,12 @@ > + * @param beanName the name of the bean within the class-loader. > + * For example "sun.beanbox.foobah" > + * > +- * @exception java.lang.ClassNotFoundException if the class of a serialized > ++ * @exception ClassNotFoundException if the class of a serialized > + * object could not be found. > +- * @exception java.io.IOException if an I/O error occurs. > ++ * @exception IOException if an I/O error occurs. > + */ > + > +- public static Object instantiate(ClassLoader cls, String beanName) throws java.io.IOException, ClassNotFoundException { > ++ public static Object instantiate(ClassLoader cls, String beanName) throws IOException, ClassNotFoundException { > + return Beans.instantiate(cls, beanName, null, null); > + } > + > +@@ -80,12 +95,12 @@ > + * For example "sun.beanbox.foobah" > + * @param beanContext The BeanContext in which to nest the new bean > + * > +- * @exception java.lang.ClassNotFoundException if the class of a serialized > ++ * @exception ClassNotFoundException if the class of a serialized > + * object could not be found. > +- * @exception java.io.IOException if an I/O error occurs. > ++ * @exception IOException if an I/O error occurs. > + */ > + > +- public static Object instantiate(ClassLoader cls, String beanName, BeanContext beanContext) throws java.io.IOException, ClassNotFoundException { > ++ public static Object instantiate(ClassLoader cls, String beanName, BeanContext beanContext) throws IOException, ClassNotFoundException { > + return Beans.instantiate(cls, beanName, beanContext, null); > + } > + > +@@ -135,19 +150,19 @@ > + * @param beanContext The BeanContext in which to nest the new bean > + * @param initializer The AppletInitializer for the new bean > + * > +- * @exception java.lang.ClassNotFoundException if the class of a serialized > ++ * @exception ClassNotFoundException if the class of a serialized > + * object could not be found. > +- * @exception java.io.IOException if an I/O error occurs. > ++ * @exception IOException if an I/O error occurs. > + */ > + > + public static Object instantiate(ClassLoader cls, String beanName, BeanContext beanContext, AppletInitializer initializer) > +- throws java.io.IOException, ClassNotFoundException { > ++ throws IOException, ClassNotFoundException { > + > +- java.io.InputStream ins; > +- java.io.ObjectInputStream oins = null; > ++ InputStream ins; > ++ ObjectInputStream oins = null; > + Object result = null; > + boolean serialized = false; > +- java.io.IOException serex = null; > ++ IOException serex = null; > + > + // If the given classloader is null, we check if an > + // system classloader is available and (if so) > +@@ -166,8 +181,8 @@ > + // Try to find a serialized object with this name > + final String serName = beanName.replace('.','/').concat(".ser"); > + final ClassLoader loader = cls; > +- ins = (InputStream)java.security.AccessController.doPrivileged > +- (new java.security.PrivilegedAction() { > ++ ins = (InputStream)AccessController.doPrivileged > ++ (new PrivilegedAction() { > + public Object run() { > + if (loader == null) > + return ClassLoader.getSystemResourceAsStream(serName); > +@@ -185,7 +200,7 @@ > + result = oins.readObject(); > + serialized = true; > + oins.close(); > +- } catch (java.io.IOException ex) { > ++ } catch (IOException ex) { > + ins.close(); > + // Drop through and try opening the class. But remember > + // the exception in case we can't find the class either. > +@@ -264,8 +279,8 @@ > + > + final ClassLoader cloader = cls; > + objectUrl = (URL) > +- java.security.AccessController.doPrivileged > +- (new java.security.PrivilegedAction() { > ++ AccessController.doPrivileged > ++ (new PrivilegedAction() { > + public Object run() { > + if (cloader == null) > + return ClassLoader.getSystemResource > +@@ -377,10 +392,11 @@ > + * @return True if we are running in an application construction > + * environment. > + * > +- * @see java.beans.DesignMode > ++ * @see DesignMode > + */ > + public static boolean isDesignTime() { > +- return designTime; > ++ Object value = AppContext.getAppContext().get(DESIGN_TIME); > ++ return (value instanceof Boolean) && (Boolean) value; > + } > + > + /** > +@@ -393,11 +409,12 @@ > + * false in a server environment or if an application is > + * running as part of a batch job. > + * > +- * @see java.beans.Visibility > ++ * @see Visibility > + * > + */ > + public static boolean isGuiAvailable() { > +- return guiAvailable; > ++ Object value = AppContext.getAppContext().get(GUI_AVAILABLE); > ++ return (value instanceof Boolean) ? (Boolean) value : !GraphicsEnvironment.isHeadless(); > + } > + > + /** > +@@ -423,7 +440,7 @@ > + if (sm != null) { > + sm.checkPropertiesAccess(); > + } > +- designTime = isDesignTime; > ++ AppContext.getAppContext().put(DESIGN_TIME, Boolean.valueOf(isDesignTime)); > + } > + > + /** > +@@ -449,14 +466,7 @@ > + if (sm != null) { > + sm.checkPropertiesAccess(); > + } > +- guiAvailable = isGuiAvailable; > +- } > +- > +- > +- private static boolean designTime; > +- private static boolean guiAvailable; > +- static { > +- guiAvailable = !GraphicsEnvironment.isHeadless(); > ++ AppContext.getAppContext().put(GUI_AVAILABLE, Boolean.valueOf(isGuiAvailable)); > + } > + } > + > +@@ -501,7 +511,7 @@ > + > + class BeansAppletContext implements AppletContext { > + Applet target; > +- java.util.Hashtable imageCache = new java.util.Hashtable(); > ++ Hashtable imageCache = new Hashtable(); > + > + BeansAppletContext(Applet target) { > + this.target = target; > +@@ -546,8 +556,8 @@ > + return null; > + } > + > +- public java.util.Enumeration getApplets() { > +- java.util.Vector applets = new java.util.Vector(); > ++ public Enumeration getApplets() { > ++ Vector applets = new Vector(); > + applets.addElement(target); > + return applets.elements(); > + } > +@@ -573,7 +583,7 @@ > + return null; > + } > + > +- public java.util.Iterator getStreamKeys(){ > ++ public Iterator getStreamKeys(){ > + // We do nothing. > + return null; > + } > +diff -r 62a84e564a8c -r 27dabbdfdcac test/java/beans/Beans/6669869/TestDesignTime.java > +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 > ++++ openjdk/jdk/test/java/beans/Beans/6669869/TestDesignTime.java Thu Feb 05 17:00:57 2009 +0300 > +@@ -0,0 +1,52 @@ > ++/* > ++ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. > ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. > ++ * > ++ * This code is free software; you can redistribute it and/or modify it > ++ * under the terms of the GNU General Public License version 2 only, as > ++ * published by the Free Software Foundation. > ++ * > ++ * This code is distributed in the hope that it will be useful, but WITHOUT > ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or > ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License > ++ * version 2 for more details (a copy is included in the LICENSE file that > ++ * accompanied this code). > ++ * > ++ * You should have received a copy of the GNU General Public License version > ++ * 2 along with this work; if not, write to the Free Software Foundation, > ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. > ++ * > ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, > ++ * CA 95054 USA or visit www.sun.com if you need additional information or > ++ * have any questions. > ++ */ > ++ > ++/* > ++ * @test > ++ * @bug 6669869 > ++ * @summary Tests DesignTime property in different application contexts > ++ * @author Sergey Malenkov > ++ */ > ++ > ++import java.beans.Beans; > ++import sun.awt.SunToolkit; > ++ > ++public class TestDesignTime implements Runnable { > ++ public static void main(String[] args) throws InterruptedException { > ++ if (Beans.isDesignTime()) { > ++ throw new Error("unexpected DesignTime property"); > ++ } > ++ Beans.setDesignTime(!Beans.isDesignTime()); > ++ ThreadGroup group = new ThreadGroup("$$$"); > ++ Thread thread = new Thread(group, new TestDesignTime()); > ++ thread.start(); > ++ thread.join(); > ++ } > ++ > ++ public void run() { > ++ SunToolkit.createNewAppContext(); > ++ if (Beans.isDesignTime()) { > ++ throw new Error("shared DesignTime property"); > ++ } > ++ } > ++} > +diff -r 62a84e564a8c -r 27dabbdfdcac test/java/beans/Beans/6669869/TestGuiAvailable.java > +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 > ++++ openjdk/jdk/test/java/beans/Beans/6669869/TestGuiAvailable.java Thu Feb 05 17:00:57 2009 +0300 > +@@ -0,0 +1,53 @@ > ++/* > ++ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. > ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. > ++ * > ++ * This code is free software; you can redistribute it and/or modify it > ++ * under the terms of the GNU General Public License version 2 only, as > ++ * published by the Free Software Foundation. > ++ * > ++ * This code is distributed in the hope that it will be useful, but WITHOUT > ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or > ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License > ++ * version 2 for more details (a copy is included in the LICENSE file that > ++ * accompanied this code). > ++ * > ++ * You should have received a copy of the GNU General Public License version > ++ * 2 along with this work; if not, write to the Free Software Foundation, > ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. > ++ * > ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, > ++ * CA 95054 USA or visit www.sun.com if you need additional information or > ++ * have any questions. > ++ */ > ++ > ++/* > ++ * @test > ++ * @bug 6669869 > ++ * @summary Tests GuiAvailable property in different application contexts > ++ * @author Sergey Malenkov > ++ */ > ++ > ++import java.awt.GraphicsEnvironment; > ++import java.beans.Beans; > ++import sun.awt.SunToolkit; > ++ > ++public class TestGuiAvailable implements Runnable { > ++ public static void main(String[] args) throws InterruptedException { > ++ if (Beans.isGuiAvailable() == GraphicsEnvironment.isHeadless()) { > ++ throw new Error("unexpected GuiAvailable property"); > ++ } > ++ Beans.setGuiAvailable(!Beans.isGuiAvailable()); > ++ ThreadGroup group = new ThreadGroup("$$$"); > ++ Thread thread = new Thread(group, new TestGuiAvailable()); > ++ thread.start(); > ++ thread.join(); > ++ } > ++ > ++ public void run() { > ++ SunToolkit.createNewAppContext(); > ++ if (Beans.isGuiAvailable() == GraphicsEnvironment.isHeadless()) { > ++ throw new Error("shared GuiAvailable property"); > ++ } > ++ } > ++} -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Wed Jul 27 16:36:29 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Thu, 28 Jul 2011 00:36:29 +0100 Subject: Review Request: zero-methodHandle 7009923-regression In-Reply-To: <4E2FD39B.80207@zafena.se> References: <4E1C5E4F.1080307@zafena.se> <20110712145800.GL14335@shelob.middle-earth.co.uk> <4E1C61C6.9000506@zafena.se> <20110727002622.GE17134@rivendell.middle-earth.co.uk> <4E2FD39B.80207@zafena.se> Message-ID: <20110727233629.GI22822@rivendell.middle-earth.co.uk> On 11:00 Wed 27 Jul , Xerxes R?nby wrote: > On 2011-07-27 02:26, Dr Andrew John Hughes wrote: > > On 17:01 Tue 12 Jul , Xerxes R?nby wrote: > >> On 2011-07-12 16:58, Andrew John Hughes wrote: > >>> On Tue, Jul 12, 2011 at 04:46:39PM +0200, Xerxes R?nby wrote: > >>>> Hi all! > >>>> > >>>> This webrev updates Zero to handle the > >>>> Exceptions::throw_stack_overflow_exception API change. > >>>> > >>>> http://labb.zafena.se/openjdk/zero-methodHandle-7009923-regression/ > > >>> Have you pushed this to any of the IcedTea repositories? > >> > >> No. i have only posted the patch to the icedtea bugzilla: > >> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=753 > > > > Please push such fixes to IcedTea in future. > > I've added this to the IcedTea7 forest. > > Thank you for merging this patch so that it gets included before the 28'th What's the 28th got to do with anything? We haven't yet set any specific release date for IcedTea7 2.0. , I will quickly > fill in its current upstream status: > > The patch have been picked up upstream and been placed in a pending review queue: > http://hg.openjdk.java.net/mlvm/mlvm/hotspot/file/tip/meth-zero-7066143.patch > I have since then been waiting some weeks for the patch to get reviewed. > > Yesterday on the 26'th of July Christian have started to examining the patch. > http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2011-July/005968.html > > When it gets merged upstream and gets assigned a bug id then we can simply merge in the > change from upstream. It's already in IcedTea7. Job done. > > > I don't know which versions of > > IcedTea6 it affects, but it will need to go there as well. > > No, This patch do not need to be backported to IcedTea 6 unless the whole invoke dynamic > JSR292 gets backported, wich are unlikely to happen since its a OpenJDK 7 feature. > I guess we'll know when I get time to add hs21 support to IcedTea6 HEAD. A stable branch has been around for a while. If you have the time, you can do it instead. Just needs a hotspot.map update, a few acinclude.m4/README changes and lots of testing :-) > Cheers > Xerxes -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From bugzilla-daemon at icedtea.classpath.org Wed Jul 27 21:07:29 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 28 Jul 2011 04:07:29 +0000 Subject: [Bug 764] icedtea 1.8.9 fails to build in CachedJarFileCallback.java In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=764 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |6-1.8.10 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From ptisnovs at redhat.com Thu Jul 28 03:08:58 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Thu, 28 Jul 2011 12:08:58 +0200 Subject: Reviewer needed: backport of "S6669869: Beans.isDesignTime() and other queries should be per-AppContext" into IcedTea6 HEAD In-Reply-To: <20110727181223.GC22822@rivendell.middle-earth.co.uk> References: <4E300F9E.3010306@redhat.com> <20110727181223.GC22822@rivendell.middle-earth.co.uk> Message-ID: <4E31353A.2080706@redhat.com> Dr Andrew John Hughes wrote: > On 15:16 Wed 27 Jul , Pavel Tisnovsky wrote: >> Greetings, >> >> is it possible to push the backport of fix "S6669869: >> Beans.isDesignTime() and other queries should be per-AppContext" >> into IcedTea6 HEAD please? >> >> The behaviour of this fix was checked on RHELs. >> >> Please note, that the fix seems to be long and difficult, but in fact >> the changes are quite simple (four lines of code contains the fix, other >> changes are just caused by not using full class names with theirs packages). >> > > Ugh, I wish they wouldn't create such noisy changesets. I'm sorry, blame Oracle ;-) > >> Here's ChangeLog entry: >> >> 2011-07-27 Pavel Tisnovsky >> >> * Makefile.am: added new patch >> * NEWS: updated with backport >> * >> patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch: >> Backport of 6669869. >> >> >> Can anybody please review this change? >> > > I'm not sure about this. Won't it change the runtime behaviour of these methods? This change allows to call both methods (namely isDesignTime() & isGuiAvailable()) also from other application context. If this method is called from current app. context, nothing has changed. AFAIK - these method are quite useless when they can not be called from other context, especially in the case of applets. P. From ahughes at redhat.com Thu Jul 28 07:02:42 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Thu, 28 Jul 2011 15:02:42 +0100 Subject: Review Request: zero/shark doesn't build after b147-fcs In-Reply-To: <4E314746.7030302@LGonQn.Org> References: <4E1C5E4F.1080307@zafena.se> <4E2049CA.8060506@LGonQn.Org> <20110715145127.GA3311@redhat.com> <4E314746.7030302@LGonQn.Org> Message-ID: <20110728140242.GS22822@rivendell.middle-earth.co.uk> On 07:25 Thu 28 Jul , Chris Phillips wrote: > Hi Christian, > > Hmm missed this yesterday, > The webrev is updated... > > http://lgonqn.org/temp/ChrisPhi/webrev-methodHandles_zero.hpp-missing++ > Can you update IcedTea7 with the change? The earlier patch already went in. Thanks. > > Chris > > On 27/07/11 02:31 PM, Christian Thalinger wrote: > > On Jul 15, 2011, at 4:51 PM, Gary Benson wrote: > > > >> Chris Phillips wrote: > >>> http://lgonqn.org/temp/ChrisPhi/webrev-sharkContext.hpp-typo-in-assert/ > >> Nice catch :) > >> > >>> http://lgonqn.org/temp/ChrisPhi/webrev-methodHandles_zero.hpp-missing/ > >> You could probably make adapter_code_size be 0, or something small > >> 1ike 1*k. Nothing will presumably be generated into these buffers > >> after all? > > Chris, can you update the webrev so I can be sure the change works? > > > > -- Christian > > > >> Cheers, > >> Gary > >> > >> -- > >> http://gbenson.net/ > > > > > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ptisnovs at icedtea.classpath.org Thu Jul 28 07:42:17 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 28 Jul 2011 14:42:17 +0000 Subject: /hg/gfx-test: Added new tests for lines rendering. Message-ID: changeset f09f02f3af4f in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=f09f02f3af4f author: Pavel Tisnovsky date: Thu Jul 28 16:43:52 2011 +0200 Added new tests for lines rendering. diffstat: ChangeLog | 3 + src/org/gfxtest/testsuites/NormalLines.java | 348 ++++++++++++++++++++++++++++ 2 files changed, 351 insertions(+), 0 deletions(-) diffs (388 lines): diff -r 623e7a4847bf -r f09f02f3af4f ChangeLog --- a/ChangeLog Wed Jul 27 17:18:56 2011 +0200 +++ b/ChangeLog Thu Jul 28 16:43:52 2011 +0200 @@ -1,3 +1,6 @@ +2011-07-28 Pavel Tisnovsky + * src/org/gfxtest/testsuites/NormalLines.java: added new tests + 2011-07-27 Pavel Tisnovsky * Makefile: Added new build targets - doc and clean-doc diff -r 623e7a4847bf -r f09f02f3af4f src/org/gfxtest/testsuites/NormalLines.java --- a/src/org/gfxtest/testsuites/NormalLines.java Wed Jul 27 17:18:56 2011 +0200 +++ b/src/org/gfxtest/testsuites/NormalLines.java Thu Jul 28 16:43:52 2011 +0200 @@ -58,10 +58,346 @@ public class NormalLines extends GfxTest { + /** + * Width of border where lines are not drawn + */ + private static final int BORDER_WIDTH = 30; + + /** + * Step used for drawing sequence of horizontal and/or vertical lines + */ + private static final int STEP = 20; + + /** + * Test basic behavior of method Graphics.drawLine(). + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawLine(TestImage image, Graphics2D graphics) + { + // set drawing color + graphics.setColor(Color.BLACK); + + // draw two diagonals along the whole test image + graphics.drawLine(BORDER_WIDTH, BORDER_WIDTH, image.getWidth() - BORDER_WIDTH, image.getHeight() - BORDER_WIDTH); + graphics.drawLine(BORDER_WIDTH, image.getHeight() - BORDER_WIDTH, image.getWidth() - BORDER_WIDTH, BORDER_WIDTH); + + // test return value + return TestResult.PASSED; + } + + /** + * Test basic behavior of method Graphics.drawLine(). Here vertical lines + * are drawn using various colors. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawLineVert1(TestImage image, Graphics2D graphics) + { + int colorIndex = 0; + for (int x = BORDER_WIDTH; x < image.getWidth() - BORDER_WIDTH; x += STEP) + { + // set drawing color + graphics.setColor(ColorPalette.getColor(colorIndex++)); + // draw vertical line + graphics.drawLine(x, BORDER_WIDTH, x, image.getHeight() - BORDER_WIDTH); + } + + // test return value + return TestResult.PASSED; + } + + /** + * Test basic behavior of method Graphics.drawLine(). Here vertical lines + * are drawn using one color but with various stroke width using default caps. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawLineVert2(TestImage image, Graphics2D graphics) + { + // set drawing color + graphics.setColor(Color.BLACK); + float strokeWidth = 0; + for (int x = BORDER_WIDTH; x < image.getWidth() - BORDER_WIDTH; x += STEP) + { + // set stroke width + graphics.setStroke(new BasicStroke(strokeWidth)); + // increase stroke width + strokeWidth += 0.5; + // draw vertical line + graphics.drawLine(x, BORDER_WIDTH, x, image.getHeight() - BORDER_WIDTH); + } + + // test return value + return TestResult.PASSED; + } + + /** + * Test basic behavior of method Graphics.drawLine(). Here vertical lines + * are drawn using one color but with various stroke width using CAP_BUTT + * to render both line end points. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawLineVert3(TestImage image, Graphics2D graphics) + { + // set drawing color + graphics.setColor(Color.BLACK); + float strokeWidth = 0; + for (int x = BORDER_WIDTH; x < image.getWidth() - BORDER_WIDTH; x += STEP) + { + // set stroke width + graphics.setStroke(new BasicStroke(strokeWidth, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); + // increase stroke width + strokeWidth += 0.5; + // draw vertical line + graphics.drawLine(x, BORDER_WIDTH, x, image.getHeight() - BORDER_WIDTH); + } + + // test return value + return TestResult.PASSED; + } + + /** + * Test basic behavior of method Graphics.drawLine(). Here vertical lines + * are drawn using one color but with various stroke width using CAP_ROUND + * to render both line end points. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawLineVert4(TestImage image, Graphics2D graphics) + { + // set drawing color + graphics.setColor(Color.BLACK); + float strokeWidth = 0; + for (int x = BORDER_WIDTH; x < image.getWidth() - BORDER_WIDTH; x += STEP) + { + // set stroke width + graphics.setStroke(new BasicStroke(strokeWidth, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL)); + // increase stroke width + strokeWidth += 0.5; + // draw vertical line + graphics.drawLine(x, BORDER_WIDTH, x, image.getHeight() - BORDER_WIDTH); + } + + // test return value + return TestResult.PASSED; + } + + + /** + * Test basic behavior of method Graphics.drawLine(). Here vertical lines + * are drawn using one color but with various stroke width using CAP_SQUARE + * to render both line end points. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawLineVert5(TestImage image, Graphics2D graphics) + { + // set drawing color + graphics.setColor(Color.BLACK); + float strokeWidth = 0; + for (int x = BORDER_WIDTH; x < image.getWidth() - BORDER_WIDTH; x += STEP) + { + // set stroke width + graphics.setStroke(new BasicStroke(strokeWidth, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL)); + // increase stroke width + strokeWidth += 0.5; + // draw vertical line + graphics.drawLine(x, BORDER_WIDTH, x, image.getHeight() - BORDER_WIDTH); + } + + // test return value + return TestResult.PASSED; + } + + /** + * Test basic behavior of method Graphics.drawLine(). Here horizontal lines + * are drawn using various colors. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawLineHors1(TestImage image, Graphics2D graphics) + { + int colorIndex = 0; + for (int y = BORDER_WIDTH; y < image.getWidth() - BORDER_WIDTH; y += STEP) + { + // set drawing color + graphics.setColor(ColorPalette.getColor(colorIndex++)); + // draw horizontal line + graphics.drawLine(BORDER_WIDTH, y, image.getWidth() - BORDER_WIDTH, y); + } + + // test return value + return TestResult.PASSED; + } + + /** + * Test basic behavior of method Graphics.drawLine(). Here horizontal lines + * are drawn using one color but with various stroke width using default caps. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawLineHors2(TestImage image, Graphics2D graphics) + { + // set drawing color + graphics.setColor(Color.BLACK); + float strokeWidth = 0; + for (int y = BORDER_WIDTH; y < image.getWidth() - BORDER_WIDTH; y += STEP) + { + // set stroke width + graphics.setStroke(new BasicStroke(strokeWidth)); + // increase stroke width + strokeWidth += 0.5; + // draw horizontal line + graphics.drawLine(BORDER_WIDTH, y, image.getWidth() - BORDER_WIDTH, y); } + + // test return value + return TestResult.PASSED; + } + + /** + * Test basic behavior of method Graphics.drawLine(). Here horizontal lines + * are drawn using one color but with various stroke width using CAP_BUTT + * to render both line end points. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawLineHors3(TestImage image, Graphics2D graphics) + { + // set drawing color + graphics.setColor(Color.BLACK); + float strokeWidth = 0; + for (int y = BORDER_WIDTH; y < image.getWidth() - BORDER_WIDTH; y += STEP) + { + // set stroke width + graphics.setStroke(new BasicStroke(strokeWidth, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); + // increase stroke width + strokeWidth += 0.5; + // draw horizontal line + graphics.drawLine(BORDER_WIDTH, y, image.getWidth() - BORDER_WIDTH, y); + } + + // test return value + return TestResult.PASSED; + } + + /** + * Test basic behavior of method Graphics.drawLine(). Here horizontal lines + * are drawn using one color but with various stroke width using CAP_ROUND + * to render both line end points. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawLineHors4(TestImage image, Graphics2D graphics) + { + // set drawing color + graphics.setColor(Color.BLACK); + float strokeWidth = 0; + for (int y = BORDER_WIDTH; y < image.getWidth() - BORDER_WIDTH; y += STEP) + { + // set stroke width + graphics.setStroke(new BasicStroke(strokeWidth, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL)); + // increase stroke width + strokeWidth += 0.5; + // draw horizontal line + graphics.drawLine(BORDER_WIDTH, y, image.getWidth() - BORDER_WIDTH, y); + } + + // test return value + return TestResult.PASSED; + } + + + /** + * Test basic behavior of method Graphics.drawLine(). Here horizontal lines + * are drawn using one color but with various stroke width using CAP_SQUARE + * to render both line end points. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawLineHors5(TestImage image, Graphics2D graphics) + { + // set drawing color + graphics.setColor(Color.BLACK); + float strokeWidth = 0; + for (int y = BORDER_WIDTH; y < image.getWidth() - BORDER_WIDTH; y += STEP) + { + // set stroke width + graphics.setStroke(new BasicStroke(strokeWidth, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL)); + // increase stroke width + strokeWidth += 0.5; + // draw horizontal line + graphics.drawLine(BORDER_WIDTH, y, image.getWidth() - BORDER_WIDTH, y); + } + + // test return value + return TestResult.PASSED; + } + + /** + * Draw line entity using various rendering styles. This method is + * automatically called by test harness. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @param testNumber + * test number set by test harness + * @param entityRenderingStyle + * entity rendering style set by test harness + */ @Override protected void drawEntity(TestImage image, Graphics2D graphics, int testNumber, EntityRenderingStyle entityRenderingStyle) { + // set entity rendering style graphics.setStroke(new BasicStroke(entityRenderingStyle.getWidth(), entityRenderingStyle.getCap(), entityRenderingStyle.getJoin())); + // calculate center of the image int xc = image.getCenterX(); int yc = image.getCenterY(); for (int i = 0; i < ANGLES; i++) @@ -78,15 +414,27 @@ int y2 = yc + (int)(majorRadius*sin); graphics.drawLine(x1, y1, x2, y2); } + // draw cross to mark center of the test image drawCross(graphics, xc, yc, CROSS_SIZE); } + /** + * Method which is automatically called by test harness. + * + * @param configuration + * current graphics test configuration + */ @Override protected void runOtherTests(GfxTestConfiguration configuration) { drawEntityWithVariousStyles(configuration, true, false, true, false, false); } + /** + * Entry point to the test suite. + * + * @param args not used in this case + */ public static void main(String[] args) { new NormalLines().runTestSuite(args); From smohammad at redhat.com Thu Jul 28 07:47:05 2011 From: smohammad at redhat.com (Saad Mohammad) Date: Thu, 28 Jul 2011 10:47:05 -0400 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <20110725135400.GB17692@rivendell.middle-earth.co.uk> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E23FACA.3070305@redhat.com> <4E24998A.9050507@redhat.com> <4E252893.8050809@redhat.com> <4E259ABE.2070606@redhat.com> <20110720202650.GP17111@redhat.com> <4E27D21A.1070102@redhat.com> <20110725135400.GB17692@rivendell.middle-earth.co.uk> Message-ID: <4E317669.7070600@redhat.com> On 07/25/2011 09:54 AM, Dr Andrew John Hughes wrote: > On 09:15 Thu 21 Jul , Jiri Vanek wrote: >> On 07/20/2011 10:26 PM, Deepak Bhole wrote: >>> * Saad Mohammad [2011-07-19 11:04]: >>>>> I have attached the updated copy of Patch1. >>>>> >>>>> On 07/19/2011 02:47 AM, Jiri Vanek wrote: >>>>>>> >> >>>>>>> >>I hope this is the 110% for Patch1! ;) >>>>>> >99% ;) >>>>> This is for sure the 110% ;) >>>>> >>>>> -- >>>>> Cheers, >>>>> Saad Mohammad >>>>> >>> Hi Saad, >>> >>> I have a few minor corrections for this one... >>> >>>>> + >>>>> + if (appTemplate == null&& launchJNLP == null) >>>>> + throw new NullPointerException( >>>>> + "Template JNLP file and Launching JNLP file are both null."); >>>>> + else if (appTemplate == null) >>>>> + throw new NullPointerException("Template JNLP file is null."); >>>>> + else if (launchJNLP == null) >>>>> + throw new NullPointerException("Launching JNLP file is null."); >>>>> + >>> Throwing RuntimeExceptions is generally not a good idea. Consider making >>> the above a checked exception. >> I believe nullpointer exception is correct here. Or it will make mess later. >> Although to repalce it with JNLMatch exception can do no harm. >> > I don't see the point of throwing an NPE, catching it and throwing it attached to something else. The reason why I am doing this ^, is so the class that is creating an instance of JNLPMatcher would not have to handle catching more than one exceptions. Generally if any exception is thrown from this constructor, it would results in the same outcome (JNLPMatcher failed to be initialized). Attaching the exception to the new thrown exception would help identify the cause. An alternative can be to remove the try/catch block completely and let the compiler know that the contructor throws NullPointerException and IOException(while parsing). In this case, the class that initializes JNLPMatcher would have to catch all exceptions, or the two exceptions individually. I think both methods of handing exceptions will work great, but please let me know what you think? >>>>> + XMLElement appTemplateXML = new XMLElement(); >>>>> + XMLElement launchJNLPXML = new XMLElement(); >>>>> + >>>>> + // Remove the comments and CDATA from the JNLP file >>>>> + final PipedInputStream pinTemplate = new PipedInputStream(); >>>>> + final PipedOutputStream poutTemplate = new PipedOutputStream(pinTemplate); >>>>> + appTemplateXML.sanitizeInput(appTemplate, poutTemplate); >>>>> + >>>>> + final PipedInputStream pinJNLPFile = new PipedInputStream(); >>>>> + final PipedOutputStream poutJNLPFile = new PipedOutputStream(pinJNLPFile); >>>>> + launchJNLPXML.sanitizeInput(launchJNLP, poutJNLPFile); >>>>> + >>> The above streams are never closed. >> I' guess, ... >> >> ...see previous email.. >> >> ...l) s.close(); >> } >> >> >> around s.close() yo can possibly clsoe io exception into JNLPMatcherException. >> > You need a finally block. Yes, I will add the finally block. Thanks :) >> >> Regards J. >> -- Cheers, Saad Mohammad From bugzilla-daemon at icedtea.classpath.org Thu Jul 28 09:58:48 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 28 Jul 2011 16:58:48 +0000 Subject: [Bug 767] New: Annotation Processing Filer.getResource() always throws FileNotFoundException Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=767 Summary: Annotation Processing Filer.getResource() always throws FileNotFoundException Product: IcedTea Version: 7-hg Platform: all OS/Version: All Status: NEW Severity: critical Priority: P5 Component: IcedTea7 AssignedTo: ahughes at redhat.com ReportedBy: jperkins at redhat.com CC: unassigned at icedtea.classpath.org Created an attachment (id=555) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=555) Patch for the bug. When using a javax.annotation.processing.Filer.getResource() the implementation com.sun.tools.javac.processing.JavacFiler.getResource() always throws a FileNotFoundException due to using the javax.tools.JavaFileManager.getFileForInput() instead of getFileForOutput(). Since the file has not yet been compiled there is never an input file to be found which causes the FileNoutFoundException. Here is the link to the bug ticket at OpenJDK http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7057153. I've compiled with the attached patch and everything works as expected. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From smohammad at redhat.com Thu Jul 28 11:33:05 2011 From: smohammad at redhat.com (Saad Mohammad) Date: Thu, 28 Jul 2011 14:33:05 -0400 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E2D9A23.7030108@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E282AC8.1070900@redhat.com> <4E2D8C74.5060901@redhat.com> <4E2D9A23.7030108@redhat.com> Message-ID: <4E31AB61.9020806@redhat.com> On 07/25/2011 12:30 PM, Omair Majid wrote: > On 07/25/2011 11:32 AM, Saad Mohammad wrote: >> On 07/21/2011 09:34 AM, Omair Majid wrote: >>> On 07/15/2011 10:21 AM, Saad Mohammad wrote: >>>> I have updated both the patches that includes the change that you have >>>> recommended and requested. >>> >>> I haven't looked into this in too much detail, but I have a few >>> questions (and concerns) after reading this patch. They are included >>> in line, below. >>> >>> >>>> + >>>> + if (js.anyJarsSigned()) { >>>> + // If there are any signed Jars, check if JNLP file is signed >>>> + >>>> + if (JNLPRuntime.isDebug()) >>>> + System.out.println("STARTING check for signed JNLP file..."); >>>> + >>>> + for (int i = 0; i< jars.length; i++) { >>>> + List eachJar = new ArrayList(); >>>> + JarSigner signer = new JarSigner(); >>>> + eachJar.add(jars[i]); // Adds only the single jar to check >>>> + // if the jar has a valid signature >>>> + >>> >>> There is already JarSigner object that JNLPClassLoader is using. Is >>> there a reason for creating this new JarSigner object? >> >> I can use the JarSigner object that already exists. >> > > Well, I am not sure if that's the right thing. Perhaps it maintains > some state that you would not be fine with? I was really hoping you > would explain why you are using a new JarSigner object :) I will not need the new JarSigner object because the only purpose of it is verifying individual jars. I thought every time you wanted to verify a jar with the same JarSigner object, it would append each jar file as part of the arraylists of unverifiedJars or verifiedJars. Therefore if I used the JarSigner that already exists, it would break my IF condition that verifies the signature of each jar(allJarsSigned()) because it would have previous cached jar files that were verified using the same JarSigner object before. However, I was incorrect, JarSigner intializes a new arraylist every time verifyJars() is called. Therefore, I can still use the method, allJarsSigned(), for checking the signature of each jar file. That's why I will not need a new JarSigner object. :) > >>> >>>> + try { >>>> + signer.verifyJars(eachJar, tracker); >>>> + >>> >>> The jarsigner js has already verified a subset of these earlier. Do >>> you really want to verify everything again? >> >> This is the method that is checking each jar file individually. So >> 'eachJar' stores only one jar file at a time and then checks if that jar >> file is signed or not. It then uses allJarsSigned() to validate if the >> jar file is signed. I added this because I did not find a solution that >> can track whether an individual jar file is signed or not. The previous >> check that JarSigner does uses all the jar resources (passed as >> parameter) and does not keep track which jar files are signed and which >> are not. Unless I am mistaken and there is a way of determining this. >> > > Ah, that makes sense now. I suppose you only want to make sure that > only a signed jar file contains the signed jnlp file. I did a bit more of research. The link you have sent me & some other website mentions that the jar file with the main class must be the ONLY one that is checked for a signed JNLP file. > >>> So here's what I am really confused about: what does matching do? I >>> see that if there is no signed jnlp file, the code runs normally. If >>> there is a correctly signed jnlp file the code also continues >>> normally. So why are signed jnlp files needed at all? What problem are >>> they solving? >>> >>> I guess I am missing something obvious; an explanation of what this >>> code is trying to do would be appreciated. >> >> If there is no signed JNLP file, the code runs normally. (as you >> mentioned above) >> If there is a matching signed JNLP file, the code runs normally. (as you >> mentioned above) >> If there is an unmatched signed JNLP file, the application is not >> initialized and fails to start. The reason why I found this beneficial >> is because the signer may not want their signed jars to be used if the >> launching JNLP file is not the same as the one the signer provides. >> Anyone can just create their own JNLP file to launch the application as >> long as they know the location of the resource(s). I think this way the >> signer has the option to put restrictions onto their signed jar file; so >> under certain conditions the jar files can be used only if the launching >> JNLP file is "approved" by the signer. I think another reason why a >> signer might do this is so the signer does not have another person >> running their code and using their signed jar files as resource (using >> the API? If they know it). I am not sure about this one, but it makes >> sense. >> > > Personally, I don't see that as a problem that Sun/Oracle would > attempt to solve (what's so special about this "approved" file?). I > suspect it has more to do with granting additional security privileges. > > I found this thread [1] after a quick search and it mentions a number > of things you may find interesting (including secure system > properties). There is probably a lot more information on this. Could > you please look around some more and tell us what you find? I been reading couple of forum posts and it seems that you may be right. Certain properties need JNLP files to be signed. In the same forum, it also mentions: "AFAIU, the only reason this JNLP needs to be signed is because java-vm-args were used." (http://forums.oracle.com/forums/thread.jspa?threadID=1359245&tstart=0) I am unable to find detailed documentation on these features but I have to look more into this. After my patch2 and the fixes for patch1 are both committed, I will take a look into this more and find other advantages of signing a JNLP file. As of now, I want to push patch2 first because I think that is also one of the key features of signing a JNLP file. > > Thanks, > Omair > > [1] > http://forums.oracle.com/forums/thread.jspa?threadID=1303509&tstart=105 -- Cheers, Saad Mohammad From omajid at redhat.com Thu Jul 28 12:01:11 2011 From: omajid at redhat.com (Omair Majid) Date: Thu, 28 Jul 2011 15:01:11 -0400 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E31AB61.9020806@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E282AC8.1070900@redhat.com> <4E2D8C74.5060901@redhat.com> <4E2D9A23.7030108@redhat.com> <4E31AB61.9020806@redhat.com> Message-ID: <4E31B1F7.8010808@redhat.com> On 07/28/2011 02:33 PM, Saad Mohammad wrote: > On 07/25/2011 12:30 PM, Omair Majid wrote: >> On 07/25/2011 11:32 AM, Saad Mohammad wrote: >>> On 07/21/2011 09:34 AM, Omair Majid wrote: >>>> On 07/15/2011 10:21 AM, Saad Mohammad wrote: >>>>> I have updated both the patches that includes the change that you have >>>>> recommended and requested. >>>> >>>> I haven't looked into this in too much detail, but I have a few >>>> questions (and concerns) after reading this patch. They are included >>>> in line, below. >>>> >>>> >>>>> + >>>>> + if (js.anyJarsSigned()) { >>>>> + // If there are any signed Jars, check if JNLP file is signed >>>>> + >>>>> + if (JNLPRuntime.isDebug()) >>>>> + System.out.println("STARTING check for signed JNLP file..."); >>>>> + >>>>> + for (int i = 0; i< jars.length; i++) { >>>>> + List eachJar = new ArrayList(); >>>>> + JarSigner signer = new JarSigner(); >>>>> + eachJar.add(jars[i]); // Adds only the single jar to check >>>>> + // if the jar has a valid signature >>>>> + >>>> >>>> There is already JarSigner object that JNLPClassLoader is using. Is >>>> there a reason for creating this new JarSigner object? >>> >>> I can use the JarSigner object that already exists. >>> >> >> Well, I am not sure if that's the right thing. Perhaps it maintains >> some state that you would not be fine with? I was really hoping you >> would explain why you are using a new JarSigner object :) > > I will not need the new JarSigner object because the only purpose of it > is verifying individual jars. I thought every time you wanted to verify > a jar with the same JarSigner object, it would append each jar file as > part of the arraylists of unverifiedJars or verifiedJars. Therefore if I > used the JarSigner that already exists, it would break my IF condition > that verifies the signature of each jar(allJarsSigned()) because it > would have previous cached jar files that were verified using the same > JarSigner object before. > > However, I was incorrect, JarSigner intializes a new arraylist every > time verifyJars() is called. Therefore, I can still use the method, > allJarsSigned(), for checking the signature of each jar file. That's why > I will not need a new JarSigner object. :) > Given that js is an instance variables of the class, things may go wrong if js is used somewhere and that code assumes js contains all jars. Even if it's quite safe, the internal state modification means I am leaning towards a new JarSigner. >> >>>> >>>>> + try { >>>>> + signer.verifyJars(eachJar, tracker); >>>>> + >>>> >>>> The jarsigner js has already verified a subset of these earlier. Do >>>> you really want to verify everything again? >>> >>> This is the method that is checking each jar file individually. So >>> 'eachJar' stores only one jar file at a time and then checks if that jar >>> file is signed or not. It then uses allJarsSigned() to validate if the >>> jar file is signed. I added this because I did not find a solution that >>> can track whether an individual jar file is signed or not. The previous >>> check that JarSigner does uses all the jar resources (passed as >>> parameter) and does not keep track which jar files are signed and which >>> are not. Unless I am mistaken and there is a way of determining this. >>> >> >> Ah, that makes sense now. I suppose you only want to make sure that >> only a signed jar file contains the signed jnlp file. > > I did a bit more of research. The link you have sent me & some other > website mentions that the jar file with the main class must be the ONLY > one that is checked for a signed JNLP file. > What if there is no main class? Can you please verify that the proprietary javaws behaves this way? Anyway, do you intend to post an updated patch to address this? Otherwise, as I mentioned before, your patch will download all jars (which makes the 'lazy' download mechanism useless). >> >>>> So here's what I am really confused about: what does matching do? I >>>> see that if there is no signed jnlp file, the code runs normally. If >>>> there is a correctly signed jnlp file the code also continues >>>> normally. So why are signed jnlp files needed at all? What problem are >>>> they solving? >>>> >>>> I guess I am missing something obvious; an explanation of what this >>>> code is trying to do would be appreciated. >>> >>> If there is no signed JNLP file, the code runs normally. (as you >>> mentioned above) >>> If there is a matching signed JNLP file, the code runs normally. (as you >>> mentioned above) >>> If there is an unmatched signed JNLP file, the application is not >>> initialized and fails to start. The reason why I found this beneficial >>> is because the signer may not want their signed jars to be used if the >>> launching JNLP file is not the same as the one the signer provides. >>> Anyone can just create their own JNLP file to launch the application as >>> long as they know the location of the resource(s). I think this way the >>> signer has the option to put restrictions onto their signed jar file; so >>> under certain conditions the jar files can be used only if the launching >>> JNLP file is "approved" by the signer. I think another reason why a >>> signer might do this is so the signer does not have another person >>> running their code and using their signed jar files as resource (using >>> the API? If they know it). I am not sure about this one, but it makes >>> sense. >>> >> >> Personally, I don't see that as a problem that Sun/Oracle would >> attempt to solve (what's so special about this "approved" file?). I >> suspect it has more to do with granting additional security privileges. >> >> I found this thread [1] after a quick search and it mentions a number >> of things you may find interesting (including secure system >> properties). There is probably a lot more information on this. Could >> you please look around some more and tell us what you find? > > I been reading couple of forum posts and it seems that you may be right. > Certain properties need JNLP files to be signed. In the same forum, it > also mentions: > "AFAIU, the only reason this JNLP needs to be signed is because > java-vm-args were used." > (http://forums.oracle.com/forums/thread.jspa?threadID=1359245&tstart=0) > > I am unable to find detailed documentation on these features but I have > to look more into this. After my patch2 and the fixes for patch1 are > both committed, I will take a look into this more and find other > advantages of signing a JNLP file. As of now, I want to push patch2 > first because I think that is also one of the key features of signing a > JNLP file. > Ah, nice find! That thread mentions that if there is a signed jnlp file and it does not match the original jnlp file then javaws should not run the jnlp application. This is exactly what your patch does :) Thanks, Omair From ptisnovs at redhat.com Thu Jul 28 12:13:05 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Thu, 28 Jul 2011 21:13:05 +0200 Subject: Reviewer needed: removing patch "patches/revert-6885123.patch" from IcedTea6 HEAD Message-ID: <4E31B4C1.8020606@redhat.com> Greetings, I'd like to remove patch "patches/revert-6885123.patch" from IcedTea6, because the behavior of JavaFileManager changed by the 6885123 is intended (ATM). This patch were pushed to IcedTea6 HEAD to not to break compatibility tests, but it is not necessary anymore. So is it ok to delete them? Note: the patch to be removed also contains regression test created by me. I'm going to rewrite the test to work correctly without this patch and I'll send its new version for review here. ChangeLog entry: 2011-07-28 Pavel Tisnovsky * Makefile.am: removed unused patch * patches/revert-6885123.patch: Removed this patch because reverting of change 6885123 is not necessary anymore (does not break compatibility tests anymore). Can anybody please review this change? Thank you in advance, Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: remove_revert_6885123_hg.diff Type: text/x-patch Size: 21179 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110728/ba547dd2/remove_revert_6885123_hg.diff From smohammad at redhat.com Thu Jul 28 13:53:16 2011 From: smohammad at redhat.com (Saad Mohammad) Date: Thu, 28 Jul 2011 16:53:16 -0400 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E31B1F7.8010808@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E282AC8.1070900@redhat.com> <4E2D8C74.5060901@redhat.com> <4E2D9A23.7030108@redhat.com> <4E31AB61.9020806@redhat.com> <4E31B1F7.8010808@redhat.com> Message-ID: <4E31CC3C.4090606@redhat.com> On 07/28/2011 03:01 PM, Omair Majid wrote: > On 07/28/2011 02:33 PM, Saad Mohammad wrote: >> On 07/25/2011 12:30 PM, Omair Majid wrote: >>> On 07/25/2011 11:32 AM, Saad Mohammad wrote: >>>> On 07/21/2011 09:34 AM, Omair Majid wrote: >>>>> On 07/15/2011 10:21 AM, Saad Mohammad wrote: >>>>>> I have updated both the patches that includes the change that you >>>>>> have >>>>>> recommended and requested. >>>>> >>>>> I haven't looked into this in too much detail, but I have a few >>>>> questions (and concerns) after reading this patch. They are included >>>>> in line, below. >>>>> >>>>> >>>>>> + >>>>>> + if (js.anyJarsSigned()) { >>>>>> + // If there are any signed Jars, check if JNLP file is signed >>>>>> + >>>>>> + if (JNLPRuntime.isDebug()) >>>>>> + System.out.println("STARTING check for signed JNLP file..."); >>>>>> + >>>>>> + for (int i = 0; i< jars.length; i++) { >>>>>> + List eachJar = new ArrayList(); >>>>>> + JarSigner signer = new JarSigner(); >>>>>> + eachJar.add(jars[i]); // Adds only the single jar to check >>>>>> + // if the jar has a valid signature >>>>>> + >>>>> >>>>> There is already JarSigner object that JNLPClassLoader is using. Is >>>>> there a reason for creating this new JarSigner object? >>>> >>>> I can use the JarSigner object that already exists. >>>> >>> >>> Well, I am not sure if that's the right thing. Perhaps it maintains >>> some state that you would not be fine with? I was really hoping you >>> would explain why you are using a new JarSigner object :) >> >> I will not need the new JarSigner object because the only purpose of it >> is verifying individual jars. I thought every time you wanted to verify >> a jar with the same JarSigner object, it would append each jar file as >> part of the arraylists of unverifiedJars or verifiedJars. Therefore if I >> used the JarSigner that already exists, it would break my IF condition >> that verifies the signature of each jar(allJarsSigned()) because it >> would have previous cached jar files that were verified using the same >> JarSigner object before. >> >> However, I was incorrect, JarSigner intializes a new arraylist every >> time verifyJars() is called. Therefore, I can still use the method, >> allJarsSigned(), for checking the signature of each jar file. That's why >> I will not need a new JarSigner object. :) >> > > Given that js is an instance variables of the class, things may go > wrong if js is used somewhere and that code assumes js contains all > jars. Even if it's quite safe, the internal state modification means I > am leaning towards a new JarSigner. > >>> >>>>> >>>>>> + try { >>>>>> + signer.verifyJars(eachJar, tracker); >>>>>> + >>>>> >>>>> The jarsigner js has already verified a subset of these earlier. Do >>>>> you really want to verify everything again? >>>> >>>> This is the method that is checking each jar file individually. So >>>> 'eachJar' stores only one jar file at a time and then checks if >>>> that jar >>>> file is signed or not. It then uses allJarsSigned() to validate if the >>>> jar file is signed. I added this because I did not find a solution >>>> that >>>> can track whether an individual jar file is signed or not. The >>>> previous >>>> check that JarSigner does uses all the jar resources (passed as >>>> parameter) and does not keep track which jar files are signed and >>>> which >>>> are not. Unless I am mistaken and there is a way of determining this. >>>> >>> >>> Ah, that makes sense now. I suppose you only want to make sure that >>> only a signed jar file contains the signed jnlp file. >> >> I did a bit more of research. The link you have sent me & some other >> website mentions that the jar file with the main class must be the ONLY >> one that is checked for a signed JNLP file. >> > > What if there is no main class? Can you please verify that the > proprietary javaws behaves this way? Sorry, I am not sure what you exactly mean by having 'no main class'. Wouldn't javaws have nothing to start and fail at initialization? Therefore a check for signed JNLP file will not be executed. So definitely, a JNLP file would need a main class that will be called to run the application. So a main class is a requirement, right? Please correct me if I am mistaken. > > Anyway, do you intend to post an updated patch to address this? > Otherwise, as I mentioned before, your patch will download all jars > (which makes the 'lazy' download mechanism useless). I will update the patch but only for the main jar file (I am guessing the 'main jar file' means the jar file that has the main class) If the main jar file is 'lazy', it still needs to be downloaded first and checked right away. In this case, I will just need to update the patch and force it to only download the main jar file regardless to whether it's 'lazy' or 'eagar'. There is a bug for the 'lazy' download mechanism that I will need to address after this (PR765) [http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=765]. Before I do this, I am going to confirm that it only checks the main jar file for a signed JNLP file and not the other signed jar files that may be used as a resource. If it does NOT ONLY check the main jar file, then I will update the patch that will download only 'eagar' type jar files and check them for signed JNLP file. I will then need to add the check for signed JNLP file for 'lazy' jar files with the PR765 fix. > >>> >>>>> So here's what I am really confused about: what does matching do? I >>>>> see that if there is no signed jnlp file, the code runs normally. If >>>>> there is a correctly signed jnlp file the code also continues >>>>> normally. So why are signed jnlp files needed at all? What problem >>>>> are >>>>> they solving? >>>>> >>>>> I guess I am missing something obvious; an explanation of what this >>>>> code is trying to do would be appreciated. >>>> >>>> If there is no signed JNLP file, the code runs normally. (as you >>>> mentioned above) >>>> If there is a matching signed JNLP file, the code runs normally. >>>> (as you >>>> mentioned above) >>>> If there is an unmatched signed JNLP file, the application is not >>>> initialized and fails to start. The reason why I found this beneficial >>>> is because the signer may not want their signed jars to be used if the >>>> launching JNLP file is not the same as the one the signer provides. >>>> Anyone can just create their own JNLP file to launch the >>>> application as >>>> long as they know the location of the resource(s). I think this way >>>> the >>>> signer has the option to put restrictions onto their signed jar >>>> file; so >>>> under certain conditions the jar files can be used only if the >>>> launching >>>> JNLP file is "approved" by the signer. I think another reason why a >>>> signer might do this is so the signer does not have another person >>>> running their code and using their signed jar files as resource (using >>>> the API? If they know it). I am not sure about this one, but it makes >>>> sense. >>>> >>> >>> Personally, I don't see that as a problem that Sun/Oracle would >>> attempt to solve (what's so special about this "approved" file?). I >>> suspect it has more to do with granting additional security privileges. >>> >>> I found this thread [1] after a quick search and it mentions a number >>> of things you may find interesting (including secure system >>> properties). There is probably a lot more information on this. Could >>> you please look around some more and tell us what you find? >> >> I been reading couple of forum posts and it seems that you may be right. >> Certain properties need JNLP files to be signed. In the same forum, it >> also mentions: >> "AFAIU, the only reason this JNLP needs to be signed is because >> java-vm-args were used." >> (http://forums.oracle.com/forums/thread.jspa?threadID=1359245&tstart=0) >> >> I am unable to find detailed documentation on these features but I have >> to look more into this. After my patch2 and the fixes for patch1 are >> both committed, I will take a look into this more and find other >> advantages of signing a JNLP file. As of now, I want to push patch2 >> first because I think that is also one of the key features of signing a >> JNLP file. >> > > Ah, nice find! That thread mentions that if there is a signed jnlp > file and it does not match the original jnlp file then javaws should > not run the jnlp application. This is exactly what your patch does :) Thank You. :) > > Thanks, > Omair -- Cheers, Saad Mohammad From bugzilla-daemon at icedtea.classpath.org Thu Jul 28 13:56:11 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 28 Jul 2011 20:56:11 +0000 Subject: [Bug 753] [regression] Zero FTBFS on stack_zero.cpp : In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=753 Xerxes R?nby changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |xerxes at zafena.se Target Milestone|--- |7-2.0 --- Comment #3 from Xerxes R?nby 2011-07-28 20:56:11 --- This bug have been fixed upstream: 7066143: JSR 292: Zero support after regressions from 7009923 and 7009309 http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/d17bd0b18663 and http://hg.openjdk.java.net/icedtea/jdk7/hotspot/rev/d0cf126fa161 This bug will be fixed after the next hs21-b18 jdk7-b148 bump. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From ddadacha at redhat.com Thu Jul 28 14:04:13 2011 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Thu, 28 Jul 2011 17:04:13 -0400 Subject: [RFC][IcedTea{7,8}] PR586: Classes missing from src.zip Message-ID: <4E31CECD.4020108@redhat.com> Hello, PR586[1] was fixed in IcedTea6 but slipeed through the cracks for 7 and 8. I've copied the fix Andrew Hughes made for IcedTea6[2] but just moved the lines to the correct position in 7 and 8's respective I just wasn't sure if I needed to change NEWS (as he did) so let me know if I should. Also, [2] has been marked as IcedTea6 only but it was already closed. I take it we don't need to reopen/change it? Changelog (for both): +2011-07-28 Danesh Dadachanji + PR586: Classes missing from src.zip + * Makefile.am: Added new patch. + * patches/pr586-include_all_srcs.patch: + Don't filter sources to include. Patches are attached. [1] http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=586 [2] http://icedtea.classpath.org/hg/icedtea6/rev/9ea6e67710b1 -------------- next part -------------- A non-text attachment was scrubbed... Name: pr586-include_all_srcs-icedtea8.patch Type: text/x-patch Size: 1968 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110728/960abe11/pr586-include_all_srcs-icedtea8.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: pr586-include_all_srcs-icedtea7.patch Type: text/x-patch Size: 1968 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110728/960abe11/pr586-include_all_srcs-icedtea7.patch From omajid at redhat.com Thu Jul 28 14:05:28 2011 From: omajid at redhat.com (Omair Majid) Date: Thu, 28 Jul 2011 17:05:28 -0400 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E31CC3C.4090606@redhat.com> References: <4E14B940.6080109@redhat.com> <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E282AC8.1070900@redhat.com> <4E2D8C74.5060901@redhat.com> <4E2D9A23.7030108@redhat.com> <4E31AB61.9020806@redhat.com> <4E31B1F7.8010808@redhat.com> <4E31CC3C.4090606@redhat.com> Message-ID: <4E31CF18.6010606@redhat.com> On 07/28/2011 04:53 PM, Saad Mohammad wrote: > On 07/28/2011 03:01 PM, Omair Majid wrote: >> On 07/28/2011 02:33 PM, Saad Mohammad wrote: >>> On 07/25/2011 12:30 PM, Omair Majid wrote: >>>> On 07/25/2011 11:32 AM, Saad Mohammad wrote: >>>>> On 07/21/2011 09:34 AM, Omair Majid wrote: >>>>>> On 07/15/2011 10:21 AM, Saad Mohammad wrote: >>>>>>> I have updated both the patches that includes the change that you >>>>>>> have >>>>>>> recommended and requested. >>>>>> >>>>>> I haven't looked into this in too much detail, but I have a few >>>>>> questions (and concerns) after reading this patch. They are included >>>>>> in line, below. >>>>>> >>>>>> >>>>>>> + >>>>>>> + if (js.anyJarsSigned()) { >>>>>>> + // If there are any signed Jars, check if JNLP file is signed >>>>>>> + >>>>>>> + if (JNLPRuntime.isDebug()) >>>>>>> + System.out.println("STARTING check for signed JNLP file..."); >>>>>>> + >>>>>>> + for (int i = 0; i< jars.length; i++) { >>>>>>> + List eachJar = new ArrayList(); >>>>>>> + JarSigner signer = new JarSigner(); >>>>>>> + eachJar.add(jars[i]); // Adds only the single jar to check >>>>>>> + // if the jar has a valid signature >>>>>>> + >>>>>> >>>>>> There is already JarSigner object that JNLPClassLoader is using. Is >>>>>> there a reason for creating this new JarSigner object? >>>>> >>>>> I can use the JarSigner object that already exists. >>>>> >>>> >>>> Well, I am not sure if that's the right thing. Perhaps it maintains >>>> some state that you would not be fine with? I was really hoping you >>>> would explain why you are using a new JarSigner object :) >>> >>> I will not need the new JarSigner object because the only purpose of it >>> is verifying individual jars. I thought every time you wanted to verify >>> a jar with the same JarSigner object, it would append each jar file as >>> part of the arraylists of unverifiedJars or verifiedJars. Therefore if I >>> used the JarSigner that already exists, it would break my IF condition >>> that verifies the signature of each jar(allJarsSigned()) because it >>> would have previous cached jar files that were verified using the same >>> JarSigner object before. >>> >>> However, I was incorrect, JarSigner intializes a new arraylist every >>> time verifyJars() is called. Therefore, I can still use the method, >>> allJarsSigned(), for checking the signature of each jar file. That's why >>> I will not need a new JarSigner object. :) >>> >> >> Given that js is an instance variables of the class, things may go >> wrong if js is used somewhere and that code assumes js contains all >> jars. Even if it's quite safe, the internal state modification means I >> am leaning towards a new JarSigner. >> >>>> >>>>>> >>>>>>> + try { >>>>>>> + signer.verifyJars(eachJar, tracker); >>>>>>> + >>>>>> >>>>>> The jarsigner js has already verified a subset of these earlier. Do >>>>>> you really want to verify everything again? >>>>> >>>>> This is the method that is checking each jar file individually. So >>>>> 'eachJar' stores only one jar file at a time and then checks if >>>>> that jar >>>>> file is signed or not. It then uses allJarsSigned() to validate if the >>>>> jar file is signed. I added this because I did not find a solution >>>>> that >>>>> can track whether an individual jar file is signed or not. The >>>>> previous >>>>> check that JarSigner does uses all the jar resources (passed as >>>>> parameter) and does not keep track which jar files are signed and >>>>> which >>>>> are not. Unless I am mistaken and there is a way of determining this. >>>>> >>>> >>>> Ah, that makes sense now. I suppose you only want to make sure that >>>> only a signed jar file contains the signed jnlp file. >>> >>> I did a bit more of research. The link you have sent me & some other >>> website mentions that the jar file with the main class must be the ONLY >>> one that is checked for a signed JNLP file. >>> >> >> What if there is no main class? Can you please verify that the >> proprietary javaws behaves this way? > > Sorry, I am not sure what you exactly mean by having 'no main class'. > Wouldn't javaws have nothing to start and fail at initialization? > Therefore a check for signed JNLP file will not be executed. > So definitely, a JNLP file would need a main class that will be called > to run the application. So a main class is a requirement, right? Please > correct me if I am mistaken. > Oh, a main class is needed to run alright. If a main class is not found, javaws will fail to start. But it may not be clear which jar this main class is coming from. Take a look at Launcher.launchApplication() for the gory details. You might be surprised to see what the classloader does on ClassLoader.loadClass(mainName). >> >> Anyway, do you intend to post an updated patch to address this? >> Otherwise, as I mentioned before, your patch will download all jars >> (which makes the 'lazy' download mechanism useless). > > I will update the patch but only for the main jar file (I am guessing > the 'main jar file' means the jar file that has the main class) If the > main jar file is 'lazy', it still needs to be downloaded first and > checked right away. In this case, I will just need to update the patch > and force it to only download the main jar file regardless to whether > it's 'lazy' or 'eagar'. > > There is a bug for the 'lazy' download mechanism that I will need to > address after this (PR765) > [http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=765]. > > Before I do this, I am going to confirm that it only checks the main jar > file for a signed JNLP file and not the other signed jar files that may > be used as a resource. If it does NOT ONLY check the main jar file, then > I will update the patch that will download only 'eagar' type jar files > and check them for signed JNLP file. I will then need to add the check > for signed JNLP file for 'lazy' jar files with the PR765 fix. > That sounds like a very sensible plan. Cheers, Omair From andrew at icedtea.classpath.org Thu Jul 28 16:04:44 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Thu, 28 Jul 2011 23:04:44 +0000 Subject: /hg/icedtea7: Bring in new JDK build cleanups and HotSpot fixes ... Message-ID: changeset 05dda6fb5ced in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=05dda6fb5ced author: Andrew John Hughes date: Fri Jul 29 00:04:28 2011 +0100 Bring in new JDK build cleanups and HotSpot fixes for Zero/Shark. 2011-07-28 Andrew John Hughes Bring in new JDK build cleanups and HotSpot fixes for Zero/Shark. * Makefile.am: (JDK_CHANGESET): Updated. (JDK_SHA256SUM): Likewise. (HOTSPOT_CHANGESET): Likewise. (HOTSPOT_SHA256SUM): Likewise. (ICEDTEA_BOOT_PATCHES): Add new patch. * patches/boot/ecj-diamond.patch, * patches/boot/ecj-stringswitch.patch: Updated with new cases. * patches/boot/use_target_6_for_bootstrap_classes.patch: New patch. Force source/target to 6 rather than 7 when building classes needed by the bootstrap tools. diffstat: ChangeLog | 18 + Makefile.am | 11 +- patches/boot/ecj-diamond.patch | 399 +++++------------ patches/boot/ecj-stringswitch.patch | 170 +++--- patches/boot/use_target_6_for_bootstrap_classes.patch | 59 ++ 5 files changed, 289 insertions(+), 368 deletions(-) diffs (truncated from 2577 to 500 lines): diff -r 0eac7d4e7536 -r 05dda6fb5ced ChangeLog --- a/ChangeLog Wed Jul 20 12:12:22 2011 +0200 +++ b/ChangeLog Fri Jul 29 00:04:28 2011 +0100 @@ -1,3 +1,21 @@ +2011-07-28 Andrew John Hughes + + Bring in new JDK build cleanups and + HotSpot fixes for Zero/Shark. + * Makefile.am: + (JDK_CHANGESET): Updated. + (JDK_SHA256SUM): Likewise. + (HOTSPOT_CHANGESET): Likewise. + (HOTSPOT_SHA256SUM): Likewise. + (ICEDTEA_BOOT_PATCHES): Add new patch. + * patches/boot/ecj-diamond.patch, + * patches/boot/ecj-stringswitch.patch: + Updated with new cases. + * patches/boot/use_target_6_for_bootstrap_classes.patch: + New patch. Force source/target to 6 + rather than 7 when building classes needed + by the bootstrap tools. + 2011-07-20 Marc Schoenefeld Pavel Tisnovsky diff -r 0eac7d4e7536 -r 05dda6fb5ced Makefile.am --- a/Makefile.am Wed Jul 20 12:12:22 2011 +0200 +++ b/Makefile.am Fri Jul 29 00:04:28 2011 +0100 @@ -3,18 +3,18 @@ OPENJDK_VERSION = b147 CORBA_CHANGESET = 616c760dc288 -HOTSPOT_CHANGESET = 5d5c6ef3435d +HOTSPOT_CHANGESET = d438a5890756 JAXP_CHANGESET = c40983d6ae70 JAXWS_CHANGESET = 83db5e316798 -JDK_CHANGESET = 483d8dacfbd8 +JDK_CHANGESET = 4783dfaed9f9 LANGTOOLS_CHANGESET = 0df09c966a29 OPENJDK_CHANGESET = 3defd24c2671 CORBA_SHA256SUM = 7589c42e88b4342750bea5afa306cc662cc9c5f7607fad96f70083ce70f4526e -HOTSPOT_SHA256SUM = e0114f1beb395065fbe1421a248f7169898bde47ac7b33a81f354de453e3b5b1 +HOTSPOT_SHA256SUM = efa3512d4c29306a4e16f854bd2416e6917cdb1741efe0826401c7e0ee13645a JAXP_SHA256SUM = 6ab0cab1965edb28e4093b55436abd04fbffe0b0251016043c75246c4ee9dc2d JAXWS_SHA256SUM = 5567c90ce2857016365b2e346783a3b16ec0e76b80586a0371f601b4fed01f21 -JDK_SHA256SUM = c698a60613673bfc2e25d7b4d163b192116d5ce7d1a1fb63a1c6349686ce30d7 +JDK_SHA256SUM = 8eaecc9db0a9a2266f67b661caaa35a8207263975dc0560a9e82ee83819a6d73 LANGTOOLS_SHA256SUM = 0118daf4d280d0a56f657fac640ac191ec42a7f49cc12a0693bd0fdd04ec684a OPENJDK_SHA256SUM = 4043a75c2c4385dd735f8dbbf2369311ce1b951217c9dbe9bba9609e24eb291e @@ -370,7 +370,8 @@ patches/boot/ecj-multicatch.patch \ patches/boot/ecj-trywithresources.patch \ patches/boot/ecj-autoboxing.patch \ - patches/boot/xsltproc.patch + patches/boot/xsltproc.patch \ + patches/boot/use_target_6_for_bootstrap_classes.patch if CP39408_JAVAH ICEDTEA_BOOT_PATCHES += patches/boot/pr39408.patch diff -r 0eac7d4e7536 -r 05dda6fb5ced patches/boot/ecj-diamond.patch --- a/patches/boot/ecj-diamond.patch Wed Jul 20 12:12:22 2011 +0200 +++ b/patches/boot/ecj-diamond.patch Fri Jul 29 00:04:28 2011 +0100 @@ -1,7 +1,7 @@ diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2011-04-14 01:29:58.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2011-07-12 16:56:06.686259706 +0100 -@@ -104,9 +104,9 @@ +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2011-07-27 14:31:14.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2011-07-27 15:21:43.611371943 +0100 +@@ -103,9 +103,9 @@ return this.def.compareTo(that.def); } @@ -14,7 +14,7 @@ // Canonicalized lists of trivial attrs (Deprecated, etc.) // are used by trimToSize, in order to reduce footprint -@@ -116,7 +116,7 @@ +@@ -115,7 +115,7 @@ synchronized (canonLists) { List cl = canonLists.get(al); if (cl == null) { @@ -23,7 +23,7 @@ cl.addAll(al); cl = Collections.unmodifiableList(cl); canonLists.put(al, cl); -@@ -337,9 +337,9 @@ +@@ -336,9 +336,9 @@ public void addAttribute(Attribute a) { if (attributes == null) @@ -35,7 +35,7 @@ attributes.add(a); } -@@ -347,7 +347,7 @@ +@@ -346,7 +346,7 @@ if (attributes == null) return null; if (!attributes.contains(a)) return null; if (!(attributes instanceof ArrayList)) @@ -72,8 +72,8 @@ for (int i = 0; i < layout.length(); i++) { if (layout.charAt(i++) != '[') diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2011-07-12 15:23:26.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2011-07-12 16:56:06.702259970 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2011-07-27 15:09:07.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2011-07-28 01:35:06.947366341 +0100 @@ -257,7 +257,7 @@ assert(basicCodings[_meta_default] == null); assert(basicCodings[_meta_canon_min] != null); @@ -103,7 +103,7 @@ // Well-known attributes: protected final Attribute.Layout attrCodeEmpty; -@@ -1713,11 +1713,11 @@ +@@ -1713,16 +1713,16 @@ protected final Attribute.Layout attrConstantValue; // Mapping from Attribute.Layout to Integer (inverse of attrDefs) @@ -117,9 +117,15 @@ { for (int i = 0; i < ATTR_CONTEXT_LIMIT; i++) { assert(attrIndexLimit[i] == 0); + attrIndexLimit[i] = 32; // just for the sake of predefs. +- attrDefs.set(i, new ArrayList<>(Collections.nCopies( ++ attrDefs.set(i, new ArrayList(Collections.nCopies( + attrIndexLimit[i], (Attribute.Layout)null))); + + } @@ -1912,7 +1912,7 @@ - protected List getPredefinedAttrs(int ctype) { + protected List getPredefinedAttrs(int ctype) { assert(attrIndexLimit[ctype] != 0); - List res = new ArrayList<>(attrIndexLimit[ctype]); + List res = new ArrayList(attrIndexLimit[ctype]); @@ -136,8 +142,8 @@ return true; } diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2011-07-12 15:23:26.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2011-07-12 16:56:06.702259970 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2011-07-27 15:09:06.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2011-07-27 15:21:43.619372073 +0100 @@ -466,7 +466,7 @@ void readInnerClasses(Class cls) throws IOException { @@ -149,7 +155,7 @@ new InnerClass(readClassRef(), diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java --- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java 2011-04-14 01:29:58.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java 2011-07-12 16:56:06.702259970 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java 2011-07-27 15:21:43.663372790 +0100 @@ -743,9 +743,9 @@ // Steps 1/2/3 are interdependent, and may be iterated. // Steps 4 and 5 may be decided independently afterward. @@ -186,8 +192,8 @@ if (popset.add(values[i])) popvals.add(values[i]); } diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java 2011-04-14 01:29:58.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java 2011-07-12 16:56:06.702259970 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java 2011-07-27 14:31:14.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java 2011-07-27 15:21:43.663372790 +0100 @@ -402,7 +402,7 @@ private static Map codeMap; @@ -198,9 +204,9 @@ Coding x1 = codeMap.get(x0); if (x1 == null) codeMap.put(x0, x1 = x0); diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2011-04-14 01:29:58.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2011-07-12 16:56:06.702259970 +0100 -@@ -919,7 +919,7 @@ +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2011-07-27 14:31:14.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2011-07-27 15:21:43.679373050 +0100 +@@ -915,7 +915,7 @@ public static Index[] partition(Index ix, int[] keys) { // %%% Should move this into class Index. @@ -209,7 +215,7 @@ Entry[] cpMap = ix.cpMap; assert(keys.length == cpMap.length); for (int i = 0; i < keys.length; i++) { -@@ -930,7 +930,7 @@ +@@ -926,7 +926,7 @@ } List part = parts.get(key); if (part == null) { @@ -218,7 +224,7 @@ } part.add(cpMap[i]); } -@@ -1137,7 +1137,7 @@ +@@ -1133,7 +1133,7 @@ void completeReferencesIn(Set cpRefs, boolean flattenSigs) { cpRefs.remove(null); for (ListIterator work = @@ -228,8 +234,8 @@ Entry e = work.previous(); work.remove(); // pop stack diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2011-07-12 15:23:26.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2011-07-12 16:56:06.702259970 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2011-07-27 15:09:07.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2011-07-27 15:21:43.683373115 +0100 @@ -59,7 +59,7 @@ ResourceBundle.getBundle("com.sun.java.util.jar.pack.DriverResource"); @@ -268,7 +274,7 @@ String[] words = optline.split("\\p{Space}+"); diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java --- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2011-04-14 01:29:58.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2011-07-12 16:56:06.702259970 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2011-07-27 15:21:43.683373115 +0100 @@ -45,7 +45,7 @@ private final ArrayList flist; @@ -279,8 +285,8 @@ for (int i = 0 ; i < capacity ; i++) { flist.add(null); diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2011-07-12 15:23:26.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2011-07-12 16:56:06.702259970 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2011-07-27 15:09:06.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2011-07-27 15:23:52.897478020 +0100 @@ -112,7 +112,7 @@ public static final Attribute.Layout attrSourceFileSpecial; public static final Map attrDefs; @@ -299,7 +305,7 @@ public List getClasses() { return classes; -@@ -264,7 +264,7 @@ +@@ -263,7 +263,7 @@ if (olda == null) return; // no SourceFile attr. String obvious = getObviousSourceFile(); @@ -308,7 +314,7 @@ olda.visitRefs(this, VRM_PACKAGE, ref); Utf8Entry sfName = (Utf8Entry) ref.get(0); Attribute a = olda; -@@ -292,7 +292,7 @@ +@@ -291,7 +291,7 @@ if (a != olda) { if (verbose > 2) Utils.log.fine("recoding obvious SourceFile="+obvious); @@ -317,7 +323,7 @@ int where = newAttrs.indexOf(olda); newAttrs.set(where, a); setAttributes(newAttrs); -@@ -322,7 +322,7 @@ +@@ -321,7 +321,7 @@ } public void setInnerClasses(Collection ics) { @@ -326,7 +332,7 @@ // Edit the attribute list, if necessary. Attribute a = getAttribute(attrInnerClassesEmpty); if (innerClasses != null && a == null) -@@ -341,7 +341,7 @@ +@@ -340,7 +340,7 @@ * with that of Package.this.allInnerClasses. */ public List computeGloballyImpliedICs() { @@ -335,7 +341,7 @@ { // This block temporarily displaces this.innerClasses. ArrayList innerClassesSaved = innerClasses; innerClasses = null; // ignore for the moment -@@ -350,7 +350,7 @@ +@@ -349,7 +349,7 @@ } ConstantPool.completeReferencesIn(cpRefs, true); @@ -344,7 +350,7 @@ for (Entry e : cpRefs) { // Restrict cpRefs to InnerClasses entries only. if (!(e instanceof ClassEntry)) continue; -@@ -366,7 +366,7 @@ +@@ -365,7 +365,7 @@ // This loop is structured this way so as to accumulate // entries into impliedICs in an order which reflects // the order of allInnerClasses. @@ -353,7 +359,7 @@ for (InnerClass ic : allInnerClasses) { // This one is locally relevant if it describes // a member of the current class, or if the current -@@ -409,8 +409,8 @@ +@@ -408,8 +408,8 @@ // Diff is A since I is empty. } // (I*A) is non-trivial @@ -364,7 +370,7 @@ impliedICs.addAll(actualICs); impliedICs.removeAll(center); // Diff is now I^A = (I+A)-(I*A). -@@ -539,7 +539,7 @@ +@@ -538,7 +538,7 @@ super(flags, descriptor); assert(!descriptor.isMethod()); if (fields == null) @@ -373,7 +379,7 @@ boolean added = fields.add(this); assert(added); order = fields.size(); -@@ -564,7 +564,7 @@ +@@ -563,7 +563,7 @@ super(flags, descriptor); assert(descriptor.isMethod()); if (methods == null) @@ -382,7 +388,7 @@ boolean added = methods.add(this); assert(added); } -@@ -732,14 +732,14 @@ +@@ -728,14 +728,14 @@ } // What non-class files are in this unit? @@ -399,16 +405,25 @@ for (Class cls : classes) { assert(cls.file.isClassStub()); classStubs.add(cls.file); -@@ -859,7 +859,7 @@ +@@ -749,7 +749,7 @@ + int modtime = NO_MODTIME; + int options = 0; // random flag bits, such as deflate_hint + Class stubClass; // if this is a stub, here's the class +- ArrayList prepend = new ArrayList<>(); // list of byte[] ++ ArrayList prepend = new ArrayList(); // list of byte[] + java.io.ByteArrayOutputStream append = new ByteArrayOutputStream(); + + File(Utf8Entry name) { +@@ -852,7 +852,7 @@ public InputStream getInputStream() { InputStream in = new ByteArrayInputStream(append.toByteArray()); if (prepend.isEmpty()) return in; - List isa = new ArrayList<>(prepend.size()+1); + List isa = new ArrayList(prepend.size()+1); - for (Iterator i = prepend.iterator(); i.hasNext(); ) { - byte[] bytes = (byte[]) i.next(); + for (byte[] bytes : prepend) { isa.add(new ByteArrayInputStream(bytes)); -@@ -896,7 +896,7 @@ + } +@@ -888,7 +888,7 @@ } // Is there a globally declared table of inner classes? @@ -417,7 +432,7 @@ Map allInnerClassesByThis; public -@@ -911,7 +911,7 @@ +@@ -903,7 +903,7 @@ allInnerClasses.addAll(ics); // Make an index: @@ -426,7 +441,7 @@ for (InnerClass ic : allInnerClasses) { Object pic = allInnerClassesByThis.put(ic.thisClass, ic); assert(pic == null); // caller must ensure key uniqueness! -@@ -1302,7 +1302,7 @@ +@@ -1290,7 +1290,7 @@ // Use this before writing the class files. void ensureAllClassFiles() { @@ -436,8 +451,8 @@ // Add to the end of ths list: if (!fileSet.contains(cls.file)) diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2011-07-12 15:23:26.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2011-07-12 16:56:06.702259970 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2011-07-27 15:09:07.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2011-07-27 15:21:43.739374028 +0100 @@ -686,7 +686,7 @@ cp_Signature_classes.expectLength(getIntTotal(numSigClasses)); cp_Signature_classes.readFrom(in); @@ -524,15 +539,15 @@ bits = attrBits; // iterate again for (int ai = 0; bits != 0; ai++) { @@ -1596,7 +1596,7 @@ - @SuppressWarnings("unchecked") - void readAttrs(int ctype, Collection holders) throws IOException { + void readAttrs(int ctype, Collection holders) + throws IOException { // Decode band values into attributes. - Set sawDefs = new HashSet<>(); + Set sawDefs = new HashSet(); ByteArrayOutputStream buf = new ByteArrayOutputStream(); - for (Iterator i = holders.iterator(); i.hasNext(); ) { - final Attribute.Holder h = (Attribute.Holder) i.next(); -@@ -1800,7 +1800,7 @@ + for (final Attribute.Holder h : holders) { + if (h.attributes == null) continue; +@@ -1799,7 +1799,7 @@ // scratch buffer for collecting code:: byte[] buf = new byte[1<<12]; // record of all switch opcodes (these are variable-length) @@ -541,7 +556,7 @@ for (int k = 0; k < allCodes.length; k++) { Code c = allCodes[k]; scanOneMethod: -@@ -1916,7 +1916,7 @@ +@@ -1915,7 +1915,7 @@ Set ldcRefSet = ldcRefMap.get(curClass); if (ldcRefSet == null) @@ -551,8 +566,8 @@ ClassEntry thisClass = curClass.thisClass; ClassEntry superClass = curClass.superClass; diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2011-07-12 15:23:26.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2011-07-12 16:56:06.706260036 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2011-07-27 15:09:07.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2011-07-27 15:21:43.747374158 +0100 @@ -116,7 +116,7 @@ int[][] attrCounts; // count attr. occurences @@ -571,8 +586,8 @@ int bestCount = 0; int bestVersion = -1; for (Class cls : pkg.classes) { -@@ -729,7 +729,7 @@ - @SuppressWarnings("unchecked") +@@ -728,7 +728,7 @@ + void collectAttributeLayouts() { maxFlags = new int[ATTR_CONTEXT_LIMIT]; - allLayouts = new FixedList<>(ATTR_CONTEXT_LIMIT); @@ -580,7 +595,7 @@ for (int i = 0; i < ATTR_CONTEXT_LIMIT; i++) { allLayouts.set(i, new HashMap()); } -@@ -774,7 +774,7 @@ +@@ -773,7 +773,7 @@ } // Collect counts for both predefs. and custom defs. // Decide on custom, local attribute definitions. @@ -589,16 +604,16 @@ attrCounts = new int[ATTR_CONTEXT_LIMIT][]; for (int i = 0; i < ATTR_CONTEXT_LIMIT; i++) { // Now the remaining defs in allLayouts[i] need attr. indexes. -@@ -889,7 +889,7 @@ - - @SuppressWarnings("unchecked") +@@ -888,7 +888,7 @@ + Attribute.Layout[] attrDefsWritten; + void writeAttrDefs() throws IOException { - List defList = new ArrayList<>(); + List defList = new ArrayList(); for (int i = 0; i < ATTR_CONTEXT_LIMIT; i++) { int limit = attrDefs.get(i).size(); for (int j = 0; j < limit; j++) { -@@ -1007,7 +1007,7 @@ +@@ -1005,7 +1005,7 @@ void collectInnerClasses() { // Capture inner classes, removing them from individual classes. // Irregular inner classes must stay local, though. @@ -608,9 +623,9 @@ for (Class cls : pkg.classes) { if (!cls.hasInnerClasses()) continue; diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2011-04-14 01:29:58.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2011-07-12 16:56:06.710260102 +0100 -@@ -183,8 +183,8 @@ +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2011-07-27 14:31:14.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2011-07-27 15:21:43.755374288 +0100 +@@ -181,8 +181,8 @@ final Map attrDefs; final Map attrCommands; { @@ -621,7 +636,7 @@ String[] keys = { Pack200.Packer.CLASS_ATTRIBUTE_PFX, Pack200.Packer.FIELD_ATTRIBUTE_PFX, -@@ -593,7 +593,7 @@ +@@ -590,7 +590,7 @@ assert(pkg.files.containsAll(pkg.getClassStubs())); // Order of stubs in file list must agree with classes. List res = pkg.files; @@ -630,7 +645,7 @@ .retainAll(pkg.getClassStubs()) || true); assert(res.equals(pkg.getClassStubs())); } -@@ -626,7 +626,7 @@ +@@ -623,7 +623,7 @@ List scanJar(JarFile jf) throws IOException { // Collect jar entries, preserving order. @@ -641,7 +656,7 @@ InFile inFile = new InFile(jf, je); diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java --- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2011-04-14 01:29:59.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2011-07-12 16:56:06.714260168 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2011-07-27 15:21:43.755374288 +0100 From andrew at icedtea.classpath.org Thu Jul 28 16:23:22 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Thu, 28 Jul 2011 23:23:22 +0000 Subject: /hg/icedtea: Fix checksums to match IcedTea server. Message-ID: changeset 2ca03e48e0b6 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=2ca03e48e0b6 author: Andrew John Hughes date: Fri Jul 29 00:23:10 2011 +0100 Fix checksums to match IcedTea server. 2011-07-29 Andrew John Hughes (CORBA_SHA256SUM): Fix checksums to match those on IcedTea server, not OpenJDK one. (HOTSPOT_SHA256SUM): Likewise. (JAXP_SHA256SUM): Likewise. (JAXWS_SHA256SUM): Likewise. (JDK_SHA256SUM): Likewise. (LANGTOOLS_SHA256SUM): Likewise. (OPENJDK_SHA256SUM): Likewise. diffstat: ChangeLog | 11 +++++++++++ Makefile.am | 14 +++++++------- 2 files changed, 18 insertions(+), 7 deletions(-) diffs (42 lines): diff -r 217390811b61 -r 2ca03e48e0b6 ChangeLog --- a/ChangeLog Fri Jul 15 00:55:03 2011 +0100 +++ b/ChangeLog Fri Jul 29 00:23:10 2011 +0100 @@ -1,3 +1,14 @@ +2011-07-29 Andrew John Hughes + + (CORBA_SHA256SUM): Fix checksums to match + those on IcedTea server, not OpenJDK one. + (HOTSPOT_SHA256SUM): Likewise. + (JAXP_SHA256SUM): Likewise. + (JAXWS_SHA256SUM): Likewise. + (JDK_SHA256SUM): Likewise. + (LANGTOOLS_SHA256SUM): Likewise. + (OPENJDK_SHA256SUM): Likewise. + 2011-07-13 Andrew John Hughes Bump to tip. diff -r 217390811b61 -r 2ca03e48e0b6 Makefile.am --- a/Makefile.am Fri Jul 15 00:55:03 2011 +0100 +++ b/Makefile.am Fri Jul 29 00:23:10 2011 +0100 @@ -10,13 +10,13 @@ LANGTOOLS_CHANGESET = 8caec3672381 OPENJDK_CHANGESET = 5057eaa7e88a -CORBA_SHA256SUM = 7a1169d8f6e61bb3a24eba710ad4d278ddeedbb60760eb1dda7f2792171be8cb -HOTSPOT_SHA256SUM = 4fe84dbe91df547c076119c4f7608ebecbf0423bc4613c8a1638a0ba62e163bc -JAXP_SHA256SUM = 4032185df59e093e9401160e2b474507055d64a8d7b6e7d5580c721c13e7050c -JAXWS_SHA256SUM = 6d3ce845a2cec9a321cb23fd8039e1c6dce3ad78610f5fc92016ca1a042e1687 -JDK_SHA256SUM = 28694bd1a0ec60c5dd1829829074ce57c920a4c9b3df6ca4d95629af3dcf39a3 -LANGTOOLS_SHA256SUM = e200d58705b1c144f367679ae2091ab070ecd8c9bc9c06c95b0508fb5a252c1f -OPENJDK_SHA256SUM = c0a48e6c8c5251ed86efb4adee0638587052b8308237e4933b4b2448b51dd962 +CORBA_SHA256SUM = edd7cb8ae6a9d9b0e8f9748ecdf31a0f4decc8a06b418baa7b2ef1e7a9d3474a +HOTSPOT_SHA256SUM = dd59a52bed76f01b382c0c3b44905390bd5e7a77a54b3c8f6de71001376e4b99 +JAXP_SHA256SUM = 4daf673635e1a09339695ec246afbc154c5fc31715a4748a5c6d6ae7332ffdfb +JAXWS_SHA256SUM = b1a54b1f295451d449683b04de8dc8b6c82014e647f1b41543798d401d011ca3 +JDK_SHA256SUM = cd06344728aff01027875757d26d5ec62b6406095af24e50fcaf72a5dbf8a10c +LANGTOOLS_SHA256SUM = 495b601afd6b12bee9a8ccc3e1d067bb14789d4f3c0a9d21388b1708d946e3fb +OPENJDK_SHA256SUM = 6dada5c4c04640ef4b95b7ceeff20baeb69ff4cd64e2591eb64bb33c6035b5cf CACAO_VERSION = d6264eb66506 CACAO_SHA256SUM = 94ea7899e806ccbc33a732b5113a8f969d8b1f4ce7ffd27cf04577054f65f63c From ahughes at redhat.com Thu Jul 28 16:37:30 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Fri, 29 Jul 2011 00:37:30 +0100 Subject: Reviewer needed: removing patch "patches/revert-6885123.patch" from IcedTea6 HEAD In-Reply-To: <4E31B4C1.8020606@redhat.com> References: <4E31B4C1.8020606@redhat.com> Message-ID: <20110728233730.GY22822@rivendell.middle-earth.co.uk> On 21:13 Thu 28 Jul , Pavel Tisnovsky wrote: > Greetings, > > I'd like to remove patch "patches/revert-6885123.patch" from IcedTea6, > because > the behavior of JavaFileManager changed by the 6885123 is intended (ATM). > This patch were pushed to IcedTea6 HEAD to not to break compatibility tests, > but it is not necessary anymore. So is it ok to delete them? > Why is it not necessary? This is still a regression and should still be fixed. > Note: the patch to be removed also contains regression test created by me. > I'm going to rewrite the test to work correctly without this patch and > I'll send its new version for review here. > > > ChangeLog entry: > > 2011-07-28 Pavel Tisnovsky > > * Makefile.am: removed unused patch > * patches/revert-6885123.patch: > Removed this patch because reverting of change > 6885123 is not necessary anymore > (does not break compatibility tests anymore). > > Can anybody please review this change? > No, I don't think this change should go in. > Thank you in advance, > Pavel > diff -r a6ba1170da98 Makefile.am > --- a/Makefile.am Mon Jul 25 13:44:57 2011 +0200 > +++ b/Makefile.am Thu Jul 28 20:47:28 2011 +0200 > @@ -318,7 +318,6 @@ > patches/openjdk/7027667-AAShapePipeRegTest.patch \ > patches/openjdk/7019861-AA-regression-fix.patch \ > patches/g356743-libpng-1.5.patch \ > - patches/revert-6885123.patch \ > patches/openjdk/7032388-work_without_cmov_instruction.patch \ > patches/openjdk/7031385-gcc-register-allocation-fix.patch \ > patches/openjdk/6986968-crash_on_xim_restart.patch \ > diff -r a6ba1170da98 patches/revert-6885123.patch > --- a/patches/revert-6885123.patch Mon Jul 25 13:44:57 2011 +0200 > +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 > @@ -1,567 +0,0 @@ > ---- openjdk.old/langtools/src/share/classes/com/sun/tools/javac/file/RegularFileObject.java 2011-02-28 17:07:28.000000000 +0100 > -+++ openjdk/langtools/src/share/classes/com/sun/tools/javac/file/RegularFileObject.java 2011-03-25 10:16:13.646180000 +0100 > -@@ -78,7 +78,7 @@ > - > - //@Override > - public String getName() { > -- return file.getPath(); > -+ return this.name; > - } > - > - //@Override > ---- /dev/null 1970-01-01 01:00:00.000000000 +0100 > -+++ openjdk/jdk/test/javax/tools/JavaFileManager/JavaFileManagerTest.java 2011-03-28 15:51:43.000000000 +0200 > -@@ -0,0 +1,119 @@ > -+/* > -+ * Copyright 2011 Red Hat, Inc. All Rights Reserved. > -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. > -+ * > -+ * This code is free software; you can redistribute it and/or modify it > -+ * under the terms of the GNU General Public License version 2 only, as > -+ * published by the Free Software Foundation. > -+ * > -+ * This code is distributed in the hope that it will be useful, but WITHOUT > -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or > -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License > -+ * version 2 for more details (a copy is included in the LICENSE file that > -+ * accompanied this code). > -+ * > -+ * You should have received a copy of the GNU General Public License version > -+ * 2 along with this work; if not, write to the Free Software Foundation, > -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. > -+ */ > -+ > -+ > -+import java.util.*; > -+import java.io.*; > -+import java.nio.charset.*; > -+ > -+import javax.tools.*; > -+import javax.tools.JavaFileManager.*; > -+import javax.tools.JavaFileObject.*; > -+ > -+public class JavaFileManagerTest { > -+ > -+ /** > -+ * Test data files are stored in a subdirectory named "test_data". > -+ */ > -+ private static final String TEST_DATA_DIRECTORY = "test_data"; > -+ > -+ /** > -+ * Charset used by JavaFileManager. > -+ */ > -+ private static final Charset FILE_MANAGER_CHARSET = Charset.forName("US-ASCII"); > -+ > -+ /** > -+ * Locale used by JavaFileManager. > -+ */ > -+ private static final Locale FILE_MANAGER_LOCALE = (java.util.Locale)null; > -+ > -+ /** > -+ * Location of file objects being tested. > -+ */ > -+ private static final Location FILE_OBJECTS_LOCATION = javax.tools.StandardLocation.SOURCE_PATH; > -+ > -+ public static DiagnosticListener listener = new DiagnosticCollector(); > -+ > -+ private void doTest() throws IOException { > -+ StandardJavaFileManager fileManager = getStandardFileManager(); > -+ fileManager.setLocation(FILE_OBJECTS_LOCATION, Collections.singleton(getSourceDirPathFile())); > -+ > -+ checkFileManagerLocation(fileManager.getLocation(FILE_OBJECTS_LOCATION)); > -+ checkFileManagerGetName(fileManager); > -+ } > -+ > -+ private StandardJavaFileManager getStandardFileManager() { > -+ return ToolProvider.getSystemJavaCompiler().getStandardFileManager( > -+ listener, FILE_MANAGER_LOCALE, FILE_MANAGER_CHARSET); > -+ } > -+ > -+ public static File getSourceDirPathFile() { > -+ return new File(new File("."), TEST_DATA_DIRECTORY); > -+ } > -+ > -+ /** > -+ * Check if there's "./test_data" location included in a locations argument. > -+ * @param locations set of locations returned by fileManager.getLocation() > -+ */ > -+ private void checkFileManagerLocation(Iterable locations) { > -+ for (File file : locations) { > -+ if (".".equals(file.getParent()) && TEST_DATA_DIRECTORY.equals(file.getName())) { > -+ System.out.println("checkFileManagerLocation: ok"); > -+ return; > -+ } > -+ } > -+ throw new RuntimeException("fileManager.getLocation() returns wrong locations! " + locations.toString()); > -+ } > -+ > -+ /** > -+ * Check if method JavaFileManager.getName() returns correct file name. > -+ * @param fileManager > -+ * @throws IOException > -+ */ > -+ private void checkFileManagerGetName(JavaFileManager fileManager) throws IOException { > -+ Map kinds = new HashMap(); > -+ kinds.put(Kind.SOURCE, "Test.java"); > -+ kinds.put(Kind.CLASS, "Test.class"); > -+ kinds.put(Kind.HTML, "Test.html"); > -+ kinds.put(Kind.OTHER, "Test.txt"); > -+ for (Map.Entry kind : kinds.entrySet()) { > -+ System.out.println("Testing JavaFileManager for kind " + kind.getKey()); > -+ Iterable fileObjects = fileManager.list( > -+ FILE_OBJECTS_LOCATION, "", Collections.singleton(kind.getKey()), false); > -+ checkIfFileObjectsContainName(fileObjects, kind.getValue()); > -+ } > -+ } > -+ > -+ private void checkIfFileObjectsContainName(Iterable fileObjects, String name) { > -+ //System.out.println(fileObjects); > -+ for (JavaFileObject fileObject : fileObjects) { > -+ //System.out.println(fileObject.getName()); > -+ if (name.equals(fileObject.getName())) { > -+ System.out.println("JavaFileObject.getName(): ok ('" + fileObject.getName() + "')"); > -+ return; > -+ } > -+ } > -+ throw new RuntimeException("JavaFileObject.getName() returns wrong name!"); > -+ } > -+ > -+ public static void main(String argv[]) throws IOException { > -+ new JavaFileManagerTest().doTest(); > -+ } > -+ > -+} > ---- /dev/null 1970-01-01 01:00:00.000000000 +0100 > -+++ openjdk/jdk/test/javax/tools/JavaFileManager/JavaFileManagerTest.sh 2011-03-28 15:47:23.000000000 +0200 > -@@ -0,0 +1,153 @@ > -+#!/bin/sh > -+ > -+# > -+# Copyright 2011 Red Hat, Inc. All Rights Reserved. > -+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. > -+# > -+# This code is free software; you can redistribute it and/or modify it > -+# under the terms of the GNU General Public License version 2 only, as > -+# published by the Free Software Foundation. > -+# > -+# This code is distributed in the hope that it will be useful, but WITHOUT > -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or > -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License > -+# version 2 for more details (a copy is included in the LICENSE file that > -+# accompanied this code). > -+# > -+# You should have received a copy of the GNU General Public License version > -+# 2 along with this work; if not, write to the Free Software Foundation, > -+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. > -+ > -+# > -+# This script is the actual launcher of JavaFileManagerTest.java > -+# > -+ > -+# @test > -+# @summary Test that check proper behaviour of JavaFileManager and > -+# JavaFileObject classes. > -+ > -+ > -+ > -+# check arguments set by JTreg > -+checkArgs() { > -+ if [ "${TESTSRC}" = "" ] > -+ then > -+ echo "TESTSRC not set. Test cannot execute. Failed." > -+ exit 1 > -+ fi > -+ echo "TESTSRC=${TESTSRC}" > -+ if [ "${TESTJAVA}" = "" ] > -+ then > -+ echo "TESTJAVA not set. Test cannot execute. Failed." > -+ exit 1 > -+ fi > -+ echo "TESTJAVA=${TESTJAVA}" > -+ if [ "${TESTCLASSES}" = "" ] > -+ then > -+ echo "TESTCLASSES not set. Test cannot execute. Failed." > -+ exit 1 > -+ fi > -+} > -+ > -+ > -+ > -+# print paths to test sources and test classes > -+printPaths() { > -+ echo "TESTCLASSES=${TESTCLASSES}" > -+ echo "CLASSPATH=${CLASSPATH}" > -+} > -+ > -+ > -+ > -+# copy of all necessarry files into work directory > -+copyWorkFiles() { > -+ cp -r "${TESTSRC}/test_data" "${TESTCLASSES}/" > -+ result=$? > -+ if [ $result -eq 0 ] > -+ then > -+ echo "Copy of work files was successful." > -+ else > -+ echo "copy of work files have failed." > -+ exit $result > -+ fi > -+ > -+ cp "${TESTSRC}/JavaFileManagerTest.java" "${TESTCLASSES}" > -+ result=$? > -+ if [ $result -eq 0 ] > -+ then > -+ echo "Copy of work files was successful." > -+ else > -+ echo "copy of work files have failed." > -+ exit $result > -+ fi > -+} > -+ > -+ > -+ > -+# compilation of Test class which is stored in test_data subdirectory > -+compileTestClass() { > -+ COMPILE="${TESTJAVA}/bin/javac ${TESTCLASSES}/test_data/Test.java" > -+ echo ${COMPILE} > -+ ${COMPILE} > -+ result=$? > -+ > -+ if [ $result -eq 0 ] > -+ then > -+ echo "Compilation of the test class was successful." > -+ else > -+ echo "Compilation of the test class have failed." > -+ # Cleanup > -+ rm -rf ${TESTCLASSES}/ > -+ exit $result > -+ fi > -+} > -+ > -+ > -+ > -+# compilation of the Test itself > -+compileTest() { > -+ COMPILE="${TESTJAVA}/bin/javac ${TESTCLASSES}/JavaFileManagerTest.java" > -+ echo ${COMPILE} > -+ ${COMPILE} > -+ result=$? > -+ > -+ if [ $result -eq 0 ] > -+ then > -+ echo "Compilation of the test case was successful." > -+ else > -+ echo "Compilation of the test case failed." > -+ # Cleanup > -+ rm -rf ${TESTCLASSES}/ > -+ exit $result > -+ fi > -+} > -+ > -+ > -+ > -+# run the test > -+runTest() { > -+ cd ${TESTCLASSES} > -+ RUNCMD="${TESTJAVA}/bin/java JavaFileManagerTest" > -+ echo ${RUNCMD} > -+ ${RUNCMD} > -+ result=$? > -+ > -+ if [ $result -eq 0 ] > -+ then > -+ echo "Execution successful" > -+ else > -+ echo "Execution of the test case failed." > -+ fi > -+ rm -rf ${TESTCLASSES}/ > -+ exit $result > -+} > -+ > -+ > -+ > -+checkArgs > -+printPaths > -+copyWorkFiles > -+compileTestClass > -+compileTest > -+runTest > -+ > ---- /dev/null 1970-01-01 01:00:00.000000000 +0100 > -+++ openjdk/jdk/test/javax/tools/JavaFileManager/test_data/Test.html 2011-03-25 18:19:45.000000000 +0100 > -@@ -0,0 +1,5 @@ > -+ > -+ > -+42 > -+ > -+ > ---- /dev/null 1970-01-01 01:00:00.000000000 +0100 > -+++ openjdk/jdk/test/javax/tools/JavaFileManager/test_data/Test.java 2011-03-28 14:53:50.000000000 +0200 > -@@ -0,0 +1,5 @@ > -+package test_data; > -+ > -+public class Test { > -+ // nothing here > -+} > ---- /dev/null 1970-01-01 01:00:00.000000000 +0100 > -+++ openjdk/jdk/test/javax/tools/JavaFileManager/test_data/Test.txt 2011-03-28 16:15:09.000000000 +0200 > -@@ -0,0 +1,2 @@ > -+42 > -+ > ---- openjdk/langtools/test/tools/javac/api/6411310/Test.java 2011-02-28 17:07:32.000000000 +0100 > -+++ /dev/null 2011-03-27 16:20:13.277479669 +0200 > -@@ -1,254 +0,0 @@ > --/* > -- * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. > -- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. > -- * > -- * This code is free software; you can redistribute it and/or modify it > -- * under the terms of the GNU General Public License version 2 only, as > -- * published by the Free Software Foundation. > -- * > -- * This code is distributed in the hope that it will be useful, but WITHOUT > -- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or > -- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License > -- * version 2 for more details (a copy is included in the LICENSE file that > -- * accompanied this code). > -- * > -- * You should have received a copy of the GNU General Public License version > -- * 2 along with this work; if not, write to the Free Software Foundation, > -- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. > -- * > -- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA > -- * or visit www.oracle.com if you need additional information or have any > -- * questions. > -- */ > -- > --/* > -- * @test > -- * @bug 6410367 6411310 > -- * @summary FileObject should support user-friendly names via getName() > -- */ > -- > --import java.io.*; > --import java.util.*; > --import java.util.jar.*; > --import java.util.zip.*; > --import javax.tools.*; > -- > --import com.sun.tools.javac.file.JavacFileManager; > --import com.sun.tools.javac.util.Context; > --import com.sun.tools.javac.util.Options; > -- > --// Test FileObject.getName returned from JavacFileManager and its support classes. > -- > --public class Test { > -- public static void main(String... args) throws Exception { > -- new Test().run(); > -- } > -- > -- Set foundClasses = new TreeSet(); > -- Set foundJars = new TreeSet(); > -- > -- void run() throws Exception { > -- File rt_jar = findRtJar(); > -- > -- // names for entries to be created in directories and jar files > -- String[] entries = { "p/A.java", "p/A.class", "p/resources/A-1.html" }; > -- > -- // test various combinations of directories and jar files, intended to > -- // cover all sources of file objects within JavacFileManager's support classes > -- > -- test(createFileManager(), createDir("dir", entries), "p", entries); > -- test(createFileManager(), createDir("a b/dir", entries), "p", entries); > -- > -- for (boolean useJavaUtilZip: new boolean[] { false, true }) { > -- test(createFileManager(useJavaUtilZip), createJar("jar", entries), "p", entries); > -- test(createFileManager(useJavaUtilZip), createJar("jar jar", entries), "p", entries); > -- > -- for (boolean useSymbolFile: new boolean[] { false, true }) { > -- test(createFileManager(useJavaUtilZip, useSymbolFile), rt_jar, "java.lang.ref", null); > -- } > -- } > -- > -- if (errors > 0) > -- throw new Exception(errors + " errors found"); > -- > -- // Verify that we hit all the impl classes we intended > -- checkCoverage("classes", foundClasses, > -- "RegularFileObject", "SymbolFileObject", "ZipFileIndexFileObject", "ZipFileObject"); > -- > -- // Verify that we hit the jar files we intended, specifically ct.sym as well as rt.jar > -- checkCoverage("jar files", foundJars, > -- "ct.sym", "jar", "jar jar", "rt.jar"); > -- } > -- > -- // use a new file manager for each test > -- void test(StandardJavaFileManager fm, File f, String pkg, String[] entries) throws Exception { > -- System.err.println("Test " + f); > -- try { > -- if (f.isDirectory()) { > -- for (File dir: new File[] { f, f.getAbsoluteFile() }) { > -- for (String e: entries) { > -- JavaFileObject fo = fm.getJavaFileObjects(new File(dir, e)).iterator().next(); > -- test(fo, dir, e); > -- } > -- } > -- } > -- > -- fm.setLocation(StandardLocation.CLASS_PATH, Collections.singleton(f)); > -- fm.setLocation(StandardLocation.SOURCE_PATH, Collections.singleton(f.getAbsoluteFile())); > -- for (StandardLocation l: EnumSet.of(StandardLocation.CLASS_PATH, StandardLocation.SOURCE_PATH)) { > -- for (JavaFileObject fo: fm.list(l, pkg, EnumSet.allOf(JavaFileObject.Kind.class), true)) { > -- // we could use fm.getLocation but the following guarantees we preserve the original filename > -- File dir = (l == StandardLocation.CLASS_PATH ? f : f.getAbsoluteFile()); > -- char sep = (dir.isDirectory() ? File.separatorChar : '/'); > -- String b = fm.inferBinaryName(l, fo); > -- String e = fo.getKind().extension; > -- test(fo, dir, b.replace('.', sep) + e); > -- } > -- } > -- } finally { > -- fm.close(); > -- } > -- } > -- > -- void test(JavaFileObject fo, File dir, String p) { > -- System.err.println("Test: " + fo); > -- String expect = dir.isDirectory() ? new File(dir, p).getPath() : (dir.getPath() + "(" + p + ")"); > -- String found = fo.getName(); > -- // if ct.sym is found, replace it with the equivalent rt.jar > -- String found2 = found.replaceAll("lib([\\\\/])ct.sym\\(META-INF/sym/rt.jar/", "jre$1lib$1rt.jar("); > -- if (!expect.equals(found2)) { > -- System.err.println("expected: " + expect); > -- System.err.println(" found: " + found); > -- if (!found.equals(found2)) > -- System.err.println(" found2: " + found2); > -- error("Failed: " + fo); > -- } > -- > -- // record the file object class name for coverage checks later > -- foundClasses.add(fo.getClass().getSimpleName()); > -- > -- if (found.contains("(")) { > -- // record access to the jar file for coverage checks later > -- foundJars.add(new File(found.substring(0, found.indexOf("("))).getName()); > -- } > -- } > -- > -- void checkCoverage(String label, Set found, String... expect) throws Exception { > -- Set e = new TreeSet(Arrays.asList(expect)); > -- if (!found.equals(e)) { > -- e.removeAll(found); > -- throw new Exception("expected " + label + " not used: " + e); > -- } > -- } > -- > -- JavacFileManager createFileManager() { > -- return createFileManager(false, false); > -- } > -- > -- JavacFileManager createFileManager(boolean useJavaUtilZip) { > -- return createFileManager(useJavaUtilZip, false); > -- } > -- > -- JavacFileManager createFileManager(boolean useJavaUtilZip, boolean useSymbolFile) { > -- // javac should really not be using system properties like this > -- // -- it should really be using (hidden) options -- but until then > -- // take care to leave system properties as we find them, so as not > -- // to adversely affect other tests that might follow. > -- String prev = System.getProperty("useJavaUtilZip"); > -- boolean resetProperties = false; > -- try { > -- if (useJavaUtilZip) { > -- System.setProperty("useJavaUtilZip", "true"); > -- resetProperties = true; > -- } else if (System.getProperty("useJavaUtilZip") != null) { > -- System.getProperties().remove("useJavaUtilZip"); > -- resetProperties = true; > -- } > -- > -- Context c = new Context(); > -- if (!useSymbolFile) { > -- Options options = Options.instance(c); > -- options.put("ignore.symbol.file", "true"); > -- } > -- > -- return new JavacFileManager(c, false, null); > -- } finally { > -- if (resetProperties) { > -- if (prev == null) { > -- System.getProperties().remove("useJavaUtilZip"); > -- } else { > -- System.setProperty("useJavaUtilZip", prev); > -- } > -- } > -- } > -- } > -- > -- File createDir(String name, String... entries) throws Exception { > -- File dir = new File(name); > -- if (!dir.mkdirs()) > -- throw new Exception("cannot create directories " + dir); > -- for (String e: entries) { > -- writeFile(new File(dir, e), e); > -- } > -- return dir; > -- } > -- > -- File createJar(String name, String... entries) throws IOException { > -- File jar = new File(name); > -- OutputStream out = new FileOutputStream(jar); > -- try { > -- JarOutputStream jos = new JarOutputStream(out); > -- for (String e: entries) { > -- jos.putNextEntry(new ZipEntry(e)); > -- jos.write(e.getBytes()); > -- } > -- jos.close(); > -- } finally { > -- out.close(); > -- } > -- return jar; > -- } > -- > -- File findRtJar() throws Exception { > -- File java_home = new File(System.getProperty("java.home")); > -- if (java_home.getName().equals("jre")) > -- java_home = java_home.getParentFile(); > -- File rt_jar = new File(new File(new File(java_home, "jre"), "lib"), "rt.jar"); > -- if (!rt_jar.exists()) > -- throw new Exception("can't find rt.jar"); > -- return rt_jar; > -- } > -- > -- byte[] read(InputStream in) throws IOException { > -- byte[] data = new byte[1024]; > -- int offset = 0; > -- try { > -- int n; > -- while ((n = in.read(data, offset, data.length - offset)) != -1) { > -- offset += n; > -- if (offset == data.length) > -- data = Arrays.copyOf(data, 2 * data.length); > -- } > -- } finally { > -- in.close(); > -- } > -- return Arrays.copyOf(data, offset); > -- } > -- > -- void writeFile(File f, String s) throws IOException { > -- f.getParentFile().mkdirs(); > -- FileWriter out = new FileWriter(f); > -- try { > -- out.write(s); > -- } finally { > -- out.close(); > -- } > -- } > -- > -- void error(String msg) { > -- System.err.println(msg); > -- errors++; > -- } > -- > -- int errors; > --} -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Thu Jul 28 16:41:08 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Fri, 29 Jul 2011 00:41:08 +0100 Subject: [RFC][IcedTea{7,8}] PR586: Classes missing from src.zip In-Reply-To: <4E31CECD.4020108@redhat.com> References: <4E31CECD.4020108@redhat.com> Message-ID: <20110728234108.GZ22822@rivendell.middle-earth.co.uk> On 17:04 Thu 28 Jul , Danesh Dadachanji wrote: > Hello, > > PR586[1] was fixed in IcedTea6 but slipeed through the cracks for 7 and > 8. I've copied the fix Andrew Hughes made for IcedTea6[2] but just moved > the lines to the correct position in 7 and 8's respective > The idea is fine, but this isn't how we add patches for IcedTea7&8. Please just commit the patch to the appropriate forest. Job done. > I just wasn't sure if I needed to change NEWS (as he did) so let me know > if I should. > Yes, a NEWS update should go in along with a bump to the changeset/checksums to bring in the patch. Have a look at a few of the recent changes by myself and Pavel to see how to do this. > Also, [2] has been marked as IcedTea6 only but it was already closed. I > take it we don't need to reopen/change it? No, it's fine to leave it as is. It's a pity Bugzilla can't list all products where the change has been applied. Instead, we tend to go with the oldest e.g. if it was fixed in IcedTea6 1.8, 1.9, 1.10 and IcedTea7 1.14, we would use IcedTea6 1.8. > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From bugzilla-daemon at icedtea.classpath.org Thu Jul 28 17:09:48 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 29 Jul 2011 00:09:48 +0000 Subject: [Bug 757] IA32 Hotspot FTBFS regression after 7009309 JSR292 fix In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=757 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED Target Milestone|--- |7-2.0 Version|7-hg |7-1.12 --- Comment #1 from Andrew John Hughes 2011-07-29 00:09:48 --- This patch has been applied. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Thu Jul 28 17:10:39 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 29 Jul 2011 00:10:39 +0000 Subject: [Bug 767] Annotation Processing Filer.getResource() always throws FileNotFoundException In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=767 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|critical |normal Status|NEW |RESOLVED Resolution| |FIXED --- Comment #1 from Andrew John Hughes 2011-07-29 00:10:39 --- Thanks for the patch. I've applied it to IcedTea7: http://icedtea.classpath.org/hg/icedtea7-forest/langtools/rev/fb7fb3071b64 and it will appear in 2.0. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Thu Jul 28 17:29:48 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 29 Jul 2011 00:29:48 +0000 Subject: [Bug 753] [regression] Zero FTBFS on stack_zero.cpp : In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=753 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ahughes at redhat.com Status|NEW |RESOLVED Resolution| |FIXED --- Comment #4 from Andrew John Hughes 2011-07-29 00:29:47 --- The fix is already in IcedTea7: http://icedtea.classpath.org/hg/icedtea7-forest/hotspot/rev/d0cf126fa161 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From ahughes at redhat.com Thu Jul 28 17:31:43 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Fri, 29 Jul 2011 01:31:43 +0100 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <4E317669.7070600@redhat.com> References: <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E23FACA.3070305@redhat.com> <4E24998A.9050507@redhat.com> <4E252893.8050809@redhat.com> <4E259ABE.2070606@redhat.com> <20110720202650.GP17111@redhat.com> <4E27D21A.1070102@redhat.com> <20110725135400.GB17692@rivendell.middle-earth.co.uk> <4E317669.7070600@redhat.com> Message-ID: <20110729003143.GE22822@rivendell.middle-earth.co.uk> On 10:47 Thu 28 Jul , Saad Mohammad wrote: > On 07/25/2011 09:54 AM, Dr Andrew John Hughes wrote: > > On 09:15 Thu 21 Jul , Jiri Vanek wrote: > >> On 07/20/2011 10:26 PM, Deepak Bhole wrote: > >>> * Saad Mohammad [2011-07-19 11:04]: > >>>>> I have attached the updated copy of Patch1. > >>>>> > >>>>> On 07/19/2011 02:47 AM, Jiri Vanek wrote: > >>>>>>> >> > >>>>>>> >>I hope this is the 110% for Patch1! ;) > >>>>>> >99% ;) > >>>>> This is for sure the 110% ;) > >>>>> > >>>>> -- > >>>>> Cheers, > >>>>> Saad Mohammad > >>>>> > >>> Hi Saad, > >>> > >>> I have a few minor corrections for this one... > >>> > >>>>> + > >>>>> + if (appTemplate == null&& launchJNLP == null) > >>>>> + throw new NullPointerException( > >>>>> + "Template JNLP file and Launching JNLP file are both null."); > >>>>> + else if (appTemplate == null) > >>>>> + throw new NullPointerException("Template JNLP file is null."); > >>>>> + else if (launchJNLP == null) > >>>>> + throw new NullPointerException("Launching JNLP file is null."); > >>>>> + > >>> Throwing RuntimeExceptions is generally not a good idea. Consider making > >>> the above a checked exception. > >> I believe nullpointer exception is correct here. Or it will make mess later. > >> Although to repalce it with JNLMatch exception can do no harm. > >> > > I don't see the point of throwing an NPE, catching it and throwing it attached to something else. > > The reason why I am doing this ^, is so the class that is creating an > instance of JNLPMatcher would not have to handle catching more than one > exceptions. Generally if any exception is thrown from this constructor, > it would results in the same outcome (JNLPMatcher failed to be > initialized). Attaching the exception to the new thrown exception would > help identify the cause. > > An alternative can be to remove the try/catch block completely and let > the compiler know that the contructor throws NullPointerException and > IOException(while parsing). In this case, the class that initializes > JNLPMatcher would have to catch all exceptions, or the two exceptions > individually. > > I think both methods of handing exceptions will work great, but please > let me know what you think? I'm not suggesting it should throw additional exceptions, but that these lines should just directly throw JNLPMatcherException rather than this throw-catch-throw dance. > > >>>>> + XMLElement appTemplateXML = new XMLElement(); > >>>>> + XMLElement launchJNLPXML = new XMLElement(); > >>>>> + > >>>>> + // Remove the comments and CDATA from the JNLP file > >>>>> + final PipedInputStream pinTemplate = new PipedInputStream(); > >>>>> + final PipedOutputStream poutTemplate = new PipedOutputStream(pinTemplate); > >>>>> + appTemplateXML.sanitizeInput(appTemplate, poutTemplate); > >>>>> + > >>>>> + final PipedInputStream pinJNLPFile = new PipedInputStream(); > >>>>> + final PipedOutputStream poutJNLPFile = new PipedOutputStream(pinJNLPFile); > >>>>> + launchJNLPXML.sanitizeInput(launchJNLP, poutJNLPFile); > >>>>> + > >>> The above streams are never closed. > >> I' guess, ... > >> > >> ...see previous email.. > >> > >> ...l) s.close(); > >> } > >> > >> > >> around s.close() yo can possibly clsoe io exception into JNLPMatcherException. > >> > > You need a finally block. > > Yes, I will add the finally block. Thanks :) > > >> > >> Regards J. > >> > > > -- > Cheers, > Saad Mohammad > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Thu Jul 28 17:33:42 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Fri, 29 Jul 2011 01:33:42 +0100 Subject: Reviewer needed: backport of "S6669869: Beans.isDesignTime() and other queries should be per-AppContext" into IcedTea6 HEAD In-Reply-To: <4E31353A.2080706@redhat.com> References: <4E300F9E.3010306@redhat.com> <20110727181223.GC22822@rivendell.middle-earth.co.uk> <4E31353A.2080706@redhat.com> Message-ID: <20110729003342.GF22822@rivendell.middle-earth.co.uk> On 12:08 Thu 28 Jul , Pavel Tisnovsky wrote: > Dr Andrew John Hughes wrote: > > On 15:16 Wed 27 Jul , Pavel Tisnovsky wrote: > >> Greetings, > >> > >> is it possible to push the backport of fix "S6669869: > >> Beans.isDesignTime() and other queries should be per-AppContext" > >> into IcedTea6 HEAD please? > >> > >> The behaviour of this fix was checked on RHELs. > >> > >> Please note, that the fix seems to be long and difficult, but in fact > >> the changes are quite simple (four lines of code contains the fix, other > >> changes are just caused by not using full class names with theirs packages). > >> > > > > Ugh, I wish they wouldn't create such noisy changesets. > I'm sorry, blame Oracle ;-) > > > >> Here's ChangeLog entry: > >> > >> 2011-07-27 Pavel Tisnovsky > >> > >> * Makefile.am: added new patch > >> * NEWS: updated with backport > >> * > >> patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch: > >> Backport of 6669869. > >> > >> > >> Can anybody please review this change? > >> > > > > I'm not sure about this. Won't it change the runtime behaviour of these methods? > > This change allows to call both methods (namely isDesignTime() & > isGuiAvailable()) also from other application context. If this method is > called from current app. context, nothing has changed. AFAIK - these > method are quite useless when they can not be called from other context, > especially in the case of applets. > Ok, apply it just to HEAD and we'll see how things go. > P. > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ptisnovs at icedtea.classpath.org Fri Jul 29 02:23:53 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 29 Jul 2011 09:23:53 +0000 Subject: /hg/icedtea6: S6669869: Beans.isDesignTime() and other queries s... Message-ID: changeset c1229a523e02 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=c1229a523e02 author: ptisnovs date: Fri Jul 29 11:23:42 2011 +0200 S6669869: Beans.isDesignTime() and other queries should be per- AppContext diffstat: ChangeLog | 7 + Makefile.am | 3 +- NEWS | 1 + patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch | 343 ++++++++++ 4 files changed, 353 insertions(+), 1 deletions(-) diffs (388 lines): diff -r a6ba1170da98 -r c1229a523e02 ChangeLog --- a/ChangeLog Mon Jul 25 13:44:57 2011 +0200 +++ b/ChangeLog Fri Jul 29 11:23:42 2011 +0200 @@ -1,3 +1,10 @@ +2011-07-29 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch: + Backport of 6669869. + 2011-07-25 Pavel Tisnovsky * Makefile.am: added new patch diff -r a6ba1170da98 -r c1229a523e02 Makefile.am --- a/Makefile.am Mon Jul 25 13:44:57 2011 +0200 +++ b/Makefile.am Fri Jul 29 11:23:42 2011 +0200 @@ -369,7 +369,8 @@ patches/openjdk/4917091-javac_rejects_array_over_128_in_length.patch \ patches/openjdk/6390045-error_cannot_access_java_lang_void.patch \ patches/openjdk/6752638-preferLocaleFonts_throws_NPE.patch \ - patches/openjdk/5047314-Collator_compare_runs_indefinitely.patch + patches/openjdk/5047314-Collator_compare_runs_indefinitely.patch \ + patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r a6ba1170da98 -r c1229a523e02 NEWS --- a/NEWS Mon Jul 25 13:44:57 2011 +0200 +++ b/NEWS Fri Jul 29 11:23:42 2011 +0200 @@ -362,6 +362,7 @@ - S6390045: Unexpected error "cannot access java.lang.Void" with '-target cldc1.0' with -source >=1.5 - S6752638: java.awt.GraphicsEnvironment.preferLocaleFonts() throws NPE on Linux - S5047314: [Col] Collator.compare() runs indefinitely for a certain set of Thai strings + - S6669869: Beans.isDesignTime() and other queries should be per-AppContext * Allow selection of test suites using the jtreg_checks argument e.g. jtreg_checks="langtools" * CACAO - Threadlist & threadobject improvements. diff -r a6ba1170da98 -r c1229a523e02 patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch Fri Jul 29 11:23:42 2011 +0200 @@ -0,0 +1,346 @@ +# HG changeset patch +# User malenkov +# Date 1233842457 -10800 +# Node ID 27dabbdfdcacc855219955f4eb610856b13d4543 +# Parent 62a84e564a8c9686b19b9bc09d76f8c9c41ab264 +6669869: Beans.isDesignTime() and other queries should be per-AppContext +Reviewed-by: peterz, rupashka + +diff -r 62a84e564a8c -r 27dabbdfdcac src/share/classes/java/beans/Beans.java +--- openjdk.orig/jdk/src/share/classes/java/beans/Beans.java Thu Feb 05 14:48:10 2009 +0300 ++++ openjdk/jdk/src/share/classes/java/beans/Beans.java Thu Feb 05 17:00:57 2009 +0300 +@@ -27,26 +27,41 @@ + + import com.sun.beans.finder.ClassFinder; + +-import java.applet.*; ++import java.applet.Applet; ++import java.applet.AppletContext; ++import java.applet.AppletStub; ++import java.applet.AudioClip; + +-import java.awt.*; +- +-import java.beans.AppletInitializer; ++import java.awt.GraphicsEnvironment; ++import java.awt.Image; + + import java.beans.beancontext.BeanContext; + +-import java.io.*; +- +-import java.lang.reflect.Constructor; ++import java.io.IOException; ++import java.io.InputStream; ++import java.io.ObjectInputStream; ++import java.io.ObjectStreamClass; ++import java.io.StreamCorruptedException; + + import java.net.URL; +-import java.lang.reflect.Array; ++ ++import java.security.AccessController; ++import java.security.PrivilegedAction; ++ ++import java.util.Enumeration; ++import java.util.Hashtable; ++import java.util.Iterator; ++import java.util.Vector; ++ ++import sun.awt.AppContext; + + /** + * This class provides some general purpose beans control methods. + */ + + public class Beans { ++ private static final Object DESIGN_TIME = new Object(); ++ private static final Object GUI_AVAILABLE = new Object(); + + /** + *

+@@ -59,12 +74,12 @@ + * @param beanName the name of the bean within the class-loader. + * For example "sun.beanbox.foobah" + * +- * @exception java.lang.ClassNotFoundException if the class of a serialized ++ * @exception ClassNotFoundException if the class of a serialized + * object could not be found. +- * @exception java.io.IOException if an I/O error occurs. ++ * @exception IOException if an I/O error occurs. + */ + +- public static Object instantiate(ClassLoader cls, String beanName) throws java.io.IOException, ClassNotFoundException { ++ public static Object instantiate(ClassLoader cls, String beanName) throws IOException, ClassNotFoundException { + return Beans.instantiate(cls, beanName, null, null); + } + +@@ -80,12 +95,12 @@ + * For example "sun.beanbox.foobah" + * @param beanContext The BeanContext in which to nest the new bean + * +- * @exception java.lang.ClassNotFoundException if the class of a serialized ++ * @exception ClassNotFoundException if the class of a serialized + * object could not be found. +- * @exception java.io.IOException if an I/O error occurs. ++ * @exception IOException if an I/O error occurs. + */ + +- public static Object instantiate(ClassLoader cls, String beanName, BeanContext beanContext) throws java.io.IOException, ClassNotFoundException { ++ public static Object instantiate(ClassLoader cls, String beanName, BeanContext beanContext) throws IOException, ClassNotFoundException { + return Beans.instantiate(cls, beanName, beanContext, null); + } + +@@ -135,19 +150,19 @@ + * @param beanContext The BeanContext in which to nest the new bean + * @param initializer The AppletInitializer for the new bean + * +- * @exception java.lang.ClassNotFoundException if the class of a serialized ++ * @exception ClassNotFoundException if the class of a serialized + * object could not be found. +- * @exception java.io.IOException if an I/O error occurs. ++ * @exception IOException if an I/O error occurs. + */ + + public static Object instantiate(ClassLoader cls, String beanName, BeanContext beanContext, AppletInitializer initializer) +- throws java.io.IOException, ClassNotFoundException { ++ throws IOException, ClassNotFoundException { + +- java.io.InputStream ins; +- java.io.ObjectInputStream oins = null; ++ InputStream ins; ++ ObjectInputStream oins = null; + Object result = null; + boolean serialized = false; +- java.io.IOException serex = null; ++ IOException serex = null; + + // If the given classloader is null, we check if an + // system classloader is available and (if so) +@@ -166,8 +181,8 @@ + // Try to find a serialized object with this name + final String serName = beanName.replace('.','/').concat(".ser"); + final ClassLoader loader = cls; +- ins = (InputStream)java.security.AccessController.doPrivileged +- (new java.security.PrivilegedAction() { ++ ins = (InputStream)AccessController.doPrivileged ++ (new PrivilegedAction() { + public Object run() { + if (loader == null) + return ClassLoader.getSystemResourceAsStream(serName); +@@ -185,7 +200,7 @@ + result = oins.readObject(); + serialized = true; + oins.close(); +- } catch (java.io.IOException ex) { ++ } catch (IOException ex) { + ins.close(); + // Drop through and try opening the class. But remember + // the exception in case we can't find the class either. +@@ -264,8 +279,8 @@ + + final ClassLoader cloader = cls; + objectUrl = (URL) +- java.security.AccessController.doPrivileged +- (new java.security.PrivilegedAction() { ++ AccessController.doPrivileged ++ (new PrivilegedAction() { + public Object run() { + if (cloader == null) + return ClassLoader.getSystemResource +@@ -377,10 +392,11 @@ + * @return True if we are running in an application construction + * environment. + * +- * @see java.beans.DesignMode ++ * @see DesignMode + */ + public static boolean isDesignTime() { +- return designTime; ++ Object value = AppContext.getAppContext().get(DESIGN_TIME); ++ return (value instanceof Boolean) && (Boolean) value; + } + + /** +@@ -393,11 +409,12 @@ + * false in a server environment or if an application is + * running as part of a batch job. + * +- * @see java.beans.Visibility ++ * @see Visibility + * + */ + public static boolean isGuiAvailable() { +- return guiAvailable; ++ Object value = AppContext.getAppContext().get(GUI_AVAILABLE); ++ return (value instanceof Boolean) ? (Boolean) value : !GraphicsEnvironment.isHeadless(); + } + + /** +@@ -423,7 +440,7 @@ + if (sm != null) { + sm.checkPropertiesAccess(); + } +- designTime = isDesignTime; ++ AppContext.getAppContext().put(DESIGN_TIME, Boolean.valueOf(isDesignTime)); + } + + /** +@@ -449,14 +466,7 @@ + if (sm != null) { + sm.checkPropertiesAccess(); + } +- guiAvailable = isGuiAvailable; +- } +- +- +- private static boolean designTime; +- private static boolean guiAvailable; +- static { +- guiAvailable = !GraphicsEnvironment.isHeadless(); ++ AppContext.getAppContext().put(GUI_AVAILABLE, Boolean.valueOf(isGuiAvailable)); + } + } + +@@ -501,7 +511,7 @@ + + class BeansAppletContext implements AppletContext { + Applet target; +- java.util.Hashtable imageCache = new java.util.Hashtable(); ++ Hashtable imageCache = new Hashtable(); + + BeansAppletContext(Applet target) { + this.target = target; +@@ -546,8 +556,8 @@ + return null; + } + +- public java.util.Enumeration getApplets() { +- java.util.Vector applets = new java.util.Vector(); ++ public Enumeration getApplets() { ++ Vector applets = new Vector(); + applets.addElement(target); + return applets.elements(); + } +@@ -573,7 +583,7 @@ + return null; + } + +- public java.util.Iterator getStreamKeys(){ ++ public Iterator getStreamKeys(){ + // We do nothing. + return null; + } +diff -r 62a84e564a8c -r 27dabbdfdcac test/java/beans/Beans/6669869/TestDesignTime.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/java/beans/Beans/6669869/TestDesignTime.java Thu Feb 05 17:00:57 2009 +0300 +@@ -0,0 +1,52 @@ ++/* ++ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++/* ++ * @test ++ * @bug 6669869 ++ * @summary Tests DesignTime property in different application contexts ++ * @author Sergey Malenkov ++ */ ++ ++import java.beans.Beans; ++import sun.awt.SunToolkit; ++ ++public class TestDesignTime implements Runnable { ++ public static void main(String[] args) throws InterruptedException { ++ if (Beans.isDesignTime()) { ++ throw new Error("unexpected DesignTime property"); ++ } ++ Beans.setDesignTime(!Beans.isDesignTime()); ++ ThreadGroup group = new ThreadGroup("$$$"); ++ Thread thread = new Thread(group, new TestDesignTime()); ++ thread.start(); ++ thread.join(); ++ } ++ ++ public void run() { ++ SunToolkit.createNewAppContext(); ++ if (Beans.isDesignTime()) { ++ throw new Error("shared DesignTime property"); ++ } ++ } ++} +diff -r 62a84e564a8c -r 27dabbdfdcac test/java/beans/Beans/6669869/TestGuiAvailable.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/java/beans/Beans/6669869/TestGuiAvailable.java Thu Feb 05 17:00:57 2009 +0300 +@@ -0,0 +1,53 @@ ++/* ++ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++/* ++ * @test ++ * @bug 6669869 ++ * @summary Tests GuiAvailable property in different application contexts ++ * @author Sergey Malenkov ++ */ ++ ++import java.awt.GraphicsEnvironment; ++import java.beans.Beans; ++import sun.awt.SunToolkit; ++ ++public class TestGuiAvailable implements Runnable { ++ public static void main(String[] args) throws InterruptedException { ++ if (Beans.isGuiAvailable() == GraphicsEnvironment.isHeadless()) { ++ throw new Error("unexpected GuiAvailable property"); ++ } ++ Beans.setGuiAvailable(!Beans.isGuiAvailable()); ++ ThreadGroup group = new ThreadGroup("$$$"); ++ Thread thread = new Thread(group, new TestGuiAvailable()); ++ thread.start(); ++ thread.join(); ++ } ++ ++ public void run() { ++ SunToolkit.createNewAppContext(); ++ if (Beans.isGuiAvailable() == GraphicsEnvironment.isHeadless()) { ++ throw new Error("shared GuiAvailable property"); ++ } ++ } ++} From ptisnovs at icedtea.classpath.org Fri Jul 29 04:51:48 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 29 Jul 2011 11:51:48 +0000 Subject: /hg/gfx-test: Created new test suite containing test using Path2... Message-ID: changeset 4b4898a531dc in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=4b4898a531dc author: Pavel Tisnovsky date: Fri Jul 29 13:53:28 2011 +0200 Created new test suite containing test using Path2D class for rendering lines. diffstat: ChangeLog | 5 + Makefile | 2 + src/org/gfxtest/framework/ColorPalette.java | 82 + src/org/gfxtest/framework/annotations/GraphicsPrimitives.java | 5 + src/org/gfxtest/testsuites/PathsFromLines.java | 668 ++++++++++ 5 files changed, 762 insertions(+), 0 deletions(-) diffs (truncated from 802 to 500 lines): diff -r f09f02f3af4f -r 4b4898a531dc ChangeLog --- a/ChangeLog Thu Jul 28 16:43:52 2011 +0200 +++ b/ChangeLog Fri Jul 29 13:53:28 2011 +0200 @@ -1,3 +1,8 @@ +2011-07-29 Pavel Tisnovsky + * Makefile: added new class to compile & run: PathsFromLines.java + * src/org/gfxtest/testsuites/PathsFromLines.java: created new test + suite containing test using Path2D class for rendering lines. + 2011-07-28 Pavel Tisnovsky * src/org/gfxtest/testsuites/NormalLines.java: added new tests diff -r f09f02f3af4f -r 4b4898a531dc Makefile --- a/Makefile Thu Jul 28 16:43:52 2011 +0200 +++ b/Makefile Fri Jul 29 13:53:28 2011 +0200 @@ -125,6 +125,7 @@ $(CLASSES)/$(TESTSUITE_DIR)/DashedPolygons.class \ $(CLASSES)/$(TESTSUITE_DIR)/DashedRectangles.class \ $(CLASSES)/$(TESTSUITE_DIR)/DashedRoundRectangles.class \ + $(CLASSES)/$(TESTSUITE_DIR)/PathsFromLines.class \ $(CLASSES)/$(TESTSUITE_DIR)/SpecialCases.class COMPARE_RESULTS = \ @@ -159,6 +160,7 @@ $(RESULTS)/DashedPolygons \ $(RESULTS)/DashedRectangles \ $(RESULTS)/DashedRoundRectangles \ + $(RESULTS)/PathsFromLines \ $(RESULTS)/SpecialCases # targets for all test suites diff -r f09f02f3af4f -r 4b4898a531dc src/org/gfxtest/framework/ColorPalette.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/gfxtest/framework/ColorPalette.java Fri Jul 29 13:53:28 2011 +0200 @@ -0,0 +1,82 @@ +/* + Java gfx-test framework + + Copyright (C) 2010, 2011 Red Hat + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +IcedTea is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package org.gfxtest.framework; + +import java.awt.Color; + +/** + * Color palette used by various tests. + * + * @author Pavel Tisnovsky + */ +public class ColorPalette +{ + /** + * Small test 12-color palette + */ + private static Color[] colors = new Color[] + { + Color.BLACK, + Color.BLUE, + Color.CYAN, + Color.GREEN, + Color.ORANGE, + Color.RED, + Color.YELLOW, + Color.MAGENTA, + Color.PINK, + Color.LIGHT_GRAY, + Color.GRAY, + Color.DARK_GRAY + }; + + /** + * Return color for the specified position in a color palette. + * + * @param color + * color index + * @return selected color + */ + public static Color getColor(int color) + { + return ColorPalette.colors[color % colors.length]; + } +} diff -r f09f02f3af4f -r 4b4898a531dc src/org/gfxtest/framework/annotations/GraphicsPrimitives.java --- a/src/org/gfxtest/framework/annotations/GraphicsPrimitives.java Thu Jul 28 16:43:52 2011 +0200 +++ b/src/org/gfxtest/framework/annotations/GraphicsPrimitives.java Fri Jul 29 13:53:28 2011 +0200 @@ -110,4 +110,9 @@ * Cubic parametric curve segment in (x, y) coordinate space. */ CUBIC_CURVE, + + /** + * Generic path consisting of line segments, quadratic curves and cubic curves. + */ + PATH, } diff -r f09f02f3af4f -r 4b4898a531dc src/org/gfxtest/testsuites/PathsFromLines.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/gfxtest/testsuites/PathsFromLines.java Fri Jul 29 13:53:28 2011 +0200 @@ -0,0 +1,668 @@ +/* + Java gfx-test framework + + Copyright (C) 2010, 2011 Red Hat + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +IcedTea is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package org.gfxtest.testsuites; + +import java.awt.BasicStroke; +import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.geom.Path2D; + +import org.gfxtest.framework.*; +import org.gfxtest.framework.annotations.*; + + + +/** + * These tests renders various shapes using Path2D class. + * + * @author Pavel Tisnovsky + */ + at TestType(TestTypes.RENDER_TEST) + at GraphicsPrimitive(GraphicsPrimitives.PATH) + at RenderStyle(RenderStyles.NORMAL) + at Transformation(Transformations.NONE) + at Zoom(1) +public class PathsFromLines extends GfxTest +{ + + /** + * Width of border where lines are not drawn + */ + private static final int BORDER_WIDTH = 30; + + /** + * Step used for drawing sequence of horizontal and/or vertical lines + */ + private static final int STEP = 20; + + /** + * This method creates Path2D consisting of just one line. + * + * @param x1 + * the first point's x coordinate. + * @param y1 + * the first point's y coordinate. + * @param x2 + * the second point's x coordinate. + * @param y2 + * the second point's y coordinate. + * @return created Path2D object + */ + private static Path2D createLinePath(int x1, int y1, int x2, int y2) + { + Path2D path = new Path2D.Float(); + path.moveTo(x1, y1); + path.lineTo(x2, y2); + return path; + } + + /** + * This method creates horizontal Path2D consisting of just one line. + * + * @param y + * both end point's y coordinate + * @param width + * line width (not including borders) + * @return created Path2D object + */ + private static Path2D createHorizontalLinePath(int y, int width) + { + return createLinePath(BORDER_WIDTH, y, width - BORDER_WIDTH, y); + } + + /** + * This method creates vertical Path2D consisting of just one line. + * + * @param x + * both end point's x coordinate + * @param height + * line height (not including borders) + * @return created Path2D object + */ + private static Path2D createVerticalLinePath(int x, int height) + { + return createLinePath(x, BORDER_WIDTH, x, height - BORDER_WIDTH); + } + + /** + * Computes color for line drawn by different angle + * + * @param index + * counter + * @return color computed for a given index + */ + private Color computeColorForSlopedLine(int index) + { + return new Color(Color.HSBtoRGB((float) index / ANGLES, 1.0f, 1.0f)); + } + + /** + * This method created sloped line using Path2D class. + * + * @param xc + * x-coordinate of center of test image + * @param yc + * y-coordinate of center of test image + * @param index + * counter + * @return new sloped line represented by an instance of Path2D + */ + private Path2D createSlopedLine(int xc, int yc, int index) + { + int majorRadius = (xc > yc ? yc : xc) - 20; + double angle = 2.0 * index / ANGLES * Math.PI; + double cos = Math.cos(angle); + double sin = Math.sin(angle); + + // calculate line end points + int x1 = xc + (int) (MINOR_RADIUS * cos); + int y1 = yc + (int) (MINOR_RADIUS * sin); + int x2 = xc + (int) (majorRadius * cos); + int y2 = yc + (int) (majorRadius * sin); + + // create new path + return createLinePath(x1, y1, x2, y2); + } + + /** + * Draw color wheel using 'ANGLES' lines + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + */ + private void drawColorWheel(TestImage image, Graphics2D graphics) + { + // compute center of the image + int xc = image.getCenterX(); + int yc = image.getCenterY(); + for (int i = 0; i < ANGLES; i++) + { + // set line color + graphics.setColor(computeColorForSlopedLine(i)); + + // create the shape + Path2D path = createSlopedLine(xc, yc, i); + + // draw the shape + graphics.draw(path); + } + } + + /** + * Test basic behavior of drawing line using Path2D.Float() + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawLineF1(TestImage image, Graphics2D graphics) + { + // set drawing color + graphics.setColor(Color.BLACK); + + // create new path + Path2D path = createLinePath(BORDER_WIDTH, BORDER_WIDTH, image.getWidth() - BORDER_WIDTH, image.getHeight() - BORDER_WIDTH); + + // draw the shape + graphics.draw(path); + + // test return value + return TestResult.PASSED; + } + + /** + * Draw line using various angles and various colors. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + */ + public TestResult testDrawLineAtAngles1(TestImage image, Graphics2D graphics) + { + // set drawing color + graphics.setColor(Color.BLACK); + + drawColorWheel(image, graphics); + + // test return value + return TestResult.PASSED; + } + + /** + * Draw line using various angles and various colors and wider stroke. + * Line end points are set to default value. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + */ + public TestResult testDrawLineAtAngles2(TestImage image, Graphics2D graphics) + { + // set drawing color + graphics.setColor(Color.BLACK); + + // set stroke + graphics.setStroke(new BasicStroke(5)); + drawColorWheel(image, graphics); + + // test return value + return TestResult.PASSED; + } + + /** + * Draw line using various angles and various colors and wider stroke. + * Line end points are set to CAP_BUTT. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + */ + public TestResult testDrawLineAtAngles3(TestImage image, Graphics2D graphics) + { + // set drawing color + graphics.setColor(Color.BLACK); + + // set stroke + graphics.setStroke(new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); + drawColorWheel(image, graphics); + + // test return value + return TestResult.PASSED; + } + + /** + * Draw line using various angles and various colors and wider stroke. + * Line end points are set to CAP_ROUND. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + */ + public TestResult testDrawLineAtAngles4(TestImage image, Graphics2D graphics) + { + // set drawing color + graphics.setColor(Color.BLACK); + + // set stroke + graphics.setStroke(new BasicStroke(5, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL)); + drawColorWheel(image, graphics); + + // test return value + return TestResult.PASSED; + } + + /** + * Draw line using various angles and various colors and wider stroke. + * Line end points are set to CAP_SQUARE. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + */ + public TestResult testDrawLineAtAngles5(TestImage image, Graphics2D graphics) + { + // set drawing color + graphics.setColor(Color.BLACK); + + // set stroke + graphics.setStroke(new BasicStroke(5, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL)); + drawColorWheel(image, graphics); + + // test return value + return TestResult.PASSED; + } + + /** + * Test basic behavior of drawing vertical lines using Path2D.Float(). Lines + * are drawn using various colors. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawLineVert1(TestImage image, Graphics2D graphics) + { + int colorIndex = 0; + for (int x = BORDER_WIDTH; x < image.getWidth() - BORDER_WIDTH; x += STEP) + { + // set drawing color + graphics.setColor(ColorPalette.getColor(colorIndex++)); + + // create new path + Path2D path = createVerticalLinePath(x, image.getHeight()); + + // draw the shape + graphics.draw(path); + } + + // test return value + return TestResult.PASSED; + } + + /** + * Test basic behavior of drawing vertical lines using Path2D.Float(). Lines + * are drawn using various stroke width. Lines end points are set to default + * values. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawLineVert2(TestImage image, Graphics2D graphics) + { + // set drawing color + graphics.setColor(Color.BLACK); + float strokeWidth = 0; From smohammad at redhat.com Fri Jul 29 06:43:54 2011 From: smohammad at redhat.com (Saad Mohammad) Date: Fri, 29 Jul 2011 09:43:54 -0400 Subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch In-Reply-To: <20110729003143.GE22822@rivendell.middle-earth.co.uk> References: <4E17493F.5050905@redhat.com> <4E204CD8.306@redhat.com> <4E23FACA.3070305@redhat.com> <4E24998A.9050507@redhat.com> <4E252893.8050809@redhat.com> <4E259ABE.2070606@redhat.com> <20110720202650.GP17111@redhat.com> <4E27D21A.1070102@redhat.com> <20110725135400.GB17692@rivendell.middle-earth.co.uk> <4E317669.7070600@redhat.com> <20110729003143.GE22822@rivendell.middle-earth.co.uk> Message-ID: <4E32B91A.3070809@redhat.com> On 07/28/2011 08:31 PM, Dr Andrew John Hughes wrote: > On 10:47 Thu 28 Jul , Saad Mohammad wrote: >> On 07/25/2011 09:54 AM, Dr Andrew John Hughes wrote: >>> On 09:15 Thu 21 Jul , Jiri Vanek wrote: >>>> On 07/20/2011 10:26 PM, Deepak Bhole wrote: >>>>> * Saad Mohammad [2011-07-19 11:04]: >>>>>>> I have attached the updated copy of Patch1. >>>>>>> >>>>>>> On 07/19/2011 02:47 AM, Jiri Vanek wrote: >>>>>>>>> >> >>>>>>>>> >>I hope this is the 110% for Patch1! ;) >>>>>>>> >99% ;) >>>>>>> This is for sure the 110% ;) >>>>>>> >>>>>>> -- >>>>>>> Cheers, >>>>>>> Saad Mohammad >>>>>>> >>>>> Hi Saad, >>>>> >>>>> I have a few minor corrections for this one... >>>>> >>>>>>> + >>>>>>> + if (appTemplate == null&& launchJNLP == null) >>>>>>> + throw new NullPointerException( >>>>>>> + "Template JNLP file and Launching JNLP file are both null."); >>>>>>> + else if (appTemplate == null) >>>>>>> + throw new NullPointerException("Template JNLP file is null."); >>>>>>> + else if (launchJNLP == null) >>>>>>> + throw new NullPointerException("Launching JNLP file is null."); >>>>>>> + >>>>> Throwing RuntimeExceptions is generally not a good idea. Consider making >>>>> the above a checked exception. >>>> I believe nullpointer exception is correct here. Or it will make mess later. >>>> Although to repalce it with JNLMatch exception can do no harm. >>>> >>> I don't see the point of throwing an NPE, catching it and throwing it attached to something else. >> The reason why I am doing this ^, is so the class that is creating an >> instance of JNLPMatcher would not have to handle catching more than one >> exceptions. Generally if any exception is thrown from this constructor, >> it would results in the same outcome (JNLPMatcher failed to be >> initialized). Attaching the exception to the new thrown exception would >> help identify the cause. >> >> An alternative can be to remove the try/catch block completely and let >> the compiler know that the contructor throws NullPointerException and >> IOException(while parsing). In this case, the class that initializes >> JNLPMatcher would have to catch all exceptions, or the two exceptions >> individually. >> >> I think both methods of handing exceptions will work great, but please >> let me know what you think? > I'm not suggesting it should throw additional exceptions, but that > these lines should just directly throw JNLPMatcherException rather > than this throw-catch-throw dance. ahh, I see. That does sound like a better solution. Thanks :). I will make the changes on a new patch. >>>>>>> + XMLElement appTemplateXML = new XMLElement(); >>>>>>> + XMLElement launchJNLPXML = new XMLElement(); >>>>>>> + >>>>>>> + // Remove the comments and CDATA from the JNLP file >>>>>>> + final PipedInputStream pinTemplate = new PipedInputStream(); >>>>>>> + final PipedOutputStream poutTemplate = new PipedOutputStream(pinTemplate); >>>>>>> + appTemplateXML.sanitizeInput(appTemplate, poutTemplate); >>>>>>> + >>>>>>> + final PipedInputStream pinJNLPFile = new PipedInputStream(); >>>>>>> + final PipedOutputStream poutJNLPFile = new PipedOutputStream(pinJNLPFile); >>>>>>> + launchJNLPXML.sanitizeInput(launchJNLP, poutJNLPFile); >>>>>>> + >>>>> The above streams are never closed. >>>> I' guess, ... >>>> >>>> ...see previous email.. >>>> >>>> ...l) s.close(); >>>> } >>>> >>>> >>>> around s.close() yo can possibly clsoe io exception into JNLPMatcherException. >>>> >>> You need a finally block. >> Yes, I will add the finally block. Thanks :) >> >>>> Regards J. >>>> >> >> -- >> Cheers, >> Saad Mohammad >> -- Cheers, Saad Mohammad From ptisnovs at icedtea.classpath.org Fri Jul 29 07:37:32 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 29 Jul 2011 14:37:32 +0000 Subject: /hg/gfx-test: Improved JavaDoc in AALines sources. Message-ID: changeset f1aa5b49eb61 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=f1aa5b49eb61 author: Pavel Tisnovsky date: Fri Jul 29 16:39:12 2011 +0200 Improved JavaDoc in AALines sources. diffstat: ChangeLog | 3 + src/org/gfxtest/testsuites/AALines.java | 224 +++++++++++++++++++++++++--- src/org/gfxtest/testsuites/NormalLines.java | 4 +- 3 files changed, 206 insertions(+), 25 deletions(-) diffs (390 lines): diff -r 4b4898a531dc -r f1aa5b49eb61 ChangeLog --- a/ChangeLog Fri Jul 29 13:53:28 2011 +0200 +++ b/ChangeLog Fri Jul 29 16:39:12 2011 +0200 @@ -1,3 +1,6 @@ +2011-07-29 Pavel Tisnovsky + * src/org/gfxtest/testsuites/AALines.java: improved JavaDoc. + 2011-07-29 Pavel Tisnovsky * Makefile: added new class to compile & run: PathsFromLines.java * src/org/gfxtest/testsuites/PathsFromLines.java: created new test diff -r 4b4898a531dc -r f1aa5b49eb61 src/org/gfxtest/testsuites/AALines.java --- a/src/org/gfxtest/testsuites/AALines.java Fri Jul 29 13:53:28 2011 +0200 +++ b/src/org/gfxtest/testsuites/AALines.java Fri Jul 29 16:39:12 2011 +0200 @@ -48,6 +48,13 @@ import org.gfxtest.framework.*; import org.gfxtest.framework.annotations.*; +/** + * This test check the rendering of antialiased lines. + * All sample images and test images are zoomed to show + * the pixel-wide differences between both renderers. + * + * @author Pavel Tisnovsky + */ @TestType(TestTypes.RENDER_TEST) @GraphicsPrimitive(GraphicsPrimitives.LINE) @RenderStyle(RenderStyles.NORMAL_AA) @@ -55,19 +62,42 @@ @Zoom(16) public class AALines extends GfxTest { - private static void drawLine(BufferedImage img, Graphics2D g, int x1, int y1, int x2, int y2, Color color) + /** + * Draw line onto the image using given color and also highlights both line + * end points. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @param x1 + * the first point's x coordinate. + * @param y1 + * the first point's y coordinate. + * @param x2 + * the second point's x coordinate. + * @param y2 + * the second point's y coordinate. + * @param color + * line color + */ + private static void drawLine(BufferedImage image, Graphics2D graphics2d, int x1, int y1, int x2, int y2, Color color) { - g.setColor(color); - g.drawLine(x1, y1, x2, y2); - img.setRGB(x1, y1, 0xff0000); - img.setRGB(x2, y2, 0xff0000); + graphics2d.setColor(color); + graphics2d.drawLine(x1, y1, x2, y2); + + image.setRGB(x1, y1, 0xff0000); + image.setRGB(x2, y2, 0xff0000); } - + /** - * Draws various horizontal lines with endpoints having theirs y-coordinates changed by +- one pixel. - * + * Draws various horizontal lines with end points having theirs + * y-coordinates changed by +- one pixel. + * * @param image - * @param graphics + * image to which line is to be drawn + * @param graphics2d + * graphics canvas */ private static void drawHorizontalJaggedLines(BufferedImage image, Graphics2D graphics) { @@ -77,12 +107,15 @@ drawLine(image, graphics, 3, 21, 36, 20, Color.BLUE); drawLine(image, graphics, 3, 26, 36, 25, Color.GRAY); } - + /** - * Draws various vertical lines with endpoints having theirs x-coordinates changed by +- one pixel. - * + * Draws various vertical lines with end points having theirs x-coordinates + * changed by +- one pixel. + * * @param image - * @param graphics + * image to which line is to be drawn + * @param graphics2d + * graphics canvas */ private static void drawVerticalJaggedLines(BufferedImage image, Graphics2D graphics) { @@ -92,11 +125,22 @@ drawLine(image, graphics, 27, 3, 28, 26, Color.BLUE); drawLine(image, graphics, 35, 3, 34, 26, Color.GRAY); } - + + /** + * Draw color wheel, ie. lines with one common end point and other end point + * forming circle. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + */ private static void drawColorWheel(BufferedImage image, Graphics2D graphics) { + // compute center of the image int xc = image.getWidth() >> 1; int yc = image.getHeight() >> 1; + // draw color wheel for (int i = 0; i < ANGLES; i++) { Color color = new Color(Color.HSBtoRGB((float)i/ANGLES, 1.0f, 1.0f)); @@ -112,11 +156,14 @@ drawLine(image, graphics, x1, y1, x2, y2, color); } } - + /** * Draws special types of lines - very short ones with different angles + * * @param image - * @param graphics + * image to which line is to be drawn + * @param graphics2d + * graphics canvas */ private static void drawSpecialCases(BufferedImage image, Graphics2D graphics) { @@ -135,70 +182,166 @@ } } + /** + * This method just enables antialiasing. + * + * @param graphics2d + * graphics canvas + */ private void setAA1(Graphics2D graphics) { graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); } + /** + * This method just enables antialiasing and fractional metrics. + * + * @param graphics2d + * graphics canvas + */ private void setAA2(Graphics2D graphics) { graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON); } - public TestResult test0(TestImage image, Graphics2D graphics) + /** + * Draw vertical "jagged" lines with antialiasing disabled. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return + */ + public TestResult testVertStepNoAA(TestImage image, Graphics2D graphics) { drawVerticalJaggedLines(image.getImage(), graphics); return TestResult.PASSED; } - public TestResult test1(TestImage image, Graphics2D graphics) + /** + * Draw horizontal "jagged" lines with antialiasing disabled. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return + */ + public TestResult testHorsStepNoAA(TestImage image, Graphics2D graphics) { drawHorizontalJaggedLines(image.getImage(), graphics); return TestResult.PASSED; } - public TestResult test2(TestImage image, Graphics2D graphics) + /** + * Draw vertical "jagged" lines with antialiasing enabled. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return + */ + public TestResult testVertStepAA1(TestImage image, Graphics2D graphics) { setAA1(graphics); drawVerticalJaggedLines(image.getImage(), graphics); return TestResult.PASSED; } - public TestResult test3(TestImage image, Graphics2D graphics) + /** + * Draw horizontal "jagged" lines with antialiasing enabled. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return + */ + public TestResult testHorsStepAA1(TestImage image, Graphics2D graphics) { setAA1(graphics); drawHorizontalJaggedLines(image.getImage(), graphics); return TestResult.PASSED; } - public TestResult test4(TestImage image, Graphics2D graphics) + /** + * Draw vertical "jagged" lines with antialiasing and fractional metrics + * enabled. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return + */ + public TestResult testVertStepAA2(TestImage image, Graphics2D graphics) { setAA2(graphics); drawVerticalJaggedLines(image.getImage(), graphics); return TestResult.PASSED; } - public TestResult test5(TestImage image, Graphics2D graphics) + /** + * Draw horizontal "jagged" lines with antialiasing and fractional metrics + * enabled. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return + */ + public TestResult testHorsStepAA2(TestImage image, Graphics2D graphics) { setAA2(graphics); drawHorizontalJaggedLines(image.getImage(), graphics); return TestResult.PASSED; } + /** + * Test color wheel (lines with various slope) with antialiasing disabled. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return + */ public TestResult testColorWheelNoAA(TestImage image, Graphics2D graphics) { drawColorWheel(image.getImage(), graphics); return TestResult.PASSED; } + /** + * Test color wheel (lines with various slope) with antialiasing enabled. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return + */ public TestResult testColorWheelAA1(TestImage image, Graphics2D graphics) { setAA1(graphics); drawColorWheel(image.getImage(), graphics); return TestResult.PASSED; } - + + /** + * Test color wheel (lines with various slope) with antialiasing and + * fractional metrics enabled. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return + */ public TestResult testColorWheelAA2(TestImage image, Graphics2D graphics) { setAA2(graphics); @@ -206,19 +349,47 @@ return TestResult.PASSED; } + /** + * Test various special cases with antialiasing disabled. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return + */ public TestResult testSpecialCasesNoAA(TestImage image, Graphics2D graphics) { drawSpecialCases(image.getImage(), graphics); return TestResult.PASSED; } + /** + * Test various special cases with antialiasing enabled. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return + */ public TestResult testSpecialCasesAA1(TestImage image, Graphics2D graphics) { setAA1(graphics); drawSpecialCases(image.getImage(), graphics); return TestResult.PASSED; } - + + /** + * Test various special cases with antialiasing and fractional metrics + * enabled. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return + */ public TestResult testSpecialCasesAA2(TestImage image, Graphics2D graphics) { setAA2(graphics); @@ -226,6 +397,11 @@ return TestResult.PASSED; } + /** + * Entry point to the test suite. + * + * @param args not used in this case + */ public static void main(String[] args) { new AALines().runTestSuite(args); diff -r 4b4898a531dc -r f1aa5b49eb61 src/org/gfxtest/testsuites/NormalLines.java --- a/src/org/gfxtest/testsuites/NormalLines.java Fri Jul 29 13:53:28 2011 +0200 +++ b/src/org/gfxtest/testsuites/NormalLines.java Fri Jul 29 16:39:12 2011 +0200 @@ -45,8 +45,10 @@ import org.gfxtest.framework.*; import org.gfxtest.framework.annotations.*; + + /** - * This test renders various lines using identity transformation matrix. + * These tests renders various lines using identity transformation matrix. * * @author Pavel Tisnovsky */ From ptisnovs at redhat.com Fri Jul 29 09:38:09 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Fri, 29 Jul 2011 18:38:09 +0200 Subject: Reviewer needed: another backport to IcedTea6 HEAD - "6934356: Vector.writeObject() serialization may deadlock" Message-ID: <4E32E1F1.5020009@redhat.com> Greetings, Here's another backport I'd like to push to IcedTea6 HEAD: "6934356: Vector.writeObject() serialization may deadlock" I had to change the original patch in following way: - changed line numbers for patching the file "jdk/src/share/classes/java/util/Vector.java" - replace the new "diamond operator" <> by the style used by JDK6, ie.: private static final List exceptions = new ArrayList(); instead of private static final List exceptions = new ArrayList<>(); ChangeLog entry: 2011-07-29 Pavel Tisnovsky * Makefile.am: added new patch * NEWS: updated with backport * patches/openjdk/6934356_Vector_writeObject_serialization_DL.patch: Backport of 6934356. Can anybody please review this fix? Cheers, Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 6934356_hg.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110729/2ff28b6d/6934356_hg.diff From bugzilla-daemon at icedtea.classpath.org Fri Jul 29 10:49:16 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 29 Jul 2011 17:49:16 +0000 Subject: [Bug 699] A problem with libre office In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=699 --- Comment #2 from maninred 2011-07-29 17:49:16 --- Yes, but it is like I?ve said, I don?t know what I?ve done. There was the error log and I don?t want to waste it: so there it is like it is. Sorry. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From andrew at icedtea.classpath.org Fri Jul 29 17:24:07 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Sat, 30 Jul 2011 00:24:07 +0000 Subject: /hg/icedtea7: PR767: Annotation Processing Filer.getResource() a... Message-ID: changeset 05b8c708dced in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=05b8c708dced author: Andrew John Hughes date: Sat Jul 30 01:23:51 2011 +0100 PR767: Annotation Processing Filer.getResource() always throws FileNotFoundException PR717: All non-bootstrap patches in IcedTea7 should be in the forest or dropped 2011-07-29 Andrew John Hughes PR717: All non-bootstrap patches in IcedTea7 should be in the forest or dropped PR767: Annotation Processing Filer.getResource() always throws FileNotFoundException * patches/demos.patch: Moved to IcedTea7 forest. * patches/gcc-suffix.patch: Recreated more generically in the forest using BUILD_GCC/BUILD_CPP/HOST_GCC/HOST_CPP to set the names of the appropriate binaries. * patches/headers.patch: Recreated in forest using FT2_CFLAGS and FT2_LIBS for passing FreeType cflags and libraries from pkg-config. * patches/jpegclasses.patch: Removed; the com.sun.jpeg classes should not be in 7. * patches/memory-limits.patch, * patches/print-lsb-release.patch: Moved to IcedTea7 forest. * patches/sunsrc.patch: Obsolete, dropped as in IcedTea6. * patches/text-relocations.patch: Moved to IcedTea7 forest. * Makefile.am: (JDK_CHANGESET): Updated to bring in above patches. (JDK_SHA256SUM): Likewise. (HOTSPOT_CHANGESET): Likewise. (HOTSPOT_SHA256SUM): Likewise. (LANGTOOLS_CHANGESET): Bring in fix for PR767. (LANGTOOLS_SHA256SUM): Likewise. (ICEDTEA_PATCHES): Remove above patches. (ICEDTEA_ENV): Set FT2_CFLAGS, FT2_LIBS, BUILD_GCC and BUILD_CPP. * patches/cacao/arch.patch: Recreated against new forest. * NEWS: Updated. diffstat: ChangeLog | 42 ++ Makefile.am | 28 +- NEWS | 11 + patches/cacao/arch.patch | 10 +- patches/demos.patch | 309 ------------------- patches/gcc-suffix.patch | 58 --- patches/headers.patch | 37 -- patches/jpegclasses.patch | 639 ---------------------------------------- patches/memory-limits.patch | 22 - patches/print-lsb-release.patch | 48 --- patches/sunsrc.patch | 58 --- patches/text-relocations.patch | 60 --- 12 files changed, 68 insertions(+), 1254 deletions(-) diffs (truncated from 1474 to 500 lines): diff -r 05dda6fb5ced -r 05b8c708dced ChangeLog --- a/ChangeLog Fri Jul 29 00:04:28 2011 +0100 +++ b/ChangeLog Sat Jul 30 01:23:51 2011 +0100 @@ -1,3 +1,45 @@ +2011-07-29 Andrew John Hughes + + PR717: All non-bootstrap patches in IcedTea7 + should be in the forest or dropped + PR767: Annotation Processing Filer.getResource() + always throws FileNotFoundException + * patches/demos.patch: + Moved to IcedTea7 forest. + * patches/gcc-suffix.patch: + Recreated more generically in the forest + using BUILD_GCC/BUILD_CPP/HOST_GCC/HOST_CPP + to set the names of the appropriate binaries. + * patches/headers.patch: + Recreated in forest using FT2_CFLAGS and FT2_LIBS + for passing FreeType cflags and libraries from + pkg-config. + * patches/jpegclasses.patch: + Removed; the com.sun.jpeg classes should not be + in 7. + * patches/memory-limits.patch, + * patches/print-lsb-release.patch: + Moved to IcedTea7 forest. + * patches/sunsrc.patch: Obsolete, dropped as + in IcedTea6. + * patches/text-relocations.patch: + Moved to IcedTea7 forest. + * Makefile.am: + (JDK_CHANGESET): Updated to bring in + above patches. + (JDK_SHA256SUM): Likewise. + (HOTSPOT_CHANGESET): Likewise. + (HOTSPOT_SHA256SUM): Likewise. + (LANGTOOLS_CHANGESET): Bring in fix + for PR767. + (LANGTOOLS_SHA256SUM): Likewise. + (ICEDTEA_PATCHES): Remove above patches. + (ICEDTEA_ENV): Set FT2_CFLAGS, FT2_LIBS, + BUILD_GCC and BUILD_CPP. + * patches/cacao/arch.patch: Recreated + against new forest. + * NEWS: Updated. + 2011-07-28 Andrew John Hughes Bring in new JDK build cleanups and diff -r 05dda6fb5ced -r 05b8c708dced Makefile.am --- a/Makefile.am Fri Jul 29 00:04:28 2011 +0100 +++ b/Makefile.am Sat Jul 30 01:23:51 2011 +0100 @@ -3,19 +3,19 @@ OPENJDK_VERSION = b147 CORBA_CHANGESET = 616c760dc288 -HOTSPOT_CHANGESET = d438a5890756 +HOTSPOT_CHANGESET = ee4dd447f5b9 JAXP_CHANGESET = c40983d6ae70 JAXWS_CHANGESET = 83db5e316798 -JDK_CHANGESET = 4783dfaed9f9 -LANGTOOLS_CHANGESET = 0df09c966a29 +JDK_CHANGESET = ccf86bbc61fd +LANGTOOLS_CHANGESET = fb7fb3071b64 OPENJDK_CHANGESET = 3defd24c2671 CORBA_SHA256SUM = 7589c42e88b4342750bea5afa306cc662cc9c5f7607fad96f70083ce70f4526e -HOTSPOT_SHA256SUM = efa3512d4c29306a4e16f854bd2416e6917cdb1741efe0826401c7e0ee13645a +HOTSPOT_SHA256SUM = 6d54c2ce55748e00c6ecb41ea7c0924e3a1db2cbc2a506fdafee645d7efbc705 JAXP_SHA256SUM = 6ab0cab1965edb28e4093b55436abd04fbffe0b0251016043c75246c4ee9dc2d JAXWS_SHA256SUM = 5567c90ce2857016365b2e346783a3b16ec0e76b80586a0371f601b4fed01f21 -JDK_SHA256SUM = 8eaecc9db0a9a2266f67b661caaa35a8207263975dc0560a9e82ee83819a6d73 -LANGTOOLS_SHA256SUM = 0118daf4d280d0a56f657fac640ac191ec42a7f49cc12a0693bd0fdd04ec684a +JDK_SHA256SUM = aedc601afad003ae30b9268cd47c229d00636c488ad921ce02883f68f35842e0 +LANGTOOLS_SHA256SUM = 9ddc00ec50fd2f5e331dc2bc10da4e23b69bf644eb92d50b39a2003c18fb5aa1 OPENJDK_SHA256SUM = 4043a75c2c4385dd735f8dbbf2369311ce1b951217c9dbe9bba9609e24eb291e CACAO_VERSION = d6264eb66506 @@ -246,15 +246,7 @@ # Patch list ICEDTEA_PATCHES = \ - patches/text-relocations.patch \ - patches/demos.patch \ - patches/headers.patch \ - patches/gcc-suffix.patch \ - patches/memory-limits.patch \ - patches/sunsrc.patch \ patches/libraries.patch \ - patches/print-lsb-release.patch \ - patches/jpegclasses.patch \ patches/debian/uname.patch \ patches/sparc-ptracefix.patch \ patches/sparc-trapsfix.patch \ @@ -459,8 +451,8 @@ LLVM_CFLAGS="$(LLVM_CFLAGS)" \ LLVM_LDFLAGS="$(LLVM_LDFLAGS)" \ LLVM_LIBS="$(LLVM_LIBS)" \ - FREETYPE2_HEADERS="$(FREETYPE2_CFLAGS)" \ - FT2_LIB="$(FREETYPE2_LIBS)" \ + FT2_CFLAGS="$(FREETYPE2_CFLAGS)" \ + FT2_LIBS="$(FREETYPE2_LIBS)" \ ALT_PARALLEL_COMPILE_JOBS="$(PARALLEL_JOBS)" \ HOTSPOT_BUILD_JOBS="$(PARALLEL_JOBS)" \ JAVAC="" \ @@ -477,7 +469,9 @@ ALT_DROPS_DIR="$(abs_top_builddir)/drops" \ ALT_OUTPUTDIR="$(BUILD_OUTPUT_DIR)" \ VERBOSE="$(VERBOSE)" \ - STATIC_CXX="false" + STATIC_CXX="false" \ + BUILD_GCC="$(CC)" \ + BUILD_CPP="$(CXX)" if ENABLE_CACAO ICEDTEA_ENV += \ diff -r 05dda6fb5ced -r 05b8c708dced NEWS --- a/NEWS Fri Jul 29 00:04:28 2011 +0100 +++ b/NEWS Sat Jul 30 01:23:51 2011 +0100 @@ -11,6 +11,17 @@ New in release 2.0 (2011-XX-XX): +* Bug fixes + - PR767: Annotation Processing Filer.getResource() always throws FileNotFoundException + - Allow the compiler used to be overridden by setting BUILD_GCC/BUILD_CPP. + - Fixed regression test runtime/7020373. +* Zero/Shark + - PR757, 7066143: 7009309 regression: x86 stubRoutines + - PR753, 7066143: 7009923 regression + - methodHandles_zero missing. + - sharkContext typo in assert + - sharedRuntime needs rework after indy reorg + - Add missing describe_pd method for Zero. * JamVM - JamVM is self-hosting. - Make classlib init functions consistent + warnings. diff -r 05dda6fb5ced -r 05b8c708dced patches/cacao/arch.patch --- a/patches/cacao/arch.patch Fri Jul 29 00:04:28 2011 +0100 +++ b/patches/cacao/arch.patch Sat Jul 30 01:23:51 2011 +0100 @@ -1,6 +1,6 @@ diff -Nru openjdk.orig/jdk/make/common/Defs-linux.gmk openjdk/jdk/make/common/Defs-linux.gmk ---- openjdk.orig/jdk/make/common/Defs-linux.gmk 2011-04-20 04:40:20.000000000 +0100 -+++ openjdk/jdk/make/common/Defs-linux.gmk 2011-04-21 14:43:06.855289132 +0100 +--- openjdk.orig/jdk/make/common/Defs-linux.gmk 2011-06-11 00:38:06.000000000 +0100 ++++ openjdk/jdk/make/common/Defs-linux.gmk 2011-07-29 08:43:20.137660933 +0100 @@ -100,9 +100,19 @@ # We need this frame pointer to make it easy to walk the stacks. # This should be the default on X86, but ia64 and amd64 may not have this @@ -22,11 +22,11 @@ LDFLAGS_COMMON_sparcv9 += -m64 -mcpu=v9 CFLAGS_REQUIRED_sparc += -m32 -mcpu=v9 diff -Nru openjdk.orig/jdk/make/common/shared/Compiler-gcc.gmk openjdk/jdk/make/common/shared/Compiler-gcc.gmk ---- openjdk.orig/jdk/make/common/shared/Compiler-gcc.gmk 2011-04-21 10:59:53.000000000 +0100 -+++ openjdk/jdk/make/common/shared/Compiler-gcc.gmk 2011-04-21 14:43:06.855289132 +0100 -@@ -68,6 +68,52 @@ +--- openjdk.orig/jdk/make/common/shared/Compiler-gcc.gmk 2011-07-29 04:12:27.000000000 +0100 ++++ openjdk/jdk/make/common/shared/Compiler-gcc.gmk 2011-07-29 08:43:20.137660933 +0100 +@@ -76,6 +76,52 @@ else - CXX = $(COMPILER_PATH)g++$(GCC_SUFFIX) + CXX = $(BUILD_CPP) endif + ifeq ($(ARCH), alpha) + # alpha @@ -79,7 +79,7 @@ SUN_COMP_VER := $(shell $(CC) --verbose 2>&1 ) diff -Nru openjdk.orig/jdk/make/javax/sound/SoundDefs.gmk openjdk/jdk/make/javax/sound/SoundDefs.gmk --- openjdk.orig/jdk/make/javax/sound/SoundDefs.gmk 2011-04-20 04:40:20.000000000 +0100 -+++ openjdk/jdk/make/javax/sound/SoundDefs.gmk 2011-04-21 14:43:06.855289132 +0100 ++++ openjdk/jdk/make/javax/sound/SoundDefs.gmk 2011-07-29 08:43:20.137660933 +0100 @@ -58,10 +58,54 @@ ifeq ($(ZERO_BUILD), true) CPPFLAGS += -DX_ARCH=X_ZERO @@ -137,7 +137,7 @@ endif # ARCH sparc diff -Nru openjdk.orig/jdk/src/share/native/com/sun/media/sound/SoundDefs.h openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h --- openjdk.orig/jdk/src/share/native/com/sun/media/sound/SoundDefs.h 2011-04-20 04:40:22.000000000 +0100 -+++ openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h 2011-04-21 14:44:25.900576412 +0100 ++++ openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h 2011-07-29 08:43:20.141660999 +0100 @@ -41,6 +41,14 @@ #define X_ZERO 6 #define X_ARM 7 diff -r 05dda6fb5ced -r 05b8c708dced patches/demos.patch --- a/patches/demos.patch Fri Jul 29 00:04:28 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,317 +0,0 @@ ---- openjdkb18/jdk/src/share/demo/jvmti/gctest/sample.makefile.txt 2007-08-16 03:33:19.000000000 -0400 -+++ openjdk/jdk/src/share/demo/jvmti/gctest/sample.makefile.txt 2007-08-23 16:12:59.000000000 -0400 -@@ -43,7 +43,7 @@ - - # Source lists - LIBNAME=gctest --SOURCES=gctest.c ../agent_util/agent_util.c -+SOURCES=gctest.c ../../agent_util/src/agent_util.c - - # Solaris Sun C Compiler Version 5.5 - ifeq ($(OSNAME), solaris) -@@ -89,7 +89,7 @@ - # Object files needed to create library - OBJECTS=$(SOURCES:%.c=%.o) - # Library name and options needed to build it -- LIBRARY=lib$(LIBNAME).so -+ LIBRARY=../lib/lib$(LIBNAME).so - LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc -mimpure-text - # Libraries we are dependent on - LIBRARIES=-lc -@@ -122,7 +122,7 @@ - - # Common -I options - CFLAGS += -I. --CFLAGS += -I../agent_util -+CFLAGS += -I../../agent_util/src - CFLAGS += -I$(JDK)/include -I$(JDK)/include/$(OSNAME) - - # Default rule ---- openjdkb18/jdk/src/share/demo/jvmti/heapTracker/sample.makefile.txt 2007-08-16 03:33:20.000000000 -0400 -+++ openjdk/jdk/src/share/demo/jvmti/heapTracker/sample.makefile.txt 2007-08-24 15:15:40.000000000 -0400 -@@ -41,13 +41,15 @@ - # - ######################################################################## - -+JAVA_CRW_DEMO=../../java_crw_demo/src/libjava_crw_demo.so -+ - # Source lists - LIBNAME=heapTracker --SOURCES=heapTracker.c ../agent_util/agent_util.c -+SOURCES=heapTracker.c ../../agent_util/src/agent_util.c - JAVA_SOURCES=HeapTracker.java - - # Name of jar file that needs to be created --JARFILE=heapTracker.jar -+JARFILE=../heapTracker.jar - - # Solaris Sun C Compiler Version 5.5 - ifeq ($(OSNAME), solaris) -@@ -93,10 +95,10 @@ - # Object files needed to create library - OBJECTS=$(SOURCES:%.c=%.o) - # Library name and options needed to build it -- LIBRARY=lib$(LIBNAME).so -+ LIBRARY=../lib/lib$(LIBNAME).so - LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc -mimpure-text - # Libraries we are dependent on -- LIBRARIES=-L $(JDK)/jre/lib/$(LIBARCH) -ljava_crw_demo -lc -+ LIBRARIES=-L../../java_crw_demo/src/ -ljava_crw_demo -lc - # Building a shared library - LINK_SHARED=$(LINK.c) -shared -o $@ - endif -@@ -128,15 +130,18 @@ - - # Common -I options - CFLAGS += -I. --CFLAGS += -I../agent_util --CFLAGS += -I../java_crw_demo -+CFLAGS += -I../../agent_util/src -+CFLAGS += -I../../java_crw_demo/src - CFLAGS += -I$(JDK)/include -I$(JDK)/include/$(OSNAME) - - # Default rule (build both native library and jar file) - all: $(LIBRARY) $(JARFILE) - -+$(JAVA_CRW_DEMO): -+ make JDK=$(JDK) OSNAME=$(OSNAME) -C ../../java_crw_demo/src -f sample.makefile.txt -+ - # Build native library --$(LIBRARY): $(OBJECTS) -+$(LIBRARY): $(OBJECTS) $(JAVA_CRW_DEMO) - $(LINK_SHARED) $(OBJECTS) $(LIBRARIES) - - # Build jar file ---- openjdkb18/jdk/src/share/demo/jvmti/heapViewer/sample.makefile.txt 2007-08-16 03:33:20.000000000 -0400 -+++ openjdk/jdk/src/share/demo/jvmti/heapViewer/sample.makefile.txt 2007-08-23 16:13:00.000000000 -0400 -@@ -43,7 +43,7 @@ - - # Source lists - LIBNAME=heapViewer --SOURCES=heapViewer.c ../agent_util/agent_util.c -+SOURCES=heapViewer.c ../../agent_util/src/agent_util.c - - # Solaris Sun C Compiler Version 5.5 - ifeq ($(OSNAME), solaris) -@@ -89,7 +89,7 @@ - # Object files needed to create library - OBJECTS=$(SOURCES:%.c=%.o) - # Library name and options needed to build it -- LIBRARY=lib$(LIBNAME).so -+ LIBRARY=../lib/lib$(LIBNAME).so - LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc -mimpure-text - # Libraries we are dependent on - LIBRARIES=-lc -@@ -123,6 +123,7 @@ - # Common -I options - CFLAGS += -I. - CFLAGS += -I$(JDK)/include -I$(JDK)/include/$(OSNAME) -+CFLAGS += -I../../agent_util/src - - # Default rule - all: $(LIBRARY) ---- openjdkb18/jdk/src/share/demo/jvmti/hprof/sample.makefile.txt 2007-08-16 03:33:21.000000000 -0400 -+++ openjdk/jdk/src/share/demo/jvmti/hprof/sample.makefile.txt 2007-08-23 16:12:58.000000000 -0400 -@@ -73,7 +73,7 @@ - JAVA_SOURCES=Tracker.java - - # Name of jar file that needs to be created --#JARFILE=hprof.jar -+JARFILE=../hprof.jar - - # Solaris Sun C Compiler Version 5.5 - ifeq ($(OSNAME), solaris) -@@ -110,7 +110,7 @@ - # Linux GNU C Compiler - ifeq ($(OSNAME), linux) - # GNU Compiler options needed to build it -- COMMON_FLAGS=-fno-strict-aliasing -fPIC -fno-omit-frame-pointer -+ COMMON_FLAGS=-fno-strict-aliasing -fPIC -fno-omit-frame-pointer -DSKIP_NPT - # Options that help find errors - COMMON_FLAGS+= -W -Wall -Wno-unused -Wno-parentheses - # To allow access to dladdr() -@@ -166,7 +166,7 @@ - - # Common -I options - CFLAGS += -I. --CFLAGS += -I../java_crw_demo -+CFLAGS += -I../../java_crw_demo/src - CFLAGS += -I$(JDK)/include -I$(JDK)/include/$(OSNAME) - - # Default rule (build both native library and jar file) ---- openjdkb18/jdk/src/share/demo/jvmti/minst/sample.makefile.txt 2007-08-16 03:33:21.000000000 -0400 -+++ openjdk/jdk/src/share/demo/jvmti/minst/sample.makefile.txt 2007-08-24 15:16:17.000000000 -0400 -@@ -41,13 +41,15 @@ - # - ######################################################################## - -+JAVA_CRW_DEMO=../../java_crw_demo/src/libjava_crw_demo.so -+ - # Source lists - LIBNAME=minst --SOURCES=minst.c ../agent_util/agent_util.c -+SOURCES=minst.c ../../agent_util/src/agent_util.c - JAVA_SOURCES=Minst.java - - # Name of jar file that needs to be created --JARFILE=minst.jar -+JARFILE=../minst.jar - - # Solaris Sun C Compiler Version 5.5 - ifeq ($(OSNAME), solaris) -@@ -93,10 +95,10 @@ - # Object files needed to create library - OBJECTS=$(SOURCES:%.c=%.o) - # Library name and options needed to build it -- LIBRARY=lib$(LIBNAME).so -+ LIBRARY=../lib/lib$(LIBNAME).so - LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc -mimpure-text - # Libraries we are dependent on -- LIBRARIES=-L $(JDK)/jre/lib/$(LIBARCH) -ljava_crw_demo -lc -+ LIBRARIES=-L../../java_crw_demo/src/ -ljava_crw_demo -lc - # Building a shared library - LINK_SHARED=$(LINK.c) -shared -o $@ - endif -@@ -128,15 +130,18 @@ - - # Common -I options - CFLAGS += -I. --CFLAGS += -I../agent_util --CFLAGS += -I../java_crw_demo -+CFLAGS += -I../../agent_util/src -+CFLAGS += -I../../java_crw_demo/src - CFLAGS += -I$(JDK)/include -I$(JDK)/include/$(OSNAME) - - # Default rule (build both native library and jar file) - all: $(LIBRARY) $(JARFILE) - -+$(JAVA_CRW_DEMO): -+ make JDK=$(JDK) OSNAME=$(OSNAME) -C ../../java_crw_demo/src -f sample.makefile.txt -+ - # Build native library --$(LIBRARY): $(OBJECTS) -+$(LIBRARY): $(OBJECTS) $(JAVA_CRW_DEMO) - $(LINK_SHARED) $(OBJECTS) $(LIBRARIES) - - # Build jar file ---- openjdkb18/jdk/src/share/demo/jvmti/mtrace/sample.makefile.txt 2007-08-16 03:33:21.000000000 -0400 -+++ openjdk/jdk/src/share/demo/jvmti/mtrace/sample.makefile.txt 2007-08-24 15:16:01.000000000 -0400 -@@ -41,13 +41,15 @@ - # - ######################################################################## - -+JAVA_CRW_DEMO=../../java_crw_demo/src/libjava_crw_demo.so -+ - # Source lists - LIBNAME=mtrace --SOURCES=mtrace.c ../agent_util/agent_util.c -+SOURCES=mtrace.c ../../agent_util/src/agent_util.c - JAVA_SOURCES=Mtrace.java - - # Name of jar file that needs to be created --JARFILE=mtrace.jar -+JARFILE=../mtrace.jar - - # Solaris Sun C Compiler Version 5.5 - ifeq ($(OSNAME), solaris) -@@ -93,10 +95,11 @@ - # Object files needed to create library - OBJECTS=$(SOURCES:%.c=%.o) - # Library name and options needed to build it -- LIBRARY=lib$(LIBNAME).so -+ LIBRARY=../lib/lib$(LIBNAME).so - LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc -mimpure-text - # Libraries we are dependent on -- LIBRARIES=-L $(JDK)/jre/lib/$(LIBARCH) -ljava_crw_demo -lc -+ LIBRARIES=-L../../java_crw_demo/src -ljava_crw_demo -lc -+ - # Building a shared library - LINK_SHARED=$(LINK.c) -shared -o $@ - endif -@@ -128,15 +131,18 @@ - - # Common -I options - CFLAGS += -I. --CFLAGS += -I../agent_util --CFLAGS += -I../java_crw_demo -+CFLAGS += -I../../agent_util/src -+CFLAGS += -I../../java_crw_demo/src - CFLAGS += -I$(JDK)/include -I$(JDK)/include/$(OSNAME) - - # Default rule (build both native library and jar file) - all: $(LIBRARY) $(JARFILE) - -+$(JAVA_CRW_DEMO): -+ make JDK=$(JDK) OSNAME=$(OSNAME) -C ../../java_crw_demo/src -f sample.makefile.txt -+ - # Build native library --$(LIBRARY): $(OBJECTS) -+$(LIBRARY): $(OBJECTS) $(JAVA_CRW_DEMO) - $(LINK_SHARED) $(OBJECTS) $(LIBRARIES) - - # Build jar file ---- openjdkb18/jdk/src/share/demo/jvmti/versionCheck/sample.makefile.txt 2007-08-16 03:33:21.000000000 -0400 -+++ openjdk/jdk/src/share/demo/jvmti/versionCheck/sample.makefile.txt 2007-08-23 16:12:58.000000000 -0400 -@@ -43,7 +43,7 @@ - - # Source lists - LIBNAME=versionCheck --SOURCES=versionCheck.c ../agent_util/agent_util.c -+SOURCES=versionCheck.c ../../agent_util/src/agent_util.c - - # Solaris Sun C Compiler Version 5.5 - ifeq ($(OSNAME), solaris) -@@ -89,7 +89,7 @@ - # Object files needed to create library - OBJECTS=$(SOURCES:%.c=%.o) - # Library name and options needed to build it -- LIBRARY=lib$(LIBNAME).so -+ LIBRARY=../lib/lib$(LIBNAME).so - LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc -mimpure-text - # Libraries we are dependent on - LIBRARIES=-lc -@@ -122,7 +122,7 @@ - - # Common -I options - CFLAGS += -I. --CFLAGS += -I../agent_util -+CFLAGS += -I../../agent_util/src - CFLAGS += -I$(JDK)/include -I$(JDK)/include/$(OSNAME) - - # Default rule ---- openjdkb18/jdk/src/share/demo/jvmti/waiters/sample.makefile.txt 2007-08-16 03:33:21.000000000 -0400 -+++ openjdk/jdk/src/share/demo/jvmti/waiters/sample.makefile.txt 2007-08-23 16:13:06.000000000 -0400 -@@ -43,7 +43,7 @@ - - # Source lists - LIBNAME=waiters --SOURCES=waiters.cpp Agent.cpp Thread.cpp Monitor.cpp ../agent_util/agent_util.c -+SOURCES=waiters.cpp Agent.cpp Thread.cpp Monitor.cpp - - # Solaris Sun C Compiler Version 5.5 - ifeq ($(OSNAME), solaris) -@@ -89,9 +89,10 @@ - endif - # Object files needed to create library - OBJECTS=$(SOURCES:%.cpp=%.o) -+ OBJECTS+=../../agent_util/src/agent_util.o - # Library name and options needed to build it -- LIBRARY=lib$(LIBNAME).so -- LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc -mimpure-text -+ LIBRARY=../lib/lib$(LIBNAME).so -+ LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc - # Libraries we are dependent on - LIBRARIES= - # Building a shared library -@@ -123,9 +124,10 @@ - - # Common -I options - CXXFLAGS += -I. --CXXFLAGS += -I../agent_util -+CXXFLAGS += -I../../agent_util/src - CXXFLAGS += -I$(JDK)/include -I$(JDK)/include/$(OSNAME) -