From ChPhilli at redhat.com Wed Oct 1 03:50:30 2014
From: ChPhilli at redhat.com (Chris Phillips)
Date: Tue, 30 Sep 2014 23:50:30 -0400
Subject: Fixes for Zero ppc[32/64] issues:
Message-ID: <542B7A06.90808@redhat.com>
-------------- next part --------------
# HG changeset patch
# User chrisphi
# Date 1412135251 14400
# Node ID 0042eb7ed0c699b03bee37911476e7465af05329
# Parent d5d2aed90aa8bc68632698585d2fa18cf35da232
Bz 1015432
https://bugzilla.redhat.com/show_bug.cgi?id=1015432
https://bugzilla.redhat.com/show_bug.cgi?id=1125557
Summary: Reverse effects of fix for Oracle bug 8013398 on Zero jvm [related fix].
Workaround for gcc bug [ http://gcc.gnu.org/PR63341 Add -fno-tree-vectorize to ppc build.]
found by Andrew Haley aph at redhat.com
jdk/make/common/Defs-linux.gmk
diff --git a/make/common/Defs-linux.gmk b/make/common/Defs-linux.gmk
--- a/make/common/Defs-linux.gmk
+++ b/make/common/Defs-linux.gmk
@@ -222,7 +222,27 @@
CFLAGS_REQUIRED += -D_LITTLE_ENDIAN
endif
LDFLAGS_COMMON += $(ZERO_ARCHFLAG)
+ ifeq ($(ZERO_ARCHDEF),PPC)
+# gcc bug http://gcc.gnu.org/PR63341 in ppc code generation requires -fno-tree-vectorize for now
+ ifeq ($(ARCH_DATA_MODEL), 32)
+ CFLAGS_REQUIRED += -DPPC -DPPC32 -fno-tree-vectorize
+ else
+ CFLAGS_REQUIRED += -DPPC -DPPC64 -fno-tree-vectorize
+ endif
+ else
+ ifeq ($(ZERO_ARCHDEF),PPC32)
+ CFLAGS_REQUIRED += -DPPC -DPPC32 -fno-tree-vectorize
+ else
+ ifeq ($(ZERO_ARCHDEF),PPC64)
+ CFLAGS_REQUIRED += -DPPC -DPPC64 -fno-tree-vectorize
+ endif
+ endif
+ endif
else
+# gcc bug http://gcc.gnu.org/PR63341 in ppc code generation requires -fno-tree-vectorize for now
+CFLAGS_REQUIRED_ppc += -fno-tree-vectorize
+CFLAGS_REQUIRED_ppc64 += -fno-tree-vectorize
+#
CFLAGS_REQUIRED = $(CFLAGS_REQUIRED_$(ARCH))
LDFLAGS_COMMON += $(LDFLAGS_COMMON_$(ARCH))
endif
-------------- next part --------------
# HG changeset patch
# User chrisphi
# Date 1412132816 14400
# Node ID 28dceec9f6985e021cec71827c5f41113db237d2
# Parent 9e540ae27ead9aa785d0a7c3d366d2ab5304775d
Bz 1015432
https://bugzilla.redhat.com/show_bug.cgi?id=1015432
https://bugzilla.redhat.com/show_bug.cgi?id=1125557
Summary: Reverse effects of fix for Oracle bug 8013398 on Zero jvm.
1) Stack Overflow bugs found in ppc64 , ppc32 due to bad min stack allowed calc.
found by Andrew Haley aph at redhat.com
hotspot/src/cpu/zero/vm/stack_zero.hpp
hotspot/src/cpu/zero/vm/stack_zero.inline.hpp
hotspot/src/os/linux/vm/os_linux.cpp
hotspot/src/os/bsd/vm/os_bsd.cpp
2) Incorrect HW flags for atomic_copy64 causing spurious SEGV's.
found by Andrew Haley aph at redhat.com
hotspot/make/linux/Makefile
hotspot/make/bsd/Makefile
hotspot/make/bsd/platform_zero.in
hotspot/make/linux/platform_zero.in
hotspot/src/share/vm/utilities/macros.hpp
3) Missing synch for xchg , xchg_ptr also possible cause of SEGV's.
found by Andrew Haley aph at redhat.com
hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
hotspot/src/os_cpu/bsd_zero/vm/atomic_bsd_zero.inline.hpp
4) Workaround for gcc bug [ http://gcc.gnu.org/PR63341 Add -fno-tree-vectorize to ppc build.]
found by Andrew Haley aph at redhat.com
hotspot/make/linux/makefiles/gcc.make
hotspot/make/bsd/makefiles/gcc.make
5) And fix code rot to allow building Zero hotspot jvm debug[jvmg] , fastdebug.
hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
diff --git a/make/bsd/Makefile b/make/bsd/Makefile
--- a/make/bsd/Makefile
+++ b/make/bsd/Makefile
@@ -282,7 +282,23 @@
$(BUILDTREE) VARIANT=shark VARIANTARCH=$(VARIANTARCH)
platform_zero: $(GAMMADIR)/make/$(OSNAME)/platform_zero.in
- $(SED) 's/@ZERO_ARCHDEF@/$(ZERO_ARCHDEF)/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ifeq ($(ZERO_ARCHDEF),PPC)
+ ifndef LP64
+ $(SED) 's/@ZERO_ARCHDEF@/-DPPC -DPPC32/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ else
+ $(SED) 's/@ZERO_ARCHDEF@/-DPPC -DPPC64/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ endif
+else
+ ifeq ($(ZERO_ARCHDEF),PPC64)
+ $(SED) 's/@ZERO_ARCHDEF@/-DPPC -DPPC64/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ else
+ ifeq ($(ZERO_ARCHDEF),PPC32)
+ $(SED) 's/@ZERO_ARCHDEF@/-DPPC -DPPC32/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ else
+ $(SED) 's/@ZERO_ARCHDEF@/-D$(ZERO_ARCHDEF)/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ endif
+ endif
+endif
# Define INSTALL=y at command line to automatically copy JVM into JAVA_HOME
diff --git a/make/bsd/makefiles/gcc.make b/make/bsd/makefiles/gcc.make
--- a/make/bsd/makefiles/gcc.make
+++ b/make/bsd/makefiles/gcc.make
@@ -137,6 +137,20 @@
# Ineffecient 16-byte stack re-alignment on Darwin/IA32
ARCHFLAG/i486 += -mstackrealign
endif
+# gcc bug http://gcc.gnu.org/PR63341 in ppc code generation requires -fno-tree-vectorize for now
+ARCHFLAG/ppc += -fno-tree-vectorize
+ARCHFLAG/ppc64 += -fno-tree-vectorize
+ifeq ($(TYPE),ZERO)
+ ifeq ($(ZERO_ARCHDEF),PPC)
+ ARCHFLAG/zero += -fno-tree-vectorize
+ endif
+ ifeq ($(ZERO_ARCHDEF),PPC32)
+ ARCHFLAG/zero += -fno-tree-vectorize
+ endif
+ ifeq ($(ZERO_ARCHDEF),PPC64)
+ ARCHFLAG/zero += -fno-tree-vectorize
+ endif
+endif
CFLAGS += $(ARCHFLAG)
AOUT_FLAGS += $(ARCHFLAG)
diff --git a/make/bsd/platform_zero.in b/make/bsd/platform_zero.in
--- a/make/bsd/platform_zero.in
+++ b/make/bsd/platform_zero.in
@@ -14,4 +14,4 @@
gnu_dis_arch = zero
-sysdefs = -D_ALLBSD_SOURCE -D_GNU_SOURCE -DCC_INTERP -DZERO -D at ZERO_ARCHDEF@ -DZERO_LIBARCH=\"@ZERO_LIBARCH@\"
+sysdefs = -D_ALLBSD_SOURCE -D_GNU_SOURCE -DCC_INTERP -DZERO @ZERO_ARCHDEF@ -DZERO_LIBARCH=\"@ZERO_LIBARCH@\"
diff --git a/make/linux/Makefile b/make/linux/Makefile
--- a/make/linux/Makefile
+++ b/make/linux/Makefile
@@ -286,7 +286,23 @@
$(BUILDTREE) VARIANT=shark VARIANTARCH=$(VARIANTARCH)
platform_zero: $(GAMMADIR)/make/$(OSNAME)/platform_zero.in
- $(SED) 's/@ZERO_ARCHDEF@/$(ZERO_ARCHDEF)/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ifeq ($(ZERO_ARCHDEF),PPC)
+ ifndef LP64
+ $(SED) 's/@ZERO_ARCHDEF@/-DPPC -DPPC32/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ else
+ $(SED) 's/@ZERO_ARCHDEF@/-DPPC -DPPC64/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ endif
+else
+ ifeq ($(ZERO_ARCHDEF),PPC64)
+ $(SED) 's/@ZERO_ARCHDEF@/-DPPC -DPPC64/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ else
+ ifeq ($(ZERO_ARCHDEF),PPC32)
+ $(SED) 's/@ZERO_ARCHDEF@/-DPPC -DPPC32/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ else
+ $(SED) 's/@ZERO_ARCHDEF@/-D$(ZERO_ARCHDEF)/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ endif
+ endif
+endif
# Define INSTALL=y at command line to automatically copy JVM into JAVA_HOME
diff --git a/make/linux/makefiles/gcc.make b/make/linux/makefiles/gcc.make
--- a/make/linux/makefiles/gcc.make
+++ b/make/linux/makefiles/gcc.make
@@ -78,6 +78,7 @@
ifeq ($(TYPE),ZERO)
CFLAGS += $(LIBFFI_CFLAGS)
+
endif
ifeq ($(TYPE),SHARK)
CFLAGS += $(LIBFFI_CFLAGS)
@@ -106,6 +107,20 @@
ARCHFLAG/ppc = -mcpu=powerpc
endif
ARCHFLAG/ppc64 = -m64
+# gcc bug http://gcc.gnu.org/PR63341 in ppc code generation requires -fno-tree-vectorize for now
+ARCHFLAG/ppc += -fno-tree-vectorize
+ARCHFLAG/ppc64 += -fno-tree-vectorize
+ifeq ($(TYPE),ZERO)
+ ifeq ($(ZERO_ARCHDEF),PPC)
+ ARCHFLAG/zero += -fno-tree-vectorize
+ endif
+ ifeq ($(ZERO_ARCHDEF),PPC32)
+ ARCHFLAG/zero += -fno-tree-vectorize
+ endif
+ ifeq ($(ZERO_ARCHDEF),PPC64)
+ ARCHFLAG/zero += -fno-tree-vectorize
+ endif
+endif
CFLAGS += $(ARCHFLAG)
AOUT_FLAGS += $(ARCHFLAG)
diff --git a/make/linux/platform_zero.in b/make/linux/platform_zero.in
--- a/make/linux/platform_zero.in
+++ b/make/linux/platform_zero.in
@@ -14,4 +14,4 @@
gnu_dis_arch = zero
-sysdefs = -DLINUX -D_GNU_SOURCE -DCC_INTERP -DZERO -DTARGET_ARCH_NYI_6939861=1 -D at ZERO_ARCHDEF@ -DZERO_LIBARCH=\"@ZERO_LIBARCH@\"
+sysdefs = -DLINUX -D_GNU_SOURCE -DCC_INTERP -DZERO @ZERO_ARCHDEF@ -DZERO_LIBARCH=\"@ZERO_LIBARCH@\"
diff --git a/src/cpu/zero/vm/stack_zero.hpp b/src/cpu/zero/vm/stack_zero.hpp
--- a/src/cpu/zero/vm/stack_zero.hpp
+++ b/src/cpu/zero/vm/stack_zero.hpp
@@ -99,7 +99,7 @@
int shadow_pages_size() const {
return _shadow_pages_size;
}
- int abi_stack_available(Thread *thread) const;
+ ssize_t abi_stack_available(Thread *thread) const;
public:
void overflow_check(int required_words, TRAPS);
diff --git a/src/cpu/zero/vm/stack_zero.inline.hpp b/src/cpu/zero/vm/stack_zero.inline.hpp
--- a/src/cpu/zero/vm/stack_zero.inline.hpp
+++ b/src/cpu/zero/vm/stack_zero.inline.hpp
@@ -47,10 +47,11 @@
// This method returns the amount of ABI stack available for us
// to use under normal circumstances. Note that the returned
// value can be negative.
-inline int ZeroStack::abi_stack_available(Thread *thread) const {
- int stack_used = thread->stack_base() - (address) &stack_used;
- int stack_free = thread->stack_size() - stack_used;
- return stack_free - shadow_pages_size();
+inline ssize_t ZeroStack::abi_stack_available(Thread *thread) const {
+ ssize_t stack_used = thread->stack_base() - (address) &stack_used
+ + (StackYellowPages+StackRedPages+StackShadowPages) * os::vm_page_size();
+ ssize_t stack_free = thread->stack_size() - stack_used;
+ return stack_free;
}
#endif // CPU_ZERO_VM_STACK_ZERO_INLINE_HPP
diff --git a/src/os/bsd/vm/os_bsd.cpp b/src/os/bsd/vm/os_bsd.cpp
--- a/src/os/bsd/vm/os_bsd.cpp
+++ b/src/os/bsd/vm/os_bsd.cpp
@@ -4773,6 +4773,14 @@
(size_t)(StackYellowPages+StackRedPages+StackShadowPages+
2*BytesPerWord COMPILER2_PRESENT(+1)) * Bsd::page_size());
+#ifdef ZERO
+ // If this is Zero, allow at the very minimum one page each for the
+ // Zero stack and the native stack. This won't make any difference
+ // for 4k pages, but is significant for large pages.
+ os::Bsd::min_stack_allowed = MAX2(os::Bsd::min_stack_allowed,
+ (size_t)(StackYellowPages+StackRedPages+StackShadowPages+2) * Bsd::page_size());
+#endif
+
size_t threadStackSizeInBytes = ThreadStackSize * K;
if (threadStackSizeInBytes != 0 &&
threadStackSizeInBytes < os::Bsd::min_stack_allowed) {
diff --git a/src/os/linux/vm/os_linux.cpp b/src/os/linux/vm/os_linux.cpp
--- a/src/os/linux/vm/os_linux.cpp
+++ b/src/os/linux/vm/os_linux.cpp
@@ -4916,16 +4916,18 @@
// size. Add a page for compiler2 recursion in main thread.
// Add in 2*BytesPerWord times page size to account for VM stack during
// class initialization depending on 32 or 64 bit VM.
-NOT_ZERO (
os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
(size_t)(StackYellowPages+StackRedPages+StackShadowPages) * Linux::page_size() +
(2*BytesPerWord COMPILER2_PRESENT(+1)) * Linux::vm_default_page_size());
- )
-ZERO_ONLY (
- os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
- (size_t)(StackYellowPages+StackRedPages+StackShadowPages+
- 2*BytesPerWord COMPILER2_PRESENT(+1)) * Linux::page_size());
- )
+
+#ifdef ZERO
+ // If this is Zero, allow at the very minimum one page each for the
+ // Zero stack and the native stack. This won't make any difference
+ // for 4k pages, but is significant for large pages.
+ os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
+ (size_t)(StackYellowPages+StackRedPages+StackShadowPages+2) * Linux::page_size());
+#endif
+
size_t threadStackSizeInBytes = ThreadStackSize * K;
if (threadStackSizeInBytes != 0 &&
threadStackSizeInBytes < os::Linux::min_stack_allowed) {
diff --git a/src/os_cpu/bsd_zero/vm/atomic_bsd_zero.inline.hpp b/src/os_cpu/bsd_zero/vm/atomic_bsd_zero.inline.hpp
--- a/src/os_cpu/bsd_zero/vm/atomic_bsd_zero.inline.hpp
+++ b/src/os_cpu/bsd_zero/vm/atomic_bsd_zero.inline.hpp
@@ -239,7 +239,9 @@
// operation. Note that some platforms only support this with the
// limitation that the only valid value to store is the immediate
// constant 1. There is a test for this in JNI_CreateJavaVM().
- return __sync_lock_test_and_set (dest, exchange_value);
+ jint result = __sync_lock_test_and_set (dest, exchange_value);
+ __sync_synchronize();
+ return result;
#endif // M68K
#endif // ARM
}
@@ -252,7 +254,9 @@
#ifdef M68K
return m68k_lock_test_and_set(dest, exchange_value);
#else
- return __sync_lock_test_and_set (dest, exchange_value);
+ intptr_t result = __sync_lock_test_and_set (dest, exchange_value);
+ __sync_synchronize();
+ return result;
#endif // M68K
#endif // ARM
}
diff --git a/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp b/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
--- a/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
+++ b/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
@@ -243,7 +243,9 @@
// operation. Note that some platforms only support this with the
// limitation that the only valid value to store is the immediate
// constant 1. There is a test for this in JNI_CreateJavaVM().
- return __sync_lock_test_and_set (dest, exchange_value);
+ jint result = __sync_lock_test_and_set (dest, exchange_value);
+ __sync_synchronize();
+ return result;
#endif // M68K
#endif // ARM
}
@@ -256,7 +258,9 @@
#ifdef M68K
return m68k_lock_test_and_set(dest, exchange_value);
#else
- return __sync_lock_test_and_set (dest, exchange_value);
+ intptr_t result = __sync_lock_test_and_set (dest, exchange_value);
+ __sync_synchronize();
+ return result;
#endif // M68K
#endif // ARM
}
diff --git a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
--- a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+++ b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
@@ -317,15 +317,15 @@
///////////////////////////////////////////////////////////////////////////////
// thread stack
-#ifndef PPC
-size_t os::Linux::min_stack_allowed = 64 * K;
-#else
+#ifdef PPC
#ifdef _LP64
// Default for 64 bit must be at least 1600 K
size_t os::Linux::min_stack_allowed = 1664 * K;
#else
size_t os::Linux::min_stack_allowed = 1152 * K;
#endif
+#else
+size_t os::Linux::min_stack_allowed = 64 * K;
#endif
bool os::Linux::supports_variable_stack_size() {
@@ -540,3 +540,7 @@
}
};
#endif // !_LP64
+#ifndef PRODUCT
+void os::verify_stack_alignment() {
+}
+#endif
diff --git a/src/share/vm/interpreter/bytecodeInterpreter.cpp b/src/share/vm/interpreter/bytecodeInterpreter.cpp
--- a/src/share/vm/interpreter/bytecodeInterpreter.cpp
+++ b/src/share/vm/interpreter/bytecodeInterpreter.cpp
@@ -2100,8 +2100,7 @@
if ( *count_addr > 0 ) {
if ((Bytecodes::Code)opcode == Bytecodes::_putstatic) {
obj = (oop)NULL;
- }
- else {
+ } else {
if (cache->is_long() || cache->is_double()) {
obj = (oop) STACK_OBJECT(-3);
} else {
@@ -2122,7 +2121,7 @@
// QQQ Need to make this as inlined as possible. Probably need to split all the bytecode cases
// out so c++ compiler has a chance for constant prop to fold everything possible away.
- oop obj;
+ oop obj,too;
int count;
TosState tos_type = cache->flag_state();
@@ -2146,8 +2145,9 @@
if (tos_type == itos) {
obj->release_int_field_put(field_offset, STACK_INT(-1));
} else if (tos_type == atos) {
- VERIFY_OOP(STACK_OBJECT(-1));
- obj->release_obj_field_put(field_offset, STACK_OBJECT(-1));
+ too = (oop) STACK_OBJECT(-1);
+ VERIFY_OOP(too);
+ obj->release_obj_field_put(field_offset, too);
} else if (tos_type == btos) {
obj->release_byte_field_put(field_offset, STACK_INT(-1));
} else if (tos_type == ltos) {
@@ -2166,7 +2166,8 @@
if (tos_type == itos) {
obj->int_field_put(field_offset, STACK_INT(-1));
} else if (tos_type == atos) {
- VERIFY_OOP(STACK_OBJECT(-1));
+ too = (oop) STACK_OBJECT(-1);
+ VERIFY_OOP(too);
// On IA64 we perform all stores of references with release semantics.
// This guarantees that everybody using this reference sees a fully
// initialized object. On PPC64 we emit a storestore barrier after
@@ -2292,7 +2293,8 @@
}
CASE(_checkcast):
if (STACK_OBJECT(-1) != NULL) {
- VERIFY_OOP(STACK_OBJECT(-1));
+ oop too = (oop) STACK_OBJECT(-1);
+ VERIFY_OOP(too);
u2 index = Bytes::get_Java_u2(pc+1);
// Constant pool may have actual klass or unresolved klass. If it is
// unresolved we must resolve it.
@@ -2329,7 +2331,8 @@
// Profile instanceof with null_seen and receiver.
BI_PROFILE_UPDATE_INSTANCEOF(/*null_seen=*/true, NULL);
} else {
- VERIFY_OOP(STACK_OBJECT(-1));
+ oop too = (oop) STACK_OBJECT(-1);
+ VERIFY_OOP(too);
u2 index = Bytes::get_Java_u2(pc+1);
// Constant pool may have actual klass or unresolved klass. If it is
// unresolved we must resolve it.
@@ -2558,7 +2561,8 @@
// another compliant java compiler.
if (cache->is_forced_virtual()) {
methodOop callee;
- CHECK_NULL(STACK_OBJECT(-(cache->parameter_size())));
+ oop too = (oop) STACK_OBJECT(-(cache->parameter_size()));
+ CHECK_NULL(too);
if (cache->is_vfinal()) {
callee = cache->f2_as_vfinal_method();
// Profile 'special case of invokeinterface' final call.
@@ -2645,7 +2649,8 @@
{
methodOop callee;
if ((Bytecodes::Code)opcode == Bytecodes::_invokevirtual) {
- CHECK_NULL(STACK_OBJECT(-(cache->parameter_size())));
+ oop too = (oop) STACK_OBJECT(-(cache->parameter_size()));
+ CHECK_NULL(too);
if (cache->is_vfinal()) {
callee = cache->f2_as_vfinal_method();
// Profile final call.
@@ -2684,7 +2689,8 @@
}
} else {
if ((Bytecodes::Code)opcode == Bytecodes::_invokespecial) {
- CHECK_NULL(STACK_OBJECT(-(cache->parameter_size())));
+ oop too = (oop) STACK_OBJECT(-(cache->parameter_size()));
+ CHECK_NULL(too);
}
callee = cache->f1_as_method();
diff --git a/src/share/vm/utilities/macros.hpp b/src/share/vm/utilities/macros.hpp
--- a/src/share/vm/utilities/macros.hpp
+++ b/src/share/vm/utilities/macros.hpp
@@ -234,11 +234,16 @@
#define PPC_ONLY(code) code
#define NOT_PPC(code)
#else
-#undef PPC
+
+#ifdef PPC
+#error "PPC is either 32- or 64-bit."
+#endif
+
#define PPC_ONLY(code)
#define NOT_PPC(code) code
#endif
+
#ifdef PPC32
#define PPC32_ONLY(code) code
#define NOT_PPC32(code)
From ptisnovs at icedtea.classpath.org Wed Oct 1 08:47:26 2014
From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org)
Date: Wed, 01 Oct 2014 08:47:26 +0000
Subject: /hg/gfx-test: Ten new tests added into CAGOperationsOnTwoOverlap...
Message-ID:
changeset ebe990ae1127 in /hg/gfx-test
details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=ebe990ae1127
author: Pavel Tisnovsky
date: Wed Oct 01 10:48:38 2014 +0200
Ten new tests added into CAGOperationsOnTwoOverlappingRoundRectangles.
diffstat:
ChangeLog | 5 +
src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingRoundRectangles.java | 250 ++++++++++
2 files changed, 255 insertions(+), 0 deletions(-)
diffs (272 lines):
diff -r 35d7cdaf9c2e -r ebe990ae1127 ChangeLog
--- a/ChangeLog Fri Sep 12 11:57:52 2014 +0200
+++ b/ChangeLog Wed Oct 01 10:48:38 2014 +0200
@@ -1,3 +1,8 @@
+2014-10-01 Pavel Tisnovsky
+
+ * src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingRoundRectangles.java:
+ Ten new tests added into CAGOperationsOnTwoOverlappingRoundRectangles.
+
2014-09-12 Pavel Tisnovsky
* src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingRectangles.java:
diff -r 35d7cdaf9c2e -r ebe990ae1127 src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingRoundRectangles.java
--- a/src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingRoundRectangles.java Fri Sep 12 11:57:52 2014 +0200
+++ b/src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingRoundRectangles.java Wed Oct 01 10:48:38 2014 +0200
@@ -806,6 +806,256 @@
return TestResult.PASSED;
}
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two rectangles using union operator. The shape is
+ * rendered using vertical gradient color paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testUnionVerticalGradientPaint(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setVerticalGradientFill(image, graphics2d);
+ // create area using union operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRoundRectanglesUsingUnionOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two rectangles using subtract operator. The shape is
+ * rendered using vertical gradient color paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testSubtractVerticalGradientPaint(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setVerticalGradientFill(image, graphics2d);
+ // create area using subtract operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRoundRectanglesUsingSubtractOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two rectangles using inverse subtract operator. The
+ * shape is rendered using vertical gradient color paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testInverseSubtractVerticalGradientPaint(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setVerticalGradientFill(image, graphics2d);
+ // create area using inverse subtract operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRoundRectanglesUsingInverseSubtractOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two rectangles using intersect operator. The
+ * shape is rendered using vertical gradient color paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testIntersectVerticalGradientPaint(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setVerticalGradientFill(image, graphics2d);
+ // create area using intersect operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRoundRectanglesUsingIntersectOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two rectangles using XOR operator. The
+ * shape is rendered using vertical gradient color paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testXorVerticalGradientPaint(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setVerticalGradientFill(image, graphics2d);
+ // create area using XOR operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRoundRectanglesUsingXorOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two rectangles using union operator. The shape is
+ * rendered using diagonal gradient color paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testUnionDiagonalGradientPaint(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setDiagonalGradientFill(image, graphics2d);
+ // create area using union operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRoundRectanglesUsingUnionOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two rectangles using subtract operator. The shape is
+ * rendered using diagonal gradient color paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testSubtractDiagonalGradientPaint(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setDiagonalGradientFill(image, graphics2d);
+ // create area using subtract operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRoundRectanglesUsingSubtractOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two rectangles using inverse subtract operator. The
+ * shape is rendered using diagonal gradient color paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testInverseSubtractDiagonalGradientPaint(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setDiagonalGradientFill(image, graphics2d);
+ // create area using inverse subtract operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRoundRectanglesUsingInverseSubtractOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two rectangles using intersect operator. The
+ * shape is rendered using diagonal gradient color paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testIntersectDiagonalGradientPaint(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setDiagonalGradientFill(image, graphics2d);
+ // create area using intersect operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRoundRectanglesUsingIntersectOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two rectangles using XOR operator. The
+ * shape is rendered using diagonal gradient color paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testXorDiagonalGradientPaint(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setDiagonalGradientFill(image, graphics2d);
+ // create area using XOR operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRoundRectanglesUsingXorOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
/**
* Entry point to the test suite.
From aph at redhat.com Wed Oct 1 08:51:14 2014
From: aph at redhat.com (Andrew Haley)
Date: Wed, 01 Oct 2014 09:51:14 +0100
Subject: Fixes for Zero ppc[32/64] issues:
In-Reply-To: <542B7A06.90808@redhat.com>
References: <542B7A06.90808@redhat.com>
Message-ID: <542BC082.50102@redhat.com>
On 01/10/14 04:50, Chris Phillips wrote:
> - )
> -ZERO_ONLY (
> - os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
> - (size_t)(StackYellowPages+StackRedPages+StackShadowPages+
> - 2*BytesPerWord COMPILER2_PRESENT(+1)) * Linux::page_size());
> - )
> +
> +#ifdef ZERO
> + // If this is Zero, allow at the very minimum one page each for the
> + // Zero stack and the native stack. This won't make any difference
> + // for 4k pages, but is significant for large pages.
> + os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
> + (size_t)(StackYellowPages+StackRedPages+StackShadowPages+2) * Linux::page_size());
> +#endif
> +
Thanks for posting those.
We should look at upstreaming them, but I can't really justify this
hunk. It gives us some extra wiggle room for the native Zero stack,
but I don't really know how much that should be.
On AArch64, StackShadowPages == 2 when 64k pages are is use. That
really should be enough for our use: it should result in 5 * 64k ==
320k. 128k of that is the red and yellow zone, leaving 192k.
Andrew.
From bugzilla-daemon at icedtea.classpath.org Wed Oct 1 08:58:26 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Wed, 01 Oct 2014 08:58:26 +0000
Subject: [Bug 2023] JVM crash - seg fault
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2023
Dave Birch changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P5 |P3
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From gnu.andrew at redhat.com Wed Oct 1 13:34:55 2014
From: gnu.andrew at redhat.com (Andrew Hughes)
Date: Wed, 1 Oct 2014 09:34:55 -0400 (EDT)
Subject: Fixes for Zero ppc[32/64] issues:
In-Reply-To: <542B7A06.90808@redhat.com>
References: <542B7A06.90808@redhat.com>
Message-ID: <1399729871.2164531.1412170495732.JavaMail.zimbra@redhat.com>
----- Original Message -----
>
>
Changes look ok. Building this now and will commit if it builds.
--
Andrew :)
Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)
PGP Key: 248BDC07 (https://keys.indymedia.org/)
Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07
From andrew at icedtea.classpath.org Wed Oct 1 13:51:47 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Wed, 01 Oct 2014 13:51:47 +0000
Subject: /hg/icedtea7-forest/hotspot: RH1015432: java-1.7.0-openjdk: Fail...
Message-ID:
changeset d24203ca6ebd in /hg/icedtea7-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea7-forest/hotspot?cmd=changeset;node=d24203ca6ebd
author: andrew
date: Wed Oct 01 14:51:36 2014 +0100
RH1015432: java-1.7.0-openjdk: Fails on PPC with StackOverflowError (revised comprehensive fix)
Contributed-by: chphilli at redhat.com
Summary: Reverse effects of fix for Oracle bug 8013398 on Zero jvm.
1) Stack Overflow bugs found in ppc64 , ppc32 due to bad min stack allowed calc.
found by Andrew Haley aph at redhat.com
hotspot/src/cpu/zero/vm/stack_zero.hpp
hotspot/src/cpu/zero/vm/stack_zero.inline.hpp
hotspot/src/os/linux/vm/os_linux.cpp
hotspot/src/os/bsd/vm/os_bsd.cpp
2) Incorrect HW flags for atomic_copy64 causing spurious SEGV's.
found by Andrew Haley aph at redhat.com
hotspot/make/linux/Makefile
hotspot/make/bsd/Makefile
hotspot/make/bsd/platform_zero.in
hotspot/make/linux/platform_zero.in
hotspot/src/share/vm/utilities/macros.hpp
3) Missing synch for xchg , xchg_ptr also possible cause of SEGV's.
found by Andrew Haley aph at redhat.com
hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
hotspot/src/os_cpu/bsd_zero/vm/atomic_bsd_zero.inline.hpp
4) Workaround for gcc bug [ http://gcc.gnu.org/PR63341 Add -fno-tree-vectorize to ppc build.]
found by Andrew Haley aph at redhat.com
hotspot/make/linux/makefiles/gcc.make
hotspot/make/bsd/makefiles/gcc.make
5) And fix code rot to allow building Zero hotspot jvm debug[jvmg] , fastdebug.
hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
diffstat:
make/bsd/Makefile | 18 +++++++++++-
make/bsd/makefiles/gcc.make | 14 +++++++++
make/bsd/platform_zero.in | 2 +-
make/linux/Makefile | 18 +++++++++++-
make/linux/makefiles/gcc.make | 14 +++++++++
make/linux/platform_zero.in | 2 +-
src/cpu/zero/vm/stack_zero.hpp | 2 +-
src/cpu/zero/vm/stack_zero.inline.hpp | 9 +++--
src/os/bsd/vm/os_bsd.cpp | 8 +++++
src/os/linux/vm/os_linux.cpp | 16 ++++++----
src/os_cpu/bsd_zero/vm/atomic_bsd_zero.inline.hpp | 8 ++++-
src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp | 8 ++++-
src/os_cpu/linux_zero/vm/os_linux_zero.cpp | 10 ++++--
src/share/vm/interpreter/bytecodeInterpreter.cpp | 28 +++++++++++-------
src/share/vm/utilities/macros.hpp | 6 +++-
15 files changed, 128 insertions(+), 35 deletions(-)
diffs (390 lines):
diff -r 9e540ae27ead -r d24203ca6ebd make/bsd/Makefile
--- a/make/bsd/Makefile Sat Sep 13 16:38:57 2014 +0100
+++ b/make/bsd/Makefile Wed Oct 01 14:51:36 2014 +0100
@@ -282,7 +282,23 @@
$(BUILDTREE) VARIANT=shark VARIANTARCH=$(VARIANTARCH)
platform_zero: $(GAMMADIR)/make/$(OSNAME)/platform_zero.in
- $(SED) 's/@ZERO_ARCHDEF@/$(ZERO_ARCHDEF)/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ifeq ($(ZERO_ARCHDEF),PPC)
+ ifndef LP64
+ $(SED) 's/@ZERO_ARCHDEF@/-DPPC -DPPC32/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ else
+ $(SED) 's/@ZERO_ARCHDEF@/-DPPC -DPPC64/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ endif
+else
+ ifeq ($(ZERO_ARCHDEF),PPC64)
+ $(SED) 's/@ZERO_ARCHDEF@/-DPPC -DPPC64/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ else
+ ifeq ($(ZERO_ARCHDEF),PPC32)
+ $(SED) 's/@ZERO_ARCHDEF@/-DPPC -DPPC32/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ else
+ $(SED) 's/@ZERO_ARCHDEF@/-D$(ZERO_ARCHDEF)/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ endif
+ endif
+endif
# Define INSTALL=y at command line to automatically copy JVM into JAVA_HOME
diff -r 9e540ae27ead -r d24203ca6ebd make/bsd/makefiles/gcc.make
--- a/make/bsd/makefiles/gcc.make Sat Sep 13 16:38:57 2014 +0100
+++ b/make/bsd/makefiles/gcc.make Wed Oct 01 14:51:36 2014 +0100
@@ -137,6 +137,20 @@
# Ineffecient 16-byte stack re-alignment on Darwin/IA32
ARCHFLAG/i486 += -mstackrealign
endif
+# gcc bug http://gcc.gnu.org/PR63341 in ppc code generation requires -fno-tree-vectorize for now
+ARCHFLAG/ppc += -fno-tree-vectorize
+ARCHFLAG/ppc64 += -fno-tree-vectorize
+ifeq ($(TYPE),ZERO)
+ ifeq ($(ZERO_ARCHDEF),PPC)
+ ARCHFLAG/zero += -fno-tree-vectorize
+ endif
+ ifeq ($(ZERO_ARCHDEF),PPC32)
+ ARCHFLAG/zero += -fno-tree-vectorize
+ endif
+ ifeq ($(ZERO_ARCHDEF),PPC64)
+ ARCHFLAG/zero += -fno-tree-vectorize
+ endif
+endif
CFLAGS += $(ARCHFLAG)
AOUT_FLAGS += $(ARCHFLAG)
diff -r 9e540ae27ead -r d24203ca6ebd make/bsd/platform_zero.in
--- a/make/bsd/platform_zero.in Sat Sep 13 16:38:57 2014 +0100
+++ b/make/bsd/platform_zero.in Wed Oct 01 14:51:36 2014 +0100
@@ -14,4 +14,4 @@
gnu_dis_arch = zero
-sysdefs = -D_ALLBSD_SOURCE -D_GNU_SOURCE -DCC_INTERP -DZERO -D at ZERO_ARCHDEF@ -DZERO_LIBARCH=\"@ZERO_LIBARCH@\"
+sysdefs = -D_ALLBSD_SOURCE -D_GNU_SOURCE -DCC_INTERP -DZERO @ZERO_ARCHDEF@ -DZERO_LIBARCH=\"@ZERO_LIBARCH@\"
diff -r 9e540ae27ead -r d24203ca6ebd make/linux/Makefile
--- a/make/linux/Makefile Sat Sep 13 16:38:57 2014 +0100
+++ b/make/linux/Makefile Wed Oct 01 14:51:36 2014 +0100
@@ -286,7 +286,23 @@
$(BUILDTREE) VARIANT=shark VARIANTARCH=$(VARIANTARCH)
platform_zero: $(GAMMADIR)/make/$(OSNAME)/platform_zero.in
- $(SED) 's/@ZERO_ARCHDEF@/$(ZERO_ARCHDEF)/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ifeq ($(ZERO_ARCHDEF),PPC)
+ ifndef LP64
+ $(SED) 's/@ZERO_ARCHDEF@/-DPPC -DPPC32/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ else
+ $(SED) 's/@ZERO_ARCHDEF@/-DPPC -DPPC64/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ endif
+else
+ ifeq ($(ZERO_ARCHDEF),PPC64)
+ $(SED) 's/@ZERO_ARCHDEF@/-DPPC -DPPC64/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ else
+ ifeq ($(ZERO_ARCHDEF),PPC32)
+ $(SED) 's/@ZERO_ARCHDEF@/-DPPC -DPPC32/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ else
+ $(SED) 's/@ZERO_ARCHDEF@/-D$(ZERO_ARCHDEF)/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ endif
+ endif
+endif
# Define INSTALL=y at command line to automatically copy JVM into JAVA_HOME
diff -r 9e540ae27ead -r d24203ca6ebd make/linux/makefiles/gcc.make
--- a/make/linux/makefiles/gcc.make Sat Sep 13 16:38:57 2014 +0100
+++ b/make/linux/makefiles/gcc.make Wed Oct 01 14:51:36 2014 +0100
@@ -106,6 +106,20 @@
ARCHFLAG/ppc = -mcpu=powerpc
endif
ARCHFLAG/ppc64 = -m64
+# gcc bug http://gcc.gnu.org/PR63341 in ppc code generation requires -fno-tree-vectorize for now
+ARCHFLAG/ppc += -fno-tree-vectorize
+ARCHFLAG/ppc64 += -fno-tree-vectorize
+ifeq ($(TYPE),ZERO)
+ ifeq ($(ZERO_ARCHDEF),PPC)
+ ARCHFLAG/zero += -fno-tree-vectorize
+ endif
+ ifeq ($(ZERO_ARCHDEF),PPC32)
+ ARCHFLAG/zero += -fno-tree-vectorize
+ endif
+ ifeq ($(ZERO_ARCHDEF),PPC64)
+ ARCHFLAG/zero += -fno-tree-vectorize
+ endif
+endif
CFLAGS += $(ARCHFLAG)
AOUT_FLAGS += $(ARCHFLAG)
diff -r 9e540ae27ead -r d24203ca6ebd make/linux/platform_zero.in
--- a/make/linux/platform_zero.in Sat Sep 13 16:38:57 2014 +0100
+++ b/make/linux/platform_zero.in Wed Oct 01 14:51:36 2014 +0100
@@ -14,4 +14,4 @@
gnu_dis_arch = zero
-sysdefs = -DLINUX -D_GNU_SOURCE -DCC_INTERP -DZERO -DTARGET_ARCH_NYI_6939861=1 -D at ZERO_ARCHDEF@ -DZERO_LIBARCH=\"@ZERO_LIBARCH@\"
+sysdefs = -DLINUX -D_GNU_SOURCE -DCC_INTERP -DZERO @ZERO_ARCHDEF@ -DZERO_LIBARCH=\"@ZERO_LIBARCH@\"
diff -r 9e540ae27ead -r d24203ca6ebd src/cpu/zero/vm/stack_zero.hpp
--- a/src/cpu/zero/vm/stack_zero.hpp Sat Sep 13 16:38:57 2014 +0100
+++ b/src/cpu/zero/vm/stack_zero.hpp Wed Oct 01 14:51:36 2014 +0100
@@ -99,7 +99,7 @@
int shadow_pages_size() const {
return _shadow_pages_size;
}
- int abi_stack_available(Thread *thread) const;
+ ssize_t abi_stack_available(Thread *thread) const;
public:
void overflow_check(int required_words, TRAPS);
diff -r 9e540ae27ead -r d24203ca6ebd src/cpu/zero/vm/stack_zero.inline.hpp
--- a/src/cpu/zero/vm/stack_zero.inline.hpp Sat Sep 13 16:38:57 2014 +0100
+++ b/src/cpu/zero/vm/stack_zero.inline.hpp Wed Oct 01 14:51:36 2014 +0100
@@ -47,10 +47,11 @@
// This method returns the amount of ABI stack available for us
// to use under normal circumstances. Note that the returned
// value can be negative.
-inline int ZeroStack::abi_stack_available(Thread *thread) const {
- int stack_used = thread->stack_base() - (address) &stack_used;
- int stack_free = thread->stack_size() - stack_used;
- return stack_free - shadow_pages_size();
+inline ssize_t ZeroStack::abi_stack_available(Thread *thread) const {
+ ssize_t stack_used = thread->stack_base() - (address) &stack_used
+ + (StackYellowPages+StackRedPages+StackShadowPages) * os::vm_page_size();
+ ssize_t stack_free = thread->stack_size() - stack_used;
+ return stack_free;
}
#endif // CPU_ZERO_VM_STACK_ZERO_INLINE_HPP
diff -r 9e540ae27ead -r d24203ca6ebd src/os/bsd/vm/os_bsd.cpp
--- a/src/os/bsd/vm/os_bsd.cpp Sat Sep 13 16:38:57 2014 +0100
+++ b/src/os/bsd/vm/os_bsd.cpp Wed Oct 01 14:51:36 2014 +0100
@@ -4773,6 +4773,14 @@
(size_t)(StackYellowPages+StackRedPages+StackShadowPages+
2*BytesPerWord COMPILER2_PRESENT(+1)) * Bsd::page_size());
+#ifdef ZERO
+ // If this is Zero, allow at the very minimum one page each for the
+ // Zero stack and the native stack. This won't make any difference
+ // for 4k pages, but is significant for large pages.
+ os::Bsd::min_stack_allowed = MAX2(os::Bsd::min_stack_allowed,
+ (size_t)(StackYellowPages+StackRedPages+StackShadowPages+2) * Bsd::page_size());
+#endif
+
size_t threadStackSizeInBytes = ThreadStackSize * K;
if (threadStackSizeInBytes != 0 &&
threadStackSizeInBytes < os::Bsd::min_stack_allowed) {
diff -r 9e540ae27ead -r d24203ca6ebd src/os/linux/vm/os_linux.cpp
--- a/src/os/linux/vm/os_linux.cpp Sat Sep 13 16:38:57 2014 +0100
+++ b/src/os/linux/vm/os_linux.cpp Wed Oct 01 14:51:36 2014 +0100
@@ -4916,16 +4916,18 @@
// size. Add a page for compiler2 recursion in main thread.
// Add in 2*BytesPerWord times page size to account for VM stack during
// class initialization depending on 32 or 64 bit VM.
-NOT_ZERO (
os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
(size_t)(StackYellowPages+StackRedPages+StackShadowPages) * Linux::page_size() +
(2*BytesPerWord COMPILER2_PRESENT(+1)) * Linux::vm_default_page_size());
- )
-ZERO_ONLY (
- os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
- (size_t)(StackYellowPages+StackRedPages+StackShadowPages+
- 2*BytesPerWord COMPILER2_PRESENT(+1)) * Linux::page_size());
- )
+
+#ifdef ZERO
+ // If this is Zero, allow at the very minimum one page each for the
+ // Zero stack and the native stack. This won't make any difference
+ // for 4k pages, but is significant for large pages.
+ os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
+ (size_t)(StackYellowPages+StackRedPages+StackShadowPages+2) * Linux::page_size());
+#endif
+
size_t threadStackSizeInBytes = ThreadStackSize * K;
if (threadStackSizeInBytes != 0 &&
threadStackSizeInBytes < os::Linux::min_stack_allowed) {
diff -r 9e540ae27ead -r d24203ca6ebd src/os_cpu/bsd_zero/vm/atomic_bsd_zero.inline.hpp
--- a/src/os_cpu/bsd_zero/vm/atomic_bsd_zero.inline.hpp Sat Sep 13 16:38:57 2014 +0100
+++ b/src/os_cpu/bsd_zero/vm/atomic_bsd_zero.inline.hpp Wed Oct 01 14:51:36 2014 +0100
@@ -239,7 +239,9 @@
// operation. Note that some platforms only support this with the
// limitation that the only valid value to store is the immediate
// constant 1. There is a test for this in JNI_CreateJavaVM().
- return __sync_lock_test_and_set (dest, exchange_value);
+ jint result = __sync_lock_test_and_set (dest, exchange_value);
+ __sync_synchronize();
+ return result;
#endif // M68K
#endif // ARM
}
@@ -252,7 +254,9 @@
#ifdef M68K
return m68k_lock_test_and_set(dest, exchange_value);
#else
- return __sync_lock_test_and_set (dest, exchange_value);
+ intptr_t result = __sync_lock_test_and_set (dest, exchange_value);
+ __sync_synchronize();
+ return result;
#endif // M68K
#endif // ARM
}
diff -r 9e540ae27ead -r d24203ca6ebd src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
--- a/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp Sat Sep 13 16:38:57 2014 +0100
+++ b/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp Wed Oct 01 14:51:36 2014 +0100
@@ -243,7 +243,9 @@
// operation. Note that some platforms only support this with the
// limitation that the only valid value to store is the immediate
// constant 1. There is a test for this in JNI_CreateJavaVM().
- return __sync_lock_test_and_set (dest, exchange_value);
+ jint result = __sync_lock_test_and_set (dest, exchange_value);
+ __sync_synchronize();
+ return result;
#endif // M68K
#endif // ARM
}
@@ -256,7 +258,9 @@
#ifdef M68K
return m68k_lock_test_and_set(dest, exchange_value);
#else
- return __sync_lock_test_and_set (dest, exchange_value);
+ intptr_t result = __sync_lock_test_and_set (dest, exchange_value);
+ __sync_synchronize();
+ return result;
#endif // M68K
#endif // ARM
}
diff -r 9e540ae27ead -r d24203ca6ebd src/os_cpu/linux_zero/vm/os_linux_zero.cpp
--- a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp Sat Sep 13 16:38:57 2014 +0100
+++ b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp Wed Oct 01 14:51:36 2014 +0100
@@ -317,15 +317,15 @@
///////////////////////////////////////////////////////////////////////////////
// thread stack
-#ifndef PPC
-size_t os::Linux::min_stack_allowed = 64 * K;
-#else
+#ifdef PPC
#ifdef _LP64
// Default for 64 bit must be at least 1600 K
size_t os::Linux::min_stack_allowed = 1664 * K;
#else
size_t os::Linux::min_stack_allowed = 1152 * K;
#endif
+#else
+size_t os::Linux::min_stack_allowed = 64 * K;
#endif
bool os::Linux::supports_variable_stack_size() {
@@ -540,3 +540,7 @@
}
};
#endif // !_LP64
+#ifndef PRODUCT
+void os::verify_stack_alignment() {
+}
+#endif
diff -r 9e540ae27ead -r d24203ca6ebd src/share/vm/interpreter/bytecodeInterpreter.cpp
--- a/src/share/vm/interpreter/bytecodeInterpreter.cpp Sat Sep 13 16:38:57 2014 +0100
+++ b/src/share/vm/interpreter/bytecodeInterpreter.cpp Wed Oct 01 14:51:36 2014 +0100
@@ -2100,8 +2100,7 @@
if ( *count_addr > 0 ) {
if ((Bytecodes::Code)opcode == Bytecodes::_putstatic) {
obj = (oop)NULL;
- }
- else {
+ } else {
if (cache->is_long() || cache->is_double()) {
obj = (oop) STACK_OBJECT(-3);
} else {
@@ -2122,7 +2121,7 @@
// QQQ Need to make this as inlined as possible. Probably need to split all the bytecode cases
// out so c++ compiler has a chance for constant prop to fold everything possible away.
- oop obj;
+ oop obj,too;
int count;
TosState tos_type = cache->flag_state();
@@ -2146,8 +2145,9 @@
if (tos_type == itos) {
obj->release_int_field_put(field_offset, STACK_INT(-1));
} else if (tos_type == atos) {
- VERIFY_OOP(STACK_OBJECT(-1));
- obj->release_obj_field_put(field_offset, STACK_OBJECT(-1));
+ too = (oop) STACK_OBJECT(-1);
+ VERIFY_OOP(too);
+ obj->release_obj_field_put(field_offset, too);
} else if (tos_type == btos) {
obj->release_byte_field_put(field_offset, STACK_INT(-1));
} else if (tos_type == ltos) {
@@ -2166,7 +2166,8 @@
if (tos_type == itos) {
obj->int_field_put(field_offset, STACK_INT(-1));
} else if (tos_type == atos) {
- VERIFY_OOP(STACK_OBJECT(-1));
+ too = (oop) STACK_OBJECT(-1);
+ VERIFY_OOP(too);
// On IA64 we perform all stores of references with release semantics.
// This guarantees that everybody using this reference sees a fully
// initialized object. On PPC64 we emit a storestore barrier after
@@ -2292,7 +2293,8 @@
}
CASE(_checkcast):
if (STACK_OBJECT(-1) != NULL) {
- VERIFY_OOP(STACK_OBJECT(-1));
+ oop too = (oop) STACK_OBJECT(-1);
+ VERIFY_OOP(too);
u2 index = Bytes::get_Java_u2(pc+1);
// Constant pool may have actual klass or unresolved klass. If it is
// unresolved we must resolve it.
@@ -2329,7 +2331,8 @@
// Profile instanceof with null_seen and receiver.
BI_PROFILE_UPDATE_INSTANCEOF(/*null_seen=*/true, NULL);
} else {
- VERIFY_OOP(STACK_OBJECT(-1));
+ oop too = (oop) STACK_OBJECT(-1);
+ VERIFY_OOP(too);
u2 index = Bytes::get_Java_u2(pc+1);
// Constant pool may have actual klass or unresolved klass. If it is
// unresolved we must resolve it.
@@ -2558,7 +2561,8 @@
// another compliant java compiler.
if (cache->is_forced_virtual()) {
methodOop callee;
- CHECK_NULL(STACK_OBJECT(-(cache->parameter_size())));
+ oop too = (oop) STACK_OBJECT(-(cache->parameter_size()));
+ CHECK_NULL(too);
if (cache->is_vfinal()) {
callee = cache->f2_as_vfinal_method();
// Profile 'special case of invokeinterface' final call.
@@ -2645,7 +2649,8 @@
{
methodOop callee;
if ((Bytecodes::Code)opcode == Bytecodes::_invokevirtual) {
- CHECK_NULL(STACK_OBJECT(-(cache->parameter_size())));
+ oop too = (oop) STACK_OBJECT(-(cache->parameter_size()));
+ CHECK_NULL(too);
if (cache->is_vfinal()) {
callee = cache->f2_as_vfinal_method();
// Profile final call.
@@ -2684,7 +2689,8 @@
}
} else {
if ((Bytecodes::Code)opcode == Bytecodes::_invokespecial) {
- CHECK_NULL(STACK_OBJECT(-(cache->parameter_size())));
+ oop too = (oop) STACK_OBJECT(-(cache->parameter_size()));
+ CHECK_NULL(too);
}
callee = cache->f1_as_method();
diff -r 9e540ae27ead -r d24203ca6ebd src/share/vm/utilities/macros.hpp
--- a/src/share/vm/utilities/macros.hpp Sat Sep 13 16:38:57 2014 +0100
+++ b/src/share/vm/utilities/macros.hpp Wed Oct 01 14:51:36 2014 +0100
@@ -234,7 +234,11 @@
#define PPC_ONLY(code) code
#define NOT_PPC(code)
#else
-#undef PPC
+
+#ifdef PPC
+#error "PPC is either 32- or 64-bit."
+#endif
+
#define PPC_ONLY(code)
#define NOT_PPC(code) code
#endif
From andrew at icedtea.classpath.org Wed Oct 1 13:55:30 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Wed, 01 Oct 2014 13:55:30 +0000
Subject: /hg/icedtea7-forest/jdk: 2 new changesets
Message-ID:
changeset af556f9f1f01 in /hg/icedtea7-forest/jdk
details: http://icedtea.classpath.org/hg/icedtea7-forest/jdk?cmd=changeset;node=af556f9f1f01
author: andrew
date: Wed Oct 01 14:52:34 2014 +0100
PR2025: LCMS_CFLAGS & LCMS_LIBS should not be used unless SYSTEM_LCMS is enabled
changeset 1ad3247faaeb in /hg/icedtea7-forest/jdk
details: http://icedtea.classpath.org/hg/icedtea7-forest/jdk?cmd=changeset;node=1ad3247faaeb
author: andrew
date: Wed Oct 01 14:55:14 2014 +0100
RH1015432: java-1.7.0-openjdk: Fails on PPC with StackOverflowError (revised comprehensive fix)
Contributed-by: chphilli at redhat.com
Summary: Reverse effects of fix for Oracle bug 8013398 on Zero jvm [related fix].
Workaround for gcc bug [ http://gcc.gnu.org/PR63341 Add -fno-tree-vectorize to ppc build.]
found by Andrew Haley aph at redhat.com
jdk/make/common/Defs-linux.gmk
diffstat:
make/common/Defs-linux.gmk | 20 ++++++++++++++++++++
make/sun/cmm/lcms/Makefile | 14 +++++++++-----
2 files changed, 29 insertions(+), 5 deletions(-)
diffs (54 lines):
diff -r d5d2aed90aa8 -r 1ad3247faaeb make/common/Defs-linux.gmk
--- a/make/common/Defs-linux.gmk Fri Sep 19 02:38:01 2014 +0100
+++ b/make/common/Defs-linux.gmk Wed Oct 01 14:55:14 2014 +0100
@@ -222,7 +222,27 @@
CFLAGS_REQUIRED += -D_LITTLE_ENDIAN
endif
LDFLAGS_COMMON += $(ZERO_ARCHFLAG)
+ ifeq ($(ZERO_ARCHDEF),PPC)
+# gcc bug http://gcc.gnu.org/PR63341 in ppc code generation requires -fno-tree-vectorize for now
+ ifeq ($(ARCH_DATA_MODEL), 32)
+ CFLAGS_REQUIRED += -DPPC -DPPC32 -fno-tree-vectorize
+ else
+ CFLAGS_REQUIRED += -DPPC -DPPC64 -fno-tree-vectorize
+ endif
+ else
+ ifeq ($(ZERO_ARCHDEF),PPC32)
+ CFLAGS_REQUIRED += -DPPC -DPPC32 -fno-tree-vectorize
+ else
+ ifeq ($(ZERO_ARCHDEF),PPC64)
+ CFLAGS_REQUIRED += -DPPC -DPPC64 -fno-tree-vectorize
+ endif
+ endif
+ endif
else
+# gcc bug http://gcc.gnu.org/PR63341 in ppc code generation requires -fno-tree-vectorize for now
+CFLAGS_REQUIRED_ppc += -fno-tree-vectorize
+CFLAGS_REQUIRED_ppc64 += -fno-tree-vectorize
+#
CFLAGS_REQUIRED = $(CFLAGS_REQUIRED_$(ARCH))
LDFLAGS_COMMON += $(LDFLAGS_COMMON_$(ARCH))
endif
diff -r d5d2aed90aa8 -r 1ad3247faaeb make/sun/cmm/lcms/Makefile
--- a/make/sun/cmm/lcms/Makefile Fri Sep 19 02:38:01 2014 +0100
+++ b/make/sun/cmm/lcms/Makefile Wed Oct 01 14:55:14 2014 +0100
@@ -97,10 +97,14 @@
ifeq ($(PLATFORM), macosx)
OTHER_LDLIBS = $(LIBM) -lawt -L$(LIBDIR)/xawt
else
-OTHER_LDLIBS = $(LIBM) -lawt -L$(LIBDIR)/$(LIBARCH)/xawt $(LCMS_LIBS)
-endif
-CPPFLAGS += -I$(SHARE_SRC)/native/sun/java2d \
- -I$(SHARE_SRC)/native/sun/awt/debug \
- $(LCMS_CFLAGS)
+OTHER_LDLIBS = $(LIBM) -lawt -L$(LIBDIR)/$(LIBARCH)/xawt
endif
+CPPFLAGS += -I$(SHARE_SRC)/native/sun/java2d \
+ -I$(SHARE_SRC)/native/sun/awt/debug
+endif
+
+ifeq ($(SYSTEM_LCMS),true)
+ CPPFLAGS += $(LCMS_CFLAGS)
+ OTHER_LDLIBS += $(LCMS_LIBS)
+endif
From bugzilla-daemon at icedtea.classpath.org Wed Oct 1 13:55:37 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Wed, 01 Oct 2014 13:55:37 +0000
Subject: [Bug 2025] [IcedTea7] LCMS_CFLAGS & LCMS_LIBS should not be used
unless SYSTEM_LCMS is enabled
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2025
--- Comment #1 from hg commits ---
details:
http://icedtea.classpath.org//hg/icedtea7-forest/jdk?cmd=changeset;node=af556f9f1f01
author: andrew
date: Wed Oct 01 14:52:34 2014 +0100
PR2025: LCMS_CFLAGS & LCMS_LIBS should not be used unless SYSTEM_LCMS is
enabled
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From jkang at redhat.com Wed Oct 1 16:26:48 2014
From: jkang at redhat.com (Jie Kang)
Date: Wed, 1 Oct 2014 12:26:48 -0400 (EDT)
Subject: [rfc][icedtea-web] ResourceTracker Thread Pool Enhancement
In-Reply-To: <957448995.24110333.1408642399711.JavaMail.zimbra@redhat.com>
Message-ID: <1595707600.13469333.1412180808182.JavaMail.zimbra@redhat.com>
Hello,
This patch replaces the manual thread management system in Resource Tracker with a fixed thread pool using Java's Executor Service class.
The functionality remains the same as before. In terms of testing, using the Performance Test [1], running the reproducers and performing manual testing has shown no regressions.
Thoughts?
[1] : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2014-August/028980.html
Regards,
--
Jie Kang
-------------- next part --------------
A non-text attachment was scrubbed...
Name: itw-rt-threadpool-1.patch
Type: text/x-patch
Size: 6937 bytes
Desc: not available
URL:
From andrew at icedtea.classpath.org Wed Oct 1 23:43:51 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Wed, 01 Oct 2014 23:43:51 +0000
Subject: /hg/release/icedtea7-forest-2.5: Added tag icedtea-2.5.3pre02 fo...
Message-ID:
changeset 49dc79ef05ab in /hg/release/icedtea7-forest-2.5
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5?cmd=changeset;node=49dc79ef05ab
author: andrew
date: Thu Oct 02 00:42:05 2014 +0100
Added tag icedtea-2.5.3pre02 for changeset 6f40002d1813
diffstat:
.hgtags | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diffs (8 lines):
diff -r 6f40002d1813 -r 49dc79ef05ab .hgtags
--- a/.hgtags Mon Sep 22 15:44:17 2014 +0100
+++ b/.hgtags Thu Oct 02 00:42:05 2014 +0100
@@ -488,3 +488,4 @@
483622a291d726960c8ccca5650de9569f269d7a icedtea-2.5.1
de1fbcb0855887e803b71a8da642c377c85c3780 icedtea-2.5.2
dfe93c56a5f60a4ef0f3b3727d7784b6879a5bd9 icedtea-2.5.3pre01
+6f40002d1813d0f57cdf7d3c3b4d0edecf56d77e icedtea-2.5.3pre02
From andrew at icedtea.classpath.org Wed Oct 1 23:43:58 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Wed, 01 Oct 2014 23:43:58 +0000
Subject: /hg/release/icedtea7-forest-2.5/corba: Added tag icedtea-2.5.3pr...
Message-ID:
changeset 289fda98debf in /hg/release/icedtea7-forest-2.5/corba
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/corba?cmd=changeset;node=289fda98debf
author: andrew
date: Thu Oct 02 00:41:53 2014 +0100
Added tag icedtea-2.5.3pre02 for changeset 090fc686cf0b
diffstat:
.hgtags | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diffs (8 lines):
diff -r 090fc686cf0b -r 289fda98debf .hgtags
--- a/.hgtags Mon Sep 22 15:44:05 2014 +0100
+++ b/.hgtags Thu Oct 02 00:41:53 2014 +0100
@@ -490,3 +490,4 @@
895c6b10499623eaf8897a9ed0d28a34e4cd4a89 icedtea-2.5.1
06663e4cfbbeade300222eeae55856940b2ffbee icedtea-2.5.2
1d178f96bc11a65290eb4787edbca3c08c83a4f4 icedtea-2.5.3pre01
+090fc686cf0b453298269f96ae04fa8f35a42d7f icedtea-2.5.3pre02
From andrew at icedtea.classpath.org Wed Oct 1 23:44:04 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Wed, 01 Oct 2014 23:44:04 +0000
Subject: /hg/release/icedtea7-forest-2.5/jaxp: Added tag icedtea-2.5.3pre...
Message-ID:
changeset fe67f260d065 in /hg/release/icedtea7-forest-2.5/jaxp
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jaxp?cmd=changeset;node=fe67f260d065
author: andrew
date: Thu Oct 02 00:41:54 2014 +0100
Added tag icedtea-2.5.3pre02 for changeset a4e4e763970f
diffstat:
.hgtags | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diffs (8 lines):
diff -r a4e4e763970f -r fe67f260d065 .hgtags
--- a/.hgtags Mon Sep 22 15:44:06 2014 +0100
+++ b/.hgtags Thu Oct 02 00:41:54 2014 +0100
@@ -491,3 +491,4 @@
59a1a3e441089798763016eedfcc066e6f437bd2 icedtea-2.5.1
d77720c6a36f0b9c995e47badb8efddd0e8f2021 icedtea-2.5.2
771d2a0e90aef31fd70a2eda48b2d1aff8c15101 icedtea-2.5.3pre01
+a4e4e763970f6ac7f39892491cfcde2f6e182a1e icedtea-2.5.3pre02
From andrew at icedtea.classpath.org Thu Oct 2 00:05:57 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Thu, 02 Oct 2014 00:05:57 +0000
Subject: /hg/release/icedtea7-2.5: Bump to icedtea-2.5.3pre02.
Message-ID:
changeset 2b5024a64ce9 in /hg/release/icedtea7-2.5
details: http://icedtea.classpath.org/hg/release/icedtea7-2.5?cmd=changeset;node=2b5024a64ce9
author: Andrew John Hughes
date: Thu Oct 02 01:04:25 2014 +0100
Bump to icedtea-2.5.3pre02.
PR2025: LCMS_CFLAGS & LCMS_LIBS should not be used unless SYSTEM_LCMS is enabled
S7122142: (ann) Race condition between isAnnotationPresent and getAnnotations
RH1015432: java-1.7.0-openjdk: Fails on PPC with StackOverflowError (revised comprehensive fix)
2014-10-01 Andrew John Hughes
* Makefile.am:
(CORBA_CHANGESET): Update to icedtea-2.5.3pre02 tag.
(JAXP_CHANGESET): Likewise.
(JAXWS_CHANGESET): Likewise.
(JDK_CHANGESET): Likewise.
(LANGTOOLS_CHANGESET): Likewise.
(OPENJDK_CHANGESET): Likewise.
(CORBA_SHA256SUM): Likewise.
(JAXP_SHA256SUM): Likewise.
(JAXWS_SHA256SUM): Likewise.
(JDK_SHA256SUM): Likewise.
(LANGTOOLS_SHA256SUM): Likewise.
(OPENJDK_SHA256SUM): Likewise.
* NEWS: Updated.
* configure.ac: Bump to 2.5.3pre02.
* hotspot.map.in: Update to icedtea-2.5.3pre02 tag.
* patches/boot/ecj-diamond.patch:
Regenerated following changes to java.lang.Class.
diffstat:
ChangeLog | 21 +
Makefile.am | 24 +-
NEWS | 3 +
configure.ac | 2 +-
hotspot.map.in | 2 +-
patches/boot/ecj-diamond.patch | 1138 +++++++++++++++++++--------------------
6 files changed, 586 insertions(+), 604 deletions(-)
diffs (truncated from 3130 to 500 lines):
diff -r 34c6a0fa1764 -r 2b5024a64ce9 ChangeLog
--- a/ChangeLog Mon Sep 22 17:12:45 2014 +0100
+++ b/ChangeLog Thu Oct 02 01:04:25 2014 +0100
@@ -1,3 +1,24 @@
+2014-10-01 Andrew John Hughes
+
+ * Makefile.am:
+ (CORBA_CHANGESET): Update to icedtea-2.5.3pre02 tag.
+ (JAXP_CHANGESET): Likewise.
+ (JAXWS_CHANGESET): Likewise.
+ (JDK_CHANGESET): Likewise.
+ (LANGTOOLS_CHANGESET): Likewise.
+ (OPENJDK_CHANGESET): Likewise.
+ (CORBA_SHA256SUM): Likewise.
+ (JAXP_SHA256SUM): Likewise.
+ (JAXWS_SHA256SUM): Likewise.
+ (JDK_SHA256SUM): Likewise.
+ (LANGTOOLS_SHA256SUM): Likewise.
+ (OPENJDK_SHA256SUM): Likewise.
+ * NEWS: Updated.
+ * configure.ac: Bump to 2.5.3pre02.
+ * hotspot.map.in: Update to icedtea-2.5.3pre02 tag.
+ * patches/boot/ecj-diamond.patch:
+ Regenerated following changes to java.lang.Class.
+
2014-09-16 Andrew John Hughes
* Makefile.am:
diff -r 34c6a0fa1764 -r 2b5024a64ce9 Makefile.am
--- a/Makefile.am Mon Sep 22 17:12:45 2014 +0100
+++ b/Makefile.am Thu Oct 02 01:04:25 2014 +0100
@@ -4,19 +4,19 @@
BUILD_VERSION = b32
COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(BUILD_VERSION)
-CORBA_CHANGESET = 1d178f96bc11
-JAXP_CHANGESET = 771d2a0e90ae
-JAXWS_CHANGESET = c46dd3a579f0
-JDK_CHANGESET = fa4e5dae68e1
-LANGTOOLS_CHANGESET = fe8926c95af9
-OPENJDK_CHANGESET = dfe93c56a5f6
+CORBA_CHANGESET = 090fc686cf0b
+JAXP_CHANGESET = a4e4e763970f
+JAXWS_CHANGESET = dcb5afbd4d7d
+JDK_CHANGESET = 16dfadea81a1
+LANGTOOLS_CHANGESET = 0e3fd42f2696
+OPENJDK_CHANGESET = 6f40002d1813
-CORBA_SHA256SUM = fd3047579013676db55324e1ed74c74652b23dc7d1255165d118e0e56be1478b
-JAXP_SHA256SUM = 1cfa25ddd8da271d845de2dde8d23bad103c76684a8412196dc1396edaf28037
-JAXWS_SHA256SUM = 47dcfced6ca076e912d036e4068edf8cdc44ae7def5ab338e54ed40d34c66a5e
-JDK_SHA256SUM = 263336cb065d74e0c52fe356bbd93b971fdcd1c25d11784255f8f84263a885a3
-LANGTOOLS_SHA256SUM = 18f0bcc0ad9d338f70219e9bdc11cd6639875b79858c72cbf875411238ff351e
-OPENJDK_SHA256SUM = 9a8f19e12cfb243df60bfebadff9c30def79ad0be90df512c5ea8f86eef94fab
+CORBA_SHA256SUM = 65b0cb4638f08fe44d7d6d79af042e75747098bf4118003e141e87135ae6dcaa
+JAXP_SHA256SUM = 722493ec24c4fb4023f1d65b9334dee3526f0e347c249e074a45421ea870ecc5
+JAXWS_SHA256SUM = f3c2915ae2bdf3c2aab82a0e700c05512850063baf06fb2c2fb5896cabce110e
+JDK_SHA256SUM = dc00f5c39eb0fe8ccbf26aafe62e0eccf9785651f3ef8e090db1c62a970802d8
+LANGTOOLS_SHA256SUM = f560c641a6808726ed6cafdf6b1f29e98fc85faea56b1e751696892a2f5a1046
+OPENJDK_SHA256SUM = f2d69cdffd2bb14b744f4e25cb5ef2d0590926d1cb7da5868c2025479b2c74e1
DROP_URL = http://icedtea.classpath.org/download/drops
diff -r 34c6a0fa1764 -r 2b5024a64ce9 NEWS
--- a/NEWS Mon Sep 22 17:12:45 2014 +0100
+++ b/NEWS Thu Oct 02 01:04:25 2014 +0100
@@ -17,6 +17,7 @@
* Backports
- S4963723: Implement SHA-224
- S7044060: Need to support NSA Suite B Cryptography algorithms
+ - S7122142: (ann) Race condition between isAnnotationPresent and getAnnotations
- S8006935: Need to take care of long secret keys in HMAC/PRF compuation
* Bug fixes
- PR1988: C++ Interpreter should no longer be used on ppc64
@@ -26,6 +27,8 @@
- PR2002: Fix references to hotspot.map following PR2000
- PR2003: --disable-system-gtk option broken by refactoring in PR1736
- PR2009: Checksum of policy JAR files changes on every build
+ - PR2025: LCMS_CFLAGS & LCMS_LIBS should not be used unless SYSTEM_LCMS is enabled
+ - RH1015432: java-1.7.0-openjdk: Fails on PPC with StackOverflowError (revised comprehensive fix)
New in release 2.5.2 (2014-08-29):
diff -r 34c6a0fa1764 -r 2b5024a64ce9 configure.ac
--- a/configure.ac Mon Sep 22 17:12:45 2014 +0100
+++ b/configure.ac Thu Oct 02 01:04:25 2014 +0100
@@ -1,4 +1,4 @@
-AC_INIT([icedtea], [2.5.3pre01], [distro-pkg-dev at openjdk.java.net])
+AC_INIT([icedtea], [2.5.3pre02], [distro-pkg-dev at openjdk.java.net])
AM_INIT_AUTOMAKE([1.9 tar-pax foreign])
AM_MAINTAINER_MODE([enable])
AC_CONFIG_FILES([Makefile])
diff -r 34c6a0fa1764 -r 2b5024a64ce9 hotspot.map.in
--- a/hotspot.map.in Mon Sep 22 17:12:45 2014 +0100
+++ b/hotspot.map.in Thu Oct 02 01:04:25 2014 +0100
@@ -1,3 +1,3 @@
# version type(drop/hg) url changeset sha256sum
-default drop http://icedtea.classpath.org/download/drops/icedtea7/@ICEDTEA_RELEASE@ 9f719e4c80af 63b824ef5ffbf702838fbe2917ddfab563b271576871edf23101db265584e49d
+default drop http://icedtea.classpath.org/download/drops/icedtea7/@ICEDTEA_RELEASE@ 7ce2690d2182 a46fa777ee7bdf5ef60231b105745e1c4e4cddc356cdc677b615a843705499b5
aarch64 drop http://icedtea.classpath.org/download/drops/aarch64/2.5.1 a03843f2ff15 e88ca1ef9eeafa9bac7f0e5277a927129288547f241f0ed1e53969c6888177f2
diff -r 34c6a0fa1764 -r 2b5024a64ce9 patches/boot/ecj-diamond.patch
--- a/patches/boot/ecj-diamond.patch Mon Sep 22 17:12:45 2014 +0100
+++ b/patches/boot/ecj-diamond.patch Thu Oct 02 01:04:25 2014 +0100
@@ -1,6 +1,6 @@
diff -Nru openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java
---- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java 2014-07-15 22:47:38.000000000 +0100
-+++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java 2014-07-15 23:17:03.375226216 +0100
+--- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java 2014-09-22 15:44:05.000000000 +0100
++++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java 2014-10-02 00:02:10.026873309 +0100
@@ -58,7 +58,7 @@
private CorbaConnection conn;
@@ -11,8 +11,8 @@
public static synchronized void cleanCache( ORB orb ) {
synchronized (iorMapLock) {
diff -Nru openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java
---- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java 2014-07-15 22:47:38.000000000 +0100
-+++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java 2014-07-15 23:17:03.375226216 +0100
+--- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java 2014-09-22 15:44:05.000000000 +0100
++++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java 2014-10-02 00:02:10.026873309 +0100
@@ -1315,7 +1315,7 @@
protected void shutdownServants(boolean wait_for_completion) {
Set oaset;
@@ -23,8 +23,8 @@
for (ObjectAdapterFactory oaf : oaset)
diff -Nru openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java
---- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java 2014-07-15 22:47:38.000000000 +0100
-+++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java 2014-07-15 23:17:03.375226216 +0100
+--- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java 2014-09-22 15:44:05.000000000 +0100
++++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java 2014-10-02 00:02:10.026873309 +0100
@@ -108,7 +108,7 @@
private ThreadGroup threadGroup;
@@ -44,8 +44,8 @@
for (WorkerThread wt : copy) {
diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java
---- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java 2014-07-15 23:15:12.177527771 +0100
-+++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java 2014-07-15 23:17:03.375226216 +0100
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java 2014-10-01 23:57:16.438813920 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java 2014-10-02 00:02:10.026873309 +0100
@@ -297,8 +297,8 @@
//
private final static class EncodingInfos {
@@ -67,8 +67,8 @@
final String javaName = (String) keys.nextElement();
final String[] mimes = parseMimeTypes(props.getProperty(javaName));
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java openjdk-boot/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java 2014-07-15 23:03:29.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java 2014-07-15 23:17:03.375226216 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java 2014-10-01 14:55:14.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java 2014-10-02 00:02:10.026873309 +0100
@@ -63,9 +63,10 @@
*/
public final class DocumentHandler extends DefaultHandler {
@@ -84,8 +84,8 @@
private Reference loader;
private ExceptionListener listener;
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/TypeResolver.java openjdk-boot/jdk/src/share/classes/com/sun/beans/TypeResolver.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/TypeResolver.java 2014-07-15 23:03:29.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/beans/TypeResolver.java 2014-07-15 23:17:03.375226216 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/TypeResolver.java 2014-10-01 14:55:14.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/beans/TypeResolver.java 2014-10-02 00:02:10.026873309 +0100
@@ -46,7 +46,7 @@
*/
public final class TypeResolver {
@@ -105,8 +105,8 @@
CACHE.put(actual, map);
}
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/util/Cache.java openjdk-boot/jdk/src/share/classes/com/sun/beans/util/Cache.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/util/Cache.java 2014-07-15 23:03:29.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/beans/util/Cache.java 2014-07-15 23:17:03.375226216 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/util/Cache.java 2014-10-01 14:55:14.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/beans/util/Cache.java 2014-10-02 00:02:10.026873309 +0100
@@ -45,7 +45,7 @@
private final Kind keyKind; // a reference kind for the cache keys
private final Kind valueKind; // a reference kind for the cache values
@@ -153,8 +153,8 @@
};
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 2014-07-15 23:03:29.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2014-07-15 23:17:03.375226216 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2014-10-01 14:55:14.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2014-10-02 00:02:10.026873309 +0100
@@ -104,9 +104,9 @@
return this.def.compareTo(that.def);
}
@@ -226,8 +226,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 2014-07-15 23:15:12.237528687 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2014-07-15 23:17:03.375226216 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2014-10-01 23:57:16.470814364 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2014-10-02 00:02:10.030873364 +0100
@@ -257,7 +257,7 @@
assert(basicCodings[_meta_default] == null);
assert(basicCodings[_meta_canon_min] != null);
@@ -290,8 +290,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 2014-07-15 23:15:12.069526120 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2014-07-15 23:17:03.375226216 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2014-10-01 23:57:16.354812760 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2014-10-02 00:02:10.030873364 +0100
@@ -466,7 +466,7 @@
void readInnerClasses(Class cls) throws IOException {
@@ -302,8 +302,8 @@
InnerClass ic =
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 2014-07-15 23:03:29.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java 2014-07-15 23:17:03.375226216 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java 2014-10-01 14:55:14.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java 2014-10-02 00:02:10.030873364 +0100
@@ -743,9 +743,9 @@
// Steps 1/2/3 are interdependent, and may be iterated.
// Steps 4 and 5 may be decided independently afterward.
@@ -340,8 +340,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 2014-07-15 23:03:29.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java 2014-07-15 23:17:03.375226216 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java 2014-10-01 14:55:14.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java 2014-10-02 00:02:10.030873364 +0100
@@ -402,7 +402,7 @@
private static Map codeMap;
@@ -352,8 +352,8 @@
Coding x1 = codeMap.get(x0);
if (x1 == null) codeMap.put(x0, x1 = x0);
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2014-07-15 23:03:29.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2014-07-15 23:17:03.375226216 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2014-10-01 14:55:14.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2014-10-02 00:02:10.030873364 +0100
@@ -921,7 +921,7 @@
public static
Index[] partition(Index ix, int[] keys) {
@@ -382,8 +382,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 2014-07-15 23:15:12.237528687 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2014-07-15 23:17:03.375226216 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2014-10-01 23:57:16.470814364 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2014-10-02 00:02:10.030873364 +0100
@@ -61,7 +61,7 @@
ResourceBundle.getBundle("com.sun.java.util.jar.pack.DriverResource");
@@ -421,8 +421,8 @@
for (String optline : options.split("\n")) {
String[] words = optline.split("\\p{Space}+");
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2014-07-15 23:03:29.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2014-07-15 23:17:03.375226216 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2014-10-01 14:55:14.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2014-10-02 00:02:10.030873364 +0100
@@ -45,7 +45,7 @@
private final ArrayList flist;
@@ -433,8 +433,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 2014-07-15 23:15:12.073526180 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2014-07-15 23:17:03.375226216 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2014-10-01 23:57:16.354812760 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2014-10-02 00:02:10.030873364 +0100
@@ -112,7 +112,7 @@
public static final Attribute.Layout attrSourceFileSpecial;
public static final Map attrDefs;
@@ -590,8 +590,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 2014-07-15 23:15:12.241528748 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2014-07-15 23:17:03.375226216 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2014-10-01 23:57:16.470814364 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2014-10-02 00:02:10.030873364 +0100
@@ -686,7 +686,7 @@
cp_Signature_classes.expectLength(getIntTotal(numSigClasses));
cp_Signature_classes.readFrom(in);
@@ -705,8 +705,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 2014-07-15 23:15:12.241528748 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2014-07-15 23:17:03.379226275 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2014-10-01 23:57:16.470814364 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2014-10-02 00:02:10.030873364 +0100
@@ -116,7 +116,7 @@
int[][] attrCounts; // count attr. occurences
@@ -762,8 +762,8 @@
for (Class cls : pkg.classes) {
if (!cls.hasInnerClasses()) continue;
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2014-07-15 23:03:29.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2014-07-15 23:17:03.379226275 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2014-10-01 14:55:14.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2014-10-02 00:02:10.030873364 +0100
@@ -183,8 +183,8 @@
final Map attrDefs;
final Map attrCommands;
@@ -794,8 +794,8 @@
for (JarEntry je : Collections.list(jf.entries())) {
InFile inFile = new InFile(jf, je);
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2014-07-15 23:03:29.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2014-07-15 23:17:03.379226275 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2014-10-01 14:55:14.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2014-10-02 00:02:10.030873364 +0100
@@ -309,7 +309,7 @@
// As each new value is added, we assert that the value
// was not already in the set.
@@ -806,8 +806,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 2014-07-15 23:15:12.241528748 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2014-07-15 23:17:03.379226275 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2014-10-01 23:57:16.470814364 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2014-10-02 00:02:10.030873364 +0100
@@ -48,8 +48,8 @@
*/
@@ -838,8 +838,8 @@
while (res.remove(null));
return res;
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java 2014-07-15 23:03:29.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java 2014-07-15 23:17:03.379226275 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java 2014-10-01 14:55:14.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java 2014-10-02 00:02:10.030873364 +0100
@@ -58,12 +58,12 @@
private final Map memberEntries;
@@ -860,8 +860,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 2014-07-15 23:15:12.241528748 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java 2014-07-15 23:17:03.379226275 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java 2014-10-01 23:57:16.474814420 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java 2014-10-02 00:02:10.030873364 +0100
@@ -233,7 +233,7 @@
props.setProperty(java.util.jar.Pack200.Unpacker.PROGRESS,"50");
pkg.ensureAllClassFiles();
@@ -872,8 +872,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 2014-07-15 23:15:12.241528748 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java 2014-07-15 23:17:03.379226275 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java 2014-10-01 23:57:16.474814420 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java 2014-10-02 00:02:10.034873421 +0100
@@ -132,7 +132,7 @@
// Keep a TLS point to the global data and environment.
// This makes it simpler to supply environmental options
@@ -884,8 +884,8 @@
// convenience methods to access the TL globals
static TLGlobals getTLGlobals() {
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jmx/remote/security/SubjectDelegator.java openjdk-boot/jdk/src/share/classes/com/sun/jmx/remote/security/SubjectDelegator.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/jmx/remote/security/SubjectDelegator.java 2014-07-15 23:03:29.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/jmx/remote/security/SubjectDelegator.java 2014-07-15 23:18:11.116260222 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jmx/remote/security/SubjectDelegator.java 2014-10-01 14:55:14.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jmx/remote/security/SubjectDelegator.java 2014-10-02 00:02:10.034873421 +0100
@@ -56,7 +56,7 @@
// principal in the delegated subject
//
@@ -896,8 +896,8 @@
final String pname = p.getClass().getName() + "." + p.getName();
permissions.add(new SubjectDelegationPermission(pname));
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/media/sound/AbstractLine.java openjdk-boot/jdk/src/share/classes/com/sun/media/sound/AbstractLine.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/media/sound/AbstractLine.java 2014-07-15 23:03:29.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/media/sound/AbstractLine.java 2014-07-15 23:17:03.379226275 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/media/sound/AbstractLine.java 2014-10-01 14:55:14.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/media/sound/AbstractLine.java 2014-10-02 00:02:10.034873421 +0100
@@ -54,7 +54,7 @@
* Contains event dispatcher per thread group.
*/
@@ -908,8 +908,8 @@
/**
* Constructs a new AbstractLine.
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/media/sound/JDK13Services.java openjdk-boot/jdk/src/share/classes/com/sun/media/sound/JDK13Services.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/media/sound/JDK13Services.java 2014-07-15 23:03:29.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/media/sound/JDK13Services.java 2014-07-15 23:17:03.455227437 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/media/sound/JDK13Services.java 2014-10-01 14:55:14.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/media/sound/JDK13Services.java 2014-10-02 00:02:10.034873421 +0100
@@ -102,7 +102,7 @@
&& !SoundbankReader.class.equals(serviceClass)
&& !MidiFileWriter.class.equals(serviceClass)
@@ -920,8 +920,8 @@
providers = JSSecurityManager.getProviders(serviceClass);
}
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/media/sound/RealTimeSequencer.java openjdk-boot/jdk/src/share/classes/com/sun/media/sound/RealTimeSequencer.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/media/sound/RealTimeSequencer.java 2014-07-15 23:03:29.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/media/sound/RealTimeSequencer.java 2014-07-15 23:17:03.379226275 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/media/sound/RealTimeSequencer.java 2014-10-01 14:55:14.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/media/sound/RealTimeSequencer.java 2014-10-02 00:02:10.034873421 +0100
@@ -59,7 +59,7 @@
* dispatcher instance with a factory in EventDispatcher
*/
@@ -932,8 +932,8 @@
/**
* All RealTimeSequencers share this info object.
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java 2014-07-15 23:03:29.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java 2014-07-15 23:17:03.379226275 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java 2014-10-01 14:55:14.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java 2014-10-02 00:02:10.034873421 +0100
@@ -231,7 +231,7 @@
* Create an empty ExecOptionPermissionCollection.
*/
@@ -944,8 +944,8 @@
}
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java 2014-07-15 23:03:29.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java 2014-07-15 23:17:03.379226275 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java 2014-10-01 14:55:14.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java 2014-10-02 00:02:10.034873421 +0100
@@ -235,7 +235,7 @@
* Create an empty ExecPermissionCollection.
*/
@@ -956,8 +956,8 @@
/**
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 2014-07-15 23:03:29.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java 2014-07-15 23:17:03.383226335 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java 2014-10-01 14:55:14.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java 2014-10-02 00:02:10.034873421 +0100
@@ -1285,7 +1285,7 @@
*/
public Collection> toCollection() throws SQLException {
@@ -977,8 +977,8 @@
// create a copy
CachedRowSetImpl crsTemp;
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java 2014-07-15 23:03:29.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java 2014-07-15 23:17:03.383226335 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java 2014-10-01 14:55:14.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java 2014-10-02 00:02:10.034873421 +0100
@@ -222,7 +222,7 @@
// either of the setter methods have been set.
if(boolColId){
@@ -989,8 +989,8 @@
if( (strMatchKey = (cRowset.getMatchColumnNames())[i]) != null) {
iMatchKey = cRowset.findColumn(strMatchKey);
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java 2014-07-15 23:03:29.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java 2014-07-15 23:17:03.383226335 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java 2014-10-01 14:55:14.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java 2014-10-02 00:02:10.038873477 +0100
@@ -99,10 +99,10 @@
throws UnsupportedCallbackException
{
@@ -1005,8 +1005,8 @@
ConfirmationInfo confirmation = new ConfirmationInfo();
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java 2014-07-15 23:03:29.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java 2014-07-15 23:17:03.383226335 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java 2014-10-01 14:55:14.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java 2014-10-02 00:02:10.038873477 +0100
@@ -152,7 +152,7 @@
// new configuration
@@ -1035,8 +1035,8 @@
String value;
while (peek(";") == false) {
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java 2014-07-15 23:03:29.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java 2014-07-15 23:17:03.383226335 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java 2014-10-01 14:55:14.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java 2014-10-02 00:02:10.038873477 +0100
@@ -184,7 +184,7 @@
private UnixNumericUserPrincipal UIDPrincipal;
private UnixNumericGroupPrincipal GIDPrincipal;
@@ -1047,8 +1047,8 @@
// initial state
private Subject subject;
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java 2014-07-15 23:03:29.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java 2014-07-15 23:17:03.383226335 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java 2014-10-01 14:55:14.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java 2014-10-02 00:02:10.038873477 +0100
@@ -658,7 +658,7 @@
throw new FailedLoginException(
"Unable to find X.509 certificate chain in keystore");
@@ -1059,8 +1059,8 @@
certList.add(fromKeyStore[i]);
}
From bugzilla-daemon at icedtea.classpath.org Thu Oct 2 00:06:04 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Thu, 02 Oct 2014 00:06:04 +0000
Subject: [Bug 2025] [IcedTea7] LCMS_CFLAGS & LCMS_LIBS should not be used
unless SYSTEM_LCMS is enabled
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2025
--- Comment #2 from hg commits ---
details:
http://icedtea.classpath.org//hg/release/icedtea7-2.5?cmd=changeset;node=2b5024a64ce9
author: Andrew John Hughes
date: Thu Oct 02 01:04:25 2014 +0100
Bump to icedtea-2.5.3pre02.
PR2025: LCMS_CFLAGS & LCMS_LIBS should not be used unless SYSTEM_LCMS is
enabled
S7122142: (ann) Race condition between isAnnotationPresent and
getAnnotations
RH1015432: java-1.7.0-openjdk: Fails on PPC with StackOverflowError
(revised comprehensive fix)
2014-10-01 Andrew John Hughes
* Makefile.am:
(CORBA_CHANGESET): Update to icedtea-2.5.3pre02 tag.
(JAXP_CHANGESET): Likewise.
(JAXWS_CHANGESET): Likewise.
(JDK_CHANGESET): Likewise.
(LANGTOOLS_CHANGESET): Likewise.
(OPENJDK_CHANGESET): Likewise.
(CORBA_SHA256SUM): Likewise.
(JAXP_SHA256SUM): Likewise.
(JAXWS_SHA256SUM): Likewise.
(JDK_SHA256SUM): Likewise.
(LANGTOOLS_SHA256SUM): Likewise.
(OPENJDK_SHA256SUM): Likewise.
* NEWS: Updated.
* configure.ac: Bump to 2.5.3pre02.
* hotspot.map.in: Update to icedtea-2.5.3pre02 tag.
* patches/boot/ecj-diamond.patch:
Regenerated following changes to java.lang.Class.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From andrew at icedtea.classpath.org Thu Oct 2 00:07:28 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Thu, 02 Oct 2014 00:07:28 +0000
Subject: /hg/release/icedtea7-forest-2.5/jaxws: Added tag icedtea-2.5.3pr...
Message-ID:
changeset d3bef5fd93db in /hg/release/icedtea7-forest-2.5/jaxws
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jaxws?cmd=changeset;node=d3bef5fd93db
author: andrew
date: Thu Oct 02 00:41:55 2014 +0100
Added tag icedtea-2.5.3pre02 for changeset dcb5afbd4d7d
diffstat:
.hgtags | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diffs (8 lines):
diff -r dcb5afbd4d7d -r d3bef5fd93db .hgtags
--- a/.hgtags Mon Sep 22 15:44:07 2014 +0100
+++ b/.hgtags Thu Oct 02 00:41:55 2014 +0100
@@ -490,3 +490,4 @@
b5384b2fb987fc5310167a9524b4a5ee1880f56b icedtea-2.5.1
aac78bd724c437cefd9ba8abb280df34609ca936 icedtea-2.5.2
c46dd3a579f036318ca043387f4619aa2a3a0f33 icedtea-2.5.3pre01
+dcb5afbd4d7d074ecb061600d6fe82254dde666d icedtea-2.5.3pre02
From andrew at icedtea.classpath.org Thu Oct 2 00:07:34 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Thu, 02 Oct 2014 00:07:34 +0000
Subject: /hg/release/icedtea7-forest-2.5/langtools: Added tag icedtea-2.5...
Message-ID:
changeset 331bd0e2b339 in /hg/release/icedtea7-forest-2.5/langtools
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/langtools?cmd=changeset;node=331bd0e2b339
author: andrew
date: Thu Oct 02 00:42:03 2014 +0100
Added tag icedtea-2.5.3pre02 for changeset 0e3fd42f2696
diffstat:
.hgtags | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diffs (8 lines):
diff -r 0e3fd42f2696 -r 331bd0e2b339 .hgtags
--- a/.hgtags Mon Sep 22 15:44:16 2014 +0100
+++ b/.hgtags Thu Oct 02 00:42:03 2014 +0100
@@ -490,3 +490,4 @@
4c827dc3de054b03008402f571ca645cbf7939e6 icedtea-2.5.1
f444e2a7764393fa62cc1ec9dcaa3a9f7ebbc551 icedtea-2.5.2
fe8926c95af9d3c2cd4b1b6a6e107edbd52542cd icedtea-2.5.3pre01
+0e3fd42f269632e424acb551b67565e4d21b464f icedtea-2.5.3pre02
From andrew at icedtea.classpath.org Thu Oct 2 00:07:40 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Thu, 02 Oct 2014 00:07:40 +0000
Subject: /hg/release/icedtea7-forest-2.5/hotspot: 2 new changesets
Message-ID:
changeset 7ce2690d2182 in /hg/release/icedtea7-forest-2.5/hotspot
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/hotspot?cmd=changeset;node=7ce2690d2182
author: andrew
date: Wed Oct 01 14:51:36 2014 +0100
RH1015432: java-1.7.0-openjdk: Fails on PPC with StackOverflowError (revised comprehensive fix)
Contributed-by: chphilli at redhat.com
Summary: Reverse effects of fix for Oracle bug 8013398 on Zero jvm.
1) Stack Overflow bugs found in ppc64 , ppc32 due to bad min stack allowed calc.
found by Andrew Haley aph at redhat.com
hotspot/src/cpu/zero/vm/stack_zero.hpp
hotspot/src/cpu/zero/vm/stack_zero.inline.hpp
hotspot/src/os/linux/vm/os_linux.cpp
hotspot/src/os/bsd/vm/os_bsd.cpp
2) Incorrect HW flags for atomic_copy64 causing spurious SEGV's.
found by Andrew Haley aph at redhat.com
hotspot/make/linux/Makefile
hotspot/make/bsd/Makefile
hotspot/make/bsd/platform_zero.in
hotspot/make/linux/platform_zero.in
hotspot/src/share/vm/utilities/macros.hpp
3) Missing synch for xchg , xchg_ptr also possible cause of SEGV's.
found by Andrew Haley aph at redhat.com
hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
hotspot/src/os_cpu/bsd_zero/vm/atomic_bsd_zero.inline.hpp
4) Workaround for gcc bug [ http://gcc.gnu.org/PR63341 Add -fno-tree-vectorize to ppc build.]
found by Andrew Haley aph at redhat.com
hotspot/make/linux/makefiles/gcc.make
hotspot/make/bsd/makefiles/gcc.make
5) And fix code rot to allow building Zero hotspot jvm debug[jvmg] , fastdebug.
hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
changeset ec692ec8cf82 in /hg/release/icedtea7-forest-2.5/hotspot
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/hotspot?cmd=changeset;node=ec692ec8cf82
author: andrew
date: Thu Oct 02 00:43:17 2014 +0100
Added tag icedtea-2.5.3pre02 for changeset 7ce2690d2182
diffstat:
.hgtags | 1 +
make/bsd/Makefile | 18 +++++++++++-
make/bsd/makefiles/gcc.make | 14 +++++++++
make/bsd/platform_zero.in | 2 +-
make/linux/Makefile | 18 +++++++++++-
make/linux/makefiles/gcc.make | 14 +++++++++
make/linux/platform_zero.in | 2 +-
src/cpu/zero/vm/stack_zero.hpp | 2 +-
src/cpu/zero/vm/stack_zero.inline.hpp | 9 +++--
src/os/bsd/vm/os_bsd.cpp | 8 +++++
src/os/linux/vm/os_linux.cpp | 16 ++++++----
src/os_cpu/bsd_zero/vm/atomic_bsd_zero.inline.hpp | 8 ++++-
src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp | 8 ++++-
src/os_cpu/linux_zero/vm/os_linux_zero.cpp | 10 ++++--
src/share/vm/interpreter/bytecodeInterpreter.cpp | 28 +++++++++++-------
src/share/vm/utilities/macros.hpp | 6 +++-
16 files changed, 129 insertions(+), 35 deletions(-)
diffs (398 lines):
diff -r f5202a835c05 -r ec692ec8cf82 .hgtags
--- a/.hgtags Mon Sep 22 15:44:19 2014 +0100
+++ b/.hgtags Thu Oct 02 00:43:17 2014 +0100
@@ -710,3 +710,4 @@
02066294d005e81a81d3a01ec549716ebcc65723 icedtea-2.5.1
4ad43b271fd439317ec422b5ea35ea3483d40922 icedtea-2.5.2
9f719e4c80af23dc6574df3e431ad85c29a1937d icedtea-2.5.3pre01
+7ce2690d2182cf6643b9860cdd64cc0c7ed72826 icedtea-2.5.3pre02
diff -r f5202a835c05 -r ec692ec8cf82 make/bsd/Makefile
--- a/make/bsd/Makefile Mon Sep 22 15:44:19 2014 +0100
+++ b/make/bsd/Makefile Thu Oct 02 00:43:17 2014 +0100
@@ -282,7 +282,23 @@
$(BUILDTREE) VARIANT=shark VARIANTARCH=$(VARIANTARCH)
platform_zero: $(GAMMADIR)/make/$(OSNAME)/platform_zero.in
- $(SED) 's/@ZERO_ARCHDEF@/$(ZERO_ARCHDEF)/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ifeq ($(ZERO_ARCHDEF),PPC)
+ ifndef LP64
+ $(SED) 's/@ZERO_ARCHDEF@/-DPPC -DPPC32/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ else
+ $(SED) 's/@ZERO_ARCHDEF@/-DPPC -DPPC64/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ endif
+else
+ ifeq ($(ZERO_ARCHDEF),PPC64)
+ $(SED) 's/@ZERO_ARCHDEF@/-DPPC -DPPC64/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ else
+ ifeq ($(ZERO_ARCHDEF),PPC32)
+ $(SED) 's/@ZERO_ARCHDEF@/-DPPC -DPPC32/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ else
+ $(SED) 's/@ZERO_ARCHDEF@/-D$(ZERO_ARCHDEF)/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ endif
+ endif
+endif
# Define INSTALL=y at command line to automatically copy JVM into JAVA_HOME
diff -r f5202a835c05 -r ec692ec8cf82 make/bsd/makefiles/gcc.make
--- a/make/bsd/makefiles/gcc.make Mon Sep 22 15:44:19 2014 +0100
+++ b/make/bsd/makefiles/gcc.make Thu Oct 02 00:43:17 2014 +0100
@@ -137,6 +137,20 @@
# Ineffecient 16-byte stack re-alignment on Darwin/IA32
ARCHFLAG/i486 += -mstackrealign
endif
+# gcc bug http://gcc.gnu.org/PR63341 in ppc code generation requires -fno-tree-vectorize for now
+ARCHFLAG/ppc += -fno-tree-vectorize
+ARCHFLAG/ppc64 += -fno-tree-vectorize
+ifeq ($(TYPE),ZERO)
+ ifeq ($(ZERO_ARCHDEF),PPC)
+ ARCHFLAG/zero += -fno-tree-vectorize
+ endif
+ ifeq ($(ZERO_ARCHDEF),PPC32)
+ ARCHFLAG/zero += -fno-tree-vectorize
+ endif
+ ifeq ($(ZERO_ARCHDEF),PPC64)
+ ARCHFLAG/zero += -fno-tree-vectorize
+ endif
+endif
CFLAGS += $(ARCHFLAG)
AOUT_FLAGS += $(ARCHFLAG)
diff -r f5202a835c05 -r ec692ec8cf82 make/bsd/platform_zero.in
--- a/make/bsd/platform_zero.in Mon Sep 22 15:44:19 2014 +0100
+++ b/make/bsd/platform_zero.in Thu Oct 02 00:43:17 2014 +0100
@@ -14,4 +14,4 @@
gnu_dis_arch = zero
-sysdefs = -D_ALLBSD_SOURCE -D_GNU_SOURCE -DCC_INTERP -DZERO -D at ZERO_ARCHDEF@ -DZERO_LIBARCH=\"@ZERO_LIBARCH@\"
+sysdefs = -D_ALLBSD_SOURCE -D_GNU_SOURCE -DCC_INTERP -DZERO @ZERO_ARCHDEF@ -DZERO_LIBARCH=\"@ZERO_LIBARCH@\"
diff -r f5202a835c05 -r ec692ec8cf82 make/linux/Makefile
--- a/make/linux/Makefile Mon Sep 22 15:44:19 2014 +0100
+++ b/make/linux/Makefile Thu Oct 02 00:43:17 2014 +0100
@@ -286,7 +286,23 @@
$(BUILDTREE) VARIANT=shark VARIANTARCH=$(VARIANTARCH)
platform_zero: $(GAMMADIR)/make/$(OSNAME)/platform_zero.in
- $(SED) 's/@ZERO_ARCHDEF@/$(ZERO_ARCHDEF)/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ifeq ($(ZERO_ARCHDEF),PPC)
+ ifndef LP64
+ $(SED) 's/@ZERO_ARCHDEF@/-DPPC -DPPC32/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ else
+ $(SED) 's/@ZERO_ARCHDEF@/-DPPC -DPPC64/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ endif
+else
+ ifeq ($(ZERO_ARCHDEF),PPC64)
+ $(SED) 's/@ZERO_ARCHDEF@/-DPPC -DPPC64/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ else
+ ifeq ($(ZERO_ARCHDEF),PPC32)
+ $(SED) 's/@ZERO_ARCHDEF@/-DPPC -DPPC32/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ else
+ $(SED) 's/@ZERO_ARCHDEF@/-D$(ZERO_ARCHDEF)/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@
+ endif
+ endif
+endif
# Define INSTALL=y at command line to automatically copy JVM into JAVA_HOME
diff -r f5202a835c05 -r ec692ec8cf82 make/linux/makefiles/gcc.make
--- a/make/linux/makefiles/gcc.make Mon Sep 22 15:44:19 2014 +0100
+++ b/make/linux/makefiles/gcc.make Thu Oct 02 00:43:17 2014 +0100
@@ -106,6 +106,20 @@
ARCHFLAG/ppc = -mcpu=powerpc
endif
ARCHFLAG/ppc64 = -m64
+# gcc bug http://gcc.gnu.org/PR63341 in ppc code generation requires -fno-tree-vectorize for now
+ARCHFLAG/ppc += -fno-tree-vectorize
+ARCHFLAG/ppc64 += -fno-tree-vectorize
+ifeq ($(TYPE),ZERO)
+ ifeq ($(ZERO_ARCHDEF),PPC)
+ ARCHFLAG/zero += -fno-tree-vectorize
+ endif
+ ifeq ($(ZERO_ARCHDEF),PPC32)
+ ARCHFLAG/zero += -fno-tree-vectorize
+ endif
+ ifeq ($(ZERO_ARCHDEF),PPC64)
+ ARCHFLAG/zero += -fno-tree-vectorize
+ endif
+endif
CFLAGS += $(ARCHFLAG)
AOUT_FLAGS += $(ARCHFLAG)
diff -r f5202a835c05 -r ec692ec8cf82 make/linux/platform_zero.in
--- a/make/linux/platform_zero.in Mon Sep 22 15:44:19 2014 +0100
+++ b/make/linux/platform_zero.in Thu Oct 02 00:43:17 2014 +0100
@@ -14,4 +14,4 @@
gnu_dis_arch = zero
-sysdefs = -DLINUX -D_GNU_SOURCE -DCC_INTERP -DZERO -DTARGET_ARCH_NYI_6939861=1 -D at ZERO_ARCHDEF@ -DZERO_LIBARCH=\"@ZERO_LIBARCH@\"
+sysdefs = -DLINUX -D_GNU_SOURCE -DCC_INTERP -DZERO @ZERO_ARCHDEF@ -DZERO_LIBARCH=\"@ZERO_LIBARCH@\"
diff -r f5202a835c05 -r ec692ec8cf82 src/cpu/zero/vm/stack_zero.hpp
--- a/src/cpu/zero/vm/stack_zero.hpp Mon Sep 22 15:44:19 2014 +0100
+++ b/src/cpu/zero/vm/stack_zero.hpp Thu Oct 02 00:43:17 2014 +0100
@@ -99,7 +99,7 @@
int shadow_pages_size() const {
return _shadow_pages_size;
}
- int abi_stack_available(Thread *thread) const;
+ ssize_t abi_stack_available(Thread *thread) const;
public:
void overflow_check(int required_words, TRAPS);
diff -r f5202a835c05 -r ec692ec8cf82 src/cpu/zero/vm/stack_zero.inline.hpp
--- a/src/cpu/zero/vm/stack_zero.inline.hpp Mon Sep 22 15:44:19 2014 +0100
+++ b/src/cpu/zero/vm/stack_zero.inline.hpp Thu Oct 02 00:43:17 2014 +0100
@@ -47,10 +47,11 @@
// This method returns the amount of ABI stack available for us
// to use under normal circumstances. Note that the returned
// value can be negative.
-inline int ZeroStack::abi_stack_available(Thread *thread) const {
- int stack_used = thread->stack_base() - (address) &stack_used;
- int stack_free = thread->stack_size() - stack_used;
- return stack_free - shadow_pages_size();
+inline ssize_t ZeroStack::abi_stack_available(Thread *thread) const {
+ ssize_t stack_used = thread->stack_base() - (address) &stack_used
+ + (StackYellowPages+StackRedPages+StackShadowPages) * os::vm_page_size();
+ ssize_t stack_free = thread->stack_size() - stack_used;
+ return stack_free;
}
#endif // CPU_ZERO_VM_STACK_ZERO_INLINE_HPP
diff -r f5202a835c05 -r ec692ec8cf82 src/os/bsd/vm/os_bsd.cpp
--- a/src/os/bsd/vm/os_bsd.cpp Mon Sep 22 15:44:19 2014 +0100
+++ b/src/os/bsd/vm/os_bsd.cpp Thu Oct 02 00:43:17 2014 +0100
@@ -4758,6 +4758,14 @@
(size_t)(StackYellowPages+StackRedPages+StackShadowPages+
2*BytesPerWord COMPILER2_PRESENT(+1)) * Bsd::page_size());
+#ifdef ZERO
+ // If this is Zero, allow at the very minimum one page each for the
+ // Zero stack and the native stack. This won't make any difference
+ // for 4k pages, but is significant for large pages.
+ os::Bsd::min_stack_allowed = MAX2(os::Bsd::min_stack_allowed,
+ (size_t)(StackYellowPages+StackRedPages+StackShadowPages+2) * Bsd::page_size());
+#endif
+
size_t threadStackSizeInBytes = ThreadStackSize * K;
if (threadStackSizeInBytes != 0 &&
threadStackSizeInBytes < os::Bsd::min_stack_allowed) {
diff -r f5202a835c05 -r ec692ec8cf82 src/os/linux/vm/os_linux.cpp
--- a/src/os/linux/vm/os_linux.cpp Mon Sep 22 15:44:19 2014 +0100
+++ b/src/os/linux/vm/os_linux.cpp Thu Oct 02 00:43:17 2014 +0100
@@ -4905,16 +4905,18 @@
// size. Add a page for compiler2 recursion in main thread.
// Add in 2*BytesPerWord times page size to account for VM stack during
// class initialization depending on 32 or 64 bit VM.
-NOT_ZERO (
os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
(size_t)(StackYellowPages+StackRedPages+StackShadowPages) * Linux::page_size() +
(2*BytesPerWord COMPILER2_PRESENT(+1)) * Linux::vm_default_page_size());
- )
-ZERO_ONLY (
- os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
- (size_t)(StackYellowPages+StackRedPages+StackShadowPages+
- 2*BytesPerWord COMPILER2_PRESENT(+1)) * Linux::page_size());
- )
+
+#ifdef ZERO
+ // If this is Zero, allow at the very minimum one page each for the
+ // Zero stack and the native stack. This won't make any difference
+ // for 4k pages, but is significant for large pages.
+ os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
+ (size_t)(StackYellowPages+StackRedPages+StackShadowPages+2) * Linux::page_size());
+#endif
+
size_t threadStackSizeInBytes = ThreadStackSize * K;
if (threadStackSizeInBytes != 0 &&
threadStackSizeInBytes < os::Linux::min_stack_allowed) {
diff -r f5202a835c05 -r ec692ec8cf82 src/os_cpu/bsd_zero/vm/atomic_bsd_zero.inline.hpp
--- a/src/os_cpu/bsd_zero/vm/atomic_bsd_zero.inline.hpp Mon Sep 22 15:44:19 2014 +0100
+++ b/src/os_cpu/bsd_zero/vm/atomic_bsd_zero.inline.hpp Thu Oct 02 00:43:17 2014 +0100
@@ -239,7 +239,9 @@
// operation. Note that some platforms only support this with the
// limitation that the only valid value to store is the immediate
// constant 1. There is a test for this in JNI_CreateJavaVM().
- return __sync_lock_test_and_set (dest, exchange_value);
+ jint result = __sync_lock_test_and_set (dest, exchange_value);
+ __sync_synchronize();
+ return result;
#endif // M68K
#endif // ARM
}
@@ -252,7 +254,9 @@
#ifdef M68K
return m68k_lock_test_and_set(dest, exchange_value);
#else
- return __sync_lock_test_and_set (dest, exchange_value);
+ intptr_t result = __sync_lock_test_and_set (dest, exchange_value);
+ __sync_synchronize();
+ return result;
#endif // M68K
#endif // ARM
}
diff -r f5202a835c05 -r ec692ec8cf82 src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
--- a/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp Mon Sep 22 15:44:19 2014 +0100
+++ b/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp Thu Oct 02 00:43:17 2014 +0100
@@ -243,7 +243,9 @@
// operation. Note that some platforms only support this with the
// limitation that the only valid value to store is the immediate
// constant 1. There is a test for this in JNI_CreateJavaVM().
- return __sync_lock_test_and_set (dest, exchange_value);
+ jint result = __sync_lock_test_and_set (dest, exchange_value);
+ __sync_synchronize();
+ return result;
#endif // M68K
#endif // ARM
}
@@ -256,7 +258,9 @@
#ifdef M68K
return m68k_lock_test_and_set(dest, exchange_value);
#else
- return __sync_lock_test_and_set (dest, exchange_value);
+ intptr_t result = __sync_lock_test_and_set (dest, exchange_value);
+ __sync_synchronize();
+ return result;
#endif // M68K
#endif // ARM
}
diff -r f5202a835c05 -r ec692ec8cf82 src/os_cpu/linux_zero/vm/os_linux_zero.cpp
--- a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp Mon Sep 22 15:44:19 2014 +0100
+++ b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp Thu Oct 02 00:43:17 2014 +0100
@@ -317,15 +317,15 @@
///////////////////////////////////////////////////////////////////////////////
// thread stack
-#ifndef PPC
-size_t os::Linux::min_stack_allowed = 64 * K;
-#else
+#ifdef PPC
#ifdef _LP64
// Default for 64 bit must be at least 1600 K
size_t os::Linux::min_stack_allowed = 1664 * K;
#else
size_t os::Linux::min_stack_allowed = 1152 * K;
#endif
+#else
+size_t os::Linux::min_stack_allowed = 64 * K;
#endif
bool os::Linux::supports_variable_stack_size() {
@@ -540,3 +540,7 @@
}
};
#endif // !_LP64
+#ifndef PRODUCT
+void os::verify_stack_alignment() {
+}
+#endif
diff -r f5202a835c05 -r ec692ec8cf82 src/share/vm/interpreter/bytecodeInterpreter.cpp
--- a/src/share/vm/interpreter/bytecodeInterpreter.cpp Mon Sep 22 15:44:19 2014 +0100
+++ b/src/share/vm/interpreter/bytecodeInterpreter.cpp Thu Oct 02 00:43:17 2014 +0100
@@ -2100,8 +2100,7 @@
if ( *count_addr > 0 ) {
if ((Bytecodes::Code)opcode == Bytecodes::_putstatic) {
obj = (oop)NULL;
- }
- else {
+ } else {
if (cache->is_long() || cache->is_double()) {
obj = (oop) STACK_OBJECT(-3);
} else {
@@ -2122,7 +2121,7 @@
// QQQ Need to make this as inlined as possible. Probably need to split all the bytecode cases
// out so c++ compiler has a chance for constant prop to fold everything possible away.
- oop obj;
+ oop obj,too;
int count;
TosState tos_type = cache->flag_state();
@@ -2146,8 +2145,9 @@
if (tos_type == itos) {
obj->release_int_field_put(field_offset, STACK_INT(-1));
} else if (tos_type == atos) {
- VERIFY_OOP(STACK_OBJECT(-1));
- obj->release_obj_field_put(field_offset, STACK_OBJECT(-1));
+ too = (oop) STACK_OBJECT(-1);
+ VERIFY_OOP(too);
+ obj->release_obj_field_put(field_offset, too);
} else if (tos_type == btos) {
obj->release_byte_field_put(field_offset, STACK_INT(-1));
} else if (tos_type == ltos) {
@@ -2166,7 +2166,8 @@
if (tos_type == itos) {
obj->int_field_put(field_offset, STACK_INT(-1));
} else if (tos_type == atos) {
- VERIFY_OOP(STACK_OBJECT(-1));
+ too = (oop) STACK_OBJECT(-1);
+ VERIFY_OOP(too);
// On IA64 we perform all stores of references with release semantics.
// This guarantees that everybody using this reference sees a fully
// initialized object. On PPC64 we emit a storestore barrier after
@@ -2292,7 +2293,8 @@
}
CASE(_checkcast):
if (STACK_OBJECT(-1) != NULL) {
- VERIFY_OOP(STACK_OBJECT(-1));
+ oop too = (oop) STACK_OBJECT(-1);
+ VERIFY_OOP(too);
u2 index = Bytes::get_Java_u2(pc+1);
// Constant pool may have actual klass or unresolved klass. If it is
// unresolved we must resolve it.
@@ -2329,7 +2331,8 @@
// Profile instanceof with null_seen and receiver.
BI_PROFILE_UPDATE_INSTANCEOF(/*null_seen=*/true, NULL);
} else {
- VERIFY_OOP(STACK_OBJECT(-1));
+ oop too = (oop) STACK_OBJECT(-1);
+ VERIFY_OOP(too);
u2 index = Bytes::get_Java_u2(pc+1);
// Constant pool may have actual klass or unresolved klass. If it is
// unresolved we must resolve it.
@@ -2558,7 +2561,8 @@
// another compliant java compiler.
if (cache->is_forced_virtual()) {
methodOop callee;
- CHECK_NULL(STACK_OBJECT(-(cache->parameter_size())));
+ oop too = (oop) STACK_OBJECT(-(cache->parameter_size()));
+ CHECK_NULL(too);
if (cache->is_vfinal()) {
callee = cache->f2_as_vfinal_method();
// Profile 'special case of invokeinterface' final call.
@@ -2645,7 +2649,8 @@
{
methodOop callee;
if ((Bytecodes::Code)opcode == Bytecodes::_invokevirtual) {
- CHECK_NULL(STACK_OBJECT(-(cache->parameter_size())));
+ oop too = (oop) STACK_OBJECT(-(cache->parameter_size()));
+ CHECK_NULL(too);
if (cache->is_vfinal()) {
callee = cache->f2_as_vfinal_method();
// Profile final call.
@@ -2684,7 +2689,8 @@
}
} else {
if ((Bytecodes::Code)opcode == Bytecodes::_invokespecial) {
- CHECK_NULL(STACK_OBJECT(-(cache->parameter_size())));
+ oop too = (oop) STACK_OBJECT(-(cache->parameter_size()));
+ CHECK_NULL(too);
}
callee = cache->f1_as_method();
diff -r f5202a835c05 -r ec692ec8cf82 src/share/vm/utilities/macros.hpp
--- a/src/share/vm/utilities/macros.hpp Mon Sep 22 15:44:19 2014 +0100
+++ b/src/share/vm/utilities/macros.hpp Thu Oct 02 00:43:17 2014 +0100
@@ -234,7 +234,11 @@
#define PPC_ONLY(code) code
#define NOT_PPC(code)
#else
-#undef PPC
+
+#ifdef PPC
+#error "PPC is either 32- or 64-bit."
+#endif
+
#define PPC_ONLY(code)
#define NOT_PPC(code) code
#endif
From andrew at icedtea.classpath.org Thu Oct 2 00:07:50 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Thu, 02 Oct 2014 00:07:50 +0000
Subject: /hg/release/icedtea7-forest-2.5/jdk: 4 new changesets
Message-ID:
changeset 9e8ae6ecdbd1 in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=9e8ae6ecdbd1
author: andrew
date: Wed Oct 01 14:52:34 2014 +0100
PR2025: LCMS_CFLAGS & LCMS_LIBS should not be used unless SYSTEM_LCMS is enabled
changeset 9b1a29112ffa in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=9b1a29112ffa
author: andrew
date: Wed Oct 01 14:55:14 2014 +0100
RH1015432: java-1.7.0-openjdk: Fails on PPC with StackOverflowError (revised comprehensive fix)
Contributed-by: chphilli at redhat.com
Summary: Reverse effects of fix for Oracle bug 8013398 on Zero jvm [related fix].
Workaround for gcc bug [ http://gcc.gnu.org/PR63341 Add -fno-tree-vectorize to ppc build.]
found by Andrew Haley aph at redhat.com
jdk/make/common/Defs-linux.gmk
changeset 16dfadea81a1 in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=16dfadea81a1
author: andrew
date: Thu Oct 02 00:45:39 2014 +0100
Bump to 2.5.3pre02
changeset f9b67cec73d2 in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=f9b67cec73d2
author: andrew
date: Thu Oct 02 00:46:45 2014 +0100
Added tag icedtea-2.5.3pre02 for changeset 16dfadea81a1
diffstat:
.hgtags | 1 +
make/common/Defs-linux.gmk | 20 ++++++++++++++++++++
make/jdk_generic_profile.sh | 2 +-
make/sun/cmm/lcms/Makefile | 14 +++++++++-----
4 files changed, 31 insertions(+), 6 deletions(-)
diffs (74 lines):
diff -r 828993403102 -r f9b67cec73d2 .hgtags
--- a/.hgtags Sat Mar 08 01:40:14 2014 +0400
+++ b/.hgtags Thu Oct 02 00:46:45 2014 +0100
@@ -474,3 +474,4 @@
d6d4b6c9f5b48254a6dc1430dee9ee85d7f86b97 icedtea-2.5.1
1e6a8564aa3400fe8f84085c908f55a942d426f0 icedtea-2.5.2
fa4e5dae68e19bdd1f0bac703889a4cf30a59754 icedtea-2.5.3pre01
+16dfadea81a1e00677ba697628177e2d60d5df7f icedtea-2.5.3pre02
diff -r 828993403102 -r f9b67cec73d2 make/common/Defs-linux.gmk
--- a/make/common/Defs-linux.gmk Sat Mar 08 01:40:14 2014 +0400
+++ b/make/common/Defs-linux.gmk Thu Oct 02 00:46:45 2014 +0100
@@ -222,7 +222,27 @@
CFLAGS_REQUIRED += -D_LITTLE_ENDIAN
endif
LDFLAGS_COMMON += $(ZERO_ARCHFLAG)
+ ifeq ($(ZERO_ARCHDEF),PPC)
+# gcc bug http://gcc.gnu.org/PR63341 in ppc code generation requires -fno-tree-vectorize for now
+ ifeq ($(ARCH_DATA_MODEL), 32)
+ CFLAGS_REQUIRED += -DPPC -DPPC32 -fno-tree-vectorize
+ else
+ CFLAGS_REQUIRED += -DPPC -DPPC64 -fno-tree-vectorize
+ endif
+ else
+ ifeq ($(ZERO_ARCHDEF),PPC32)
+ CFLAGS_REQUIRED += -DPPC -DPPC32 -fno-tree-vectorize
+ else
+ ifeq ($(ZERO_ARCHDEF),PPC64)
+ CFLAGS_REQUIRED += -DPPC -DPPC64 -fno-tree-vectorize
+ endif
+ endif
+ endif
else
+# gcc bug http://gcc.gnu.org/PR63341 in ppc code generation requires -fno-tree-vectorize for now
+CFLAGS_REQUIRED_ppc += -fno-tree-vectorize
+CFLAGS_REQUIRED_ppc64 += -fno-tree-vectorize
+#
CFLAGS_REQUIRED = $(CFLAGS_REQUIRED_$(ARCH))
LDFLAGS_COMMON += $(LDFLAGS_COMMON_$(ARCH))
endif
diff -r 828993403102 -r f9b67cec73d2 make/jdk_generic_profile.sh
--- a/make/jdk_generic_profile.sh Sat Mar 08 01:40:14 2014 +0400
+++ b/make/jdk_generic_profile.sh Thu Oct 02 00:46:45 2014 +0100
@@ -625,7 +625,7 @@
# IcedTea versioning
export ICEDTEA_NAME="IcedTea"
-export PACKAGE_VERSION="2.5.3pre01"
+export PACKAGE_VERSION="2.5.3pre02"
export DERIVATIVE_ID="${ICEDTEA_NAME} ${PACKAGE_VERSION}"
echo "Building ${DERIVATIVE_ID}"
diff -r 828993403102 -r f9b67cec73d2 make/sun/cmm/lcms/Makefile
--- a/make/sun/cmm/lcms/Makefile Sat Mar 08 01:40:14 2014 +0400
+++ b/make/sun/cmm/lcms/Makefile Thu Oct 02 00:46:45 2014 +0100
@@ -97,10 +97,14 @@
ifeq ($(PLATFORM), macosx)
OTHER_LDLIBS = $(LIBM) -lawt -L$(LIBDIR)/xawt
else
-OTHER_LDLIBS = $(LIBM) -lawt -L$(LIBDIR)/$(LIBARCH)/xawt $(LCMS_LIBS)
-endif
-CPPFLAGS += -I$(SHARE_SRC)/native/sun/java2d \
- -I$(SHARE_SRC)/native/sun/awt/debug \
- $(LCMS_CFLAGS)
+OTHER_LDLIBS = $(LIBM) -lawt -L$(LIBDIR)/$(LIBARCH)/xawt
endif
+CPPFLAGS += -I$(SHARE_SRC)/native/sun/java2d \
+ -I$(SHARE_SRC)/native/sun/awt/debug
+endif
+
+ifeq ($(SYSTEM_LCMS),true)
+ CPPFLAGS += $(LCMS_CFLAGS)
+ OTHER_LDLIBS += $(LCMS_LIBS)
+endif
From bugzilla-daemon at icedtea.classpath.org Thu Oct 2 00:07:56 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Thu, 02 Oct 2014 00:07:56 +0000
Subject: [Bug 2025] [IcedTea7] LCMS_CFLAGS & LCMS_LIBS should not be used
unless SYSTEM_LCMS is enabled
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2025
--- Comment #3 from hg commits ---
details:
http://icedtea.classpath.org//hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=9e8ae6ecdbd1
author: andrew
date: Wed Oct 01 14:52:34 2014 +0100
PR2025: LCMS_CFLAGS & LCMS_LIBS should not be used unless SYSTEM_LCMS is
enabled
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From bugzilla-daemon at icedtea.classpath.org Thu Oct 2 07:19:13 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Thu, 02 Oct 2014 07:19:13 +0000
Subject: [Bug 2027] New: OpenJDK 64-Bit Server VM (build
1.7.0_55-mockbuild_2014_04_16_12_11-b00) crashed two days in a row
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2027
Bug ID: 2027
Summary: OpenJDK 64-Bit Server VM (build
1.7.0_55-mockbuild_2014_04_16_12_11-b00) crashed two
days in a row
Product: IcedTea
Version: unspecified
Hardware: x86_64
OS: Linux
Status: NEW
Severity: normal
Priority: P5
Component: IcedTea
Assignee: gnu.andrew at redhat.com
Reporter: lichenlc at gmail.com
CC: unassigned at icedtea.classpath.org
Created attachment 1183
--> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=1183&action=edit
hs_error.log for the JVM crash
A Tomcat 7 hosted web application stopped two days in a row due to the same
Open JDK VM crashes.
hs_error.log attached.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From ptisnovs at icedtea.classpath.org Thu Oct 2 07:33:54 2014
From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org)
Date: Thu, 02 Oct 2014 07:33:54 +0000
Subject: /hg/gfx-test: Ten new tests added into CAGOperationsOnTwoOverlap...
Message-ID:
changeset f8df83840d12 in /hg/gfx-test
details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=f8df83840d12
author: Pavel Tisnovsky
date: Thu Oct 02 09:35:08 2014 +0200
Ten new tests added into CAGOperationsOnTwoOverlappingRectangles.
diffstat:
ChangeLog | 5 +
src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingRectangles.java | 250 ++++++++++
2 files changed, 255 insertions(+), 0 deletions(-)
diffs (272 lines):
diff -r ebe990ae1127 -r f8df83840d12 ChangeLog
--- a/ChangeLog Wed Oct 01 10:48:38 2014 +0200
+++ b/ChangeLog Thu Oct 02 09:35:08 2014 +0200
@@ -1,3 +1,8 @@
+2014-10-02 Pavel Tisnovsky
+
+ * src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingRectangles.java:
+ Ten new tests added into CAGOperationsOnTwoOverlappingRectangles.
+
2014-10-01 Pavel Tisnovsky
* src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingRoundRectangles.java:
diff -r ebe990ae1127 -r f8df83840d12 src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingRectangles.java
--- a/src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingRectangles.java Wed Oct 01 10:48:38 2014 +0200
+++ b/src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingRectangles.java Thu Oct 02 09:35:08 2014 +0200
@@ -2432,6 +2432,256 @@
}
/**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping rectangles using union operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testUnionTextureFillUsingRGBTexture1(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingRGBTexture1(image, graphics2d);
+ // create area using union operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRectanglesUsingUnionOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping rectangles using subtract operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testSubtractTextureFillUsingRGBTexture1(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingRGBTexture1(image, graphics2d);
+ // create area using subtract operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRectanglesUsingSubtractOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping rectangles using inverse subtract operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testInverseSubtractTextureFillUsingRGBTexture1(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingRGBTexture1(image, graphics2d);
+ // create area using inverse subtract operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRectanglesUsingInverseSubtractOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping rectangles using Intersect operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testIntersectTextureFillUsingRGBTexture1(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingRGBTexture1(image, graphics2d);
+ // create area using Intersect operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRectanglesUsingIntersectOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping rectangles using Xor operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testXorTextureFillUsingRGBTexture1(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingRGBTexture1(image, graphics2d);
+ // create area using Xor operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRectanglesUsingXorOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping rectangles using union operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testUnionTextureFillUsingRGBTexture2(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingRGBTexture2(image, graphics2d);
+ // create area using union operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRectanglesUsingUnionOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping rectangles using subtract operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testSubtractTextureFillUsingRGBTexture2(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingRGBTexture2(image, graphics2d);
+ // create area using subtract operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRectanglesUsingSubtractOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping rectangles using inverse subtract operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testInverseSubtractTextureFillUsingRGBTexture2(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingRGBTexture2(image, graphics2d);
+ // create area using inverse subtract operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRectanglesUsingInverseSubtractOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping rectangles using Intersect operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testIntersectTextureFillUsingRGBTexture2(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingRGBTexture2(image, graphics2d);
+ // create area using Intersect operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRectanglesUsingIntersectOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping rectangles using Xor operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testXorTextureFillUsingRGBTexture2(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingRGBTexture2(image, graphics2d);
+ // create area using Xor operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRectanglesUsingXorOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
* Entry point to the test suite.
*
* @param args
From gitne at gmx.de Thu Oct 2 16:27:39 2014
From: gitne at gmx.de (Jacob Wisor)
Date: Thu, 02 Oct 2014 18:27:39 +0200
Subject: [rfc][icedtea-web] ResourceTracker Thread Pool Enhancement
In-Reply-To: <1595707600.13469333.1412180808182.JavaMail.zimbra@redhat.com>
References: <1595707600.13469333.1412180808182.JavaMail.zimbra@redhat.com>
Message-ID: <542D7CFB.3060909@gmx.de>
On 10/01/2014 at 06:26 PM, Jie Kang wrote:
> Hello,
>
> This patch replaces the manual thread management system in Resource Tracker with a fixed thread pool using Java's Executor Service class.
>
> The functionality remains the same as before. In terms of testing, using the Performance Test [1], running the reproducers and performing manual testing has shown no regressions.
>
> Thoughts?
>
>
> [1] : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2014-August/028980.html
>
>
> Regards,
Hey, this looks interesting. :-)
I am aware that you have been aiming for identical functionality, so please keep
in mind that this post is more of a discussion than a comment on the code quality.
> + private static final ExecutorService threadPool = Executors.newFixedThreadPool(5);
A constant pool size of 5 seems rather arbitrary. I suppose the most suiting
thread pool scheduler/model in this case would be one that tries to utilize the
CPU(s) most effectively, choosing threads that are most probable to finish
first. The thread pool size should/could probably be calculated based on the
available bandwidth, average resource size, average latency to a resource, and
the number of cores or CPUs. But then, this would also require gathering some
considerable amount of statistical data which seems not feasible for this
purpose. Hmm, I do know, 5 seems as arbitrary as 42. ;-)
Furthermore as I understand (please correct me if am I wrong), the fixed thread
pool does not run queued threads when all slots in the pool are blocked or
waiting, say for example for a response on the network. In this case, which
probably happens a lot, this thread pool does not help much. With many resources
to be download, waiting for the first 5 to complete while others might be
downloading instead, is a zero-sum game.
Also, the positive runtime effects of recycling or reusing existing threads is
negligible in this scenario either. Actually, such an effect is only even
measurable if the threads' average lifetime is below 100 ms and hundreds if not
thousands of threads are to be created per second. So, a thread pool size of 5
and the average lifetime of a thread downloading a resource for about several
ten seconds if not more, has no practical effect on the overall performance.
Again, I know you are just recreating already existing functionality with the
concurrent framework. But, if you do so, you may want to consider improvements
to IcedTea-Web that the concurrent framework might enable.
> - if (threads == 0) {
> - synchronized (prefetchTrackers) {
> - queue.trimToSize(); // these only accessed by threads so no sync needed
> - active.clear(); // no threads so no trackers actively downloading
> - active.trimToSize();
> - prefetchTrackers.trimToSize();
> - }
> + synchronized (prefetchTrackers) {
> + queue.trimToSize(); // these only accessed by threads so no sync needed
> + prefetchTrackers.trimToSize();
> }
A few questions:
1. Why is the ResourceTracker.queue still required if there is a thread pool
managing a queue now? Shouldn't every resource get its own thread to be queued
in the thread pool?
2. Why is ResourceTracker.queue accessed while holding a lock on
ResourceTracker.prefetchTrackers? If access to ResourceTracker.queue does need
to be synchronized, then why not synchronize access to it too?
I hope this helps a bit with thinking. ;-)
Jacob
From bugzilla-daemon at icedtea.classpath.org Thu Oct 2 18:34:38 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Thu, 02 Oct 2014 18:34:38 +0000
Subject: [Bug 2028] New: Fed 19 GNOME 3.8.4 OpenJDK 64 (7.0_65-b17)
Problematic frame: C libjavascriptcoregtk-1.0.so
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2028
Bug ID: 2028
Summary: Fed 19 GNOME 3.8.4 OpenJDK 64 (7.0_65-b17) Problematic
frame: C libjavascriptcoregtk-1.0.so
Product: IcedTea
Version: unspecified
Hardware: x86_64
OS: Linux
Status: NEW
Severity: enhancement
Priority: P5
Component: IcedTea
Assignee: gnu.andrew at redhat.com
Reporter: ipi38482 at gmail.com
CC: unassigned at icedtea.classpath.org
Created attachment 1184
--> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=1184&action=edit
System created error report file + console log from eclipse
Probably best to skip to bottom for the Nitty Gritty
===========================================================================
Primary System Components
Fedora 19 Version 3.8.4 Intel?? Ironlake Mobile 64-bit ntel?? Core??? i5 CPU M 480
@ 2.67GHz ?? 4 Memory Installed 7.5 GiB
===========================================================================
Dev System Components
using Eclipse Java EE IDE for Web Developers.
Version: Luna Service Release 1 (4.4.1)
Build id: 20140925-1800
with ....
Android DDMS 23.0.3.1327240
com.android.ide.eclipse.ddms.feature.feature.group The Android Open Source
Project
Android Development Tools 23.0.3.1327240
com.android.ide.eclipse.adt.feature.feature.group The Android Open Source
Project
Android Hierarchy Viewer 23.0.3.1327240
com.android.ide.eclipse.hierarchyviewer.feature.feature.group The Android
Open Source Project
Android Traceview 23.0.3.1327240
com.android.ide.eclipse.traceview.feature.feature.group The Android Open
Source Project
AngularJS Eclipse 0.5.0.201408281218
angularjs-eclipse-feature.feature.group Angelo ZERR
Apache Deltaspike Tools 1.6.0.CR1-v20140829-2008-B53
org.jboss.tools.cdi.deltaspike.feature.feature.group JBoss by Red Hat
Arquillian support (Experimental) 1.1.2.CR1-v20140830-0003-B63
org.jboss.tools.arquillian.feature.feature.group JBoss by Red Hat
Context and Dependency Injection Tools 1.6.0.CR1-v20140829-2008-B53
org.jboss.tools.cdi.feature.feature.group JBoss by Red Hat
Eclipse Checkstyle Plug-in 5.7.0.201402131929
net.sf.eclipsecs.feature.group http://eclipse-cs.sf.net/
Eclipse IDE for Java EE Developers 4.4.1.20140925-1820 epp.package.jee
null
Eclipse Integration Commons 3.6.0.201407080544-RELEASE
org.springsource.ide.eclipse.commons.feature.group Pivotal Software, Inc.
Embedded nodejs 0.6.0.201409041810
tern.eclipse.ide.server.nodejs.embed.feature.group Angelo ZERR
Extension for EclipseCS Plugin with additional Checks 1.10.0
com.github.sevntu.checkstyle.checks.feature.feature.group null
FindBugs Feature 3.0.0.20140706-2cfb468
edu.umd.cs.findbugs.plugin.eclipse.feature.group FindBugs Project
Forge m2e extension for add-on classifiers 1.1.0.CR1-v20140912-2255-B61
org.jboss.tools.forge.m2e.feature.feature.group JBoss by Red Hat
Forge Tools 1.3.0.CR1-v20140912-2255-B61
org.jboss.tools.forge.feature.feature.group JBoss by Red Hat
Forge Tools Extensions (Experimental) 1.3.0.CR1-v20140912-2255-B61
org.jboss.tools.forge.ext.feature.feature.group JBoss by Red Hat
FreeMarker IDE 1.4.0.CR1-v20140830-0017-B7
org.jboss.ide.eclipse.freemarker.feature.feature.group JBoss by Red Hat
Hibernate Tools 4.0.0.CR1-v20140911-2040-B77
org.hibernate.eclipse.feature.feature.group JBoss by Red Hat
JBoss Archives Tools 3.5.0.CR1-v20140912-0834-B82
org.jboss.ide.eclipse.archives.feature.feature.group JBoss by Red Hat
JBoss BIRT Integration 1.7.0.CR1-v20140830-0003-B12
org.jboss.tools.birt.feature.feature.group JBoss by Red Hat
JBoss Central - UI Themes for Eclipse 1.3.0.CR1-v20140912-1902-B92
org.jboss.tools.central.themes.feature.feature.group JBoss by Red Hat
JBoss Central Community 1.3.0.CR1-v20140912-1902-B92
org.jboss.tools.community.central.feature.feature.group JBoss by Red Hat
JBoss JAX-RS Tools 1.7.0.CR1-v20140911-1803-B60
org.jboss.tools.ws.jaxrs.feature.feature.group JBoss by Red Hat
JBoss Maven CDI Configurator 1.6.0.CR1-v20140912-1902-B92
org.jboss.tools.maven.cdi.feature.feature.group JBoss by Red Hat
JBoss Maven Endorsed Libraries Configurator 1.6.0.CR1-v20140912-1902-B92
org.jboss.tools.maven.jdt.feature.feature.group JBoss by Red Hat
JBoss Maven Hibernate Configurator 1.6.0.CR1-v20140912-1902-B92
org.jboss.tools.maven.hibernate.feature.feature.group JBoss by Red Hat
JBoss Maven Integration 1.6.0.CR1-v20140912-1902-B92
org.jboss.tools.maven.feature.feature.group JBoss by Red Hat
JBoss Maven Portlet Configurator 1.6.0.CR1-v20140912-1902-B92
org.jboss.tools.maven.portlet.feature.feature.group JBoss by Red Hat
JBoss Maven Project Examples 2.0.0.CR1-v20140912-1902-B92
org.jboss.tools.maven.project.examples.feature.feature.group JBoss by Red
Hat
JBoss Maven Seam Integration 1.6.0.CR1-v20140912-1902-B92
org.jboss.tools.maven.seam.feature.feature.group JBoss by Red Hat
JBoss OpenShift Tools 2.6.0.CR1-v20140913-0257-B52
org.jboss.tools.openshift.express.feature.feature.group JBoss by Red Hat
JBoss Portlet 1.6.0.CR1-v20140830-0005-B15
org.jboss.tools.portlet.feature.feature.group JBoss by Red Hat
JBoss Runtime Detection Core 3.0.0.CR1-v20140829-2038-B51
org.jboss.tools.runtime.core.feature.feature.group JBoss by Red Hat
JBoss Runtime Seam Detector 3.6.0.CR1-v20140829-2008-B53
org.jboss.tools.runtime.seam.detector.feature.feature.group JBoss by Red Hat
JBoss Stacks Tools 1.1.0.CR1-v20140829-2038-B51
org.jboss.tools.stacks.core.feature.feature.group JBoss by Red Hat
JBoss Tools Apache Cordova Simulator 3.6.0.CR1-v20140905-2056-B55
org.jboss.tools.vpe.cordovasim.feature.feature.group JBoss by Red Hat
JBoss Tools Apache Tomcat Integration 1.1.0.CR1-v20140912-0834-B82
org.jboss.tools.wtp.runtimes.tomcat.feature.feature.group JBoss by Red Hat
JBoss Tools Common - Mylyn 3.6.0.CR1-v20140829-2038-B51
org.jboss.tools.common.mylyn.feature.feature.group JBoss by Red Hat
JBoss Tools Community Project Examples 2.0.0.CR1-v20140912-1902-B92
org.jboss.tools.community.project.examples.feature.feature.group JBoss by
Red Hat
JBoss Tools Eclipse Thym Integration 1.2.0.CR1-v20140905-2056-B55
org.jboss.tools.aerogear.thym.feature.feature.group JBoss by Red Hat
JBoss Tools EGit Integration 2.6.0.CR1-v20140913-0257-B52
org.jboss.tools.openshift.egit.integration.feature.feature.group JBoss by
Red Hat
JBoss Tools Foundation 1.1.0.CR1-v20140829-2038-B51
org.jboss.tools.foundation.feature.feature.group JBoss by Red Hat
JBoss Tools Foundation Security for Linux 1.1.0.CR1-v20140829-2038-B51
org.jboss.tools.foundation.security.linux.feature.feature.group JBoss by Red
Hat
JBoss Tools Java Standard Tools 3.6.0.CR1-v20140911-2133-B68
org.jboss.tools.jst.feature.feature.group JBoss by Red Hat
JBoss Tools Java Standard Tools AngularJS 3.6.0.CR1-v20140911-2133-B68
org.jboss.tools.jst.angularjs.feature.feature.group JBoss by Red Hat
JBoss Tools Java Standard Tools Tern.java Adapter
3.6.0.CR1-v20140911-2133-B68 org.jboss.tools.jst.jsdt.feature.feature.group
JBoss by Red Hat
JBoss Tools JDT Extensions 3.6.0.CR1-v20140829-2038-B51
org.jboss.tools.common.jdt.feature.feature.group JBoss by Red Hat
JBoss Tools JSF 3.6.0.CR1-v20140829-2008-B53
org.jboss.tools.jsf.feature.feature.group JBoss by Red Hat
JBoss Tools LiveReload 1.2.0.CR1-v20140829-1424-B61
org.jboss.tools.livereload.feature.feature.group JBoss by Red Hat
JBoss Tools Maven Packaging Configurator 1.6.0.CR1-v20140912-1902-B92
org.jboss.tools.maven.jbosspackaging.feature.feature.group JBoss by Red Hat
JBoss Tools Maven Source Lookup 1.6.0.CR1-v20140912-1902-B92
org.jboss.tools.maven.sourcelookup.feature.feature.group JBoss by Red Hat
JBoss Tools Mobile Browser Simulator 3.6.0.CR1-v20140829-1847-B20
org.jboss.tools.vpe.browsersim.feature.feature.group JBoss by Red Hat
JBoss Tools RichFaces 3.6.0.CR1-v20140829-2008-B53
org.jboss.tools.richfaces.feature.feature.group JBoss by Red Hat
JBoss Tools Usage Reporting 2.0.0.CR1-v20140829-2038-B51
org.jboss.tools.usage.feature.feature.group JBoss by Red Hat
JBoss Tools Visual Page Editor 3.6.0.CR1-v20140913-0332-B66
org.jboss.tools.vpe.feature.feature.group JBoss by Red Hat
JBoss WebServices Tools 1.7.0.CR1-v20140911-1803-B60
org.jboss.tools.ws.feature.feature.group JBoss by Red Hat
JBossAS Tools 3.0.0.CR1-v20140912-0834-B82
org.jboss.ide.eclipse.as.feature.feature.group JBoss by Red Hat
JMX Console 1.6.0.CR1-v20140912-0834-B82
org.jboss.tools.jmx.feature.feature.group JBoss by Red Hat
Maven Integration for Eclipse JDT APT 1.1.0.201405210909
org.jboss.tools.maven.apt.feature.feature.group JBoss, by Red Hat
MonjaDBFeature 1.0.16 net.jumperz.app.MMonjaDB.feature.group
JUMPERZ.NET
Project Examples 2.0.0.CR1-v20140912-1902-B92
org.jboss.tools.project.examples.feature.feature.group JBoss by Red Hat
Seam 3 Tools 1.6.0.CR1-v20140829-2008-B53
org.jboss.tools.cdi.seam.feature.feature.group JBoss by Red Hat
Seam Tools 3.6.0.CR1-v20140829-2008-B53
org.jboss.tools.seam.feature.feature.group JBoss by Red Hat
Spring IDE AJDT Integration (optional) 3.6.0.201407080615-RELEASE
org.springframework.ide.eclipse.ajdt.feature.feature.group Spring IDE
Developers
Spring IDE AOP Extension (optional) 3.6.0.201407080615-RELEASE
org.springframework.ide.eclipse.aop.feature.feature.group Spring IDE
Developers
Spring IDE Autowire Extension (optional) 3.6.0.201407080615-RELEASE
org.springframework.ide.eclipse.autowire.feature.feature.group Spring IDE
Developers
Spring IDE Batch Extension (optional) 3.6.0.201407080615-RELEASE
org.springframework.ide.eclipse.batch.feature.feature.group Spring IDE
Developers
Spring IDE Core (required) 3.6.0.201407080615-RELEASE
org.springframework.ide.eclipse.feature.feature.group Spring IDE Developers
Spring IDE Integration, Flex and Web Services Extension (optional)
3.6.0.201407080615-RELEASE
org.springframework.ide.eclipse.integration.feature.feature.group Spring IDE
Developers
Spring IDE Maven Support 3.6.0.201407080615-RELEASE
org.springframework.ide.eclipse.maven.feature.feature.group Spring IDE
Developers
Spring IDE Mylyn Integration (optional) 3.6.0.201407080615-RELEASE
org.springframework.ide.eclipse.mylyn.feature.feature.group Spring IDE
Developers
Spring IDE OSGi Extension (optional) 3.6.0.201407080615-RELEASE
org.springframework.ide.eclipse.osgi.feature.feature.group Spring IDE
Developers
Spring IDE Security Extension (optional) 3.6.0.201407080615-RELEASE
org.springframework.ide.eclipse.security.feature.feature.group Spring IDE
Developers
Spring IDE Spring Data Support 3.6.0.201407080615-RELEASE
org.springframework.ide.eclipse.data.feature.feature.group Spring IDE
Developers
Spring IDE Web Flow Extension (optional) 3.6.0.201407080615-RELEASE
org.springframework.ide.eclipse.webflow.feature.feature.group Spring IDE
Developers
Tern Eclipse IDE tools feature 0.6.0.201409041810
tern.eclipse.ide.tools.feature.feature.group Angelo ZERR
Tern feature 0.6.0.201409041810 tern-feature.feature.group Angelo
ZERR
Tern JSDT feature 0.6.0.201409041810 tern-jsdt-feature.feature.group
Angelo ZERR
Tern server node.js feature 0.6.0.201409041810
tern-server-nodejs-feature.feature.group Angelo ZERR
Tracer for OpenGL ES 23.0.3.1327240
com.android.ide.eclipse.gldebugger.feature.feature.group The Android Open
Source Project
===========================================================================
What I was doing ....
Generated Ionic cordova Angular app externally ....imported it into Eclipse
Jboss tools made a few mods (just Templates) then deleted some plugins from
Ionic part of project (as had been suggested by Youtube mentor (prior to
importing) This was a tabbed template project!)
Then started cordova simulator ...clicked on each icon on the mobile image ...
seemed to be ok then had a massive amount of info generated into the log.
A suggestion in the log said to report to bugzilla. So I joined and here is the
info. Attached output console log from JBOSS plus the other file that was saved
to temp folder.
regards hope this helps
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From bugzilla-daemon at icedtea.classpath.org Thu Oct 2 19:48:38 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Thu, 02 Oct 2014 19:48:38 +0000
Subject: [Bug 2028] Fed 19 GNOME 3.8.4 OpenJDK 64 (7.0_65-b17) Problematic
frame: C libjavascriptcoregtk-1.0.so
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2028
Andrew John Hughes changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Version|unspecified |7-hg
Resolution|--- |INVALID
--- Comment #1 from Andrew John Hughes ---
This is a crash in native code used by Eclipse, not OpenJDK. I suggest you
report the issue to them.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From andrew at icedtea.classpath.org Thu Oct 2 21:51:17 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Thu, 02 Oct 2014 21:51:17 +0000
Subject: /hg/icedtea6: S7122142: (ann) Race condition between isAnnotatio...
Message-ID:
changeset 251d55dd9268 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=251d55dd9268
author: Andrew John Hughes
date: Thu Oct 02 22:50:54 2014 +0100
S7122142: (ann) Race condition between isAnnotationPresent and getAnnotations
2014-10-02 Andrew John Hughes
* Makefile.am:
(ICEDTEA_PATCHES): Add new patch.
* NEWS: Updated.
* patches/openjdk/7122142-annotation_race_condition.patch:
Backport fix for annotation race condition.
diffstat:
ChangeLog | 8 +
Makefile.am | 3 +-
NEWS | 1 +
patches/openjdk/7122142-annotation_race_condition.patch | 1953 +++++++++++++++
4 files changed, 1964 insertions(+), 1 deletions(-)
diffs (truncated from 1996 to 500 lines):
diff -r b83d551f7874 -r 251d55dd9268 ChangeLog
--- a/ChangeLog Wed Jul 30 17:26:41 2014 +0100
+++ b/ChangeLog Thu Oct 02 22:50:54 2014 +0100
@@ -1,3 +1,11 @@
+2014-10-02 Andrew John Hughes
+
+ * Makefile.am:
+ (ICEDTEA_PATCHES): Add new patch.
+ * NEWS: Updated.
+ * patches/openjdk/7122142-annotation_race_condition.patch:
+ Backport fix for annotation race condition.
+
2014-07-30 Andrew John Hughes
PR1886: IcedTea does not checksum supplied tarballs
diff -r b83d551f7874 -r 251d55dd9268 Makefile.am
--- a/Makefile.am Wed Jul 30 17:26:41 2014 +0100
+++ b/Makefile.am Thu Oct 02 22:50:54 2014 +0100
@@ -617,7 +617,8 @@
patches/openjdk/6611637-npe_in_glyphlayout.patch \
patches/openjdk/6727719-performance_of_textlayout_getbounds.patch \
patches/openjdk/6745225-memory_leak_in_attributed_string.patch \
- patches/openjdk/oj639-handle_fonts_with_no_canon_flag_set.patch
+ patches/openjdk/oj639-handle_fonts_with_no_canon_flag_set.patch \
+ patches/openjdk/7122142-annotation_race_condition.patch
if WITH_RHINO
ICEDTEA_PATCHES += \
diff -r b83d551f7874 -r 251d55dd9268 NEWS
--- a/NEWS Wed Jul 30 17:26:41 2014 +0100
+++ b/NEWS Thu Oct 02 22:50:54 2014 +0100
@@ -19,6 +19,7 @@
- S6727719: Performance of TextLayout.getBounds()
- S6745225: Memory leak while drawing Attributed String
- S6904962: GlyphVector.getVisualBounds should not be affected by leading or trailing white space.
+ - S7122142: (ann) Race condition between isAnnotationPresent and getAnnotations
- S7151089: PS NUMA: NUMA allocator should not attempt to free pages when using SHM large pages
- S8013057: Detect mmap() commit failures in Linux and Solaris os::commit_memory() impls and call vm_exit_out_of_memory()
- S8026887: Make issues due to failed large pages allocations easier to debug
diff -r b83d551f7874 -r 251d55dd9268 patches/openjdk/7122142-annotation_race_condition.patch
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/openjdk/7122142-annotation_race_condition.patch Thu Oct 02 22:50:54 2014 +0100
@@ -0,0 +1,1953 @@
+diff -r d1f592073a0e src/share/classes/java/lang/Class.java
+--- openjdk/jdk/src/share/classes/java/lang/Class.java Fri Sep 12 22:39:32 2014 +0100
++++ openjdk/jdk/src/share/classes/java/lang/Class.java Thu Oct 02 20:18:56 2014 +0100
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 1994, 2012, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 1994, 2014, 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
+@@ -271,7 +271,7 @@
+ }
+
+ /** Called after security checks have been made. */
+- private static native Class forName0(String name, boolean initialize,
++ private static native Class> forName0(String name, boolean initialize,
+ ClassLoader loader)
+ throws ClassNotFoundException;
+
+@@ -341,15 +341,15 @@
+ );
+ }
+ try {
+- Class[] empty = {};
++ Class>[] empty = {};
+ final Constructor c = getConstructor0(empty, Member.DECLARED);
+ // Disable accessibility checks on the constructor
+ // since we have to do the security check here anyway
+ // (the stack depth is wrong for the Constructor's
+ // security check to work)
+- java.security.AccessController.doPrivileged
+- (new java.security.PrivilegedAction() {
+- public Object run() {
++ java.security.AccessController.doPrivileged(
++ new java.security.PrivilegedAction() {
++ public Void run() {
+ c.setAccessible(true);
+ return null;
+ }
+@@ -379,7 +379,7 @@
+ }
+ }
+ private volatile transient Constructor cachedConstructor;
+- private volatile transient Class newInstanceCallerCache;
++ private volatile transient Class> newInstanceCallerCache;
+
+
+ /**
+@@ -637,7 +637,7 @@
+ if (getGenericSignature() != null)
+ return (TypeVariable>[])getGenericInfo().getTypeParameters();
+ else
+- return (TypeVariable>[])new TypeVariable[0];
++ return (TypeVariable>[])new TypeVariable>[0];
+ }
+
+
+@@ -901,7 +901,7 @@
+
+ MethodRepository typeInfo = MethodRepository.make(enclosingInfo.getDescriptor(),
+ getFactory());
+- Class returnType = toClass(typeInfo.getReturnType());
++ Class> returnType = toClass(typeInfo.getReturnType());
+ Type [] parameterTypes = typeInfo.getParameterTypes();
+ Class>[] parameterClasses = new Class>[parameterTypes.length];
+
+@@ -1005,12 +1005,12 @@
+
+ }
+
+- private static Class toClass(Type o) {
++ private static Class> toClass(Type o) {
+ if (o instanceof GenericArrayType)
+ return Array.newInstance(toClass(((GenericArrayType)o).getGenericComponentType()),
+ 0)
+ .getClass();
+- return (Class)o;
++ return (Class>)o;
+ }
+
+ /**
+@@ -1340,13 +1340,13 @@
+ // out anything other than public members and (2) public member access
+ // has already been ok'd by the SecurityManager.
+
+- Class[] result = (Class[]) java.security.AccessController.doPrivileged
+- (new java.security.PrivilegedAction() {
+- public Object run() {
+- java.util.List list = new java.util.ArrayList();
+- Class currentClass = Class.this;
++ return java.security.AccessController.doPrivileged(
++ new java.security.PrivilegedAction[]>() {
++ public Class[] run() {
++ List> list = new ArrayList>();
++ Class> currentClass = Class.this;
+ while (currentClass != null) {
+- Class[] members = currentClass.getDeclaredClasses();
++ Class>[] members = currentClass.getDeclaredClasses();
+ for (int i = 0; i < members.length; i++) {
+ if (Modifier.isPublic(members[i].getModifiers())) {
+ list.add(members[i]);
+@@ -1354,12 +1354,9 @@
+ }
+ currentClass = currentClass.getSuperclass();
+ }
+- Class[] empty = {};
+- return list.toArray(empty);
++ return list.toArray(new Class[0]);
+ }
+ });
+-
+- return result;
+ }
+
+
+@@ -2283,7 +2280,7 @@
+ return name;
+ }
+ if (!name.startsWith("/")) {
+- Class c = this;
++ Class> c = this;
+ while (c.isArray()) {
+ c = c.getComponentType();
+ }
+@@ -2300,44 +2297,111 @@
+ }
+
+ /**
++ * Atomic operations support.
++ */
++ private static class Atomic {
++ // initialize Unsafe machinery here, since we need to call Class.class instance method
++ // and have to avoid calling it in the static initializer of the Class class...
++ private static final Unsafe unsafe = Unsafe.getUnsafe();
++ // offset of Class.reflectionData instance field
++ private static final long reflectionDataOffset;
++ // offset of Class.annotationType instance field
++ private static final long annotationTypeOffset;
++
++ static {
++ Field[] fields = Class.class.getDeclaredFields0(false); // bypass caches
++ reflectionDataOffset = objectFieldOffset(fields, "reflectionData");
++ annotationTypeOffset = objectFieldOffset(fields, "annotationType");
++ }
++
++ private static long objectFieldOffset(Field[] fields, String fieldName) {
++ Field field = searchFields(fields, fieldName);
++ if (field == null) {
++ throw new Error("No " + fieldName + " field found in java.lang.Class");
++ }
++ return unsafe.objectFieldOffset(field);
++ }
++
++ static boolean casReflectionData(Class> clazz,
++ SoftReference> oldData,
++ SoftReference> newData) {
++ return unsafe.compareAndSwapObject(clazz, reflectionDataOffset, oldData, newData);
++ }
++
++ static boolean casAnnotationType(Class> clazz,
++ AnnotationType oldType,
++ AnnotationType newType) {
++ return unsafe.compareAndSwapObject(clazz, annotationTypeOffset, oldType, newType);
++ }
++ }
++
++ /**
+ * Reflection support.
+ */
+
+ // Caches for certain reflective results
+ private static boolean useCaches = true;
+- private volatile transient SoftReference declaredFields;
+- private volatile transient SoftReference publicFields;
+- private volatile transient SoftReference declaredMethods;
+- private volatile transient SoftReference publicMethods;
+- private volatile transient SoftReference declaredConstructors;
+- private volatile transient SoftReference publicConstructors;
+- // Intermediate results for getFields and getMethods
+- private volatile transient SoftReference declaredPublicFields;
+- private volatile transient SoftReference declaredPublicMethods;
++
++ // reflection data that might get invalidated when JVM TI RedefineClasses() is called
++ static class ReflectionData {
++ volatile Field[] declaredFields;
++ volatile Field[] publicFields;
++ volatile Method[] declaredMethods;
++ volatile Method[] publicMethods;
++ volatile Constructor[] declaredConstructors;
++ volatile Constructor[] publicConstructors;
++ // Intermediate results for getFields and getMethods
++ volatile Field[] declaredPublicFields;
++ volatile Method[] declaredPublicMethods;
++ // Value of classRedefinedCount when we created this ReflectionData instance
++ final int redefinedCount;
++
++ ReflectionData(int redefinedCount) {
++ this.redefinedCount = redefinedCount;
++ }
++ }
++
++ private volatile transient SoftReference> reflectionData;
+
+ // Incremented by the VM on each call to JVM TI RedefineClasses()
+ // that redefines this class or a superclass.
+ private volatile transient int classRedefinedCount = 0;
+
+- // Value of classRedefinedCount when we last cleared the cached values
+- // that are sensitive to class redefinition.
+- private volatile transient int lastRedefinedCount = 0;
++ // Lazily create and cache ReflectionData
++ private ReflectionData reflectionData() {
++ SoftReference> reflectionData = this.reflectionData;
++ int classRedefinedCount = this.classRedefinedCount;
++ ReflectionData rd;
++ if (useCaches &&
++ reflectionData != null &&
++ (rd = reflectionData.get()) != null &&
++ rd.redefinedCount == classRedefinedCount) {
++ return rd;
++ }
++ // else no SoftReference or cleared SoftReference or stale ReflectionData
++ // -> create and replace new instance
++ return newReflectionData(reflectionData, classRedefinedCount);
++ }
+
+- // Clears cached values that might possibly have been obsoleted by
+- // a class redefinition.
+- private void clearCachesOnClassRedefinition() {
+- if (lastRedefinedCount != classRedefinedCount) {
+- declaredFields = publicFields = declaredPublicFields = null;
+- declaredMethods = publicMethods = declaredPublicMethods = null;
+- declaredConstructors = publicConstructors = null;
+- annotations = declaredAnnotations = null;
++ private ReflectionData newReflectionData(SoftReference> oldReflectionData,
++ int classRedefinedCount) {
++ if (!useCaches) return null;
+
+- // Use of "volatile" (and synchronization by caller in the case
+- // of annotations) ensures that no thread sees the update to
+- // lastRedefinedCount before seeing the caches cleared.
+- // We do not guard against brief windows during which multiple
+- // threads might redundantly work to fill an empty cache.
+- lastRedefinedCount = classRedefinedCount;
++ while (true) {
++ ReflectionData rd = new ReflectionData(classRedefinedCount);
++ // try to CAS it...
++ if (Atomic.casReflectionData(this, oldReflectionData,
++ new SoftReference>(rd))) {
++ return rd;
++ }
++ // else retry
++ oldReflectionData = this.reflectionData;
++ classRedefinedCount = this.classRedefinedCount;
++ if (oldReflectionData != null &&
++ (rd = oldReflectionData.get()) != null &&
++ rd.redefinedCount == classRedefinedCount) {
++ return rd;
++ }
+ }
+ }
+
+@@ -2365,7 +2429,7 @@
+ }
+
+ // Annotations handling
+- private native byte[] getRawAnnotations();
++ native byte[] getRawAnnotations();
+
+ native ConstantPool getConstantPool();
+
+@@ -2380,27 +2444,19 @@
+ // via ReflectionFactory.copyField.
+ private Field[] privateGetDeclaredFields(boolean publicOnly) {
+ checkInitted();
+- Field[] res = null;
+- if (useCaches) {
+- clearCachesOnClassRedefinition();
+- if (publicOnly) {
+- if (declaredPublicFields != null) {
+- res = (Field[]) declaredPublicFields.get();
+- }
+- } else {
+- if (declaredFields != null) {
+- res = (Field[]) declaredFields.get();
+- }
+- }
++ Field[] res;
++ ReflectionData rd = reflectionData();
++ if (rd != null) {
++ res = publicOnly ? rd.declaredPublicFields : rd.declaredFields;
+ if (res != null) return res;
+ }
+ // No cached value available; request value from VM
+ res = Reflection.filterFields(this, getDeclaredFields0(publicOnly));
+- if (useCaches) {
++ if (rd != null) {
+ if (publicOnly) {
+- declaredPublicFields = new SoftReference(res);
++ rd.declaredPublicFields = res;
+ } else {
+- declaredFields = new SoftReference(res);
++ rd.declaredFields = res;
+ }
+ }
+ return res;
+@@ -2409,22 +2465,20 @@
+ // Returns an array of "root" fields. These Field objects must NOT
+ // be propagated to the outside world, but must instead be copied
+ // via ReflectionFactory.copyField.
+- private Field[] privateGetPublicFields(Set traversedInterfaces) {
++ private Field[] privateGetPublicFields(Set> traversedInterfaces) {
+ checkInitted();
+- Field[] res = null;
+- if (useCaches) {
+- clearCachesOnClassRedefinition();
+- if (publicFields != null) {
+- res = (Field[]) publicFields.get();
+- }
++ Field[] res;
++ ReflectionData rd = reflectionData();
++ if (rd != null) {
++ res = rd.publicFields;
+ if (res != null) return res;
+ }
+
+ // No cached value available; compute value recursively.
+ // Traverse in correct order for getField().
+- List fields = new ArrayList();
++ List fields = new ArrayList();
+ if (traversedInterfaces == null) {
+- traversedInterfaces = new HashSet();
++ traversedInterfaces = new HashSet>();
+ }
+
+ // Local fields
+@@ -2432,9 +2486,7 @@
+ addAll(fields, tmp);
+
+ // Direct superinterfaces, recursively
+- Class[] interfaces = getInterfaces();
+- for (int i = 0; i < interfaces.length; i++) {
+- Class c = interfaces[i];
++ for (Class> c : getInterfaces()) {
+ if (!traversedInterfaces.contains(c)) {
+ traversedInterfaces.add(c);
+ addAll(fields, c.privateGetPublicFields(traversedInterfaces));
+@@ -2443,7 +2495,7 @@
+
+ // Direct superclass, recursively
+ if (!isInterface()) {
+- Class c = getSuperclass();
++ Class> c = getSuperclass();
+ if (c != null) {
+ addAll(fields, c.privateGetPublicFields(traversedInterfaces));
+ }
+@@ -2451,13 +2503,13 @@
+
+ res = new Field[fields.size()];
+ fields.toArray(res);
+- if (useCaches) {
+- publicFields = new SoftReference(res);
++ if (rd != null) {
++ rd.publicFields = res;
+ }
+ return res;
+ }
+
+- private static void addAll(Collection c, Field[] o) {
++ private static void addAll(Collection c, Field[] o) {
+ for (int i = 0; i < o.length; i++) {
+ c.add(o[i]);
+ }
+@@ -2473,20 +2525,12 @@
+ // Returns an array of "root" constructors. These Constructor
+ // objects must NOT be propagated to the outside world, but must
+ // instead be copied via ReflectionFactory.copyConstructor.
+- private Constructor[] privateGetDeclaredConstructors(boolean publicOnly) {
++ private Constructor[] privateGetDeclaredConstructors(boolean publicOnly) {
+ checkInitted();
+- Constructor[] res = null;
+- if (useCaches) {
+- clearCachesOnClassRedefinition();
+- if (publicOnly) {
+- if (publicConstructors != null) {
+- res = (Constructor[]) publicConstructors.get();
+- }
+- } else {
+- if (declaredConstructors != null) {
+- res = (Constructor[]) declaredConstructors.get();
+- }
+- }
++ Constructor[] res;
++ ReflectionData rd = reflectionData();
++ if (rd != null) {
++ res = publicOnly ? rd.publicConstructors : rd.declaredConstructors;
+ if (res != null) return res;
+ }
+ // No cached value available; request value from VM
+@@ -2495,11 +2539,11 @@
+ } else {
+ res = getDeclaredConstructors0(publicOnly);
+ }
+- if (useCaches) {
++ if (rd != null) {
+ if (publicOnly) {
+- publicConstructors = new SoftReference(res);
++ rd.publicConstructors = res;
+ } else {
+- declaredConstructors = new SoftReference(res);
++ rd.declaredConstructors = res;
+ }
+ }
+ return res;
+@@ -2516,27 +2560,19 @@
+ // via ReflectionFactory.copyMethod.
+ private Method[] privateGetDeclaredMethods(boolean publicOnly) {
+ checkInitted();
+- Method[] res = null;
+- if (useCaches) {
+- clearCachesOnClassRedefinition();
+- if (publicOnly) {
+- if (declaredPublicMethods != null) {
+- res = (Method[]) declaredPublicMethods.get();
+- }
+- } else {
+- if (declaredMethods != null) {
+- res = (Method[]) declaredMethods.get();
+- }
+- }
++ Method[] res;
++ ReflectionData rd = reflectionData();
++ if (rd != null) {
++ res = publicOnly ? rd.declaredPublicMethods : rd.declaredMethods;
+ if (res != null) return res;
+ }
+ // No cached value available; request value from VM
+ res = Reflection.filterMethods(this, getDeclaredMethods0(publicOnly));
+- if (useCaches) {
++ if (rd != null) {
+ if (publicOnly) {
+- declaredPublicMethods = new SoftReference(res);
++ rd.declaredPublicMethods = res;
+ } else {
+- declaredMethods = new SoftReference(res);
++ rd.declaredMethods = res;
+ }
+ }
+ return res;
+@@ -2638,12 +2674,10 @@
+ // via ReflectionFactory.copyMethod.
+ private Method[] privateGetPublicMethods() {
+ checkInitted();
+- Method[] res = null;
+- if (useCaches) {
+- clearCachesOnClassRedefinition();
+- if (publicMethods != null) {
From ptisnovs at icedtea.classpath.org Fri Oct 3 10:22:51 2014
From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org)
Date: Fri, 03 Oct 2014 10:22:51 +0000
Subject: /hg/gfx-test: Ten new tests added into CAGOperationsOnTwoOverlap...
Message-ID:
changeset 28177aae9be2 in /hg/gfx-test
details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=28177aae9be2
author: Pavel Tisnovsky
date: Fri Oct 03 12:24:06 2014 +0200
Ten new tests added into CAGOperationsOnTwoOverlappingCircles.
diffstat:
ChangeLog | 5 +
src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingCircles.java | 240 +++++++++-
2 files changed, 244 insertions(+), 1 deletions(-)
diffs (269 lines):
diff -r f8df83840d12 -r 28177aae9be2 ChangeLog
--- a/ChangeLog Thu Oct 02 09:35:08 2014 +0200
+++ b/ChangeLog Fri Oct 03 12:24:06 2014 +0200
@@ -1,3 +1,8 @@
+2014-10-03 Pavel Tisnovsky
+
+ * src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingCircles.java:
+ Ten new tests added into CAGOperationsOnTwoOverlappingCircles.
+
2014-10-02 Pavel Tisnovsky
* src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingRectangles.java:
diff -r f8df83840d12 -r 28177aae9be2 src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingCircles.java
--- a/src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingCircles.java Thu Oct 02 09:35:08 2014 +0200
+++ b/src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingCircles.java Fri Oct 03 12:24:06 2014 +0200
@@ -2018,6 +2018,245 @@
* graphics canvas
* @return test result status - PASSED, FAILED or ERROR
*/
+ public TestResult testIntersectTextureFillUsingHorizontalColorStripesTexture(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingHorizontalColorStripesTexture(image, graphics2d);
+ // create area using Intersect operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingCirclesUsingIntersectOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping circles using Xor operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testXorTextureFillUsingHorizontalColorStripesTexture(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingHorizontalColorStripesTexture(image, graphics2d);
+ // create area using Xor operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingCirclesUsingXorOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping circles using union operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testUnionTextureFillUsingVerticalColorStripesTexture(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingVerticalColorStripesTexture(image, graphics2d);
+ // create area using union operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingCirclesUsingUnionOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping circles using subtract operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testSubtractTextureFillUsingVerticalColorStripesTexture(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingVerticalColorStripesTexture(image, graphics2d);
+ // create area using subtract operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingCirclesUsingSubtractOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping circles using inverse subtract operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testInverseSubtractTextureFillUsingVerticalColorStripesTexture(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingVerticalColorStripesTexture(image, graphics2d);
+ // create area using inverse subtract operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingCirclesUsingInverseSubtractOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping circles using Intersect operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testIntersectTextureFillUsingVerticalColorStripesTexture(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingVerticalColorStripesTexture(image, graphics2d);
+ // create area using Intersect operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingCirclesUsingIntersectOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping circles using Xor operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testXorTextureFillUsingVerticalColorStripesTexture(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingVerticalColorStripesTexture(image, graphics2d);
+ // create area using Xor operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingCirclesUsingXorOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping circles using union operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testUnionTextureFillUsingDiagonalStripesTexture(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingDiagonalStripesTexture(image, graphics2d);
+ // create area using union operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingCirclesUsingUnionOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping circles using subtract operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testSubtractTextureFillUsingDiagonalStripesTexture(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingDiagonalStripesTexture(image, graphics2d);
+ // create area using subtract operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingCirclesUsingSubtractOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping circles using inverse subtract operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testInverseSubtractTextureFillUsingDiagonalStripesTexture(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingDiagonalStripesTexture(image, graphics2d);
+ // create area using inverse subtract operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingCirclesUsingInverseSubtractOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
public TestResult testIntersectTextureFillUsingRGBTexture6(TestImage image, Graphics2D graphics2d)
{
// set stroke color
@@ -2057,7 +2296,6 @@
return TestResult.PASSED;
}
-
/**
* Entry point to the test suite.
*
From ldracz at icedtea.classpath.org Fri Oct 3 18:20:47 2014
From: ldracz at icedtea.classpath.org (ldracz at icedtea.classpath.org)
Date: Fri, 03 Oct 2014 18:20:47 +0000
Subject: /hg/icedtea-web: IcedTea-Web Splashscreen allows zero or one hyp...
Message-ID:
changeset 8071a44fe6de in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=8071a44fe6de
author: Lukasz Dracz
date: Fri Oct 03 14:20:40 2014 -0400
IcedTea-Web Splashscreen allows zero or one hyphens preceding headless option
2014-10-03 Lukasz Dracz
IcedTea-Web Splashscreen allows zero or one hyphens preceding headless option
* launcher/launchers.in: regex matching for headless
diffstat:
ChangeLog | 5 +++++
launcher/launchers.in | 2 +-
2 files changed, 6 insertions(+), 1 deletions(-)
diffs (24 lines):
diff -r 6d62f68fb037 -r 8071a44fe6de ChangeLog
--- a/ChangeLog Mon Sep 22 17:10:07 2014 +0200
+++ b/ChangeLog Fri Oct 03 14:20:40 2014 -0400
@@ -1,3 +1,8 @@
+2014-10-03 Lukasz Dracz
+
+ IcedTea-Web Splashscreen allows zero or one hyphens preceding headless option
+ * launcher/launchers.in: regex matching for headless
+
2014-09-22 Jiri Vanek
Preventing rare class cast exception in erroneous detached applets
diff -r 6d62f68fb037 -r 8071a44fe6de launcher/launchers.in
--- a/launcher/launchers.in Mon Sep 22 17:10:07 2014 +0200
+++ b/launcher/launchers.in Fri Oct 03 14:20:40 2014 -0400
@@ -53,7 +53,7 @@
*)
ARGS[$j]="$1"
j=$((j+1))
- if [ "$1" = "-headless" ] ; then
+ if [[ "$1" =~ ^[-]{0,1}headless ]] ; then
SPLASH="false"
fi
;;
From fbscarel at gmail.com Fri Oct 3 18:46:50 2014
From: fbscarel at gmail.com (Felipe Scarel)
Date: Fri, 3 Oct 2014 15:46:50 -0300
Subject: Run icedtea-web using JamVM
Message-ID:
Hello all,
first post here, I apologize in advance if what I'm asking has already been
covered before. I did search a lot for it, and nothing specific came up,
unfortunately.
I'm building a custom i386 system using Buildroot. My goal is to produce a
very small VM image containing only X.org, midori and a working JRE plugin
for browser operation. My first attempt included using the Oracle JRE and
building everything with glibc, but the resulting size was far too large
for my intended use.
Naturally, I gravitated towards IcedTea-web. I've managed to successfully
make a somewhat working build environment and could compile the plugin to
the VM image (total size just under 50MB, pretty good).
The problem is I used OpenJDK-7 to build the image in my host environment,
and understandably IcedTea won't work on the resulting image, complaining
'java' is not on the PATH. I have access to JamVM on Buildroot (as this
package has already been made available previously), so my question is: can
I use icedtea-web with JamVM (rather than OpenJDK-JRE)?
If that's not possible I'll probably have to build and install OpenJDK on
the target environment, which would not exactly be ideal.
Thanks for your help,
fbscarel
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From bugzilla-daemon at icedtea.classpath.org Fri Oct 3 20:20:26 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Fri, 03 Oct 2014 20:20:26 +0000
Subject: [Bug 2026] Error in eclipse-adt
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2026
Omair Majid changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |omajid at redhat.com,
| |unassigned at icedtea.classpat
| |h.org
Component|agent |IcedTea
Product|Thermostat |IcedTea
Target Milestone|1.2.0 |---
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From bugzilla-daemon at icedtea.classpath.org Fri Oct 3 20:22:21 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Fri, 03 Oct 2014 20:22:21 +0000
Subject: [Bug 2026] Error in eclipse-adt
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2026
Omair Majid changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |INVALID
--- Comment #1 from Omair Majid ---
This is an eclipse/webkit issue:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=404776
Try the workaround suggested on the bug tracker above:
"-Dorg.eclipse.swt.browser.DefaultType=mozilla"
Nothing we can do on IcedTea-side :(
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From omajid at redhat.com Fri Oct 3 20:31:43 2014
From: omajid at redhat.com (Omair Majid)
Date: Fri, 3 Oct 2014 16:31:43 -0400
Subject: Run icedtea-web using JamVM
In-Reply-To:
References:
Message-ID: <20141003203142.GA2579@redhat.com>
* Felipe Scarel [2014-10-03 14:48]:
> The problem is I used OpenJDK-7 to build the image in my host environment, and
> understandably IcedTea won't work on the resulting image, complaining 'java' is
> not on the PATH. I have access to JamVM on Buildroot (as this package has
> already been made available previously), so my question is: can I use
> icedtea-web with JamVM (rather than OpenJDK-JRE)?
Can you elaborate what this JamVM is? Is it the JavmVM virtual machine
built so that it uses the OpenJDK class libraries?
As far as I know, IcedTea-Web has almost no dependencies on the VM
itself - it really just expects a working valid JVM. It doesn't really
know anything specific about Hotspot. So, in a sense, a move from
Hotspot VM to JamVM VM should be invisible.
IcedTea-Web does care about the class libraries though. It is designed
to work with OpenJDK's class libraries. It uses internal API that's not
part of the Java SE specification. It wont work with GNU classpath, for
example.
Thanks,
Omair
--
PGP Key: 66484681 (http://pgp.mit.edu/)
Fingerprint = F072 555B 0A17 3957 4E95 0056 F286 F14F 6648 4681
From bugzilla-daemon at icedtea.classpath.org Sat Oct 4 00:13:02 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Sat, 04 Oct 2014 00:13:02 +0000
Subject: [Bug 1588] SIGSEGV in Eclipse
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1588
--- Comment #1 from sergei_chizhov at mail.ru ---
Created attachment 1185
--> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=1185&action=edit
hs_error.log
:/opt/adt-bundle-linux-x86_64-20140702/eclipse> ./eclipse
java version "1.7.0_51"
OpenJDK Runtime Environment (IcedTea 2.4.4) (suse-24.13.5-x86_64)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007fa45ca84151, pid=3352, tid=140346393724672
#
# JRE version: OpenJDK Runtime Environment (7.0_51) (build 1.7.0_51-b00)
# Java VM: OpenJDK 64-Bit Server VM (24.45-b08 mixed mode linux-amd64
compressed oops)
# Problematic frame:
# C [libsoup-2.4.so.1+0x71151] soup_session_feature_detach+0x11
#
# Failed to write core dump. Core dumps have been disabled. To enable core
dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /tmp/jvm-3352/hs_error.log
#
# If you would like to submit a bug report, please include
# instructions on how to reproduce the bug and visit:
# http://icedtea.classpath.org/bugzilla
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From fbscarel at gmail.com Sat Oct 4 01:09:37 2014
From: fbscarel at gmail.com (Felipe Scarel)
Date: Fri, 3 Oct 2014 22:09:37 -0300
Subject: Run icedtea-web using JamVM
In-Reply-To: <20141003203142.GA2579@redhat.com>
References:
<20141003203142.GA2579@redhat.com>
Message-ID:
This JamVM I was talking about is this project: http://jamvm.sourceforge.net/
That said, I just checked Buildroot Makefile information for JamVM and
it uses GNU classpath on build, so that's out the window.
It's pretty clear I'll have to install openjdk-jre on the target
machine, then. I've successfully compiled the JDK on the host machine
in a test run, but for obvious size implications I'd like to "make
install" only the JRE on the target machine. I'll research how to do
that on OpenJDK docs and mailing lists, but if you have any pointers
on that (even though not directly related to IcedTea), I'd be
grateful.
Thanks for the help, Omair. Regards,
fbscarel
On Fri, Oct 3, 2014 at 5:31 PM, Omair Majid wrote:
> * Felipe Scarel [2014-10-03 14:48]:
>> The problem is I used OpenJDK-7 to build the image in my host environment, and
>> understandably IcedTea won't work on the resulting image, complaining 'java' is
>> not on the PATH. I have access to JamVM on Buildroot (as this package has
>> already been made available previously), so my question is: can I use
>> icedtea-web with JamVM (rather than OpenJDK-JRE)?
>
> Can you elaborate what this JamVM is? Is it the JavmVM virtual machine
> built so that it uses the OpenJDK class libraries?
>
> As far as I know, IcedTea-Web has almost no dependencies on the VM
> itself - it really just expects a working valid JVM. It doesn't really
> know anything specific about Hotspot. So, in a sense, a move from
> Hotspot VM to JamVM VM should be invisible.
>
> IcedTea-Web does care about the class libraries though. It is designed
> to work with OpenJDK's class libraries. It uses internal API that's not
> part of the Java SE specification. It wont work with GNU classpath, for
> example.
>
> Thanks,
> Omair
>
> --
> PGP Key: 66484681 (http://pgp.mit.edu/)
> Fingerprint = F072 555B 0A17 3957 4E95 0056 F286 F14F 6648 4681
From rob.lougher at gmail.com Sat Oct 4 07:40:15 2014
From: rob.lougher at gmail.com (Robert Lougher)
Date: Sat, 4 Oct 2014 08:40:15 +0100
Subject: Run icedtea-web using JamVM
In-Reply-To:
References:
<20141003203142.GA2579@redhat.com>
Message-ID:
JamVM is a Java Virtual Machine. It supports both the GNU Classpath
library and the library from OpenJDK. What you have on Buildroot is
JamVM with GNU Classpath. The IcedTea project, packages OpenJDK with
additional VMs such as JamVM. You could also build "vanilla" OpenJDK
and then replace the JVM with JamVM. Additional information is
contained in JamVM's INSTALL and README files.
Rob.
On 4 October 2014 02:09, Felipe Scarel wrote:
> This JamVM I was talking about is this project: http://jamvm.sourceforge.net/
> That said, I just checked Buildroot Makefile information for JamVM and
> it uses GNU classpath on build, so that's out the window.
>
> It's pretty clear I'll have to install openjdk-jre on the target
> machine, then. I've successfully compiled the JDK on the host machine
> in a test run, but for obvious size implications I'd like to "make
> install" only the JRE on the target machine. I'll research how to do
> that on OpenJDK docs and mailing lists, but if you have any pointers
> on that (even though not directly related to IcedTea), I'd be
> grateful.
>
> Thanks for the help, Omair. Regards,
> fbscarel
>
> On Fri, Oct 3, 2014 at 5:31 PM, Omair Majid wrote:
>> * Felipe Scarel [2014-10-03 14:48]:
>>> The problem is I used OpenJDK-7 to build the image in my host environment, and
>>> understandably IcedTea won't work on the resulting image, complaining 'java' is
>>> not on the PATH. I have access to JamVM on Buildroot (as this package has
>>> already been made available previously), so my question is: can I use
>>> icedtea-web with JamVM (rather than OpenJDK-JRE)?
>>
>> Can you elaborate what this JamVM is? Is it the JavmVM virtual machine
>> built so that it uses the OpenJDK class libraries?
>>
>> As far as I know, IcedTea-Web has almost no dependencies on the VM
>> itself - it really just expects a working valid JVM. It doesn't really
>> know anything specific about Hotspot. So, in a sense, a move from
>> Hotspot VM to JamVM VM should be invisible.
>>
>> IcedTea-Web does care about the class libraries though. It is designed
>> to work with OpenJDK's class libraries. It uses internal API that's not
>> part of the Java SE specification. It wont work with GNU classpath, for
>> example.
>>
>> Thanks,
>> Omair
>>
>> --
>> PGP Key: 66484681 (http://pgp.mit.edu/)
>> Fingerprint = F072 555B 0A17 3957 4E95 0056 F286 F14F 6648 4681
From bugzilla-daemon at icedtea.classpath.org Sat Oct 4 08:59:38 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Sat, 04 Oct 2014 08:59:38 +0000
Subject: [Bug 1588] SIGSEGV in Eclipse
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1588
Andrew Haley changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |aph at redhat.com
--- Comment #2 from Andrew Haley ---
I think this is https://bugs.eclipse.org/bugs/show_bug.cgi?id=404776
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From bugzilla-daemon at icedtea.classpath.org Sat Oct 4 14:00:24 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Sat, 04 Oct 2014 14:00:24 +0000
Subject: [Bug 1588] SIGSEGV in Eclipse
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1588
--- Comment #3 from sergei_chizhov at mail.ru ---
Created attachment 1186
--> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=1186&action=edit
hs_error.log with -Dorg.eclipse.swt.browser.DefaultType=mozilla in my
eclipse.ini
workaround does not help
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From jvanek at redhat.com Mon Oct 6 08:30:33 2014
From: jvanek at redhat.com (Jiri Vanek)
Date: Mon, 06 Oct 2014 10:30:33 +0200
Subject: /hg/icedtea-web: IcedTea-Web Splashscreen allows zero or one
hyp...
In-Reply-To:
References:
Message-ID: <54325329.1070701@redhat.com>
Shouldnt it be zero to infinity hyphens?
> +++ b/launcher/launchers.in Fri Oct 03 14:20:40 2014 -0400
> @@ -53,7 +53,7 @@
> *)
> ARGS[$j]="$1"
> j=$((j+1))
> - if [ "$1" = "-headless" ] ; then
> + if [[ "$1" =~ ^[-]{0,1}headless ]] ; then
=> + if [[ "$1" =~ ^[-]*headless ]] ; then
I rember it like this....
?
> SPLASH="false"
> fi
> ;;
>
diff -r 6d62f68fb037 launcher/launchers.in
--- a/launcher/launchers.in Mon Sep 22 17:10:07 2014 +0200
+++ b/launcher/launchers.in Thu Sep 25 17:26:49 2014 -0400
@@ -53,7 +53,7 @@
*)
ARGS[$j]="$1"
j=$((j+1))
- if [ "$1" = "-headless" ] ; then
+ if [[ "$1" =~ -*headless ]] ; then
SPLASH="false"
fi
;;
is your original chnageset. I have not found discussion about this chnage, and unless I overlooked it, it is violating the review process.
????
J.
From ptisnovs at icedtea.classpath.org Mon Oct 6 09:04:37 2014
From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org)
Date: Mon, 06 Oct 2014 09:04:37 +0000
Subject: /hg/gfx-test: Ten new tests added into CAGOperationsOnTwoOverlap...
Message-ID:
changeset 47623b180f44 in /hg/gfx-test
details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=47623b180f44
author: Pavel Tisnovsky
date: Mon Oct 06 11:05:51 2014 +0200
Ten new tests added into CAGOperationsOnTwoOverlappingCircles.
diffstat:
ChangeLog | 5 +
src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingCircles.java | 250 ++++++++++
2 files changed, 255 insertions(+), 0 deletions(-)
diffs (272 lines):
diff -r 28177aae9be2 -r 47623b180f44 ChangeLog
--- a/ChangeLog Fri Oct 03 12:24:06 2014 +0200
+++ b/ChangeLog Mon Oct 06 11:05:51 2014 +0200
@@ -1,3 +1,8 @@
+2014-10-06 Pavel Tisnovsky
+
+ * src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingCircles.java:
+ Ten new tests added into CAGOperationsOnTwoOverlappingCircles.
+
2014-10-03 Pavel Tisnovsky
* src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingCircles.java:
diff -r 28177aae9be2 -r 47623b180f44 src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingCircles.java
--- a/src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingCircles.java Fri Oct 03 12:24:06 2014 +0200
+++ b/src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingCircles.java Mon Oct 06 11:05:51 2014 +0200
@@ -2257,6 +2257,256 @@
return TestResult.PASSED;
}
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping circles using Intersect operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testIntersectTextureFillUsingDiagonalStripesTexture(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingDiagonalStripesTexture(image, graphics2d);
+ // create area using Intersect operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingCirclesUsingIntersectOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping circles using Xor operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testXorTextureFillUsingDiagonalStripesTexture(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingDiagonalStripesTexture(image, graphics2d);
+ // create area using Xor operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingCirclesUsingXorOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping circles using union operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testUnionTextureFillUsingColorDotsTexture(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingColorDotsTexture(image, graphics2d);
+ // create area using union operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingCirclesUsingUnionOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping circles using subtract operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testSubtractTextureFillUsingColorDotsTexture(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingColorDotsTexture(image, graphics2d);
+ // create area using subtract operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingCirclesUsingSubtractOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping circles using inverse subtract operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testInverseSubtractTextureFillUsingColorDotsTexture(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingColorDotsTexture(image, graphics2d);
+ // create area using inverse subtract operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingCirclesUsingInverseSubtractOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping circles using Intersect operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testIntersectTextureFillUsingColorDotsTexture(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingColorDotsTexture(image, graphics2d);
+ // create area using Intersect operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingCirclesUsingIntersectOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping circles using Xor operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testXorTextureFillUsingColorDotsTexture(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingColorDotsTexture(image, graphics2d);
+ // create area using Xor operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingCirclesUsingXorOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping circles using union operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testUnionTextureFillUsingRGBTexture1(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingRGBTexture1(image, graphics2d);
+ // create area using union operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingCirclesUsingUnionOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping circles using subtract operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testSubtractTextureFillUsingRGBTexture1(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingRGBTexture1(image, graphics2d);
+ // create area using subtract operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingCirclesUsingSubtractOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping circles using inverse subtract operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testInverseSubtractTextureFillUsingRGBTexture1(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingRGBTexture1(image, graphics2d);
+ // create area using inverse subtract operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingCirclesUsingInverseSubtractOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
public TestResult testIntersectTextureFillUsingRGBTexture6(TestImage image, Graphics2D graphics2d)
{
// set stroke color
From fbscarel at gmail.com Mon Oct 6 13:00:15 2014
From: fbscarel at gmail.com (Felipe Scarel)
Date: Mon, 6 Oct 2014 10:00:15 -0300
Subject: Run icedtea-web using JamVM
In-Reply-To:
References:
<20141003203142.GA2579@redhat.com>
Message-ID:
I succeeded in building IcedTea on the host system with pointers both
on and off-list. I appreciate all the help given so far.
I've built IcedTea using the default OpenJDK build, and from what I've
read there's no 'install' target; after 'make', the resulting build is
available on the 'openjdk.build' directory. That's great, but the size
of that directory is a whopping 3.6GB, which is gigantic -- of course,
I assume there's a lot of stuff I won't need on my target system here,
such as documentation and build objects. Is there any documentation on
which directories/files are absolutely needed to run the web plugin
and should be copied from this 'openjdk.build' directory? I assume
'bin/' and 'include/' would probably be needed, but I'm only guessing
at this point.
On a sidenote, I'm now building with the '--enable-jamvm' option to
check if the resulting size will be any smaller.
Regards,
fbscarel
On Sat, Oct 4, 2014 at 4:40 AM, Robert Lougher wrote:
> JamVM is a Java Virtual Machine. It supports both the GNU Classpath
> library and the library from OpenJDK. What you have on Buildroot is
> JamVM with GNU Classpath. The IcedTea project, packages OpenJDK with
> additional VMs such as JamVM. You could also build "vanilla" OpenJDK
> and then replace the JVM with JamVM. Additional information is
> contained in JamVM's INSTALL and README files.
>
> Rob.
>
>
> On 4 October 2014 02:09, Felipe Scarel wrote:
>> This JamVM I was talking about is this project: http://jamvm.sourceforge.net/
>> That said, I just checked Buildroot Makefile information for JamVM and
>> it uses GNU classpath on build, so that's out the window.
>>
>> It's pretty clear I'll have to install openjdk-jre on the target
>> machine, then. I've successfully compiled the JDK on the host machine
>> in a test run, but for obvious size implications I'd like to "make
>> install" only the JRE on the target machine. I'll research how to do
>> that on OpenJDK docs and mailing lists, but if you have any pointers
>> on that (even though not directly related to IcedTea), I'd be
>> grateful.
>>
>> Thanks for the help, Omair. Regards,
>> fbscarel
>>
>> On Fri, Oct 3, 2014 at 5:31 PM, Omair Majid wrote:
>>> * Felipe Scarel [2014-10-03 14:48]:
>>>> The problem is I used OpenJDK-7 to build the image in my host environment, and
>>>> understandably IcedTea won't work on the resulting image, complaining 'java' is
>>>> not on the PATH. I have access to JamVM on Buildroot (as this package has
>>>> already been made available previously), so my question is: can I use
>>>> icedtea-web with JamVM (rather than OpenJDK-JRE)?
>>>
>>> Can you elaborate what this JamVM is? Is it the JavmVM virtual machine
>>> built so that it uses the OpenJDK class libraries?
>>>
>>> As far as I know, IcedTea-Web has almost no dependencies on the VM
>>> itself - it really just expects a working valid JVM. It doesn't really
>>> know anything specific about Hotspot. So, in a sense, a move from
>>> Hotspot VM to JamVM VM should be invisible.
>>>
>>> IcedTea-Web does care about the class libraries though. It is designed
>>> to work with OpenJDK's class libraries. It uses internal API that's not
>>> part of the Java SE specification. It wont work with GNU classpath, for
>>> example.
>>>
>>> Thanks,
>>> Omair
>>>
>>> --
>>> PGP Key: 66484681 (http://pgp.mit.edu/)
>>> Fingerprint = F072 555B 0A17 3957 4E95 0056 F286 F14F 6648 4681
From ldracz at redhat.com Mon Oct 6 15:10:51 2014
From: ldracz at redhat.com (Lukasz Dracz)
Date: Mon, 6 Oct 2014 11:10:51 -0400 (EDT)
Subject: /hg/icedtea-web: IcedTea-Web Splashscreen allows zero or one
hyp...
In-Reply-To: <54325329.1070701@redhat.com>
References:
<54325329.1070701@redhat.com>
Message-ID: <510155172.15486591.1412608251115.JavaMail.zimbra@redhat.com>
Hello,
Sorry, I thought at the time the change/difference was small enough but I agree even the smallest changes should get reviewed. The reasoning behind the change is that I thought -*headless was not a correct change, since really only headless and -headless are accepted as options, anything with more dashes is not accepted such as --headless, ---headless, -----headless etc. It did not make sense to have a user put ---headless, then have the icedtea-web splash screen not appear only to get a message back that ---headless is not an accepted option. That is why I changed what was agreed upon to what is actually supported, which is only headless or -headless.
Once again I am sorry, I did not mean to violate the review process. Do you want to support -*headless ? So anything from headless to --*--headless I can make the required changes if that is what is wanted in option parser. Should the change be reverted ?
Sincerely,
Lukasz Dracz
----- Original Message -----
> From: "Jiri Vanek"
> To: ldracz at icedtea.classpath.org, distro-pkg-dev at openjdk.java.net
> Sent: Monday, October 6, 2014 4:30:33 AM
> Subject: Re: /hg/icedtea-web: IcedTea-Web Splashscreen allows zero or one hyp...
>
> Shouldnt it be zero to infinity hyphens?
> > +++ b/launcher/launchers.in Fri Oct 03 14:20:40 2014 -0400
> > @@ -53,7 +53,7 @@
> > *)
> > ARGS[$j]="$1"
> > j=$((j+1))
> > - if [ "$1" = "-headless" ] ; then
> > + if [[ "$1" =~ ^[-]{0,1}headless ]] ; then
>
> => + if [[ "$1" =~ ^[-]*headless ]] ; then
>
> I rember it like this....
>
> ?
> > SPLASH="false"
> > fi
> > ;;
> >
>
>
> diff -r 6d62f68fb037 launcher/launchers.in
> --- a/launcher/launchers.in Mon Sep 22 17:10:07 2014 +0200
> +++ b/launcher/launchers.in Thu Sep 25 17:26:49 2014 -0400
> @@ -53,7 +53,7 @@
> *)
> ARGS[$j]="$1"
> j=$((j+1))
> - if [ "$1" = "-headless" ] ; then
> + if [[ "$1" =~ -*headless ]] ; then
> SPLASH="false"
> fi
> ;;
>
>
> is your original chnageset. I have not found discussion about this chnage,
> and unless I overlooked it, it is violating the review process.
>
>
> ????
> J.
>
From omajid at redhat.com Mon Oct 6 15:28:00 2014
From: omajid at redhat.com (Omair Majid)
Date: Mon, 6 Oct 2014 11:28:00 -0400
Subject: Run icedtea-web using JamVM
In-Reply-To:
References:
<20141003203142.GA2579@redhat.com>
Message-ID: <20141006152800.GC2129@redhat.com>
* Felipe Scarel [2014-10-06 09:01]:
> I succeeded in building IcedTea on the host system with pointers both
> on and off-list. I appreciate all the help given so far.
>
> I've built IcedTea using the default OpenJDK build, and from what I've
> read there's no 'install' target; after 'make', the resulting build is
> available on the 'openjdk.build' directory. That's great, but the size
> of that directory is a whopping 3.6GB, which is gigantic -- of course,
> I assume there's a lot of stuff I won't need on my target system here,
> such as documentation and build objects.
The `j2sdk-image` directory is what you want. It's basically a
standlone-Java SDK in a ready-to-ship form.
> Is there any documentation on
> which directories/files are absolutely needed to run the web plugin
> and should be copied from this 'openjdk.build' directory?
IcedTea-Web uses a number of files from that j2sdk-image directory. Just
give it the path to that directory using `--with-jdk-home`.
Thanks,
Omair
--
PGP Key: 66484681 (http://pgp.mit.edu/)
Fingerprint = F072 555B 0A17 3957 4E95 0056 F286 F14F 6648 4681
From fbscarel at gmail.com Mon Oct 6 15:32:39 2014
From: fbscarel at gmail.com (Felipe Scarel)
Date: Mon, 6 Oct 2014 12:32:39 -0300
Subject: Run icedtea-web using JamVM
In-Reply-To: <20141006152800.GC2129@redhat.com>
References:
<20141003203142.GA2579@redhat.com>
<20141006152800.GC2129@redhat.com>
Message-ID:
On Mon, Oct 6, 2014 at 12:28 PM, Omair Majid wrote:
> * Felipe Scarel [2014-10-06 09:01]:
> > I succeeded in building IcedTea on the host system with pointers both
> > on and off-list. I appreciate all the help given so far.
> >
> > I've built IcedTea using the default OpenJDK build, and from what I've
> > read there's no 'install' target; after 'make', the resulting build is
> > available on the 'openjdk.build' directory. That's great, but the size
> > of that directory is a whopping 3.6GB, which is gigantic -- of course,
> > I assume there's a lot of stuff I won't need on my target system here,
> > such as documentation and build objects.
>
> The `j2sdk-image` directory is what you want. It's basically a
> standlone-Java SDK in a ready-to-ship form.
>
> > Is there any documentation on
> > which directories/files are absolutely needed to run the web plugin
> > and should be copied from this 'openjdk.build' directory?
>
> IcedTea-Web uses a number of files from that j2sdk-image directory. Just
> give it the path to that directory using `--with-jdk-home`.
>
>
Will do Omair, thanks. I'll report back on my findings later on.
> Thanks,
> Omair
>
> --
> PGP Key: 66484681 (http://pgp.mit.edu/)
> Fingerprint = F072 555B 0A17 3957 4E95 0056 F286 F14F 6648 4681
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From jvanek at redhat.com Mon Oct 6 16:41:28 2014
From: jvanek at redhat.com (Jiri Vanek)
Date: Mon, 06 Oct 2014 18:41:28 +0200
Subject: /hg/icedtea-web: IcedTea-Web Splashscreen allows zero or one
hyp...
In-Reply-To: <510155172.15486591.1412608251115.JavaMail.zimbra@redhat.com>
References:
<54325329.1070701@redhat.com>
<510155172.15486591.1412608251115.JavaMail.zimbra@redhat.com>
Message-ID: <5432C638.8060305@redhat.com>
On 10/06/2014 05:10 PM, Lukasz Dracz wrote:
> Hello,
>
> Sorry, I thought at the time the change/difference was small enough but I agree even the smallest changes should get reviewed. The reasoning behind the change is that I thought -*headless was not a correct change, since really only headless and -headless are accepted as options, anything with more dashes is not accepted such as --headless, ---headless, -----headless etc. It did not make sense to have a user put ---headless, then have the icedtea-web splash screen not appear only to get a message back that ---headless is not an accepted option. That is why I changed what was agreed upon to what is actually supported, which is only headless or -headless.
> Once again I am sorry, I did not mean to violate the review process. Do you want to support -*headless ? So anything from headless to --*--headless I can make the required changes if that is what is wanted in option parser. Should the change be reverted ?
>
In case that your parser supports only -headless or headles, tehn your chnage will be ok. I also
like your ^ and [] enhancement. For that I will do nothing more then ping you adn verify stuff.
But I would swear, that we agreed on -* support.
However in code I now can see the
private boolean stringEqualsOption(String input, OptionsDefinitions.OPTIONS opt) {
String option = opt.option.replaceAll("^-","").split("=")[0];
input = input.replaceAll("^-","").split("=")[0];
if (input.equals(option)) {
return true;
}
return false;
}
Which really accept only -{0,1}
And the method is not tested;)
So with that, you are cleared for this well intentioned change, but please, try to avoid it.
especially when original review is gone;)
Also please [rfc] attached patch, which is fixing both those issues.
Sorry for the "attack", but at least it clarified the -/--/---// hyphens issue
J.
ps: * but please, really try to avoid such last-moment changes *
>
> ----- Original Message -----
>> From: "Jiri Vanek"
>> To: ldracz at icedtea.classpath.org, distro-pkg-dev at openjdk.java.net
>> Sent: Monday, October 6, 2014 4:30:33 AM
>> Subject: Re: /hg/icedtea-web: IcedTea-Web Splashscreen allows zero or one hyp...
>>
>> Shouldnt it be zero to infinity hyphens?
>>> +++ b/launcher/launchers.in Fri Oct 03 14:20:40 2014 -0400
>>> @@ -53,7 +53,7 @@
>>> *)
>>> ARGS[$j]="$1"
>>> j=$((j+1))
>>> - if [ "$1" = "-headless" ] ; then
>>> + if [[ "$1" =~ ^[-]{0,1}headless ]] ; then
>>
>> => + if [[ "$1" =~ ^[-]*headless ]] ; then
>>
>> I rember it like this....
>>
>> ?
>>> SPLASH="false"
>>> fi
>>> ;;
>>>
>>
>>
>> diff -r 6d62f68fb037 launcher/launchers.in
>> --- a/launcher/launchers.in Mon Sep 22 17:10:07 2014 +0200
>> +++ b/launcher/launchers.in Thu Sep 25 17:26:49 2014 -0400
>> @@ -53,7 +53,7 @@
>> *)
>> ARGS[$j]="$1"
>> j=$((j+1))
>> - if [ "$1" = "-headless" ] ; then
>> + if [[ "$1" =~ -*headless ]] ; then
>> SPLASH="false"
>> fi
>> ;;
>>
>>
>> is your original chnageset. I have not found discussion about this chnage,
>> and unless I overlooked it, it is violating the review process.
>>
>>
>> ????
>> J.
>>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: multipleHyphensFix.patch
Type: text/x-patch
Size: 2944 bytes
Desc: not available
URL:
From jkang at redhat.com Mon Oct 6 17:13:11 2014
From: jkang at redhat.com (Jie Kang)
Date: Mon, 6 Oct 2014 13:13:11 -0400 (EDT)
Subject: [rfc][icedtea-web] ResourceTracker Thread Pool Enhancement
In-Reply-To: <542D7CFB.3060909@gmx.de>
References: <1595707600.13469333.1412180808182.JavaMail.zimbra@redhat.com>
<542D7CFB.3060909@gmx.de>
Message-ID: <699600199.15540002.1412615591151.JavaMail.zimbra@redhat.com>
----- Original Message -----
> On 10/01/2014 at 06:26 PM, Jie Kang wrote:
> > Hello,
> >
> > This patch replaces the manual thread management system in Resource Tracker
> > with a fixed thread pool using Java's Executor Service class.
> >
> > The functionality remains the same as before. In terms of testing, using
> > the Performance Test [1], running the reproducers and performing manual
> > testing has shown no regressions.
> >
> > Thoughts?
> >
> >
> > [1] :
> > http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2014-August/028980.html
> >
> >
> > Regards,
>
> Hey, this looks interesting. :-)
>
> I am aware that you have been aiming for identical functionality, so please
> keep
> in mind that this post is more of a discussion than a comment on the code
> quality.
>
> > + private static final ExecutorService threadPool =
> > Executors.newFixedThreadPool(5);
>
> A constant pool size of 5 seems rather arbitrary. I suppose the most suiting
> thread pool scheduler/model in this case would be one that tries to utilize
> the
> CPU(s) most effectively, choosing threads that are most probable to finish
> first. The thread pool size should/could probably be calculated based on the
> available bandwidth, average resource size, average latency to a resource,
> and
> the number of cores or CPUs. But then, this would also require gathering some
> considerable amount of statistical data which seems not feasible for this
> purpose. Hmm, I do know, 5 seems as arbitrary as 42. ;-)
>
> Furthermore as I understand (please correct me if am I wrong), the fixed
> thread
> pool does not run queued threads when all slots in the pool are blocked or
> waiting, say for example for a response on the network. In this case, which
> probably happens a lot, this thread pool does not help much. With many
> resources
> to be download, waiting for the first 5 to complete while others might be
> downloading instead, is a zero-sum game.
>
> Also, the positive runtime effects of recycling or reusing existing threads
> is
> negligible in this scenario either. Actually, such an effect is only even
> measurable if the threads' average lifetime is below 100 ms and hundreds if
> not
> thousands of threads are to be created per second. So, a thread pool size of
> 5
> and the average lifetime of a thread downloading a resource for about several
> ten seconds if not more, has no practical effect on the overall performance.
> Again, I know you are just recreating already existing functionality with the
> concurrent framework. But, if you do so, you may want to consider
> improvements
> to IcedTea-Web that the concurrent framework might enable.
>
> > - if (threads == 0) {
> > - synchronized (prefetchTrackers) {
> > - queue.trimToSize(); // these only accessed by threads so
> > no sync needed
> > - active.clear(); // no threads so no trackers actively
> > downloading
> > - active.trimToSize();
> > - prefetchTrackers.trimToSize();
> > - }
> > + synchronized (prefetchTrackers) {
> > + queue.trimToSize(); // these only accessed by threads so no
> > sync needed
> > + prefetchTrackers.trimToSize();
> > }
>
> A few questions:
> 1. Why is the ResourceTracker.queue still required if there is a thread pool
> managing a queue now? Shouldn't every resource get its own thread to be
> queued
> in the thread pool?
Hello,
I chose to keep the queue in place for this patch to make the change as small as possible, in the hopes that reviewing would be easier and regressions would be prevented. I plan to continually revamp the tracker in small, incremental patches in order to keep the probability of introducing regressions at a minimum.
As well, as a kind of side note, the aim for these refactors is to make it easier to maintain and expand the code in the future. I intend to add the ability to use JNLP's , and tags [1] to ITW, but I found it quite annoying to do so with the current state of the ResourceTracker + Cache system.
I actually have a completely new ResourceTracker that I believe works fine, but rather than send in a huge patch that replaces the old tracker with a new one, I thought it would be better to incrementally modify the old tracker.
[1] http://docs.oracle.com/javase/7/docs/technotes/guides/javaws/developersguide/syntax.html#update
>
> 2. Why is ResourceTracker.queue accessed while holding a lock on
> ResourceTracker.prefetchTrackers? If access to ResourceTracker.queue does
> need
> to be synchronized, then why not synchronize access to it too?
The whole system revolving around prefetchTrackers is unnecessary IMO. In the context of ITW's downloading of resources for an applet, we have three scenarios.
1. We download something and require it immediately, so we wait. (Might as well have not threaded the download)
2. We download something, perform some operations in between, and then wait for it right before we need it.
3. We download something in the background, while the applet is running.
(Currently, option 3 is not supported, but it will be)
These scenarios really don't require the complicated system we have now involving the prefetchTrackers.
In the end these things will be removed. I wasn't sure why the code was written this way and so I decided to keep it as is. On further review, I have found that all calls to queue are done within a synchronization on 'lock'. Some of these synchronizations are done in methods earlier in the call stack. So there are methods that have comments like: "must only call this method with synchronization on lock". Ugh..
>
> I hope this helps a bit with thinking. ;-)
It has. Thanks for the food for thought.
Regards,
>
> Jacob
>
--
Jie Kang
From gitne at gmx.de Mon Oct 6 18:03:38 2014
From: gitne at gmx.de (Jacob Wisor)
Date: Mon, 06 Oct 2014 20:03:38 +0200
Subject: [rfc][icedtea-web] ResourceTracker Thread Pool Enhancement
In-Reply-To: <699600199.15540002.1412615591151.JavaMail.zimbra@redhat.com>
References: <1595707600.13469333.1412180808182.JavaMail.zimbra@redhat.com>
<542D7CFB.3060909@gmx.de>
<699600199.15540002.1412615591151.JavaMail.zimbra@redhat.com>
Message-ID: <5432D97A.8080808@gmx.de>
On 10/06/2014 at 07:13 PM, Jie Kang wrote:
> ----- Original Message -----
>> On 10/01/2014 at 06:26 PM, Jie Kang wrote:
>>> Hello,
>>>
>>> This patch replaces the manual thread management system in Resource Tracker
>>> with a fixed thread pool using Java's Executor Service class.
>>>
>>> The functionality remains the same as before. In terms of testing, using
>>> the Performance Test [1], running the reproducers and performing manual
>>> testing has shown no regressions.
>>>
>>> Thoughts?
>>>
>>>
>>> [1] :
>>> http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2014-August/028980.html
>>>
>>>
>>> Regards,
>>
>> Hey, this looks interesting. :-)
>>
>> I am aware that you have been aiming for identical functionality, so please
>> keep
>> in mind that this post is more of a discussion than a comment on the code
>> quality.
>>
>>> + private static final ExecutorService threadPool =
>>> Executors.newFixedThreadPool(5);
>>
>> A constant pool size of 5 seems rather arbitrary. I suppose the most suiting
>> thread pool scheduler/model in this case would be one that tries to utilize
>> the
>> CPU(s) most effectively, choosing threads that are most probable to finish
>> first. The thread pool size should/could probably be calculated based on the
>> available bandwidth, average resource size, average latency to a resource,
>> and
>> the number of cores or CPUs. But then, this would also require gathering some
>> considerable amount of statistical data which seems not feasible for this
>> purpose. Hmm, I do know, 5 seems as arbitrary as 42. ;-)
>>
>> Furthermore as I understand (please correct me if am I wrong), the fixed
>> thread
>> pool does not run queued threads when all slots in the pool are blocked or
>> waiting, say for example for a response on the network. In this case, which
>> probably happens a lot, this thread pool does not help much. With many
>> resources
>> to be download, waiting for the first 5 to complete while others might be
>> downloading instead, is a zero-sum game.
>>
>> Also, the positive runtime effects of recycling or reusing existing threads
>> is
>> negligible in this scenario either. Actually, such an effect is only even
>> measurable if the threads' average lifetime is below 100 ms and hundreds if
>> not
>> thousands of threads are to be created per second. So, a thread pool size of
>> 5
>> and the average lifetime of a thread downloading a resource for about several
>> ten seconds if not more, has no practical effect on the overall performance.
>> Again, I know you are just recreating already existing functionality with the
>> concurrent framework. But, if you do so, you may want to consider
>> improvements
>> to IcedTea-Web that the concurrent framework might enable.
>>
>>> - if (threads == 0) {
>>> - synchronized (prefetchTrackers) {
>>> - queue.trimToSize(); // these only accessed by threads so
>>> no sync needed
>>> - active.clear(); // no threads so no trackers actively
>>> downloading
>>> - active.trimToSize();
>>> - prefetchTrackers.trimToSize();
>>> - }
>>> + synchronized (prefetchTrackers) {
>>> + queue.trimToSize(); // these only accessed by threads so no
>>> sync needed
>>> + prefetchTrackers.trimToSize();
>>> }
>>
>> A few questions:
>> 1. Why is the ResourceTracker.queue still required if there is a thread pool
>> managing a queue now? Shouldn't every resource get its own thread to be
>> queued
>> in the thread pool?
>
> Hello,
>
> I chose to keep the queue in place for this patch to make the change as small as possible, in the hopes that reviewing would be easier and regressions would be prevented. I plan to continually revamp the tracker in small, incremental patches in order to keep the probability of introducing regressions at a minimum.
>
> As well, as a kind of side note, the aim for these refactors is to make it easier to maintain and expand the code in the future. I intend to add the ability to use JNLP's , and tags [1] to ITW, but I found it quite annoying to do so with the current state of the ResourceTracker + Cache system.
Sounds great! :-) However, I would deem adding the install feature more
important to IcedTea-Web before anything else. Well, the update feature seems to
depend on install, I guess. ;-) But you're free to proceed as you see fit, of
course.
> I actually have a completely new ResourceTracker that I believe works fine, but rather than send in a huge patch that replaces the old tracker with a new one, I thought it would be better to incrementally modify the old tracker.
Okay, let's have it.
> [1] http://docs.oracle.com/javase/7/docs/technotes/guides/javaws/developersguide/syntax.html#update
>
>>
>> 2. Why is ResourceTracker.queue accessed while holding a lock on
>> ResourceTracker.prefetchTrackers? If access to ResourceTracker.queue does
>> need
>> to be synchronized, then why not synchronize access to it too?
>
>
> The whole system revolving around prefetchTrackers is unnecessary IMO. In the context of ITW's downloading of resources for an applet, we have three scenarios.
>
> 1. We download something and require it immediately, so we wait. (Might as well have not threaded the download)
> 2. We download something, perform some operations in between, and then wait for it right before we need it.
> 3. We download something in the background, while the applet is running.
>
> (Currently, option 3 is not supported, but it will be)
>
> These scenarios really don't require the complicated system we have now involving the prefetchTrackers.
Right. However, I think IcedTea-Web should support the indexing of JAR files
feature.
> In the end these things will be removed. I wasn't sure why the code was written this way and so I decided to keep it as is. On further review, I have found that all calls to queue are done within a synchronization on 'lock'. Some of these synchronizations are done in methods earlier in the call stack. So there are methods that have comments like: "must only call this method with synchronization on lock". Ugh..
Yeah, you name it ... ugh... :-D
Anyway, +1 from me to push.
Jacob
From aazores at redhat.com Mon Oct 6 18:08:26 2014
From: aazores at redhat.com (Andrew Azores)
Date: Mon, 06 Oct 2014 14:08:26 -0400
Subject: [rfc][icedtea-web] ResourceTracker Thread Pool Enhancement
In-Reply-To: <1595707600.13469333.1412180808182.JavaMail.zimbra@redhat.com>
References: <1595707600.13469333.1412180808182.JavaMail.zimbra@redhat.com>
Message-ID: <5432DA9A.2070107@redhat.com>
On 10/01/2014 12:26 PM, Jie Kang wrote:
> Hello,
>
> This patch replaces the manual thread management system in Resource Tracker with a fixed thread pool using Java's Executor Service class.
>
> The functionality remains the same as before. In terms of testing, using the Performance Test [1], running the reproducers and performing manual testing has shown no regressions.
>
> Thoughts?
>
>
> [1] : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2014-August/028980.html
>
>
> Regards,
>
In addition to everything Jacob has already said, I'd also like to
comment on the pool having always exactly 5 threads. I agree with his
assessment that it would be nice to have some statistical data and some
heuristic to use to determine a number of threads to use, but I think
this is pretty infeasible. Really, the optimization problem here IMO is
to try to minimize the number of threads used while maximizing network
bandwidth utilization; in other words, there's no point downloading 5 at
once if the first 3 would have already saturated the connection, but
there's also no point downloading 5 if their combined utilization is
only 50% of the available bandwidth. But really, it's worse to be using
only 50% of the available bandwidth than to be downloading more
resources than is required to saturate bandwidth, since the cost of
extra threads is really not very high, but the cost to the user of
downloading at less than full speed is (potentially a lot of) wasted
time for no good reason. So, I think it's better to overshoot the
optimal number of threads than to undershoot it. The cost of
overshooting is just so minimal, which Jacob also says.
That said, it would be silly to pre-allocate some huge number of threads
for this thread pool, say, 1000 threads. The chances of a user's applet
having 1000 things for us to download is very small. If there are only 5
resources then there are 995 threads for no reason whatsoever; worse,
all 1000 threads will be sitting around in the JVM with nothing to do
until the JVM is exited because the user is done with the applet.
Although this probably isn't a massive performance issue, it's still
wasteful.
So, with these thoughts in mind, I'd recommend you consider switching
from newFixedThreadPool(5) to simply newCachedThreadPool [0]. It does
mean that every resource will be downloaded at once, rather than queued
up for processing, but AFAICT this will allow for a good amount of
architectural simplification in ResourceTracker, and it also guarantees
that if it's possible to saturate the download bandwidth, then we will,
and so the task will be completed as quickly as possible (ignoring
scheduler overhead etc). And, it also means that after the download
tasks are completed, the additional threads will eventually be cleaned
up automatically, unless additional tasks come in, in which case some of
the threads will be reused. IMO this is pretty much exactly the best
behaviour we can reasonably provide, unless we start gathering that
statistical data and measuring maximum download throughput vs current
resource download combined throughput, and all those extra details. To
me all of that work probably isn't worth the effort - but it would
definitely be very, very cool if it was done ;)
[0]
http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Executors.html#newCachedThreadPool%28%29
Thanks,
--
Andrew Azores
From ldracz at redhat.com Mon Oct 6 21:24:12 2014
From: ldracz at redhat.com (Lukasz Dracz)
Date: Mon, 6 Oct 2014 17:24:12 -0400 (EDT)
Subject: [rfc][icedtea-web][itweb-settings] itweb-settings use Option
Parser
In-Reply-To: <54255285.6080406@redhat.com>
References: <2136433079.7489666.1411075684213.JavaMail.zimbra@redhat.com>
<541C3995.2080104@redhat.com>
<1888728818.9296441.1411419281545.JavaMail.zimbra@redhat.com>
<54243024.5050109@redhat.com>
<1795754452.11172633.1411680531876.JavaMail.zimbra@redhat.com>
<54255285.6080406@redhat.com>
Message-ID: <1570273198.15632389.1412630652794.JavaMail.zimbra@redhat.com>
Hello,
> Uff... Now you will hate me. I have changed my mind a bit, And i need we need
> to fix an ols parser a
> bit.
>
> At first inline
>
>
> Rest innline
>
> >
> >
> > itweb-settingsOptionParser-6.patch
> >
> >
> > diff -r 6d62f68fb037 launcher/launchers.in
> > --- a/launcher/launchers.in Mon Sep 22 17:10:07 2014 +0200
> > +++ b/launcher/launchers.in Thu Sep 25 17:26:49 2014 -0400
> > @@ -53,7 +53,7 @@
> > *)
> > ARGS[$j]="$1"
> > j=$((j+1))
> > - if [ "$1" = "-headless" ] ; then
> > + if [[ "$1" =~ -*headless ]] ; then
> > SPLASH="false"
> > fi
> > ;;
>
> Thsi is good. Please push as separate changeset (please let aazores/jie to
> check the changelog
> before push)
>
> > diff -r 6d62f68fb037 netx/net/sourceforge/jnlp/OptionsDefinitions.java
> > --- a/netx/net/sourceforge/jnlp/OptionsDefinitions.java Mon Sep 22 17:10:07
> > 2014 +0200
> > +++ b/netx/net/sourceforge/jnlp/OptionsDefinitions.java Thu Sep 25 17:26:49
> > 2014 -0400
> > @@ -73,14 +73,14 @@
> > TRUSTNONE("-Xtrustnone","BOTrustnone"),
> > JNLP("-jnlp","BOJnlp", NumberOfArguments.ONE),
> > //itweb settings
> > - NODASHHELP("help", "IBOHelp"),
> > - LIST("list", "IBOList"),
> > - GET("get", "name", "IBOGet"),
> > - INFO("info", "name", "IBOInfo"),
> > - SET("set", "name value", "IBOSet"),
> > - RESETALL("reset", "all", "IBOResetAll"),
> > - RESET("reset", "name", "IBOReset"),
> > - CHECK("check", "name", "IBOCheck"),
> > + NODASHHELP("-help", "IBOHelp"),
>
> we dont need this ;) This isnow duplication of HELP (maybe only the
> properties message needs tuning
> to suite both - if possible) otherwise wee need to go with some HELP2 (I
> prefer first)
Using only one Help now for both. Changed the message.
> > + LIST("-list", "IBOList"),
> > + GET("-get", "name", "IBOGet", NumberOfArguments.ONE_OR_MORE),
> > + INFO("-info", "name", "IBOInfo", NumberOfArguments.ONE_OR_MORE),
> > + SET("-set", "name value", "IBOSet",
> > NumberOfArguments.ONE_OR_MORE),
> > + RESETALL("-reset", "all", "IBOResetAll"),
> > + RESET("-reset", "name", "IBOReset",
> > NumberOfArguments.ONE_OR_MORE),
> > + CHECK("-check", "name", "IBOCheck"),
>
> Otherwise this is good.
> > //policyeditor
> > //-help
> > FILE("-file", "policy_file", "PBOFile"),
> > @@ -160,8 +160,9 @@
> > OPTIONS.GET,
> > OPTIONS.INFO,
> > OPTIONS.SET,
> > + OPTIONS.RESET,
> > OPTIONS.RESETALL,
> > - OPTIONS.RESET,
> > + OPTIONS.HEADLESS,
> > OPTIONS.CHECK
> > });
> > }
> > diff -r 6d62f68fb037
> > netx/net/sourceforge/jnlp/controlpanel/CommandLine.java
> > --- a/netx/net/sourceforge/jnlp/controlpanel/CommandLine.java Mon Sep 22
> > 17:10:07 2014 +0200
> > +++ b/netx/net/sourceforge/jnlp/controlpanel/CommandLine.java Thu Sep 25
> > 17:26:49 2014 -0400
> > @@ -21,8 +21,6 @@
> > import static net.sourceforge.jnlp.runtime.Translator.R;
> >
> > import java.io.IOException;
> > -import java.util.ArrayList;
> > -import java.util.Arrays;
> > import java.util.List;
> > import java.util.Map;
> >
> > @@ -37,16 +35,17 @@
> > import net.sourceforge.jnlp.util.docprovider.TextsProvider;
> > import
> > net.sourceforge.jnlp.util.docprovider.formatters.formatters.PlainTextFormatter;
> > import net.sourceforge.jnlp.util.logging.OutputController;
> > +import net.sourceforge.jnlp.util.optionparser.OptionParser;
> >
> > /**
> > * Encapsulates a command line interface to the deployment configuration.
> > *
> > - * The central method is {@link #handle(String[])}, which calls one of the
> > - * various 'handle' methods. The commands listed in {@link #allCommands}
> > are
> > + * The central method is {@link #handle()}, which calls one of the
> > + * various 'handle' methods. The commands listed in OptionsDefinitions are
> > * supported. For each supported command, a method handleCOMMANDCommand
> > exists.
> > * This method actually takes action based on the command. Generally, a
> > * printCOMMANDHelp method also exists, and prints out the help message
> > for
> > - * that specific command. For example, see {@link
> > #handleListCommand(List)}
> > + * that specific command. For example, see {@link #handleListCommand()}
> > * and {@link #printListHelp()}.
> > *
> > * Sample usage:
> > @@ -72,6 +71,7 @@
> >
> >
> > DeploymentConfiguration config = null;
> > + private static OptionParser optionParser;
> >
> > /**
> > * Creates a new instance
> > @@ -125,11 +125,11 @@
> > /**
> > * Handles the 'list' command
> > *
> > - * @param args the arguments to the list command
> > * @return result of handling the command. SUCCESS if no errors
> > occurred.
> > */
> > - public int handleListCommand(List args) {
> > - if (args.contains("help")) {
> > + public int handleListCommand() {
> > + List args =
> > optionParser.getValues(OptionsDefinitions.OPTIONS.LIST);
> > + if (optionParser.hasOption(OptionsDefinitions.OPTIONS.NODASHHELP))
> > {
> > printListHelp();
> > return SUCCESS;
> > }
> > @@ -169,33 +169,29 @@
> > /**
> > * Handles the 'get' command.
> > *
> > - * @param args the arguments to the get command
> > * @return an integer representing success (SUCCESS) or error
> > handling the
> > * get command.
> > */
> > - public int handleGetCommand(List args) {
> > - if (args.contains("help")) {
> > + public int handleGetCommand() {
> > + List args =
> > optionParser.getValues(OptionsDefinitions.OPTIONS.GET);
> > + if (optionParser.hasOption(OptionsDefinitions.OPTIONS.NODASHHELP))
> > {
> > printGetHelp();
> > return SUCCESS;
> > }
> >
> > - if (args.size() != 1) {
> > - printGetHelp();
> > - return ERROR;
> > - }
> > -
> > Map> all = config.getRaw();
> >
> > - String key = args.get(0);
> > - String value = null;
> > - if (all.containsKey(key)) {
> > - value = all.get(key).getValue();
> > - OutputController.getLogger().printOutLn(value);
> > - return SUCCESS;
> > - } else {
> > -
> > OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL,
> > R("CLUnknownProperty", key));
> > - return ERROR;
> > + for (String key : args) {
> > + String value = null;
> > + if (all.containsKey(key)) {
> > + value = all.get(key).getValue();
> > + OutputController.getLogger().printOutLn(key+": "+value);
> > + } else {
> > +
> > OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL,
> > R("CLUnknownProperty", key));
> > + return ERROR;
> > + }
> > }
> > + return SUCCESS;
> > }
> >
> > /**
> > @@ -210,39 +206,46 @@
> > /**
> > * Handles the 'set' command
> > *
> > - * @param args the arguments to the set command
> > * @return an integer indicating success (SUCCESS) or error in
> > handling
> > * the command
> > */
> > - public int handleSetCommand(List args) {
> > - if (args.contains("help")) {
> > + public int handleSetCommand() {
> > + List args =
> > optionParser.getValues(OptionsDefinitions.OPTIONS.SET);
> > + args = OptionParser.splitListOnEquals(args);
> > + if (optionParser.hasOption(OptionsDefinitions.OPTIONS.NODASHHELP))
> > {
> > printSetHelp();
> > return SUCCESS;
> > }
> >
> > - if (args.size() != 2) {
> > + if (args.size() % 2 != 0) {
>
> This is no go. This must be handeld by parser.
> on optionParser.getValues(OptionsDefinitions.OPTIONS.SET);
> parser must return you something "known"
>
> your choice if it is some special object of you,which contains key+value, or
> values separated by =,
> or always even numer of args (probably best). NBUt parser is who have to
> prepare it - and check
> it. (==die when non even result is at the end or whatever)
Okay. With this I added a new exception called UnevenParameterException, that is thrown when even pairs are expected but not found. When the order matters, it ensures each command that expects even pairs has even pairs each occurrence where as if order does not matter then it checks that it has even pairs for the total params of the command.
Order Matters
Ex. evenExpectingCommand param1 param2 OTHERCOMMAND evenExpectingCommand param3 param4
OKAY
Ex. evenExpectingCommand param1 param2 param3 OTHERCOMMAND evenExpectingCommand param4 param5 param 6
NOT OKAY throws UnevenParameterException
Not Order Matters
Ex. evenExpectingCommand param1 param2 OTHERCOMMAND evenExpectingCommand param3 param4
OKAY
Ex. evenExpectingCommand param1 param2 param3 OTHERCOMMAND evenExpectingCommand param4 param5 param 6
OKAY
Ex. evenExpectingCommand param1 OTHERCOMMAND evenExpectingCommand param4 param5
NOT OKAY throws UnevenParameterException
> > printSetHelp();
> > return ERROR;
> > }
> > + String key = "";
> > + String value;
> >
> > - String key = args.get(0);
> > - String value = args.get(1);
> > -
> > - if (config.getRaw().containsKey(key)) {
> > - Setting old = config.getRaw().get(key);
> > - if (old.getValidator() != null) {
> > - try {
> > - old.getValidator().validate(value);
> > - } catch (IllegalArgumentException e) {
> > -
> > OutputController.getLogger().log(OutputController.Level.WARNING_ALL,
> > R("CLIncorrectValue", old.getName(), value,
> > old.getValidator().getPossibleValues()));
> > - OutputController.getLogger().log(e);
> > - return ERROR;
> > + for (String arg : args) {
> > + if (args.indexOf(arg) % 2 == 0) {
>
> same
> > + key = arg;
> > + } else {
> > + value = arg;
> > + if (config.getRaw().containsKey(key)) {
> > + Setting old = config.getRaw().get(key);
> ... snip. simialr issues.
>
> > + assertEquals("baseballbat", list.get(6));
> > + }
> > +
> > }
> > \ No newline at end of file
> >
>
>
> Well what crossed my mind.
>
> at first - you must hanlde your set key=value in parser - that means new
> NUmberOfArguments value.
> Some EVEN_NUMBER_OR_WITHEQUALCHAR. ok?
>
>
> And then parser will figh tiwith it.
>
>
> Then I was thinking about the multiple options versus limited options.
>
> To introduce limited options, it really need new parameter into
> OPTIONS(String option, String helperString, String decriptionKey,
> NumberOfArguments
> numberOfArguments) {
> not instead NumberOfArguments, you got me wrong. *new*.
>
> So it will be OPTIONS(String option, String helperString, String
> decriptionKey, NumberOfArguments
> numberOfArguments, ArgumentOccurence oc) {
> where ArgumentOccurence is new enum with values like exactly one, one or
> more, unique.. or
> similar. Eg Xclearcahce is good candidate for NON_OR_UNIQUE (as it have no
> sensein other cases...
> And I'm still not sure with how to proceed with HELP - it clearly cannot be
> NONE_OR UNIQUE, but
> should be :D )
>
> But his would need to be tuned as separate changeset *before* tthis patch (as
> it is independent
> patch toOptionPArser)
>
> However, as javaws have 99% of arguments asked like hasOption() (except
> -arg,-param -property", -update and -jnlp (and one null - the main arg)
> and those args are handled in main in order, and javaws is terinaed
> accordingly, and... well this
> sucks - only *first* of them have actually effect.
>
> The second one is silently ignored (?) - except mainarg - in this case javaws
> is terminated.
>
> On one side, it is really god to have so powerfull validation, on seconf,
> maybe it is to enforcing -
> thoughts?
>
> So I .. once javaws is so lenient to params, why not itweb-settings.
Yeah
> And, with your original idea of allmighty interpreter - it will be even
> *simple*
>
> So my idea was.
>
> You have
> private final Map>
> parsedOptions;
> Lets change it to list!
> private final List
>
> where parsed option is NewClass
> contaiing
> OptionsDefinitions.OPTIONS, name
> and List params
>
> (dont forget about null mian param, and param-les soptions)
> - you may also move some(all?) verification (on number of params) logic to
> this class
>
> Now - you wil have to change hasOption method - but afaik it is all.
>
> In this parsedOptions you naow have all items, including the order. And of
> course validated values
> (both valid options only, and valid params only)
>
> So the itweb-stting cmd clinet, should do nothhing more, then iterate through
> this array, and
> evaluate each param....
>
>
> Now - the best solution is probably *good* mixture of ArgumentOccurence and
> lanient list...I jsut
> can not see it.
>
>
>
> I'm on pto next week, please consult with jie/andrew/jacob/omair. Maybe in
> meantime you may adapt
> PolicyEditor to parser - it is much simple. But I would liek to verify tthe
> itweb-setting option
> parser before push. And of course you may discuse those list x
> ArgumentOccurence +/-
>
>
> Sorry for neverending itterations, but I'm still somehow unhappy about the
> state of this future.
It's alright, I want to get this into a great state too.
I implemented your ParsedOption idea, which I think is really good. I also changed it back to allowing Multiple Options again instead of limited options so I didn't implement ArgumentOccurence. Should we go with Multiple Options being allowed or limited options ? I think with the List of ParsedOption approach, multiple option is implemented better than before. Also the main help message is displayed only if help is the first command or after headless as the 2nd command, any help after that will count display help for the command before it, which means you could display multiple helps ex. ./itweb-settings get help set help reset help will show the command help for get set reset.
Also now the static splitListOnEquals/Symbols is no longer used/needed other than the unit tests, Should I remove them ? (I'm of the opinion yes).
Thank you,
Lukasz Dracz
-------------- next part --------------
A non-text attachment was scrubbed...
Name: itweb-settingsOptionParser-10.patch
Type: text/x-patch
Size: 60783 bytes
Desc: not available
URL:
From ldracz at redhat.com Mon Oct 6 22:10:14 2014
From: ldracz at redhat.com (Lukasz Dracz)
Date: Mon, 6 Oct 2014 18:10:14 -0400 (EDT)
Subject: /hg/icedtea-web: IcedTea-Web Splashscreen allows zero or one
hyp...
In-Reply-To: <5432C638.8060305@redhat.com>
References:
<54325329.1070701@redhat.com>
<510155172.15486591.1412608251115.JavaMail.zimbra@redhat.com>
<5432C638.8060305@redhat.com>
Message-ID: <1322313908.15644027.1412633414579.JavaMail.zimbra@redhat.com>
Hello,
> On 10/06/2014 05:10 PM, Lukasz Dracz wrote:
> > Hello,
> >
> > Sorry, I thought at the time the change/difference was small enough but I
> > agree even the smallest changes should get reviewed. The reasoning behind
> > the change is that I thought -*headless was not a correct change, since
> > really only headless and -headless are accepted as options, anything with
> > more dashes is not accepted such as --headless, ---headless, -----headless
> > etc. It did not make sense to have a user put ---headless, then have the
> > icedtea-web splash screen not appear only to get a message back that
> > ---headless is not an accepted option. That is why I changed what was
> > agreed upon to what is actually supported, which is only headless or
> > -headless.
> > Once again I am sorry, I did not mean to violate the review process. Do you
> > want to support -*headless ? So anything from headless to --*--headless I
> > can make the required changes if that is what is wanted in option parser.
> > Should the change be reverted ?
> >
>
> In case that your parser supports only -headless or headles, tehn your chnage
> will be ok. I also
> like your ^ and [] enhancement. For that I will do nothing more then ping you
> adn verify stuff.
>
> But I would swear, that we agreed on -* support.
Ah yes because I thought it did actually work like that with headless or -----headless being the same at the time, then when I looked into it more, I was thinking just adapting the splash screen to how it was implemented with just headless or -headless. My question is do you want it to support --*--headless ? I'm fine with that as it does add leniency and flexibility to how our users input options but on the other hand I don't expect any one to really to put ----headless for ex. The idea behind allowing -headless or headless was that it wouldn't matter if the user remembers if it had a dash or not.
>
> However in code I now can see the
>
> private boolean stringEqualsOption(String input, OptionsDefinitions.OPTIONS
> opt) {
> String option = opt.option.replaceAll("^-","").split("=")[0];
> input = input.replaceAll("^-","").split("=")[0];
> if (input.equals(option)) {
> return true;
> }
> return false;
> }
>
>
> Which really accept only -{0,1}
>
> And the method is not tested;)
>
>
> So with that, you are cleared for this well intentioned change, but please,
> try to avoid it.
> especially when original review is gone;)
Alright, I will double check with the list next time :)
> Also please [rfc] attached patch, which is fixing both those issues.
Do you want me to review it ? or to post it on the list as a separate thread ?
I'll review it right now, It looks good :)
The only thing I'm wondering is maybe instead of sanitize call the method removeAllDashes / removeDashes / sanitizeDashes to be more descriptive of what it does.
Other than that it looks good to push if you want to go into the direction of supporting -*-headless :) +1
> Sorry for the "attack", but at least it clarified the -/--/---// hyphens
> issue
Yes its good that the hyphens issue is being clarified ! I don't mind "attacks" as they help me learn from my mistakes and makes sure I do my best ;)
> J.
>
> ps: * but please, really try to avoid such last-moment changes *
okay :)
Thank you,
Lukasz Dracz
> >
> > ----- Original Message -----
> >> From: "Jiri Vanek"
> >> To: ldracz at icedtea.classpath.org, distro-pkg-dev at openjdk.java.net
> >> Sent: Monday, October 6, 2014 4:30:33 AM
> >> Subject: Re: /hg/icedtea-web: IcedTea-Web Splashscreen allows zero or one
> >> hyp...
> >>
> >> Shouldnt it be zero to infinity hyphens?
> >>> +++ b/launcher/launchers.in Fri Oct 03 14:20:40 2014 -0400
> >>> @@ -53,7 +53,7 @@
> >>> *)
> >>> ARGS[$j]="$1"
> >>> j=$((j+1))
> >>> - if [ "$1" = "-headless" ] ; then
> >>> + if [[ "$1" =~ ^[-]{0,1}headless ]] ; then
> >>
> >> => + if [[ "$1" =~ ^[-]*headless ]] ; then
> >>
> >> I rember it like this....
> >>
> >> ?
> >>> SPLASH="false"
> >>> fi
> >>> ;;
> >>>
> >>
> >>
> >> diff -r 6d62f68fb037 launcher/launchers.in
> >> --- a/launcher/launchers.in Mon Sep 22 17:10:07 2014 +0200
> >> +++ b/launcher/launchers.in Thu Sep 25 17:26:49 2014 -0400
> >> @@ -53,7 +53,7 @@
> >> *)
> >> ARGS[$j]="$1"
> >> j=$((j+1))
> >> - if [ "$1" = "-headless" ] ; then
> >> + if [[ "$1" =~ -*headless ]] ; then
> >> SPLASH="false"
> >> fi
> >> ;;
> >>
> >>
> >> is your original chnageset. I have not found discussion about this chnage,
> >> and unless I overlooked it, it is violating the review process.
> >>
> >>
> >> ????
> >> J.
> >>
>
>
From ptisnovs at icedtea.classpath.org Tue Oct 7 09:08:39 2014
From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org)
Date: Tue, 07 Oct 2014 09:08:39 +0000
Subject: /hg/gfx-test: Ten new tests added into CAGOperationsOnTwoOverlap...
Message-ID:
changeset 378b0815b19e in /hg/gfx-test
details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=378b0815b19e
author: Pavel Tisnovsky
date: Tue Oct 07 11:09:56 2014 +0200
Ten new tests added into CAGOperationsOnTwoOverlappingRectangles.
diffstat:
ChangeLog | 5 +
src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingRectangles.java | 250 ++++++++++
2 files changed, 255 insertions(+), 0 deletions(-)
diffs (272 lines):
diff -r 47623b180f44 -r 378b0815b19e ChangeLog
--- a/ChangeLog Mon Oct 06 11:05:51 2014 +0200
+++ b/ChangeLog Tue Oct 07 11:09:56 2014 +0200
@@ -1,3 +1,8 @@
+2014-10-07 Pavel Tisnovsky
+
+ * src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingRectangles.java:
+ Ten new tests added into CAGOperationsOnTwoOverlappingRectangles.
+
2014-10-06 Pavel Tisnovsky
* src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingCircles.java:
diff -r 47623b180f44 -r 378b0815b19e src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingRectangles.java
--- a/src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingRectangles.java Mon Oct 06 11:05:51 2014 +0200
+++ b/src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingRectangles.java Tue Oct 07 11:09:56 2014 +0200
@@ -2682,6 +2682,256 @@
}
/**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping rectangles using union operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testUnionTextureFillUsingRGBTexture3(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingRGBTexture3(image, graphics2d);
+ // create area using union operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRectanglesUsingUnionOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping rectangles using subtract operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testSubtractTextureFillUsingRGBTexture3(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingRGBTexture3(image, graphics2d);
+ // create area using subtract operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRectanglesUsingSubtractOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping rectangles using inverse subtract operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testInverseSubtractTextureFillUsingRGBTexture3(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingRGBTexture3(image, graphics2d);
+ // create area using inverse subtract operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRectanglesUsingInverseSubtractOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping rectangles using Intersect operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testIntersectTextureFillUsingRGBTexture3(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingRGBTexture3(image, graphics2d);
+ // create area using Intersect operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRectanglesUsingIntersectOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping rectangles using Xor operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testXorTextureFillUsingRGBTexture3(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingRGBTexture3(image, graphics2d);
+ // create area using Xor operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRectanglesUsingXorOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping rectangles using union operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testUnionTextureFillUsingRGBTexture4(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingRGBTexture4(image, graphics2d);
+ // create area using union operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRectanglesUsingUnionOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping rectangles using subtract operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testSubtractTextureFillUsingRGBTexture4(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingRGBTexture4(image, graphics2d);
+ // create area using subtract operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRectanglesUsingSubtractOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping rectangles using inverse subtract operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testInverseSubtractTextureFillUsingRGBTexture4(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingRGBTexture4(image, graphics2d);
+ // create area using inverse subtract operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRectanglesUsingInverseSubtractOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping rectangles using Intersect operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testIntersectTextureFillUsingRGBTexture4(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingRGBTexture4(image, graphics2d);
+ // create area using Intersect operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRectanglesUsingIntersectOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from two overlapping rectangles using Xor operator. The shape is rendered
+ * using texture paint (fill).
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testXorTextureFillUsingRGBTexture4(TestImage image, Graphics2D graphics2d)
+ {
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTextureFillUsingRGBTexture4(image, graphics2d);
+ // create area using Xor operator
+ Area area = CommonCAGOperations.createAreaFromTwoOverlappingRectanglesUsingXorOperator(image);
+ // draw the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
* Entry point to the test suite.
*
* @param args
From jvanek at icedtea.classpath.org Tue Oct 7 11:22:09 2014
From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org)
Date: Tue, 07 Oct 2014 11:22:09 +0000
Subject: /hg/icedtea-web: Option parser now accept 0-n hyphens
Message-ID:
changeset d1cc60519f24 in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=d1cc60519f24
author: Jiri Vanek
date: Tue Oct 07 13:21:47 2014 +0200
Option parser now accept 0-n hyphens
diffstat:
ChangeLog | 11 +++++
NEWS | 1 +
launcher/launchers.in | 2 +-
netx/net/sourceforge/jnlp/util/optionparser/OptionParser.java | 15 ++++---
tests/netx/unit/net/sourceforge/jnlp/util/optionparser/OptionParserTest.java | 19 ++++++++++
5 files changed, 40 insertions(+), 8 deletions(-)
diffs (94 lines):
diff -r 8071a44fe6de -r d1cc60519f24 ChangeLog
--- a/ChangeLog Fri Oct 03 14:20:40 2014 -0400
+++ b/ChangeLog Tue Oct 07 13:21:47 2014 +0200
@@ -1,3 +1,14 @@
+2014-09-22 Jiri Vanek
+
+ Option parser now accept 0-n hyphens
+ * launcher/launchers.in: regex matching for headless changed to * instead of 0-1
+ * netx/net/sourceforge/jnlp/util/optionparser/OptionParser.java: added new
+ method to removeLeadiingHyphens. (stringEqualsOption) now sanitize both inputs
+ by it.
+ * tests/netx/unit/net/sourceforge/jnlp/util/optionparser/OptionParserTest.java:
+ Added tests to verify none or more leading hyphens are correctly recognized.
+ Added tests to verify hyphens elsewhere will not confuse parser.
+
2014-10-03 Lukasz Dracz
IcedTea-Web Splashscreen allows zero or one hyphens preceding headless option
diff -r 8071a44fe6de -r d1cc60519f24 NEWS
--- a/NEWS Fri Oct 03 14:20:40 2014 -0400
+++ b/NEWS Tue Oct 07 13:21:47 2014 +0200
@@ -15,6 +15,7 @@
* JDK 8 support added (URLPermission granted if applicable)
* Added DE localisation
* Added KEY_ENABLE_MANIFEST_ATTRIBUTES_CHECK deployment property to control scan of Manifest file
+* starting arguments now accept also -- abbreviations
* Control Panel
- PR1856: ControlPanel UI improvement for lower resolutions (800*600)
* NetX
diff -r 8071a44fe6de -r d1cc60519f24 launcher/launchers.in
--- a/launcher/launchers.in Fri Oct 03 14:20:40 2014 -0400
+++ b/launcher/launchers.in Tue Oct 07 13:21:47 2014 +0200
@@ -53,7 +53,7 @@
*)
ARGS[$j]="$1"
j=$((j+1))
- if [[ "$1" =~ ^[-]{0,1}headless ]] ; then
+ if [[ "$1" =~ ^[-]*headless ]] ; then
SPLASH="false"
fi
;;
diff -r 8071a44fe6de -r d1cc60519f24 netx/net/sourceforge/jnlp/util/optionparser/OptionParser.java
--- a/netx/net/sourceforge/jnlp/util/optionparser/OptionParser.java Fri Oct 03 14:20:40 2014 -0400
+++ b/netx/net/sourceforge/jnlp/util/optionparser/OptionParser.java Tue Oct 07 13:21:47 2014 +0200
@@ -164,13 +164,14 @@
return mainArg;
}
- private boolean stringEqualsOption(String input, OptionsDefinitions.OPTIONS opt) {
- String option = opt.option.replaceAll("^-","").split("=")[0];
- input = input.replaceAll("^-","").split("=")[0];
- if (input.equals(option)) {
- return true;
- }
- return false;
+ protected static boolean stringEqualsOption(String input, OptionsDefinitions.OPTIONS opt) {
+ String option = removeLeadingHyphens(opt.option).split("=")[0];
+ input = removeLeadingHyphens(input).split("=")[0];
+ return input.equals(option);
+ }
+
+ private static String removeLeadingHyphens(final String input) {
+ return input.replaceAll("^-*", "");
}
public boolean hasOption(OptionsDefinitions.OPTIONS option) {
diff -r 8071a44fe6de -r d1cc60519f24 tests/netx/unit/net/sourceforge/jnlp/util/optionparser/OptionParserTest.java
--- a/tests/netx/unit/net/sourceforge/jnlp/util/optionparser/OptionParserTest.java Fri Oct 03 14:20:40 2014 -0400
+++ b/tests/netx/unit/net/sourceforge/jnlp/util/optionparser/OptionParserTest.java Tue Oct 07 13:21:47 2014 +0200
@@ -397,4 +397,23 @@
assertEquals(3, values.indexOf("yellow"));
assertEquals("red", parser.getMainArg());
}
+
+ @Test
+ public void testOptionsSyntaxPositive() {
+ assertTrue(OptionParser.stringEqualsOption("headless", OptionsDefinitions.OPTIONS.HEADLESS));
+ assertTrue(OptionParser.stringEqualsOption("-headless", OptionsDefinitions.OPTIONS.HEADLESS));
+ assertTrue(OptionParser.stringEqualsOption("--headless", OptionsDefinitions.OPTIONS.HEADLESS));
+ assertTrue(OptionParser.stringEqualsOption("---headless", OptionsDefinitions.OPTIONS.HEADLESS));
+ }
+
+ @Test
+ public void testOptionsSyntaxNegative() {
+ assertFalse(OptionParser.stringEqualsOption(" -headless", OptionsDefinitions.OPTIONS.HEADLESS));
+ assertFalse(OptionParser.stringEqualsOption("h-eadless", OptionsDefinitions.OPTIONS.HEADLESS));
+ assertFalse(OptionParser.stringEqualsOption("headless-", OptionsDefinitions.OPTIONS.HEADLESS));
+ assertFalse(OptionParser.stringEqualsOption("- -headless", OptionsDefinitions.OPTIONS.HEADLESS));
+ assertFalse(OptionParser.stringEqualsOption("--- ---headless", OptionsDefinitions.OPTIONS.HEADLESS));
+ assertFalse(OptionParser.stringEqualsOption("- ---headless", OptionsDefinitions.OPTIONS.HEADLESS));
+ assertFalse(OptionParser.stringEqualsOption("--- -headless", OptionsDefinitions.OPTIONS.HEADLESS));
+ }
}
\ No newline at end of file
From jvanek at redhat.com Tue Oct 7 11:27:24 2014
From: jvanek at redhat.com (Jiri Vanek)
Date: Tue, 07 Oct 2014 13:27:24 +0200
Subject: /hg/icedtea-web: IcedTea-Web Splashscreen allows zero or one
hyp...
In-Reply-To: <1322313908.15644027.1412633414579.JavaMail.zimbra@redhat.com>
References:
<54325329.1070701@redhat.com>
<510155172.15486591.1412608251115.JavaMail.zimbra@redhat.com>
<5432C638.8060305@redhat.com>
<1322313908.15644027.1412633414579.JavaMail.zimbra@redhat.com>
Message-ID: <5433CE1C.5060901@redhat.com>
> I'll review it right now, It looks good :)
Thanx!
> The only thing I'm wondering is maybe instead of sanitize call the method removeAllDashes / removeDashes / sanitizeDashes to be more descriptive of what it does.
renamed
>
> Other than that it looks good to push if you want to go into the direction of supporting -*-headless :) +1
Yes, I really would like
My reason is:
- the linux convention is -x where x is short argument. and -abcd are four short args - we dont
support this
- another convention is --longOne two hyphens means long, verbose argument - now we are
supporting it :)
- for some reason, pilot javaws impl was not using neither - it had -longOne :-/
So imho now we are more unix like, and still like pilot javaws....
my $0.02
>
>> Sorry for the "attack", but at least it clarified the -/--/---// hyphens
>> issue
>
Thanx for check!
pushed.
>
From bugzilla-daemon at icedtea.classpath.org Tue Oct 7 14:30:54 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Tue, 07 Oct 2014 14:30:54 +0000
Subject: [Bug 2029] New: web-storage-service fails to start if machine is not
connected to the internet
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2029
Bug ID: 2029
Summary: web-storage-service fails to start if machine is not
connected to the internet
Product: Thermostat
Version: hg
Hardware: x86_64
OS: Linux
Status: NEW
Severity: enhancement
Priority: P5
Component: agent
Assignee: unassigned at icedtea.classpath.org
Reporter: omajid at redhat.com
CC: thermostat at icedtea.classpath.org
It looks like some code in thermostat tries to resolve "java.sun.com" and
aborts startup if the URL can not be reached. The result is that thermostat
does not work if the machine is isolated from the internet :(
To reproduce, just disconnect from the internet and run `web-storage-service`:
$ ./distribution/target/image/bin/thermostat web-storage-service
Oct 07, 2014 10:24:16 AM com.redhat.thermostat.agent.internal.RMIRegistryImpl
start
FINE: Starting RMI registry
Oct 07, 2014 10:24:16 AM com.redhat.thermostat.service.activator.Activator
start
INFO: activating thermostat-process bundles
Oct 07, 2014 10:24:16 AM com.redhat.thermostat.agent.command.internal.Activator
start
INFO: activating thermostat-agent-confserver
Oct 07, 2014 10:24:16 AM
com.redhat.thermostat.storage.cli.internal.MongoProcessRunner
deleteStalePidFile
WARNING: A stale pid file (/home/omajid/.thermostat/run/db.pid) is present but
there is no matching mongod process. Removing stale pid file.
starting storage server...
Oct 07, 2014 10:24:16 AM
com.redhat.thermostat.common.utils.LoggedExternalProcess run
INFO: about to fork child process, waiting until server is ready for
connections.
Oct 07, 2014 10:24:16 AM
com.redhat.thermostat.common.utils.LoggedExternalProcess run
INFO: forked process: 15440
Oct 07, 2014 10:24:16 AM
com.redhat.thermostat.common.utils.LoggedExternalProcess run
INFO: all output going to: /home/omajid/.thermostat/logs/db.log
Oct 07, 2014 10:24:16 AM
com.redhat.thermostat.common.utils.LoggedExternalProcess run
INFO: log file [/home/omajid/.thermostat/logs/db.log] exists; copied to
temporary file [/home/omajid/.thermostat/logs/db.log.2014-10-07T14-24-16]
Oct 07, 2014 10:24:17 AM
com.redhat.thermostat.common.utils.LoggedExternalProcess run
INFO: child process started successfully, parent exiting
server listening on ip: mongodb://127.0.0.1:27518
log file is here: /home/omajid/.thermostat/logs/db.log
pid: 15440
Oct 07, 2014 10:24:17 AM
com.redhat.thermostat.web.endpoint.internal.JettyContainerLauncher
doStartContainerAndDeployWar
INFO: found file in: bundle://14.0:1/org/eclipse/jetty/webapp/webdefault.xml
Oct 07, 2014 10:24:17 AM
com.redhat.thermostat.web.endpoint.internal.JettyContainerLauncher
configureJaas
FINE: Using JAAS config
'/home/omajid/javaone/thermostat/distribution/target/image/etc/thermostat_jaas.conf'
2014-10-07 10:24:17.645:INFO:oejs.Server:Thread-3: jetty-9.1.0.v20131115
2014-10-07 10:24:17.757:WARN:oejw.WebAppContext:Thread-3: Failed startup of
context
o.e.j.w.WebAppContext at 31932672{/thermostat/storage,file:/home/omajid/javaone/thermostat/distribution/target/image/webapp/,null}{/home/omajid/javaone/thermostat/distribution/target/image/webapp}
java.net.UnknownHostException: java.sun.com
at
java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
at sun.net.www.http.HttpClient.(HttpClient.java:211)
at sun.net.www.http.HttpClient.New(HttpClient.java:308)
at sun.net.www.http.HttpClient.New(HttpClient.java:326)
at
sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:996)
at
sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:932)
at
sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:850)
at
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1300)
at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:637)
at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1290)
at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:1257)
at
com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:263)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1164)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1050)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:964)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
at
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:117)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:648)
at
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:332)
at org.eclipse.jetty.xml.XmlParser.parse(XmlParser.java:246)
at org.eclipse.jetty.webapp.Descriptor.parse(Descriptor.java:65)
at org.eclipse.jetty.webapp.WebDescriptor.parse(WebDescriptor.java:148)
at org.eclipse.jetty.webapp.MetaData.setWebXml(MetaData.java:172)
at
org.eclipse.jetty.webapp.WebXmlConfiguration.preConfigure(WebXmlConfiguration.java:60)
at
org.eclipse.jetty.webapp.WebAppContext.preConfigure(WebAppContext.java:454)
at
org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:490)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:69)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:117)
at org.eclipse.jetty.server.Server.start(Server.java:355)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:99)
at
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:60)
at org.eclipse.jetty.server.Server.doStart(Server.java:324)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:69)
at
com.redhat.thermostat.web.endpoint.internal.JettyContainerLauncher.doStartContainerAndDeployWar(JettyContainerLauncher.java:214)
at
com.redhat.thermostat.web.endpoint.internal.JettyContainerLauncher.startContainerAndDeployWar(JettyContainerLauncher.java:125)
at
com.redhat.thermostat.web.endpoint.internal.JettyContainerLauncher.access$000(JettyContainerLauncher.java:77)
at
com.redhat.thermostat.web.endpoint.internal.JettyContainerLauncher$1.run(JettyContainerLauncher.java:99)
at java.lang.Thread.run(Thread.java:745)
2014-10-07 10:24:17.759:WARN:oejuc.AbstractLifeCycle:Thread-3: FAILED
o.e.j.w.WebAppContext at 31932672{/thermostat/storage,file:/home/omajid/javaone/thermostat/distribution/target/image/webapp/,UNAVAILABLE}{/home/omajid/javaone/thermostat/distribution/target/image/webapp}:
java.net.UnknownHostException: java.sun.com
java.net.UnknownHostException: java.sun.com
at
java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
at sun.net.www.http.HttpClient.(HttpClient.java:211)
at sun.net.www.http.HttpClient.New(HttpClient.java:308)
at sun.net.www.http.HttpClient.New(HttpClient.java:326)
at
sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:996)
at
sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:932)
at
sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:850)
at
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1300)
at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:637)
at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1290)
at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:1257)
at
com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:263)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1164)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1050)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:964)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
at
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:117)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:648)
at
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:332)
at org.eclipse.jetty.xml.XmlParser.parse(XmlParser.java:246)
at org.eclipse.jetty.webapp.Descriptor.parse(Descriptor.java:65)
at org.eclipse.jetty.webapp.WebDescriptor.parse(WebDescriptor.java:148)
at org.eclipse.jetty.webapp.MetaData.setWebXml(MetaData.java:172)
at
org.eclipse.jetty.webapp.WebXmlConfiguration.preConfigure(WebXmlConfiguration.java:60)
at
org.eclipse.jetty.webapp.WebAppContext.preConfigure(WebAppContext.java:454)
at
org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:490)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:69)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:117)
at org.eclipse.jetty.server.Server.start(Server.java:355)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:99)
at
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:60)
at org.eclipse.jetty.server.Server.doStart(Server.java:324)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:69)
at
com.redhat.thermostat.web.endpoint.internal.JettyContainerLauncher.doStartContainerAndDeployWar(JettyContainerLauncher.java:214)
at
com.redhat.thermostat.web.endpoint.internal.JettyContainerLauncher.startContainerAndDeployWar(JettyContainerLauncher.java:125)
at
com.redhat.thermostat.web.endpoint.internal.JettyContainerLauncher.access$000(JettyContainerLauncher.java:77)
at
com.redhat.thermostat.web.endpoint.internal.JettyContainerLauncher$1.run(JettyContainerLauncher.java:99)
at java.lang.Thread.run(Thread.java:745)
server shutdown complete: /home/omajid/.thermostat/data/db
log file is here: /home/omajid/.thermostat/logs/db.log
Failed to start embedded jetty instance
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From jvanek at icedtea.classpath.org Tue Oct 7 14:51:49 2014
From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org)
Date: Tue, 07 Oct 2014 14:51:49 +0000
Subject: /hg/icedtea-web: Files, arguments types and icedtea-web man page...
Message-ID:
changeset d214c5f0fef7 in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=d214c5f0fef7
author: Jiri Vanek
date: Tue Oct 07 16:51:08 2014 +0200
Files, arguments types and icedtea-web man page made localizable
diffstat:
ChangeLog | 20 +-
netx/net/sourceforge/jnlp/OptionsDefinitions.java | 10 +-
netx/net/sourceforge/jnlp/config/PathsAndFiles.java | 47 ++-
netx/net/sourceforge/jnlp/resources/Messages.properties | 67 +++++-
netx/net/sourceforge/jnlp/util/docprovider/IcedTeaWebTextsProvider.java | 50 +--
netx/net/sourceforge/jnlp/util/docprovider/formatters/formatters/Formatter.java | 2 +
netx/net/sourceforge/jnlp/util/docprovider/formatters/formatters/ReplacingTextFormatter.java | 11 +
tests/netx/unit/net/sourceforge/jnlp/util/docprovider/formatters/formatters/FormatterTest.java | 113 ++++++++++
8 files changed, 263 insertions(+), 57 deletions(-)
diffs (474 lines):
diff -r d1cc60519f24 -r d214c5f0fef7 ChangeLog
--- a/ChangeLog Tue Oct 07 13:21:47 2014 +0200
+++ b/ChangeLog Tue Oct 07 16:51:08 2014 +0200
@@ -1,9 +1,25 @@
-2014-09-22 Jiri Vanek
+2014-10-07 Jiri Vanek
+
+ Files, arguments types and icedtea-web man page made localizable
+ * netx/net/sourceforge/jnlp/OptionsDefinitions.java: (NumberOfArguments)
+ sentences moved to properties
+ * netx/net/sourceforge/jnlp/config/PathsAndFiles.java: same
+ * netx/net/sourceforge/jnlp/util/docprovider/IcedTeaWebTextsProvider.java: same
+ * netx/net/sourceforge/jnlp/resources/Messages.properties: added families of
+ ITW, NOA and FILE
+ * netx/net/sourceforge/jnlp/util/docprovider/formatters/formatters/Formatter.java:
+ added getNewLine override with argument, number of new lines to be generated
+ * netx/net/sourceforge/jnlp/util/docprovider/formatters/formatters/ReplacingTextFormatter.java
+ getNewLine(int i) implemented
+ * tests/netx/unit/net/sourceforge/jnlp/util/docprovider/formatters/formatters/FormatterTest.java
+ getNewLine(int i) tested for all formatters
+
+2014-10-07 Jiri Vanek
Option parser now accept 0-n hyphens
* launcher/launchers.in: regex matching for headless changed to * instead of 0-1
* netx/net/sourceforge/jnlp/util/optionparser/OptionParser.java: added new
- method to removeLeadiingHyphens. (stringEqualsOption) now sanitize both inputs
+ method to removeLeadingHyphens. (stringEqualsOption) now sanitize both inputs
by it.
* tests/netx/unit/net/sourceforge/jnlp/util/optionparser/OptionParserTest.java:
Added tests to verify none or more leading hyphens are correctly recognized.
diff -r d1cc60519f24 -r d214c5f0fef7 netx/net/sourceforge/jnlp/OptionsDefinitions.java
--- a/netx/net/sourceforge/jnlp/OptionsDefinitions.java Tue Oct 07 13:21:47 2014 +0200
+++ b/netx/net/sourceforge/jnlp/OptionsDefinitions.java Tue Oct 07 16:51:08 2014 +0200
@@ -137,11 +137,11 @@
}
private enum NumberOfArguments {
- NONE("No argument expected"),
- ONE("Exactly one argument expected"),
- ONE_OR_MORE("Expected one or more arguments"),
- EQUALS_CHAR("Expected -param=value vaue declaration");
-
+ NONE("NOAnone"),
+ ONE("NOAone"),
+ ONE_OR_MORE("NOAonemore"),
+ EQUALS_CHAR("NOAequalschar");
+
String messageKey;
NumberOfArguments(String messageKey) {
diff -r d1cc60519f24 -r d214c5f0fef7 netx/net/sourceforge/jnlp/config/PathsAndFiles.java
--- a/netx/net/sourceforge/jnlp/config/PathsAndFiles.java Tue Oct 07 13:21:47 2014 +0200
+++ b/netx/net/sourceforge/jnlp/config/PathsAndFiles.java Tue Oct 07 16:51:08 2014 +0200
@@ -98,25 +98,25 @@
* PIPES_DIR and both Plugin Dirs are not instatiated to be used. Do exists only for documentation purposes.
* Maintained by native part of ITW. Or outside ITW.
*/
- public static final InfrastructureFileDescriptor PIPES_DIR = new RuntimeFileDescriptor("icedteaplugin-user-*", "contains in and out pipe for native2java communication and (if enabled) debugging pipe.", Target.PLUGIN);
- public static final InfrastructureFileDescriptor MOZILA_USER = new HomeFileDescriptor(ICEDTEA_SO, ".mozilla/plugins", "Location of plugin library for user's purposes on mozilla compliant browser", Target.PLUGIN);
- public static final InfrastructureFileDescriptor MOZILA_GLOBAL_64 = new InfrastructureFileDescriptor(ICEDTEA_SO, "/usr/lib64/mozilla/plugins/", "", "Location of plugin library for global purposes on mozilla compliant browser, 64b systems", Target.PLUGIN);
- public static final InfrastructureFileDescriptor MOZILA_GLOBAL_32 = new InfrastructureFileDescriptor(ICEDTEA_SO, "/usr/lib/mozilla/plugins/", "", "Location of plugin library for global purposes on mozilla compliant browser, 32b systems", Target.PLUGIN);
- public static final InfrastructureFileDescriptor OPERA_64 = new InfrastructureFileDescriptor(ICEDTEA_SO, "/usr/lib64/opera/plugins/", "", "Location of plugin library for global purposes on opera compliant browser, 64b systems", Target.PLUGIN);
- public static final InfrastructureFileDescriptor OPERA_32 = new InfrastructureFileDescriptor(ICEDTEA_SO, "/usr/lib/opera/plugins/", "", "Location of plugin library for global purposes on opera compliant browser, 32b systems", Target.PLUGIN);
+ public static final InfrastructureFileDescriptor PIPES_DIR = new RuntimeFileDescriptor("icedteaplugin-user-*", "FILEpipe", Target.PLUGIN);
+ public static final InfrastructureFileDescriptor MOZILA_USER = new HomeFileDescriptor(ICEDTEA_SO, ".mozilla/plugins", "FILEmozillauser", Target.PLUGIN);
+ public static final InfrastructureFileDescriptor MOZILA_GLOBAL_64 = new InfrastructureFileDescriptor(ICEDTEA_SO, "/usr/lib64/mozilla/plugins/", "", "FILEmozillaglobal64", Target.PLUGIN);
+ public static final InfrastructureFileDescriptor MOZILA_GLOBAL_32 = new InfrastructureFileDescriptor(ICEDTEA_SO, "/usr/lib/mozilla/plugins/", "", "FILEmozillaglobal32", Target.PLUGIN);
+ public static final InfrastructureFileDescriptor OPERA_64 = new InfrastructureFileDescriptor(ICEDTEA_SO, "/usr/lib64/opera/plugins/", "", "FILEopera64", Target.PLUGIN);
+ public static final InfrastructureFileDescriptor OPERA_32 = new InfrastructureFileDescriptor(ICEDTEA_SO, "/usr/lib/opera/plugins/", "", "FILEopera32", Target.PLUGIN);
- public static final InfrastructureFileDescriptor CACHE_DIR = new ItwCacheFileDescriptor("cache", "contains cached runtime entries (and my be changed by you).", Target.JAVAWS, Target.ITWEB_SETTINGS);
- public static final InfrastructureFileDescriptor PCACHE_DIR = new ItwCacheFileDescriptor("pcache", "contains saved application data.", Target.JAVAWS, Target.ITWEB_SETTINGS);
- public static final InfrastructureFileDescriptor LOG_DIR = new ItwConfigFileDescriptor("log", "(may be set to different location by you) contains file log files (if enabled). itw-cplugin-date_time.log for native part of plugin, itw-javantx-date_time.log for everything else.", Target.JAVAWS, Target.ITWEB_SETTINGS);
- public static final InfrastructureFileDescriptor APPLET_TRUST_SETTINGS_USER = new ItwConfigFileDescriptor(APPLET_TRUST_SETTINGS, "File responsible for various actions on applets and apps based on their codebase based on users actions.", Target.JAVAWS, Target.ITWEB_SETTINGS);
- public static final InfrastructureFileDescriptor APPLET_TRUST_SETTINGS_SYS = new SystemDeploymentCofigFileDescriptor(APPLET_TRUST_SETTINGS, "File responsible for various actions on applets and apps based on their codebase based on admins actions.", Target.JAVAWS, Target.ITWEB_SETTINGS);
- public static final InfrastructureFileDescriptor ETC_DEPLOYMENT_CFG = new SystemDeploymentCofigFileDescriptor(DEPLOYMENT_CONFIG_FILE, "Global deployment properties.", Target.JAVAWS, Target.ITWEB_SETTINGS);
- public static final InfrastructureFileDescriptor TMP_DIR = new ItwCacheFileDescriptor("tmp", "contains temporary runtime files.", Target.JAVAWS, Target.ITWEB_SETTINGS);
+ public static final InfrastructureFileDescriptor CACHE_DIR = new ItwCacheFileDescriptor("cache", "FILEcache", Target.JAVAWS, Target.ITWEB_SETTINGS);
+ public static final InfrastructureFileDescriptor PCACHE_DIR = new ItwCacheFileDescriptor("pcache", "FILEappdata", Target.JAVAWS, Target.ITWEB_SETTINGS);
+ public static final InfrastructureFileDescriptor LOG_DIR = new ItwConfigFileDescriptor("log", "FILElogs", Target.JAVAWS, Target.ITWEB_SETTINGS);
+ public static final InfrastructureFileDescriptor APPLET_TRUST_SETTINGS_USER = new ItwConfigFileDescriptor(APPLET_TRUST_SETTINGS, "FILEextasuser", Target.JAVAWS, Target.ITWEB_SETTINGS);
+ public static final InfrastructureFileDescriptor APPLET_TRUST_SETTINGS_SYS = new SystemDeploymentCofigFileDescriptor(APPLET_TRUST_SETTINGS, "FILEextasadmin", Target.JAVAWS, Target.ITWEB_SETTINGS);
+ public static final InfrastructureFileDescriptor ETC_DEPLOYMENT_CFG = new SystemDeploymentCofigFileDescriptor(DEPLOYMENT_CONFIG_FILE, "FILEglobaldp", Target.JAVAWS, Target.ITWEB_SETTINGS);
+ public static final InfrastructureFileDescriptor TMP_DIR = new ItwCacheFileDescriptor("tmp", "FILEtmpappdata", Target.JAVAWS, Target.ITWEB_SETTINGS);
- public static final InfrastructureFileDescriptor LOCKS_DIR = new TmpUsrFileDescriptor("locks", "netx", "location of netx locks.", Target.JAVAWS);
- public static final InfrastructureFileDescriptor MAIN_LOCK = new TmpUsrFileDescriptor("netx_running", "netx" + File.separator + "locks", "location of netx locks.", Target.JAVAWS);
+ public static final InfrastructureFileDescriptor LOCKS_DIR = new TmpUsrFileDescriptor("locks", "netx", "FILElocksdir", Target.JAVAWS);
+ public static final InfrastructureFileDescriptor MAIN_LOCK = new TmpUsrFileDescriptor("netx_running", "netx" + File.separator + "locks", "FILEmainlock", Target.JAVAWS);
- public static final InfrastructureFileDescriptor JAVA_POLICY = new UserSecurityConfigFileDescriptor("java.policy", "contains granted permissions for selected unsigned apps.", Target.JAVAWS, Target.POLICY_EDITOR);
+ public static final InfrastructureFileDescriptor JAVA_POLICY = new UserSecurityConfigFileDescriptor("java.policy", "FILEpolicy", Target.JAVAWS, Target.POLICY_EDITOR);
public static final InfrastructureFileDescriptor USER_CACERTS = new UserCacertsFileDescriptor("trusted.cacerts");
public static final InfrastructureFileDescriptor USER_JSSECAC = new UserCacertsFileDescriptor("trusted.jssecacerts");
public static final InfrastructureFileDescriptor USER_CERTS = new UserCacertsFileDescriptor("trusted.certs");
@@ -129,7 +129,14 @@
public static final InfrastructureFileDescriptor SYS_JSSECERT = new SystemJavaSecurityFileDescriptor("trusted.jssecerts");
public static final InfrastructureFileDescriptor SYS_CLIENTCERT = new SystemJavaSecurityFileDescriptor("trusted.clientcerts");
- public static final InfrastructureFileDescriptor JAVA_DEPLOYMENT_PROP_FILE = new SystemJavaLibFileDescriptor(DEPLOYMENT_CONFIG_FILE, "java-global deployment properties file. May be affected by " + DeploymentConfiguration.KEY_JRE_DIR + ".", Target.JAVAWS, Target.ITWEB_SETTINGS);
+ public static final InfrastructureFileDescriptor JAVA_DEPLOYMENT_PROP_FILE = new SystemJavaLibFileDescriptor(DEPLOYMENT_CONFIG_FILE, "FILEjavadp", Target.JAVAWS, Target.ITWEB_SETTINGS){
+
+ @Override
+ public String getDescription() {
+ return Translator.R(descriptionKey, DeploymentConfiguration.KEY_JRE_DIR);
+ }
+
+ };
public static final InfrastructureFileDescriptor USER_DEPLOYMENT_FILE = new ItwConfigFileDescriptor(DEPLOYMENT_PROPERTIES, "Users main deployment properties file.", Target.JAVAWS, Target.ITWEB_SETTINGS);
private static enum Target {
@@ -185,7 +192,7 @@
public final String fileName;
public final String pathStub;
public final String systemPathStub;
- private final String descriptionKey;
+ protected final String descriptionKey;
private final Target[] target;
private InfrastructureFileDescriptor(String fileName, String pathStub, String systemPathStub, String descriptionKey, Target... target) {
@@ -298,7 +305,7 @@
private static class SystemJavaSecurityFileDescriptor extends SystemJavaLibFileDescriptor {
private SystemJavaSecurityFileDescriptor(String fileName) {
- super(fileName, "security", "contains various system java-wide stored certificates.", Target.JAVAWS);
+ super(fileName, "security", "FILEjavacerts", Target.JAVAWS);
}
}
@@ -365,7 +372,7 @@
private static class UserCacertsFileDescriptor extends UserSecurityConfigFileDescriptor {
private UserCacertsFileDescriptor(String fileName) {
- super(fileName, "contains various users stored certificates.", Target.JAVAWS);
+ super(fileName, "FILEusercerts", Target.JAVAWS);
}
}
diff -r d1cc60519f24 -r d214c5f0fef7 netx/net/sourceforge/jnlp/resources/Messages.properties
--- a/netx/net/sourceforge/jnlp/resources/Messages.properties Tue Oct 07 13:21:47 2014 +0200
+++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Tue Oct 07 16:51:08 2014 +0200
@@ -232,11 +232,45 @@
RBrowserLocationPromptTitle=Browser Location
RBrowserLocationPromptMessage=Specify Browser Location
RBrowserLocationPromptMessageWithReason=Specify Browser Location (the browser command "{0}" is invalid).
+
+# icedtea-web man (note, spaces are important due to man pages markup
+ITWintroL1={0}provides a Free Software web browser plugin running applets written in the Java programming language and an implementation of Java Web Start, originally based on the NetX project.
+ITWintroL2=NetX allows Java applets and applications to be downloaded over the network, cached, and (by default) run in a secure sandbox environment. Subsequent runs of the applet download the latest version automatically. Update and security settings, among others, can be set using the itw-settings command.
+ITWintroL3={0} also includes a plugin to {1} within web browsers.
+ITWintroUrlCaption = enable Java applets
BFileInfoAuthors=Names and email addresses of contributors to this project can be found in the file AUTHORS in the IcedTea-Web root directory.
BFileInfoCopying=The full GPLv2 license of this project can be found in the file COPYING in the IcedTea-Web root directory.
BFileInfoNews=News about releases of this project can be found in the file NEWS in the IcedTea-Web root directory.
+ITWdescO1title=Modular
+ITWdescO1text=Easily add JNLP capabilities to an application.
+ITWdescO2title=Saves Memory
+ITWdescO2text=Launch programs in a shared JVM.
+ITWdescO3title=Fast startup
+ITWdescO3text=Runs applications from a cache for fast starting.
+ITWdescO4title=Security
+ITWdescO4text=Run any application in a sandbox or log its activities.
+ITWdescO5title=Auto-Update
+ITWdescO5text=Applications can auto-update without special code.
+ITWdescO6title=Network Deployment
+ITWdescO6text=Deploy to the internet, not with installers.
+ITWdescO7title=Open Source
+ITWdescO7text=GNU Lesser General Public License.
+ITWdescL1=Visit the {0} or specifically the {1} pages for more information.
+ITWdescWikiUrlTitle=IcedTea project wiki
+ITWdescItwWikiUrlTitle=IcedTea-Web home
+ITWdescL2=Help with common issues with IcedTea-Web can be found {0} .
+ITWdescIssuesUrlTitle=here
+ITWdescL3=NetX features:
+ITWoptionsL1=A {0} guide for the IcedTea project is available on the wiki.
+ITWoptionsQuickStartUrlCaption=QuickStart
+ITWoptionsCodeUrlUrlCaption=Code style
+ITWoptionsL2={0} guidelines and {1} instructions for IcedTea-Web are available as well. Patches should be accompanied by unit tests and {2} before being sent to {3}
+ITWoptionsEclipseUrlCaption=Eclipse setup
+ITWoptionsReproducersUrlCaption=reproducers
+ITWoptionsDistroUrlCaption=the mailing list
+ITWoptionsL3=Contributing:
-#policyeditor man (note, spaces (especially the one around @@ markup)are important due to man pages markup
+# policyeditor man (note, spaces (especially the one around @@ markup)are important due to man pages markup
PEintro= - view and modify security policy settings for @BOLD_OPEN at javaws @BOLD_CLOSE at and the @BOLD_OPEN at browser plugin at BOLD_CLOSE@
PEsynopseP1=policy_file
PEsynopseP2=url
@@ -250,7 +284,7 @@
PEexampleL2=Show the GUI editor with no file opened.
-#javaws man (note, spaces (especially the one around @@ markup)are important due to man pages markup
+# javaws man (note, spaces (especially the one around @@ markup)are important due to man pages markup
JWSintro= - a Java Web Start client
JWSdescL1=is an implementation of a JNLP client. It uses a JNLP (Java Network Launch Protocol) file to securely run a remote Java application or a Java applet. \
This implementation of {0}is from the IcedTea project and is based on the NetX project.
@@ -305,6 +339,12 @@
be added and selected. Multiple URLs may also be given with a single -codebase flag by separating them with spaces. In this case, the last codebase given will be selected, and all will be \
added. If this flag is given more than once, only the first is used.
+# NumberOfArguments descriptions.
+NOAnone=No argument expected
+NOAone=Exactly one argument expected
+NOAonemore=Expected one or more arguments
+NOAequalschar=Expected -param=value vaue declaration
+
# Allowed man sections
manNAME=NAME
manSYNOPSIS=SYNOPSIS
@@ -906,6 +946,29 @@
CBCheckSignedAppletDontMatchException = Signed applets are not allowed to run when their actual Codebase does not match the Codebase specified in their manifest. Expected: {0}. Actual: {1}. See: http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/security/no_redeploy.html for details.
CBCheckSignedFail = Application Codebase does NOT match the Codebase specified in the application's manifest, and this application is signed. You are strongly discouraged from running this application. See: http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/security/no_redeploy.html for details.
+# files descriptions
+FILEpipe=Contains in and out pipe for native2java communication and (if enabled) debugging pipe.
+FILEmozillauser=Location of plugin library for user's purposes on mozilla compliant browser.
+FILEmozillaglobal64=Location of plugin library for global purposes on mozilla compliant browser, 64b systems.
+FILEmozillaglobal32=Location of plugin library for global purposes on mozilla compliant browser, 32b systems.
+FILEopera64=Location of plugin library for global purposes on opera compliant browser, 64b systems.
+FILEopera32=Location of plugin library for global purposes on opera compliant browser, 32b systems.
+
+FILEcache=Contains cached runtime entries (and my be changed by you).
+FILEappdata=Contains saved application data.
+FILElogs=(may be set to different location by you) contains file log files (if enabled). itw-cplugin-date_time.log for native part of plugin, itw-javantx-date_time.log for everything else.
+FILEextasuser=File responsible for various actions on applets and apps based on their codebase based on users actions.
+FILEextasadmin=File responsible for various actions on applets and apps based on their codebase based on admins actions.
+FILEglobaldp=Global deployment config file.
+FILEtmpappdata=Contains temporary runtime files.
+FILElocksdir=Location of netx locks.
+FILEmainlock=Location of netx main lock.
+FILEpolicy=Contains granted permissions for selected unsigned apps.
+FILEusercerts=Contains various users stored certificates.
+FILEjavacerts=Contains various system java-wide stored certificates.
+FILEjavadp=java-global deployment properties file. May be affected by {0}.
+FILEuserdp=main deployment properties file.
+
APPEXTSECappletSecurityLevelExtraHighId=Disable running of all Java applets
APPEXTSECappletSecurityLevelVeryHighId=Very High Security
APPEXTSECappletSecurityLevelHighId=High Security
diff -r d1cc60519f24 -r d214c5f0fef7 netx/net/sourceforge/jnlp/util/docprovider/IcedTeaWebTextsProvider.java
--- a/netx/net/sourceforge/jnlp/util/docprovider/IcedTeaWebTextsProvider.java Tue Oct 07 13:21:47 2014 +0200
+++ b/netx/net/sourceforge/jnlp/util/docprovider/IcedTeaWebTextsProvider.java Tue Oct 07 16:51:08 2014 +0200
@@ -50,21 +50,16 @@
public String getIntroduction() {
return super.getIntroduction()
+ getFormatter().wrapParagraph(
- getFormatter().getBold(getId() + " ")
- + "provides a Free Software web browser plugin running applets written in the Java programming language"
- + " and an implementation of Java Web Start, originally based on the NetX project."
- + getFormatter().getNewLine() + getFormatter().getNewLine()
- + "NetX allows Java applets and applications to be downloaded over the network, cached, and (by default) run"
- + " in a secure sandbox environment. Subsequent runs of the applet download the latest version automatically. Update"
- + " and security settings, among others, can be set using the itw-settings command."
+ Translator.R("ITWintroL1",getFormatter().getBold(getId() + " "))
+ + getFormatter().getNewLine(2)
+ + Translator.R("ITWintroL2")
+ getFormatter().getNewLine()
- + getId() + " also includes a plugin to " + getFormatter().getUrl("http://www.java.com/en/download/testjava.jsp", "enable Java applets")
- + " within web browsers."
+ + Translator.R("ITWintroL3", getId(), getFormatter().getUrl("http://www.java.com/en/download/testjava.jsp", Translator.R("ITWintroUrlCaption")))
+ getFormatter().getNewLine()
+ getFormatter().getOption("",Translator.R("BFileInfoAuthors"))
+ getFormatter().getOption("",Translator.R("BFileInfoCopying"))
+ getFormatter().getOption("",Translator.R("BFileInfoNews"))
- + getFormatter().getNewLine() + getFormatter().getNewLine());
+ + getFormatter().getNewLine(2));
}
@@ -76,35 +71,34 @@
@Override
public String getDescription() {
StringBuilder p1 = new StringBuilder();
- p1.append(getFormatter().getOption("Modular", "Easily add JNLP capabilities to an application."));
- p1.append(getFormatter().getOption("Saves Memory", "Launch programs in a shared JVM."));
- p1.append(getFormatter().getOption("Fast startup", "Runs applications from a cache for fast starting."));
- p1.append(getFormatter().getOption("Security", "Run any application in a sandbox or log its activities."));
- p1.append(getFormatter().getOption("Auto-Update", "Applications can auto-update without special code."));
- p1.append(getFormatter().getOption("Network Deployment", "Deploy to the internet, not with installers."));
- p1.append(getFormatter().getOption("Open Source", "GNU Lesser General Public License."));
+ //there is 7 pairs of keys ITWdescO X title/text. I was to lazy to enumerate them manually
+ for (int x = 1; x <= 7; x++) {
+ p1.append(getFormatter().getOption(Translator.R("ITWdescO" + x + "title"), Translator.R("ITWdescO" + x + "text")));
+ }
p1.append(getFormatter().getNewLine());
StringBuilder p2 = new StringBuilder();
- p2.append("Visit the ").append(getFormatter().getUrl(IT_MAIN, "IcedTea project wiki"));
- p2.append(" or specifically the ").append(getFormatter().getUrl(ITW_HOME, "IcedTea-Web home")).append(" pages for more information.");
+
+ p2.append(Translator.R("ITWdescL1",
+ getFormatter().getUrl(IT_MAIN, Translator.R("ITWdescWikiUrlTitle")),
+ getFormatter().getUrl(ITW_HOME, Translator.R("ITWdescItwWikiUrlTitle"))));
p2.append(getFormatter().getNewLine());
- p2.append("Help with common issues with IcedTea-Web can be found ").append(getFormatter().getUrl(ITW_ISSUES, "here"));
+ p2.append(Translator.R("ITWdescL2", getFormatter().getUrl(ITW_ISSUES, Translator.R("ITWdescIssuesUrlTitle"))));
p2.append(getFormatter().getNewLine());
- String header = getFormatter().getBold("Features of NetX: ") + getFormatter().getNewLine();
+ String header = getFormatter().getBold(Translator.R("ITWdescL3") + " ") + getFormatter().getNewLine();
return super.getDescription() + getFormatter().wrapParagraph(header) + getFormatter().wrapParagraph(p1.toString()) + getFormatter().getNewLine() + getFormatter().wrapParagraph(p2.toString());
}
@Override
public String getOptions() {
- String l1 = "A " + getFormatter().getUrl(IT_QUICK, "QuickStart") + " guide for the IcedTea project is available on the wiki.";
- String l2 = getFormatter().getUrl(ITW_STYLE, "Code style") + " guidelines and "
- + getFormatter().getUrl(ITW_ECLIPSE, "Eclipse setup") + " instructions for IcedTea-Web"
- + " are available as well. Patches should be accompanied by unit tests and"
- + getFormatter().getUrl(ITW_REPRODUCERS, "reproducers") + " before being sent to"
- + getFormatter().getUrl(DISTRO_PKG, "the mailing list");
- String header = getFormatter().getBold("Contributing: ") + getFormatter().getNewLine();
+ String l1 = Translator.R("ITWoptionsL1",getFormatter().getUrl(IT_QUICK,Translator.R("ITWoptionsQuickStartUrlCaption")));
+ String l2 = Translator.R("ITWoptionsL2",
+ getFormatter().getUrl(ITW_STYLE, Translator.R("ITWoptionsCodeUrlUrlCaption")),
+ getFormatter().getUrl(ITW_ECLIPSE, Translator.R("ITWoptionsEclipseUrlCaption")),
+ getFormatter().getUrl(ITW_REPRODUCERS,Translator.R( "ITWoptionsReproducersUrlCaption")),
+ getFormatter().getUrl(DISTRO_PKG, Translator.R("ITWoptionsDistroUrlCaption")));
+ String header = getFormatter().getBold(Translator.R("ITWoptionsL3")) + getFormatter().getNewLine();
return getFormatter().wrapParagraph(header) + getFormatter().wrapParagraph(l1) + getFormatter().wrapParagraph(l2);
}
diff -r d1cc60519f24 -r d214c5f0fef7 netx/net/sourceforge/jnlp/util/docprovider/formatters/formatters/Formatter.java
--- a/netx/net/sourceforge/jnlp/util/docprovider/formatters/formatters/Formatter.java Tue Oct 07 13:21:47 2014 +0200
+++ b/netx/net/sourceforge/jnlp/util/docprovider/formatters/formatters/Formatter.java Tue Oct 07 16:51:08 2014 +0200
@@ -10,6 +10,8 @@
public String getNewLine();
+ public String getNewLine(int count);
+
public String getBold(String s);
public String getBoldOpening();
diff -r d1cc60519f24 -r d214c5f0fef7 netx/net/sourceforge/jnlp/util/docprovider/formatters/formatters/ReplacingTextFormatter.java
--- a/netx/net/sourceforge/jnlp/util/docprovider/formatters/formatters/ReplacingTextFormatter.java Tue Oct 07 13:21:47 2014 +0200
+++ b/netx/net/sourceforge/jnlp/util/docprovider/formatters/formatters/ReplacingTextFormatter.java Tue Oct 07 16:51:08 2014 +0200
@@ -39,6 +39,17 @@
return Boot.version;
}
}
+
+ @Override
+ public String getNewLine(int count) {
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < count; i++) {
+ sb.append(getNewLine());
+ }
+ return sb.toString();
+ }
+
+
diff -r d1cc60519f24 -r d214c5f0fef7 tests/netx/unit/net/sourceforge/jnlp/util/docprovider/formatters/formatters/FormatterTest.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/netx/unit/net/sourceforge/jnlp/util/docprovider/formatters/formatters/FormatterTest.java Tue Oct 07 16:51:08 2014 +0200
@@ -0,0 +1,113 @@
+/*
+ Copyright (C) 2014 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.docprovider.formatters.formatters;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class FormatterTest {
+
+ @Test
+ public void testNoNewLinesPlain() {
+ PlainTextFormatter f = new PlainTextFormatter();
+ String s = f.getNewLine(0);
+ Assert.assertEquals("", s);
+ }
+
+ @Test
+ public void testOneNewLinesPlain() {
+ PlainTextFormatter f = new PlainTextFormatter();
+ String s = f.getNewLine(1);
+ Assert.assertEquals(f.getNewLine(), s);
+ }
+
+ @Test
+ public void testXNewLinesPlain() {
+ PlainTextFormatter f = new PlainTextFormatter();
+ final int x = 10;
+ String s = f.getNewLine(x);
+ String[] a = s.replace(f.getNewLine(), "X" + f.getNewLine()).split("[" + f.getNewLine() + "]{1}");
+ Assert.assertEquals(x, a.length);
+ }
+
+ @Test
+ public void testNoNewLinesHtml() {
+ HtmlFormatter f = new HtmlFormatter();
+ String s = f.getNewLine(0);
+ Assert.assertEquals("", s);
+ }
+
+ @Test
+ public void testOneNewLinesHtml() {
+ HtmlFormatter f = new HtmlFormatter();
+ String s = f.getNewLine(1);
+ Assert.assertEquals(f.getNewLine(), s);
+ }
+
+ @Test
+ public void testXNewLinesHtml() {
+ HtmlFormatter f = new HtmlFormatter();
+ final int x = 10;
+ String s = f.getNewLine(x);
+ String[] a = s.split("(?mi)br");
+ Assert.assertEquals(x + 1, a.length);//br is in middleof element
+ }
+
+ @Test
+ public void testNoNewLinesMan() {
+ ManFormatter f = new ManFormatter();
+ String s = f.getNewLine(0);
+ Assert.assertEquals("", s);
+ }
+
+ @Test
+ public void testOneNewLinesMan() {
+ ManFormatter f = new ManFormatter();
+ String s = f.getNewLine(1);
+ Assert.assertEquals(f.getNewLine(), s);
+ }
+
+ @Test
+ public void testXNewLinesMan() {
+ ManFormatter f = new ManFormatter();
+ final int x = 10;
+ String s = f.getNewLine(x);
+ String[] a = s.split("(?m)\\.br");
+ Assert.assertEquals(x + 1, a.length);//br is in middleof element
+ }
+
+}
From jvanek at redhat.com Tue Oct 7 17:11:22 2014
From: jvanek at redhat.com (Jiri Vanek)
Date: Tue, 07 Oct 2014 19:11:22 +0200
Subject: [rfc][icedtea-web][itweb-settings] itweb-settings use Option
Parser
In-Reply-To: <1570273198.15632389.1412630652794.JavaMail.zimbra@redhat.com>
References: <2136433079.7489666.1411075684213.JavaMail.zimbra@redhat.com>
<541C3995.2080104@redhat.com>
<1888728818.9296441.1411419281545.JavaMail.zimbra@redhat.com>
<54243024.5050109@redhat.com>
<1795754452.11172633.1411680531876.JavaMail.zimbra@redhat.com>
<54255285.6080406@redhat.com>
<1570273198.15632389.1412630652794.JavaMail.zimbra@redhat.com>
Message-ID: <54341EBA.4080707@redhat.com>
On 10/06/2014 11:24 PM, Lukasz Dracz wrote:
> Hello,
>
>> >Uff... Now you will hate me. I have changed my mind a bit, And i need we need
>> >to fix an ols parser a
>> >bit.
>> >
>> >At first inline
>> >
>> >
>> >Rest innline
>> >
>>> > >
>>> > >
>>> > >itweb-settingsOptionParser-6.patch
>>> > >
>>> > >
>>> > >diff -r 6d62f68fb037 launcher/launchers.in
>>> > >--- a/launcher/launchers.in Mon Sep 22 17:10:07 2014 +0200
>>> > >+++ b/launcher/launchers.in Thu Sep 25 17:26:49 2014 -0400
>>> > >@@ -53,7 +53,7 @@
>>> > > *)
>>> > > ARGS[$j]="$1"
>>> > > j=$((j+1))
>>> > >- if [ "$1" = "-headless" ] ; then
>>> > >+ if [[ "$1" =~ -*headless ]] ; then
>>> > > SPLASH="false"
>>> > > fi
>>> > > ;;
>> >
>> >Thsi is good. Please push as separate changeset (please let aazores/jie to
>> >check the changelog
>> >before push)
>> >
>>> > >diff -r 6d62f68fb037 netx/net/sourceforge/jnlp/OptionsDefinitions.java
>>> > >--- a/netx/net/sourceforge/jnlp/OptionsDefinitions.java Mon Sep 22 17:10:07
>>> > >2014 +0200
>>> > >+++ b/netx/net/sourceforge/jnlp/OptionsDefinitions.java Thu Sep 25 17:26:49
>>> > >2014 -0400
>>> > >@@ -73,14 +73,14 @@
>>> > > TRUSTNONE("-Xtrustnone","BOTrustnone"),
>>> > > JNLP("-jnlp","BOJnlp", NumberOfArguments.ONE),
>>> > > //itweb settings
>>> > >- NODASHHELP("help", "IBOHelp"),
>>> > >- LIST("list", "IBOList"),
>>> > >- GET("get", "name", "IBOGet"),
>>> > >- INFO("info", "name", "IBOInfo"),
>>> > >- SET("set", "name value", "IBOSet"),
>>> > >- RESETALL("reset", "all", "IBOResetAll"),
>>> > >- RESET("reset", "name", "IBOReset"),
>>> > >- CHECK("check", "name", "IBOCheck"),
>>> > >+ NODASHHELP("-help", "IBOHelp"),
>> >
>> >we dont need this ;) This isnow duplication of HELP (maybe only the
>> >properties message needs tuning
>> >to suite both - if possible) otherwise wee need to go with some HELP2 (I
>> >prefer first)
> Using only one Help now for both. Changed the message.
>
>>> > >+ LIST("-list", "IBOList"),
>>> > >+ GET("-get", "name", "IBOGet", NumberOfArguments.ONE_OR_MORE),
>>> > >+ INFO("-info", "name", "IBOInfo", NumberOfArguments.ONE_OR_MORE),
>>> > >+ SET("-set", "name value", "IBOSet",
>>> > >NumberOfArguments.ONE_OR_MORE),
>>> > >+ RESETALL("-reset", "all", "IBOResetAll"),
>>> > >+ RESET("-reset", "name", "IBOReset",
>>> > >NumberOfArguments.ONE_OR_MORE),
>>> > >+ CHECK("-check", "name", "IBOCheck"),
>> >
>> >Otherwise this is good.
>>> > > //policyeditor
>>> > > //-help
>>> > > FILE("-file", "policy_file", "PBOFile"),
>>> > >@@ -160,8 +160,9 @@
>>> > > OPTIONS.GET,
>>> > > OPTIONS.INFO,
>>> > > OPTIONS.SET,
>>> > >+ OPTIONS.RESET,
>>> > > OPTIONS.RESETALL,
>>> > >- OPTIONS.RESET,
>>> > >+ OPTIONS.HEADLESS,
>>> > > OPTIONS.CHECK
>>> > > });
>>> > > }
>>> > >diff -r 6d62f68fb037
>>> > >netx/net/sourceforge/jnlp/controlpanel/CommandLine.java
>>> > >--- a/netx/net/sourceforge/jnlp/controlpanel/CommandLine.java Mon Sep 22
>>> > >17:10:07 2014 +0200
>>> > >+++ b/netx/net/sourceforge/jnlp/controlpanel/CommandLine.java Thu Sep 25
>>> > >17:26:49 2014 -0400
>>> > >@@ -21,8 +21,6 @@
>>> > > import static net.sourceforge.jnlp.runtime.Translator.R;
>>> > >
>>> > > import java.io.IOException;
>>> > >-import java.util.ArrayList;
>>> > >-import java.util.Arrays;
>>> > > import java.util.List;
>>> > > import java.util.Map;
>>> > >
>>> > >@@ -37,16 +35,17 @@
>>> > > import net.sourceforge.jnlp.util.docprovider.TextsProvider;
>>> > > import
>>> > > net.sourceforge.jnlp.util.docprovider.formatters.formatters.PlainTextFormatter;
>>> > > import net.sourceforge.jnlp.util.logging.OutputController;
>>> > >+import net.sourceforge.jnlp.util.optionparser.OptionParser;
>>> > >
>>> > > /**
>>> > > * Encapsulates a command line interface to the deployment configuration.
>>> > > *
>>> > >- * The central method is {@link #handle(String[])}, which calls one of the
>>> > >- * various 'handle' methods. The commands listed in {@link #allCommands}
>>> > >are
>>> > >+ * The central method is {@link #handle()}, which calls one of the
>>> > >+ * various 'handle' methods. The commands listed in OptionsDefinitions are
>>> > > * supported. For each supported command, a method handleCOMMANDCommand
>>> > > exists.
>>> > > * This method actually takes action based on the command. Generally, a
>>> > > * printCOMMANDHelp method also exists, and prints out the help message
>>> > > for
>>> > >- * that specific command. For example, see {@link
>>> > >#handleListCommand(List)}
>>> > >+ * that specific command. For example, see {@link #handleListCommand()}
>>> > > * and {@link #printListHelp()}.
>>> > > *
>>> > > * Sample usage:
>>> > >@@ -72,6 +71,7 @@
>>> > >
>>> > >
>>> > > DeploymentConfiguration config = null;
>>> > >+ private static OptionParser optionParser;
>>> > >
>>> > > /**
>>> > > * Creates a new instance
>>> > >@@ -125,11 +125,11 @@
>>> > > /**
>>> > > * Handles the 'list' command
>>> > > *
>>> > >- * @param args the arguments to the list command
>>> > > * @return result of handling the command. SUCCESS if no errors
>>> > > occurred.
>>> > > */
>>> > >- public int handleListCommand(List args) {
>>> > >- if (args.contains("help")) {
>>> > >+ public int handleListCommand() {
>>> > >+ List args =
>>> > >optionParser.getValues(OptionsDefinitions.OPTIONS.LIST);
>>> > >+ if (optionParser.hasOption(OptionsDefinitions.OPTIONS.NODASHHELP))
>>> > >{
>>> > > printListHelp();
>>> > > return SUCCESS;
>>> > > }
>>> > >@@ -169,33 +169,29 @@
>>> > > /**
>>> > > * Handles the 'get' command.
>>> > > *
>>> > >- * @param args the arguments to the get command
>>> > > * @return an integer representing success (SUCCESS) or error
>>> > > handling the
>>> > > * get command.
>>> > > */
>>> > >- public int handleGetCommand(List args) {
>>> > >- if (args.contains("help")) {
>>> > >+ public int handleGetCommand() {
>>> > >+ List args =
>>> > >optionParser.getValues(OptionsDefinitions.OPTIONS.GET);
>>> > >+ if (optionParser.hasOption(OptionsDefinitions.OPTIONS.NODASHHELP))
>>> > >{
>>> > > printGetHelp();
>>> > > return SUCCESS;
>>> > > }
>>> > >
>>> > >- if (args.size() != 1) {
>>> > >- printGetHelp();
>>> > >- return ERROR;
>>> > >- }
>>> > >-
>>> > > Map> all = config.getRaw();
>>> > >
>>> > >- String key = args.get(0);
>>> > >- String value = null;
>>> > >- if (all.containsKey(key)) {
>>> > >- value = all.get(key).getValue();
>>> > >- OutputController.getLogger().printOutLn(value);
>>> > >- return SUCCESS;
>>> > >- } else {
>>> > >-
>>> > >OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL,
>>> > >R("CLUnknownProperty", key));
>>> > >- return ERROR;
>>> > >+ for (String key : args) {
>>> > >+ String value = null;
>>> > >+ if (all.containsKey(key)) {
>>> > >+ value = all.get(key).getValue();
>>> > >+ OutputController.getLogger().printOutLn(key+": "+value);
>>> > >+ } else {
>>> > >+
>>> > >OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL,
>>> > >R("CLUnknownProperty", key));
>>> > >+ return ERROR;
>>> > >+ }
>>> > > }
>>> > >+ return SUCCESS;
>>> > > }
>>> > >
>>> > > /**
>>> > >@@ -210,39 +206,46 @@
>>> > > /**
>>> > > * Handles the 'set' command
>>> > > *
>>> > >- * @param args the arguments to the set command
>>> > > * @return an integer indicating success (SUCCESS) or error in
>>> > > handling
>>> > > * the command
>>> > > */
>>> > >- public int handleSetCommand(List args) {
>>> > >- if (args.contains("help")) {
>>> > >+ public int handleSetCommand() {
>>> > >+ List args =
>>> > >optionParser.getValues(OptionsDefinitions.OPTIONS.SET);
>>> > >+ args = OptionParser.splitListOnEquals(args);
>>> > >+ if (optionParser.hasOption(OptionsDefinitions.OPTIONS.NODASHHELP))
>>> > >{
>>> > > printSetHelp();
>>> > > return SUCCESS;
>>> > > }
>>> > >
>>> > >- if (args.size() != 2) {
>>> > >+ if (args.size() % 2 != 0) {
>> >
>> >This is no go. This must be handeld by parser.
>> >on optionParser.getValues(OptionsDefinitions.OPTIONS.SET);
>> >parser must return you something "known"
>> >
>> >your choice if it is some special object of you,which contains key+value, or
>> >values separated by =,
>> >or always even numer of args (probably best). NBUt parser is who have to
>> >prepare it - and check
>> >it. (==die when non even result is at the end or whatever)
> Okay. With this I added a new exception called UnevenParameterException, that is thrown when even pairs are expected but not found. When the order matters, it ensures each command that expects even pairs has even pairs each occurrence where as if order does not matter then it checks that it has even pairs for the total params of the command.
>
> Order Matters
> Ex. evenExpectingCommand param1 param2 OTHERCOMMAND evenExpectingCommand param3 param4
> OKAY
> Ex. evenExpectingCommand param1 param2 param3 OTHERCOMMAND evenExpectingCommand param4 param5 param 6
> NOT OKAY throws UnevenParameterException
>
> Not Order Matters
> Ex. evenExpectingCommand param1 param2 OTHERCOMMAND evenExpectingCommand param3 param4
> OKAY
> Ex. evenExpectingCommand param1 param2 param3 OTHERCOMMAND evenExpectingCommand param4 param5 param 6
> OKAY
> Ex. evenExpectingCommand param1 OTHERCOMMAND evenExpectingCommand param4 param5
> NOT OKAY throws UnevenParameterException
>
>
>>> > > printSetHelp();
>>> > > return ERROR;
>>> > > }
>>> > >+ String key = "";
>>> > >+ String value;
>>> > >
>>> > >- String key = args.get(0);
>>> > >- String value = args.get(1);
>>> > >-
>>> > >- if (config.getRaw().containsKey(key)) {
>>> > >- Setting old = config.getRaw().get(key);
>>> > >- if (old.getValidator() != null) {
>>> > >- try {
>>> > >- old.getValidator().validate(value);
>>> > >- } catch (IllegalArgumentException e) {
>>> > >-
>>> > >OutputController.getLogger().log(OutputController.Level.WARNING_ALL,
>>> > >R("CLIncorrectValue", old.getName(), value,
>>> > >old.getValidator().getPossibleValues()));
>>> > >- OutputController.getLogger().log(e);
>>> > >- return ERROR;
>>> > >+ for (String arg : args) {
>>> > >+ if (args.indexOf(arg) % 2 == 0) {
>> >
>> >same
>>> > >+ key = arg;
>>> > >+ } else {
>>> > >+ value = arg;
>>> > >+ if (config.getRaw().containsKey(key)) {
>>> > >+ Setting old = config.getRaw().get(key);
>> >... snip. simialr issues.
>> >
>>> > >+ assertEquals("baseballbat", list.get(6));
>>> > >+ }
>>> > >+
>>> > > }
>>> > >\ No newline at end of file
>>> > >
>> >
>> >
>> >Well what crossed my mind.
>> >
>> >at first - you must hanlde your set key=value in parser - that means new
>> >NUmberOfArguments value.
>> >Some EVEN_NUMBER_OR_WITHEQUALCHAR. ok?
>> >
>> >
>> >And then parser will figh tiwith it.
>> >
>> >
>> >Then I was thinking about the multiple options versus limited options.
>> >
>> >To introduce limited options, it really need new parameter into
>> > OPTIONS(String option, String helperString, String decriptionKey,
>> > NumberOfArguments
>> >numberOfArguments) {
>> >not instead NumberOfArguments, you got me wrong.*new*.
>> >
>> >So it will be OPTIONS(String option, String helperString, String
>> >decriptionKey, NumberOfArguments
>> >numberOfArguments, ArgumentOccurence oc) {
>> >where ArgumentOccurence is new enum with values like exactly one, one or
>> >more, unique.. or
>> >similar. Eg Xclearcahce is good candidate for NON_OR_UNIQUE (as it have no
>> >sensein other cases...
>> >And I'm still not sure with how to proceed with HELP - it clearly cannot be
>> >NONE_OR UNIQUE, but
>> >should be :D )
>> >
>> >But his would need to be tuned as separate changeset*before* tthis patch (as
>> >it is independent
>> >patch toOptionPArser)
>> >
>> >However, as javaws have 99% of arguments asked like hasOption() (except
>> >-arg,-param -property", -update and -jnlp (and one null - the main arg)
>> >and those args are handled in main in order, and javaws is terinaed
>> >accordingly, and... well this
>> >sucks - only*first* of them have actually effect.
>> >
>> >The second one is silently ignored (?) - except mainarg - in this case javaws
>> >is terminated.
>> >
>> >On one side, it is really god to have so powerfull validation, on seconf,
>> >maybe it is to enforcing -
>> >thoughts?
>> >
>> >So I .. once javaws is so lenient to params, why not itweb-settings.
> Yeah
>
>> >And, with your original idea of allmighty interpreter - it will be even
>> >*simple*
>> >
>> >So my idea was.
>> >
>> >You have
>> > private final Map>
>> > parsedOptions;
>> >Lets change it to list!
>> > private final List
>> >
>> >where parsed option is NewClass
>> >contaiing
>> >OptionsDefinitions.OPTIONS, name
>> >and List params
>> >
>> >(dont forget about null mian param, and param-les soptions)
>> > - you may also move some(all?) verification (on number of params) logic to
>> > this class
>> >
>> >Now - you wil have to change hasOption method - but afaik it is all.
>> >
>> >In this parsedOptions you naow have all items, including the order. And of
>> >course validated values
>> >(both valid options only, and valid params only)
>> >
>> >So the itweb-stting cmd clinet, should do nothhing more, then iterate through
>> >this array, and
>> >evaluate each param....
>> >
>> >
>> >Now - the best solution is probably*good* mixture of ArgumentOccurence and
>> >lanient list...I jsut
>> >can not see it.
>> >
>> >
>> >
>> >I'm on pto next week, please consult with jie/andrew/jacob/omair. Maybe in
>> >meantime you may adapt
>> >PolicyEditor to parser - it is much simple. But I would liek to verify tthe
>> >itweb-setting option
>> >parser before push. And of course you may discuse those list x
>> >ArgumentOccurence +/-
>> >
>> >
>> >Sorry for neverending itterations, but I'm still somehow unhappy about the
>> >state of this future.
> It's alright, I want to get this into a great state too.
>
> I implemented your ParsedOption idea, which I think is really good. I also changed it back to allowing Multiple Options again instead of limited options so I didn't implement ArgumentOccurence. Should we go with Multiple Options being allowed or limited options ? I think with the List of ParsedOption approach, multiple option is implemented better than before. Also the main help message is displayed only if help is the first command or after headless as the 2nd command, any help after that will count display help for the command before it, which means you could display multiple helps ex. ./itweb-settings get help set help reset help will show the command help for get set reset.
"main help message is displayed only if help is the first command or after headless as t"
Cant it be done better?
well - it does not meter when headless is decalred - you only ask "optionPArser.hasOption(headles):
and set JnlpRuntime accordingly.
the help should decide whether it is global one, or command one more cleverly.
>
> Also now the static splitListOnEquals/Symbols is no longer used/needed other than the unit tests, Should I remove them ? (I'm of the opinion yes).
Move it to test file then.
>
> Thank you,
> Lukasz Dracz
>
>
> itweb-settingsOptionParser-10.patch
>
>
> diff -r 8071a44fe6de netx/net/sourceforge/jnlp/OptionsDefinitions.java
> --- a/netx/net/sourceforge/jnlp/OptionsDefinitions.java Fri Oct 03 14:20:40 2014 -0400
> +++ b/netx/net/sourceforge/jnlp/OptionsDefinitions.java Mon Oct 06 17:16:18 2014 -0400
> @@ -73,14 +73,13 @@
> TRUSTNONE("-Xtrustnone","BOTrustnone"),
> JNLP("-jnlp","BOJnlp", NumberOfArguments.ONE),
> //itweb settings
> - NODASHHELP("help", "IBOHelp"),
> - LIST("list", "IBOList"),
> - GET("get", "name", "IBOGet"),
> - INFO("info", "name", "IBOInfo"),
> - SET("set", "name value", "IBOSet"),
> - RESETALL("reset", "all", "IBOResetAll"),
> - RESET("reset", "name", "IBOReset"),
> - CHECK("check", "name", "IBOCheck"),
> + LIST("-list", "IBOList"),
> + GET("-get", "name", "IBOGet", NumberOfArguments.ONE_OR_MORE),
> + INFO("-info", "name", "IBOInfo", NumberOfArguments.ONE_OR_MORE),
> + SET("-set", "name value", "IBOSet", NumberOfArguments.EVEN_NUMBER_OR_WITHEQUALCHAR),
> + RESETALL("-reset", "all", "IBOResetAll"),
> + RESET("-reset", "name", "IBOReset", NumberOfArguments.ONE_OR_MORE),
> + CHECK("-check", "name", "IBOCheck"),
> //policyeditor
> //-help
> FILE("-file", "policy_file", "PBOFile"),
> @@ -123,6 +122,8 @@
> return numberOfArguments == NumberOfArguments.EQUALS_CHAR;
> }
>
> + public boolean hasEvenNumberOrWithEqualsChar() { return numberOfArguments == NumberOfArguments.EVEN_NUMBER_OR_WITHEQUALCHAR; }
> +
> public boolean hasOneOrMoreArguments() {
> return numberOfArguments == NumberOfArguments.ONE_OR_MORE;
> }
> @@ -140,7 +141,8 @@
> NONE("No argument expected"),
> ONE("Exactly one argument expected"),
> ONE_OR_MORE("Expected one or more arguments"),
> - EQUALS_CHAR("Expected -param=value vaue declaration");
> + EVEN_NUMBER_OR_WITHEQUALCHAR("Expected one or more arguments with param=value as valid argument"),
this is micro nit, but wgy it was inserted, and not jsut added?
Also - this hunk no longer applies, as I pushed the localization for this class.
> + EQUALS_CHAR("Expected -param=value value declaration");
>
> String messageKey;
>
> @@ -155,13 +157,14 @@
>
> public static List getItwsettingsCommands() {
> return Arrays.asList(new OPTIONS[]{
> - OPTIONS.NODASHHELP,
> + OPTIONS.HELP,
> OPTIONS.LIST,
> OPTIONS.GET,
> OPTIONS.INFO,
> OPTIONS.SET,
> + OPTIONS.RESET,
> OPTIONS.RESETALL,
> - OPTIONS.RESET,
> + OPTIONS.HEADLESS,
> OPTIONS.CHECK
> });
why the change of order??
> }
> @@ -210,7 +213,7 @@
> l.addAll(getJavaWsRuntimeOptions());
> l.addAll(getJavaWsControlOptions());
> //trustall is not returned by getJavaWsRuntimeOptions
> - //or getJavaWsControlOptions, as it is not desitred in documentation
> + //or getJavaWsControlOptions, as it is not desired in documentation
> l.add(OPTIONS.TRUSTALL);
> return l;
> }
Any way, please push this part of this patch
= changes to netx/net/sourceforge/jnlp/OptionsDefinitions.java
+ according properties IBOCheck, new one for EVEN_NUMBER_OR_WITHEQUALCHAR. and BOHelp
About the BOHelp, I'm for small rewording. What about
+BOHelp = Prints out information about supported command and basic usage.
?
Do as your wish, and please push this specified part of your patch.
Will try at least something from the rest, but you are doing so much things in so much complicated
ways to achive so simple results:(( Maybe you can arrange face2face meeting with Jie and he mayhelp
you to establish basic structures more simple?
But at least we agreed on "what should be done"
...
+ for (String arg : args) {
+ if (args.indexOf(arg) % 2 == 0) {
Again this terrible modulo?
Why you dont just get list of the parameters, then iterates +2 and get(i) and get(i+1) ?
You are terribly leaking the parsers encapsulated functionalities. Also, why
+ String key = "";
+ String value;
is declared out of the loop?
ugh, isNextOption? isCurrentOption? whyyyyyy? ouch whyyyy:(
you you really should get only list<[key,list] /list of objcets, where is key + its
arguments in another list. This strucutre IS the result of parsing, and parsing is exactly what you
parser is doing.
and then iterate through it, no more complications around.
(ps - the usage of isNextOption have its reasons in other palces of your impls)
+ if (args.contains("all")) {
resetAll = true;
+ if (args.size() > 1) {
+ for (String arg : args) {
+ if (!arg.equals("all")) {
+ OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL,
R("CLUnknownCommand", arg));
+ }
+ }
+ }
Why this simple logic so complicatedly written?
for (int count = 0; count < optionParser.getNumberOfOptions(); count++)
+
optionParser.nextOption();
is really terrible. If you wont to do so, then lets your parser implements iterable, and do it
properly. Or iterate by index on the result of parsing, but do nt do this terrible mixture.
But I think that that parser should be long ago splitted into two classes
- one - responsible for parsing, and second respnsible for varisous operations above parsed items
(result of parsing).
Feel free to do this refactoring as separate changeset before this actual patch, or simply ignore me.
try {
+ optionParser = new OptionParser(args, OptionsDefinitions.getItwsettingsCommands(), true);
+ } catch (UnevenParameterException e) {
+ OutputController.getLogger().log(OutputController.Level.ERROR_ALL, e.getMessage());
+ JNLPRuntime.exit(ERROR);
+ }
for boot.java, keep the exception as debug only, for commandline, hhmhm well yes, erro_all should be ok.
- public OptionParser(String[] args, List options) {
+ public OptionParser(String[] args, List options, boolean
orderMatters) throws UnevenParameterException {
no No NO. No order metters here. PArser do not care. PArser do parsing. And prepare datat structure.
Other operation may depend o it, but then the parammeter hsould go to them.
+ private void checkNumberOfArgumentsIsEven(boolean orderMatters) throws UnevenParameterException {
+ String exceptionMessage;
+
+ if (orderMatters) {
+ exceptionMessage = checkEachOptionOccurenceHasEvenParams();
+ } else {
+ exceptionMessage = checkTotalOptionOccurenceHasEvenParams();
+ }
+
+ if (exceptionMessage != "") {
+ throw new UnevenParameterException(exceptionMessage);
+ }
+ }
+
+ private String checkEachOptionOccurenceHasEvenParams() {
+ String exceptionMessage = "";
+ for (ParsedOption parsed : parsedOptions) {
+ if (parsed.getOption() != null && parsed.getOption().hasEvenNumberOrWithEqualsChar()) {
+ if (parsed.getParams().size() % 2 != 0) {
+ exceptionMessage += R("OPUnevenParams", parsed.getOption().option);
+ }
+ }
+ }
+ return exceptionMessage;
+ }
+
+ private String checkTotalOptionOccurenceHasEvenParams() {
+ Map> evenNumbersTracker = new HashMap<>();
+ String exceptionMessage = "";
+ for (ParsedOption parsed : parsedOptions) {
+ if (parsed.getOption().hasEvenNumberOrWithEqualsChar()) {
+ if (evenNumbersTracker.isEmpty()) {
+ evenNumbersTracker.put(parsed.getOption().option, new ArrayList());
+ } else {
+ for (String pop : evenNumbersTracker.keySet()) {
+ if (pop != parsed.getOption().option) {
+ evenNumbersTracker.put(parsed.getOption().option, new ArrayList());
+ }
+ }
+ }
+ evenNumbersTracker.get(parsed.getOption().option).addAll(parsed.getParams());
+ }
+ }
I really did nto transalted what this hell code is doing and why it is needed.
From the new methods in oarser, imho only getAllValues have sens. Other are bringing in extremly
unclear code.
imho you have only one possibility. To separate parser and parsed data (you already have
ParsedOption, and it is good). Whensome class wonts to do some iterations abow parsed data, lets
give him the unmodificable llists for iterations. why not?
+ public void removeParam(String param) {
+ params.remove(param);
+ }
why that? This itemshould be as immutable as possible.
I liek the exception handling.
Please - one note. you are adding to much overhead to really simple task. Your ideas are good, but
the code design is really terrible. Each review costs me several hours. I can not afford it. Please
really try to sit withjie or withanybody in Torronto, and let him help to redesign this patch.
Sorry for saying it:(
J.
From omajid at redhat.com Tue Oct 7 17:33:06 2014
From: omajid at redhat.com (Omair Majid)
Date: Tue, 7 Oct 2014 13:33:06 -0400
Subject: [rfc][icedtea-web] Cache Locking Tests : Potential Deadlock Fix
In-Reply-To: <1588253831.11700001.1411764067242.JavaMail.zimbra@redhat.com>
References: <2103989617.9655152.1411481967464.JavaMail.zimbra@redhat.com>
<1240968037.9688595.1411484857305.JavaMail.zimbra@redhat.com>
<20140924170851.GB9537@redhat.com>
<936247043.10480762.1411588303412.JavaMail.zimbra@redhat.com>
<935547535.10521973.1411592146362.JavaMail.zimbra@redhat.com>
<20140925162444.GA9482@redhat.com>
<1588253831.11700001.1411764067242.JavaMail.zimbra@redhat.com>
Message-ID: <20141007173305.GI2177@redhat.com>
Hi,
This new patch looks fine to me.
* Jie Kang [2014-09-26 16:41]:
> +++ b/tests/netx/unit/net/sourceforge/jnlp/cache/CacheTestUtils.java
> @@ -0,0 +1,49 @@
> +/* CacheEntryTest -- unit test for CacheEntry
> + Copyright (C) 2014 Red Hat, Inc.
Please fix this comment before pushing.
Thanks,
Omair
--
PGP Key: 66484681 (http://pgp.mit.edu/)
Fingerprint = F072 555B 0A17 3957 4E95 0056 F286 F14F 6648 4681
From bugzilla-daemon at icedtea.classpath.org Tue Oct 7 17:41:26 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Tue, 07 Oct 2014 17:41:26 +0000
Subject: [Bug 2030] New: [IcedTea7] Version 7.2.5.2 not compiling on ARM Gentoo
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2030
Bug ID: 2030
Summary: [IcedTea7] Version 7.2.5.2 not compiling on ARM Gentoo
Product: IcedTea
Version: 7-hg
Hardware: arm
OS: Linux
Status: NEW
Severity: major
Priority: P5
Component: IcedTea
Assignee: gnu.andrew at redhat.com
Reporter: aldo.mazzeo at gmail.com
CC: unassigned at icedtea.classpath.org
I tried to compile icedtea 7.2.5.2 on ARM Gentoo by using the ebuild delivered
in the java overlay, but compilation ended with
touch stamps/icedtea-boot.stamp
mkdir -p
/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/openjdk.build-boot/j2sdk-image/tapset
; \
grep "client IGNORE"
/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/openjdk.build/j2sdk-image/jre/lib/arm/jvm.cfg;
\
if test $? -eq 0; then \
/bin/sed -e '/\/client\/libjvm.so/d' \
<
/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/tapset/hotspot.stp
\
>
/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/openjdk.build-boot/j2sdk-image/tapset/hotspot.stp;
\
/bin/sed -e '/\/client\/libjvm.so/d' \
<
/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/tapset/hotspot_jni.stp
\
>
/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/openjdk.build-boot/j2sdk-image/tapset/hotspot_jni.stp;
\
/bin/sed -e '/\/client\/libjvm.so/d' \
<
/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/tapset/hotspot_gc.stp
\
>
/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/openjdk.build-boot/j2sdk-image/tapset/hotspot_gc.stp;
\
else \
cp
/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/tapset/hotspot.stp
\
/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/openjdk.build-boot/j2sdk-image/tapset/hotspot.stp;
\
cp
/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/tapset/hotspot_jni.stp
\
/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/openjdk.build-boot/j2sdk-image/tapset/hotspot_jni.stp;
\
cp
/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/tapset/hotspot_gc.stp
\
/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/openjdk.build-boot/j2sdk-image/tapset/hotspot_gc.stp;
\
fi; \
cp
/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/tapset/jstack.stp
\
/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/openjdk.build-boot/j2sdk-image/tapset/jstack.stp
if [ -e
/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/openjdk.build-boot/j2sdk-image/jre/lib
] ; then \
cp -v
/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/tz.properties \
/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/openjdk.build-boot/j2sdk-image/jre/lib;
\
fi
if [ -e
/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/openjdk.build-boot/j2sdk-image/bin/java
] ; then \
/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/openjdk.build-boot/j2sdk-image/bin/java
-cp
/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/cryptocheck.build
TestCryptoLevel ; \
fi
touch stamps/add-archive-boot.stamp
'/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/tz.properties' ->
'/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/openjdk.build-boot/j2sdk-image/jre/lib/tz.properties'
grep:
/var/tmp/portage/dev-java/icedtea-7.2.5.2/work/icedtea-2.5.2/openjdk.build/j2sdk-image/jre/lib/arm/jvm.cfg:
No such file or directory
touch stamps/add-tzdata-support-boot.stamp
touch stamps/add-systemtap-boot.stamp
Exception in thread "main" java.lang.NullPointerException
at java.lang.Throwable.fillInStackTrace(Throwable.java:783)
at java.lang.Throwable.(Throwable.java:250)
at java.lang.Exception.(Exception.java:54)
at java.lang.RuntimeException.(RuntimeException.java:51)
at java.lang.NullPointerException.(NullPointerException.java:60)
at TestCryptoLevel.main(TestCryptoLevel.java:46)
make: *** [stamps/check-crypto-boot.stamp] Error 1
What I did before compiling icedtea is to install GCJ, just like explained in
https://forums.gentoo.org/viewtopic-t-960598-start-0.html .
As far as I could see, the issue was already examined in
http://openjdk.5641.n7.nabble.com/Re-building-icedtea-7-on-ARM-td173063.html ,
but I can't find a final solution there, anyway.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From jkang at redhat.com Tue Oct 7 18:10:59 2014
From: jkang at redhat.com (Jie Kang)
Date: Tue, 7 Oct 2014 14:10:59 -0400 (EDT)
Subject: [rfc][icedtea-web] Cache Locking Tests : Potential Deadlock Fix
In-Reply-To: <20141007173305.GI2177@redhat.com>
References: <2103989617.9655152.1411481967464.JavaMail.zimbra@redhat.com>
<1240968037.9688595.1411484857305.JavaMail.zimbra@redhat.com>
<20140924170851.GB9537@redhat.com>
<936247043.10480762.1411588303412.JavaMail.zimbra@redhat.com>
<935547535.10521973.1411592146362.JavaMail.zimbra@redhat.com>
<20140925162444.GA9482@redhat.com>
<1588253831.11700001.1411764067242.JavaMail.zimbra@redhat.com>
<20141007173305.GI2177@redhat.com>
Message-ID: <783018314.16068064.1412705459321.JavaMail.zimbra@redhat.com>
----- Original Message -----
> Hi,
>
> This new patch looks fine to me.
>
> * Jie Kang [2014-09-26 16:41]:
> > +++ b/tests/netx/unit/net/sourceforge/jnlp/cache/CacheTestUtils.java
> > @@ -0,0 +1,49 @@
> > +/* CacheEntryTest -- unit test for CacheEntry
> > + Copyright (C) 2014 Red Hat, Inc.
>
> Please fix this comment before pushing.
>
Hello,
I did some more testing before pushing and noticed that our current 'make run-netx-unit-tests' attempts to run every java file as if it were a unit test. This means CacheTestUtils is attempted to be run and an exception is thrown since it contains no test methods. I've attached a patch that is the same as the prior patch except CacheTestUtils is now in test-extensions::net.sourceforge.jnlp.util which I think is a good spot for it. Just wanted to double-check here before pushing if you think that's a good place to put it or not.
Thanks!
> Thanks,
> Omair
>
> --
> PGP Key: 66484681 (http://pgp.mit.edu/)
> Fingerprint = F072 555B 0A17 3957 4E95 0056 F286 F14F 6648 4681
>
--
Jie Kang
-------------- next part --------------
A non-text attachment was scrubbed...
Name: itw-cachelock-deadlock-7.patch
Type: text/x-patch
Size: 19313 bytes
Desc: not available
URL:
From omajid at redhat.com Tue Oct 7 18:49:50 2014
From: omajid at redhat.com (Omair Majid)
Date: Tue, 7 Oct 2014 14:49:50 -0400
Subject: [rfc][icedtea-web] Cache Locking Tests : Potential Deadlock Fix
In-Reply-To: <783018314.16068064.1412705459321.JavaMail.zimbra@redhat.com>
References: <2103989617.9655152.1411481967464.JavaMail.zimbra@redhat.com>
<1240968037.9688595.1411484857305.JavaMail.zimbra@redhat.com>
<20140924170851.GB9537@redhat.com>
<936247043.10480762.1411588303412.JavaMail.zimbra@redhat.com>
<935547535.10521973.1411592146362.JavaMail.zimbra@redhat.com>
<20140925162444.GA9482@redhat.com>
<1588253831.11700001.1411764067242.JavaMail.zimbra@redhat.com>
<20141007173305.GI2177@redhat.com>
<783018314.16068064.1412705459321.JavaMail.zimbra@redhat.com>
Message-ID: <20141007184950.GL2177@redhat.com>
* Jie Kang [2014-10-07 14:10]:
> I did some more testing before pushing and noticed that our current
> 'make run-netx-unit-tests' attempts to run every java file as if it
> were a unit test. This means CacheTestUtils is attempted to be run and
> an exception is thrown since it contains no test methods. I've
> attached a patch that is the same as the prior patch except
> CacheTestUtils is now in test-extensions::net.sourceforge.jnlp.util
> which I think is a good spot for it. Just wanted to double-check here
> before pushing if you think that's a good place to put it or not.
Looking at the other classes in tests/test-extensions directory, it does
seem like the right place.
Thanks,
Omair
--
PGP Key: 66484681 (http://pgp.mit.edu/)
Fingerprint = F072 555B 0A17 3957 4E95 0056 F286 F14F 6648 4681
From bugzilla-daemon at icedtea.classpath.org Tue Oct 7 18:55:09 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Tue, 07 Oct 2014 18:55:09 +0000
Subject: [Bug 2030] [IcedTea7] Version 2.5.2 not compiling on ARM Gentoo
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2030
Andrew John Hughes changed:
What |Removed |Added
----------------------------------------------------------------------------
Version|7-hg |2.5.2
Summary|[IcedTea7] Version 7.2.5.2 |[IcedTea7] Version 2.5.2
|not compiling on ARM Gentoo |not compiling on ARM Gentoo
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From bugzilla-daemon at icedtea.classpath.org Tue Oct 7 18:56:05 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Tue, 07 Oct 2014 18:56:05 +0000
Subject: [Bug 2030] [IcedTea7] Version 2.5.2 not compiling on ARM Gentoo
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2030
Andrew John Hughes changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|major |normal
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From bugzilla-daemon at icedtea.classpath.org Tue Oct 7 19:01:54 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Tue, 07 Oct 2014 19:01:54 +0000
Subject: [Bug 2030] [IcedTea7] Version 2.5.2 not compiling on ARM Gentoo
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2030
--- Comment #1 from Aldo Mazzeo ---
Created attachment 1187
--> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=1187&action=edit
Compilation log
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From jkang at icedtea.classpath.org Tue Oct 7 19:10:42 2014
From: jkang at icedtea.classpath.org (jkang at icedtea.classpath.org)
Date: Tue, 07 Oct 2014 19:10:42 +0000
Subject: /hg/icedtea-web: Changed ResourceTracker to use cached thread po...
Message-ID:
changeset 6f4c1d501560 in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=6f4c1d501560
author: Jie Kang
date: Tue Oct 07 14:41:11 2014 -0400
Changed ResourceTracker to use cached thread pool ExecutorService.
2014-10-07 Jie Kang
Changed ResourceTracker to use cached thread pool as opposed to manual
thread management
* netx/net/sourceforge/jnlp/cache/ResourceTracker.java:
diffstat:
ChangeLog | 6 +
netx/net/sourceforge/jnlp/cache/ResourceTracker.java | 88 ++++---------------
2 files changed, 24 insertions(+), 70 deletions(-)
diffs (212 lines):
diff -r d214c5f0fef7 -r 6f4c1d501560 ChangeLog
--- a/ChangeLog Tue Oct 07 16:51:08 2014 +0200
+++ b/ChangeLog Tue Oct 07 14:41:11 2014 -0400
@@ -1,3 +1,9 @@
+2014-10-07 Jie Kang
+
+ Changed ResourceTracker to use cached thread pool as opposed to manual
+ thread management
+ * netx/net/sourceforge/jnlp/cache/ResourceTracker.java:
+
2014-10-07 Jiri Vanek
Files, arguments types and icedtea-web man page made localizable
diff -r d214c5f0fef7 -r 6f4c1d501560 netx/net/sourceforge/jnlp/cache/ResourceTracker.java
--- a/netx/net/sourceforge/jnlp/cache/ResourceTracker.java Tue Oct 07 16:51:08 2014 +0200
+++ b/netx/net/sourceforge/jnlp/cache/ResourceTracker.java Tue Oct 07 14:41:11 2014 -0400
@@ -46,6 +46,8 @@
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
import java.util.jar.JarOutputStream;
import java.util.jar.Pack200;
import java.util.jar.Pack200.Unpacker;
@@ -126,11 +128,7 @@
/** notified on initialization or download of a resource */
private static final Object lock = new Object(); // used to lock static structures
- /** max threads */
- private static final int maxThreads = 5;
-
- /** running threads */
- private static int threads = 0;
+ private static final ExecutorService threadPool = Executors.newCachedThreadPool();
/** weak list of resource trackers with resources to prefetch */
private static final WeakList prefetchTrackers =
@@ -142,10 +140,6 @@
private static final ConcurrentHashMap downloadOptions =
new ConcurrentHashMap<>();
- /** resource trackers threads are working for (used for load balancing across multi-tracker downloads) */
- private final static ArrayList active =
- new ArrayList<>(); //
-
/** the resources known about by this resource tracker */
private final List resources = new ArrayList<>();
@@ -198,7 +192,6 @@
OutputController.getLogger().log(ex);
}
Resource resource = Resource.getResource(location, version, updatePolicy);
- boolean downloaded = false;
synchronized (resources) {
if (resources.contains(resource))
@@ -216,12 +209,12 @@
// should really be synchronized on resources, but the worst
// case should be that the resource will be updated once even
// if unnecessary.
- downloaded = checkCache(resource, updatePolicy);
+ boolean downloaded = checkCache(resource, updatePolicy);
- synchronized (lock) {
- if (!downloaded)
- if (prefetch && threads == 0) // existing threads do pre-fetch when queue empty
- startThread();
+ if (!downloaded) {
+ if (prefetch) {
+ startDownloadThread();
+ }
}
}
@@ -541,19 +534,13 @@
}
/**
- * Start a new download thread if there are not too many threads
- * already running.
+ * Start a new download thread.
*
* Calls to this method should be synchronized on lock.
*
*/
- protected void startThread() {
- if (threads < maxThreads) {
- threads++;
-
- Thread thread = new Thread(new Downloader(), "DownloaderThread" + threads);
- thread.start();
- }
+ protected void startDownloadThread() {
+ threadPool.execute(new Downloader());
}
/**
@@ -563,25 +550,9 @@
*
*/
private void endThread() {
- threads--;
-
- if (threads < 0) {
- // this should never happen but try to recover
- threads = 0;
-
- if (queue.size() > 0) // if any on queue make sure a thread is running
- startThread(); // look into whether this could create a loop
-
- throw new RuntimeException("tracker threads < 0");
- }
-
- if (threads == 0) {
- synchronized (prefetchTrackers) {
- queue.trimToSize(); // these only accessed by threads so no sync needed
- active.clear(); // no threads so no trackers actively downloading
- active.trimToSize();
- prefetchTrackers.trimToSize();
- }
+ synchronized (prefetchTrackers) {
+ queue.trimToSize(); // these only accessed by threads so no sync needed
+ prefetchTrackers.trimToSize();
}
}
@@ -595,7 +566,7 @@
throw new IllegalResourceDescriptorException("Invalid resource state (resource: " + resource + ")");
queue.add(resource);
- startThread();
+ startDownloadThread();
}
}
@@ -1035,8 +1006,8 @@
if (result != null)
queue.remove(result);
- // prefetch if nothing found so far and this is the last thread
- if (result == null && threads == 1)
+ // prefetch if nothing found so far
+ if (result == null)
result = getPrefetch();
if (result == null)
@@ -1113,7 +1084,6 @@
static Resource selectByFilter(Collection source, Filter filter) {
Resource result = null;
- int score = Integer.MAX_VALUE;
for (Resource resource : source) {
boolean selectable;
@@ -1123,19 +1093,7 @@
}
if (selectable) {
- int activeCount = 0;
-
- for (ResourceTracker rt : active) {
- if (rt == resource.getTracker())
- activeCount++;
- }
-
- // try to spread out the downloads so that a slow host
- // won't monopolize the downloads
- if (activeCount < score) {
result = resource;
- score = activeCount;
- }
}
}
@@ -1268,27 +1226,18 @@
public void run() {
while (true) {
synchronized (lock) {
- // remove from active list, used for load balancing
- if (resource != null)
- active.remove(resource.getTracker());
-
resource = selectNextResource();
if (resource == null) {
endThread();
break;
}
-
- // add to active list, used for load balancing
- active.add(resource.getTracker());
}
try {
-
- // Resource processing involves writing to files
+ // Resource processing involves writing to files
// (cache entry trackers, the files themselves, etc.)
// and it therefore needs to be privileged
-
final Resource fResource = resource;
AccessController.doPrivileged(new PrivilegedAction() {
@Override
@@ -1297,7 +1246,6 @@
return null;
}
});
-
} catch (Exception ex) {
OutputController.getLogger().log(ex);
}
From jkang at icedtea.classpath.org Tue Oct 7 19:15:16 2014
From: jkang at icedtea.classpath.org (jkang at icedtea.classpath.org)
Date: Tue, 07 Oct 2014 19:15:16 +0000
Subject: /hg/icedtea-web: Modified CacheEntry and CacheLRUWrapper unit te...
Message-ID:
changeset 6bbd07a0b15a in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=6bbd07a0b15a
author: Jie Kang
date: Tue Oct 07 15:13:17 2014 -0400
Modified CacheEntry and CacheLRUWrapper unit tests to prevent blocking.
2014-10-07 Jie Kang
Modified unit tests for CacheEntry and CacheLRUWrapper to prevent blocking.
* netx/net/sourceforge/jnlp/cache/CacheEntry.java: comments for unlocking
* netx/net/sourceforge/jnlp/util/PropertiesFile.java: same
* netx/net/sourceforge/jnlp/util/lockingfile/LockedFile.java: same
* tests/netx/unit/net/sourceforge/jnlp/cache/CacheEntryTest.java: fixed
multi-threaded tests to prevent blocking, and added timeout to threaded
tests to prevent tests from blocking test runs
* tests/netx/unit/net/sourceforge/jnlp/cache/CacheLRUWrapperTest.java: same
* tests/netx/unit/net/sourceforge/jnlp/cache/CacheTestUtils.java: utilities
for cache tests
diffstat:
ChangeLog | 13 +
netx/net/sourceforge/jnlp/cache/CacheEntry.java | 2 +-
netx/net/sourceforge/jnlp/util/PropertiesFile.java | 4 +
netx/net/sourceforge/jnlp/util/lockingfile/LockedFile.java | 2 +-
tests/netx/unit/net/sourceforge/jnlp/cache/CacheEntryTest.java | 139 +++++----
tests/netx/unit/net/sourceforge/jnlp/cache/CacheLRUWrapperTest.java | 122 ++++----
tests/test-extensions/net/sourceforge/jnlp/util/CacheTestUtils.java | 49 +++
7 files changed, 202 insertions(+), 129 deletions(-)
diffs (truncated from 585 to 500 lines):
diff -r 6f4c1d501560 -r 6bbd07a0b15a ChangeLog
--- a/ChangeLog Tue Oct 07 14:41:11 2014 -0400
+++ b/ChangeLog Tue Oct 07 15:13:17 2014 -0400
@@ -1,3 +1,16 @@
+2014-10-07 Jie Kang
+
+ Modified unit tests for CacheEntry and CacheLRUWrapper to prevent blocking.
+ * netx/net/sourceforge/jnlp/cache/CacheEntry.java: comments for unlocking
+ * netx/net/sourceforge/jnlp/util/PropertiesFile.java: same
+ * netx/net/sourceforge/jnlp/util/lockingfile/LockedFile.java: same
+ * tests/netx/unit/net/sourceforge/jnlp/cache/CacheEntryTest.java: fixed
+ multi-threaded tests to prevent blocking, and added timeout to threaded
+ tests to prevent tests from blocking test runs
+ * tests/netx/unit/net/sourceforge/jnlp/cache/CacheLRUWrapperTest.java: same
+ * tests/netx/unit/net/sourceforge/jnlp/cache/CacheTestUtils.java: utilities
+ for cache tests
+
2014-10-07 Jie Kang
Changed ResourceTracker to use cached thread pool as opposed to manual
diff -r 6f4c1d501560 -r 6bbd07a0b15a netx/net/sourceforge/jnlp/cache/CacheEntry.java
--- a/netx/net/sourceforge/jnlp/cache/CacheEntry.java Tue Oct 07 14:41:11 2014 -0400
+++ b/netx/net/sourceforge/jnlp/cache/CacheEntry.java Tue Oct 07 15:13:17 2014 -0400
@@ -239,7 +239,7 @@
}
/**
- * Unlock cache item.
+ * Unlock cache item. Does not do anything if not holding the lock.
*/
protected void unlock() {
properties.unlock();
diff -r 6f4c1d501560 -r 6bbd07a0b15a netx/net/sourceforge/jnlp/util/PropertiesFile.java
--- a/netx/net/sourceforge/jnlp/util/PropertiesFile.java Tue Oct 07 14:41:11 2014 -0400
+++ b/netx/net/sourceforge/jnlp/util/PropertiesFile.java Tue Oct 07 15:13:17 2014 -0400
@@ -192,6 +192,10 @@
return false;
}
+ /**
+ * Unlocks the file. Does not do anything if not holding the lock.
+ */
+
public void unlock() {
try {
lockedFile.unlock();
diff -r 6f4c1d501560 -r 6bbd07a0b15a netx/net/sourceforge/jnlp/util/lockingfile/LockedFile.java
--- a/netx/net/sourceforge/jnlp/util/lockingfile/LockedFile.java Tue Oct 07 14:41:11 2014 -0400
+++ b/netx/net/sourceforge/jnlp/util/lockingfile/LockedFile.java Tue Oct 07 15:13:17 2014 -0400
@@ -150,7 +150,7 @@
}
/**
- * Unlock access to the file. Lock is reentrant.
+ * Unlock access to the file. Lock is reentrant. Does not do anything if not holding the lock.
*/
public void unlock() throws IOException {
if (JNLPRuntime.isWindows() || !this.threadLock.isHeldByCurrentThread()) {
diff -r 6f4c1d501560 -r 6bbd07a0b15a tests/netx/unit/net/sourceforge/jnlp/cache/CacheEntryTest.java
--- a/tests/netx/unit/net/sourceforge/jnlp/cache/CacheEntryTest.java Tue Oct 07 14:41:11 2014 -0400
+++ b/tests/netx/unit/net/sourceforge/jnlp/cache/CacheEntryTest.java Tue Oct 07 15:13:17 2014 -0400
@@ -40,6 +40,7 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
import java.io.ByteArrayOutputStream;
import java.io.File;
@@ -48,13 +49,13 @@
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.file.Files;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
+import java.util.concurrent.CountDownLatch;
import org.junit.Before;
import org.junit.Test;
import net.sourceforge.jnlp.Version;
+import net.sourceforge.jnlp.util.CacheTestUtils;
import net.sourceforge.jnlp.util.PropertiesFile;
public class CacheEntryTest {
@@ -85,10 +86,6 @@
private ByteArrayOutputStream baos;
private PrintStream out;
- private ExecutorService executorService;
- Object listener = new Object();
-
- int num = 0;
@Before
public void setUp() throws MalformedURLException {
@@ -96,7 +93,6 @@
version = new Version("1.0");
baos = new ByteArrayOutputStream();
out = new PrintStream(baos);
- executorService = Executors.newSingleThreadExecutor();
}
@Test
@@ -222,7 +218,7 @@
return cachedFile;
}
- @Test
+ @Test(timeout = 2000l)
public void testLock() throws IOException {
TestCacheEntry entry = new TestCacheEntry(url, version, null);
try {
@@ -233,7 +229,7 @@
}
}
- @Test
+ @Test(timeout = 2000l)
public void testUnlock() throws IOException {
TestCacheEntry entry = new TestCacheEntry(url, version, null);
try {
@@ -244,7 +240,7 @@
assertTrue(!entry.isHeldByCurrentThread());
}
- @Test
+ @Test(timeout = 2000l)
public void testStoreFailsWithoutLock() throws IOException {
TestCacheEntry entry = new TestCacheEntry(url, version, null);
long num = 10;
@@ -252,7 +248,7 @@
assertTrue(!entry.store());
}
- @Test
+ @Test(timeout = 2000l)
public void testStoreWorksWithLocK() throws IOException {
TestCacheEntry entry = new TestCacheEntry(url, version, null);
long num = 10;
@@ -265,99 +261,120 @@
}
}
- @Test
+ @Test(timeout = 2000l)
public void testMultithreadLockPreventsWrite() throws IOException, InterruptedException {
+ int numThreads = 100;
+ CountDownLatch doneSignal = new CountDownLatch(numThreads);
+ CountDownLatch writersDoneSignal = new CountDownLatch(numThreads);
+
TestCacheEntry entry = new TestCacheEntry(url, version, null);
- Thread a = new Thread(new WriteWorker(10, entry));
- a.start();
+ Thread[] list = new Thread[numThreads];
- Thread b = new Thread(new WriteWorker(5, entry));
- b.start();
+ for (int i=0; i
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2030
Andrew John Hughes changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
CC| |xerxes at zafena.se
Component|IcedTea |CACAO
Assignee|gnu.andrew at redhat.com |stefan at complang.tuwien.ac.a
| |t
--- Comment #2 from Andrew John Hughes ---
Ok, this is using CACAO and it's failing as soon as the just-built VM is used.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From bugzilla-daemon at icedtea.classpath.org Tue Oct 7 20:02:07 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Tue, 07 Oct 2014 20:02:07 +0000
Subject: [Bug 2029] web-storage-service fails to start if machine is not
connected to the internet
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2029
--- Comment #1 from Omair Majid ---
It seems like this happens because of the DTD present in the web.xml files.
Removing the DOCTYPE declaration (which points to the DTD url) fixes the issue.
There's references [1] that claim the DTD should be included in jetty already,
but I don't see it.
[1] http://osdir.com/ml/java.jetty.support/2003-05/msg00195.html
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From bugzilla-daemon at icedtea.classpath.org Tue Oct 7 20:49:00 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Tue, 07 Oct 2014 20:49:00 +0000
Subject: [Bug 2030] [IcedTea7] Version 2.5.2 not compiling on ARM Gentoo
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2030
--- Comment #3 from Stefan Ring ---
Andrew, you'd need to transplant this patch to icedtea7:
http://icedtea.classpath.org/hg/icedtea6/file/5c83d26b2437/patches/cacao/armhf.patch
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From ldracz at redhat.com Tue Oct 7 21:49:18 2014
From: ldracz at redhat.com (Lukasz Dracz)
Date: Tue, 7 Oct 2014 17:49:18 -0400 (EDT)
Subject: [rfc][icedtea-web][itweb-settings] itweb-settings use Option
Parser
In-Reply-To: <54341EBA.4080707@redhat.com>
References: <2136433079.7489666.1411075684213.JavaMail.zimbra@redhat.com>
<541C3995.2080104@redhat.com>
<1888728818.9296441.1411419281545.JavaMail.zimbra@redhat.com>
<54243024.5050109@redhat.com>
<1795754452.11172633.1411680531876.JavaMail.zimbra@redhat.com>
<54255285.6080406@redhat.com>
<1570273198.15632389.1412630652794.JavaMail.zimbra@redhat.com>
<54341EBA.4080707@redhat.com>
Message-ID: <269960645.16172064.1412718558976.JavaMail.zimbra@redhat.com>
Hello,
> > I implemented your ParsedOption idea, which I think is really good. I also
> > changed it back to allowing Multiple Options again instead of limited
> > options so I didn't implement ArgumentOccurence. Should we go with
> > Multiple Options being allowed or limited options ? I think with the List
> > of ParsedOption approach, multiple option is implemented better than
> > before. Also the main help message is displayed only if help is the first
> > command or after headless as the 2nd command, any help after that will
> > count display help for the command before it, which means you could
> > display multiple helps ex. ./itweb-settings get help set help reset help
> > will show the command help for get set reset.
>
> "main help message is displayed only if help is the first command or after
> headless as t"
>
> Cant it be done better?
Yes,
What if we make it that if only help is put in then it displays the main help but if help is put with any other combination of commands (get, reset, check, etc.) it will display the help for those commands (also disregarding what the command wants) so ex. get deployment.security.level set help reset, will just get help for get, set and reset ? (and won't actually display deploymentsecurity.level)
> well - it does not meter when headless is decalred - you only ask
> "optionPArser.hasOption(headles):
> and set JnlpRuntime accordingly.
>
> the help should decide whether it is global one, or command one more
> cleverly.
> >
> > Also now the static splitListOnEquals/Symbols is no longer used/needed
> > other than the unit tests, Should I remove them ? (I'm of the opinion
> > yes).
>
> Move it to test file then.
Going to just delete it since I meant the unit tests that use it were ones that were specifically testing those two methods. I was unclear in my phrasing sorry :)
> >
> > Thank you,
> > Lukasz Dracz
> >
> >
> > itweb-settingsOptionParser-10.patch
> >
> >
> > diff -r 8071a44fe6de netx/net/sourceforge/jnlp/OptionsDefinitions.java
> > --- a/netx/net/sourceforge/jnlp/OptionsDefinitions.java Fri Oct 03 14:20:40
> > 2014 -0400
> > +++ b/netx/net/sourceforge/jnlp/OptionsDefinitions.java Mon Oct 06 17:16:18
> > 2014 -0400
> > @@ -73,14 +73,13 @@
> > TRUSTNONE("-Xtrustnone","BOTrustnone"),
> > JNLP("-jnlp","BOJnlp", NumberOfArguments.ONE),
> > //itweb settings
> > - NODASHHELP("help", "IBOHelp"),
> > - LIST("list", "IBOList"),
> > - GET("get", "name", "IBOGet"),
> > - INFO("info", "name", "IBOInfo"),
> > - SET("set", "name value", "IBOSet"),
> > - RESETALL("reset", "all", "IBOResetAll"),
> > - RESET("reset", "name", "IBOReset"),
> > - CHECK("check", "name", "IBOCheck"),
> > + LIST("-list", "IBOList"),
> > + GET("-get", "name", "IBOGet", NumberOfArguments.ONE_OR_MORE),
> > + INFO("-info", "name", "IBOInfo", NumberOfArguments.ONE_OR_MORE),
> > + SET("-set", "name value", "IBOSet",
> > NumberOfArguments.EVEN_NUMBER_OR_WITHEQUALCHAR),
> > + RESETALL("-reset", "all", "IBOResetAll"),
> > + RESET("-reset", "name", "IBOReset",
> > NumberOfArguments.ONE_OR_MORE),
> > + CHECK("-check", "name", "IBOCheck"),
> > //policyeditor
> > //-help
> > FILE("-file", "policy_file", "PBOFile"),
> > @@ -123,6 +122,8 @@
> > return numberOfArguments == NumberOfArguments.EQUALS_CHAR;
> > }
> >
> > + public boolean hasEvenNumberOrWithEqualsChar() { return
> > numberOfArguments == NumberOfArguments.EVEN_NUMBER_OR_WITHEQUALCHAR; }
> > +
> > public boolean hasOneOrMoreArguments() {
> > return numberOfArguments == NumberOfArguments.ONE_OR_MORE;
> > }
> > @@ -140,7 +141,8 @@
> > NONE("No argument expected"),
> > ONE("Exactly one argument expected"),
> > ONE_OR_MORE("Expected one or more arguments"),
> > - EQUALS_CHAR("Expected -param=value vaue declaration");
> > + EVEN_NUMBER_OR_WITHEQUALCHAR("Expected one or more arguments with
> > param=value as valid argument"),
>
> this is micro nit, but wgy it was inserted, and not jsut added?
I have no idea, I probably accidently added a space somewhere in there, now its added :)
>
> Also - this hunk no longer applies, as I pushed the localization for this
> class.
> > + EQUALS_CHAR("Expected -param=value value declaration");
> >
> > String messageKey;
> >
> > @@ -155,13 +157,14 @@
> >
> > public static List getItwsettingsCommands() {
> > return Arrays.asList(new OPTIONS[]{
> > - OPTIONS.NODASHHELP,
> > + OPTIONS.HELP,
> > OPTIONS.LIST,
> > OPTIONS.GET,
> > OPTIONS.INFO,
> > OPTIONS.SET,
> > + OPTIONS.RESET,
> > OPTIONS.RESETALL,
> > - OPTIONS.RESET,
> > + OPTIONS.HEADLESS,
> > OPTIONS.CHECK
> > });
>
> why the change of order??
RESET and RESETALL both check for -reset when parsing and the first one in the list is the option that gets recognized, meaning either I switch the order or I change the option I am checking value with, to be RESETALL. So only one is really parsed for which is RESET, but I left RESETALL since for the help message I think it is a nice entry to show that -reset all is a special property.
> > }
> > @@ -210,7 +213,7 @@
> > l.addAll(getJavaWsRuntimeOptions());
> > l.addAll(getJavaWsControlOptions());
> > //trustall is not returned by getJavaWsRuntimeOptions
> > - //or getJavaWsControlOptions, as it is not desitred in
> > documentation
> > + //or getJavaWsControlOptions, as it is not desired in
> > documentation
> > l.add(OPTIONS.TRUSTALL);
> > return l;
> > }
>
> Any way, please push this part of this patch
> = changes to netx/net/sourceforge/jnlp/OptionsDefinitions.java
> + according properties IBOCheck, new one for
> EVEN_NUMBER_OR_WITHEQUALCHAR. and BOHelp
>
> About the BOHelp, I'm for small rewording. What about
> +BOHelp = Prints out information about supported command and basic
> usage.
>
> ?
I like it :) changed it.
>
> Do as your wish, and please push this specified part of your patch.
I attached the patch you wanted me to push, since there is one small change in that since nodashhelp is removed I had to change CommandLine.java to check for OPTIONS.HELP instead of OPTIONS.NODASHHELP on one line.
Here is the changelog I plan to add to it
2014-10-07 Lukasz Dracz
Standardize all options to use hyphens
* netx/net/sourceforge/jnlp/OptionsDefinitions.java:
itweb-settings options changed to have hyphens in front,
added new enum to NumberOfArguments
(getItwsettingsCommands): added headless, changed nodashhelp to help
* netx/net/sourceforge/jnlp/controlpanel/CommandLine.java
* netx/net/sourceforge/jnlp/resources/Messages.properties:
(BOHelp, IBOCheck): modified (NOAevennumberorequalschar): added
>
> Will try at least something from the rest, but you are doing so much things
> in so much complicated
> ways to achive so simple results:(( Maybe you can arrange face2face meeting
> with Jie and he mayhelp
> you to establish basic structures more simple?
>
> But at least we agreed on "what should be done"
> ...
This reply is mainly to make sure that the changes to what you wanted to be pushed are approved.
I agree my code has become messy and unnecessarily complicated, I will look into simplifying it
as much as I can.
> + for (String arg : args) {
> + if (args.indexOf(arg) % 2 == 0) {
>
> Again this terrible modulo?
>
>
> Why you dont just get list of the parameters, then iterates +2 and get(i) and
> get(i+1) ?
> You are terribly leaking the parsers encapsulated functionalities. Also, why
>
> + String key = "";
> + String value;
>
> is declared out of the loop?
>
>
> ugh, isNextOption? isCurrentOption? whyyyyyy? ouch whyyyy:(
>
> you you really should get only list<[key,list] /list of objcets,
> where is key + its
> arguments in another list. This strucutre IS the result of parsing, and
> parsing is exactly what you
> parser is doing.
>
> and then iterate through it, no more complications around.
>
> (ps - the usage of isNextOption have its reasons in other palces of your
> impls)
>
>
> + if (args.contains("all")) {
> resetAll = true;
> + if (args.size() > 1) {
> + for (String arg : args) {
> + if (!arg.equals("all")) {
> +
> OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL,
> R("CLUnknownCommand", arg));
> + }
> + }
> + }
>
> Why this simple logic so complicatedly written?
> for (int count = 0; count < optionParser.getNumberOfOptions(); count++)
> +
> optionParser.nextOption();
>
> is really terrible. If you wont to do so, then lets your parser implements
> iterable, and do it
> properly. Or iterate by index on the result of parsing, but do nt do this
> terrible mixture.
> But I think that that parser should be long ago splitted into two classes
> - one - responsible for parsing, and second respnsible for varisous
> operations above parsed items
> (result of parsing).
>
> Feel free to do this refactoring as separate changeset before this actual
> patch, or simply ignore me.
>
>
>
> try {
> + optionParser = new OptionParser(args,
> OptionsDefinitions.getItwsettingsCommands(), true);
> + } catch (UnevenParameterException e) {
> +
> OutputController.getLogger().log(OutputController.Level.ERROR_ALL,
> e.getMessage());
> + JNLPRuntime.exit(ERROR);
> + }
>
>
> for boot.java, keep the exception as debug only, for commandline, hhmhm well
> yes, erro_all should be ok.
okay
>
> - public OptionParser(String[] args, List
> options) {
> + public OptionParser(String[] args, List
> options, boolean
> orderMatters) throws UnevenParameterException {
>
>
> no No NO. No order metters here. PArser do not care. PArser do parsing. And
> prepare datat structure.
> Other operation may depend o it, but then the parammeter hsould go to them.
>
>
>
> + private void checkNumberOfArgumentsIsEven(boolean orderMatters) throws
> UnevenParameterException {
> + String exceptionMessage;
> +
> + if (orderMatters) {
> + exceptionMessage = checkEachOptionOccurenceHasEvenParams();
> + } else {
> + exceptionMessage = checkTotalOptionOccurenceHasEvenParams();
> + }
> +
> + if (exceptionMessage != "") {
> + throw new UnevenParameterException(exceptionMessage);
> + }
> + }
> +
> + private String checkEachOptionOccurenceHasEvenParams() {
> + String exceptionMessage = "";
> + for (ParsedOption parsed : parsedOptions) {
> + if (parsed.getOption() != null &&
> parsed.getOption().hasEvenNumberOrWithEqualsChar()) {
> + if (parsed.getParams().size() % 2 != 0) {
> + exceptionMessage += R("OPUnevenParams",
> parsed.getOption().option);
> + }
> + }
> + }
> + return exceptionMessage;
> + }
> +
> + private String checkTotalOptionOccurenceHasEvenParams() {
> + Map> evenNumbersTracker = new HashMap<>();
> + String exceptionMessage = "";
> + for (ParsedOption parsed : parsedOptions) {
> + if (parsed.getOption().hasEvenNumberOrWithEqualsChar()) {
> + if (evenNumbersTracker.isEmpty()) {
> + evenNumbersTracker.put(parsed.getOption().option, new
> ArrayList());
> + } else {
> + for (String pop : evenNumbersTracker.keySet()) {
> + if (pop != parsed.getOption().option) {
> +
> evenNumbersTracker.put(parsed.getOption().option,
> new ArrayList());
> + }
> + }
> + }
> +
> evenNumbersTracker.get(parsed.getOption().option).addAll(parsed.getParams());
> + }
> + }
>
>
> I really did nto transalted what this hell code is doing and why it is
> needed.
>
> From the new methods in oarser, imho only getAllValues have sens. Other are
> bringing in extremly
> unclear code.
>
> imho you have only one possibility. To separate parser and parsed data (you
> already have
> ParsedOption, and it is good). Whensome class wonts to do some iterations
> abow parsed data, lets
> give him the unmodificable llists for iterations. why not?
>
>
> + public void removeParam(String param) {
> + params.remove(param);
> + }
>
>
> why that? This itemshould be as immutable as possible.
>
>
> I liek the exception handling.
>
>
>
>
> Please - one note. you are adding to much overhead to really simple task.
> Your ideas are good, but
> the code design is really terrible. Each review costs me several hours. I can
> not afford it. Please
> really try to sit withjie or withanybody in Torronto, and let him help to
> redesign this patch.
>
>
> Sorry for saying it:(
No don't be ;)
I'm sorry for costing you several hours :(
I'm going to simplify it the best I can
and see if Jie or someone else if they are not busy can quickly review it before sending it to the list again.
Thanks for the review !
Regards,
Lukasz Dracz
-------------- next part --------------
A non-text attachment was scrubbed...
Name: standardizeOptionDefinitions.patch
Type: text/x-patch
Size: 5441 bytes
Desc: not available
URL:
From ptisnovs at icedtea.classpath.org Wed Oct 8 09:21:30 2014
From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org)
Date: Wed, 08 Oct 2014 09:21:30 +0000
Subject: /hg/gfx-test: Ten new tests added into CAGOperationsOnChordAndRe...
Message-ID:
changeset 8a84449fc9b4 in /hg/gfx-test
details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=8a84449fc9b4
author: Pavel Tisnovsky
date: Wed Oct 08 11:22:44 2014 +0200
Ten new tests added into CAGOperationsOnChordAndRectangle.
diffstat:
ChangeLog | 5 +
src/org/gfxtest/testsuites/CAGOperationsOnChordAndRectangle.java | 230 ++++++++++
2 files changed, 235 insertions(+), 0 deletions(-)
diffs (252 lines):
diff -r 378b0815b19e -r 8a84449fc9b4 ChangeLog
--- a/ChangeLog Tue Oct 07 11:09:56 2014 +0200
+++ b/ChangeLog Wed Oct 08 11:22:44 2014 +0200
@@ -1,3 +1,8 @@
+2014-10-08 Pavel Tisnovsky
+
+ * src/org/gfxtest/testsuites/CAGOperationsOnChordAndRectangle.java:
+ Ten new tests added into CAGOperationsOnChordAndRectangle.
+
2014-10-07 Pavel Tisnovsky
* src/org/gfxtest/testsuites/CAGOperationsOnTwoOverlappingRectangles.java:
diff -r 378b0815b19e -r 8a84449fc9b4 src/org/gfxtest/testsuites/CAGOperationsOnChordAndRectangle.java
--- a/src/org/gfxtest/testsuites/CAGOperationsOnChordAndRectangle.java Tue Oct 07 11:09:56 2014 +0200
+++ b/src/org/gfxtest/testsuites/CAGOperationsOnChordAndRectangle.java Wed Oct 08 11:22:44 2014 +0200
@@ -2486,6 +2486,236 @@
}
/**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from a chord inside a rectangle using inverse subtract operator.
+ * The shape is rendered using radial gradient fill.
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testOverlappingChordAndRectangleInverseSubtractRadialGradientPaint(TestImage image, Graphics2D graphics2d)
+ {
+ // set radial gradient fill
+ CommonRenderingStyles.setRadialGradientFill(image, graphics2d);
+ // create area using inverse subtract operator
+ Area area = CommonCAGOperations.createAreaFromOverlappingChordAndRectangleUsingInverseSubtractOperator(image);
+ // fill the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from a chord inside a rectangle using intersect operator. The shape is
+ * rendered using radial gradient fill.
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testOverlappingChordAndRectangleIntersectRadialGradientPaint(TestImage image, Graphics2D graphics2d)
+ {
+ // set radial gradient fill
+ CommonRenderingStyles.setRadialGradientFill(image, graphics2d);
+ // create area using intersect operator
+ Area area = CommonCAGOperations.createAreaFromOverlappingChordAndRectangleUsingIntersectOperator(image);
+ // fill the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from a chord inside a rectangle using XOR operator. The shape is
+ * rendered using radial gradient fill.
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testOverlappingChordAndRectangleXorRadialGradientPaint(TestImage image, Graphics2D graphics2d)
+ {
+ // set radial gradient fill
+ CommonRenderingStyles.setRadialGradientFill(image, graphics2d);
+ // create area using XOR operator
+ Area area = CommonCAGOperations.createAreaFromOverlappingChordAndRectangleUsingXorOperator(image);
+ // fill the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from a chord inside a rectangle using union operator. The shape is
+ * rendered using horizontal gradient fill.
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testOverlappingChordAndRectangleUnionHorizontalGradientPaint(TestImage image, Graphics2D graphics2d)
+ {
+ // set horizontal gradient fill
+ CommonRenderingStyles.setHorizontalGradientFill(image, graphics2d);
+ // create area using union operator
+ Area area = CommonCAGOperations.createAreaFromOverlappingChordAndRectangleUsingUnionOperator(image);
+ // fill the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from a chord inside a rectangle using subtract operator. The shape is
+ * rendered using horizontal gradient fill.
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testOverlappingChordAndRectangleSubtractHorizontalGradientPaint(TestImage image, Graphics2D graphics2d)
+ {
+ // set horizontal gradient fill
+ CommonRenderingStyles.setHorizontalGradientFill(image, graphics2d);
+ // create area using subtract operator
+ Area area = CommonCAGOperations.createAreaFromOverlappingChordAndRectangleUsingSubtractOperator(image);
+ // fill the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from a chord inside a rectangle using inverse subtract operator.
+ * The shape is rendered using horizontal gradient fill.
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testOverlappingChordAndRectangleInverseSubtractHorizontalGradientPaint(TestImage image, Graphics2D graphics2d)
+ {
+ // set horizontal gradient fill
+ CommonRenderingStyles.setHorizontalGradientFill(image, graphics2d);
+ // create area using inverse subtract operator
+ Area area = CommonCAGOperations.createAreaFromOverlappingChordAndRectangleUsingInverseSubtractOperator(image);
+ // fill the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from a chord inside a rectangle using intersect operator. The shape is
+ * rendered using horizontal gradient fill.
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testOverlappingChordAndRectangleIntersectHorizontalGradientPaint(TestImage image, Graphics2D graphics2d)
+ {
+ // set horizontal gradient fill
+ CommonRenderingStyles.setHorizontalGradientFill(image, graphics2d);
+ // create area using intersect operator
+ Area area = CommonCAGOperations.createAreaFromOverlappingChordAndRectangleUsingIntersectOperator(image);
+ // fill the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from a chord inside a rectangle using XOR operator. The shape is
+ * rendered using horizontal gradient fill.
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testOverlappingChordAndRectangleXorHorizontalGradientPaint(TestImage image, Graphics2D graphics2d)
+ {
+ // set horizontal gradient fill
+ CommonRenderingStyles.setHorizontalGradientFill(image, graphics2d);
+ // create area using XOR operator
+ Area area = CommonCAGOperations.createAreaFromOverlappingChordAndRectangleUsingXorOperator(image);
+ // fill the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from a chord inside a rectangle using union operator. The shape is
+ * rendered using vertical gradient fill.
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testOverlappingChordAndRectangleUnionVerticalGradientPaint(TestImage image, Graphics2D graphics2d)
+ {
+ // set vertical gradient fill
+ CommonRenderingStyles.setVerticalGradientFill(image, graphics2d);
+ // create area using union operator
+ Area area = CommonCAGOperations.createAreaFromOverlappingChordAndRectangleUsingUnionOperator(image);
+ // fill the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Checks the process of creating and rendering new geometric shape
+ * constructed from a chord inside a rectangle using subtract operator. The shape is
+ * rendered using vertical gradient fill.
+ *
+ * @param image
+ * image to which area is to be drawn
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testOverlappingChordAndRectangleSubtractVerticalGradientPaint(TestImage image, Graphics2D graphics2d)
+ {
+ // set vertical gradient fill
+ CommonRenderingStyles.setVerticalGradientFill(image, graphics2d);
+ // create area using subtract operator
+ Area area = CommonCAGOperations.createAreaFromOverlappingChordAndRectangleUsingSubtractOperator(image);
+ // fill the area
+ graphics2d.fill(area);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
* Entry point to the test suite.
*
* @param args not used in this case
From jvanek at redhat.com Wed Oct 8 09:34:05 2014
From: jvanek at redhat.com (Jiri Vanek)
Date: Wed, 08 Oct 2014 11:34:05 +0200
Subject: [rfc][icedtea-web][itweb-settings] itweb-settings use Option
Parser
In-Reply-To: <269960645.16172064.1412718558976.JavaMail.zimbra@redhat.com>
References: <2136433079.7489666.1411075684213.JavaMail.zimbra@redhat.com>
<541C3995.2080104@redhat.com>
<1888728818.9296441.1411419281545.JavaMail.zimbra@redhat.com>
<54243024.5050109@redhat.com>
<1795754452.11172633.1411680531876.JavaMail.zimbra@redhat.com>
<54255285.6080406@redhat.com>
<1570273198.15632389.1412630652794.JavaMail.zimbra@redhat.com>
<54341EBA.4080707@redhat.com>
<269960645.16172064.1412718558976.JavaMail.zimbra@redhat.com>
Message-ID: <5435050D.6060904@redhat.com>
On 10/07/2014 11:49 PM, Lukasz Dracz wrote:
> Hello,
>
>>> I implemented your ParsedOption idea, which I think is really good. I also
>>> changed it back to allowing Multiple Options again instead of limited
>>> options so I didn't implement ArgumentOccurence. Should we go with
>>> Multiple Options being allowed or limited options ? I think with the List
>>> of ParsedOption approach, multiple option is implemented better than
>>> before. Also the main help message is displayed only if help is the first
>>> command or after headless as the 2nd command, any help after that will
>>> count display help for the command before it, which means you could
>>> display multiple helps ex. ./itweb-settings get help set help reset help
>>> will show the command help for get set reset.
>>
>> "main help message is displayed only if help is the first command or after
>> headless as t"
>>
>> Cant it be done better?
>
> Yes,
> What if we make it that if only help is put in then it displays the main help but if help is put with any other combination of commands (get, reset, check, etc.) it will display the help for those commands (also disregarding what the command wants) so ex. get deployment.security.level set help reset, will just get help for get, set and reset ? (and won't actually display deploymentsecurity.level)
>
I would say go with simplest(+ simpelst code) possible solution
>> well - it does not meter when headless is decalred - you only ask
>> "optionPArser.hasOption(headles):
>> and set JnlpRuntime accordingly.
>>
>> the help should decide whether it is global one, or command one more
>> cleverly.
>>>
>>> Also now the static splitListOnEquals/Symbols is no longer used/needed
>>> other than the unit tests, Should I remove them ? (I'm of the opinion
>>> yes).
>>
>> Move it to test file then.
>
> Going to just delete it since I meant the unit tests that use it were ones that were specifically testing those two methods. I was unclear in my phrasing sorry :)
>
oook.
>>>
>>> Thank you,
>>> Lukasz Dracz
>>>
>>>
>>> itweb-settingsOptionParser-10.patch
>>>
>>>
>>> diff -r 8071a44fe6de netx/net/sourceforge/jnlp/OptionsDefinitions.java
>>> --- a/netx/net/sourceforge/jnlp/OptionsDefinitions.java Fri Oct 03 14:20:40
>>> 2014 -0400
>>> +++ b/netx/net/sourceforge/jnlp/OptionsDefinitions.java Mon Oct 06 17:16:18
>>> 2014 -0400
>>> @@ -73,14 +73,13 @@
>>> TRUSTNONE("-Xtrustnone","BOTrustnone"),
>>> JNLP("-jnlp","BOJnlp", NumberOfArguments.ONE),
>>> //itweb settings
>>> - NODASHHELP("help", "IBOHelp"),
>>> - LIST("list", "IBOList"),
>>> - GET("get", "name", "IBOGet"),
>>> - INFO("info", "name", "IBOInfo"),
>>> - SET("set", "name value", "IBOSet"),
>>> - RESETALL("reset", "all", "IBOResetAll"),
>>> - RESET("reset", "name", "IBOReset"),
>>> - CHECK("check", "name", "IBOCheck"),
>>> + LIST("-list", "IBOList"),
>>> + GET("-get", "name", "IBOGet", NumberOfArguments.ONE_OR_MORE),
>>> + INFO("-info", "name", "IBOInfo", NumberOfArguments.ONE_OR_MORE),
>>> + SET("-set", "name value", "IBOSet",
>>> NumberOfArguments.EVEN_NUMBER_OR_WITHEQUALCHAR),
>>> + RESETALL("-reset", "all", "IBOResetAll"),
>>> + RESET("-reset", "name", "IBOReset",
>>> NumberOfArguments.ONE_OR_MORE),
>>> + CHECK("-check", "name", "IBOCheck"),
>>> //policyeditor
>>> //-help
>>> FILE("-file", "policy_file", "PBOFile"),
>>> @@ -123,6 +122,8 @@
>>> return numberOfArguments == NumberOfArguments.EQUALS_CHAR;
>>> }
>>>
>>> + public boolean hasEvenNumberOrWithEqualsChar() { return
>>> numberOfArguments == NumberOfArguments.EVEN_NUMBER_OR_WITHEQUALCHAR; }
>>> +
>>> public boolean hasOneOrMoreArguments() {
>>> return numberOfArguments == NumberOfArguments.ONE_OR_MORE;
>>> }
>>> @@ -140,7 +141,8 @@
>>> NONE("No argument expected"),
>>> ONE("Exactly one argument expected"),
>>> ONE_OR_MORE("Expected one or more arguments"),
>>> - EQUALS_CHAR("Expected -param=value vaue declaration");
>>> + EVEN_NUMBER_OR_WITHEQUALCHAR("Expected one or more arguments with
>>> param=value as valid argument"),
>>
>> this is micro nit, but wgy it was inserted, and not jsut added?
>
> I have no idea, I probably accidently added a space somewhere in there, now its added :)
>
>>
>> Also - this hunk no longer applies, as I pushed the localization for this
>> class.
>>> + EQUALS_CHAR("Expected -param=value value declaration");
>>>
>>> String messageKey;
>>>
>>> @@ -155,13 +157,14 @@
>>>
>>> public static List getItwsettingsCommands() {
>>> return Arrays.asList(new OPTIONS[]{
>>> - OPTIONS.NODASHHELP,
>>> + OPTIONS.HELP,
>>> OPTIONS.LIST,
>>> OPTIONS.GET,
>>> OPTIONS.INFO,
>>> OPTIONS.SET,
>>> + OPTIONS.RESET,
>>> OPTIONS.RESETALL,
>>> - OPTIONS.RESET,
>>> + OPTIONS.HEADLESS,
>>> OPTIONS.CHECK
>>> });
>>
>> why the change of order??
>
> RESET and RESETALL both check for -reset when parsing and the first one in the list is the option that gets recognized, meaning either I switch the order or I change the option I am checking value with, to be RESETALL. So only one is really parsed for which is RESET, but I left RESETALL since for the help message I think it is a nice entry to show that -reset all is a special property.
>
oh interesting.... ok then.
>>> }
>>> @@ -210,7 +213,7 @@
>>> l.addAll(getJavaWsRuntimeOptions());
>>> l.addAll(getJavaWsControlOptions());
>>> //trustall is not returned by getJavaWsRuntimeOptions
>>> - //or getJavaWsControlOptions, as it is not desitred in
>>> documentation
>>> + //or getJavaWsControlOptions, as it is not desired in
>>> documentation
>>> l.add(OPTIONS.TRUSTALL);
>>> return l;
>>> }
>>
>> Any way, please push this part of this patch
>> = changes to netx/net/sourceforge/jnlp/OptionsDefinitions.java
>> + according properties IBOCheck, new one for
>> EVEN_NUMBER_OR_WITHEQUALCHAR. and BOHelp
>>
>> About the BOHelp, I'm for small rewording. What about
>> +BOHelp = Prints out information about supported command and basic
>> usage.
>>
>> ?
>
> I like it :) changed it.
>
>>
>> Do as your wish, and please push this specified part of your patch.
>
> I attached the patch you wanted me to push, since there is one small change in that since nodashhelp is removed I had to change CommandLine.java to check for OPTIONS.HELP instead of OPTIONS.NODASHHELP on one line.
> Here is the changelog I plan to add to it
>
> 2014-10-07 Lukasz Dracz
>
> Standardize all options to use hyphens
> * netx/net/sourceforge/jnlp/OptionsDefinitions.java:
> itweb-settings options changed to have hyphens in front,
> added new enum to NumberOfArguments
> (getItwsettingsCommands): added headless, changed nodashhelp to help
> * netx/net/sourceforge/jnlp/controlpanel/CommandLine.java
> * netx/net/sourceforge/jnlp/resources/Messages.properties:
> (BOHelp, IBOCheck): modified (NOAevennumberorequalschar): added
>
>>
looks ok to me. One minor - tehr eis one method strongly violating formating rules, please format
:) (if you dnt find it, its on the end of the email [1]
after the formating of this method, ok to push.
>> Will try at least something from the rest, but you are doing so much things
>> in so much complicated
>> ways to achive so simple results:(( Maybe you can arrange face2face meeting
>> with Jie and he mayhelp
>> you to establish basic structures more simple?
>>
>> But at least we agreed on "what should be done"
>> ...
>
> This reply is mainly to make sure that the changes to what you wanted to be pushed are approved.
> I agree my code has become messy and unnecessarily complicated, I will look into simplifying it
> as much as I can.
>
>> + for (String arg : args) {
>> + if (args.indexOf(arg) % 2 == 0) {
>>
>> Again this terrible modulo?
>>
>>
>> Why you dont just get list of the parameters, then iterates +2 and get(i) and
>> get(i+1) ?
>> You are terribly leaking the parsers encapsulated functionalities. Also, why
>>
>> + String key = "";
>> + String value;
>>
>> is declared out of the loop?
>>
>>
>> ugh, isNextOption? isCurrentOption? whyyyyyy? ouch whyyyy:(
>>
>> you you really should get only list<[key,list] /list of objcets,
>> where is key + its
>> arguments in another list. This strucutre IS the result of parsing, and
>> parsing is exactly what you
>> parser is doing.
>>
>> and then iterate through it, no more complications around.
>>
>> (ps - the usage of isNextOption have its reasons in other palces of your
>> impls)
>>
>>
>> + if (args.contains("all")) {
>> resetAll = true;
>> + if (args.size() > 1) {
>> + for (String arg : args) {
>> + if (!arg.equals("all")) {
>> +
>> OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL,
>> R("CLUnknownCommand", arg));
>> + }
>> + }
>> + }
>>
>> Why this simple logic so complicatedly written?
>> for (int count = 0; count < optionParser.getNumberOfOptions(); count++)
>> +
>> optionParser.nextOption();
>>
>> is really terrible. If you wont to do so, then lets your parser implements
>> iterable, and do it
>> properly. Or iterate by index on the result of parsing, but do nt do this
>> terrible mixture.
>> But I think that that parser should be long ago splitted into two classes
>> - one - responsible for parsing, and second respnsible for varisous
>> operations above parsed items
>> (result of parsing).
>>
>> Feel free to do this refactoring as separate changeset before this actual
>> patch, or simply ignore me.
>>
>>
>>
>> try {
>> + optionParser = new OptionParser(args,
>> OptionsDefinitions.getItwsettingsCommands(), true);
>> + } catch (UnevenParameterException e) {
>> +
>> OutputController.getLogger().log(OutputController.Level.ERROR_ALL,
>> e.getMessage());
>> + JNLPRuntime.exit(ERROR);
>> + }
>>
>>
>> for boot.java, keep the exception as debug only, for commandline, hhmhm well
>> yes, erro_all should be ok.
>
> okay
>
>>
>> - public OptionParser(String[] args, List
>> options) {
>> + public OptionParser(String[] args, List
>> options, boolean
>> orderMatters) throws UnevenParameterException {
>>
>>
>> no No NO. No order metters here. PArser do not care. PArser do parsing. And
>> prepare datat structure.
>> Other operation may depend o it, but then the parammeter hsould go to them.
>>
>>
>>
>> + private void checkNumberOfArgumentsIsEven(boolean orderMatters) throws
>> UnevenParameterException {
>> + String exceptionMessage;
>> +
>> + if (orderMatters) {
>> + exceptionMessage = checkEachOptionOccurenceHasEvenParams();
>> + } else {
>> + exceptionMessage = checkTotalOptionOccurenceHasEvenParams();
>> + }
>> +
>> + if (exceptionMessage != "") {
>> + throw new UnevenParameterException(exceptionMessage);
>> + }
>> + }
>> +
>> + private String checkEachOptionOccurenceHasEvenParams() {
>> + String exceptionMessage = "";
>> + for (ParsedOption parsed : parsedOptions) {
>> + if (parsed.getOption() != null &&
>> parsed.getOption().hasEvenNumberOrWithEqualsChar()) {
>> + if (parsed.getParams().size() % 2 != 0) {
>> + exceptionMessage += R("OPUnevenParams",
>> parsed.getOption().option);
>> + }
>> + }
>> + }
>> + return exceptionMessage;
>> + }
>> +
>> + private String checkTotalOptionOccurenceHasEvenParams() {
>> + Map> evenNumbersTracker = new HashMap<>();
>> + String exceptionMessage = "";
>> + for (ParsedOption parsed : parsedOptions) {
>> + if (parsed.getOption().hasEvenNumberOrWithEqualsChar()) {
>> + if (evenNumbersTracker.isEmpty()) {
>> + evenNumbersTracker.put(parsed.getOption().option, new
>> ArrayList());
>> + } else {
>> + for (String pop : evenNumbersTracker.keySet()) {
>> + if (pop != parsed.getOption().option) {
>> +
>> evenNumbersTracker.put(parsed.getOption().option,
>> new ArrayList());
>> + }
>> + }
>> + }
>> +
>> evenNumbersTracker.get(parsed.getOption().option).addAll(parsed.getParams());
>> + }
>> + }
>>
>>
>> I really did nto transalted what this hell code is doing and why it is
>> needed.
>>
>> From the new methods in oarser, imho only getAllValues have sens. Other are
>> bringing in extremly
>> unclear code.
>>
>> imho you have only one possibility. To separate parser and parsed data (you
>> already have
>> ParsedOption, and it is good). Whensome class wonts to do some iterations
>> abow parsed data, lets
>> give him the unmodificable llists for iterations. why not?
>>
>>
>> + public void removeParam(String param) {
>> + params.remove(param);
>> + }
>>
>>
>> why that? This itemshould be as immutable as possible.
>>
>>
>> I liek the exception handling.
>>
>>
>>
>>
>> Please - one note. you are adding to much overhead to really simple task.
>> Your ideas are good, but
>> the code design is really terrible. Each review costs me several hours. I can
>> not afford it. Please
>> really try to sit withjie or withanybody in Torronto, and let him help to
>> redesign this patch.
>>
>>
>> Sorry for saying it:(
>
> No don't be ;)
> I'm sorry for costing you several hours :(
> I'm going to simplify it the best I can
> and see if Jie or someone else if they are not busy can quickly review it before sending it to the list again.
>
> Thanks for the review !
One hint to my previosu review:
Please split the patch to three parts
- first - add support for the list ParsedOption
- second - add support for the equls chars
- third - integrate it into itweb settings
- fourth - policy editor.
I think it will be much simpler to write, and even much simpelr to review.
J.
[1] public boolean hasEvenNumberOrWithEqualsChar() { return numberOfArguments ==
NumberOfArguments.EVEN_NUMBER_OR_WITHEQUALCHAR; } BLEEEEE
From jvanek at redhat.com Wed Oct 8 09:34:10 2014
From: jvanek at redhat.com (Jiri Vanek)
Date: Wed, 08 Oct 2014 11:34:10 +0200
Subject: [rfc][icedtea-web][itweb-settings] itweb-settings use Option
Parser
In-Reply-To: <269960645.16172064.1412718558976.JavaMail.zimbra@redhat.com>
References: <2136433079.7489666.1411075684213.JavaMail.zimbra@redhat.com>
<541C3995.2080104@redhat.com>
<1888728818.9296441.1411419281545.JavaMail.zimbra@redhat.com>
<54243024.5050109@redhat.com>
<1795754452.11172633.1411680531876.JavaMail.zimbra@redhat.com>
<54255285.6080406@redhat.com>
<1570273198.15632389.1412630652794.JavaMail.zimbra@redhat.com>
<54341EBA.4080707@redhat.com>
<269960645.16172064.1412718558976.JavaMail.zimbra@redhat.com>
Message-ID: <54350512.6010606@redhat.com>
On 10/07/2014 11:49 PM, Lukasz Dracz wrote:
> Hello,
>
>>> I implemented your ParsedOption idea, which I think is really good. I also
>>> changed it back to allowing Multiple Options again instead of limited
>>> options so I didn't implement ArgumentOccurence. Should we go with
>>> Multiple Options being allowed or limited options ? I think with the List
>>> of ParsedOption approach, multiple option is implemented better than
>>> before. Also the main help message is displayed only if help is the first
>>> command or after headless as the 2nd command, any help after that will
>>> count display help for the command before it, which means you could
>>> display multiple helps ex. ./itweb-settings get help set help reset help
>>> will show the command help for get set reset.
>>
>> "main help message is displayed only if help is the first command or after
>> headless as t"
>>
>> Cant it be done better?
>
> Yes,
> What if we make it that if only help is put in then it displays the main help but if help is put with any other combination of commands (get, reset, check, etc.) it will display the help for those commands (also disregarding what the command wants) so ex. get deployment.security.level set help reset, will just get help for get, set and reset ? (and won't actually display deploymentsecurity.level)
>
I would say go with simplest(+ simpelst code) possible solution
>> well - it does not meter when headless is decalred - you only ask
>> "optionPArser.hasOption(headles):
>> and set JnlpRuntime accordingly.
>>
>> the help should decide whether it is global one, or command one more
>> cleverly.
>>>
>>> Also now the static splitListOnEquals/Symbols is no longer used/needed
>>> other than the unit tests, Should I remove them ? (I'm of the opinion
>>> yes).
>>
>> Move it to test file then.
>
> Going to just delete it since I meant the unit tests that use it were ones that were specifically testing those two methods. I was unclear in my phrasing sorry :)
>
oook.
>>>
>>> Thank you,
>>> Lukasz Dracz
>>>
>>>
>>> itweb-settingsOptionParser-10.patch
>>>
>>>
>>> diff -r 8071a44fe6de netx/net/sourceforge/jnlp/OptionsDefinitions.java
>>> --- a/netx/net/sourceforge/jnlp/OptionsDefinitions.java Fri Oct 03 14:20:40
>>> 2014 -0400
>>> +++ b/netx/net/sourceforge/jnlp/OptionsDefinitions.java Mon Oct 06 17:16:18
>>> 2014 -0400
>>> @@ -73,14 +73,13 @@
>>> TRUSTNONE("-Xtrustnone","BOTrustnone"),
>>> JNLP("-jnlp","BOJnlp", NumberOfArguments.ONE),
>>> //itweb settings
>>> - NODASHHELP("help", "IBOHelp"),
>>> - LIST("list", "IBOList"),
>>> - GET("get", "name", "IBOGet"),
>>> - INFO("info", "name", "IBOInfo"),
>>> - SET("set", "name value", "IBOSet"),
>>> - RESETALL("reset", "all", "IBOResetAll"),
>>> - RESET("reset", "name", "IBOReset"),
>>> - CHECK("check", "name", "IBOCheck"),
>>> + LIST("-list", "IBOList"),
>>> + GET("-get", "name", "IBOGet", NumberOfArguments.ONE_OR_MORE),
>>> + INFO("-info", "name", "IBOInfo", NumberOfArguments.ONE_OR_MORE),
>>> + SET("-set", "name value", "IBOSet",
>>> NumberOfArguments.EVEN_NUMBER_OR_WITHEQUALCHAR),
>>> + RESETALL("-reset", "all", "IBOResetAll"),
>>> + RESET("-reset", "name", "IBOReset",
>>> NumberOfArguments.ONE_OR_MORE),
>>> + CHECK("-check", "name", "IBOCheck"),
>>> //policyeditor
>>> //-help
>>> FILE("-file", "policy_file", "PBOFile"),
>>> @@ -123,6 +122,8 @@
>>> return numberOfArguments == NumberOfArguments.EQUALS_CHAR;
>>> }
>>>
>>> + public boolean hasEvenNumberOrWithEqualsChar() { return
>>> numberOfArguments == NumberOfArguments.EVEN_NUMBER_OR_WITHEQUALCHAR; }
>>> +
>>> public boolean hasOneOrMoreArguments() {
>>> return numberOfArguments == NumberOfArguments.ONE_OR_MORE;
>>> }
>>> @@ -140,7 +141,8 @@
>>> NONE("No argument expected"),
>>> ONE("Exactly one argument expected"),
>>> ONE_OR_MORE("Expected one or more arguments"),
>>> - EQUALS_CHAR("Expected -param=value vaue declaration");
>>> + EVEN_NUMBER_OR_WITHEQUALCHAR("Expected one or more arguments with
>>> param=value as valid argument"),
>>
>> this is micro nit, but wgy it was inserted, and not jsut added?
>
> I have no idea, I probably accidently added a space somewhere in there, now its added :)
>
>>
>> Also - this hunk no longer applies, as I pushed the localization for this
>> class.
>>> + EQUALS_CHAR("Expected -param=value value declaration");
>>>
>>> String messageKey;
>>>
>>> @@ -155,13 +157,14 @@
>>>
>>> public static List getItwsettingsCommands() {
>>> return Arrays.asList(new OPTIONS[]{
>>> - OPTIONS.NODASHHELP,
>>> + OPTIONS.HELP,
>>> OPTIONS.LIST,
>>> OPTIONS.GET,
>>> OPTIONS.INFO,
>>> OPTIONS.SET,
>>> + OPTIONS.RESET,
>>> OPTIONS.RESETALL,
>>> - OPTIONS.RESET,
>>> + OPTIONS.HEADLESS,
>>> OPTIONS.CHECK
>>> });
>>
>> why the change of order??
>
> RESET and RESETALL both check for -reset when parsing and the first one in the list is the option that gets recognized, meaning either I switch the order or I change the option I am checking value with, to be RESETALL. So only one is really parsed for which is RESET, but I left RESETALL since for the help message I think it is a nice entry to show that -reset all is a special property.
>
oh interesting.... ok then.
>>> }
>>> @@ -210,7 +213,7 @@
>>> l.addAll(getJavaWsRuntimeOptions());
>>> l.addAll(getJavaWsControlOptions());
>>> //trustall is not returned by getJavaWsRuntimeOptions
>>> - //or getJavaWsControlOptions, as it is not desitred in
>>> documentation
>>> + //or getJavaWsControlOptions, as it is not desired in
>>> documentation
>>> l.add(OPTIONS.TRUSTALL);
>>> return l;
>>> }
>>
>> Any way, please push this part of this patch
>> = changes to netx/net/sourceforge/jnlp/OptionsDefinitions.java
>> + according properties IBOCheck, new one for
>> EVEN_NUMBER_OR_WITHEQUALCHAR. and BOHelp
>>
>> About the BOHelp, I'm for small rewording. What about
>> +BOHelp = Prints out information about supported command and basic
>> usage.
>>
>> ?
>
> I like it :) changed it.
>
>>
>> Do as your wish, and please push this specified part of your patch.
>
> I attached the patch you wanted me to push, since there is one small change in that since nodashhelp is removed I had to change CommandLine.java to check for OPTIONS.HELP instead of OPTIONS.NODASHHELP on one line.
> Here is the changelog I plan to add to it
>
> 2014-10-07 Lukasz Dracz
>
> Standardize all options to use hyphens
> * netx/net/sourceforge/jnlp/OptionsDefinitions.java:
> itweb-settings options changed to have hyphens in front,
> added new enum to NumberOfArguments
> (getItwsettingsCommands): added headless, changed nodashhelp to help
> * netx/net/sourceforge/jnlp/controlpanel/CommandLine.java
> * netx/net/sourceforge/jnlp/resources/Messages.properties:
> (BOHelp, IBOCheck): modified (NOAevennumberorequalschar): added
>
>>
looks ok to me. One minor - tehr eis one method strongly violating formating rules, please format
:) (if you dnt find it, its on the end of the email [1]
after the formating of this method, ok to push.
>> Will try at least something from the rest, but you are doing so much things
>> in so much complicated
>> ways to achive so simple results:(( Maybe you can arrange face2face meeting
>> with Jie and he mayhelp
>> you to establish basic structures more simple?
>>
>> But at least we agreed on "what should be done"
>> ...
>
> This reply is mainly to make sure that the changes to what you wanted to be pushed are approved.
> I agree my code has become messy and unnecessarily complicated, I will look into simplifying it
> as much as I can.
>
>> + for (String arg : args) {
>> + if (args.indexOf(arg) % 2 == 0) {
>>
>> Again this terrible modulo?
>>
>>
>> Why you dont just get list of the parameters, then iterates +2 and get(i) and
>> get(i+1) ?
>> You are terribly leaking the parsers encapsulated functionalities. Also, why
>>
>> + String key = "";
>> + String value;
>>
>> is declared out of the loop?
>>
>>
>> ugh, isNextOption? isCurrentOption? whyyyyyy? ouch whyyyy:(
>>
>> you you really should get only list<[key,list] /list of objcets,
>> where is key + its
>> arguments in another list. This strucutre IS the result of parsing, and
>> parsing is exactly what you
>> parser is doing.
>>
>> and then iterate through it, no more complications around.
>>
>> (ps - the usage of isNextOption have its reasons in other palces of your
>> impls)
>>
>>
>> + if (args.contains("all")) {
>> resetAll = true;
>> + if (args.size() > 1) {
>> + for (String arg : args) {
>> + if (!arg.equals("all")) {
>> +
>> OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL,
>> R("CLUnknownCommand", arg));
>> + }
>> + }
>> + }
>>
>> Why this simple logic so complicatedly written?
>> for (int count = 0; count < optionParser.getNumberOfOptions(); count++)
>> +
>> optionParser.nextOption();
>>
>> is really terrible. If you wont to do so, then lets your parser implements
>> iterable, and do it
>> properly. Or iterate by index on the result of parsing, but do nt do this
>> terrible mixture.
>> But I think that that parser should be long ago splitted into two classes
>> - one - responsible for parsing, and second respnsible for varisous
>> operations above parsed items
>> (result of parsing).
>>
>> Feel free to do this refactoring as separate changeset before this actual
>> patch, or simply ignore me.
>>
>>
>>
>> try {
>> + optionParser = new OptionParser(args,
>> OptionsDefinitions.getItwsettingsCommands(), true);
>> + } catch (UnevenParameterException e) {
>> +
>> OutputController.getLogger().log(OutputController.Level.ERROR_ALL,
>> e.getMessage());
>> + JNLPRuntime.exit(ERROR);
>> + }
>>
>>
>> for boot.java, keep the exception as debug only, for commandline, hhmhm well
>> yes, erro_all should be ok.
>
> okay
>
>>
>> - public OptionParser(String[] args, List
>> options) {
>> + public OptionParser(String[] args, List
>> options, boolean
>> orderMatters) throws UnevenParameterException {
>>
>>
>> no No NO. No order metters here. PArser do not care. PArser do parsing. And
>> prepare datat structure.
>> Other operation may depend o it, but then the parammeter hsould go to them.
>>
>>
>>
>> + private void checkNumberOfArgumentsIsEven(boolean orderMatters) throws
>> UnevenParameterException {
>> + String exceptionMessage;
>> +
>> + if (orderMatters) {
>> + exceptionMessage = checkEachOptionOccurenceHasEvenParams();
>> + } else {
>> + exceptionMessage = checkTotalOptionOccurenceHasEvenParams();
>> + }
>> +
>> + if (exceptionMessage != "") {
>> + throw new UnevenParameterException(exceptionMessage);
>> + }
>> + }
>> +
>> + private String checkEachOptionOccurenceHasEvenParams() {
>> + String exceptionMessage = "";
>> + for (ParsedOption parsed : parsedOptions) {
>> + if (parsed.getOption() != null &&
>> parsed.getOption().hasEvenNumberOrWithEqualsChar()) {
>> + if (parsed.getParams().size() % 2 != 0) {
>> + exceptionMessage += R("OPUnevenParams",
>> parsed.getOption().option);
>> + }
>> + }
>> + }
>> + return exceptionMessage;
>> + }
>> +
>> + private String checkTotalOptionOccurenceHasEvenParams() {
>> + Map> evenNumbersTracker = new HashMap<>();
>> + String exceptionMessage = "";
>> + for (ParsedOption parsed : parsedOptions) {
>> + if (parsed.getOption().hasEvenNumberOrWithEqualsChar()) {
>> + if (evenNumbersTracker.isEmpty()) {
>> + evenNumbersTracker.put(parsed.getOption().option, new
>> ArrayList());
>> + } else {
>> + for (String pop : evenNumbersTracker.keySet()) {
>> + if (pop != parsed.getOption().option) {
>> +
>> evenNumbersTracker.put(parsed.getOption().option,
>> new ArrayList());
>> + }
>> + }
>> + }
>> +
>> evenNumbersTracker.get(parsed.getOption().option).addAll(parsed.getParams());
>> + }
>> + }
>>
>>
>> I really did nto transalted what this hell code is doing and why it is
>> needed.
>>
>> From the new methods in oarser, imho only getAllValues have sens. Other are
>> bringing in extremly
>> unclear code.
>>
>> imho you have only one possibility. To separate parser and parsed data (you
>> already have
>> ParsedOption, and it is good). Whensome class wonts to do some iterations
>> abow parsed data, lets
>> give him the unmodificable llists for iterations. why not?
>>
>>
>> + public void removeParam(String param) {
>> + params.remove(param);
>> + }
>>
>>
>> why that? This itemshould be as immutable as possible.
>>
>>
>> I liek the exception handling.
>>
>>
>>
>>
>> Please - one note. you are adding to much overhead to really simple task.
>> Your ideas are good, but
>> the code design is really terrible. Each review costs me several hours. I can
>> not afford it. Please
>> really try to sit withjie or withanybody in Torronto, and let him help to
>> redesign this patch.
>>
>>
>> Sorry for saying it:(
>
> No don't be ;)
> I'm sorry for costing you several hours :(
> I'm going to simplify it the best I can
> and see if Jie or someone else if they are not busy can quickly review it before sending it to the list again.
>
> Thanks for the review !
One hint to my previosu review:
Please split the patch to three parts
- first - add support for the list ParsedOption
- second - add support for the equls chars
- third - integrate it into itweb settings
- fourth - policy editor.
I think it will be much simpler to write, and even much simpelr to review.
J.
[1] public boolean hasEvenNumberOrWithEqualsChar() { return numberOfArguments ==
NumberOfArguments.EVEN_NUMBER_OR_WITHEQUALCHAR; } BLEEEEE
From bugzilla-daemon at icedtea.classpath.org Wed Oct 8 11:37:02 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Wed, 08 Oct 2014 11:37:02 +0000
Subject: [Bug 1588] SIGSEGV in Eclipse
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1588
Jochen Wiedmann changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |FIXED
--- Comment #4 from Jochen Wiedmann ---
Confirming that Eclipse 4.4.1 with OpenJDK 1.7 (fedora-2.5.2.5.fc20-x86_64)
works on Fedora 20. Thanks very much!
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From jvanek at icedtea.classpath.org Wed Oct 8 13:19:56 2014
From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org)
Date: Wed, 08 Oct 2014 13:19:56 +0000
Subject: /hg/icedtea-web: itw-plugin and itweb-settings documentation mad...
Message-ID:
changeset 8967abe15ea3 in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=8967abe15ea3
author: Jiri Vanek
date: Wed Oct 08 15:19:37 2014 +0200
itw-plugin and itweb-settings documentation made localizable
diffstat:
ChangeLog | 15 +++
Makefile.am | 14 +-
netx/net/sourceforge/jnlp/controlpanel/NetworkSettingsPanel.java | 47 +++++----
netx/net/sourceforge/jnlp/resources/Messages.properties | 30 +++++-
netx/net/sourceforge/jnlp/util/docprovider/ItwebPluginTextProvider.java | 16 +-
netx/net/sourceforge/jnlp/util/docprovider/ItwebSettingsTextsProvider.java | 33 ++++--
6 files changed, 103 insertions(+), 52 deletions(-)
diffs (337 lines):
diff -r 6bbd07a0b15a -r 8967abe15ea3 ChangeLog
--- a/ChangeLog Tue Oct 07 15:13:17 2014 -0400
+++ b/ChangeLog Wed Oct 08 15:19:37 2014 +0200
@@ -1,3 +1,18 @@
+2014-10-08 Jiri Vanek
+
+ itw-plugin and itweb-settings documentation made localizable
+ * Makefile.am: documentation root (DOCS_DIR) is now icedtea-web-docs/$(FULL_VERSION)
+ (install-data-local) now can copy all man pages more simply and from new DOCS_DIR
+ (stamps/generate-docs.stamp) is adapted to new DOCS_DIR
+ * netx/net/sourceforge/jnlp/controlpanel/NetworkSettingsPanel.java: minor fixes
+ like removal of redeclared deployment properties and switch on strings
+ * netx/net/sourceforge/jnlp/resources/Messages.properties: added missing brackets
+ behind @@ hints, all icedtea-web replaced by IcedTea-Web, (CBCheckOkSignedOk)
+ removed double space, added families of ITWS and ITWP
+ * netx/net/sourceforge/jnlp/util/docprovider/ItwebPluginTextProvider.java: and
+ * netx/net/sourceforge/jnlp/util/docprovider/ItwebSettingsTextsProvider.java:
+ all texts moved to properties
+
2014-10-07 Jie Kang
Modified unit tests for CacheEntry and CacheLRUWrapper to prevent blocking.
diff -r 6bbd07a0b15a -r 8967abe15ea3 Makefile.am
--- a/Makefile.am Tue Oct 07 15:13:17 2014 -0400
+++ b/Makefile.am Wed Oct 08 15:19:37 2014 +0200
@@ -3,7 +3,7 @@
export TOP_BUILD_DIR = $(abs_top_builddir)
export NETX_DIR = $(abs_top_builddir)/netx.build
-export DOCS_DIR=$(TOP_BUILD_DIR)/icedtea-web-docs
+export DOCS_DIR=$(TOP_BUILD_DIR)/icedtea-web-docs/$(FULL_VERSION)
export NETX_SRCDIR = $(abs_top_srcdir)/netx
export NETX_RESOURCE_DIR=$(NETX_SRCDIR)/net/sourceforge/jnlp/resources
@@ -258,7 +258,7 @@
# all generated manpages are installed in swarm
install-data-local:
${mkinstalldirs} -d $(DESTDIR)$(mandir)
- cp -r $(DOCS_DIR)/man-$(FULL_VERSION)/man/* $(DESTDIR)$(mandir)/
+ cp -r $(DOCS_DIR)/man/* $(DESTDIR)$(mandir)/
if ENABLE_DOCS
${mkinstalldirs} $(DESTDIR)$(htmldir)
(cd ${abs_top_builddir}/docs/netx; \
@@ -474,13 +474,13 @@
endif
stamps/generate-docs.stamp: stamps/netx.stamp
- mkdir $(DOCS_DIR) ; \
- HTML_DOCS_TARGET_DIR=$(DOCS_DIR)/html-$(FULL_VERSION) ; \
- PLAIN_DOCS_TARGET_DIR=$(DOCS_DIR)/plain-$(FULL_VERSION) ; \
- MAN_DOCS_TARGET_DIR=$(DOCS_DIR)/man-$(FULL_VERSION)/man ; \
+ mkdir -p $(DOCS_DIR) ; \
+ HTML_DOCS_TARGET_DIR=$(DOCS_DIR)/html ; \
+ PLAIN_DOCS_TARGET_DIR=$(DOCS_DIR)/plain ; \
+ MAN_DOCS_TARGET_DIR=$(DOCS_DIR)/man ; \
mkdir $$HTML_DOCS_TARGET_DIR ; \
mkdir $$PLAIN_DOCS_TARGET_DIR ; \
- mkdir -p $$MAN_DOCS_TARGET_DIR ; \
+ mkdir $$MAN_DOCS_TARGET_DIR ; \
HTML_DOCS_INDEX=$$HTML_DOCS_TARGET_DIR/index.html ; \
TP_COMMAND="$(BOOT_DIR)/bin/java -cp $(NETX_DIR) net.sourceforge.jnlp.util.docprovider.TextsProvider" ; \
TP_TAIL="false $(FULL_VERSION)" ; \
diff -r 6bbd07a0b15a -r 8967abe15ea3 netx/net/sourceforge/jnlp/controlpanel/NetworkSettingsPanel.java
--- a/netx/net/sourceforge/jnlp/controlpanel/NetworkSettingsPanel.java Tue Oct 07 15:13:17 2014 -0400
+++ b/netx/net/sourceforge/jnlp/controlpanel/NetworkSettingsPanel.java Wed Oct 08 15:19:37 2014 +0200
@@ -58,17 +58,19 @@
@SuppressWarnings("serial")
public class NetworkSettingsPanel extends JPanel implements ActionListener {
- private DeploymentConfiguration config;
+ private final DeploymentConfiguration config;
private JPanel description;
- private ArrayList proxyPanels = new ArrayList(); // The stuff with editable fields
+ private final ArrayList proxyPanels = new ArrayList<>(); // The stuff with editable fields
/** List of properties used by this panel */
- public static String[] properties = { "deployment.proxy.type",
- "deployment.proxy.http.host",
- "deployment.proxy.http.port",
- "deployment.proxy.bypass.local",
- "deployment.proxy.auto.config.url", };
+ public static String[] properties = {
+ DeploymentConfiguration.KEY_PROXY_TYPE,
+ DeploymentConfiguration.KEY_PROXY_HTTP_HOST,
+ DeploymentConfiguration.KEY_PROXY_HTTP_PORT,
+ DeploymentConfiguration.KEY_PROXY_BYPASS_LOCAL,
+ DeploymentConfiguration.KEY_PROXY_AUTO_CONFIG_URL
+ };
/**
* Creates a new instance of the network settings panel.
@@ -259,18 +261,23 @@
*/
private void setState() {
((CardLayout) this.description.getLayout()).show(this.description, config.getProperty(properties[0]));
- if (config.getProperty(properties[0]).equals("0")) {
- for (JPanel panel : proxyPanels)
- enablePanel(panel, false);
- } else if (config.getProperty(properties[0]).equals("1")) {
- enablePanel(proxyPanels.get(1), false);
- enablePanel(proxyPanels.get(0), true);
- } else if (config.getProperty(properties[0]).equals("2")) {
- enablePanel(proxyPanels.get(0), false);
- enablePanel(proxyPanels.get(1), true);
- } else if (config.getProperty(properties[0]).equals("3")) {
- for (JPanel panel : proxyPanels)
- enablePanel(panel, false);
+ switch (config.getProperty(properties[0])) {
+ case "0":
+ for (JPanel panel : proxyPanels)
+ enablePanel(panel, false);
+ break;
+ case "1":
+ enablePanel(proxyPanels.get(1), false);
+ enablePanel(proxyPanels.get(0), true);
+ break;
+ case "2":
+ enablePanel(proxyPanels.get(0), false);
+ enablePanel(proxyPanels.get(1), true);
+ break;
+ case "3":
+ for (JPanel panel : proxyPanels)
+ enablePanel(panel, false);
+ break;
}
}
@@ -280,6 +287,7 @@
*/
public static PlainDocument getPortNumberDocument(){
return new PlainDocument(){
+ @Override
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
if (str != null) {
try {
@@ -294,7 +302,6 @@
, JOptionPane.WARNING_MESSAGE);
}
}
- return;
}
};
}
diff -r 6bbd07a0b15a -r 8967abe15ea3 netx/net/sourceforge/jnlp/resources/Messages.properties
--- a/netx/net/sourceforge/jnlp/resources/Messages.properties Tue Oct 07 15:13:17 2014 -0400
+++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Wed Oct 08 15:19:37 2014 +0200
@@ -270,11 +270,11 @@
ITWoptionsDistroUrlCaption=the mailing list
ITWoptionsL3=Contributing:
-# policyeditor man (note, spaces (especially the one around @@ markup)are important due to man pages markup
+# policyeditor man (note, spaces (especially the one around @@ markup) are important due to man pages markup)
PEintro= - view and modify security policy settings for @BOLD_OPEN at javaws @BOLD_CLOSE at and the @BOLD_OPEN at browser plugin at BOLD_CLOSE@
PEsynopseP1=policy_file
PEsynopseP2=url
-PEdescL1=is a GUI application with small command line support to view and edit applet security policy settings used by the icedtea-web implementation \
+PEdescL1=is a GUI application with small command line support to view and edit applet security policy settings used by the IcedTea-Web implementation \
of at BOLD_OPEN@ javaws @BOLD_CLOSE at and the @BOLD_OPEN@ browser plugin. @BOLD_CLOSE at It is intended as a simpler, easier to use, and more accessible alternative \
to the standard @BOLD_OPEN@ JDK Policy Tool. @BOLD_CLOSE at Administrators and power users who need fine grained control over policy files should probably use \
Policy Tool instead of PolicyEditor.
@@ -284,7 +284,7 @@
PEexampleL2=Show the GUI editor with no file opened.
-# javaws man (note, spaces (especially the one around @@ markup)are important due to man pages markup
+# javaws man (note, spaces (especially the one around @@ markup) are important due to man pages markup)
JWSintro= - a Java Web Start client
JWSdescL1=is an implementation of a JNLP client. It uses a JNLP (Java Network Launch Protocol) file to securely run a remote Java application or a Java applet. \
This implementation of {0}is from the IcedTea project and is based on the NetX project.
@@ -942,9 +942,31 @@
CBCheckNoEntry = This application does not specify a Codebase in its manifest. Please verify with the applet's vendor. Continuing. See: http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/security/no_redeploy.html for details.
CBCheckUnsignedPass = Codebase matches codebase manifest attribute, but application is unsigned. Continuing. See: http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/security/no_redeploy.html for details.
CBCheckUnsignedFail= The application's codebase does NOT match the codebase specified in its manifest, but the application is unsigned. Continuing. See: http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/security/no_redeploy.html for details.
-CBCheckOkSignedOk = Codebase matches codebase manifest attribute, and application is signed. Continuing. See: http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/security/no_redeploy.html for details.
+CBCheckOkSignedOk = Codebase matches codebase manifest attribute, and application is signed. Continuing. See: http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/security/no_redeploy.html for details.
CBCheckSignedAppletDontMatchException = Signed applets are not allowed to run when their actual Codebase does not match the Codebase specified in their manifest. Expected: {0}. Actual: {1}. See: http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/security/no_redeploy.html for details.
CBCheckSignedFail = Application Codebase does NOT match the Codebase specified in the application's manifest, and this application is signed. You are strongly discouraged from running this application. See: http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/security/no_redeploy.html for details.
+
+# itweb-settings man (note, spaces (especially the one around @@ markup) are important due to man pages markup)
+ITWSintro= - view and modify settings for @BOLD_OPEN at javaws @BOLD_CLOSE at and the @BOLD_OPEN at browser plugin at BOLD_CLOSE@
+ITWSsynops=command arguments
+IWSdescL1=is a command line and a GUI program to modify and edit settings used by the IcedTea-Web implementation \
+of at BOLD_OPEN@ javaws @BOLD_CLOSE at and the @BOLD_OPEN at browser plugin at BOLD_CLOSE@.
+IWSdescL2=If executed without any arguments, it starts up a GUI. Otherwise, it tries to do what is specified in the argument.
+IWSdescL3=The command-line allows quickly searching, making a copy of and modifying specific settings without having to hunt through a UI.
+IWSexampleL1=Show the GUI editor
+IWSexampleL2=Resets the value of `{0}` setting.
+ITWSdefault=default
+IWSexampleL3=Known properties
+IWSexampleL31=(key, value and default value (if different)):
+IWSexampleL32=(key and default value):
+
+# itweb-plugin man (note, spaces (especially the one around @@ markup) are important due to man pages markup)
+ITWPintro= - allow to run @BOLD_OPEN at java applets @BOLD_CLOSE at in your favorite @BOLD_OPEN at browser@BOLD_CLOSE@
+ITWPsynopsL1=is working in your browser, once your browser knows about this files.
+ITWPsynopsL2=The {0} must be placed, or linked inside specific directories. See {1}
+ITWPsynopsL3=@BOLD_OPEN@ Mozilla compatible browsers @BOLD_CLOSE at like Firefox, Midori, Epiphany, Chrome or Chromium use:
+ITWPsynopsL4=@BOLD_OPEN@ Opera family browsers @BOLD_CLOSE at like Opera use:
+ITWPtrademarks=All third-party trademarks are the property of their respective owners
# files descriptions
FILEpipe=Contains in and out pipe for native2java communication and (if enabled) debugging pipe.
diff -r 6bbd07a0b15a -r 8967abe15ea3 netx/net/sourceforge/jnlp/util/docprovider/ItwebPluginTextProvider.java
--- a/netx/net/sourceforge/jnlp/util/docprovider/ItwebPluginTextProvider.java Tue Oct 07 15:13:17 2014 -0400
+++ b/netx/net/sourceforge/jnlp/util/docprovider/ItwebPluginTextProvider.java Wed Oct 08 15:19:37 2014 +0200
@@ -38,6 +38,7 @@
import java.io.IOException;
import net.sourceforge.jnlp.config.PathsAndFiles;
+import net.sourceforge.jnlp.runtime.Translator;
import net.sourceforge.jnlp.util.docprovider.formatters.formatters.Formatter;
/**
@@ -59,7 +60,7 @@
public String getIntroduction() {
return super.getIntroduction()
+ getFormatter().wrapParagraph(
- getFormatter().process(getId() + " - allow to run @BOLD_OPEN at java applets @BOLD_CLOSE at in your favourite @BOLD_OPEN at browser@BOLD_CLOSE@"));
+ getFormatter().process(getId() + " " + Translator.R("ITWPintro")));
}
@Override
@@ -105,13 +106,14 @@
}
}
return super.getSynopsis()
- + getFormatter().process("@BOLD_OPEN@ " + getId() + " @BOLD_CLOSE at is working in your browser, once your browser knows about this files.") + getFormatter().getNewLine()
+ + getFormatter().getBold(getId() + " ") + getFormatter().process(Translator.R("ITWPsynopsL1")) + getFormatter().getNewLine()
+ getFormatter().wrapParagraph(
- getFormatter().process("The " + PathsAndFiles.ICEDTEA_SO + " must be placed, or linked iniside specific direcotries. See ") + getFormatter().getUrl(ITW_PLUGIN_URL) + getFormatter().getNewLine()
- + getFormatter().process("@BOLD_OPEN@ Mozzila compliant browsers @BOLD_CLOSE at like Firefox, Midori, Epiphany, Chrome or Chromium use:") + getFormatter().getNewLine()
+ getFormatter().process(Translator.R("ITWPsynopsL2", PathsAndFiles.ICEDTEA_SO, getFormatter().getUrl(ITW_PLUGIN_URL))) + getFormatter().getNewLine()
+ + getFormatter().process(Translator.R("ITWPsynopsL3")) + getFormatter().getNewLine()
+ mozillas)
- + getFormatter().wrapParagraph(getFormatter().process("@BOLD_OPEN@ Opera family browsers @BOLD_CLOSE at like Opera use:") + getFormatter().getNewLine()
- + operas);
+ + getFormatter().wrapParagraph(getFormatter().process(Translator.R("ITWPsynopsL4")) + getFormatter().getNewLine()
+ + operas)
+ + getFormatter().wrapParagraph(Translator.R("ITWPtrademarks"));
}
@Override
@@ -138,7 +140,7 @@
}
public static void main(String[] args) throws IOException {
- TextsProvider.main(new String[]{"all", "true", "3.51.a"});
+ TextsProvider.main(new String[]{"all", "false", "3.51.a"});
}
@Override
diff -r 6bbd07a0b15a -r 8967abe15ea3 netx/net/sourceforge/jnlp/util/docprovider/ItwebSettingsTextsProvider.java
--- a/netx/net/sourceforge/jnlp/util/docprovider/ItwebSettingsTextsProvider.java Tue Oct 07 15:13:17 2014 -0400
+++ b/netx/net/sourceforge/jnlp/util/docprovider/ItwebSettingsTextsProvider.java Wed Oct 08 15:19:37 2014 +0200
@@ -45,9 +45,11 @@
import java.util.Map;
import net.sourceforge.jnlp.config.Defaults;
import net.sourceforge.jnlp.OptionsDefinitions;
+import net.sourceforge.jnlp.config.DeploymentConfiguration;
import net.sourceforge.jnlp.config.PathsAndFiles;
import net.sourceforge.jnlp.config.Setting;
import net.sourceforge.jnlp.runtime.JNLPRuntime;
+import net.sourceforge.jnlp.runtime.Translator;
import net.sourceforge.jnlp.util.docprovider.formatters.formatters.Formatter;
public class ItwebSettingsTextsProvider extends TextsProvider {
@@ -65,25 +67,28 @@
public String getIntroduction() {
return super.getIntroduction()
+ getFormatter().wrapParagraph(
- getFormatter().process(getId() + " - view and modify settings for @BOLD_OPEN at javaws @BOLD_CLOSE at and the @BOLD_OPEN at browser plugin at BOLD_CLOSE@"));
+ getFormatter().process(getId() + " " + Translator.R("ITWSintro")));
}
@Override
public String getSynopsis() {
return super.getSynopsis()
- + getFormatter().wrapParagraph(getFormatter().process("@BOLD_OPEN@ " + getId() + " @BOLD_CLOSE_NWLINE_BOLD_OPEN@" + getId() + " @BOLD_CLOSE at command arguments"));
+ + getFormatter().wrapParagraph(
+ getFormatter().getBoldOpening() + getId() + " "
+ + getFormatter().getBoldCloseNwlineBoldOpen()
+ + getId() + " " + getFormatter().getBoldClosing()
+ + Translator.R("ITWSsynops"));
}
@Override
public String getDescription() {
return super.getDescription()
- + getFormatter().wrapParagraph(getFormatter().process("@BOLD_OPEN@ " + getId() + " @BOLD_CLOSE@"
- + "is a command line and a GUI program to modify and edit settings used by the icedtea-web implementation of"
- + "@BOLD_OPEN@ " + JAVAWS + " @BOLD_CLOSE at and the @BOLD_OPEN at browser plugin at BOLD_CLOSE@."
- + "@NWLINE@@NWLINE@"
- + "If executed without any arguments, it starts up a GUI. Otherwise, it tries to do what is specified in the argument."
- + "@NWLINE@@NWLINE@"
- + "The command-line allows quickly searching, making a copy of and modifying specific settings without having to hunt through a UI."));
+ + getFormatter().wrapParagraph(getFormatter().getBold(getId() + " ") + getFormatter().process(
+ Translator.R("IWSdescL1")
+ + getFormatter().getNewLine() + getFormatter().getNewLine()
+ + Translator.R("IWSdescL2")
+ + getFormatter().getNewLine() + getFormatter().getNewLine()
+ + Translator.R("IWSdescL3")));
}
@@ -102,8 +107,8 @@
public String getExamples() {
return super.getExamples()
+ getFormatter().wrapParagraph(
- getFormatter().getOption(getId(), "Show the GUI editor")
- + getFormatter().getOption(getId() + " reset deployment.proxy.type", " Resets the value of 'deployment.proxy.type' setting."))
+ getFormatter().getOption(getId(), Translator.R("IWSexampleL1"))
+ + getFormatter().getOption(getId() + " " + OptionsDefinitions.OPTIONS.RESET.option + " " + DeploymentConfiguration.KEY_PROXY_TYPE, " " + Translator.R("IWSexampleL2", DeploymentConfiguration.KEY_PROXY_TYPE)))
+ getFormatter().getNewLine()
+ getFormatter().wrapParagraph(getKpMinorTitle() + getFormatter().getNewLine()
+ getFormatter().wrapParagraph(getProperties()));
@@ -151,7 +156,7 @@
if (defaultValue.equals(setValue)) {
value = defaultValue;
} else {
- value = setValue + " (default: " + defaultValue + ")";
+ value = setValue + " (" + Translator.R("ITWSdefault") + ": " + defaultValue + ")";
}
} else {
if (fileAcronom == null) {
@@ -167,9 +172,9 @@
public String getKpMinorTitle() {
if (expandVariables) {
- return getFormatter().getBold("Known properties (key, value and default value (if different)):");
+ return getFormatter().getBold(Translator.R("IWSexampleL3") + " " + Translator.R("IWSexampleL31"));
} else {
- return getFormatter().getBold("Known properties (key and default value):");
+ return getFormatter().getBold(Translator.R("IWSexampleL3") + " " + Translator.R("IWSexampleL32"));
}
}
}
From ldracz at icedtea.classpath.org Wed Oct 8 14:30:30 2014
From: ldracz at icedtea.classpath.org (ldracz at icedtea.classpath.org)
Date: Wed, 08 Oct 2014 14:30:30 +0000
Subject: /hg/icedtea-web: Standardize all options to use hyphens
Message-ID:
changeset 82e8a9e81520 in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=82e8a9e81520
author: Lukasz Dracz
date: Wed Oct 08 10:30:20 2014 -0400
Standardize all options to use hyphens
2014-10-08 Lukasz Dracz
Standardize all options to use hyphens
* netx/net/sourceforge/jnlp/OptionsDefinitions.java:
itweb-settings options changed to have hyphens in front,
added new enum to NumberOfArguments
(getItwsettingsCommands): added headless, changed nodashhelp to help
* netx/net/sourceforge/jnlp/controlpanel/CommandLine.java
* netx/net/sourceforge/jnlp/resources/Messages.properties:
(BOHelp, IBOCheck): modified (NOAevennumberorequalschar): added
diffstat:
ChangeLog | 11 ++++++
netx/net/sourceforge/jnlp/OptionsDefinitions.java | 27 ++++++++++------
netx/net/sourceforge/jnlp/controlpanel/CommandLine.java | 2 +-
netx/net/sourceforge/jnlp/resources/Messages.properties | 6 +-
4 files changed, 31 insertions(+), 15 deletions(-)
diffs (132 lines):
diff -r 8967abe15ea3 -r 82e8a9e81520 ChangeLog
--- a/ChangeLog Wed Oct 08 15:19:37 2014 +0200
+++ b/ChangeLog Wed Oct 08 10:30:20 2014 -0400
@@ -1,3 +1,14 @@
+2014-10-08 Lukasz Dracz
+
+ Standardize all options to use hyphens
+ * netx/net/sourceforge/jnlp/OptionsDefinitions.java:
+ itweb-settings options changed to have hyphens in front,
+ added new enum to NumberOfArguments
+ (getItwsettingsCommands): added headless, changed nodashhelp to help
+ * netx/net/sourceforge/jnlp/controlpanel/CommandLine.java
+ * netx/net/sourceforge/jnlp/resources/Messages.properties:
+ (BOHelp, IBOCheck): modified (NOAevennumberorequalschar): added
+
2014-10-08 Jiri Vanek
itw-plugin and itweb-settings documentation made localizable
diff -r 8967abe15ea3 -r 82e8a9e81520 netx/net/sourceforge/jnlp/OptionsDefinitions.java
--- a/netx/net/sourceforge/jnlp/OptionsDefinitions.java Wed Oct 08 15:19:37 2014 +0200
+++ b/netx/net/sourceforge/jnlp/OptionsDefinitions.java Wed Oct 08 10:30:20 2014 -0400
@@ -73,14 +73,13 @@
TRUSTNONE("-Xtrustnone","BOTrustnone"),
JNLP("-jnlp","BOJnlp", NumberOfArguments.ONE),
//itweb settings
- NODASHHELP("help", "IBOHelp"),
- LIST("list", "IBOList"),
- GET("get", "name", "IBOGet"),
- INFO("info", "name", "IBOInfo"),
- SET("set", "name value", "IBOSet"),
- RESETALL("reset", "all", "IBOResetAll"),
- RESET("reset", "name", "IBOReset"),
- CHECK("check", "name", "IBOCheck"),
+ LIST("-list", "IBOList"),
+ GET("-get", "name", "IBOGet", NumberOfArguments.ONE_OR_MORE),
+ INFO("-info", "name", "IBOInfo", NumberOfArguments.ONE_OR_MORE),
+ SET("-set", "name value", "IBOSet", NumberOfArguments.EVEN_NUMBER_OR_WITHEQUALCHAR),
+ RESETALL("-reset", "all", "IBOResetAll"),
+ RESET("-reset", "name", "IBOReset", NumberOfArguments.ONE_OR_MORE),
+ CHECK("-check", "name", "IBOCheck"),
//policyeditor
//-help
FILE("-file", "policy_file", "PBOFile"),
@@ -123,6 +122,10 @@
return numberOfArguments == NumberOfArguments.EQUALS_CHAR;
}
+ public boolean hasEvenNumberOrWithEqualsChar() {
+ return numberOfArguments == NumberOfArguments.EVEN_NUMBER_OR_WITHEQUALCHAR;
+ }
+
public boolean hasOneOrMoreArguments() {
return numberOfArguments == NumberOfArguments.ONE_OR_MORE;
}
@@ -140,6 +143,7 @@
NONE("NOAnone"),
ONE("NOAone"),
ONE_OR_MORE("NOAonemore"),
+ EVEN_NUMBER_OR_WITHEQUALCHAR("NOAevennumberorequalschar"),
EQUALS_CHAR("NOAequalschar");
String messageKey;
@@ -155,13 +159,14 @@
public static List getItwsettingsCommands() {
return Arrays.asList(new OPTIONS[]{
- OPTIONS.NODASHHELP,
+ OPTIONS.HELP,
OPTIONS.LIST,
OPTIONS.GET,
OPTIONS.INFO,
OPTIONS.SET,
+ OPTIONS.RESET,
OPTIONS.RESETALL,
- OPTIONS.RESET,
+ OPTIONS.HEADLESS,
OPTIONS.CHECK
});
}
@@ -210,7 +215,7 @@
l.addAll(getJavaWsRuntimeOptions());
l.addAll(getJavaWsControlOptions());
//trustall is not returned by getJavaWsRuntimeOptions
- //or getJavaWsControlOptions, as it is not desitred in documentation
+ //or getJavaWsControlOptions, as it is not desired in documentation
l.add(OPTIONS.TRUSTALL);
return l;
}
diff -r 8967abe15ea3 -r 82e8a9e81520 netx/net/sourceforge/jnlp/controlpanel/CommandLine.java
--- a/netx/net/sourceforge/jnlp/controlpanel/CommandLine.java Wed Oct 08 15:19:37 2014 +0200
+++ b/netx/net/sourceforge/jnlp/controlpanel/CommandLine.java Wed Oct 08 10:30:20 2014 -0400
@@ -438,7 +438,7 @@
List arguments = new ArrayList<>(Arrays.asList(argsArray));
int val;
- if (command.equals(OptionsDefinitions.OPTIONS.NODASHHELP.option)) {
+ if (command.equals(OptionsDefinitions.OPTIONS.HELP.option)) {
val = handleHelpCommand();
} else if (command.equals(OptionsDefinitions.OPTIONS.LIST.option)) {
val = handleListCommand(arguments);
diff -r 8967abe15ea3 -r 82e8a9e81520 netx/net/sourceforge/jnlp/resources/Messages.properties
--- a/netx/net/sourceforge/jnlp/resources/Messages.properties Wed Oct 08 15:19:37 2014 +0200
+++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Wed Oct 08 10:30:20 2014 -0400
@@ -320,18 +320,17 @@
BXclearcache= Clean the JNLP application cache.
BXignoreheaders= Skip jar header verification.
BXoffline = Prevent ITW network connection. Only cache will be used. Application can still connect.
-BOHelp = Print this message and exit.
+BOHelp = Prints out information about supported command and basic usage.
BOTrustnone = Instead of asking user, will foretold all answers as no.
# Itweb-settings boot commands
-IBOHelp=Prints out information about supported command, descriptions and basic usage.
IBOList=Shows a list of all settings.
IBOGet=Shows the value of the named setting.
IBOInfo=Shows additional information about the named setting. Includes a description, the current value, the possible values, and the source of the setting.
IBOSet=Sets the setting to the new value, after checking that it is an appropriate value.
IBOResetAll= Resets all settings to their original values.
IBOReset=Resets the named setting to its original value.
-IBOCheck=Checks that the current value of the setting is a valid value.
+IBOCheck=Checks that the current settings have valid values.
PBOFile=Specifies a policy file path to open. If exactly one argument is given, and it is not this flag, it is interpreted as a file path to open, as if this flag was given first. This flag exists \
mostly for compatibility with Policy Tool, but is also needed when opening a policy file and also using the -codebase flag.
@@ -344,6 +343,7 @@
NOAone=Exactly one argument expected
NOAonemore=Expected one or more arguments
NOAequalschar=Expected -param=value vaue declaration
+NOAevennumberorequalschar=Expected one or more arguments with param=value as valid argument
# Allowed man sections
manNAME=NAME
From bugzilla-daemon at icedtea.classpath.org Wed Oct 8 16:03:11 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Wed, 08 Oct 2014 16:03:11 +0000
Subject: [Bug 2006] Client queries too much data from vm-memory-stats
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2006
Jie Kang changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jkang at redhat.com
Assignee|unassigned at icedtea.classpat |jkang at redhat.com
|h.org |
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From ldracz at icedtea.classpath.org Wed Oct 8 20:14:24 2014
From: ldracz at icedtea.classpath.org (ldracz at icedtea.classpath.org)
Date: Wed, 08 Oct 2014 20:14:24 +0000
Subject: /hg/icedtea-web: Fix ChangeLog Indentation
Message-ID:
changeset 911729fab592 in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=911729fab592
author: Lukasz Dracz
date: Wed Oct 08 16:13:58 2014 -0400
Fix ChangeLog Indentation
diffstat:
ChangeLog | 16 ++++++++--------
1 files changed, 8 insertions(+), 8 deletions(-)
diffs (25 lines):
diff -r 82e8a9e81520 -r 911729fab592 ChangeLog
--- a/ChangeLog Wed Oct 08 10:30:20 2014 -0400
+++ b/ChangeLog Wed Oct 08 16:13:58 2014 -0400
@@ -1,13 +1,13 @@
2014-10-08 Lukasz Dracz
- Standardize all options to use hyphens
- * netx/net/sourceforge/jnlp/OptionsDefinitions.java:
- itweb-settings options changed to have hyphens in front,
- added new enum to NumberOfArguments
- (getItwsettingsCommands): added headless, changed nodashhelp to help
- * netx/net/sourceforge/jnlp/controlpanel/CommandLine.java
- * netx/net/sourceforge/jnlp/resources/Messages.properties:
- (BOHelp, IBOCheck): modified (NOAevennumberorequalschar): added
+ Standardize all options to use hyphens
+ * netx/net/sourceforge/jnlp/OptionsDefinitions.java:
+ itweb-settings options changed to have hyphens in front,
+ added new enum to NumberOfArguments
+ (getItwsettingsCommands): added headless, changed nodashhelp to help
+ * netx/net/sourceforge/jnlp/controlpanel/CommandLine.java
+ * netx/net/sourceforge/jnlp/resources/Messages.properties:
+ (BOHelp, IBOCheck): modified (NOAevennumberorequalschar): added
2014-10-08 Jiri Vanek
From andrew at icedtea.classpath.org Wed Oct 8 23:56:02 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Wed, 08 Oct 2014 23:56:02 +0000
Subject: /hg/icedtea6: 2 new changesets
Message-ID:
changeset 7e07169a1831 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=7e07169a1831
author: Andrew John Hughes
date: Wed Oct 08 23:10:14 2014 +0100
Disable annotation race condition backport temporarily as causes crashes during bootstrap.
2014-10-08 Andrew John Hughes
* Makefile.am:
(ICEDTEA_PATCHES): Disable annotation race
condition backport temporarily as causes
crashes during bootstrap.
changeset c125344ef224 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=c125344ef224
author: Andrew John Hughes
date: Thu Oct 09 00:55:41 2014 +0100
Improve cryptography support.
S4963723: Implement SHA-224
S6578658: Request for raw RSA (NONEwithRSA) Signature support in SunMSCAPI
S6753664: Support SHA256 (and higher) in SunMSCAPI
S7033170: Cipher.getMaxAllowedKeyLength(String) throws NoSuchAlgorithmException
S7044060: Need to support NSA Suite B Cryptography algorithms
S7106773: 512 bits RSA key cannot work with SHA384 and SHA512
S7180907: Jarsigner -verify fails if rsa file used sha-256 with authenticated attributes
S8006935: Need to take care of long secret keys in HMAC/PRF compuation
S8049480: Current versions of Java can't verify jars signed and timestamped with Java 9
2014-10-08 Andrew John Hughes
* Makefile.am:
(ICEDTEA_PATCHES): Add new patches.
* NEWS: Updated.
* patches/openjdk/4963723-implement_sha-224.patch,
* patches/openjdk/6578658-sunmscapi_nonewithrsa.patch,
* patches/openjdk/6753664-sunmscapi_sha-256.patch,
* patches/openjdk/7033170-getmaxallowedkeylength_throws_exception.patch,
* patches/openjdk/7044060-support_nsa_suite_b.patch,
* patches/openjdk/7106773-512_bits_rsa.patch,
* patches/openjdk/7180907-jarsigner_sha-256.patch,
* patches/openjdk/8006935-long_keys_in_hmac_prf.patch,
* patches/openjdk/8049480-jarsigner_openjdk_9.patch:
Backports to improve cryptography support.
diffstat:
ChangeLog | 23 +
Makefile.am | 13 +-
NEWS | 9 +
patches/openjdk/4963723-implement_sha-224.patch | 2334 +++++++
patches/openjdk/6578658-sunmscapi_nonewithrsa.patch | 602 +
patches/openjdk/6753664-sunmscapi_sha-256.patch | 640 +
patches/openjdk/7033170-getmaxallowedkeylength_throws_exception.patch | 117 +
patches/openjdk/7044060-support_nsa_suite_b.patch | 3223 ++++++++++
patches/openjdk/7106773-512_bits_rsa.patch | 1336 ++++
patches/openjdk/7180907-jarsigner_sha-256.patch | 142 +
patches/openjdk/8006935-long_keys_in_hmac_prf.patch | 41 +
patches/openjdk/8049480-jarsigner_openjdk_9.patch | 295 +
12 files changed, 8774 insertions(+), 1 deletions(-)
diffs (truncated from 8846 to 500 lines):
diff -r 251d55dd9268 -r c125344ef224 ChangeLog
--- a/ChangeLog Thu Oct 02 22:50:54 2014 +0100
+++ b/ChangeLog Thu Oct 09 00:55:41 2014 +0100
@@ -1,3 +1,26 @@
+2014-10-08 Andrew John Hughes
+
+ * Makefile.am:
+ (ICEDTEA_PATCHES): Add new patches.
+ * NEWS: Updated.
+ * patches/openjdk/4963723-implement_sha-224.patch,
+ * patches/openjdk/6578658-sunmscapi_nonewithrsa.patch,
+ * patches/openjdk/6753664-sunmscapi_sha-256.patch,
+ * patches/openjdk/7033170-getmaxallowedkeylength_throws_exception.patch,
+ * patches/openjdk/7044060-support_nsa_suite_b.patch,
+ * patches/openjdk/7106773-512_bits_rsa.patch,
+ * patches/openjdk/7180907-jarsigner_sha-256.patch,
+ * patches/openjdk/8006935-long_keys_in_hmac_prf.patch,
+ * patches/openjdk/8049480-jarsigner_openjdk_9.patch:
+ Backports to improve cryptography support.
+
+2014-10-08 Andrew John Hughes
+
+ * Makefile.am:
+ (ICEDTEA_PATCHES): Disable annotation race
+ condition backport temporarily as causes
+ crashes during bootstrap.
+
2014-10-02 Andrew John Hughes
* Makefile.am:
diff -r 251d55dd9268 -r c125344ef224 Makefile.am
--- a/Makefile.am Thu Oct 02 22:50:54 2014 +0100
+++ b/Makefile.am Thu Oct 09 00:55:41 2014 +0100
@@ -618,7 +618,18 @@
patches/openjdk/6727719-performance_of_textlayout_getbounds.patch \
patches/openjdk/6745225-memory_leak_in_attributed_string.patch \
patches/openjdk/oj639-handle_fonts_with_no_canon_flag_set.patch \
- patches/openjdk/7122142-annotation_race_condition.patch
+ patches/openjdk/4963723-implement_sha-224.patch \
+ patches/openjdk/7180907-jarsigner_sha-256.patch \
+ patches/openjdk/8049480-jarsigner_openjdk_9.patch \
+ patches/openjdk/6753664-sunmscapi_sha-256.patch \
+ patches/openjdk/6578658-sunmscapi_nonewithrsa.patch \
+ patches/openjdk/7033170-getmaxallowedkeylength_throws_exception.patch \
+ patches/openjdk/7044060-support_nsa_suite_b.patch \
+ patches/openjdk/8006935-long_keys_in_hmac_prf.patch \
+ patches/openjdk/7106773-512_bits_rsa.patch
+
+# Temporarily disabled as causes crashes
+# patches/openjdk/7122142-annotation_race_condition.patch
if WITH_RHINO
ICEDTEA_PATCHES += \
diff -r 251d55dd9268 -r c125344ef224 NEWS
--- a/NEWS Thu Oct 02 22:50:54 2014 +0100
+++ b/NEWS Thu Oct 09 00:55:41 2014 +0100
@@ -15,14 +15,23 @@
New in release 1.14.0 (201X-XX-XX):
* Backports
+ - S4963723: Implement SHA-224
+ - S6578658: Request for raw RSA (NONEwithRSA) Signature support in SunMSCAPI
- S6611637: NullPointerException in sun.font.GlyphLayout$EngineRecord.init
- S6727719: Performance of TextLayout.getBounds()
- S6745225: Memory leak while drawing Attributed String
+ - S6753664: Support SHA256 (and higher) in SunMSCAPI
- S6904962: GlyphVector.getVisualBounds should not be affected by leading or trailing white space.
+ - S7033170: Cipher.getMaxAllowedKeyLength(String) throws NoSuchAlgorithmException
+ - S7044060: Need to support NSA Suite B Cryptography algorithms
+ - S7106773: 512 bits RSA key cannot work with SHA384 and SHA512
- S7122142: (ann) Race condition between isAnnotationPresent and getAnnotations
- S7151089: PS NUMA: NUMA allocator should not attempt to free pages when using SHM large pages
+ - S7180907: Jarsigner -verify fails if rsa file used sha-256 with authenticated attributes
+ - S8006935: Need to take care of long secret keys in HMAC/PRF compuation
- S8013057: Detect mmap() commit failures in Linux and Solaris os::commit_memory() impls and call vm_exit_out_of_memory()
- S8026887: Make issues due to failed large pages allocations easier to debug
+ - S8049480: Current versions of Java can't verify jars signed and timestamped with Java 9
- OJ39: Handle fonts with the non-canonical processing flag set
* Bug fixes
- PR1886: IcedTea does not checksum supplied tarballs
diff -r 251d55dd9268 -r c125344ef224 patches/openjdk/4963723-implement_sha-224.patch
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/openjdk/4963723-implement_sha-224.patch Thu Oct 09 00:55:41 2014 +0100
@@ -0,0 +1,2334 @@
+diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/crypto/provider/HmacCore.java openjdk/jdk/src/share/classes/com/sun/crypto/provider/HmacCore.java
+--- openjdk.orig/jdk/src/share/classes/com/sun/crypto/provider/HmacCore.java 2014-07-14 04:24:43.000000000 +0100
++++ openjdk/jdk/src/share/classes/com/sun/crypto/provider/HmacCore.java 2014-10-08 23:26:07.127607311 +0100
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2002, 2012, 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
+@@ -38,16 +38,16 @@
+ * This class constitutes the core of HMAC- algorithms, where
+ * can be SHA1 or MD5, etc.
+ *
+- * It also contains the implementation classes for the SHA-256,
++ * It also contains the implementation classes for SHA-224, SHA-256,
+ * SHA-384, and SHA-512 HMACs.
+ *
+ * @author Jan Luehe
+ */
+-final class HmacCore implements Cloneable {
++abstract class HmacCore extends MacSpi implements Cloneable {
+
+- private final MessageDigest md;
+- private final byte[] k_ipad; // inner padding - key XORd with ipad
+- private final byte[] k_opad; // outer padding - key XORd with opad
++ private MessageDigest md;
++ private byte[] k_ipad; // inner padding - key XORd with ipad
++ private byte[] k_opad; // outer padding - key XORd with opad
+ private boolean first; // Is this the first data to be processed?
+
+ private final int blockLen;
+@@ -73,22 +73,11 @@
+ }
+
+ /**
+- * Constructor used for cloning.
+- */
+- private HmacCore(HmacCore other) throws CloneNotSupportedException {
+- this.md = (MessageDigest)other.md.clone();
+- this.blockLen = other.blockLen;
+- this.k_ipad = (byte[])other.k_ipad.clone();
+- this.k_opad = (byte[])other.k_opad.clone();
+- this.first = other.first;
+- }
+-
+- /**
+ * Returns the length of the HMAC in bytes.
+ *
+ * @return the HMAC length in bytes.
+ */
+- int getDigestLength() {
++ protected int engineGetMacLength() {
+ return this.md.getDigestLength();
+ }
+
+@@ -103,9 +92,8 @@
+ * @exception InvalidAlgorithmParameterException if the given algorithm
+ * parameters are inappropriate for this MAC.
+ */
+- void init(Key key, AlgorithmParameterSpec params)
++ protected void engineInit(Key key, AlgorithmParameterSpec params)
+ throws InvalidKeyException, InvalidAlgorithmParameterException {
+-
+ if (params != null) {
+ throw new InvalidAlgorithmParameterException
+ ("HMAC does not use parameters");
+@@ -140,7 +128,7 @@
+ Arrays.fill(secret, (byte)0);
+ secret = null;
+
+- reset();
++ engineReset();
+ }
+
+ /**
+@@ -148,7 +136,7 @@
+ *
+ * @param input the input byte to be processed.
+ */
+- void update(byte input) {
++ protected void engineUpdate(byte input) {
+ if (first == true) {
+ // compute digest for 1st pass; start with inner pad
+ md.update(k_ipad);
+@@ -167,7 +155,7 @@
+ * @param offset the offset in input
where the input starts.
+ * @param len the number of bytes to process.
+ */
+- void update(byte input[], int offset, int len) {
++ protected void engineUpdate(byte input[], int offset, int len) {
+ if (first == true) {
+ // compute digest for 1st pass; start with inner pad
+ md.update(k_ipad);
+@@ -178,7 +166,13 @@
+ md.update(input, offset, len);
+ }
+
+- void update(ByteBuffer input) {
++ /**
++ * Processes the input.remaining()
bytes in the ByteBuffer
++ * input
.
++ *
++ * @param input the input byte buffer.
++ */
++ protected void engineUpdate(ByteBuffer input) {
+ if (first == true) {
+ // compute digest for 1st pass; start with inner pad
+ md.update(k_ipad);
+@@ -194,7 +188,7 @@
+ *
+ * @return the HMAC result.
+ */
+- byte[] doFinal() {
++ protected byte[] engineDoFinal() {
+ if (first == true) {
+ // compute digest for 1st pass; start with inner pad
+ md.update(k_ipad);
+@@ -223,7 +217,7 @@
+ * Resets the HMAC for further use, maintaining the secret key that the
+ * HMAC was initialized with.
+ */
+- void reset() {
++ protected void engineReset() {
+ if (first == false) {
+ md.reset();
+ first = true;
+@@ -234,118 +228,38 @@
+ * Clones this object.
+ */
+ public Object clone() throws CloneNotSupportedException {
+- return new HmacCore(this);
++ HmacCore copy = (HmacCore) super.clone();
++ copy.md = (MessageDigest) md.clone();
++ copy.k_ipad = k_ipad.clone();
++ copy.k_opad = k_opad.clone();
++ return copy;
++ }
++
++ // nested static class for the HmacSHA224 implementation
++ public static final class HmacSHA224 extends HmacCore {
++ public HmacSHA224() throws NoSuchAlgorithmException {
++ super("SHA-224", 64);
++ }
+ }
+
+ // nested static class for the HmacSHA256 implementation
+- public static final class HmacSHA256 extends MacSpi implements Cloneable {
+- private final HmacCore core;
++ public static final class HmacSHA256 extends HmacCore {
+ public HmacSHA256() throws NoSuchAlgorithmException {
+- SunJCE.ensureIntegrity(getClass());
+- core = new HmacCore("SHA-256", 64);
+- }
+- private HmacSHA256(HmacSHA256 base) throws CloneNotSupportedException {
+- core = (HmacCore)base.core.clone();
+- }
+- protected int engineGetMacLength() {
+- return core.getDigestLength();
+- }
+- protected void engineInit(Key key, AlgorithmParameterSpec params)
+- throws InvalidKeyException, InvalidAlgorithmParameterException {
+- core.init(key, params);
+- }
+- protected void engineUpdate(byte input) {
+- core.update(input);
+- }
+- protected void engineUpdate(byte input[], int offset, int len) {
+- core.update(input, offset, len);
+- }
+- protected void engineUpdate(ByteBuffer input) {
+- core.update(input);
+- }
+- protected byte[] engineDoFinal() {
+- return core.doFinal();
+- }
+- protected void engineReset() {
+- core.reset();
+- }
+- public Object clone() throws CloneNotSupportedException {
+- return new HmacSHA256(this);
++ super("SHA-256", 64);
+ }
+ }
+
+ // nested static class for the HmacSHA384 implementation
+- public static final class HmacSHA384 extends MacSpi implements Cloneable {
+- private final HmacCore core;
++ public static final class HmacSHA384 extends HmacCore {
+ public HmacSHA384() throws NoSuchAlgorithmException {
+- SunJCE.ensureIntegrity(getClass());
+- core = new HmacCore("SHA-384", 128);
+- }
+- private HmacSHA384(HmacSHA384 base) throws CloneNotSupportedException {
+- core = (HmacCore)base.core.clone();
+- }
+- protected int engineGetMacLength() {
+- return core.getDigestLength();
+- }
+- protected void engineInit(Key key, AlgorithmParameterSpec params)
+- throws InvalidKeyException, InvalidAlgorithmParameterException {
+- core.init(key, params);
+- }
+- protected void engineUpdate(byte input) {
+- core.update(input);
+- }
+- protected void engineUpdate(byte input[], int offset, int len) {
+- core.update(input, offset, len);
+- }
+- protected void engineUpdate(ByteBuffer input) {
+- core.update(input);
+- }
+- protected byte[] engineDoFinal() {
+- return core.doFinal();
+- }
+- protected void engineReset() {
+- core.reset();
+- }
+- public Object clone() throws CloneNotSupportedException {
+- return new HmacSHA384(this);
++ super("SHA-384", 128);
+ }
+ }
+
+ // nested static class for the HmacSHA512 implementation
+- public static final class HmacSHA512 extends MacSpi implements Cloneable {
+- private final HmacCore core;
++ public static final class HmacSHA512 extends HmacCore {
+ public HmacSHA512() throws NoSuchAlgorithmException {
+- SunJCE.ensureIntegrity(getClass());
+- core = new HmacCore("SHA-512", 128);
+- }
+- private HmacSHA512(HmacSHA512 base) throws CloneNotSupportedException {
+- core = (HmacCore)base.core.clone();
+- }
+- protected int engineGetMacLength() {
+- return core.getDigestLength();
+- }
+- protected void engineInit(Key key, AlgorithmParameterSpec params)
+- throws InvalidKeyException, InvalidAlgorithmParameterException {
+- core.init(key, params);
+- }
+- protected void engineUpdate(byte input) {
+- core.update(input);
+- }
+- protected void engineUpdate(byte input[], int offset, int len) {
+- core.update(input, offset, len);
+- }
+- protected void engineUpdate(ByteBuffer input) {
+- core.update(input);
+- }
+- protected byte[] engineDoFinal() {
+- return core.doFinal();
+- }
+- protected void engineReset() {
+- core.reset();
+- }
+- public Object clone() throws CloneNotSupportedException {
+- return new HmacSHA512(this);
++ super("SHA-512", 128);
+ }
+ }
+-
+ }
+diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/crypto/provider/HmacMD5.java openjdk/jdk/src/share/classes/com/sun/crypto/provider/HmacMD5.java
+--- openjdk.orig/jdk/src/share/classes/com/sun/crypto/provider/HmacMD5.java 2014-07-14 04:24:43.000000000 +0100
++++ openjdk/jdk/src/share/classes/com/sun/crypto/provider/HmacMD5.java 2014-10-08 23:26:07.127607311 +0100
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 1998, 2012, 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
+@@ -37,11 +37,7 @@
+ *
+ * @author Jan Luehe
+ */
+-public final class HmacMD5 extends MacSpi implements Cloneable {
+-
+- private HmacCore hmac;
+- private static final int MD5_BLOCK_LENGTH = 64;
+-
++public final class HmacMD5 extends HmacCore {
+ /**
+ * Standard constructor, creates a new HmacMD5 instance.
+ * Verify the SunJCE provider in the constructor.
+@@ -50,92 +46,6 @@
+ * its own integrity
+ */
+ public HmacMD5() throws NoSuchAlgorithmException {
+- if (!SunJCE.verifySelfIntegrity(this.getClass())) {
+- throw new SecurityException("The SunJCE provider may have " +
+- "been tampered.");
+- }
+- hmac = new HmacCore(MessageDigest.getInstance("MD5"),
+- MD5_BLOCK_LENGTH);
+- }
+-
+- /**
+- * Returns the length of the HMAC in bytes.
+- *
+- * @return the HMAC length in bytes.
+- */
+- protected int engineGetMacLength() {
+- return hmac.getDigestLength();
+- }
+-
+- /**
+- * Initializes the HMAC with the given secret key and algorithm parameters.
+- *
+- * @param key the secret key.
+- * @param params the algorithm parameters.
+- *
+- * @exception InvalidKeyException if the given key is inappropriate for
+- * initializing this MAC.
+- * @exception InvalidAlgorithmParameterException if the given algorithm
+- * parameters are inappropriate for this MAC.
+- */
+- protected void engineInit(Key key, AlgorithmParameterSpec params)
+- throws InvalidKeyException, InvalidAlgorithmParameterException {
+- hmac.init(key, params);
+- }
+-
+- /**
+- * Processes the given byte.
+- *
+- * @param input the input byte to be processed.
+- */
+- protected void engineUpdate(byte input) {
+- hmac.update(input);
+- }
+-
+- /**
+- * Processes the first len
bytes in input
,
+- * starting at offset
.
+- *
+- * @param input the input buffer.
+- * @param offset the offset in input
where the input starts.
+- * @param len the number of bytes to process.
+- */
+- protected void engineUpdate(byte input[], int offset, int len) {
+- hmac.update(input, offset, len);
+- }
+-
+- protected void engineUpdate(ByteBuffer input) {
+- hmac.update(input);
+- }
+-
+- /**
+- * Completes the HMAC computation and resets the HMAC for further use,
+- * maintaining the secret key that the HMAC was initialized with.
+- *
+- * @return the HMAC result.
+- */
+- protected byte[] engineDoFinal() {
+- return hmac.doFinal();
+- }
+-
+- /**
+- * Resets the HMAC for further use, maintaining the secret key that the
+- * HMAC was initialized with.
+- */
+- protected void engineReset() {
+- hmac.reset();
+- }
+-
+- /*
+- * Clones this object.
+- */
+- public Object clone() {
+- HmacMD5 that = null;
+- try {
+- that = (HmacMD5) super.clone();
+- that.hmac = (HmacCore) this.hmac.clone();
+- } catch (CloneNotSupportedException e) {
+- }
+- return that;
++ super("MD5", 64);
+ }
+ }
+diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/crypto/provider/HmacPKCS12PBESHA1.java openjdk/jdk/src/share/classes/com/sun/crypto/provider/HmacPKCS12PBESHA1.java
+--- openjdk.orig/jdk/src/share/classes/com/sun/crypto/provider/HmacPKCS12PBESHA1.java 2014-07-14 04:24:43.000000000 +0100
++++ openjdk/jdk/src/share/classes/com/sun/crypto/provider/HmacPKCS12PBESHA1.java 2014-10-08 23:26:07.127607311 +0100
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2003, 2012, 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
+@@ -41,10 +41,7 @@
+ *
+ * @author Valerie Peng
+ */
+-public final class HmacPKCS12PBESHA1 extends MacSpi implements Cloneable {
+-
+- private HmacCore hmac = null;
+- private static final int SHA1_BLOCK_LENGTH = 64;
++public final class HmacPKCS12PBESHA1 extends HmacCore {
+
+ /**
+ * Standard constructor, creates a new HmacSHA1 instance.
+@@ -54,18 +51,7 @@
+ * its own integrity
+ */
+ public HmacPKCS12PBESHA1() throws NoSuchAlgorithmException {
+- SunJCE.ensureIntegrity(this.getClass());
+- this.hmac = new HmacCore(MessageDigest.getInstance("SHA1"),
+- SHA1_BLOCK_LENGTH);
+- }
+-
+- /**
+- * Returns the length of the HMAC in bytes.
+- *
+- * @return the HMAC length in bytes.
From andrew at icedtea.classpath.org Thu Oct 9 01:13:27 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Thu, 09 Oct 2014 01:13:27 +0000
Subject: /hg/icedtea6: 3 new changesets
Message-ID:
changeset 81f59ee7bcb5 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=81f59ee7bcb5
author: Andrew John Hughes
date: Thu Oct 09 01:32:24 2014 +0100
PR1904: [REGRESSION] Bug reports now lack IcedTea version & distribution packaging information
2014-10-09 Andrew John Hughes
* Makefile.am:
(ICEDTEA_PATCHES): Add new patch.
* NEWS: Updated.
* patches/pr1904-icedtea_and_distro_versioning.patch:
Backport of versioning fix from IcedTea 2.x.
changeset 98216d6a48cf in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=98216d6a48cf
author: Andrew John Hughes
date: Thu Oct 09 01:39:15 2014 +0100
S8017173, PR1688: XMLCipher with RSA_OAEP Key Transport algorithm can't be instantiated
2014-10-09 Andrew John Hughes
* Makefile.am:
(ICEDTEA_PATCHES): Add new patch.
* NEWS: Updated.
* patches/openjdk/8017173-xml_cipher_rsa_oaep_cant_be_instantiated.patch:
Backport of regression fix from 7u for PR1688.
changeset 09cb54af2f31 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=09cb54af2f31
author: Andrew John Hughes
date: Thu Oct 09 01:42:05 2014 +0100
PR1967: Move to new OpenJDK bug URL format
2014-08-29 Andrew John Hughes
* NEWS: Update OpenJDK bug URL.
diffstat:
ChangeLog | 20 ++
Makefile.am | 4 +-
NEWS | 5 +-
patches/openjdk/8017173-xml_cipher_rsa_oaep_cant_be_instantiated.patch | 69 ++++++++++
patches/pr1904-icedtea_and_distro_versioning.patch | 65 +++++++++
5 files changed, 161 insertions(+), 2 deletions(-)
diffs (209 lines):
diff -r c125344ef224 -r 09cb54af2f31 ChangeLog
--- a/ChangeLog Thu Oct 09 00:55:41 2014 +0100
+++ b/ChangeLog Thu Oct 09 01:42:05 2014 +0100
@@ -1,3 +1,23 @@
+2014-08-29 Andrew John Hughes
+
+ * NEWS: Update OpenJDK bug URL.
+
+2014-10-09 Andrew John Hughes
+
+ * Makefile.am:
+ (ICEDTEA_PATCHES): Add new patch.
+ * NEWS: Updated.
+ * patches/openjdk/8017173-xml_cipher_rsa_oaep_cant_be_instantiated.patch:
+ Backport of regression fix from 7u for PR1688.
+
+2014-10-09 Andrew John Hughes
+
+ * Makefile.am:
+ (ICEDTEA_PATCHES): Add new patch.
+ * NEWS: Updated.
+ * patches/pr1904-icedtea_and_distro_versioning.patch:
+ Backport of versioning fix from IcedTea 2.x.
+
2014-10-08 Andrew John Hughes
* Makefile.am:
diff -r c125344ef224 -r 09cb54af2f31 Makefile.am
--- a/Makefile.am Thu Oct 09 00:55:41 2014 +0100
+++ b/Makefile.am Thu Oct 09 01:42:05 2014 +0100
@@ -626,7 +626,9 @@
patches/openjdk/7033170-getmaxallowedkeylength_throws_exception.patch \
patches/openjdk/7044060-support_nsa_suite_b.patch \
patches/openjdk/8006935-long_keys_in_hmac_prf.patch \
- patches/openjdk/7106773-512_bits_rsa.patch
+ patches/openjdk/7106773-512_bits_rsa.patch \
+ patches/pr1904-icedtea_and_distro_versioning.patch \
+ patches/openjdk/8017173-xml_cipher_rsa_oaep_cant_be_instantiated.patch
# Temporarily disabled as causes crashes
# patches/openjdk/7122142-annotation_race_condition.patch
diff -r c125344ef224 -r 09cb54af2f31 NEWS
--- a/NEWS Thu Oct 09 00:55:41 2014 +0100
+++ b/NEWS Thu Oct 09 01:42:05 2014 +0100
@@ -1,6 +1,6 @@
Key:
-SX - http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=X
+SX - https://bugs.openjdk.java.net/browse/JDK-X
PRX - http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=X
RHX - https://bugzilla.redhat.com/show_bug.cgi?id=X
DX - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=X
@@ -30,11 +30,14 @@
- S7180907: Jarsigner -verify fails if rsa file used sha-256 with authenticated attributes
- S8006935: Need to take care of long secret keys in HMAC/PRF compuation
- S8013057: Detect mmap() commit failures in Linux and Solaris os::commit_memory() impls and call vm_exit_out_of_memory()
+ - S8017173, PR1688: XMLCipher with RSA_OAEP Key Transport algorithm can't be instantiated
- S8026887: Make issues due to failed large pages allocations easier to debug
- S8049480: Current versions of Java can't verify jars signed and timestamped with Java 9
- OJ39: Handle fonts with the non-canonical processing flag set
* Bug fixes
- PR1886: IcedTea does not checksum supplied tarballs
+ - PR1904: [REGRESSION] Bug reports now lack IcedTea version & distribution packaging information
+ - PR1967: Move to new OpenJDK bug URL format
New in release 1.13.4 (2014-07-15):
diff -r c125344ef224 -r 09cb54af2f31 patches/openjdk/8017173-xml_cipher_rsa_oaep_cant_be_instantiated.patch
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/openjdk/8017173-xml_cipher_rsa_oaep_cant_be_instantiated.patch Thu Oct 09 01:42:05 2014 +0100
@@ -0,0 +1,69 @@
+# HG changeset patch
+# User mullan
+# Date 1373562821 14400
+# Thu Jul 11 13:13:41 2013 -0400
+# Node ID c5d869453212ac971258f818de8b158dc22b6e8c
+# Parent 3119569301137347116bc045e4010f477bbc7a72
+8017173: XMLCipher with RSA_OAEP Key Transport algorithm can't be instantiated
+Reviewed-by: xuelei, vinnie
+
+diff -r 311956930113 -r c5d869453212 src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/JCEMapper.java
+--- openjdk/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/JCEMapper.java Thu Jul 11 12:41:19 2013 +0400
++++ openjdk/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/JCEMapper.java Thu Jul 11 13:13:41 2013 -0400
+@@ -160,7 +160,7 @@
+ );
+ algorithmsMap.put(
+ XMLCipher.RSA_OAEP,
+- new Algorithm("RSA", "RSA/ECB/OAEPPadding", "KeyTransport")
++ new Algorithm("RSA", "RSA/ECB/OAEPWithSHA1AndMGF1Padding", "KeyTransport")
+ );
+ algorithmsMap.put(
+ XMLCipher.DIFFIE_HELLMAN,
+diff -r 311956930113 -r c5d869453212 test/com/sun/org/apache/xml/internal/security/encryption/XMLCipher/GetInstance.java
+--- /dev/null Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/jdk/test/com/sun/org/apache/xml/internal/security/encryption/XMLCipher/GetInstance.java Thu Jul 11 13:13:41 2013 -0400
+@@ -0,0 +1,44 @@
++/*
++ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation.
++ *
++ * 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 8017173
++ * @summary Check that an XMLCipher with RSA_OAEP Key Transport algorithm can
++ * be instantiated
++ * @compile -XDignore.symbol.file GetInstance.java
++ * @run main GetInstance
++ */
++import com.sun.org.apache.xml.internal.security.Init;
++import com.sun.org.apache.xml.internal.security.encryption.XMLCipher;
++
++public class GetInstance {
++
++ private static final String RSA_OAEP =
++ "http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p";
++
++ public static void main(String[] args) throws Exception {
++ Init.init();
++ XMLCipher.getInstance(RSA_OAEP);
++ }
++}
diff -r c125344ef224 -r 09cb54af2f31 patches/pr1904-icedtea_and_distro_versioning.patch
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/pr1904-icedtea_and_distro_versioning.patch Thu Oct 09 01:42:05 2014 +0100
@@ -0,0 +1,65 @@
+diff -Nru openjdk.orig/hotspot/make/linux/makefiles/buildtree.make openjdk/hotspot/make/linux/makefiles/buildtree.make
+--- openjdk.orig/hotspot/make/linux/makefiles/buildtree.make 2014-07-14 04:12:31.000000000 +0100
++++ openjdk/hotspot/make/linux/makefiles/buildtree.make 2014-10-09 01:27:44.721520676 +0100
+@@ -197,6 +197,8 @@
+ echo "SA_BUILD_VERSION = $(HS_BUILD_VER)"; \
+ echo "HOTSPOT_BUILD_USER = $(HOTSPOT_BUILD_USER)"; \
+ echo "HOTSPOT_VM_DISTRO = $(HOTSPOT_VM_DISTRO)"; \
++ echo "DERIVATIVE_ID = $(DERIVATIVE_ID)"; \
++ echo "DISTRIBUTION_ID = $(DISTRIBUTION_ID)"; \
+ echo; \
+ echo "# Used for platform dispatching"; \
+ echo "TARGET_DEFINES = -DTARGET_OS_FAMILY_\$$(Platform_os_family)"; \
+diff -Nru openjdk.orig/hotspot/make/linux/makefiles/vm.make openjdk/hotspot/make/linux/makefiles/vm.make
+--- openjdk.orig/hotspot/make/linux/makefiles/vm.make 2014-10-09 01:26:56.716850976 +0100
++++ openjdk/hotspot/make/linux/makefiles/vm.make 2014-10-09 01:28:07.481838204 +0100
+@@ -109,11 +109,11 @@
+ endif
+
+ ifdef DERIVATIVE_ID
+-CPPFLAGS += -DDERIVATIVE_ID="\"$(DERIVATIVE_ID)\""
++CXXFLAGS += -DDERIVATIVE_ID="\"$(DERIVATIVE_ID)\""
+ endif
+
+ ifdef DISTRIBUTION_ID
+-CPPFLAGS += -DDISTRIBUTION_ID="\"$(DISTRIBUTION_ID)\""
++CXXFLAGS += -DDISTRIBUTION_ID="\"$(DISTRIBUTION_ID)\""
+ endif
+
+ # CFLAGS_WARN holds compiler options to suppress/enable warnings.
+diff -Nru openjdk.orig/hotspot/make/solaris/makefiles/vm.make openjdk/hotspot/make/solaris/makefiles/vm.make
+--- openjdk.orig/hotspot/make/solaris/makefiles/vm.make 2014-10-09 01:26:56.720851031 +0100
++++ openjdk/hotspot/make/solaris/makefiles/vm.make 2014-10-09 01:28:49.158419635 +0100
+@@ -85,6 +85,14 @@
+ ${HS_LIB_ARCH} \
+ ${VM_DISTRO}
+
++ifdef DERIVATIVE_ID
++CXXFLAGS += -DDERIVATIVE_ID="\"$(DERIVATIVE_ID)\""
++endif
++
++ifdef DISTRIBUTION_ID
++CXXFLAGS += -DDISTRIBUTION_ID="\"$(DISTRIBUTION_ID)\""
++endif
++
+ # This is VERY important! The version define must only be supplied to vm_version.o
+ # If not, ccache will not re-use the cache at all, since the version string might contain
+ # a time and date.
+diff -Nru openjdk.orig/hotspot/make/windows/makefiles/vm.make openjdk/hotspot/make/windows/makefiles/vm.make
+--- openjdk.orig/hotspot/make/windows/makefiles/vm.make 2014-07-14 04:12:31.000000000 +0100
++++ openjdk/hotspot/make/windows/makefiles/vm.make 2014-10-09 01:29:21.930876855 +0100
+@@ -83,6 +83,14 @@
+ # Define that so jni.h is on correct side
+ CXX_FLAGS=$(CXX_FLAGS) /D "_JNI_IMPLEMENTATION_"
+
++!ifdef DERIVATIVE_ID
++CXX_FLAGS = $(CPP_FLAGS) /D "DERIVATIVE_ID=\"$(DERIVATIVE_ID)\""
++!endif
++
++!ifdef DISTRIBUTION_ID
++CXX_FLAGS = $(CPP_FLAGS) /D "DISTRIBUTION_ID=\"$(DISTRIBUTION_ID)\""
++!endif
++
+ !if "$(BUILDARCH)" == "ia64"
+ STACK_SIZE="/STACK:1048576,262144"
+ !else
From bugzilla-daemon at icedtea.classpath.org Thu Oct 9 01:14:25 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Thu, 09 Oct 2014 01:14:25 +0000
Subject: [Bug 1904] [IcedTea6] [REGRESSION] Bug reports now lack IcedTea
version & distribution packaging information
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1904
--- Comment #1 from hg commits ---
details:
http://icedtea.classpath.org//hg/icedtea6?cmd=changeset;node=81f59ee7bcb5
author: Andrew John Hughes
date: Thu Oct 09 01:32:24 2014 +0100
PR1904: [REGRESSION] Bug reports now lack IcedTea version & distribution
packaging information
2014-10-09 Andrew John Hughes
* Makefile.am:
(ICEDTEA_PATCHES): Add new patch.
* NEWS: Updated.
* patches/pr1904-icedtea_and_distro_versioning.patch:
Backport of versioning fix from IcedTea 2.x.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From bugzilla-daemon at icedtea.classpath.org Thu Oct 9 01:14:39 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Thu, 09 Oct 2014 01:14:39 +0000
Subject: [Bug 1688] 8017173 regression introduced in recent icedtea6 and
icedtea7 releases
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1688
--- Comment #1 from hg commits ---
details:
http://icedtea.classpath.org//hg/icedtea6?cmd=changeset;node=98216d6a48cf
author: Andrew John Hughes
date: Thu Oct 09 01:39:15 2014 +0100
S8017173, PR1688: XMLCipher with RSA_OAEP Key Transport algorithm can't be
instantiated
2014-10-09 Andrew John Hughes
* Makefile.am:
(ICEDTEA_PATCHES): Add new patch.
* NEWS: Updated.
*
patches/openjdk/8017173-xml_cipher_rsa_oaep_cant_be_instantiated.patch:
Backport of regression fix from 7u for PR1688.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From bugzilla-daemon at icedtea.classpath.org Thu Oct 9 01:14:53 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Thu, 09 Oct 2014 01:14:53 +0000
Subject: [Bug 1967] [IcedTea6] Move to new OpenJDK bug URL format
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1967
--- Comment #1 from hg commits ---
details:
http://icedtea.classpath.org//hg/icedtea6?cmd=changeset;node=09cb54af2f31
author: Andrew John Hughes
date: Thu Oct 09 01:42:05 2014 +0100
PR1967: Move to new OpenJDK bug URL format
2014-08-29 Andrew John Hughes
* NEWS: Update OpenJDK bug URL.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From bugzilla-daemon at icedtea.classpath.org Thu Oct 9 07:29:06 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Thu, 09 Oct 2014 07:29:06 +0000
Subject: [Bug 2030] [IcedTea7] Version 2.5.2 not compiling on ARM Gentoo
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2030
Aldo Mazzeo changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
--- Comment #4 from Aldo Mazzeo ---
I tried to recompile with the new ebuild and the compilation was successful.
Thanks a lot guys
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From fridrich.strba at suse.com Thu Oct 9 08:24:38 2014
From: fridrich.strba at suse.com (Fridrich Strba)
Date: Thu, 09 Oct 2014 10:24:38 +0200
Subject: [rfc][icedtea-web][patch] Patch to build icedtea-web 1.5.1 with java9
Message-ID: <54364646.60503@suse.com>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello, good people,
I tried to use icedtea-web plugin with java9 and had to use the
attached patch to be able to build it against java9.
Somehow, the Vector> was resulting in problems with resolution
resolution what function to call. Removing the diamond operator there
worked to pass the compilation. Not 100% sure though what is going on
there.
As for the sun.misc.Ref, it is not existing any more in java9. I
looked at the implementation of AppletImageRef and it is internally in
java9 implemented using the java.lang.ref.SoftReference, hence the
modification. Not sure though how to handle that in a more generic
way, since I don't assume that will work with other implementation of
AppletImageRef and -- to be honest -- I have no clue whether my patch
has any sense at all.
With this patch, I was able to build icetea-web against java9 and also
the test applets that I tried worked.
Please, comment on this and don't hesitate to tell me it is completely
wrong if that is the case.
Cheers
Fridrich
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
iEYEARECAAYFAlQ2RkYACgkQu9a1imXPdA/RvwCeP8/5orpa8uVQDnWAlTjqAq6H
GnwAn2ZBtQEyKAdBd007tvec7CaOMr7d
=WwAF
-----END PGP SIGNATURE-----
-------------- next part --------------
A non-text attachment was scrubbed...
Name: icedtea-web-1.5.1-java9.patch
Type: text/x-patch
Size: 2887 bytes
Desc: not available
URL:
From jvanek at redhat.com Thu Oct 9 12:27:10 2014
From: jvanek at redhat.com (Jiri Vanek)
Date: Thu, 09 Oct 2014 14:27:10 +0200
Subject: [rfc][icedtea-web][patch] Patch to build icedtea-web 1.5.1 with
java9
In-Reply-To: <54364646.60503@suse.com>
References: <54364646.60503@suse.com>
Message-ID: <54367F1E.8010008@redhat.com>
On 10/09/2014 10:24 AM, Fridrich Strba wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hello, good people,
>
> I tried to use icedtea-web plugin with java9 and had to use the
> attached patch to be able to build it against java9.
>
> Somehow, the Vector> was resulting in problems with resolution
> resolution what function to call. Removing the diamond operator there
> worked to pass the compilation. Not 100% sure though what is going on
> there.
>
> As for the sun.misc.Ref, it is not existing any more in java9. I
> looked at the implementation of AppletImageRef and it is internally in
> java9 implemented using the java.lang.ref.SoftReference, hence the
> modification. Not sure though how to handle that in a more generic
> way, since I don't assume that will work with other implementation of
> AppletImageRef and -- to be honest -- I have no clue whether my patch
> has any sense at all.
>
> With this patch, I was able to build icetea-web against java9 and also
> the test applets that I tried worked.
>
> Please, comment on this and don't hesitate to tell me it is completely
> wrong if that is the case.
>
> Cheers
>
> Fridrich
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2.0.22 (GNU/Linux)
>
> iEYEARECAAYFAlQ2RkYACgkQu9a1imXPdA/RvwCeP8/5orpa8uVQDnWAlTjqAq6H
> GnwAn2ZBtQEyKAdBd007tvec7CaOMr7d
> =WwAF
> -----END PGP SIGNATURE-----
>
Hi!
Thank you very much, foir contribution! This is known issue -
https://bugzilla.redhat.com/show_bug.cgi?id=1095311 and The patch itself is ok, however -does it
still builds on 8? I doubt...:(
So the improvement, how to be buildable on both, have to be done.
J.
From jvanek at redhat.com Thu Oct 9 12:28:57 2014
From: jvanek at redhat.com (Jiri Vanek)
Date: Thu, 09 Oct 2014 14:28:57 +0200
Subject: Some more news about ppapi
Message-ID: <54367F89.3090009@redhat.com>
https://groups.google.com/d/msg/native-client-discuss/bFpsVMmTofM/86M2ke8rfjIJ - looks like PPAPI
plugins like pdfium (which is fully open source now) have access to native OS interfaces.
From bugzilla-daemon at icedtea.classpath.org Thu Oct 9 16:42:15 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Thu, 09 Oct 2014 16:42:15 +0000
Subject: [Bug 2030] [IcedTea7] Version 2.5.2 not compiling on ARM Gentoo
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2030
Andrew John Hughes changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |REOPENED
CC| |gnu.andrew at redhat.com
Resolution|FIXED |---
Target Milestone|--- |2.5.3
--- Comment #5 from Andrew John Hughes ---
That's good to hear, but please don't close this bug as the CACAO issue still
needs to be resolved.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From jvanek at icedtea.classpath.org Thu Oct 9 16:44:56 2014
From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org)
Date: Thu, 09 Oct 2014 16:44:56 +0000
Subject: /hg/icedtea-web: Empty "" codebase now behaves as "." codebase
Message-ID:
changeset c6af2f50a95e in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=c6af2f50a95e
author: Jiri Vanek
date: Thu Oct 09 18:42:42 2014 +0200
Empty "" codebase now behaves as "." codebase
diffstat:
ChangeLog | 12 ++++++
netx/net/sourceforge/jnlp/Parser.java | 34 +++++++++++++----
netx/net/sourceforge/jnlp/security/SecurityDialogs.java | 8 +++-
tests/netx/unit/net/sourceforge/jnlp/ParserTest.java | 26 +++++++++++++
4 files changed, 71 insertions(+), 9 deletions(-)
diffs (138 lines):
diff -r 911729fab592 -r c6af2f50a95e ChangeLog
--- a/ChangeLog Wed Oct 08 16:13:58 2014 -0400
+++ b/ChangeLog Thu Oct 09 18:42:42 2014 +0200
@@ -1,3 +1,15 @@
+2014-10-09 Jiri Vanek
+
+ Empty "" codebase now behaves as "." codebase
+ * file netx/net/sourceforge/jnlp/Parser.java: introduced CODEBASE constant
+ to avoid duplicated String getAttribute split to getCleanAttribute, which
+ get the pure attribute, and remaining getAttribute keep adding null in case
+ of empty
+ * file netx/net/sourceforge/jnlp/security/SecurityDialogs.java: added
+ workaround about possible null codebase
+ * file tests/netx/unit/net/sourceforge/jnlp/ParserTest.java: added test for
+ empty codebase
+
2014-10-08 Lukasz Dracz
Standardize all options to use hyphens
diff -r 911729fab592 -r c6af2f50a95e netx/net/sourceforge/jnlp/Parser.java
--- a/netx/net/sourceforge/jnlp/Parser.java Wed Oct 08 16:13:58 2014 -0400
+++ b/netx/net/sourceforge/jnlp/Parser.java Thu Oct 09 18:42:42 2014 +0200
@@ -39,6 +39,8 @@
* @version $Revision: 1.13 $
*/
class Parser {
+
+ private static String CODEBASE = "codebase";
// defines netx.jnlp.Node class if using Tiny XML or Nano XML
@@ -143,7 +145,7 @@
this.spec = getVersion(root, "spec", "1.0+");
try {
- this.codebase = addSlash(getURL(root, "codebase", base));
+ this.codebase = addSlash(getURL(root, CODEBASE, base));
} catch (ParseException e) {
//If parsing fails, continue by overriding the codebase with the one passed in
}
@@ -1065,10 +1067,20 @@
* @throws ParseException if the JNLP file is invalid
*/
public URL getURL(Node node, String name, URL base) throws ParseException {
- String href = getAttribute(node, name, null);
- if (href == null)
+ String href = null;
+ if (CODEBASE.equals(name)) {
+ href = getCleanAttribute(node, name);
+ //in case of null code can throw an exception later
+ //some bogus jnlps have codebase as "" and expect it behaving as "."
+ if (href != null && href.trim().isEmpty()) {
+ href = ".";
+ }
+ } else {
+ href = getAttribute(node, name, null);
+ }
+ if (href == null) {
return null; // so that code can throw an exception if attribute was required
-
+ }
try {
if (base == null)
return new URL(href);
@@ -1254,11 +1266,17 @@
public String getAttribute(Node node, String name, String defaultValue) {
// SAX
// String result = ((Element) node).getAttribute(name);
+ String result = getCleanAttribute(node, name);
+
+ if (result == null || result.length() == 0) {
+ return defaultValue;
+ }
+
+ return result;
+ }
+
+ private String getCleanAttribute(Node node, String name) {
String result = node.getAttribute(name);
-
- if (result == null || result.length() == 0)
- return defaultValue;
-
return result;
}
diff -r 911729fab592 -r c6af2f50a95e netx/net/sourceforge/jnlp/security/SecurityDialogs.java
--- a/netx/net/sourceforge/jnlp/security/SecurityDialogs.java Wed Oct 08 16:13:58 2014 -0400
+++ b/netx/net/sourceforge/jnlp/security/SecurityDialogs.java Thu Oct 09 18:42:42 2014 +0200
@@ -285,7 +285,13 @@
SecurityDialogMessage message = new SecurityDialogMessage();
message.dialogType = DialogType.MISSING_ALACA;
- message.extras = new Object[]{title, codeBase.toString(), UrlUtils.setOfUrlsToHtmlList(remoteUrls)};
+ String urlToShow = "unknown url";
+ if (codeBase != null) {
+ urlToShow = codeBase.toString();
+ } else {
+ OutputController.getLogger().log("Warning, null codebase wants to show in ALACA!");
+ }
+ message.extras = new Object[]{title, urlToShow, UrlUtils.setOfUrlsToHtmlList(remoteUrls)};
Object selectedValue = getUserResponse(message);
return getIntegerResponseAsBoolean(selectedValue);
}
diff -r 911729fab592 -r c6af2f50a95e tests/netx/unit/net/sourceforge/jnlp/ParserTest.java
--- a/tests/netx/unit/net/sourceforge/jnlp/ParserTest.java Wed Oct 08 16:13:58 2014 -0400
+++ b/tests/netx/unit/net/sourceforge/jnlp/ParserTest.java Thu Oct 09 18:42:42 2014 +0200
@@ -1413,4 +1413,30 @@
Assert.assertEquals(overwrittenCodebase.toExternalForm(), parser.getCodeBase().toExternalForm());
}
+
+
+ @Test
+ public void testEmptyCodebase() throws Exception {
+ String data = "\n"
+ + "\n"
+ + "";
+
+ Node root = Parser.getRootNode(new ByteArrayInputStream(data.getBytes()), defaultParser);
+ Assert.assertEquals("Root name is not jnlp", "jnlp", root.getNodeName());
+ MockJNLPFile file = new MockJNLPFile(LANG_LOCALE);
+ Parser parser = new Parser(file, null, root, defaultParser, null);
+ ParseException eex = null;
+ //non codebase element is unaffected
+ URL u = parser.getURL(root, "aaa", null);
+ Assert.assertEquals(null, u);
+ try {
+ parser.getURL(root, "codebase", null);
+ } catch (ParseException ex) {
+ eex = ex;
+ }
+ Assert.assertEquals(true, eex != null);
+ Assert.assertEquals(true, eex instanceof ParseException);
+ }
}
From bugzilla-daemon at icedtea.classpath.org Fri Oct 10 02:28:48 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Fri, 10 Oct 2014 02:28:48 +0000
Subject: [Bug 1895] Icedtea plugin throws up an error screen in Firefox
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1895
Eric Zachmann changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ewzachmann at hotmail.com
--- Comment #9 from Eric Zachmann ---
Edit the file $HOME/.config/icedtea-web/deployment.properties
deployment.manifest.attributes.check=false
I tried this and I get this:
eric at eric-HP-Pavilion-dv7-Notebook-PC ~ $ itweb-settings
Property "deployment.manifest.attributes.check" is unknown.
Property "deployment.manifest.attributes.check" is unknown.
Could not open user JNLP policy
There is no deployment.manifest.attributes.check as near as I can see from
http://download.oracle.com/javase/6/docs/technotes/guides/deployment/deployment-guide/properties.html
I guess I have to try the build. Is there an ETA on 1.6? Might be a while,
but this bug is killer.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From fridrich.strba at suse.com Fri Oct 10 07:50:33 2014
From: fridrich.strba at suse.com (Fridrich Strba)
Date: Fri, 10 Oct 2014 09:50:33 +0200
Subject: [rfc][icedtea-web][patch] Patch to build icedtea-web 1.5.1 with
java9
In-Reply-To: <54367F1E.8010008@redhat.com>
References: <54364646.60503@suse.com> <54367F1E.8010008@redhat.com>
Message-ID: <54378FC9.4080200@suse.com>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 09/10/14 14:27, Jiri Vanek wrote:
> Thank you very much, foir contribution! This is known issue -
> https://bugzilla.redhat.com/show_bug.cgi?id=1095311 and The patch
> itself is ok, however -does it still builds on 8? I doubt...:( So
> the improvement, how to be buildable on both, have to be done.
Actually, I read the old implementation of class AppletImageRef. It
extends sun.misc.Ref in the old implementation and when one calls the
get(), one will thus get the sun.misc.Ref's get that returns Object
which we the downcast to Image. Since AppletImageRef is actually
sun.misc.Ref, it is safe to use it as return type and operate on it as
if it was just a sun.misc.Ref. The AppletImageRef does not overload
the get, so we will get the same version of get() for java < 1.9.0 as
with the original code that returns sun.misc.Ref.
For java 9, the get() is actually the AppletImageRef's get() that
returns Image instead of object. We are casting the return value of
the get into Image anyway, so there will not be any problem, just one
superfluous cast for the sake of backward compatibility.
Now, I don't have enough knowledge how this virtual function calls are
represented in the java bytecode, since for java < 1.9.0, it will be
the get() of super that will be called and for java >= 1.9.0 the get()
of the class itself. But from the point of view of source code, the
patch should be safe to apply and use.
I personally built icedtea-web-1.5.1 with it applied for java 8 and
the applets work like a charm.
Cheers
Fridrich
P.S.: The Vector> -> Vector modifications did not cause building
against java8 or java7 to emit any error.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
iEYEARECAAYFAlQ3j8kACgkQu9a1imXPdA8UewCfWg1fK0FHjGEU7XzJnGnR5bk/
7GQAni3Bv5B+yAA7PccExDt01sLfy48n
=tm6r
-----END PGP SIGNATURE-----
From jvanek at redhat.com Fri Oct 10 11:22:07 2014
From: jvanek at redhat.com (Jiri Vanek)
Date: Fri, 10 Oct 2014 13:22:07 +0200
Subject: [rfc][icedtea-web][patch] Patch to build icedtea-web 1.5.1 with
java9
In-Reply-To: <54378FC9.4080200@suse.com>
References: <54364646.60503@suse.com> <54367F1E.8010008@redhat.com>
<54378FC9.4080200@suse.com>
Message-ID: <5437C15F.7070703@redhat.com>
Thank you very much for explanation
With your patch, itw still builds with jdk7 and run under both jdk7 and 8, and also builds under 8
and run under 7 and 8.
I dont have 9 handy, but it does not metter.
According to discussion on #openjdk and on my compile x run testing, this patch is ok for head.
Only I would like to add to NEWS that that the RH1095311 - icedtea-web: References class
sun.misc.Ref removed in OpenJDK 9 is fixed.
You dont have commit acces, do you?
Can I push for you with the sentence in NEWS?
Is it enough for you this to be pushed to head or you need 1.5? 1.5 should remain jdk6 compatible,
which I have not yet tested with your patch.
Will you write changelog entry on your own or you wont me to do?
J.
On 10/10/2014 09:50 AM, Fridrich Strba wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 09/10/14 14:27, Jiri Vanek wrote:
>> Thank you very much, foir contribution! This is known issue -
>> https://bugzilla.redhat.com/show_bug.cgi?id=1095311 and The patch
>> itself is ok, however -does it still builds on 8? I doubt...:( So
>> the improvement, how to be buildable on both, have to be done.
>
> Actually, I read the old implementation of class AppletImageRef. It
> extends sun.misc.Ref in the old implementation and when one calls the
> get(), one will thus get the sun.misc.Ref's get that returns Object
> which we the downcast to Image. Since AppletImageRef is actually
> sun.misc.Ref, it is safe to use it as return type and operate on it as
> if it was just a sun.misc.Ref. The AppletImageRef does not overload
> the get, so we will get the same version of get() for java < 1.9.0 as
> with the original code that returns sun.misc.Ref.
>
> For java 9, the get() is actually the AppletImageRef's get() that
> returns Image instead of object. We are casting the return value of
> the get into Image anyway, so there will not be any problem, just one
> superfluous cast for the sake of backward compatibility.
>
> Now, I don't have enough knowledge how this virtual function calls are
> represented in the java bytecode, since for java < 1.9.0, it will be
> the get() of super that will be called and for java >= 1.9.0 the get()
> of the class itself. But from the point of view of source code, the
> patch should be safe to apply and use.
>
> I personally built icedtea-web-1.5.1 with it applied for java 8 and
> the applets work like a charm.
>
> Cheers
>
> Fridrich
>
> P.S.: The Vector> -> Vector modifications did not cause building
> against java8 or java7 to emit any error.
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2.0.22 (GNU/Linux)
>
> iEYEARECAAYFAlQ3j8kACgkQu9a1imXPdA8UewCfWg1fK0FHjGEU7XzJnGnR5bk/
> 7GQAni3Bv5B+yAA7PccExDt01sLfy48n
> =tm6r
> -----END PGP SIGNATURE-----
>
From fridrich.strba at suse.com Fri Oct 10 11:46:26 2014
From: fridrich.strba at suse.com (Fridrich Strba)
Date: Fri, 10 Oct 2014 13:46:26 +0200
Subject: [rfc][icedtea-web][patch] Patch to build icedtea-web 1.5.1 with
java9
In-Reply-To: <5437C15F.7070703@redhat.com>
References: <54364646.60503@suse.com> <54367F1E.8010008@redhat.com>
<54378FC9.4080200@suse.com> <5437C15F.7070703@redhat.com>
Message-ID: <5437C712.8030303@suse.com>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello, good people,
On 10/10/14 13:22, Jiri Vanek wrote:
> Only I would like to add to NEWS that that the RH1095311 -
> icedtea-web: References class sun.misc.Ref removed in OpenJDK 9 is
> fixed. You dont have commit acces, do you?
No, but I can live without it :)
> Can I push for you with the sentence in NEWS?
Sure, do as you deem the best.
> Is it enough for you this to be pushed to head or you need 1.5?
> 1.5 should remain jdk6 compatible, which I have not yet tested with
> your patch.
Yeah, feel free to do it for head. I have java6, just I was never
trying to use the plugin with it. Will give it a try :) If not today,
next week for sure.
> Will you write changelog entry on your own or you wont me to do?
Oh. If you don't mind, I will leave you the privilege of writing
changelog entry. I am quite bad at that :)
F.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
iEYEARECAAYFAlQ3xxIACgkQu9a1imXPdA//rACfVe/xoGtFwCu/fhhSdFZf0WJz
BD8AnijQJ5aWH8qVUZ1Gk+ZneJVx9X2i
=njH/
-----END PGP SIGNATURE-----
From jvanek at redhat.com Fri Oct 10 12:28:47 2014
From: jvanek at redhat.com (Jiri Vanek)
Date: Fri, 10 Oct 2014 14:28:47 +0200
Subject: [rfc][icedtea-web] Makefile New Whitelisted-Dist-Test option
In-Reply-To: <450874635.11644392.1411755387742.JavaMail.zimbra@redhat.com>
References: <1294941468.9304595.1411420667650.JavaMail.zimbra@redhat.com>
<542162C3.1010400@redhat.com>
<1201728781.9838431.1411496217760.JavaMail.zimbra@redhat.com>
<5422E4AA.4020602@redhat.com>
<450874635.11644392.1411755387742.JavaMail.zimbra@redhat.com>
Message-ID: <5437D0FF.7030702@redhat.com>
On 09/26/2014 08:16 PM, Jie Kang wrote:
>
>
> ----- Original Message -----
>> On 09/23/2014 08:16 PM, Jie Kang wrote:
>>> ----- Original Message -----
>>>>> On 09/22/2014 11:17 PM, Jie Kang wrote:
>>>>>>> Hello,
>>>>>>>
>>>>>>> This patch expands on the Makefile Reproducer Test patch [1].
>>>>>>>
>>>>>>> [1]
>>>>>>> http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2014-September/029581.html
>>>>>>>
>>>>>>>
>>>>>>> There is now a new make rule: 'run-netx-whitelisted-dist-tests'
>>>>>>>
>>>>>>> This rule runs the reproducers similar to 'run-netx-dist-tests',
>>>>>>> except it
>>>>>>> only processes (compiles, etc.) the resources filtered by the
>>>>>>> whitelist.
>>>>>>>
>>>>>>> As well, the rule 'run-netx-dist-tests' has now reverted back to
>>>>>>> processing
>>>>>>> all resources (ie. what it used to do before the Makefile Reproducer
>>>>>>> Test
>>>>>>> patch [1])
>>>>>>>
>>>>>>> Thoughts?
>>>>>>>
>>>>>>> Just a note, the purpose of the "stamps/whitelist-filter.stamp" rule
>>>>>>> having:
>>>>>>> echo ".*" ...
>>>>>>> is to maintain compatibility. Though the "all-whitelist" rule also
>>>>>>> contains
>>>>>>> duplicate code, there can be situations where neither "all-whitelist"
>>>>>>> or
>>>>>>> "filtered-whitelist" are not called. E.g. if user runs "make
>>>>>>> stamps/netx-dist-tests-prepare-reproducers.stamp". This is the
>>>>>>> solution I
>>>>>>> came up with to allow for all possible make commands to continue to
>>>>>>> work
>>>>>>> and for the user to be able to quickly switch between running "make
>>>>>>> run-netx-dist-tests" and "make run-netx-whitelisted-dist-tests"
>>>>>>> without
>>>>>>> always having to perform "make clean-netx-dist-tests". I guess a TLDR
>>>>>>> is
>>>>>>> that it's to prevent regressions.
>>>>>>>
>>>>>>> If this patch is accepted I will update the wiki and documentation for
>>>>>>> this
>>>>>>> feature.
>>>>>>>
>>>>>>>
>>>>>>> Regards,
>>>>>>>
>>>>>
>>>>> Hm. only hint to approach. Why not configure switch? This seems to me
>>>>> overcomplexed. What is
>>>>> advantage of this?
>>> Hello,
>>>
>>> I have attached a completely new patch that follows your hint. Thanks a
>>> lot, it is much better now, and more simple.
>>> New option for configure: --enable-whitelist-processing
>>>
>>> With the flag on, the Makefile generated will filter by whitelist for
>>> processing, otherwise, it will process all, just like before patch [1].
>>>
>>> [1]http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2014-September/029581.html
>>>
>>>>> Once the new and old targets will be run in unpredicted order, the result
>>>>> can
>>>>> be unpredictible.
>>> The complexity was to make sure running new and old targets in random order
>>> still worked hahah. And you could run them and stop them whenever, and
>>> still work properly like before too! But now no longer needed so...
>>>
>>>>> Also I can not see the reverted part in patch.
>>> There wasn't really any reversion in code, just reversion in behaviour.
>>> Anyways, no longer relevant.
>>>
>>>
>>> Thanks a lot!!
>>>
>>>
>>> Regards,
>>>
>>>>>
>>>>> J.
>>>>>
>>> -- Jie Kang
>>>
>>>
>>> itw-make-configure-whitelist-1.patch
>>>
>>>
>>> diff --git a/Makefile.am b/Makefile.am
>>> --- a/Makefile.am
>>> +++ b/Makefile.am
>>> @@ -178,6 +178,12 @@
>>> endif
>>> endif
>>>
>>> +if ENABLE_WHITELIST
>>> +WHITELIST=`cat $(REPRODUCERS_CLASS_WHITELIST)`
>>> +else
>>> +WHITELIST=.*
>>> +endif
>>> +
>>> if WITH_RHINO
>>> RHINO_TESTS=stamps/check-pac-functions.stamp
>>> else
>>> @@ -691,26 +697,23 @@
>>> mkdir -p $(REPRODUCERS_BUILD_DIR)
>>> touch $@
>>>
>>> -junit-jnlp-dist-custom.txt: $(REPRODUCERS_CLASS_WHITELIST)
>>> +junit-jnlp-dist-custom.txt:
>>> cd $(REPRODUCERS_TESTS_SRCDIR)/$(CUSTOM_REPRODUCERS)/ ; \
>>> - whiteListed=`cat $(REPRODUCERS_CLASS_WHITELIST)`; \
>>> - for x in $$whiteListed ; do \
>>> + for x in $(WHITELIST) ; do \
>>> find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" | grep $$x >
>>> $(abs_top_builddir)/$@ || true ; \
>>> done
>>>
>>> -junit-jnlp-dist-simple.txt: $(REPRODUCERS_CLASS_WHITELIST)
>>> +junit-jnlp-dist-simple.txt:
>>> cd $(REPRODUCERS_TESTS_SRCDIR)/simple/ ; \
>>> - whiteListed=`cat $(REPRODUCERS_CLASS_WHITELIST)`; \
>>> - for x in $$whiteListed ; do \
>>> + for x in $(WHITELIST) ; do \
>>> find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" | grep $$x >
>>> $(abs_top_builddir)/$@ || true ; \
>>> done
>>>
>>> -stamps/junit-jnlp-dist-signed.stamp: $(REPRODUCERS_CLASS_WHITELIST)
>>> +stamps/junit-jnlp-dist-signed.stamp:
>>> types=($(SIGNED_REPRODUCERS)) ; \
>>> for which in "$${types[@]}" ; do \
>>> pushd $(REPRODUCERS_TESTS_SRCDIR)/$$which/ ; \
>>> - whiteListed=`cat $(REPRODUCERS_CLASS_WHITELIST)`; \
>>> - for x in $$whiteListed ; do \
>>> + for x in $(WHITELIST) ; do \
>>> find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" | grep $$x >
>>> $(abs_top_builddir)/junit-jnlp-dist-$$which.txt ; \
>>> done ; \
>>> popd ; \
>>> diff --git a/configure.ac b/configure.ac
>>> --- a/configure.ac
>>> +++ b/configure.ac
>>> @@ -28,6 +28,14 @@
>>> AM_CONDITIONAL([ENABLE_DOCS], [test x$ENABLE_DOCS = xyes])
>>> AC_MSG_RESULT(${ENABLE_DOCS})
>>>
>>> +AC_MSG_CHECKING([whether to process reproducers using whitelist])
>>> +AC_ARG_ENABLE([whitelist-processing],
>>> + [AS_HELP_STRING([--enable-whitelist-processing],
>>> + [Enable processing of reproducers using whitelist])],
>>
>> I would probably reflector those sentences. Even to me they are not much
>> describing.
>> Try to debug those sentences with somebody who never seen itw or our
>> testuite :) Once he understood
>> the help message, it is right.
>>
>> for ideas:
>> AC_MSG_CHECKING([whether to process reproducers using whitelist])
>> - this will be nearly correct if you adapt my idea lower. No it imho is
>> not, and should be like
>> "whether to compile and deploy reproducers using filtering described
>> whitelist"
>> AC_ARG_ENABLE([whitelist-processing],
>> [AS_HELP_STRING([--enable-whitelist-processing],
>> [Enable processing of reproducers using whitelist])],
>> Same:
>> "Enable compilation and deploy of reproducers using filtering described
>> whitelist"
>>
>> In this or in (below) suggested approach, I would like to mention all three
>> targets (or more?) when
>> the whitelist is used - compile, deploy run (some more?)
>
> Hello,
>
>
> I've altered the messages to explain the purpose better. Does it look okay to you?
>
> +AC_MSG_CHECKING([whether to filter by whitelist when processing, compiling and running reproducers])
> +AC_ARG_ENABLE([whitelist-processing],
> + [AS_HELP_STRING([--enable-whitelist-processing],
> + [Enable whitelist filter when processing, compiling and running reproducers])],
>
>
>
>
>
>>> + [ENABLE_WHITELIST="${enableval}"], [ENABLE_WHITELIST='no'])
>>> +AM_CONDITIONAL([ENABLE_WHITELIST], [test x$ENABLE_WHITELIST = xyes])
>>> +AC_MSG_RESULT(${ENABLE_WHITELIST})
>>> +
>>> AC_PATH_PROG([BIN_BASH], [bash],, [/bin])
>>> if test x"$BIN_BASH" = x ; then
>>> AC_MSG_ERROR([/bin/bash is used in runtime and for about generation.
>>> Dying sooner rather then later])
>>>
>>
>>
>> Except this, looks ok.
>>
>> Well - one general hint.
>>
>> Right now, if ENABLE_WHITELIST is true, then:
>> - only reprodcuers matching regeexes in list are compiled, deployed and run
>> if ENABLE_WHITELIST is false then:
>> - all reprodcuers are compiled and deployed, but only reprodcuers matching
>> regeexes in whitelist
>> are run.
>>
>>
>> I was thinking about to unifying it
>> - only reprodcuers matching regeexes in list are compiled, deployed and run
>> if ENABLE_WHITELIST is false then:
>> - all reprodcuers are compiled and deployed, and run
>>
>
> I think this is a good idea as well. The attached patch does this. Can you check to make sure it looks okay? (changes start at "-$(REPRODUCERS_CLASS_NAMES): $(REPRODUCERS_CLASS_WHITELIST)")
>
> Or should this be in another changeset?
>
>
>>
>> Well - this have question - what to do with current whitelist. To kept it in
>> repo enad ampty? As it
>> is? To rmeove? I probably incline to first one.
>
> I think keeping it as is fine. Having the ".*" is good. Making it empty might make it confusing as to why it is in repo..;
>
> If we want to remove it I think we'd need a patch to let user supply the whitelist file location since we can't guarantee it exists with the same name anymore.;
>
>
>
Hi!
I have realized an issue with all this filtering.
The whitelist is regex on testcase.java files. But for the rest, it seems to be match on directory
file. Is there any option, different then extend regex to match dir or testcase?
/me hoping tomiss something
Imho the correct solution would be
a) if tetscase matches, then include all reproducers other files
or
b)if dir matches include testcase and all other reprodcuer's files
I dont like neither :(
J.
From jvanek at redhat.com Fri Oct 10 12:32:50 2014
From: jvanek at redhat.com (Jiri Vanek)
Date: Fri, 10 Oct 2014 14:32:50 +0200
Subject: /hg/icedtea-web: Modified Makefile.am to process only
whiteliste...
In-Reply-To:
References:
Message-ID: <5437D1F2.7000303@redhat.com>
Hmmm. It seems that this actually stoped the regex to work as I was used. Originally the regex was
matching testcase file. Now the regex must match testcase file AND directory name. Or what am I
doing wrong?
On 09/19/2014 09:51 PM, jkang at icedtea.classpath.org wrote:
> changeset 9fbfc6ef9237 in /hg/icedtea-web
> details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=9fbfc6ef9237
> author: Jie Kang
> date: Fri Sep 19 15:51:19 2014 -0400
>
> Modified Makefile.am to process only whitelisted reproducers.
>
> 2014-09-19 Jie Kang
>
> Modified Makefile.am to use whitelist when processing reproducers.
> * Makefile.am: Now filters reproducers using netx-dist-tests-whitelist
>
>
> diffstat:
>
> ChangeLog | 5 +++++
> Makefile.am | 22 ++++++++++++++++------
> 2 files changed, 21 insertions(+), 6 deletions(-)
>
> diffs (58 lines):
>
> diff -r 6e689ab02eb0 -r 9fbfc6ef9237 ChangeLog
> --- a/ChangeLog Fri Sep 19 15:47:00 2014 -0400
> +++ b/ChangeLog Fri Sep 19 15:51:19 2014 -0400
> @@ -1,3 +1,8 @@
> +2014-09-19 Jie Kang
> +
> + Modified Makefile.am to use whitelist when processing reproducers.
> + * Makefile.am: Now filters reproducers using netx-dist-tests-whitelist
> +
> 2014-09-19 Jie Kang
>
> Added three keys to DeploymentConfiguration. Max cache size, cache enable,
> diff -r 6e689ab02eb0 -r 9fbfc6ef9237 Makefile.am
> --- a/Makefile.am Fri Sep 19 15:47:00 2014 -0400
> +++ b/Makefile.am Fri Sep 19 15:51:19 2014 -0400
> @@ -691,19 +691,28 @@
> mkdir -p $(REPRODUCERS_BUILD_DIR)
> touch $@
>
> -junit-jnlp-dist-custom.txt:
> +junit-jnlp-dist-custom.txt: $(REPRODUCERS_CLASS_WHITELIST)
> cd $(REPRODUCERS_TESTS_SRCDIR)/$(CUSTOM_REPRODUCERS)/ ; \
> - find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/$@
> + whiteListed=`cat $(REPRODUCERS_CLASS_WHITELIST)`; \
> + for x in $$whiteListed ; do \
> + find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" | grep $$x > $(abs_top_builddir)/$@ || true ; \
> + done
>
> -junit-jnlp-dist-simple.txt:
> +junit-jnlp-dist-simple.txt: $(REPRODUCERS_CLASS_WHITELIST)
> cd $(REPRODUCERS_TESTS_SRCDIR)/simple/ ; \
> - find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/$@
> + whiteListed=`cat $(REPRODUCERS_CLASS_WHITELIST)`; \
> + for x in $$whiteListed ; do \
> + find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" | grep $$x > $(abs_top_builddir)/$@ || true ; \
> + done
>
> -stamps/junit-jnlp-dist-signed.stamp:
> +stamps/junit-jnlp-dist-signed.stamp: $(REPRODUCERS_CLASS_WHITELIST)
> types=($(SIGNED_REPRODUCERS)) ; \
> for which in "$${types[@]}" ; do \
> pushd $(REPRODUCERS_TESTS_SRCDIR)/$$which/ ; \
> - find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/junit-jnlp-dist-$$which.txt ; \
> + whiteListed=`cat $(REPRODUCERS_CLASS_WHITELIST)`; \
> + for x in $$whiteListed ; do \
> + find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" | grep $$x > $(abs_top_builddir)/junit-jnlp-dist-$$which.txt ; \
> + done ; \
> popd ; \
> done ; \
> mkdir -p stamps && \
> @@ -874,6 +883,7 @@
> simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \
> IFS="$$IFS_BACKUP" ; \
> for dir in "$${simpleReproducers[@]}" ; do \
> + echo "compiling" $$dir ; \
> $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
> -d $(TEST_EXTENSIONS_TESTS_DIR) \
> -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(TEST_EXTENSIONS_DIR) \
>
From jkang at redhat.com Fri Oct 10 13:04:20 2014
From: jkang at redhat.com (Jie Kang)
Date: Fri, 10 Oct 2014 09:04:20 -0400 (EDT)
Subject: [rfc][icedtea-web] Makefile New Whitelisted-Dist-Test option
In-Reply-To: <5437D0FF.7030702@redhat.com>
References: <1294941468.9304595.1411420667650.JavaMail.zimbra@redhat.com>
<542162C3.1010400@redhat.com>
<1201728781.9838431.1411496217760.JavaMail.zimbra@redhat.com>
<5422E4AA.4020602@redhat.com>
<450874635.11644392.1411755387742.JavaMail.zimbra@redhat.com>
<5437D0FF.7030702@redhat.com>
Message-ID: <1150913646.17486150.1412946260090.JavaMail.zimbra@redhat.com>
----- Original Message -----
> On 09/26/2014 08:16 PM, Jie Kang wrote:
> >
> >
> > ----- Original Message -----
> >> On 09/23/2014 08:16 PM, Jie Kang wrote:
> >>> ----- Original Message -----
> >>>>> On 09/22/2014 11:17 PM, Jie Kang wrote:
> >>>>>>> Hello,
> >>>>>>>
> >>>>>>> This patch expands on the Makefile Reproducer Test patch [1].
> >>>>>>>
> >>>>>>> [1]
> >>>>>>> http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2014-September/029581.html
> >>>>>>>
> >>>>>>>
> >>>>>>> There is now a new make rule: 'run-netx-whitelisted-dist-tests'
> >>>>>>>
> >>>>>>> This rule runs the reproducers similar to 'run-netx-dist-tests',
> >>>>>>> except it
> >>>>>>> only processes (compiles, etc.) the resources filtered by the
> >>>>>>> whitelist.
> >>>>>>>
> >>>>>>> As well, the rule 'run-netx-dist-tests' has now reverted back to
> >>>>>>> processing
> >>>>>>> all resources (ie. what it used to do before the Makefile Reproducer
> >>>>>>> Test
> >>>>>>> patch [1])
> >>>>>>>
> >>>>>>> Thoughts?
> >>>>>>>
> >>>>>>> Just a note, the purpose of the "stamps/whitelist-filter.stamp" rule
> >>>>>>> having:
> >>>>>>> echo ".*" ...
> >>>>>>> is to maintain compatibility. Though the "all-whitelist" rule also
> >>>>>>> contains
> >>>>>>> duplicate code, there can be situations where neither "all-whitelist"
> >>>>>>> or
> >>>>>>> "filtered-whitelist" are not called. E.g. if user runs "make
> >>>>>>> stamps/netx-dist-tests-prepare-reproducers.stamp". This is the
> >>>>>>> solution I
> >>>>>>> came up with to allow for all possible make commands to continue to
> >>>>>>> work
> >>>>>>> and for the user to be able to quickly switch between running "make
> >>>>>>> run-netx-dist-tests" and "make run-netx-whitelisted-dist-tests"
> >>>>>>> without
> >>>>>>> always having to perform "make clean-netx-dist-tests". I guess a TLDR
> >>>>>>> is
> >>>>>>> that it's to prevent regressions.
> >>>>>>>
> >>>>>>> If this patch is accepted I will update the wiki and documentation
> >>>>>>> for
> >>>>>>> this
> >>>>>>> feature.
> >>>>>>>
> >>>>>>>
> >>>>>>> Regards,
> >>>>>>>
> >>>>>
> >>>>> Hm. only hint to approach. Why not configure switch? This seems to me
> >>>>> overcomplexed. What is
> >>>>> advantage of this?
> >>> Hello,
> >>>
> >>> I have attached a completely new patch that follows your hint. Thanks a
> >>> lot, it is much better now, and more simple.
> >>> New option for configure: --enable-whitelist-processing
> >>>
> >>> With the flag on, the Makefile generated will filter by whitelist for
> >>> processing, otherwise, it will process all, just like before patch [1].
> >>>
> >>> [1]http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2014-September/029581.html
> >>>
> >>>>> Once the new and old targets will be run in unpredicted order, the
> >>>>> result
> >>>>> can
> >>>>> be unpredictible.
> >>> The complexity was to make sure running new and old targets in random
> >>> order
> >>> still worked hahah. And you could run them and stop them whenever, and
> >>> still work properly like before too! But now no longer needed so...
> >>>
> >>>>> Also I can not see the reverted part in patch.
> >>> There wasn't really any reversion in code, just reversion in behaviour.
> >>> Anyways, no longer relevant.
> >>>
> >>>
> >>> Thanks a lot!!
> >>>
> >>>
> >>> Regards,
> >>>
> >>>>>
> >>>>> J.
> >>>>>
> >>> -- Jie Kang
> >>>
> >>>
> >>> itw-make-configure-whitelist-1.patch
> >>>
> >>>
> >>> diff --git a/Makefile.am b/Makefile.am
> >>> --- a/Makefile.am
> >>> +++ b/Makefile.am
> >>> @@ -178,6 +178,12 @@
> >>> endif
> >>> endif
> >>>
> >>> +if ENABLE_WHITELIST
> >>> +WHITELIST=`cat $(REPRODUCERS_CLASS_WHITELIST)`
> >>> +else
> >>> +WHITELIST=.*
> >>> +endif
> >>> +
> >>> if WITH_RHINO
> >>> RHINO_TESTS=stamps/check-pac-functions.stamp
> >>> else
> >>> @@ -691,26 +697,23 @@
> >>> mkdir -p $(REPRODUCERS_BUILD_DIR)
> >>> touch $@
> >>>
> >>> -junit-jnlp-dist-custom.txt: $(REPRODUCERS_CLASS_WHITELIST)
> >>> +junit-jnlp-dist-custom.txt:
> >>> cd $(REPRODUCERS_TESTS_SRCDIR)/$(CUSTOM_REPRODUCERS)/ ; \
> >>> - whiteListed=`cat $(REPRODUCERS_CLASS_WHITELIST)`; \
> >>> - for x in $$whiteListed ; do \
> >>> + for x in $(WHITELIST) ; do \
> >>> find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" | grep $$x >
> >>> $(abs_top_builddir)/$@ || true ; \
> >>> done
> >>>
> >>> -junit-jnlp-dist-simple.txt: $(REPRODUCERS_CLASS_WHITELIST)
> >>> +junit-jnlp-dist-simple.txt:
> >>> cd $(REPRODUCERS_TESTS_SRCDIR)/simple/ ; \
> >>> - whiteListed=`cat $(REPRODUCERS_CLASS_WHITELIST)`; \
> >>> - for x in $$whiteListed ; do \
> >>> + for x in $(WHITELIST) ; do \
> >>> find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" | grep $$x >
> >>> $(abs_top_builddir)/$@ || true ; \
> >>> done
> >>>
> >>> -stamps/junit-jnlp-dist-signed.stamp: $(REPRODUCERS_CLASS_WHITELIST)
> >>> +stamps/junit-jnlp-dist-signed.stamp:
> >>> types=($(SIGNED_REPRODUCERS)) ; \
> >>> for which in "$${types[@]}" ; do \
> >>> pushd $(REPRODUCERS_TESTS_SRCDIR)/$$which/ ; \
> >>> - whiteListed=`cat $(REPRODUCERS_CLASS_WHITELIST)`; \
> >>> - for x in $$whiteListed ; do \
> >>> + for x in $(WHITELIST) ; do \
> >>> find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" | grep $$x >
> >>> $(abs_top_builddir)/junit-jnlp-dist-$$which.txt ; \
> >>> done ; \
> >>> popd ; \
> >>> diff --git a/configure.ac b/configure.ac
> >>> --- a/configure.ac
> >>> +++ b/configure.ac
> >>> @@ -28,6 +28,14 @@
> >>> AM_CONDITIONAL([ENABLE_DOCS], [test x$ENABLE_DOCS = xyes])
> >>> AC_MSG_RESULT(${ENABLE_DOCS})
> >>>
> >>> +AC_MSG_CHECKING([whether to process reproducers using whitelist])
> >>> +AC_ARG_ENABLE([whitelist-processing],
> >>> + [AS_HELP_STRING([--enable-whitelist-processing],
> >>> + [Enable processing of reproducers using whitelist])],
> >>
> >> I would probably reflector those sentences. Even to me they are not much
> >> describing.
> >> Try to debug those sentences with somebody who never seen itw or our
> >> testuite :) Once he understood
> >> the help message, it is right.
> >>
> >> for ideas:
> >> AC_MSG_CHECKING([whether to process reproducers using whitelist])
> >> - this will be nearly correct if you adapt my idea lower. No it imho
> >> is
> >> not, and should be like
> >> "whether to compile and deploy reproducers using filtering described
> >> whitelist"
> >> AC_ARG_ENABLE([whitelist-processing],
> >> [AS_HELP_STRING([--enable-whitelist-processing],
> >> [Enable processing of reproducers using whitelist])],
> >> Same:
> >> "Enable compilation and deploy of reproducers using filtering described
> >> whitelist"
> >>
> >> In this or in (below) suggested approach, I would like to mention all
> >> three
> >> targets (or more?) when
> >> the whitelist is used - compile, deploy run (some more?)
> >
> > Hello,
> >
> >
> > I've altered the messages to explain the purpose better. Does it look okay
> > to you?
> >
> > +AC_MSG_CHECKING([whether to filter by whitelist when processing, compiling
> > and running reproducers])
> > +AC_ARG_ENABLE([whitelist-processing],
> > + [AS_HELP_STRING([--enable-whitelist-processing],
> > + [Enable whitelist filter when processing, compiling and
> > running reproducers])],
> >
> >
> >
> >
> >
> >>> + [ENABLE_WHITELIST="${enableval}"], [ENABLE_WHITELIST='no'])
> >>> +AM_CONDITIONAL([ENABLE_WHITELIST], [test x$ENABLE_WHITELIST = xyes])
> >>> +AC_MSG_RESULT(${ENABLE_WHITELIST})
> >>> +
> >>> AC_PATH_PROG([BIN_BASH], [bash],, [/bin])
> >>> if test x"$BIN_BASH" = x ; then
> >>> AC_MSG_ERROR([/bin/bash is used in runtime and for about
> >>> generation.
> >>> Dying sooner rather then later])
> >>>
> >>
> >>
> >> Except this, looks ok.
> >>
> >> Well - one general hint.
> >>
> >> Right now, if ENABLE_WHITELIST is true, then:
> >> - only reprodcuers matching regeexes in list are compiled, deployed and
> >> run
> >> if ENABLE_WHITELIST is false then:
> >> - all reprodcuers are compiled and deployed, but only reprodcuers
> >> matching
> >> regeexes in whitelist
> >> are run.
> >>
> >>
> >> I was thinking about to unifying it
> >> - only reprodcuers matching regeexes in list are compiled, deployed and
> >> run
> >> if ENABLE_WHITELIST is false then:
> >> - all reprodcuers are compiled and deployed, and run
> >>
> >
> > I think this is a good idea as well. The attached patch does this. Can you
> > check to make sure it looks okay? (changes start at
> > "-$(REPRODUCERS_CLASS_NAMES): $(REPRODUCERS_CLASS_WHITELIST)")
> >
> > Or should this be in another changeset?
> >
> >
> >>
> >> Well - this have question - what to do with current whitelist. To kept it
> >> in
> >> repo enad ampty? As it
> >> is? To rmeove? I probably incline to first one.
> >
> > I think keeping it as is fine. Having the ".*" is good. Making it empty
> > might make it confusing as to why it is in repo..;
> >
> > If we want to remove it I think we'd need a patch to let user supply the
> > whitelist file location since we can't guarantee it exists with the same
> > name anymore.;
> >
> >
> >
>
> Hi!
>
> I have realized an issue with all this filtering.
> The whitelist is regex on testcase.java files. But for the rest, it seems to
> be match on directory
> file. Is there any option, different then extend regex to match dir or
> testcase?
>
> /me hoping tomiss something
>
> Imho the correct solution would be
> a) if tetscase matches, then include all reproducers other files
> or
> b)if dir matches include testcase and all other reprodcuer's files
>
> I dont like neither :(
Hello,
Before reproducers are made by
1. Creating list of reproducer directories in text file (junit-jnlp-dist-simple.txt, junit-jnlp-dist-custom.txt, ...)
2. Going through list, processing the directories (compile, move resource files, etc.)
3. Finally using whitelist on the java files of the processed reproducers to create list of tests to run. And then run what's in the list.
The current HEAD has made it so whitelist is applied to the list of directories in step one. This means that whitelist must be regex on directory and testcase. I think if we choose to whitelist on directory, we don't whitelist on java files and if we choose to whitelist on java files, we don't whitelist on directory. Alternatively, we have two different whitelists... (bad idea).
However: Note that this proposed patch, makes it so:
OLD behaviour is back to HEAD.
NEW behaviour is when --enable-whitelist-processing is supplied to ./configure
This way, nothing gets changed unless you use: ./configure --enable-whitelist-processing
I think this is good. Thoughts?
Regards,
>
>
> J.
>
>
--
Jie Kang
From jvanek at redhat.com Fri Oct 10 13:57:57 2014
From: jvanek at redhat.com (Jiri Vanek)
Date: Fri, 10 Oct 2014 15:57:57 +0200
Subject: [rfc][icedtea-web] returning codecoverage
Message-ID: <5437E5E5.40200@redhat.com>
As jacoco 0.7 with my bootclaspath patch is finaly reaching fedora in f21, it is time to abandon
custom built of jacoco
diff -r c6af2f50a95e Makefile.am
--- a/Makefile.am Thu Oct 09 18:42:42 2014 +0200
+++ b/Makefile.am Fri Oct 10 15:55:00 2014 +0200
@@ -70,8 +70,8 @@
export JACOCO_BASE_EXCLUDE=org.junit.*:junit.*
export JACOCO_ADVANCED_EXCLUDE=:*jacoco*:java.lang.*:java.reflect.*:java.util.*:sun.reflect.*
export JACOCO_AGENT_SWITCH="$(JACOCO_AGENT_SWITCH_BODY)=excludes=$(JACOCO_BASE_EXCLUDE)"
-export
JACOCO_AGENT_JAVAWS_SWITCH=\"$(JACOCO_AGENT_SWITCH_BODY)=excludes=$(JACOCO_BASE_EXCLUDE)$(JACOCO_ADVANCED_EXCLUDE),xboot=true,destfile=$(JACOCO_JAVAWS_RESULTS)\"
-export
JACOCO_AGENT_PLUGIN_SWITCH=\"$(JACOCO_AGENT_SWITCH_BODY)=excludes=$(JACOCO_BASE_EXCLUDE)$(JACOCO_ADVANCED_EXCLUDE),xboot=true,destfile=$(JACOCO_PLUGIN_RESULTS)\"
+export
JACOCO_AGENT_JAVAWS_SWITCH=\"$(JACOCO_AGENT_SWITCH_BODY)=excludes=$(JACOCO_BASE_EXCLUDE)$(JACOCO_ADVANCED_EXCLUDE),inclbootstrapclasses=true,destfile=$(JACOCO_JAVAWS_RESULTS)\"
+export
JACOCO_AGENT_PLUGIN_SWITCH=\"$(JACOCO_AGENT_SWITCH_BODY)=excludes=$(JACOCO_BASE_EXCLUDE)$(JACOCO_ADVANCED_EXCLUDE),inclbootstrapclasses=true,destfile=$(JACOCO_PLUGIN_RESULTS)\"
export JACOCO_OPERATOR_EXEC=$(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp
$(JACOCO_OPERATOR_DIR):$(JACOCO_CLASSPATH):. org.jacoco.operator.Main
should do this, and make coverage alive in deily report again. Please not, there is bug in fedora
jacoco ackages - https://bugzilla.redhat.com/show_bug.cgi?id=1151442 - As alexnader is maintainer..
I will rather fix it asap :)
However - th unites seems not to be covered properly. Investigation in progress, another changeset
will come.. somewhen.
J.
From bugzilla-daemon at icedtea.classpath.org Fri Oct 10 21:02:50 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Fri, 10 Oct 2014 21:02:50 +0000
Subject: [Bug 1895] Icedtea plugin throws up an error screen in Firefox
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1895
--- Comment #10 from Andrew Azores ---
(In reply to Eric Zachmann from comment #9)
> Edit the file $HOME/.config/icedtea-web/deployment.properties
>
> deployment.manifest.attributes.check=false
>
> I tried this and I get this:
>
> eric at eric-HP-Pavilion-dv7-Notebook-PC ~ $ itweb-settings
> Property "deployment.manifest.attributes.check" is unknown.
> Property "deployment.manifest.attributes.check" is unknown.
> Could not open user JNLP policy
>
What version of IcedTea-Web are you using?
>
> There is no deployment.manifest.attributes.check as near as I can see from
> http://download.oracle.com/javase/6/docs/technotes/guides/deployment/
> deployment-guide/properties.html
This is an attribute IcedTea-Web made up for our own purposes (testing and
debugging, really), so it's not surprising that Oracle doesn't have it
documented.
>
> I guess I have to try the build. Is there an ETA on 1.6? Might be a while,
> but this bug is killer.
We also don't even know yet if the latest Mercurial snapshot works properly in
this scenario, so 1.6 may not fix it either. Are you able to help provide
reproduction steps for this bug, or do you have an example of a publicly
available applet that displays this issue? If it's not publicly available, it
would be very helpful if you could try it with a Mercurial build and report
back.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From bugzilla-daemon at icedtea.classpath.org Sat Oct 11 01:54:00 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Sat, 11 Oct 2014 01:54:00 +0000
Subject: [Bug 1895] Icedtea plugin throws up an error screen in Firefox
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1895
--- Comment #11 from Eric Zachmann ---
What version of IcedTea-Web are you using?
I am using icedtea-web 1.5-1ubuntu1 plugin in firefox
>From the Java-Console output:
Property "deployment.manifest.attributes.check" is unknown.
Loading User level properties from:
/home/eric/.config/icedtea-web/deployment.properties
cache: /home/eric/.cache/icedtea-web file exists:true
config: /home/eric/.config/icedtea-web file exists: true
System is already following XDG .cache and .config specifications
2:
/run/user/1000/icedteaplugin-eric-OjSDHl/7991-icedteanp-plugin-debug-to-appletviewer
1:
/run/user/1000/icedteaplugin-eric-OjSDHl/7991-icedteanp-appletviewer-to-plugin
0:
/run/user/1000/icedteaplugin-eric-OjSDHl/7991-icedteanp-plugin-to-appletviewer
startup arguments:
So it is finding the deployment.properties and not choking on the:
deployment.manifest.attributes.check=false
But that did not fix the issue. Same Sandbox complaint as above.
This applet it is struggling with is in thinkwell.com...so not so public you
need an account etc.
it would be very helpful if you could try it with a Mercurial build and report
back.
I cant seem to get Mercurial built on Linux Mint 17/Ubuntu 14.04 (not sure yet
why)
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From andrew at icedtea.classpath.org Sun Oct 12 19:21:19 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Sun, 12 Oct 2014 19:21:19 +0000
Subject: /hg/icedtea6: Re-enable 7122142 backport with more minimal version.
Message-ID:
changeset 3a715e42ffe4 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=3a715e42ffe4
author: Andrew John Hughes
date: Sun Oct 12 20:20:59 2014 +0100
Re-enable 7122142 backport with more minimal version.
2014-10-09 Andrew John Hughes
* Makefile.am:
(ICEDTEA_PATCHES): Re-enable annotation race
condition patch.
* patches/openjdk/7122142-annotation_race_condition.patch:
Replace with more minimal backport that doesn't
alter existing types.
diffstat:
ChangeLog | 9 +
Makefile.am | 6 +-
patches/openjdk/7122142-annotation_race_condition.patch | 1094 +-------------
3 files changed, 84 insertions(+), 1025 deletions(-)
diffs (truncated from 1403 to 500 lines):
diff -r 09cb54af2f31 -r 3a715e42ffe4 ChangeLog
--- a/ChangeLog Thu Oct 09 01:42:05 2014 +0100
+++ b/ChangeLog Sun Oct 12 20:20:59 2014 +0100
@@ -1,3 +1,12 @@
+2014-10-09 Andrew John Hughes
+
+ * Makefile.am:
+ (ICEDTEA_PATCHES): Re-enable annotation race
+ condition patch.
+ * patches/openjdk/7122142-annotation_race_condition.patch:
+ Replace with more minimal backport that doesn't
+ alter existing types.
+
2014-08-29 Andrew John Hughes
* NEWS: Update OpenJDK bug URL.
diff -r 09cb54af2f31 -r 3a715e42ffe4 Makefile.am
--- a/Makefile.am Thu Oct 09 01:42:05 2014 +0100
+++ b/Makefile.am Sun Oct 12 20:20:59 2014 +0100
@@ -628,10 +628,8 @@
patches/openjdk/8006935-long_keys_in_hmac_prf.patch \
patches/openjdk/7106773-512_bits_rsa.patch \
patches/pr1904-icedtea_and_distro_versioning.patch \
- patches/openjdk/8017173-xml_cipher_rsa_oaep_cant_be_instantiated.patch
-
-# Temporarily disabled as causes crashes
-# patches/openjdk/7122142-annotation_race_condition.patch
+ patches/openjdk/8017173-xml_cipher_rsa_oaep_cant_be_instantiated.patch \
+ patches/openjdk/7122142-annotation_race_condition.patch
if WITH_RHINO
ICEDTEA_PATCHES += \
diff -r 09cb54af2f31 -r 3a715e42ffe4 patches/openjdk/7122142-annotation_race_condition.patch
--- a/patches/openjdk/7122142-annotation_race_condition.patch Thu Oct 09 01:42:05 2014 +0100
+++ b/patches/openjdk/7122142-annotation_race_condition.patch Sun Oct 12 20:20:59 2014 +0100
@@ -1,6 +1,6 @@
-diff -r d1f592073a0e src/share/classes/java/lang/Class.java
---- openjdk/jdk/src/share/classes/java/lang/Class.java Fri Sep 12 22:39:32 2014 +0100
-+++ openjdk/jdk/src/share/classes/java/lang/Class.java Thu Oct 02 20:18:56 2014 +0100
+diff -r 29dda8a54371 src/share/classes/java/lang/Class.java
+--- openjdk/jdk/src/share/classes/java/lang/Class.java Wed Oct 08 23:01:05 2014 +0100
++++ openjdk/jdk/src/share/classes/java/lang/Class.java Thu Oct 09 01:43:01 2014 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1994, 2012, Oracle and/or its affiliates. All rights reserved.
@@ -8,121 +8,7 @@
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
-@@ -271,7 +271,7 @@
- }
-
- /** Called after security checks have been made. */
-- private static native Class forName0(String name, boolean initialize,
-+ private static native Class> forName0(String name, boolean initialize,
- ClassLoader loader)
- throws ClassNotFoundException;
-
-@@ -341,15 +341,15 @@
- );
- }
- try {
-- Class[] empty = {};
-+ Class>[] empty = {};
- final Constructor c = getConstructor0(empty, Member.DECLARED);
- // Disable accessibility checks on the constructor
- // since we have to do the security check here anyway
- // (the stack depth is wrong for the Constructor's
- // security check to work)
-- java.security.AccessController.doPrivileged
-- (new java.security.PrivilegedAction() {
-- public Object run() {
-+ java.security.AccessController.doPrivileged(
-+ new java.security.PrivilegedAction() {
-+ public Void run() {
- c.setAccessible(true);
- return null;
- }
-@@ -379,7 +379,7 @@
- }
- }
- private volatile transient Constructor cachedConstructor;
-- private volatile transient Class newInstanceCallerCache;
-+ private volatile transient Class> newInstanceCallerCache;
-
-
- /**
-@@ -637,7 +637,7 @@
- if (getGenericSignature() != null)
- return (TypeVariable>[])getGenericInfo().getTypeParameters();
- else
-- return (TypeVariable>[])new TypeVariable[0];
-+ return (TypeVariable>[])new TypeVariable>[0];
- }
-
-
-@@ -901,7 +901,7 @@
-
- MethodRepository typeInfo = MethodRepository.make(enclosingInfo.getDescriptor(),
- getFactory());
-- Class returnType = toClass(typeInfo.getReturnType());
-+ Class> returnType = toClass(typeInfo.getReturnType());
- Type [] parameterTypes = typeInfo.getParameterTypes();
- Class>[] parameterClasses = new Class>[parameterTypes.length];
-
-@@ -1005,12 +1005,12 @@
-
- }
-
-- private static Class toClass(Type o) {
-+ private static Class> toClass(Type o) {
- if (o instanceof GenericArrayType)
- return Array.newInstance(toClass(((GenericArrayType)o).getGenericComponentType()),
- 0)
- .getClass();
-- return (Class)o;
-+ return (Class>)o;
- }
-
- /**
-@@ -1340,13 +1340,13 @@
- // out anything other than public members and (2) public member access
- // has already been ok'd by the SecurityManager.
-
-- Class[] result = (Class[]) java.security.AccessController.doPrivileged
-- (new java.security.PrivilegedAction() {
-- public Object run() {
-- java.util.List list = new java.util.ArrayList();
-- Class currentClass = Class.this;
-+ return java.security.AccessController.doPrivileged(
-+ new java.security.PrivilegedAction[]>() {
-+ public Class[] run() {
-+ List> list = new ArrayList>();
-+ Class> currentClass = Class.this;
- while (currentClass != null) {
-- Class[] members = currentClass.getDeclaredClasses();
-+ Class>[] members = currentClass.getDeclaredClasses();
- for (int i = 0; i < members.length; i++) {
- if (Modifier.isPublic(members[i].getModifiers())) {
- list.add(members[i]);
-@@ -1354,12 +1354,9 @@
- }
- currentClass = currentClass.getSuperclass();
- }
-- Class[] empty = {};
-- return list.toArray(empty);
-+ return list.toArray(new Class[0]);
- }
- });
--
-- return result;
- }
-
-
-@@ -2283,7 +2280,7 @@
- return name;
- }
- if (!name.startsWith("/")) {
-- Class c = this;
-+ Class> c = this;
- while (c.isArray()) {
- c = c.getComponentType();
- }
-@@ -2300,44 +2297,111 @@
+@@ -2305,44 +2305,110 @@
}
/**
@@ -245,8 +131,7 @@
+ while (true) {
+ ReflectionData rd = new ReflectionData(classRedefinedCount);
+ // try to CAS it...
-+ if (Atomic.casReflectionData(this, oldReflectionData,
-+ new SoftReference>(rd))) {
++ if (Atomic.casReflectionData(this, oldReflectionData, new SoftReference>(rd))) {
+ return rd;
+ }
+ // else retry
@@ -260,7 +145,7 @@
}
}
-@@ -2365,7 +2429,7 @@
+@@ -2370,7 +2436,7 @@
}
// Annotations handling
@@ -269,7 +154,7 @@
native ConstantPool getConstantPool();
-@@ -2380,27 +2444,19 @@
+@@ -2385,27 +2451,19 @@
// via ReflectionFactory.copyField.
private Field[] privateGetDeclaredFields(boolean publicOnly) {
checkInitted();
@@ -304,12 +189,9 @@
}
}
return res;
-@@ -2409,22 +2465,20 @@
- // Returns an array of "root" fields. These Field objects must NOT
- // be propagated to the outside world, but must instead be copied
+@@ -2416,12 +2474,10 @@
// via ReflectionFactory.copyField.
-- private Field[] privateGetPublicFields(Set traversedInterfaces) {
-+ private Field[] privateGetPublicFields(Set> traversedInterfaces) {
+ private Field[] privateGetPublicFields(Set traversedInterfaces) {
checkInitted();
- Field[] res = null;
- if (useCaches) {
@@ -324,37 +206,7 @@
if (res != null) return res;
}
- // No cached value available; compute value recursively.
- // Traverse in correct order for getField().
-- List fields = new ArrayList();
-+ List fields = new ArrayList();
- if (traversedInterfaces == null) {
-- traversedInterfaces = new HashSet();
-+ traversedInterfaces = new HashSet>();
- }
-
- // Local fields
-@@ -2432,9 +2486,7 @@
- addAll(fields, tmp);
-
- // Direct superinterfaces, recursively
-- Class[] interfaces = getInterfaces();
-- for (int i = 0; i < interfaces.length; i++) {
-- Class c = interfaces[i];
-+ for (Class> c : getInterfaces()) {
- if (!traversedInterfaces.contains(c)) {
- traversedInterfaces.add(c);
- addAll(fields, c.privateGetPublicFields(traversedInterfaces));
-@@ -2443,7 +2495,7 @@
-
- // Direct superclass, recursively
- if (!isInterface()) {
-- Class c = getSuperclass();
-+ Class> c = getSuperclass();
- if (c != null) {
- addAll(fields, c.privateGetPublicFields(traversedInterfaces));
- }
-@@ -2451,13 +2503,13 @@
+@@ -2456,8 +2512,8 @@
res = new Field[fields.size()];
fields.toArray(res);
@@ -365,18 +217,9 @@
}
return res;
}
-
-- private static void addAll(Collection c, Field[] o) {
-+ private static void addAll(Collection c, Field[] o) {
- for (int i = 0; i < o.length; i++) {
- c.add(o[i]);
- }
-@@ -2473,20 +2525,12 @@
- // Returns an array of "root" constructors. These Constructor
- // objects must NOT be propagated to the outside world, but must
+@@ -2480,18 +2536,10 @@
// instead be copied via ReflectionFactory.copyConstructor.
-- private Constructor[] privateGetDeclaredConstructors(boolean publicOnly) {
-+ private Constructor[] privateGetDeclaredConstructors(boolean publicOnly) {
+ private Constructor[] privateGetDeclaredConstructors(boolean publicOnly) {
checkInitted();
- Constructor[] res = null;
- if (useCaches) {
@@ -397,7 +240,7 @@
if (res != null) return res;
}
// No cached value available; request value from VM
-@@ -2495,11 +2539,11 @@
+@@ -2500,11 +2548,11 @@
} else {
res = getDeclaredConstructors0(publicOnly);
}
@@ -412,7 +255,7 @@
}
}
return res;
-@@ -2516,27 +2560,19 @@
+@@ -2521,27 +2569,19 @@
// via ReflectionFactory.copyMethod.
private Method[] privateGetDeclaredMethods(boolean publicOnly) {
checkInitted();
@@ -447,7 +290,7 @@
}
}
return res;
-@@ -2638,12 +2674,10 @@
+@@ -2643,12 +2683,10 @@
// via ReflectionFactory.copyMethod.
private Method[] privateGetPublicMethods() {
checkInitted();
@@ -464,22 +307,7 @@
if (res != null) return res;
}
-@@ -2659,12 +2693,12 @@
- // out concrete implementations inherited from superclasses at
- // the end.
- MethodArray inheritedMethods = new MethodArray();
-- Class[] interfaces = getInterfaces();
-+ Class>[] interfaces = getInterfaces();
- for (int i = 0; i < interfaces.length; i++) {
- inheritedMethods.addAll(interfaces[i].privateGetPublicMethods());
- }
- if (!isInterface()) {
-- Class c = getSuperclass();
-+ Class> c = getSuperclass();
- if (c != null) {
- MethodArray supers = new MethodArray();
- supers.addAll(c.privateGetPublicMethods());
-@@ -2691,8 +2725,8 @@
+@@ -2696,8 +2734,8 @@
methods.addAllIfNotPresent(inheritedMethods);
methods.compactAndTrim();
res = methods.getArray();
@@ -490,7 +318,7 @@
}
return res;
}
-@@ -2702,7 +2736,7 @@
+@@ -2707,7 +2745,7 @@
// Helpers for fetchers of one field, method, or constructor
//
@@ -499,7 +327,7 @@
String internedName = name.intern();
for (int i = 0; i < fields.length; i++) {
if (fields[i].getName() == internedName) {
-@@ -2720,22 +2754,22 @@
+@@ -2725,7 +2763,7 @@
// of Field objects which have to be created for the common
// case where the field being requested is declared in the
// class which is being queried.
@@ -508,43 +336,7 @@
// Search declared public fields
if ((res = searchFields(privateGetDeclaredFields(true), name)) != null) {
return res;
- }
- // Direct superinterfaces, recursively
-- Class[] interfaces = getInterfaces();
-+ Class>[] interfaces = getInterfaces();
- for (int i = 0; i < interfaces.length; i++) {
-- Class c = interfaces[i];
-+ Class> c = interfaces[i];
- if ((res = c.getField0(name)) != null) {
- return res;
- }
- }
- // Direct superclass, recursively
- if (!isInterface()) {
-- Class c = getSuperclass();
-+ Class> c = getSuperclass();
- if (c != null) {
- if ((res = c.getField0(name)) != null) {
- return res;
-@@ -2747,7 +2781,7 @@
-
- private static Method searchMethods(Method[] methods,
- String name,
-- Class[] parameterTypes)
-+ Class>[] parameterTypes)
- {
- Method res = null;
- String internedName = name.intern();
-@@ -2764,7 +2798,7 @@
- }
-
-
-- private Method getMethod0(String name, Class[] parameterTypes) {
-+ private Method getMethod0(String name, Class>[] parameterTypes) {
- // Note: the intent is that the search algorithm this routine
- // uses be equivalent to the ordering imposed by
- // privateGetPublicMethods(). It fetches only the declared
-@@ -2772,7 +2806,7 @@
+@@ -2777,7 +2815,7 @@
// number of Method objects which have to be created for the
// common case where the method being requested is declared in
// the class which is being queried.
@@ -553,133 +345,10 @@
// Search declared public methods
if ((res = searchMethods(privateGetDeclaredMethods(true),
name,
-@@ -2781,7 +2815,7 @@
- }
- // Search superclass's methods
- if (!isInterface()) {
-- Class c = getSuperclass();
-+ Class super T> c = getSuperclass();
- if (c != null) {
- if ((res = c.getMethod0(name, parameterTypes)) != null) {
- return res;
-@@ -2789,9 +2823,9 @@
- }
- }
- // Search superinterfaces' methods
-- Class[] interfaces = getInterfaces();
-+ Class>[] interfaces = getInterfaces();
- for (int i = 0; i < interfaces.length; i++) {
-- Class c = interfaces[i];
-+ Class> c = interfaces[i];
- if ((res = c.getMethod0(name, parameterTypes)) != null) {
- return res;
- }
-@@ -2800,14 +2834,14 @@
- return null;
- }
-
-- private Constructor getConstructor0(Class[] parameterTypes,
-+ private Constructor getConstructor0(Class>[] parameterTypes,
- int which) throws NoSuchMethodException
- {
-- Constructor[] constructors = privateGetDeclaredConstructors((which == Member.PUBLIC));
-- for (int i = 0; i < constructors.length; i++) {
-+ Constructor[] constructors = privateGetDeclaredConstructors((which == Member.PUBLIC));
-+ for (Constructor constructor : constructors) {
- if (arrayContentsEq(parameterTypes,
-- constructors[i].getParameterTypes())) {
-- return getReflectionFactory().copyConstructor(constructors[i]);
-+ constructor.getParameterTypes())) {
-+ return getReflectionFactory().copyConstructor(constructor);
- }
- }
- throw new NoSuchMethodException(getName() + "." + argumentTypesToString(parameterTypes));
-@@ -2857,21 +2891,21 @@
- return out;
- }
-
-- private static Constructor[] copyConstructors(Constructor[] arg) {
-- Constructor[] out = new Constructor[arg.length];
-+ private static Constructor[] copyConstructors(Constructor[] arg) {
-+ Constructor[] out = arg.clone();
- ReflectionFactory fact = getReflectionFactory();
-- for (int i = 0; i < arg.length; i++) {
-- out[i] = fact.copyConstructor(arg[i]);
-+ for (int i = 0; i < out.length; i++) {
-+ out[i] = fact.copyConstructor(out[i]);
- }
- return out;
- }
-
- private native Field[] getDeclaredFields0(boolean publicOnly);
- private native Method[] getDeclaredMethods0(boolean publicOnly);
-- private native Constructor[] getDeclaredConstructors0(boolean publicOnly);
-- private native Class[] getDeclaredClasses0();
-+ private native Constructor[] getDeclaredConstructors0(boolean publicOnly);
-+ private native Class>[] getDeclaredClasses0();
-
-- private static String argumentTypesToString(Class[] argTypes) {
-+ private static String argumentTypesToString(Class>[] argTypes) {
- StringBuilder buf = new StringBuilder();
- buf.append("(");
- if (argTypes != null) {
-@@ -2879,7 +2913,7 @@
- if (i > 0) {
- buf.append(", ");
- }
-- Class c = argTypes[i];
-+ Class> c = argTypes[i];
- buf.append((c == null) ? "null" : c.getName());
- }
- }
-@@ -2952,7 +2986,7 @@
- }
-
- // Retrieves the desired assertion status of this class from the VM
-- private static native boolean desiredAssertionStatus0(Class clazz);
-+ private static native boolean desiredAssertionStatus0(Class> clazz);
-
- /**
- * Returns true if and only if this class was declared as an enum in the
-@@ -2973,7 +3007,7 @@
- // Fetches the factory for reflective objects
- private static ReflectionFactory getReflectionFactory() {
- if (reflectionFactory == null) {
-- reflectionFactory = (ReflectionFactory)
-+ reflectionFactory =
- java.security.AccessController.doPrivileged
- (new sun.reflect.ReflectionFactory.GetReflectionFactoryAction());
- }
-@@ -3039,9 +3073,9 @@
- if (!isEnum()) return null;
- try {
- final Method values = getMethod("values");
-- java.security.AccessController.doPrivileged
-- (new java.security.PrivilegedAction() {
-- public Object run() {
-+ java.security.AccessController.doPrivileged(
-+ new java.security.PrivilegedAction() {
-+ public Void run() {
- values.setAccessible(true);
- return null;
- }
-@@ -3073,7 +3107,7 @@
From jvanek at icedtea.classpath.org Mon Oct 13 14:05:40 2014
From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org)
Date: Mon, 13 Oct 2014 14:05:40 +0000
Subject: /hg/icedtea-web: Removed all references to deprecated sun.misc.Ref
Message-ID:
changeset df05d1de5af4 in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=df05d1de5af4
author: Jiri Vanek
date: Mon Oct 13 16:05:27 2014 +0200
Removed all references to deprecated sun.misc.Ref
diffstat:
ChangeLog | 9 +++++++++
NEWS | 1 +
configure.ac | 2 --
netx/net/sourceforge/jnlp/config/PathsAndFiles.java | 2 +-
netx/net/sourceforge/jnlp/resources/Messages.properties | 2 +-
netx/net/sourceforge/jnlp/util/ui/NonEditableTableModel.java | 4 ++--
plugin/icedteanp/java/sun/applet/PluginAppletViewer.java | 3 +--
7 files changed, 15 insertions(+), 8 deletions(-)
diffs (111 lines):
diff -r c6af2f50a95e -r df05d1de5af4 ChangeLog
--- a/ChangeLog Thu Oct 09 18:42:42 2014 +0200
+++ b/ChangeLog Mon Oct 13 16:05:27 2014 +0200
@@ -1,3 +1,12 @@
+2014-10-13 Fridrich Strba
+
+ Removed all references to deprecated sun.misc.Ref
+ * configure.ac: removed check for a sun.misc.Ref
+ * netx/net/sourceforge/jnlp/util/ui/NonEditableTableModel.java: all occurrences
+ of Vector> replaced by Vector. JDK9 compliant style.
+ * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java: (getCachedImageRef)
+ type of return value changed from Ref to AppletImageRef. Adapted imports.
+
2014-10-09 Jiri Vanek
Empty "" codebase now behaves as "." codebase
diff -r c6af2f50a95e -r df05d1de5af4 NEWS
--- a/NEWS Thu Oct 09 18:42:42 2014 +0200
+++ b/NEWS Mon Oct 13 16:05:27 2014 +0200
@@ -24,6 +24,7 @@
- RH1091563: [abrt] icedtea-web-1.5-2.fc20: Uncaught exception java.lang.ClassCastException in method sun.applet.PluginAppletViewer$8.run()
- Dropped support for long unmaintained -basedir argument
- Returned support for -jnlp argument
+ - RH1095311, PR574 - References class sun.misc.Ref removed in OpenJDK 9 - fixed, and so buildable on JDK9
* Plugin
- PR1743 - Intermittant deadlock in PluginRequestProcessor
- RH1121549: coverity defects
diff -r c6af2f50a95e -r df05d1de5af4 configure.ac
--- a/configure.ac Thu Oct 09 18:42:42 2014 +0200
+++ b/configure.ac Mon Oct 13 16:05:27 2014 +0200
@@ -64,7 +64,6 @@
dnl IT570 - NetX depends on sun.applet.AppletViewPanel
dnl IT571 - NetX depends on com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager.java
dnl IT573 - Plugin depends on sun.awt,X11.XEmbeddedFrame.java
-dnl IT574 - Plugin depends on sun.misc.Ref
dnl IT575 - Plugin depends on com.sun/jndi.toolkit.url.UrlUtil
dnl IT576 - Plugin depends on sun.applet.AppletImageRef
dnl IT578 - Remove need for patching AppletPanel for Plugin/Webstart
@@ -83,7 +82,6 @@
IT_CHECK_FOR_CLASS(SUN_NET_WWW_PROTOCOL_JAR_URLJARFILE, [sun.net.www.protocol.jar.URLJarFile])
IT_CHECK_FOR_CLASS(SUN_NET_WWW_PROTOCOL_JAR_URLJARFILECALLBACK, [sun.net.www.protocol.jar.URLJarFileCallBack])
IT_CHECK_FOR_CLASS(SUN_AWT_X11_XEMBEDDEDFRAME, [sun.awt.X11.XEmbeddedFrame])
-IT_CHECK_FOR_CLASS(SUN_MISC_REF, [sun.misc.Ref])
IT_CHECK_FOR_CLASS(COM_SUN_JNDI_TOOLKIT_URL_URLUTIL, [com.sun.jndi.toolkit.url.UrlUtil])
IT_CHECK_FOR_CLASS(SUN_APPLET_APPLETIMAGEREF, [sun.applet.AppletImageRef])
IT_CHECK_FOR_SUN_APPLET_ACCESSIBILITY
diff -r c6af2f50a95e -r df05d1de5af4 netx/net/sourceforge/jnlp/config/PathsAndFiles.java
--- a/netx/net/sourceforge/jnlp/config/PathsAndFiles.java Thu Oct 09 18:42:42 2014 +0200
+++ b/netx/net/sourceforge/jnlp/config/PathsAndFiles.java Mon Oct 13 16:05:27 2014 +0200
@@ -137,7 +137,7 @@
}
};
- public static final InfrastructureFileDescriptor USER_DEPLOYMENT_FILE = new ItwConfigFileDescriptor(DEPLOYMENT_PROPERTIES, "Users main deployment properties file.", Target.JAVAWS, Target.ITWEB_SETTINGS);
+ public static final InfrastructureFileDescriptor USER_DEPLOYMENT_FILE = new ItwConfigFileDescriptor(DEPLOYMENT_PROPERTIES, "FILEuserdp", Target.JAVAWS, Target.ITWEB_SETTINGS);
private static enum Target {
JAVAWS, PLUGIN, ITWEB_SETTINGS, POLICY_EDITOR;
diff -r c6af2f50a95e -r df05d1de5af4 netx/net/sourceforge/jnlp/resources/Messages.properties
--- a/netx/net/sourceforge/jnlp/resources/Messages.properties Thu Oct 09 18:42:42 2014 +0200
+++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Mon Oct 13 16:05:27 2014 +0200
@@ -989,7 +989,7 @@
FILEusercerts=Contains various users stored certificates.
FILEjavacerts=Contains various system java-wide stored certificates.
FILEjavadp=java-global deployment properties file. May be affected by {0}.
-FILEuserdp=main deployment properties file.
+FILEuserdp=Users main deployment properties file.
APPEXTSECappletSecurityLevelExtraHighId=Disable running of all Java applets
APPEXTSECappletSecurityLevelVeryHighId=Very High Security
diff -r c6af2f50a95e -r df05d1de5af4 netx/net/sourceforge/jnlp/util/ui/NonEditableTableModel.java
--- a/netx/net/sourceforge/jnlp/util/ui/NonEditableTableModel.java Thu Oct 09 18:42:42 2014 +0200
+++ b/netx/net/sourceforge/jnlp/util/ui/NonEditableTableModel.java Mon Oct 13 16:05:27 2014 +0200
@@ -94,7 +94,7 @@
* @param rowCount the number of rows the table holds
* @see DefaultTableModel#DefaultTableModel(Vector,int)
*/
- public NonEditableTableModel(final Vector> columnNames, final int rowCount) {
+ public NonEditableTableModel(final Vector columnNames, final int rowCount) {
super(columnNames, rowCount);
}
@@ -106,7 +106,7 @@
* @param columnNames {@code vector} containing the names of the new columns
* @see DefaultTableModel#DefaultTableModel(Vector,Vector)
*/
- public NonEditableTableModel(final Vector> data, final Vector> columnNames) {
+ public NonEditableTableModel(final Vector data, final Vector columnNames) {
super(data, columnNames);
}
diff -r c6af2f50a95e -r df05d1de5af4 plugin/icedteanp/java/sun/applet/PluginAppletViewer.java
--- a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java Thu Oct 09 18:42:42 2014 +0200
+++ b/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java Mon Oct 13 16:05:27 2014 +0200
@@ -115,7 +115,6 @@
import sun.awt.AppContext;
import sun.awt.SunToolkit;
import sun.awt.X11.XEmbeddedFrame;
-import sun.misc.Ref;
import com.sun.jndi.toolkit.url.UrlUtil;
import java.net.HttpURLConnection;
@@ -819,7 +818,7 @@
/**
* Get an image ref.
*/
- private synchronized Ref getCachedImageRef(URL url) {
+ private synchronized AppletImageRef getCachedImageRef(URL url) {
PluginDebug.debug("getCachedImageRef() searching for ", url);
try {
From jvanek at redhat.com Mon Oct 13 14:20:56 2014
From: jvanek at redhat.com (Jiri Vanek)
Date: Mon, 13 Oct 2014 16:20:56 +0200
Subject: [rfc][icedtea-web][patch] Patch to build icedtea-web 1.5.1 with
java9
In-Reply-To: <5437C712.8030303@suse.com>
References: <54364646.60503@suse.com> <54367F1E.8010008@redhat.com>
<54378FC9.4080200@suse.com> <5437C15F.7070703@redhat.com>
<5437C712.8030303@suse.com>
Message-ID: <543BDFC8.3090705@redhat.com>
On 10/10/2014 01:46 PM, Fridrich Strba wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hello, good people,
>
> On 10/10/14 13:22, Jiri Vanek wrote:
>> Only I would like to add to NEWS that that the RH1095311 -
>> icedtea-web: References class sun.misc.Ref removed in OpenJDK 9 is
>> fixed. You dont have commit acces, do you?
>
> No, but I can live without it :)
>
>> Can I push for you with the sentence in NEWS?
>
> Sure, do as you deem the best.
>
>> Is it enough for you this to be pushed to head or you need 1.5?
>> 1.5 should remain jdk6 compatible, which I have not yet tested with
>> your patch.
>
> Yeah, feel free to do it for head. I have java6, just I was never
> trying to use the plugin with it. Will give it a try :) If not today,
> next week for sure.
>
>> Will you write changelog entry on your own or you wont me to do?
>
> Oh. If you don't mind, I will leave you the privilege of writing
> changelog entry. I am quite bad at that :)
Nor am I :D
Well pushed to head. Afaik backport to 1.5 is possible i needed (apearently works okalso with jdk6)
Ty again!
J.
>
> F.
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2.0.22 (GNU/Linux)
>
> iEYEARECAAYFAlQ3xxIACgkQu9a1imXPdA//rACfVe/xoGtFwCu/fhhSdFZf0WJz
> BD8AnijQJ5aWH8qVUZ1Gk+ZneJVx9X2i
> =njH/
> -----END PGP SIGNATURE-----
>
From jvanek at redhat.com Mon Oct 13 14:58:33 2014
From: jvanek at redhat.com (Jiri Vanek)
Date: Mon, 13 Oct 2014 16:58:33 +0200
Subject: [rfc][icedtea-web] https probing
In-Reply-To: <5422D7FE.60004@gmx.de>
References: <54071FE9.2000309@redhat.com> <54101CEB.1040104@redhat.com>
<541516F5.3020504@gmx.de> <54219241.6060705@redhat.com>
<5422D7FE.60004@gmx.de>
Message-ID: <543BE899.9010208@redhat.com>
On 09/24/2014 04:41 PM, Jacob Wisor wrote:
> On 09/23/2014 at 05:31 PM, Jiri Vanek wrote:
>> On 09/14/2014 06:17 AM, Jacob Wisor wrote:
>>> On 09/10/2014 at 11:42 AM, Jiri Vanek wrote:
>
> Because the discussion on this patch has become quite extensive I am going to focus on the two most
> important issues only. At least for now.
>
yy. Thank you. And sorry for delay in reply.
>>>> + if (url.getProtocol().equalsIgnoreCase("https") &&
>>>> isProbingAllowed()) {
>>>> + if (isSyncForced()) {
>>>> + while (!httpsConnections.isEmpty()) {
>>>> + try {
>>>> + Thread.sleep(100);
>>>> + } catch (InterruptedException ex) {
>>>> + throw new IOException(ex);
>>>> + }
>>>> + }
>>>
>>> Polling? Really? Is this really the proper way to do it? And, do we really
>>> need to offer
>>
>>
>> Actually yes. I dont know about better way here. I will be happy if you have some.
>>
>> What I wonted to take care about, is situatuion when the individual https
>> settings differe. Then the first one must be disconnected, before second can
>> apply for new settings.
>> And so tehre is need to not accept other https conenctions until previous one
>> disconnects.
>>
>>
>>> synchronous connections?
>>> Besides, what about infinite looping?
>>
>> Do you mean that it can deadlock here? Yes. I'm thinking the same. But The same
>> deadlock will rise now too. For my pooling here, the timeout is most simple
>> solution and will probably appear in some next iteration changeset
>
> I think you cannot avoid to pay tribute to the fact that networks are inherently asynchronous by
> their very nature (I am not talking about USB here ;-) ). Having said that, we /can/ support
> synchronous connection creating but it should be based on asynchronous calls because ... you guessed
> it, of a network's inherent asynchronous nature.
Yes. But it does not need to prevent us from connect, wait, disconnect... . If the internal impl is
asinc, then let its be.
> Anyway, the Http(s)Factory should support creating HTTP /and/ HTTPS connections (and thus download
Why to include http into the synchronized/probed way? The properties I'm touching, and for which
I'm forcing the syncs, are affecting https only.
> JNLP resources) not only asynchronously but also concurrently. None of the protocols posses a
> property that prevents us from implementing asynchronous connection creating, forces us to support
> synchronous connection creating only (even when testing for multiple versions), nor imposes a limit
> on the full (logical) potential of a network. Besides, establishing connections synchronously only,
> is definitely not the state of the art for the 21st century. ;-)
Yes. But may be a good workaround for few rare cases.
>
> Also, please note that your current approach is not thread-safe, even for synchronous calls only!
> Thread-safety is actually a MUST for a Http(s)Factory. Simply putting the synchronized keyword in
> front of a method declaration is not fully solving the problem here nor should actually be done this
> way. What you actually want to synchronize is the access to the Http(s)Factory's internal state, not
> the access to the factory (its methods) itself. There is no need to block *all* other threads which
> want to create a connection just because one thread is using the factory or is waiting for the
> factory to complete creating a connection for it. I strongly advise you to rewrite the factory
> accordingly.
>
> The proper way to provide a synchronous call in an asynchronous environment is to block or yield.
> And, you certainly do not accomplish this with potentially infinite loops making the current thread
> wait an arbitrary amount of time. What you do is; you set off the asynchronous call and then wait
> (Object.wait()) until you get notified (Object.notify()) by the asynchronous call's on complete method.
Hmm. Will it still allows me to sync on https only? If so, then yes, it would be best solution and I
was afraid of it in vain.
>
>>>> [...]
>>>> + //this s intentional search by object value. equals do not work
>>>> + for (int i = 0; i < httpsConnections.size(); i++) {
>>>
>>> Start from the end, decrement to 0, and compare to 0. Comparing to 0 gives
>>> almost always far better
>>> performance on modern processors because they are heavily optimized for branch
>>> prediction on 0.
>>>
>>>> + URLConnection uRLConnection = httpsConnections.get(i);
>>>> + if (uRLConnection == conn) {
>>>> + httpsConnections.remove(i);
>>>> + i--;
>>>
>>> Besides, why not use ArrayList.removeAll(Collection) here? It is probably much
>>> faster, even though
>>> you have to create a Collection instance.
>>
>>
>> I'm not sure what you mean here.
>
> You are trying to remove all "conn" elements from the "httpsConnections" ArrayList the awkward way.
> The best way to do this is to call ArrayList.removeAll(Collection) instead of iterating through the
> ArrayList manually.
As the comment says - I can not use remove all, because it is removing via equals. And I need to
remove based on references.
>
>>>> [...]
>>>> + public static URLConnection openConnection(URL url, boolean ssl2,
>>>> boolean insecure)
>>>> throws IOException {
>>>> + try {
>>>> + if (ssl2) {
>>>> + System.setProperty("https.protocols", "SSLv3,SSLv2Hello");
>>>> + } else {
>>>> + System.clearProperty("https.protocols");
>>>> +
>>>> + }
>>>
>>> I am absolutely sure we do not want to modify *system* properties for *all*
>>> future connections here.
>>> What about other existing and other future connections, especially connections
>>> created by a JNLP
>>> application?
>>> And then there are SecurityManager implications. What if these or all system
>>> properties are read-only?
>>> So no, we do not want to modify system properties at runtime.
>>
>> Ok.I made investigations and you are right. This is show stopper on current
>> approach.
>> The issue helpcrypto is facing with jdk8 have solution based on properties to:(
>
> This raises the question whether we should bother about this at all, since the SSL version of HTTPS
> connections can and have always been configurable by system properties in the JRE. :-D
I understand that. On opposite - you must agree that pass property to javaws soemtimes need some
skill and I fo not expect this to be done by plain user. So why itw should not try few most common
cases on its own? And what about case when each https connection needs different settings?
>
>> By default, no probing will be done, and itw will work as before.
>> There will be only one property - public static final String
>> KEY_HTTPS_PROBINGALLOWED = "deployment.security.https.probing.allowed";
>
> Then this property should be renamed to "deployment.security.https.probing.enabled".
>
>> By default false, and with possible true/false
>>
>> Maybe probing will be possible to turn on in runtime, if https connection fails,
>> on users approve.
>
> It could. But, on the other hand who or what would turn on probing for HTTPS connections at runtime?
See the fixme in code. Only one who can do this is ITW. If it fails https during *downloading* of
*resources* then it ask if it should switch to it. Maybe with description of list of tryed methods
or something like that.
> The JNLP application? Certainly not. A JNLP application does not even control downloading resources
> directly.
sure :)) For jnlp app, after the controll is given to it, the properties have to be returned d in
original state.
> Then perhaps the user? If so, this would require for the user to be able to change the desired JNLP
> application's JRE configuration in some kind of UI or command line interface provided by
> IcedTea-Web. And it would make tracing the configuration for every running JNLP application and
> visualizing system properties mandatory. This is counter intuitive and breaks JNLPRuntime's current
> concept which is to configure the JRE for a JNLP application's entire lifetime. Besides, there is
> currently no UI or infrastructure to support this in IcedTea-Web.
Oh.. nothing like that. I hope!
>
>> Once proobing is true, then the scenario will be same as attached (same as
>> always in this thread) chnageset with :
>> deployment.security.https.syncforced = true
>
> Why so? Why should creating HTTPS connections be synchronous only? There is no rational reason to
> impose such a limit. Besides, it definitely leads to increased latencies and possibly to decreased
> throughput.
>
This last paragraphs makes me wonder if we understand each other.
I wont the sync acces only for https conenction. For https only, because I'm mdyfing https affecting
rpoerties only and/or https certificate management. So no need to block other protocols.
I understand with every drawback of forcing https conenctions to be not-parallel. Bu it have to be
done, if I wont to return the properties to the original state after each disconnect.
J.
From jvanek at redhat.com Mon Oct 13 15:29:12 2014
From: jvanek at redhat.com (Jiri Vanek)
Date: Mon, 13 Oct 2014 17:29:12 +0200
Subject: [rfc][icedtea-web] in cae of exisitn human readable form, put url
to brackets instead of ignoring human readable form
Message-ID: <543BEFC8.3050406@redhat.com>
This simple patch is trying to fix one of the rebuke to document generator impl :
When text was used in plain/man formater, then it translated to URL appearence
only. Which in sentence, which in html looked fine like "text" , appeared really wrongly.
After this patch it shoudl appear like "text (url)"
Small workaround was added for urls with no human-readable-substitution, to dont have empty brackets
over docs.
How do you feel with this?
I remember Jie liked this approach...O:)
J.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: urlWithHumanReadableSunstitutionPutOBrackets.patch
Type: text/x-patch
Size: 2609 bytes
Desc: not available
URL:
From bugzilla-daemon at icedtea.classpath.org Tue Oct 14 15:20:15 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Tue, 14 Oct 2014 15:20:15 +0000
Subject: [Bug 2031] New: Downloads all jars even though they are already in
cache - no If-Modified-Since support either
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2031
Bug ID: 2031
Summary: Downloads all jars even though they are already in
cache - no If-Modified-Since support either
Product: IcedTea-Web
Version: 1.5
Hardware: x86_64
OS: Linux
Status: NEW
Severity: major
Priority: P5
Component: NetX (javaws)
Assignee: omajid at redhat.com
Reporter: will.tatam at red61.com
CC: unassigned at icedtea.classpath.org
IceTea webstart appear to be trying to download the same files every time we
launch the application from the JnlpDownloadServlet
It does not send the If-Modified-Since header so the servlet can't send a No
Modified response
It also tries to download the files even though the jnlp file states that we
are using versioned JARs, so should therefore only be attempting to download in
the first place if it has no such jar with that version
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From jvanek at redhat.com Tue Oct 14 15:35:29 2014
From: jvanek at redhat.com (Jiri Vanek)
Date: Tue, 14 Oct 2014 17:35:29 +0200
Subject: [rfc][icedtea-web] get rid of custom@@ markup for documentation
Message-ID: <543D42C1.6050705@redhat.com>
This patch is replacing all usages by @BOLD...@ by html equivalents or (case does not
meter, nor do spaces inside)
I don't have better idea how to get rid of it:(
There was one more note to this - to include some escaping - I'm not going to implement it until it
is needed, but if it will be needed, then I would go y this same way - have html escaping in
properties, and get rid of it in ReplacingFormatter.
The docs looks same with this patch, as they looked before.
Thoughts?
J.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: replaceCustomBoldTagWithHtmlOne.patch
Type: text/x-patch
Size: 16865 bytes
Desc: not available
URL:
From jvanek at redhat.com Tue Oct 14 16:07:26 2014
From: jvanek at redhat.com (Jiri Vanek)
Date: Tue, 14 Oct 2014 18:07:26 +0200
Subject: [rfc][icedtea-web] fixing javadoc build under jdk8
Message-ID: <543D4A3E.9020308@redhat.com>
We dont build javadoc under jdk8.
Somebody removed refference:)
Is it familiar to somebody? If so, is this fix necessary to backport to 1.5?
J.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: notexistingRef.patch
Type: text/x-patch
Size: 1006 bytes
Desc: not available
URL:
From jkang at redhat.com Tue Oct 14 18:16:04 2014
From: jkang at redhat.com (Jie Kang)
Date: Tue, 14 Oct 2014 14:16:04 -0400 (EDT)
Subject: [rfc][icedtea-web] in cae of exisitn human readable form, put
url to brackets instead of ignoring human readable form
In-Reply-To: <543BEFC8.3050406@redhat.com>
References: <543BEFC8.3050406@redhat.com>
Message-ID: <1061403693.19129971.1413310564529.JavaMail.zimbra@redhat.com>
----- Original Message -----
> This simple patch is trying to fix one of the rebuke to document generator
> impl :
> When text was used in plain/man formater, then it
> translated to URL appearence
> only. Which in sentence, which in html looked fine like "text" , appeared
> really wrongly.
>
> After this patch it shoudl appear like "text (url)"
>
> Small workaround was added for urls with no human-readable-substitution, to
> dont have empty brackets
> over docs.
>
>
> How do you feel with this?
>
> I remember Jie liked this approach...O:)
> J.
Hello,
The patch looks good. I've checked over the generated docs and they look better now. Nice!
Cheers,
>
--
Jie Kang
From ldracz at redhat.com Tue Oct 14 18:34:27 2014
From: ldracz at redhat.com (Lukasz Dracz)
Date: Tue, 14 Oct 2014 14:34:27 -0400 (EDT)
Subject: [rfc][icedtea-web] in cae of exisitn human readable form, put
url to brackets instead of ignoring human readable form
In-Reply-To: <1061403693.19129971.1413310564529.JavaMail.zimbra@redhat.com>
References: <543BEFC8.3050406@redhat.com>
<1061403693.19129971.1413310564529.JavaMail.zimbra@redhat.com>
Message-ID: <484283257.19166984.1413311667000.JavaMail.zimbra@redhat.com>
Hello,
Agreed, the patch is good and the generated docs look better.
Just a small nit, please just fix the extra spaces.
3 extra spaces at plus (ManFormatter.java)
+
@Override
public String getSeeAlso(String s) {
return " * " + s + getNewLine();
3 extra spaces at plus (PlainTextFormatter.java)
+
@Override
public String getSeeAlso(String s) {
return " * " + s + getNewLine();
4 extra spaces on the line before the @Override (ReplacingTextFormatter.java)
+
+ @Override
+ public String getUrl(String url, String look) {
+ if (look == null || look.trim().length() == 0 || url.equals(look)) {
Other than that patch looks good !
Thank you,
Lukasz Dracz
----- Original Message -----
> From: "Jie Kang"
> To: "Jiri Vanek"
> Cc: "IcedTea Distro List"
> Sent: Tuesday, October 14, 2014 2:16:04 PM
> Subject: Re: [rfc][icedtea-web] in cae of exisitn human readable form, put url to brackets instead of ignoring human
> readable form
>
>
>
> ----- Original Message -----
> > This simple patch is trying to fix one of the rebuke to document generator
> > impl :
> > When text was used in plain/man formater, then it
> > translated to URL appearence
> > only. Which in sentence, which in html looked fine like "text" , appeared
> > really wrongly.
> >
> > After this patch it shoudl appear like "text (url)"
> >
> > Small workaround was added for urls with no human-readable-substitution, to
> > dont have empty brackets
> > over docs.
> >
> >
> > How do you feel with this?
> >
> > I remember Jie liked this approach...O:)
> > J.
>
>
> Hello,
>
>
> The patch looks good. I've checked over the generated docs and they look
> better now. Nice!
>
>
> Cheers,
>
> >
>
> --
>
> Jie Kang
>
From jkang at redhat.com Tue Oct 14 18:47:13 2014
From: jkang at redhat.com (Jie Kang)
Date: Tue, 14 Oct 2014 14:47:13 -0400 (EDT)
Subject: [rfc][icedtea-web] get rid of custom@@ markup for documentation
In-Reply-To: <543D42C1.6050705@redhat.com>
References: <543D42C1.6050705@redhat.com>
Message-ID: <230705271.19173996.1413312433570.JavaMail.zimbra@redhat.com>
----- Original Message -----
> This patch is replacing all usages by @BOLD...@ by html equivalents or
> (case does not
> meter, nor do spaces inside)
>
> I don't have better idea how to get rid of it:(
>
>
> There was one more note to this - to include some escaping - I'm not going to
> implement it until it
> is needed, but if it will be needed, then I would go y this same way - have
> html escaping in
> properties, and get rid of it in ReplacingFormatter.
>
> The docs looks same with this patch, as they looked before.
>
>
> Thoughts?
Hello
Yay unit tests! Nice :)
The change isn't that big compared to @BOLD...@ but I don't have any suggestions atm as to what can be done instead.
It looks good except for a few minor nits below:
+ @Override
+ public String wrapParagraph(String s) {
+ throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ }
Can these unrelated comments be removed?
+ @Test
+ public void mixedCases1() {
+ String s = tr.process("aaa bbb ccc");
+ Assert.assertEquals("aaa OPEN bbb CLOSE ccc", s);
+ }
+ @Test
+ public void mixedSpace2() {
+ String s = tr.process("aaa bbb ccc");
+ Assert.assertEquals("aaa OPEN bbb CLOSE ccc", s);
+ }
I think second test should be called mixedCases2.
+ @Test
+ public void uppercaseSpaces() {
+ String s = tr.process("aaa < B > bbb < / B > ccc");
+ Assert.assertEquals("aaa OPEN bbb CLOSE ccc", s);
+ }
Personally, I think you should force the tags to be correctly written as (or ) and unless there is a situation where a does not work compared to < b >.
Finally, before pushing, can you double-check all the whitespaces.
+ @Override
+ public String process(String s) {
+ //the texts in properties are already using html markup
+ return s;
+ }
+
+
For example, there are now 3 lines between process(...) and the next function. Should just be one I think.
Regards,
>
> J.
>
--
Jie Kang
From gitne at gmx.de Tue Oct 14 19:02:46 2014
From: gitne at gmx.de (Jacob Wisor)
Date: Tue, 14 Oct 2014 21:02:46 +0200
Subject: [rfc][icedtea-web] get rid of custom@@ markup for documentation
In-Reply-To: <543D42C1.6050705@redhat.com>
References: <543D42C1.6050705@redhat.com>
Message-ID: <543D7356.5010304@gmx.de>
On 10/14/2014 at 05:35 PM, Jiri Vanek wrote:
> This patch is replacing all usages by @BOLD...@ by html equivalents or
> (case does not meter, nor do spaces inside)
>
> I don't have better idea how to get rid of it:(
>
>
> There was one more note to this - to include some escaping - I'm not going to
> implement it until it is needed,
In my experience, this kind of statement is usually a strong indicator of a bad
personal attitude to work. Your argument can be applied almost every time and
everywhere. You are delivering incomplete work which is practically useless and
in the end causes more problems than solves.
> but if it will be needed, then I would go y
> this same way - have html escaping in properties, and get rid of it in
> ReplacingFormatter.
>
> The docs looks same with this patch, as they looked before.
:-\ This is a waste of energy because it is no better than before. I will not
even try to have a look at it.
How about having methods that strip different kinds of formatting and return
plain text at runtime. E.g.
.SH Man Title
.br -> stripMan() -> Man Title
or
XHTML title
/
-> stripXHTML() -> XHTML Title
Are there any problems with this approach, except for the fact that the
formatting would need to be detected or stored as meta data either in the
properties files or in code?
Another approach would be to have plain text and formatted text properties in
different name spaces, like JavawsParamName.doc.man or JavawsParamName.doc.html
for JavawsParamName, or doc.html.JavawsParamName (or any other permutation you
like, but consistent). Although this would "double" or maybe even "triple" some
properties, it would at least be a clean approach, consistent, and keep all
texts in *one* file, which is what you initially wanted to have since you
embarked on your "Great Documentation Generator Endeavor".
Yet another approach would be to accept only HTML formatted code in the property
files and have it converted to man or what ever document format when generated.
It should be pretty easy to strip HTML tags from strings in Java. ;-)
Jacob
From andrew at icedtea.classpath.org Tue Oct 14 20:13:19 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Tue, 14 Oct 2014 20:13:19 +0000
Subject: /hg/release/icedtea7-forest-2.5: Added tag icedtea-2.5.3 for cha...
Message-ID:
changeset af5332bb2601 in /hg/release/icedtea7-forest-2.5
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5?cmd=changeset;node=af5332bb2601
author: andrew
date: Tue Oct 14 21:12:31 2014 +0100
Added tag icedtea-2.5.3 for changeset 49dc79ef05ab
diffstat:
.hgtags | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diffs (8 lines):
diff -r 49dc79ef05ab -r af5332bb2601 .hgtags
--- a/.hgtags Thu Oct 02 00:42:05 2014 +0100
+++ b/.hgtags Tue Oct 14 21:12:31 2014 +0100
@@ -489,3 +489,4 @@
de1fbcb0855887e803b71a8da642c377c85c3780 icedtea-2.5.2
dfe93c56a5f60a4ef0f3b3727d7784b6879a5bd9 icedtea-2.5.3pre01
6f40002d1813d0f57cdf7d3c3b4d0edecf56d77e icedtea-2.5.3pre02
+49dc79ef05ab17ff7458755569551199ced0b72c icedtea-2.5.3
From andrew at icedtea.classpath.org Tue Oct 14 20:13:26 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Tue, 14 Oct 2014 20:13:26 +0000
Subject: /hg/release/icedtea7-forest-2.5/corba: 2 new changesets
Message-ID:
changeset 4aed5efcd8df in /hg/release/icedtea7-forest-2.5/corba
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/corba?cmd=changeset;node=4aed5efcd8df
author: mfang
date: Mon Aug 18 10:20:52 2014 -0700
8055176: 7u71 l10n resource file translation update
Reviewed-by: yhuang
changeset e4c8cfe1228d in /hg/release/icedtea7-forest-2.5/corba
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/corba?cmd=changeset;node=e4c8cfe1228d
author: andrew
date: Tue Oct 14 21:12:20 2014 +0100
Added tag icedtea-2.5.3 for changeset 4aed5efcd8df
diffstat:
.hgtags | 1 +
src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_ja.properties | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
diffs (27 lines):
diff -r 289fda98debf -r e4c8cfe1228d .hgtags
--- a/.hgtags Thu Oct 02 00:41:53 2014 +0100
+++ b/.hgtags Tue Oct 14 21:12:20 2014 +0100
@@ -491,3 +491,4 @@
06663e4cfbbeade300222eeae55856940b2ffbee icedtea-2.5.2
1d178f96bc11a65290eb4787edbca3c08c83a4f4 icedtea-2.5.3pre01
090fc686cf0b453298269f96ae04fa8f35a42d7f icedtea-2.5.3pre02
+4aed5efcd8df5f5d8aaf771d75dadfebbf89cf10 icedtea-2.5.3
diff -r 289fda98debf -r e4c8cfe1228d src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_ja.properties
--- a/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_ja.properties Thu Oct 02 00:41:53 2014 +0100
+++ b/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_ja.properties Tue Oct 14 21:12:20 2014 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2000, 2014, 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
@@ -95,7 +95,7 @@
bootstrap.exception=\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u30D5\u30A1\u30A4\u30EB{0}\u306B\u4FDD\u5B58\u4E2D\u306B\u4F8B\u5916\u3092\u6355\u6349\u3057\u307E\u3057\u305F: \u4F8B\u5916{1}
tnameserv.exception=\u30DD\u30FC\u30C8{0}\u3067\u30D6\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D7\u30FB\u30B5\u30FC\u30D3\u30B9\u3092\u8D77\u52D5\u4E2D\u306B\u4F8B\u5916\u3092\u6355\u6349\u3057\u307E\u3057\u305F
-tnameserv.usage=\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u5F15\u6570-ORBInitialPort\u3092\u4F7F\u7528\u3057\u3066\u5225\u306E\u30DD\u30FC\u30C8\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044
+tnameserv.usage=\u30B3\u30DE\u30F3\u30C9\u884C\u5F15\u6570-ORBInitialPort\u3092\u4F7F\u7528\u3057\u3066\u5225\u306E\u30DD\u30FC\u30C8\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044
tnameserv.invalidhostoption=ORBInitialHost\u306FNameService\u306B\u6709\u52B9\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u306F\u3042\u308A\u307E\u305B\u3093
tnameserv.orbinitialport0=ORBInitialPort 0\u306FNameService\u306B\u6709\u52B9\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u306F\u3042\u308A\u307E\u305B\u3093
tnameserv.hs1=\u521D\u671F\u30CD\u30FC\u30DF\u30F3\u30B0\u30FB\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8:\n{0}
From andrew at icedtea.classpath.org Tue Oct 14 20:13:32 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Tue, 14 Oct 2014 20:13:32 +0000
Subject: /hg/release/icedtea7-forest-2.5/jaxp: 2 new changesets
Message-ID:
changeset c903902aadd7 in /hg/release/icedtea7-forest-2.5/jaxp
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jaxp?cmd=changeset;node=c903902aadd7
author: aefimov
date: Tue May 13 01:18:02 2014 +0400
8039533: Higher resolution resolvers
Reviewed-by: joehw
changeset 1300e3d3022b in /hg/release/icedtea7-forest-2.5/jaxp
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jaxp?cmd=changeset;node=1300e3d3022b
author: andrew
date: Tue Oct 14 21:12:22 2014 +0100
Added tag icedtea-2.5.3 for changeset c903902aadd7
diffstat:
.hgtags | 1 +
src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java | 4 +-
src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java | 18 +++++++++-
3 files changed, 20 insertions(+), 3 deletions(-)
diffs (79 lines):
diff -r fe67f260d065 -r 1300e3d3022b .hgtags
--- a/.hgtags Thu Oct 02 00:41:54 2014 +0100
+++ b/.hgtags Tue Oct 14 21:12:22 2014 +0100
@@ -492,3 +492,4 @@
d77720c6a36f0b9c995e47badb8efddd0e8f2021 icedtea-2.5.2
771d2a0e90aef31fd70a2eda48b2d1aff8c15101 icedtea-2.5.3pre01
a4e4e763970f6ac7f39892491cfcde2f6e182a1e icedtea-2.5.3pre02
+c903902aadd72d7fdc9bd7904c30eb3a1c6129c1 icedtea-2.5.3
diff -r fe67f260d065 -r 1300e3d3022b src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java
--- a/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java Thu Oct 02 00:41:54 2014 +0100
+++ b/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java Tue Oct 14 21:12:22 2014 +0100
@@ -612,9 +612,9 @@
//fElementStack2.clear();
//fReplaceEntityReferences = true;
//fSupportExternalEntities = true;
- Boolean bo = (Boolean)propertyManager.getProperty(XMLInputFactoryImpl.IS_REPLACING_ENTITY_REFERENCES);
+ Boolean bo = (Boolean)propertyManager.getProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES);
fReplaceEntityReferences = bo.booleanValue();
- bo = (Boolean)propertyManager.getProperty(XMLInputFactoryImpl.IS_SUPPORTING_EXTERNAL_ENTITIES);
+ bo = (Boolean)propertyManager.getProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES);
fSupportExternalEntities = bo.booleanValue();
Boolean cdata = (Boolean)propertyManager.getProperty(Constants.ZEPHYR_PROPERTY_PREFIX + Constants.STAX_REPORT_CDATA_EVENT) ;
if(cdata != null)
diff -r fe67f260d065 -r 1300e3d3022b src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java
--- a/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java Thu Oct 02 00:41:54 2014 +0100
+++ b/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java Tue Oct 14 21:12:22 2014 +0100
@@ -50,6 +50,7 @@
import java.util.Map;
import java.util.Stack;
import javax.xml.XMLConstants;
+import javax.xml.stream.XMLInputFactory;
/**
@@ -302,6 +303,11 @@
/** Property Manager. This is used from Stax */
protected PropertyManager fPropertyManager ;
+ /** StAX properties */
+ boolean fSupportDTD = true;
+ boolean fReplaceEntityReferences = true;
+ boolean fSupportExternalEntities = true;
+
/** used to restrict external access */
protected String fAccessExternalDTD = EXTERNAL_ACCESS_DEFAULT;
@@ -1133,7 +1139,8 @@
boolean parameter = entityName.startsWith("%");
boolean general = !parameter;
if (unparsed || (general && !fExternalGeneralEntities) ||
- (parameter && !fExternalParameterEntities)) {
+ (parameter && !fExternalParameterEntities) ||
+ !fSupportDTD || !fSupportExternalEntities) {
if (fEntityHandler != null) {
fResourceIdentifier.clear();
@@ -1428,6 +1435,10 @@
fStaxEntityResolver = null;
}
+ fSupportDTD = ((Boolean)propertyManager.getProperty(XMLInputFactory.SUPPORT_DTD)).booleanValue();
+ fReplaceEntityReferences = ((Boolean)propertyManager.getProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES)).booleanValue();
+ fSupportExternalEntities = ((Boolean)propertyManager.getProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES)).booleanValue();
+
// Zephyr feature ignore-external-dtd is the opposite of Xerces' load-external-dtd
fLoadExternalDTD = !((Boolean)propertyManager.getProperty(Constants.ZEPHYR_PROPERTY_PREFIX + Constants.IGNORE_EXTERNAL_DTD)).booleanValue();
@@ -1499,6 +1510,11 @@
fSecurityManager = (XMLSecurityManager)componentManager.getProperty(SECURITY_MANAGER, null);
entityExpansionIndex = fSecurityManager.getIndex(Constants.JDK_ENTITY_EXPANSION_LIMIT);
+ //StAX Property
+ fSupportDTD = true;
+ fReplaceEntityReferences = true;
+ fSupportExternalEntities = true;
+
// JAXP 1.5 feature
XMLSecurityPropertyManager spm = (XMLSecurityPropertyManager) componentManager.getProperty(XML_SECURITY_PROPERTY_MANAGER, null);
if (spm == null) {
From andrew at icedtea.classpath.org Tue Oct 14 20:13:39 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Tue, 14 Oct 2014 20:13:39 +0000
Subject: /hg/release/icedtea7-forest-2.5/jaxws: Added tag icedtea-2.5.3 f...
Message-ID:
changeset fead061fb77e in /hg/release/icedtea7-forest-2.5/jaxws
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jaxws?cmd=changeset;node=fead061fb77e
author: andrew
date: Tue Oct 14 21:12:23 2014 +0100
Added tag icedtea-2.5.3 for changeset d3bef5fd93db
diffstat:
.hgtags | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diffs (8 lines):
diff -r d3bef5fd93db -r fead061fb77e .hgtags
--- a/.hgtags Thu Oct 02 00:41:55 2014 +0100
+++ b/.hgtags Tue Oct 14 21:12:23 2014 +0100
@@ -491,3 +491,4 @@
aac78bd724c437cefd9ba8abb280df34609ca936 icedtea-2.5.2
c46dd3a579f036318ca043387f4619aa2a3a0f33 icedtea-2.5.3pre01
dcb5afbd4d7d074ecb061600d6fe82254dde666d icedtea-2.5.3pre02
+d3bef5fd93db993b19f8d2ff400056960e43f90c icedtea-2.5.3
From andrew at icedtea.classpath.org Tue Oct 14 20:13:45 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Tue, 14 Oct 2014 20:13:45 +0000
Subject: /hg/release/icedtea7-forest-2.5/langtools: 2 new changesets
Message-ID:
changeset a64b8bf851a9 in /hg/release/icedtea7-forest-2.5/langtools
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/langtools?cmd=changeset;node=a64b8bf851a9
author: mfang
date: Mon Aug 18 10:33:38 2014 -0700
8055176: 7u71 l10n resource file translation update
Reviewed-by: yhuang
changeset 1f5464e275ba in /hg/release/icedtea7-forest-2.5/langtools
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/langtools?cmd=changeset;node=1f5464e275ba
author: andrew
date: Tue Oct 14 21:12:30 2014 +0100
Added tag icedtea-2.5.3 for changeset a64b8bf851a9
diffstat:
.hgtags | 1 +
src/share/classes/com/sun/tools/javac/resources/compiler_ja.properties | 8 ++--
src/share/classes/com/sun/tools/javac/resources/javac_ja.properties | 4 +-
src/share/classes/com/sun/tools/javadoc/resources/javadoc_ja.properties | 4 +-
src/share/classes/com/sun/tools/javah/resources/l10n_ja.properties | 16 +++++-----
src/share/classes/com/sun/tools/javap/resources/javap_ja.properties | 2 +-
6 files changed, 18 insertions(+), 17 deletions(-)
diffs (122 lines):
diff -r 331bd0e2b339 -r 1f5464e275ba .hgtags
--- a/.hgtags Thu Oct 02 00:42:03 2014 +0100
+++ b/.hgtags Tue Oct 14 21:12:30 2014 +0100
@@ -491,3 +491,4 @@
f444e2a7764393fa62cc1ec9dcaa3a9f7ebbc551 icedtea-2.5.2
fe8926c95af9d3c2cd4b1b6a6e107edbd52542cd icedtea-2.5.3pre01
0e3fd42f269632e424acb551b67565e4d21b464f icedtea-2.5.3pre02
+a64b8bf851a9128a3eb785e5c9d0757f8c5c9470 icedtea-2.5.3
diff -r 331bd0e2b339 -r 1f5464e275ba src/share/classes/com/sun/tools/javac/resources/compiler_ja.properties
--- a/src/share/classes/com/sun/tools/javac/resources/compiler_ja.properties Thu Oct 02 00:42:03 2014 +0100
+++ b/src/share/classes/com/sun/tools/javac/resources/compiler_ja.properties Tue Oct 14 21:12:30 2014 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2014, 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
@@ -98,11 +98,11 @@
compiler.err.annotation.value.not.allowable.type=\u4F7F\u7528\u3067\u304D\u306A\u3044\u578B\u306E\u6CE8\u91C8\u306E\u5024\u3067\u3059
-compiler.err.anon.class.impl.intf.no.args=\u540D\u524D\u306E\u306A\u3044\u30AF\u30E9\u30B9\u304C\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3092\u5B9F\u88C5\u3057\u3066\u3044\u307E\u3059\u3002\u5F15\u6570\u3092\u6301\u3064\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093
+compiler.err.anon.class.impl.intf.no.args=\u533F\u540D\u30AF\u30E9\u30B9\u304C\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3092\u5B9F\u88C5\u3057\u3066\u3044\u307E\u3059\u3002\u5F15\u6570\u3092\u6301\u3064\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093
-compiler.err.anon.class.impl.intf.no.typeargs=\u540D\u524D\u306E\u306A\u3044\u30AF\u30E9\u30B9\u304C\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3092\u5B9F\u88C5\u3057\u3066\u3044\u307E\u3059\u3002\u578B\u5F15\u6570\u3092\u6301\u3064\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093
+compiler.err.anon.class.impl.intf.no.typeargs=\u533F\u540D\u30AF\u30E9\u30B9\u304C\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3092\u5B9F\u88C5\u3057\u3066\u3044\u307E\u3059\u3002\u578B\u5F15\u6570\u3092\u6301\u3064\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093
-compiler.err.anon.class.impl.intf.no.qual.for.new=\u540D\u524D\u306E\u306A\u3044\u30AF\u30E9\u30B9\u304C\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3092\u5B9F\u88C5\u3057\u3066\u3044\u307E\u3059\u3002new\u306B\u4FEE\u98FE\u5B50\u3092\u6301\u3064\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002
+compiler.err.anon.class.impl.intf.no.qual.for.new=\u533F\u540D\u30AF\u30E9\u30B9\u304C\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3092\u5B9F\u88C5\u3057\u3066\u3044\u307E\u3059\u3002new\u306B\u4FEE\u98FE\u5B50\u3092\u6301\u3064\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002
# 0: symbol, 1: symbol, 2: symbol
compiler.err.array.and.varargs={2}\u3067{0}\u3068{1}\u306E\u4E21\u65B9\u3092\u5BA3\u8A00\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093
diff -r 331bd0e2b339 -r 1f5464e275ba src/share/classes/com/sun/tools/javac/resources/javac_ja.properties
--- a/src/share/classes/com/sun/tools/javac/resources/javac_ja.properties Thu Oct 02 00:42:03 2014 +0100
+++ b/src/share/classes/com/sun/tools/javac/resources/javac_ja.properties Tue Oct 14 21:12:30 2014 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2014, 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
@@ -115,7 +115,7 @@
javac.msg.usage.nonstandard.footer=\u3053\u308C\u3089\u306F\u975E\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u3042\u308A\u4E88\u544A\u306A\u3057\u306B\u5909\u66F4\u3055\u308C\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002
-javac.msg.bug=\u30B3\u30F3\u30D1\u30A4\u30E9\u3067\u4F8B\u5916\u304C\u767A\u751F\u3057\u307E\u3057\u305F({0})\u3002Bug Parade\u306B\u540C\u3058\u30D0\u30B0\u304C\u767B\u9332\u3055\u308C\u3066\u3044\u306A\u3044\u3053\u3068\u3092\u3054\u78BA\u8A8D\u306E\u4E0A\u3001Java Developer Connection (http://java.sun.com/webapps/bugreport)\u3067\u30D0\u30B0\u306E\u767B\u9332\u3092\u304A\u9858\u3044\u3044\u305F\u3057\u307E\u3059\u3002\u30EC\u30DD\u30FC\u30C8\u306B\u306F\u3001\u305D\u306E\u30D7\u30ED\u30B0\u30E9\u30E0\u3068\u4E0B\u8A18\u306E\u8A3A\u65AD\u5185\u5BB9\u3092\u542B\u3081\u3066\u304F\u3060\u3055\u3044\u3002\u3054\u5354\u529B\u3042\u308A\u304C\u3068\u3046\u3054\u3056\u3044\u307E\u3059\u3002
+javac.msg.bug=\u30B3\u30F3\u30D1\u30A4\u30E9\u3067\u4F8B\u5916\u304C\u767A\u751F\u3057\u307E\u3057\u305F({0})\u3002Bug Parade\u3067\u91CD\u8907\u304C\u306A\u3044\u304B\u3092\u3054\u78BA\u8A8D\u306E\u3046\u3048\u3001Java Developer Connection (http://java.sun.com/webapps/bugreport)\u3067bug\u306E\u767B\u9332\u3092\u304A\u9858\u3044\u3044\u305F\u3057\u307E\u3059\u3002\u30EC\u30DD\u30FC\u30C8\u306B\u306F\u3001\u305D\u306E\u30D7\u30ED\u30B0\u30E9\u30E0\u3068\u4E0B\u8A18\u306E\u8A3A\u65AD\u5185\u5BB9\u3092\u542B\u3081\u3066\u304F\u3060\u3055\u3044\u3002\u3054\u5354\u529B\u3042\u308A\u304C\u3068\u3046\u3054\u3056\u3044\u307E\u3059\u3002
javac.msg.io=\n\n\u5165\u51FA\u529B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\n\u8A73\u7D30\u306F\u6B21\u306E\u30B9\u30BF\u30C3\u30AF\u30FB\u30C8\u30EC\u30FC\u30B9\u3067\u8ABF\u67FB\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n
diff -r 331bd0e2b339 -r 1f5464e275ba src/share/classes/com/sun/tools/javadoc/resources/javadoc_ja.properties
--- a/src/share/classes/com/sun/tools/javadoc/resources/javadoc_ja.properties Thu Oct 02 00:42:03 2014 +0100
+++ b/src/share/classes/com/sun/tools/javadoc/resources/javadoc_ja.properties Tue Oct 14 21:12:30 2014 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2014, 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
@@ -31,7 +31,7 @@
main.Xusage=-Xmaxerrs \u51FA\u529B\u3059\u308B\u30A8\u30E9\u30FC\u306E\u6700\u5927\u6570\u3092\u8A2D\u5B9A\u3059\u308B\n-Xmaxwarns \u51FA\u529B\u3059\u308B\u8B66\u544A\u306E\u6700\u5927\u6570\u3092\u8A2D\u5B9A\u3059\u308B\n\n\u3053\u308C\u3089\u306F\u975E\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u3042\u308A\u4E88\u544A\u306A\u3057\u306B\u5909\u66F4\u3055\u308C\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002
main.option.already.seen={0}\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u8907\u6570\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059\u3002
main.requires_argument=\u30AA\u30D7\u30B7\u30E7\u30F3{0}\u306B\u306F\u5F15\u6570\u304C\u5FC5\u8981\u3067\u3059\u3002
-main.locale_first=\u30AA\u30D7\u30B7\u30E7\u30F3-locale\u306F\u3001\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u306E\u6700\u521D\u306B\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+main.locale_first=\u30AA\u30D7\u30B7\u30E7\u30F3-locale\u306F\u3001\u30B3\u30DE\u30F3\u30C9\u884C\u306E\u6700\u521D\u306B\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
main.invalid_flag={0}\u306F\u7121\u52B9\u306A\u30D5\u30E9\u30B0\u3067\u3059
main.No_packages_or_classes_specified=\u30D1\u30C3\u30B1\u30FC\u30B8\u307E\u305F\u306F\u30AF\u30E9\u30B9\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
main.incompatible.access.flags=-public\u3001-private\u3001-package\u307E\u305F\u306F-protected\u306E\u3046\u3061\u306E2\u3064\u4EE5\u4E0A\u3092\u6307\u5B9A\u3057\u307E\u3057\u305F\u3002
diff -r 331bd0e2b339 -r 1f5464e275ba src/share/classes/com/sun/tools/javah/resources/l10n_ja.properties
--- a/src/share/classes/com/sun/tools/javah/resources/l10n_ja.properties Thu Oct 02 00:42:03 2014 +0100
+++ b/src/share/classes/com/sun/tools/javah/resources/l10n_ja.properties Tue Oct 14 21:12:30 2014 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1998, 2014, 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
@@ -27,9 +27,9 @@
# User errors, command line errors.
#
cant.create.dir=\u51FA\u529B\u7528\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA{0}\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3002
-at.args.cant.read=\u30D5\u30A1\u30A4\u30EB{1}\u304B\u3089\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u5F15\u6570\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093\u3002
+at.args.cant.read=\u30D5\u30A1\u30A4\u30EB{1}\u304B\u3089\u30B3\u30DE\u30F3\u30C9\u884C\u5F15\u6570\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093\u3002
at.args.file.not.found=\u30D5\u30A1\u30A4\u30EB{0}\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002
-at.args.io.exception=\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u306E@\u5F15\u6570\u306E\u51E6\u7406\u4E2D\u306B\u3001\u6B21\u306E\u5165\u51FA\u529B\u306E\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F: {0}\u3002
+at.args.io.exception=\u30B3\u30DE\u30F3\u30C9\u884C\u306E@\u5F15\u6570\u306E\u51E6\u7406\u4E2D\u306B\u3001\u6B21\u306E\u5165\u51FA\u529B\u306E\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F: {0}\u3002
old.jni.mixed=\u30AA\u30D7\u30B7\u30E7\u30F3-jni\u3068-old\u3092\u540C\u6642\u306B\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002-help\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
old.llni.mixed=\u30AA\u30D7\u30B7\u30E7\u30F3-old\u3068-llni\u3092\u540C\u6642\u306B\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002-help\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
old.not.supported=\u3053\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306Ejavah\u3067\u306F\u30AA\u30D7\u30B7\u30E7\u30F3-old\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
@@ -38,11 +38,11 @@
jni.no.stubs=JNI\u306F\u30B9\u30BF\u30D6\u3092\u5FC5\u8981\u3068\u3057\u307E\u305B\u3093\u3002JNI\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002
jni.sigerror={0}\u306E\u30B7\u30B0\u30CD\u30C1\u30E3\u3092\u5224\u5225\u3067\u304D\u307E\u305B\u3093
dir.file.mixed=\u30AA\u30D7\u30B7\u30E7\u30F3-d\u3068-o\u3092\u540C\u6642\u306B\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002-help\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
-no.classes.specified=\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u3067\u30AF\u30E9\u30B9\u304C\u6307\u5B9A\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002-help\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
-no.outputfile.specified=\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u3067\u51FA\u529B\u30D5\u30A1\u30A4\u30EB\u304C\u6307\u5B9A\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002-help\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
-no.outputdir.specified=\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u3067\u51FA\u529B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304C\u6307\u5B9A\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002-help\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
-no.classpath.specified=\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u3067\u30AF\u30E9\u30B9\u30D1\u30B9\u304C\u6307\u5B9A\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002-help\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
-no.bootclasspath.specified=\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u3067\u30D6\u30FC\u30C8\u30FB\u30AF\u30E9\u30B9\u30D1\u30B9\u304C\u6307\u5B9A\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002-help\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
+no.classes.specified=\u30B3\u30DE\u30F3\u30C9\u884C\u3067\u30AF\u30E9\u30B9\u304C\u6307\u5B9A\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002-help\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
+no.outputfile.specified=\u30B3\u30DE\u30F3\u30C9\u884C\u3067\u51FA\u529B\u30D5\u30A1\u30A4\u30EB\u304C\u6307\u5B9A\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002-help\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
+no.outputdir.specified=\u30B3\u30DE\u30F3\u30C9\u884C\u3067\u51FA\u529B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304C\u6307\u5B9A\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002-help\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
+no.classpath.specified=\u30B3\u30DE\u30F3\u30C9\u884C\u3067\u30AF\u30E9\u30B9\u30D1\u30B9\u304C\u6307\u5B9A\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002-help\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
+no.bootclasspath.specified=\u30B3\u30DE\u30F3\u30C9\u884C\u3067\u30D6\u30FC\u30C8\u30FB\u30AF\u30E9\u30B9\u30D1\u30B9\u304C\u6307\u5B9A\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002-help\u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
unknown.option={0}\u306F\u4E0D\u6B63\u306A\u5F15\u6570\u3067\u3059\n
tracing.not.supported=\u8B66\u544A: \u30C8\u30EC\u30FC\u30B9\u306F\u73FE\u5728\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u304B\u308F\u308A\u306B\u3001Virtual Machine\u306E-verbose:jni\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002
diff -r 331bd0e2b339 -r 1f5464e275ba src/share/classes/com/sun/tools/javap/resources/javap_ja.properties
--- a/src/share/classes/com/sun/tools/javap/resources/javap_ja.properties Thu Oct 02 00:42:03 2014 +0100
+++ b/src/share/classes/com/sun/tools/javap/resources/javap_ja.properties Tue Oct 14 21:12:30 2014 +0100
@@ -3,7 +3,7 @@
err.bad.constant.pool={0}\u306E\u5B9A\u6570\u30D7\u30FC\u30EB\u306E\u8AAD\u53D6\u308A\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F: {1}
err.class.not.found=\u30AF\u30E9\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {0}
-err.crash=\u91CD\u5927\u306A\u5185\u90E8\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F: {0}\n\u6B21\u306E\u60C5\u5831\u3092\u542B\u3080\u30D0\u30B0\u30FB\u30EC\u30DD\u30FC\u30C8\u3092\u30D5\u30A1\u30A4\u30EB\u3057\u3066\u304F\u3060\u3055\u3044:\n{1}
+err.crash=\u91CD\u5927\u306A\u5185\u90E8\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F: {0}\n\u6B21\u306E\u60C5\u5831\u3092\u542B\u3080bug\u30EC\u30DD\u30FC\u30C8\u3092\u30D5\u30A1\u30A4\u30EB\u3057\u3066\u304F\u3060\u3055\u3044:\n{1}
err.end.of.file={0}\u306E\u8AAD\u53D6\u308A\u4E2D\u306B\u4E88\u671F\u3057\u306A\u3044\u30D5\u30A1\u30A4\u30EB\u306E\u7D42\u308F\u308A\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F
err.file.not.found=\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {0}
err.h.not.supported=-h\u306F\u4F7F\u7528\u53EF\u80FD\u3067\u306A\u304F\u306A\u308A\u307E\u3057\u305F - 'javah'\u30D7\u30ED\u30B0\u30E9\u30E0\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044
From andrew at icedtea.classpath.org Tue Oct 14 20:13:54 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Tue, 14 Oct 2014 20:13:54 +0000
Subject: /hg/release/icedtea7-forest-2.5/hotspot: 8 new changesets
Message-ID:
changeset 22fb9f5381f8 in /hg/release/icedtea7-forest-2.5/hotspot
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/hotspot?cmd=changeset;node=22fb9f5381f8
author: sgabdura
date: Wed May 21 08:20:28 2014 +0200
8015256: Better class accessibility
Summary: Improve protection domain check in forName()
Reviewed-by: coleenp, mchung, acorn, jdn
changeset 8ac7269c0c35 in /hg/release/icedtea7-forest-2.5/hotspot
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/hotspot?cmd=changeset;node=8ac7269c0c35
author: andrew
date: Thu Oct 02 02:06:09 2014 +0100
8022783: Optimize C2 optimizations
Reviewed-by: kvn, twisti
Original-by: adlertz
changeset 06368453578a in /hg/release/icedtea7-forest-2.5/hotspot
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/hotspot?cmd=changeset;node=06368453578a
author: sgabdura
date: Fri Apr 25 08:46:51 2014 +0200
8036805: Correct linker method lookup.
8036810: Correct linker field lookup
Summary: Correct handling of array of primitive type qualifiers during field and method resolution.
Reviewed-by: lfoltan
changeset cf79e029706a in /hg/release/icedtea7-forest-2.5/hotspot
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/hotspot?cmd=changeset;node=cf79e029706a
author: twisti
date: Fri Apr 18 17:05:33 2014 -1000
8038899: Safer safepoints
Reviewed-by: kvn, ahgross
changeset 585e9d9562f4 in /hg/release/icedtea7-forest-2.5/hotspot
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/hotspot?cmd=changeset;node=585e9d9562f4
author: vkempik
date: Wed Jun 18 18:30:08 2014 +0200
8038903: More native monitor monitoring
Summary: Moved ntive monitor monitoring flags to experimental
Reviewed-by: zgu
changeset 5c1fa981c640 in /hg/release/icedtea7-forest-2.5/hotspot
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/hotspot?cmd=changeset;node=5c1fa981c640
author: hseigel
date: Fri May 30 13:38:44 2014 -0400
8041717: Issue with class file parser
Summary: Add better checking for bad values.
Reviewed-by: coleenp, lfoltan, mschoene
changeset 1d0d98e7c981 in /hg/release/icedtea7-forest-2.5/hotspot
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/hotspot?cmd=changeset;node=1d0d98e7c981
author: twisti
date: Tue May 20 19:50:38 2014 -0700
8042603: 'SafepointPollOffset' was not declared in static member function 'static bool Arguments::check_vm_args_consistency()'
Reviewed-by: kvn
changeset 4dc4b096589a in /hg/release/icedtea7-forest-2.5/hotspot
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/hotspot?cmd=changeset;node=4dc4b096589a
author: andrew
date: Tue Oct 14 21:12:32 2014 +0100
Added tag icedtea-2.5.3 for changeset 1d0d98e7c981
diffstat:
.hgtags | 1 +
make/bsd/makefiles/mapfile-vers-debug | 3 +-
make/bsd/makefiles/mapfile-vers-product | 3 +-
make/linux/makefiles/mapfile-vers-debug | 3 +-
make/linux/makefiles/mapfile-vers-product | 3 +-
make/solaris/makefiles/mapfile-vers | 3 +-
src/share/vm/adlc/formssel.cpp | 6 ---
src/share/vm/classfile/classFileParser.cpp | 6 ++-
src/share/vm/interpreter/linkResolver.cpp | 51 +++++++++++++++++------------
src/share/vm/oops/arrayKlass.cpp | 9 ++++-
src/share/vm/oops/arrayKlass.hpp | 7 +++-
src/share/vm/oops/klass.cpp | 11 +++++-
src/share/vm/oops/klass.hpp | 4 +-
src/share/vm/opto/reg_split.cpp | 21 ++++--------
src/share/vm/prims/jvm.cpp | 48 ++++++++++++++++++++++++++-
src/share/vm/prims/jvm.h | 15 ++++++++-
src/share/vm/runtime/arguments.cpp | 4 ++
src/share/vm/runtime/globals.hpp | 8 ++-
18 files changed, 148 insertions(+), 58 deletions(-)
diffs (truncated from 533 to 500 lines):
diff -r ec692ec8cf82 -r 4dc4b096589a .hgtags
--- a/.hgtags Thu Oct 02 00:43:17 2014 +0100
+++ b/.hgtags Tue Oct 14 21:12:32 2014 +0100
@@ -711,3 +711,4 @@
4ad43b271fd439317ec422b5ea35ea3483d40922 icedtea-2.5.2
9f719e4c80af23dc6574df3e431ad85c29a1937d icedtea-2.5.3pre01
7ce2690d2182cf6643b9860cdd64cc0c7ed72826 icedtea-2.5.3pre02
+1d0d98e7c98104a48513aa684b85e5dfdf77c7f0 icedtea-2.5.3
diff -r ec692ec8cf82 -r 4dc4b096589a make/bsd/makefiles/mapfile-vers-debug
--- a/make/bsd/makefiles/mapfile-vers-debug Thu Oct 02 00:43:17 2014 +0100
+++ b/make/bsd/makefiles/mapfile-vers-debug Tue Oct 14 21:12:32 2014 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2002, 2014, 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
@@ -82,6 +82,7 @@
_JVM_EnableCompiler
_JVM_Exit
_JVM_FillInStackTrace
+ _JVM_FindClassFromCaller
_JVM_FindClassFromClass
_JVM_FindClassFromClassLoader
_JVM_FindClassFromBootLoader
diff -r ec692ec8cf82 -r 4dc4b096589a make/bsd/makefiles/mapfile-vers-product
--- a/make/bsd/makefiles/mapfile-vers-product Thu Oct 02 00:43:17 2014 +0100
+++ b/make/bsd/makefiles/mapfile-vers-product Tue Oct 14 21:12:32 2014 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2002, 2014, 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
@@ -82,6 +82,7 @@
_JVM_EnableCompiler
_JVM_Exit
_JVM_FillInStackTrace
+ _JVM_FindClassFromCaller
_JVM_FindClassFromClass
_JVM_FindClassFromClassLoader
_JVM_FindClassFromBootLoader
diff -r ec692ec8cf82 -r 4dc4b096589a make/linux/makefiles/mapfile-vers-debug
--- a/make/linux/makefiles/mapfile-vers-debug Thu Oct 02 00:43:17 2014 +0100
+++ b/make/linux/makefiles/mapfile-vers-debug Tue Oct 14 21:12:32 2014 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2002, 2014, 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
@@ -84,6 +84,7 @@
JVM_EnableCompiler;
JVM_Exit;
JVM_FillInStackTrace;
+ JVM_FindClassFromCaller;
JVM_FindClassFromClass;
JVM_FindClassFromClassLoader;
JVM_FindClassFromBootLoader;
diff -r ec692ec8cf82 -r 4dc4b096589a make/linux/makefiles/mapfile-vers-product
--- a/make/linux/makefiles/mapfile-vers-product Thu Oct 02 00:43:17 2014 +0100
+++ b/make/linux/makefiles/mapfile-vers-product Tue Oct 14 21:12:32 2014 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2002, 2014, 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
@@ -84,6 +84,7 @@
JVM_EnableCompiler;
JVM_Exit;
JVM_FillInStackTrace;
+ JVM_FindClassFromCaller;
JVM_FindClassFromClass;
JVM_FindClassFromClassLoader;
JVM_FindClassFromBootLoader;
diff -r ec692ec8cf82 -r 4dc4b096589a make/solaris/makefiles/mapfile-vers
--- a/make/solaris/makefiles/mapfile-vers Thu Oct 02 00:43:17 2014 +0100
+++ b/make/solaris/makefiles/mapfile-vers Tue Oct 14 21:12:32 2014 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2000, 2014, 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
@@ -84,6 +84,7 @@
JVM_EnableCompiler;
JVM_Exit;
JVM_FillInStackTrace;
+ JVM_FindClassFromCaller;
JVM_FindClassFromClass;
JVM_FindClassFromClassLoader;
JVM_FindClassFromBootLoader;
diff -r ec692ec8cf82 -r 4dc4b096589a src/share/vm/adlc/formssel.cpp
--- a/src/share/vm/adlc/formssel.cpp Thu Oct 02 00:43:17 2014 +0100
+++ b/src/share/vm/adlc/formssel.cpp Tue Oct 14 21:12:32 2014 +0100
@@ -565,12 +565,6 @@
attr = (Attribute *)attr->_next;
}
- // Ugly: until a better fix is implemented, disable rematerialization for
- // negD nodes because they are proved to be problematic.
- if (is_ideal_negD()) {
- return false;
- }
-
// Constants
if( _components.count() == 1 && _components[0]->is(Component::USE_DEF) )
rematerialize = true;
diff -r ec692ec8cf82 -r 4dc4b096589a src/share/vm/classfile/classFileParser.cpp
--- a/src/share/vm/classfile/classFileParser.cpp Thu Oct 02 00:43:17 2014 +0100
+++ b/src/share/vm/classfile/classFileParser.cpp Tue Oct 14 21:12:32 2014 +0100
@@ -2721,6 +2721,11 @@
"bootstrap_method_index %u has bad constant type in class file %s",
bootstrap_method_index,
CHECK);
+
+ guarantee_property((operand_fill_index + 1 + argument_count) < operands->length(),
+ "Invalid BootstrapMethods num_bootstrap_methods or num_bootstrap_arguments value in class file %s",
+ CHECK);
+
operands->short_at_put(operand_fill_index++, bootstrap_method_index);
operands->short_at_put(operand_fill_index++, argument_count);
@@ -2738,7 +2743,6 @@
}
assert(operand_fill_index == operands()->length(), "exact fill");
- assert(constantPoolOopDesc::operand_array_length(operands()) == attribute_array_length, "correct decode");
u1* current_end = cfs->current();
guarantee_property(current_end == current_start + attribute_byte_length,
diff -r ec692ec8cf82 -r 4dc4b096589a src/share/vm/interpreter/linkResolver.cpp
--- a/src/share/vm/interpreter/linkResolver.cpp Thu Oct 02 00:43:17 2014 +0100
+++ b/src/share/vm/interpreter/linkResolver.cpp Tue Oct 14 21:12:32 2014 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, 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
@@ -190,6 +190,14 @@
void LinkResolver::lookup_method_in_klasses(methodHandle& result, KlassHandle klass, Symbol* name, Symbol* signature, TRAPS) {
methodOop result_oop = klass->uncached_lookup_method(name, signature);
+
+ //JDK 7 does not support default methods, but this code ported from JDK8 to keep code consistent for all JDK.
+ if (klass->oop_is_array()) {
+ // Only consider klass and super klass for arrays
+ result = methodHandle(THREAD, result_oop);
+ return;
+ }
+
if (EnableInvokeDynamic && result_oop != NULL) {
vmIntrinsics::ID iid = result_oop->intrinsic_id();
if (MethodHandles::is_signature_polymorphic(iid)) {
@@ -424,7 +432,7 @@
// 2. lookup method in resolved klass and its super klasses
lookup_method_in_klasses(resolved_method, resolved_klass, method_name, method_signature, CHECK);
- if (resolved_method.is_null()) { // not found in the class hierarchy
+ if (resolved_method.is_null() && !resolved_klass->oop_is_array()) { // not found in the class hierarchy
// 3. lookup method in all the interfaces implemented by the resolved klass
lookup_method_in_interfaces(resolved_method, resolved_klass, method_name, method_signature, CHECK);
@@ -437,16 +445,16 @@
CLEAR_PENDING_EXCEPTION;
}
}
+ }
- if (resolved_method.is_null()) {
- // 4. method lookup failed
- ResourceMark rm(THREAD);
- THROW_MSG_CAUSE(vmSymbols::java_lang_NoSuchMethodError(),
- methodOopDesc::name_and_sig_as_C_string(Klass::cast(resolved_klass()),
- method_name,
- method_signature),
- nested_exception);
- }
+ if (resolved_method.is_null()) {
+ // 4. method lookup failed
+ ResourceMark rm(THREAD);
+ THROW_MSG_CAUSE(vmSymbols::java_lang_NoSuchMethodError(),
+ methodOopDesc::name_and_sig_as_C_string(Klass::cast(resolved_klass()),
+ method_name,
+ method_signature),
+ nested_exception);
}
// 5. check if method is concrete
@@ -517,17 +525,18 @@
// lookup method in this interface or its super, java.lang.Object
lookup_instance_method_in_klasses(resolved_method, resolved_klass, method_name, method_signature, CHECK);
- if (resolved_method.is_null()) {
+ if (resolved_method.is_null() && !resolved_klass->oop_is_array()) {
// lookup method in all the super-interfaces
lookup_method_in_interfaces(resolved_method, resolved_klass, method_name, method_signature, CHECK);
- if (resolved_method.is_null()) {
- // no method found
- ResourceMark rm(THREAD);
- THROW_MSG(vmSymbols::java_lang_NoSuchMethodError(),
- methodOopDesc::name_and_sig_as_C_string(Klass::cast(resolved_klass()),
- method_name,
- method_signature));
- }
+ }
+
+ if (resolved_method.is_null()) {
+ // no method found
+ ResourceMark rm(THREAD);
+ THROW_MSG(vmSymbols::java_lang_NoSuchMethodError(),
+ methodOopDesc::name_and_sig_as_C_string(Klass::cast(resolved_klass()),
+ method_name,
+ method_signature));
}
if (check_access) {
@@ -617,7 +626,7 @@
// Resolve instance field
fieldDescriptor fd; // find_field initializes fd if found
- KlassHandle sel_klass(THREAD, instanceKlass::cast(resolved_klass())->find_field(field, sig, &fd));
+ KlassHandle sel_klass(THREAD, resolved_klass->find_field(field, sig, &fd));
// check if field exists; i.e., if a klass containing the field def has been selected
if (sel_klass.is_null()){
ResourceMark rm(THREAD);
diff -r ec692ec8cf82 -r 4dc4b096589a src/share/vm/oops/arrayKlass.cpp
--- a/src/share/vm/oops/arrayKlass.cpp Thu Oct 02 00:43:17 2014 +0100
+++ b/src/share/vm/oops/arrayKlass.cpp Tue Oct 14 21:12:32 2014 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, 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
@@ -64,6 +64,13 @@
return NULL;
}
+// find field according to JVM spec 5.4.3.2, returns the klass in which the field is defined
+klassOop arrayKlass::find_field(Symbol* name, Symbol* sig, fieldDescriptor* fd) const {
+ // There are no fields in an array klass but look to the super class (Object)
+ assert(super(), "super klass must be present");
+ return Klass::cast(super())->find_field(name, sig, fd);
+}
+
methodOop arrayKlass::uncached_lookup_method(Symbol* name, Symbol* signature) const {
// There are no methods in an array klass but the super class (Object) has some
assert(super(), "super klass must be present");
diff -r ec692ec8cf82 -r 4dc4b096589a src/share/vm/oops/arrayKlass.hpp
--- a/src/share/vm/oops/arrayKlass.hpp Thu Oct 02 00:43:17 2014 +0100
+++ b/src/share/vm/oops/arrayKlass.hpp Tue Oct 14 21:12:32 2014 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, 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
@@ -30,6 +30,8 @@
#include "oops/klassOop.hpp"
#include "oops/klassVtable.hpp"
+class fieldDescriptor;
+
// arrayKlass is the abstract baseclass for all array classes
class arrayKlass: public Klass {
@@ -83,6 +85,9 @@
virtual oop multi_allocate(int rank, jint* sizes, TRAPS);
objArrayOop allocate_arrayArray(int n, int length, TRAPS);
+ // find field according to JVM spec 5.4.3.2, returns the klass in which the field is defined
+ klassOop find_field(Symbol* name, Symbol* sig, fieldDescriptor* fd) const;
+
// Lookup operations
methodOop uncached_lookup_method(Symbol* name, Symbol* signature) const;
diff -r ec692ec8cf82 -r 4dc4b096589a src/share/vm/oops/klass.cpp
--- a/src/share/vm/oops/klass.cpp Thu Oct 02 00:43:17 2014 +0100
+++ b/src/share/vm/oops/klass.cpp Tue Oct 14 21:12:32 2014 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, 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
@@ -119,6 +119,15 @@
return is_subclass_of(k);
}
+klassOop Klass::find_field(Symbol* name, Symbol* sig, fieldDescriptor* fd) const {
+#ifdef ASSERT
+ tty->print_cr("Error: find_field called on a klass oop."
+ " Likely error: reflection method does not correctly"
+ " wrap return value in a mirror object.");
+#endif
+ ShouldNotReachHere();
+ return NULL;
+}
methodOop Klass::uncached_lookup_method(Symbol* name, Symbol* signature) const {
#ifdef ASSERT
diff -r ec692ec8cf82 -r 4dc4b096589a src/share/vm/oops/klass.hpp
--- a/src/share/vm/oops/klass.hpp Thu Oct 02 00:43:17 2014 +0100
+++ b/src/share/vm/oops/klass.hpp Tue Oct 14 21:12:32 2014 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, 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
@@ -88,6 +88,7 @@
class klassVtable;
class KlassHandle;
class OrderAccess;
+class fieldDescriptor;
// Holder (or cage) for the C++ vtable of each kind of Klass.
// We want to tightly constrain the location of the C++ vtable in the overall layout.
@@ -514,6 +515,7 @@
virtual void initialize(TRAPS);
// lookup operation for MethodLookupCache
friend class MethodLookupCache;
+ virtual klassOop find_field(Symbol* name, Symbol* signature, fieldDescriptor* fd) const;
virtual methodOop uncached_lookup_method(Symbol* name, Symbol* signature) const;
public:
methodOop lookup_method(Symbol* name, Symbol* signature) const {
diff -r ec692ec8cf82 -r 4dc4b096589a src/share/vm/opto/reg_split.cpp
--- a/src/share/vm/opto/reg_split.cpp Thu Oct 02 00:43:17 2014 +0100
+++ b/src/share/vm/opto/reg_split.cpp Tue Oct 14 21:12:32 2014 +0100
@@ -51,15 +51,6 @@
static const char out_of_nodes[] = "out of nodes during split";
-static bool contains_no_live_range_input(const Node* def) {
- for (uint i = 1; i < def->req(); ++i) {
- if (def->in(i) != NULL && def->in_RegMask(i).is_NotEmpty()) {
- return false;
- }
- }
- return true;
-}
-
//------------------------------get_spillcopy_wide-----------------------------
// Get a SpillCopy node with wide-enough masks. Use the 'wide-mask', the
// wide ideal-register spill-mask if possible. If the 'wide-mask' does
@@ -326,7 +317,6 @@
if( def->req() > 1 ) {
for( uint i = 1; i < def->req(); i++ ) {
Node *in = def->in(i);
- // Check for single-def (LRG cannot redefined)
uint lidx = n2lidx(in);
// On PPC we see rematerialized nodes that have a live-range
@@ -337,10 +327,13 @@
// count.
#if defined(PPC64)
if( lidx >= _maxlrg ) return def;
-#else
- if( lidx >= _maxlrg ) continue; // Value is a recent spill-copy
#endif
- if (lrgs(lidx).is_singledef()) continue;
+ // We do not need this for live ranges that are only defined once.
+ // However, this is not true for spill copies that are added in this
+ // Split() pass, since they might get coalesced later on in this pass.
+ if (lidx < _maxlrg && lrgs(lidx).is_singledef()) {
+ continue;
+ }
Block *b_def = _cfg._bbs[def->_idx];
int idx_def = b_def->find_node(def);
@@ -1314,7 +1307,7 @@
Node *def = Reaches[pidx][slidx];
assert( def, "must have reaching def" );
// If input up/down sense and reg-pressure DISagree
- if (def->rematerialize() && contains_no_live_range_input(def)) {
+ if (def->rematerialize()) {
// Place the rematerialized node above any MSCs created during
// phi node splitting. end_idx points at the insertion point
// so look at the node before it.
diff -r ec692ec8cf82 -r 4dc4b096589a src/share/vm/prims/jvm.cpp
--- a/src/share/vm/prims/jvm.cpp Thu Oct 02 00:43:17 2014 +0100
+++ b/src/share/vm/prims/jvm.cpp Tue Oct 14 21:12:32 2014 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, 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
@@ -749,6 +749,7 @@
return (jclass) JNIHandles::make_local(env, Klass::cast(k)->java_mirror());
JVM_END
+// Not used; JVM_FindClassFromCaller replaces this.
JVM_ENTRY(jclass, JVM_FindClassFromClassLoader(JNIEnv* env, const char* name,
jboolean init, jobject loader,
jboolean throwError))
@@ -775,6 +776,42 @@
return result;
JVM_END
+// Find a class with this name in this loader, using the caller's protection domain.
+JVM_ENTRY(jclass, JVM_FindClassFromCaller(JNIEnv* env, const char* name,
+ jboolean init, jobject loader,
+ jclass caller))
+ JVMWrapper2("JVM_FindClassFromCaller %s throws ClassNotFoundException", name);
+ // Java libraries should ensure that name is never null...
+ if (name == NULL || (int)strlen(name) > Symbol::max_length()) {
+ // It's impossible to create this class; the name cannot fit
+ // into the constant pool.
+ THROW_MSG_0(vmSymbols::java_lang_ClassNotFoundException(), name);
+ }
+
+ TempNewSymbol h_name = SymbolTable::new_symbol(name, CHECK_NULL);
+
+ oop loader_oop = JNIHandles::resolve(loader);
+ oop from_class = JNIHandles::resolve(caller);
+ oop protection_domain = NULL;
+ // If loader is null, shouldn't call ClassLoader.checkPackageAccess; otherwise get
+ // NPE. Put it in another way, the bootstrap class loader has all permission and
+ // thus no checkPackageAccess equivalence in the VM class loader.
+ // The caller is also passed as NULL by the java code if there is no security
+ // manager to avoid the performance cost of getting the calling class.
+ if (from_class != NULL && loader_oop != NULL) {
+ protection_domain = instanceKlass::cast(java_lang_Class::as_klassOop(from_class))->protection_domain();
+ }
+
+ Handle h_loader(THREAD, loader_oop);
+ Handle h_prot(THREAD, protection_domain);
+ jclass result = find_class_from_class_loader(env, h_name, init, h_loader,
+ h_prot, false, THREAD);
+
+ if (TraceClassResolution && result != NULL) {
+ trace_class_resolution(java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(result)));
+ }
+ return result;
+JVM_END
JVM_ENTRY(jclass, JVM_FindClassFromClass(JNIEnv *env, const char *name,
jboolean init, jclass from))
@@ -4101,10 +4138,15 @@
// Shared JNI/JVM entry points //////////////////////////////////////////////////////////////
-jclass find_class_from_class_loader(JNIEnv* env, Symbol* name, jboolean init, Handle loader, Handle protection_domain, jboolean throwError, TRAPS) {
+jclass find_class_from_class_loader(JNIEnv* env, Symbol* name, jboolean init,
+ Handle loader, Handle protection_domain,
+ jboolean throwError, TRAPS) {
// Security Note:
// The Java level wrapper will perform the necessary security check allowing
- // us to pass the NULL as the initiating class loader.
+ // us to pass the NULL as the initiating class loader. The VM is responsible for
+ // the checkPackageAccess relative to the initiating class loader via the
+ // protection_domain. The protection_domain is passed as NULL by the java code
+ // if there is no security manager in 3-arg Class.forName().
klassOop klass = SystemDictionary::resolve_or_fail(name, loader, protection_domain, throwError != 0, CHECK_NULL);
KlassHandle klass_handle(THREAD, klass);
diff -r ec692ec8cf82 -r 4dc4b096589a src/share/vm/prims/jvm.h
--- a/src/share/vm/prims/jvm.h Thu Oct 02 00:43:17 2014 +0100
+++ b/src/share/vm/prims/jvm.h Tue Oct 14 21:12:32 2014 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, 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
@@ -418,6 +418,19 @@
JVM_FindClassFromBootLoader(JNIEnv *env, const char *name);
/*
+ * Find a class from a given class loader. Throws ClassNotFoundException.
+ * name: name of class
+ * init: whether initialization is done
+ * loader: class loader to look up the class. This may not be the same as the caller's
+ * class loader.
+ * caller: initiating class. The initiating class may be null when a security
+ * manager is not installed.
+ */
+JNIEXPORT jclass JNICALL
+JVM_FindClassFromCaller(JNIEnv *env, const char *name, jboolean init,
+ jobject loader, jclass caller);
+
+/*
* Find a class from a given class.
*/
From andrew at icedtea.classpath.org Tue Oct 14 20:14:08 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Tue, 14 Oct 2014 20:14:08 +0000
Subject: /hg/release/icedtea7-forest-2.5/jdk: 27 new changesets
Message-ID:
changeset d8e8a3469b10 in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=d8e8a3469b10
author: mbankal
date: Thu Jun 19 23:20:26 2014 -0700
8037846: Ensure streaming of input cipher streams
Reviewed-by: ascarpino, coffeys, robm, ahgross, asmotrak
changeset 8d0fb48c8aad in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=8d0fb48c8aad
author: coffeys
date: Fri Jul 11 12:22:02 2014 +0100
7160837: DigestOutputStream does not turn off digest calculation when "close()" is called
8012637: Adjust CipherInputStream class to work in AEAD/GCM mode
Reviewed-by: ascarpino, mbankal
changeset 7f6e12a04c9c in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=7f6e12a04c9c
author: sgabdura
date: Wed May 21 08:38:00 2014 +0200
8015256: Better class accessibility
Summary: Improve protection domain check in forName()
Reviewed-by: coleenp, mchung, acorn, jdn
changeset 76186528d444 in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=76186528d444
author: coffeys
date: Thu Oct 02 02:10:56 2014 +0100
8028192: Use of PKCS11-NSS provider in FIPS mode broken
Reviewed-by: xuelei
changeset 727c91b48b9a in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=727c91b48b9a
author: mcherkas
date: Mon Jul 14 17:00:32 2014 +0400
8035162: Service printing service
Reviewed-by: bae, jgodinez, mschoene
Contributed-by: artem.malinko at oracle.com
changeset 4af55bc2305a in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=4af55bc2305a
author: dmeetry
date: Wed May 28 10:34:41 2014 +0400
8035781: Improve equality for annotations
Reviewed-by: darcy
changeset 8710cd45b2be in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=8710cd45b2be
author: naoto
date: Mon Apr 21 13:29:56 2014 -0700
8036936: Use local locales
Summary: Made sure cache key is cleared on GC invocation
Reviewed-by: okutsu
changeset 68cb686778bb in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=68cb686778bb
author: mbankal
date: Tue Jun 10 02:07:15 2014 -0700
8037066: Secure transport layer
Reviewed-by: xuelei, coffeys, ahgross, asmotrak
changeset cd618bef98e9 in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=cd618bef98e9
author: anashaty
date: Mon May 19 17:46:12 2014 +0400
8038000: java.awt.image.RasterFormatException: Incorrect scanline stride
Reviewed-by: bae, serb
changeset 069a0295190b in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=069a0295190b
author: robm
date: Thu May 29 19:43:14 2014 +0100
8038364: Use certificate exceptions correctly
Reviewed-by: mullan, coffeys
changeset 230de2494a75 in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=230de2494a75
author: igerasim
date: Thu May 29 15:31:00 2014 +0400
8038908: Make Signature more robust
Reviewed-by: valeriep, skoivu, asmotrak
changeset df0116af14cb in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=df0116af14cb
author: aefimov
date: Mon Jul 07 18:41:49 2014 +0400
8038913: Bolster XML support
Reviewed-by: mullan
changeset 83ec3bc09479 in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=83ec3bc09479
author: igerasim
date: Wed Apr 16 12:37:49 2014 +0400
8039396: NPE when writing a class descriptor object to a custom ObjectOutputStream
Reviewed-by: alanb
changeset c03b9e2fe2c7 in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=c03b9e2fe2c7
author: robm
date: Mon Jun 16 08:53:40 2014 -0700
8039509: Wrap sockets more thoroughly
Reviewed-by: michaelm, coffeys
changeset 68d50f61dab9 in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=68d50f61dab9
author: igerasim
date: Mon May 12 15:07:32 2014 +0400
8041529: Better parameterization of parameter lists
Reviewed-by: twisti, ahgross
changeset c9f7512d4a3a in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=c9f7512d4a3a
author: bae
date: Thu May 29 10:48:39 2014 +0400
8041540: Better use of pages in font processing
Reviewed-by: prr
changeset 99f95fab84c8 in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=99f95fab84c8
author: pchelko
date: Fri May 23 12:03:24 2014 +0400
8041545: Better validation of generated rasters
Reviewed-by: prr, serb, bae, skoivu
changeset ecaf6325319f in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=ecaf6325319f
author: dfuchs
date: Wed May 14 15:23:59 2014 +0200
8041564: Improved management of logger resources
Reviewed-by: skoivu, mchung, igerasim
changeset 73bf3b365e80 in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=73bf3b365e80
author: azvegint
date: Fri May 30 16:20:04 2014 +0400
8042609: Limit splashiness of splash images
Reviewed-by: mschoene, serb
changeset e71df8a80509 in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=e71df8a80509
author: igerasim
date: Fri Jun 06 00:58:04 2014 +0400
8042797: Avoid strawberries in LogRecord
Reviewed-by: dfuchs
changeset fda2754500f3 in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=fda2754500f3
author: bae
date: Sat Jun 21 01:39:52 2014 +0400
8042850: Extra unused entries in ICU ScriptCodes enum
Reviewed-by: prr
changeset d62afc010f62 in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=d62afc010f62
author: dmeetry
date: Fri Jul 04 21:03:03 2014 +0400
8044274: Proper property processing
Reviewed-by: naoto
changeset d2b7084a7344 in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=d2b7084a7344
author: prr
date: Wed Jul 30 11:12:38 2014 -0700
8052162: REGRESSION: sun/java2d/cmm/ColorConvertOp tests fail since 7u71 b01
Reviewed-by: bae, serb
changeset c2feb999b76e in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=c2feb999b76e
author: robm
date: Thu Aug 07 15:40:14 2014 +0100
8053963: (dc) Use DatagramChannel.receive() instead of read() in connect()
Reviewed-by: michaelm, chegar
changeset 59a0201c1b3f in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=59a0201c1b3f
author: mfang
date: Mon Aug 18 10:32:46 2014 -0700
8055176: 7u71 l10n resource file translation update
Reviewed-by: yhuang
changeset 6b81c7cc733e in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=6b81c7cc733e
author: andrew
date: Thu Oct 02 03:17:19 2014 +0100
Bump to 2.5.3
changeset e49ef2cfd3e8 in /hg/release/icedtea7-forest-2.5/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.5/jdk?cmd=changeset;node=e49ef2cfd3e8
author: andrew
date: Tue Oct 14 21:12:28 2014 +0100
Added tag icedtea-2.5.3 for changeset 6b81c7cc733e
diffstat:
.hgtags | 1 +
make/java/net/FILES_c.gmk | 1 +
make/java/net/mapfile-vers | 2 +
make/jdk_generic_profile.sh | 2 +-
src/share/classes/com/sun/accessibility/internal/resources/accessibility_zh_TW.properties | 2 +-
src/share/classes/com/sun/crypto/provider/RSACipher.java | 61 ++-
src/share/classes/com/sun/crypto/provider/TlsRsaPremasterSecretGenerator.java | 21 +-
src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_sv.properties | 2 +-
src/share/classes/com/sun/org/apache/xml/internal/security/Init.java | 72 ++-
src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/JCEMapper.java | 7 +
src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/SignatureAlgorithm.java | 13 +-
src/share/classes/com/sun/org/apache/xml/internal/security/c14n/Canonicalizer.java | 9 +-
src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/KeyResolver.java | 13 +
src/share/classes/com/sun/org/apache/xml/internal/security/transforms/Transform.java | 7 +
src/share/classes/com/sun/org/apache/xml/internal/security/utils/ElementProxy.java | 3 +
src/share/classes/com/sun/org/apache/xml/internal/security/utils/JavaUtils.java | 22 +
src/share/classes/com/sun/org/apache/xml/internal/security/utils/XMLUtils.java | 6 +
src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/ResourceResolver.java | 13 +
src/share/classes/com/sun/rowset/RowSetResourceBundle_pt_BR.properties | 4 +-
src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_sv.properties | 2 +-
src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_sv.properties | 2 +-
src/share/classes/com/sun/tools/example/debug/tty/TTYResources_ja.java | 4 +-
src/share/classes/com/sun/tools/jdi/resources/jdi_ja.properties | 8 +-
src/share/classes/java/io/ObjectOutputStream.java | 4 +-
src/share/classes/java/lang/Class.java | 23 +-
src/share/classes/java/lang/invoke/MethodType.java | 2 +-
src/share/classes/java/net/AbstractPlainDatagramSocketImpl.java | 4 +
src/share/classes/java/net/DatagramSocket.java | 50 ++-
src/share/classes/java/net/DatagramSocketImpl.java | 6 +
src/share/classes/java/security/DigestOutputStream.java | 6 +-
src/share/classes/java/security/Signature.java | 28 +-
src/share/classes/java/security/cert/CertificateRevokedException.java | 10 +-
src/share/classes/java/util/ResourceBundle.java | 19 +-
src/share/classes/java/util/logging/LogRecord.java | 8 +-
src/share/classes/java/util/logging/Logger.java | 9 +-
src/share/classes/javax/crypto/CipherInputStream.java | 35 +-
src/share/classes/javax/crypto/CipherOutputStream.java | 14 +-
src/share/classes/sun/awt/image/ByteBandedRaster.java | 20 +-
src/share/classes/sun/awt/image/ByteComponentRaster.java | 20 +-
src/share/classes/sun/awt/image/BytePackedRaster.java | 27 +-
src/share/classes/sun/awt/image/IntegerComponentRaster.java | 20 +-
src/share/classes/sun/awt/image/ShortBandedRaster.java | 19 +-
src/share/classes/sun/awt/image/ShortComponentRaster.java | 20 +-
src/share/classes/sun/awt/resources/awt_pt_BR.properties | 2 +-
src/share/classes/sun/nio/ch/DatagramChannelImpl.java | 20 +
src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java | 112 +++++-
src/share/classes/sun/rmi/rmic/resources/rmic_ja.properties | 6 +-
src/share/classes/sun/security/internal/spec/TlsRsaPremasterSecretParameterSpec.java | 142 ++++---
src/share/classes/sun/security/pkcs11/P11RSACipher.java | 154 +++++++-
src/share/classes/sun/security/pkcs11/P11TlsRsaPremasterSecretGenerator.java | 44 +-
src/share/classes/sun/security/pkcs11/Token.java | 34 +
src/share/classes/sun/security/ssl/ClientHandshaker.java | 190 +++++++++-
src/share/classes/sun/security/ssl/Handshaker.java | 12 +-
src/share/classes/sun/security/ssl/RSAClientKeyExchange.java | 166 +--------
src/share/classes/sun/security/ssl/SSLSessionImpl.java | 26 +-
src/share/classes/sun/security/util/KeyUtil.java | 74 +++
src/share/classes/sun/security/util/Resources_de.java | 10 +-
src/share/classes/sun/security/util/Resources_fr.java | 4 +-
src/share/classes/sun/security/util/Resources_it.java | 4 +-
src/share/classes/sun/security/util/Resources_pt_BR.java | 4 +-
src/share/classes/sun/tools/jconsole/resources/messages_ja.properties | 8 +-
src/share/classes/sun/util/locale/BaseLocale.java | 88 ++--
src/share/classes/sun/util/locale/LocaleObjectCache.java | 4 +-
src/share/javavm/export/jvm.h | 15 +-
src/share/native/java/lang/Class.c | 7 +-
src/share/native/sun/font/layout/ContextualSubstSubtables.cpp | 52 ++-
src/share/native/sun/font/layout/LEScripts.h | 6 -
src/solaris/classes/sun/print/CUPSPrinter.java | 8 +-
src/solaris/classes/sun/print/IPPPrintService.java | 8 +-
src/solaris/native/java/net/AbstractPlainDatagramSocketImpl.c | 89 ++++
src/windows/classes/sun/security/mscapi/RSACipher.java | 83 +++-
src/windows/native/java/net/AbstractPlainDatagramSocketImpl.c | 111 +++++
src/windows/native/sun/awt/splashscreen/splashscreen_sys.c | 13 +-
test/com/sun/crypto/provider/TLS/TestPremaster.java | 55 ++-
test/java/io/Serializable/unresolvableObjectStreamClass/UnresolvableObjectStreamClass.java | 68 +++
test/sun/java2d/cmm/ColorConvertOp/ColConvCCMTest.java | 2 +-
test/sun/security/pkcs11/fips/CipherTest.java | 15 +-
test/sun/security/pkcs11/fips/ClientJSSEServerJSSE.java | 12 +-
test/sun/security/pkcs11/tls/TestPremaster.java | 55 ++-
79 files changed, 1765 insertions(+), 559 deletions(-)
diffs (truncated from 4231 to 500 lines):
diff -r f9b67cec73d2 -r e49ef2cfd3e8 .hgtags
--- a/.hgtags Thu Oct 02 00:46:45 2014 +0100
+++ b/.hgtags Tue Oct 14 21:12:28 2014 +0100
@@ -475,3 +475,4 @@
1e6a8564aa3400fe8f84085c908f55a942d426f0 icedtea-2.5.2
fa4e5dae68e19bdd1f0bac703889a4cf30a59754 icedtea-2.5.3pre01
16dfadea81a1e00677ba697628177e2d60d5df7f icedtea-2.5.3pre02
+6b81c7cc733ef2ba77e86e88320c8ef34696c872 icedtea-2.5.3
diff -r f9b67cec73d2 -r e49ef2cfd3e8 make/java/net/FILES_c.gmk
--- a/make/java/net/FILES_c.gmk Thu Oct 02 00:46:45 2014 +0100
+++ b/make/java/net/FILES_c.gmk Tue Oct 14 21:12:28 2014 +0100
@@ -24,6 +24,7 @@
#
FILES_c = \
+ AbstractPlainDatagramSocketImpl.c \
DatagramPacket.c \
InetAddress.c \
Inet4Address.c \
diff -r f9b67cec73d2 -r e49ef2cfd3e8 make/java/net/mapfile-vers
--- a/make/java/net/mapfile-vers Thu Oct 02 00:46:45 2014 +0100
+++ b/make/java/net/mapfile-vers Tue Oct 14 21:12:28 2014 +0100
@@ -28,6 +28,8 @@
SUNWprivate_1.1 {
global:
JNI_OnLoad;
+ Java_java_net_AbstractPlainDatagramSocketImpl_init;
+ Java_java_net_AbstractPlainDatagramSocketImpl_dataAvailable;
Java_java_net_PlainSocketImpl_socketListen;
Java_java_net_PlainDatagramSocketImpl_getTTL;
Java_java_net_PlainDatagramSocketImpl_init;
diff -r f9b67cec73d2 -r e49ef2cfd3e8 make/jdk_generic_profile.sh
--- a/make/jdk_generic_profile.sh Thu Oct 02 00:46:45 2014 +0100
+++ b/make/jdk_generic_profile.sh Tue Oct 14 21:12:28 2014 +0100
@@ -625,7 +625,7 @@
# IcedTea versioning
export ICEDTEA_NAME="IcedTea"
-export PACKAGE_VERSION="2.5.3pre02"
+export PACKAGE_VERSION="2.5.3"
export DERIVATIVE_ID="${ICEDTEA_NAME} ${PACKAGE_VERSION}"
echo "Building ${DERIVATIVE_ID}"
diff -r f9b67cec73d2 -r e49ef2cfd3e8 src/share/classes/com/sun/accessibility/internal/resources/accessibility_zh_TW.properties
--- a/src/share/classes/com/sun/accessibility/internal/resources/accessibility_zh_TW.properties Thu Oct 02 00:46:45 2014 +0100
+++ b/src/share/classes/com/sun/accessibility/internal/resources/accessibility_zh_TW.properties Tue Oct 14 21:12:28 2014 +0100
@@ -44,7 +44,7 @@
popupmenu=\u5373\u73FE\u5F0F\u529F\u80FD\u8868
progressbar=\u9032\u5EA6\u5217
pushbutton=\u4E0B\u58D3\u6309\u9215
-radiobutton=\u55AE\u9078\u9215
+radiobutton=\u5713\u9215
rootpane=root \u7A97\u683C
rowheader=\u5217\u6A19\u984C
scrollbar=\u6372\u8EF8
diff -r f9b67cec73d2 -r e49ef2cfd3e8 src/share/classes/com/sun/crypto/provider/RSACipher.java
--- a/src/share/classes/com/sun/crypto/provider/RSACipher.java Thu Oct 02 00:46:45 2014 +0100
+++ b/src/share/classes/com/sun/crypto/provider/RSACipher.java Tue Oct 14 21:12:28 2014 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, 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
@@ -39,6 +39,8 @@
import sun.security.rsa.*;
import sun.security.jca.Providers;
+import sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec;
+import sun.security.util.KeyUtil;
/**
* RSA cipher implementation. Supports RSA en/decryption and signing/verifying
@@ -91,8 +93,8 @@
// padding object
private RSAPadding padding;
- // cipher parameter for OAEP padding
- private OAEPParameterSpec spec = null;
+ // cipher parameter for OAEP padding and TLS RSA premaster secret
+ private AlgorithmParameterSpec spec = null;
// buffer for the data
private byte[] buffer;
@@ -110,6 +112,9 @@
// hash algorithm for OAEP
private String oaepHashAlgorithm = "SHA-1";
+ // the source of randomness
+ private SecureRandom random;
+
public RSACipher() {
paddingType = PAD_PKCS1;
}
@@ -175,7 +180,7 @@
// see JCE spec
protected AlgorithmParameters engineGetParameters() {
- if (spec != null) {
+ if (spec != null && spec instanceof OAEPParameterSpec) {
try {
AlgorithmParameters params =
AlgorithmParameters.getInstance("OAEP", "SunJCE");
@@ -278,8 +283,13 @@
buffer = new byte[n];
} else if (paddingType == PAD_PKCS1) {
if (params != null) {
- throw new InvalidAlgorithmParameterException
- ("Parameters not supported");
+ if (!(params instanceof TlsRsaPremasterSecretParameterSpec)) {
+ throw new InvalidAlgorithmParameterException(
+ "Parameters not supported");
+ }
+
+ spec = params;
+ this.random = random; // for TLS RSA premaster secret
}
int blockType = (mode <= MODE_DECRYPT) ? RSAPadding.PAD_BLOCKTYPE_2
: RSAPadding.PAD_BLOCKTYPE_1;
@@ -295,19 +305,18 @@
throw new InvalidKeyException
("OAEP cannot be used to sign or verify signatures");
}
- OAEPParameterSpec myParams;
if (params != null) {
if (!(params instanceof OAEPParameterSpec)) {
throw new InvalidAlgorithmParameterException
("Wrong Parameters for OAEP Padding");
}
- myParams = (OAEPParameterSpec) params;
+ spec = params;
} else {
- myParams = new OAEPParameterSpec(oaepHashAlgorithm, "MGF1",
+ spec = new OAEPParameterSpec(oaepHashAlgorithm, "MGF1",
MGF1ParameterSpec.SHA1, PSource.PSpecified.DEFAULT);
}
padding = RSAPadding.getInstance(RSAPadding.PAD_OAEP_MGF1, n,
- random, myParams);
+ random, (OAEPParameterSpec)spec);
if (encrypt) {
int k = padding.getMaxDataSize();
buffer = new byte[k];
@@ -422,17 +431,40 @@
if (wrappedKey.length > buffer.length) {
throw new InvalidKeyException("Key is too long for unwrapping");
}
+
+ boolean isTlsRsaPremasterSecret =
+ algorithm.equals("TlsRsaPremasterSecret");
+ Exception failover = null;
+ byte[] encoded = null;
+
update(wrappedKey, 0, wrappedKey.length);
try {
- byte[] encoded = doFinal();
- return ConstructKeys.constructKey(encoded, algorithm, type);
+ encoded = doFinal();
} catch (BadPaddingException e) {
- // should not occur
- throw new InvalidKeyException("Unwrapping failed", e);
+ if (isTlsRsaPremasterSecret) {
+ failover = e;
+ } else {
+ throw new InvalidKeyException("Unwrapping failed", e);
+ }
} catch (IllegalBlockSizeException e) {
// should not occur, handled with length check above
throw new InvalidKeyException("Unwrapping failed", e);
}
+
+ if (isTlsRsaPremasterSecret) {
+ if (!(spec instanceof TlsRsaPremasterSecretParameterSpec)) {
+ throw new IllegalStateException(
+ "No TlsRsaPremasterSecretParameterSpec specified");
+ }
+
+ // polish the TLS premaster secret
+ encoded = KeyUtil.checkTlsPreMasterSecretKey(
+ ((TlsRsaPremasterSecretParameterSpec)spec).getClientVersion(),
+ ((TlsRsaPremasterSecretParameterSpec)spec).getServerVersion(),
+ random, encoded, (failover != null));
+ }
+
+ return ConstructKeys.constructKey(encoded, algorithm, type);
}
// see JCE spec
@@ -440,5 +472,4 @@
RSAKey rsaKey = RSAKeyFactory.toRSAKey(key);
return rsaKey.getModulus().bitLength();
}
-
}
diff -r f9b67cec73d2 -r e49ef2cfd3e8 src/share/classes/com/sun/crypto/provider/TlsRsaPremasterSecretGenerator.java
--- a/src/share/classes/com/sun/crypto/provider/TlsRsaPremasterSecretGenerator.java Thu Oct 02 00:46:45 2014 +0100
+++ b/src/share/classes/com/sun/crypto/provider/TlsRsaPremasterSecretGenerator.java Tue Oct 14 21:12:28 2014 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, 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
@@ -56,7 +56,7 @@
protected void engineInit(AlgorithmParameterSpec params,
SecureRandom random) throws InvalidAlgorithmParameterException {
- if (params instanceof TlsRsaPremasterSecretParameterSpec == false) {
+ if (!(params instanceof TlsRsaPremasterSecretParameterSpec)) {
throw new InvalidAlgorithmParameterException(MSG);
}
this.spec = (TlsRsaPremasterSecretParameterSpec)params;
@@ -67,21 +67,20 @@
throw new InvalidParameterException(MSG);
}
+ // Only can be used in client side to generate TLS RSA premaster secret.
protected SecretKey engineGenerateKey() {
if (spec == null) {
throw new IllegalStateException(
"TlsRsaPremasterSecretGenerator must be initialized");
}
- byte[] b = spec.getEncodedSecret();
- if (b == null) {
- if (random == null) {
- random = new SecureRandom();
- }
- b = new byte[48];
- random.nextBytes(b);
- b[0] = (byte)spec.getMajorVersion();
- b[1] = (byte)spec.getMinorVersion();
+
+ if (random == null) {
+ random = new SecureRandom();
}
+ byte[] b = new byte[48];
+ random.nextBytes(b);
+ b[0] = (byte)spec.getMajorVersion();
+ b[1] = (byte)spec.getMinorVersion();
return new SecretKeySpec(b, "TlsRsaPremasterSecret");
}
diff -r f9b67cec73d2 -r e49ef2cfd3e8 src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_sv.properties
--- a/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_sv.properties Thu Oct 02 00:46:45 2014 +0100
+++ b/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_sv.properties Tue Oct 14 21:12:28 2014 +0100
@@ -22,7 +22,7 @@
FileChooser.saveInLabel.textAndMnemonic=Spara i:
FileChooser.fileNameLabel.textAndMnemonic=Fil&namn:
FileChooser.folderNameLabel.textAndMnemonic=Mapp&namn:
-FileChooser.filesOfTypeLabel.textAndMnemonic=Filer av &typ:
+FileChooser.filesOfTypeLabel.textAndMnemonic=Filer av &typen:
FileChooser.upFolderToolTip.textAndMnemonic=Upp en niv\u00E5
FileChooser.upFolderAccessibleName=Upp
FileChooser.homeFolderToolTip.textAndMnemonic=Hem
diff -r f9b67cec73d2 -r e49ef2cfd3e8 src/share/classes/com/sun/org/apache/xml/internal/security/Init.java
--- a/src/share/classes/com/sun/org/apache/xml/internal/security/Init.java Thu Oct 02 00:46:45 2014 +0100
+++ b/src/share/classes/com/sun/org/apache/xml/internal/security/Init.java Tue Oct 14 21:12:28 2014 +0100
@@ -25,6 +25,8 @@
import java.io.InputStream;
import java.security.AccessController;
import java.security.PrivilegedAction;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
import java.util.ArrayList;
import java.util.List;
@@ -35,6 +37,7 @@
import com.sun.org.apache.xml.internal.security.algorithms.JCEMapper;
import com.sun.org.apache.xml.internal.security.algorithms.SignatureAlgorithm;
import com.sun.org.apache.xml.internal.security.c14n.Canonicalizer;
+import com.sun.org.apache.xml.internal.security.exceptions.XMLSecurityException;
import com.sun.org.apache.xml.internal.security.keys.keyresolver.KeyResolver;
import com.sun.org.apache.xml.internal.security.transforms.Transform;
import com.sun.org.apache.xml.internal.security.utils.ElementProxy;
@@ -118,43 +121,50 @@
log.log(java.util.logging.Level.FINE, "Registering default algorithms");
}
try {
- //
- // Bind the default prefixes
- //
- ElementProxy.registerDefaultPrefixes();
+ AccessController.doPrivileged(new PrivilegedExceptionAction(){
+ @Override public Void run() throws XMLSecurityException {
+ //
+ // Bind the default prefixes
+ //
+ ElementProxy.registerDefaultPrefixes();
- //
- // Set the default Transforms
- //
- Transform.registerDefaultAlgorithms();
+ //
+ // Set the default Transforms
+ //
+ Transform.registerDefaultAlgorithms();
- //
- // Set the default signature algorithms
- //
- SignatureAlgorithm.registerDefaultAlgorithms();
+ //
+ // Set the default signature algorithms
+ //
+ SignatureAlgorithm.registerDefaultAlgorithms();
- //
- // Set the default JCE algorithms
- //
- JCEMapper.registerDefaultAlgorithms();
+ //
+ // Set the default JCE algorithms
+ //
+ JCEMapper.registerDefaultAlgorithms();
- //
- // Set the default c14n algorithms
- //
- Canonicalizer.registerDefaultAlgorithms();
+ //
+ // Set the default c14n algorithms
+ //
+ Canonicalizer.registerDefaultAlgorithms();
- //
- // Register the default resolvers
- //
- ResourceResolver.registerDefaultResolvers();
+ //
+ // Register the default resolvers
+ //
+ ResourceResolver.registerDefaultResolvers();
- //
- // Register the default key resolvers
- //
- KeyResolver.registerDefaultResolvers();
- } catch (Exception ex) {
- log.log(java.util.logging.Level.SEVERE, ex.getMessage(), ex);
- ex.printStackTrace();
+ //
+ // Register the default key resolvers
+ //
+ KeyResolver.registerDefaultResolvers();
+
+ return null;
+ }
+ });
+ } catch (PrivilegedActionException ex) {
+ XMLSecurityException xse = (XMLSecurityException)ex.getException();
+ log.log(java.util.logging.Level.SEVERE, xse.getMessage(), xse);
+ xse.printStackTrace();
}
}
diff -r f9b67cec73d2 -r e49ef2cfd3e8 src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/JCEMapper.java
--- a/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/JCEMapper.java Thu Oct 02 00:46:45 2014 +0100
+++ b/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/JCEMapper.java Tue Oct 14 21:12:28 2014 +0100
@@ -27,6 +27,7 @@
import com.sun.org.apache.xml.internal.security.encryption.XMLCipher;
import com.sun.org.apache.xml.internal.security.signature.XMLSignature;
+import com.sun.org.apache.xml.internal.security.utils.JavaUtils;
import org.w3c.dom.Element;
@@ -49,8 +50,11 @@
*
* @param id
* @param algorithm
+ * @throws SecurityException if a security manager is installed and the
+ * caller does not have permission to register the JCE algorithm
*/
public static void register(String id, Algorithm algorithm) {
+ JavaUtils.checkRegisterPermission();
algorithmsMap.put(id, algorithm);
}
@@ -264,8 +268,11 @@
/**
* Sets the default Provider for obtaining the security algorithms
* @param provider the default providerId.
+ * @throws SecurityException if a security manager is installed and the
+ * caller does not have permission to set the JCE provider
*/
public static void setProviderId(String provider) {
+ JavaUtils.checkRegisterPermission();
providerName = provider;
}
diff -r f9b67cec73d2 -r e49ef2cfd3e8 src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/SignatureAlgorithm.java
--- a/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/SignatureAlgorithm.java Thu Oct 02 00:46:45 2014 +0100
+++ b/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/SignatureAlgorithm.java Tue Oct 14 21:12:28 2014 +0100
@@ -37,6 +37,7 @@
import com.sun.org.apache.xml.internal.security.signature.XMLSignature;
import com.sun.org.apache.xml.internal.security.signature.XMLSignatureException;
import com.sun.org.apache.xml.internal.security.utils.Constants;
+import com.sun.org.apache.xml.internal.security.utils.JavaUtils;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -314,18 +315,21 @@
}
/**
- * Registers implementing class of the Transform algorithm with algorithmURI
+ * Registers implementing class of the SignatureAlgorithm with algorithmURI
*
- * @param algorithmURI algorithmURI URI representation of Transform algorithm
.
+ * @param algorithmURI algorithmURI URI representation of SignatureAlgorithm
.
* @param implementingClass implementingClass
the implementing class of
* {@link SignatureAlgorithmSpi}
* @throws AlgorithmAlreadyRegisteredException if specified algorithmURI is already registered
* @throws XMLSignatureException
+ * @throws SecurityException if a security manager is installed and the
+ * caller does not have permission to register the signature algorithm
*/
@SuppressWarnings("unchecked")
public static void register(String algorithmURI, String implementingClass)
throws AlgorithmAlreadyRegisteredException, ClassNotFoundException,
XMLSignatureException {
+ JavaUtils.checkRegisterPermission();
if (log.isLoggable(java.util.logging.Level.FINE)) {
log.log(java.util.logging.Level.FINE, "Try to register " + algorithmURI + " " + implementingClass);
}
@@ -352,15 +356,18 @@
/**
* Registers implementing class of the Transform algorithm with algorithmURI
*
- * @param algorithmURI algorithmURI URI representation of Transform algorithm
.
+ * @param algorithmURI algorithmURI URI representation of SignatureAlgorithm
.
* @param implementingClass implementingClass
the implementing class of
* {@link SignatureAlgorithmSpi}
* @throws AlgorithmAlreadyRegisteredException if specified algorithmURI is already registered
* @throws XMLSignatureException
+ * @throws SecurityException if a security manager is installed and the
+ * caller does not have permission to register the signature algorithm
*/
public static void register(String algorithmURI, Class extends SignatureAlgorithmSpi> implementingClass)
throws AlgorithmAlreadyRegisteredException, ClassNotFoundException,
XMLSignatureException {
+ JavaUtils.checkRegisterPermission();
if (log.isLoggable(java.util.logging.Level.FINE)) {
log.log(java.util.logging.Level.FINE, "Try to register " + algorithmURI + " " + implementingClass);
}
diff -r f9b67cec73d2 -r e49ef2cfd3e8 src/share/classes/com/sun/org/apache/xml/internal/security/c14n/Canonicalizer.java
--- a/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/Canonicalizer.java Thu Oct 02 00:46:45 2014 +0100
+++ b/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/Canonicalizer.java Tue Oct 14 21:12:28 2014 +0100
@@ -40,6 +40,7 @@
import com.sun.org.apache.xml.internal.security.c14n.implementations.Canonicalizer20010315OmitComments;
import com.sun.org.apache.xml.internal.security.c14n.implementations.Canonicalizer20010315WithComments;
import com.sun.org.apache.xml.internal.security.exceptions.AlgorithmAlreadyRegisteredException;
+import com.sun.org.apache.xml.internal.security.utils.JavaUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
@@ -136,10 +137,13 @@
* @param algorithmURI
* @param implementingClass
* @throws AlgorithmAlreadyRegisteredException
+ * @throws SecurityException if a security manager is installed and the
+ * caller does not have permission to register the canonicalizer
*/
@SuppressWarnings("unchecked")
public static void register(String algorithmURI, String implementingClass)
throws AlgorithmAlreadyRegisteredException, ClassNotFoundException {
+ JavaUtils.checkRegisterPermission();
// check whether URI is already registered
Class extends CanonicalizerSpi> registeredClass =
canonicalizerHash.get(algorithmURI);
@@ -160,9 +164,12 @@
* @param algorithmURI
* @param implementingClass
* @throws AlgorithmAlreadyRegisteredException
+ * @throws SecurityException if a security manager is installed and the
+ * caller does not have permission to register the canonicalizer
*/
- public static void register(String algorithmURI, Class implementingClass)
+ public static void register(String algorithmURI, Class extends CanonicalizerSpi> implementingClass)
throws AlgorithmAlreadyRegisteredException, ClassNotFoundException {
+ JavaUtils.checkRegisterPermission();
// check whether URI is already registered
Class extends CanonicalizerSpi> registeredClass = canonicalizerHash.get(algorithmURI);
diff -r f9b67cec73d2 -r e49ef2cfd3e8 src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/KeyResolver.java
--- a/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/KeyResolver.java Thu Oct 02 00:46:45 2014 +0100
+++ b/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/KeyResolver.java Tue Oct 14 21:12:28 2014 +0100
@@ -39,6 +39,7 @@
import com.sun.org.apache.xml.internal.security.keys.keyresolver.implementations.X509SKIResolver;
import com.sun.org.apache.xml.internal.security.keys.keyresolver.implementations.X509SubjectNameResolver;
import com.sun.org.apache.xml.internal.security.keys.storage.StorageResolver;
+import com.sun.org.apache.xml.internal.security.utils.JavaUtils;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -172,9 +173,12 @@
* @throws InstantiationException
* @throws IllegalAccessException
From andrew at icedtea.classpath.org Tue Oct 14 20:43:05 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Tue, 14 Oct 2014 20:43:05 +0000
Subject: /hg/release/icedtea6-1.13: 8 new changesets
Message-ID:
changeset 436ae6447fa2 in /hg/release/icedtea6-1.13
details: http://icedtea.classpath.org/hg/release/icedtea6-1.13?cmd=changeset;node=436ae6447fa2
author: Andrew John Hughes
date: Wed Oct 08 17:23:59 2014 +0100
Bump to next version, b33.
2014-07-30 Andrew John Hughes
* Makefile.am:
(OPENJDK_VERSION): Bump to next release, b33.
changeset 04c718dce7b6 in /hg/release/icedtea6-1.13
details: http://icedtea.classpath.org/hg/release/icedtea6-1.13?cmd=changeset;node=04c718dce7b6
author: Andrew John Hughes
date: Wed Jul 30 16:17:30 2014 +0100
Drop upstreamed patch.
2014-07-30 Andrew John Hughes
* patches/openjdk/8010213-set_socketoptions_windows.patch:
Remove upstreamed patch.
* Makefile.am:
(ICEDTEA_PATCHES): Drop upstreamed patch.
changeset 34ab3ceed7cb in /hg/release/icedtea6-1.13
details: http://icedtea.classpath.org/hg/release/icedtea6-1.13?cmd=changeset;node=34ab3ceed7cb
author: Andrew John Hughes
date: Wed Oct 08 19:38:54 2014 +0100
Update to b33.
2014-10-08 Andrew John Hughes
* patches/openjdk/7027300-unsync_hashmap_causes_endless_loop.patch,
* patches/openjdk/7183251-netbeans_renders_text_wrong.patch,
* patches/openjdk/oj639-handle_fonts_with_no_canon_flag_set.patch:
Remove upstreamed patches.
* Makefile.am:
(OPENJDK_DATE): Bump to security update release date, 14th of October.
(OPENJDK_SHA256SUM): Update for b33 tarball.
(ICEDTEA_PATCHES): Drop above patches.
* NEWS: Add fixes from b33.
* patches/openjdk/6816311-compiler_name.patch:
Remove windows.h fragments added in OPENJDK6-41.
* patches/openjdk/p11cipher-6812738-native_cleanup.patch:
Remove fragment added by security update.
changeset 42669b895e22 in /hg/release/icedtea6-1.13
details: http://icedtea.classpath.org/hg/release/icedtea6-1.13?cmd=changeset;node=42669b895e22
author: Andrew John Hughes
date: Thu Oct 09 02:25:23 2014 +0100
Improve cryptography support.
S4963723: Implement SHA-224
S6578658: Request for raw RSA (NONEwithRSA) Signature support in SunMSCAPI
S6753664: Support SHA256 (and higher) in SunMSCAPI
S7033170: Cipher.getMaxAllowedKeyLength(String) throws NoSuchAlgorithmException
S7044060: Need to support NSA Suite B Cryptography algorithms
S7106773: 512 bits RSA key cannot work with SHA384 and SHA512
S7180907: Jarsigner -verify fails if rsa file used sha-256 with authenticated attributes
S8006935: Need to take care of long secret keys in HMAC/PRF compuation
S8049480: Current versions of Java can't verify jars signed and timestamped with Java 9
2014-10-08 Andrew John Hughes
* Makefile.am:
(ICEDTEA_PATCHES): Add new patches.
* NEWS: Updated.
* patches/openjdk/4963723-implement_sha-224.patch,
* patches/openjdk/6578658-sunmscapi_nonewithrsa.patch,
* patches/openjdk/6753664-sunmscapi_sha-256.patch,
* patches/openjdk/7033170-getmaxallowedkeylength_throws_exception.patch,
* patches/openjdk/7044060-support_nsa_suite_b.patch,
* patches/openjdk/7106773-512_bits_rsa.patch,
* patches/openjdk/7180907-jarsigner_sha-256.patch,
* patches/openjdk/8006935-long_keys_in_hmac_prf.patch,
* patches/openjdk/8049480-jarsigner_openjdk_9.patch:
Backports to improve cryptography support.
changeset 47eca861f17f in /hg/release/icedtea6-1.13
details: http://icedtea.classpath.org/hg/release/icedtea6-1.13?cmd=changeset;node=47eca861f17f
author: Andrew John Hughes
date: Thu Oct 09 02:28:51 2014 +0100
PR1904: [REGRESSION] Bug reports now lack IcedTea version & distribution packaging information
2014-10-09 Andrew John Hughes
* Makefile.am:
(ICEDTEA_PATCHES): Add new patch.
* NEWS: Updated.
* patches/pr1904-icedtea_and_distro_versioning.patch:
Backport of versioning fix from IcedTea 2.x.
changeset a934b804b555 in /hg/release/icedtea6-1.13
details: http://icedtea.classpath.org/hg/release/icedtea6-1.13?cmd=changeset;node=a934b804b555
author: Andrew John Hughes
date: Thu Oct 09 02:30:41 2014 +0100
S8017173, PR1688: XMLCipher with RSA_OAEP Key Transport algorithm can't be instantiated
2014-10-09 Andrew John Hughes
* Makefile.am:
(ICEDTEA_PATCHES): Add new patch.
* NEWS: Updated.
* patches/openjdk/8017173-xml_cipher_rsa_oaep_cant_be_instantiated.patch:
Backport of regression fix from 7u for PR1688.
changeset 97f32768dcad in /hg/release/icedtea6-1.13
details: http://icedtea.classpath.org/hg/release/icedtea6-1.13?cmd=changeset;node=97f32768dcad
author: Andrew John Hughes
date: Thu Oct 09 01:42:05 2014 +0100
PR1967: Move to new OpenJDK bug URL format
2014-08-29 Andrew John Hughes
* NEWS: Update OpenJDK bug URL.
changeset b2b4346dbdf5 in /hg/release/icedtea6-1.13
details: http://icedtea.classpath.org/hg/release/icedtea6-1.13?cmd=changeset;node=b2b4346dbdf5
author: Andrew John Hughes
date: Thu Oct 09 03:06:40 2014 +0100
Prepare for 1.13.5 release.
2014-10-09 Andrew John Hughes
* configure.ac: Bump to 1.13.5.
diffstat:
ChangeLog | 68 +
Makefile.am | 21 +-
NEWS | 58 +-
configure.ac | 2 +-
patches/openjdk/4963723-implement_sha-224.patch | 2334 +++++++
patches/openjdk/6578658-sunmscapi_nonewithrsa.patch | 602 +
patches/openjdk/6753664-sunmscapi_sha-256.patch | 640 +
patches/openjdk/6816311-compiler_name.patch | 49 +-
patches/openjdk/7027300-unsync_hashmap_causes_endless_loop.patch | 33 -
patches/openjdk/7033170-getmaxallowedkeylength_throws_exception.patch | 117 +
patches/openjdk/7044060-support_nsa_suite_b.patch | 3223 ++++++++++
patches/openjdk/7106773-512_bits_rsa.patch | 1336 ++++
patches/openjdk/7180907-jarsigner_sha-256.patch | 142 +
patches/openjdk/7183251-netbeans_renders_text_wrong.patch | 24 -
patches/openjdk/8006935-long_keys_in_hmac_prf.patch | 41 +
patches/openjdk/8010213-set_socketoptions_windows.patch | 29 -
patches/openjdk/8017173-xml_cipher_rsa_oaep_cant_be_instantiated.patch | 69 +
patches/openjdk/8049480-jarsigner_openjdk_9.patch | 295 +
patches/openjdk/oj639-handle_fonts_with_no_canon_flag_set.patch | 347 -
patches/openjdk/p11cipher-6812738-native_cleanup.patch | 62 +-
patches/pr1904-icedtea_and_distro_versioning.patch | 65 +
21 files changed, 9040 insertions(+), 517 deletions(-)
diffs (truncated from 9812 to 500 lines):
diff -r b50966a1ef00 -r b2b4346dbdf5 ChangeLog
--- a/ChangeLog Wed Jul 30 20:16:29 2014 +0100
+++ b/ChangeLog Thu Oct 09 03:06:40 2014 +0100
@@ -1,3 +1,71 @@
+2014-10-09 Andrew John Hughes
+
+ * configure.ac: Bump to 1.13.5.
+
+2014-08-29 Andrew John Hughes
+
+ * NEWS: Update OpenJDK bug URL.
+
+2014-10-09 Andrew John Hughes
+
+ * Makefile.am:
+ (ICEDTEA_PATCHES): Add new patch.
+ * NEWS: Updated.
+ * patches/openjdk/8017173-xml_cipher_rsa_oaep_cant_be_instantiated.patch:
+ Backport of regression fix from 7u for PR1688.
+
+2014-10-09 Andrew John Hughes
+
+ * Makefile.am:
+ (ICEDTEA_PATCHES): Add new patch.
+ * NEWS: Updated.
+ * patches/pr1904-icedtea_and_distro_versioning.patch:
+ Backport of versioning fix from IcedTea 2.x.
+
+2014-10-08 Andrew John Hughes
+
+ * Makefile.am:
+ (ICEDTEA_PATCHES): Add new patches.
+ * NEWS: Updated.
+ * patches/openjdk/4963723-implement_sha-224.patch,
+ * patches/openjdk/6578658-sunmscapi_nonewithrsa.patch,
+ * patches/openjdk/6753664-sunmscapi_sha-256.patch,
+ * patches/openjdk/7033170-getmaxallowedkeylength_throws_exception.patch,
+ * patches/openjdk/7044060-support_nsa_suite_b.patch,
+ * patches/openjdk/7106773-512_bits_rsa.patch,
+ * patches/openjdk/7180907-jarsigner_sha-256.patch,
+ * patches/openjdk/8006935-long_keys_in_hmac_prf.patch,
+ * patches/openjdk/8049480-jarsigner_openjdk_9.patch:
+ Backports to improve cryptography support.
+
+2014-10-08 Andrew John Hughes
+
+ * patches/openjdk/7027300-unsync_hashmap_causes_endless_loop.patch,
+ * patches/openjdk/7183251-netbeans_renders_text_wrong.patch,
+ * patches/openjdk/oj639-handle_fonts_with_no_canon_flag_set.patch:
+ Remove upstreamed patches.
+ * Makefile.am:
+ (OPENJDK_DATE): Bump to security update release date, 14th of October.
+ (OPENJDK_SHA256SUM): Update for b33 tarball.
+ (ICEDTEA_PATCHES): Drop above patches.
+ * NEWS: Add fixes from b33.
+ * patches/openjdk/6816311-compiler_name.patch:
+ Remove windows.h fragments added in OPENJDK6-41.
+ * patches/openjdk/p11cipher-6812738-native_cleanup.patch:
+ Remove fragment added by security update.
+
+2014-07-30 Andrew John Hughes
+
+ * patches/openjdk/8010213-set_socketoptions_windows.patch:
+ Remove upstreamed patch.
+ * Makefile.am:
+ (ICEDTEA_PATCHES): Drop upstreamed patch.
+
+2014-07-30 Andrew John Hughes
+
+ * Makefile.am:
+ (OPENJDK_VERSION): Bump to next release, b33.
+
2014-07-28 Andrew John Hughes
OJ39: Handle fonts with the non-canonical
diff -r b50966a1ef00 -r b2b4346dbdf5 Makefile.am
--- a/Makefile.am Wed Jul 30 20:16:29 2014 +0100
+++ b/Makefile.am Thu Oct 09 03:06:40 2014 +0100
@@ -1,8 +1,8 @@
# Dependencies
-OPENJDK_DATE = 15_jul_2014
-OPENJDK_SHA256SUM = 9a5ad1b599953baac1b6b34189b9487ac5dcdb367aac5cc0aa5aa49700e73871
-OPENJDK_VERSION = b32
+OPENJDK_DATE = 14_oct_2014
+OPENJDK_SHA256SUM = cabc35587a90fa81edd8ba8537c0454348c37456de27e407bbb66d52031a1293
+OPENJDK_VERSION = b33
OPENJDK_URL = https://java.net/downloads/openjdk6/
CACAO_VERSION = 68fe50ac34ec
@@ -496,7 +496,6 @@
patches/openjdk/8009165-inappropriate_method_in_reflectutil.patch \
patches/openjdk/8009217-fix_test_compile.patch \
patches/openjdk/8009610-blacklist_malware_certificate.patch \
- patches/openjdk/8010213-set_socketoptions_windows.patch \
patches/openjdk/8010714-xml_dsig_retrievalmethod.patch \
patches/openjdk/8011154-awt_regression.patch \
patches/openjdk/8011313-OCSP_timeout_wrong_value.patch \
@@ -608,9 +607,17 @@
patches/shark_fixes_from_8003868.patch \
patches/8003992_support_6.patch \
patches/shark-drop_compile_method_arg_following_7083786.patch \
- patches/openjdk/7027300-unsync_hashmap_causes_endless_loop.patch \
- patches/openjdk/7183251-netbeans_renders_text_wrong.patch \
- patches/openjdk/oj639-handle_fonts_with_no_canon_flag_set.patch
+ patches/openjdk/4963723-implement_sha-224.patch \
+ patches/openjdk/7180907-jarsigner_sha-256.patch \
+ patches/openjdk/8049480-jarsigner_openjdk_9.patch \
+ patches/openjdk/6753664-sunmscapi_sha-256.patch \
+ patches/openjdk/6578658-sunmscapi_nonewithrsa.patch \
+ patches/openjdk/7033170-getmaxallowedkeylength_throws_exception.patch \
+ patches/openjdk/7044060-support_nsa_suite_b.patch \
+ patches/openjdk/8006935-long_keys_in_hmac_prf.patch \
+ patches/openjdk/7106773-512_bits_rsa.patch \
+ patches/pr1904-icedtea_and_distro_versioning.patch \
+ patches/openjdk/8017173-xml_cipher_rsa_oaep_cant_be_instantiated.patch
if WITH_RHINO
ICEDTEA_PATCHES += \
diff -r b50966a1ef00 -r b2b4346dbdf5 NEWS
--- a/NEWS Wed Jul 30 20:16:29 2014 +0100
+++ b/NEWS Thu Oct 09 03:06:40 2014 +0100
@@ -1,6 +1,6 @@
Key:
-SX - http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=X
+SX - https://bugs.openjdk.java.net/browse/JDK-X
PRX - http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=X
RHX - https://bugzilla.redhat.com/show_bug.cgi?id=X
DX - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=X
@@ -12,10 +12,62 @@
CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
-New in release 1.13.5 (2014-10-YY):
+New in release 1.13.5 (2014-10-14):
-* Backports
+* Security fixes
+ - S8015256: Better class accessibility
+ - S8022783, CVE-2014-6504: Optimize C2 optimizations
+ - S8035162: Service printing service
+ - S8035781: Improve equality for annotations
+ - S8036805: Correct linker method lookup.
+ - S8036810: Correct linker field lookup
+ - S8037066, CVE-2014-6457: Secure transport layer
+ - S8037846, CVE-2014-6558: Ensure streaming of input cipher streams
+ - S8038899: Safer safepoints
+ - S8038903: More native monitor monitoring
+ - S8038908: Make Signature more robust
+ - S8038913: Bolster XML support
+ - S8039509, CVE-2014-6512: Wrap sockets more thoroughly
+ - S8039533, CVE-2014-6517: Higher resolution resolvers
+ - S8041540, CVE-2014-6511: Better use of pages in font processing
+ - S8041545: Better validation of generated rasters
+ - S8041564, CVE-2014-6506: Improved management of logger resources
+ - S8041717, CVE-2014-6519: Issue with class file parser
+ - S8042609, CVE-2014-6513: Limit splashiness of splash images
+ - S8042797, CVE-2014-6502: Avoid strawberries in LogRecord
+ - S8044274, CVE-2014-6531: Proper property processing
+* Import of OpenJDK6 b33
+ - OJ37: OpenJDK6-b32 cannot be built on Windows
- OJ39: Handle fonts with the non-canonical processing flag set
+ - OJ41: OpenJDK6 should be compatible with Windows SDK 7.1
+ - OJ42: Remove @Override annotation on interfaces added by 2014/10/14 security fixes.
+ - S6967684: httpserver using a non thread-safe SimpleDateFormat
+ - S7033534: Two tests fail just against jdk7 b136
+ - S7160837: DigestOutputStream does not turn off digest calculation when "close()" is called
+ - S7172149: ArrayIndexOutOfBoundsException from Signature.verify
+ - S8010213: Some api/javax_net/SocketFactory tests fail in 7u25 nightly build
+ - S8012637: Adjust CipherInputStream class to work in AEAD/GCM mode
+ - S8028192: Use of PKCS11-NSS provider in FIPS mode broken
+ - S8038000: java.awt.image.RasterFormatException: Incorrect scanline stride
+ - S8039396: NPE when writing a class descriptor object to a custom ObjectOutputStream
+ - S8042603: 'SafepointPollOffset' was not declared in static member function 'static bool Arguments::check_vm_args_consistency()'
+ - S8042850: Extra unused entries in ICU ScriptCodes enum
+ - S8052162: REGRESSION: sun/java2d/cmm/ColorConvertOp tests fail since 7u71 b01
+ - S8053963: (dc) Use DatagramChannel.receive() instead of read() in connect()
+ * Backports
+ - S4963723: Implement SHA-224
+ - S6578658: Request for raw RSA (NONEwithRSA) Signature support in SunMSCAPI
+ - S6753664: Support SHA256 (and higher) in SunMSCAPI
+ - S7033170: Cipher.getMaxAllowedKeyLength(String) throws NoSuchAlgorithmException
+ - S7044060: Need to support NSA Suite B Cryptography algorithms
+ - S7106773: 512 bits RSA key cannot work with SHA384 and SHA512
+ - S7180907: Jarsigner -verify fails if rsa file used sha-256 with authenticated attributes
+ - S8006935: Need to take care of long secret keys in HMAC/PRF compuation
+ - S8017173, PR1688: XMLCipher with RSA_OAEP Key Transport algorithm can't be instantiated
+ - S8049480: Current versions of Java can't verify jars signed and timestamped with Java 9
+* Bug fixes
+ - PR1904: [REGRESSION] Bug reports now lack IcedTea version & distribution packaging information
+ - PR1967: Move to new OpenJDK bug URL format
New in release 1.13.4 (2014-07-15):
diff -r b50966a1ef00 -r b2b4346dbdf5 configure.ac
--- a/configure.ac Wed Jul 30 20:16:29 2014 +0100
+++ b/configure.ac Thu Oct 09 03:06:40 2014 +0100
@@ -1,4 +1,4 @@
-AC_INIT([icedtea6],[1.13.5pre],[distro-pkg-dev at openjdk.java.net])
+AC_INIT([icedtea6],[1.13.5],[distro-pkg-dev at openjdk.java.net])
AC_CANONICAL_HOST
AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE([1.9 tar-pax foreign])
diff -r b50966a1ef00 -r b2b4346dbdf5 patches/openjdk/4963723-implement_sha-224.patch
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/openjdk/4963723-implement_sha-224.patch Thu Oct 09 03:06:40 2014 +0100
@@ -0,0 +1,2334 @@
+diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/crypto/provider/HmacCore.java openjdk/jdk/src/share/classes/com/sun/crypto/provider/HmacCore.java
+--- openjdk.orig/jdk/src/share/classes/com/sun/crypto/provider/HmacCore.java 2014-07-14 04:24:43.000000000 +0100
++++ openjdk/jdk/src/share/classes/com/sun/crypto/provider/HmacCore.java 2014-10-08 23:26:07.127607311 +0100
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2002, 2012, 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
+@@ -38,16 +38,16 @@
+ * This class constitutes the core of HMAC- algorithms, where
+ * can be SHA1 or MD5, etc.
+ *
+- * It also contains the implementation classes for the SHA-256,
++ * It also contains the implementation classes for SHA-224, SHA-256,
+ * SHA-384, and SHA-512 HMACs.
+ *
+ * @author Jan Luehe
+ */
+-final class HmacCore implements Cloneable {
++abstract class HmacCore extends MacSpi implements Cloneable {
+
+- private final MessageDigest md;
+- private final byte[] k_ipad; // inner padding - key XORd with ipad
+- private final byte[] k_opad; // outer padding - key XORd with opad
++ private MessageDigest md;
++ private byte[] k_ipad; // inner padding - key XORd with ipad
++ private byte[] k_opad; // outer padding - key XORd with opad
+ private boolean first; // Is this the first data to be processed?
+
+ private final int blockLen;
+@@ -73,22 +73,11 @@
+ }
+
+ /**
+- * Constructor used for cloning.
+- */
+- private HmacCore(HmacCore other) throws CloneNotSupportedException {
+- this.md = (MessageDigest)other.md.clone();
+- this.blockLen = other.blockLen;
+- this.k_ipad = (byte[])other.k_ipad.clone();
+- this.k_opad = (byte[])other.k_opad.clone();
+- this.first = other.first;
+- }
+-
+- /**
+ * Returns the length of the HMAC in bytes.
+ *
+ * @return the HMAC length in bytes.
+ */
+- int getDigestLength() {
++ protected int engineGetMacLength() {
+ return this.md.getDigestLength();
+ }
+
+@@ -103,9 +92,8 @@
+ * @exception InvalidAlgorithmParameterException if the given algorithm
+ * parameters are inappropriate for this MAC.
+ */
+- void init(Key key, AlgorithmParameterSpec params)
++ protected void engineInit(Key key, AlgorithmParameterSpec params)
+ throws InvalidKeyException, InvalidAlgorithmParameterException {
+-
+ if (params != null) {
+ throw new InvalidAlgorithmParameterException
+ ("HMAC does not use parameters");
+@@ -140,7 +128,7 @@
+ Arrays.fill(secret, (byte)0);
+ secret = null;
+
+- reset();
++ engineReset();
+ }
+
+ /**
+@@ -148,7 +136,7 @@
+ *
+ * @param input the input byte to be processed.
+ */
+- void update(byte input) {
++ protected void engineUpdate(byte input) {
+ if (first == true) {
+ // compute digest for 1st pass; start with inner pad
+ md.update(k_ipad);
+@@ -167,7 +155,7 @@
+ * @param offset the offset in input
where the input starts.
+ * @param len the number of bytes to process.
+ */
+- void update(byte input[], int offset, int len) {
++ protected void engineUpdate(byte input[], int offset, int len) {
+ if (first == true) {
+ // compute digest for 1st pass; start with inner pad
+ md.update(k_ipad);
+@@ -178,7 +166,13 @@
+ md.update(input, offset, len);
+ }
+
+- void update(ByteBuffer input) {
++ /**
++ * Processes the input.remaining()
bytes in the ByteBuffer
++ * input
.
++ *
++ * @param input the input byte buffer.
++ */
++ protected void engineUpdate(ByteBuffer input) {
+ if (first == true) {
+ // compute digest for 1st pass; start with inner pad
+ md.update(k_ipad);
+@@ -194,7 +188,7 @@
+ *
+ * @return the HMAC result.
+ */
+- byte[] doFinal() {
++ protected byte[] engineDoFinal() {
+ if (first == true) {
+ // compute digest for 1st pass; start with inner pad
+ md.update(k_ipad);
+@@ -223,7 +217,7 @@
+ * Resets the HMAC for further use, maintaining the secret key that the
+ * HMAC was initialized with.
+ */
+- void reset() {
++ protected void engineReset() {
+ if (first == false) {
+ md.reset();
+ first = true;
+@@ -234,118 +228,38 @@
+ * Clones this object.
+ */
+ public Object clone() throws CloneNotSupportedException {
+- return new HmacCore(this);
++ HmacCore copy = (HmacCore) super.clone();
++ copy.md = (MessageDigest) md.clone();
++ copy.k_ipad = k_ipad.clone();
++ copy.k_opad = k_opad.clone();
++ return copy;
++ }
++
++ // nested static class for the HmacSHA224 implementation
++ public static final class HmacSHA224 extends HmacCore {
++ public HmacSHA224() throws NoSuchAlgorithmException {
++ super("SHA-224", 64);
++ }
+ }
+
+ // nested static class for the HmacSHA256 implementation
+- public static final class HmacSHA256 extends MacSpi implements Cloneable {
+- private final HmacCore core;
++ public static final class HmacSHA256 extends HmacCore {
+ public HmacSHA256() throws NoSuchAlgorithmException {
+- SunJCE.ensureIntegrity(getClass());
+- core = new HmacCore("SHA-256", 64);
+- }
+- private HmacSHA256(HmacSHA256 base) throws CloneNotSupportedException {
+- core = (HmacCore)base.core.clone();
+- }
+- protected int engineGetMacLength() {
+- return core.getDigestLength();
+- }
+- protected void engineInit(Key key, AlgorithmParameterSpec params)
+- throws InvalidKeyException, InvalidAlgorithmParameterException {
+- core.init(key, params);
+- }
+- protected void engineUpdate(byte input) {
+- core.update(input);
+- }
+- protected void engineUpdate(byte input[], int offset, int len) {
+- core.update(input, offset, len);
+- }
+- protected void engineUpdate(ByteBuffer input) {
+- core.update(input);
+- }
+- protected byte[] engineDoFinal() {
+- return core.doFinal();
+- }
+- protected void engineReset() {
+- core.reset();
+- }
+- public Object clone() throws CloneNotSupportedException {
+- return new HmacSHA256(this);
++ super("SHA-256", 64);
+ }
+ }
+
+ // nested static class for the HmacSHA384 implementation
+- public static final class HmacSHA384 extends MacSpi implements Cloneable {
+- private final HmacCore core;
++ public static final class HmacSHA384 extends HmacCore {
+ public HmacSHA384() throws NoSuchAlgorithmException {
+- SunJCE.ensureIntegrity(getClass());
+- core = new HmacCore("SHA-384", 128);
+- }
+- private HmacSHA384(HmacSHA384 base) throws CloneNotSupportedException {
+- core = (HmacCore)base.core.clone();
+- }
+- protected int engineGetMacLength() {
+- return core.getDigestLength();
+- }
+- protected void engineInit(Key key, AlgorithmParameterSpec params)
+- throws InvalidKeyException, InvalidAlgorithmParameterException {
+- core.init(key, params);
+- }
+- protected void engineUpdate(byte input) {
+- core.update(input);
+- }
+- protected void engineUpdate(byte input[], int offset, int len) {
+- core.update(input, offset, len);
+- }
+- protected void engineUpdate(ByteBuffer input) {
+- core.update(input);
+- }
+- protected byte[] engineDoFinal() {
+- return core.doFinal();
+- }
+- protected void engineReset() {
+- core.reset();
+- }
+- public Object clone() throws CloneNotSupportedException {
+- return new HmacSHA384(this);
++ super("SHA-384", 128);
+ }
+ }
+
+ // nested static class for the HmacSHA512 implementation
+- public static final class HmacSHA512 extends MacSpi implements Cloneable {
+- private final HmacCore core;
++ public static final class HmacSHA512 extends HmacCore {
+ public HmacSHA512() throws NoSuchAlgorithmException {
+- SunJCE.ensureIntegrity(getClass());
+- core = new HmacCore("SHA-512", 128);
+- }
+- private HmacSHA512(HmacSHA512 base) throws CloneNotSupportedException {
+- core = (HmacCore)base.core.clone();
+- }
+- protected int engineGetMacLength() {
+- return core.getDigestLength();
+- }
+- protected void engineInit(Key key, AlgorithmParameterSpec params)
+- throws InvalidKeyException, InvalidAlgorithmParameterException {
+- core.init(key, params);
+- }
+- protected void engineUpdate(byte input) {
+- core.update(input);
+- }
+- protected void engineUpdate(byte input[], int offset, int len) {
+- core.update(input, offset, len);
+- }
+- protected void engineUpdate(ByteBuffer input) {
+- core.update(input);
+- }
+- protected byte[] engineDoFinal() {
+- return core.doFinal();
+- }
+- protected void engineReset() {
+- core.reset();
+- }
+- public Object clone() throws CloneNotSupportedException {
+- return new HmacSHA512(this);
++ super("SHA-512", 128);
+ }
+ }
+-
+ }
+diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/crypto/provider/HmacMD5.java openjdk/jdk/src/share/classes/com/sun/crypto/provider/HmacMD5.java
+--- openjdk.orig/jdk/src/share/classes/com/sun/crypto/provider/HmacMD5.java 2014-07-14 04:24:43.000000000 +0100
++++ openjdk/jdk/src/share/classes/com/sun/crypto/provider/HmacMD5.java 2014-10-08 23:26:07.127607311 +0100
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 1998, 2012, 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
+@@ -37,11 +37,7 @@
+ *
+ * @author Jan Luehe
+ */
+-public final class HmacMD5 extends MacSpi implements Cloneable {
+-
+- private HmacCore hmac;
+- private static final int MD5_BLOCK_LENGTH = 64;
+-
++public final class HmacMD5 extends HmacCore {
+ /**
+ * Standard constructor, creates a new HmacMD5 instance.
+ * Verify the SunJCE provider in the constructor.
+@@ -50,92 +46,6 @@
+ * its own integrity
+ */
+ public HmacMD5() throws NoSuchAlgorithmException {
+- if (!SunJCE.verifySelfIntegrity(this.getClass())) {
From bugzilla-daemon at icedtea.classpath.org Tue Oct 14 20:43:13 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Tue, 14 Oct 2014 20:43:13 +0000
Subject: [Bug 1904] [IcedTea6] [REGRESSION] Bug reports now lack IcedTea
version & distribution packaging information
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1904
--- Comment #2 from hg commits ---
details:
http://icedtea.classpath.org//hg/release/icedtea6-1.13?cmd=changeset;node=47eca861f17f
author: Andrew John Hughes
date: Thu Oct 09 02:28:51 2014 +0100
PR1904: [REGRESSION] Bug reports now lack IcedTea version & distribution
packaging information
2014-10-09 Andrew John Hughes
* Makefile.am:
(ICEDTEA_PATCHES): Add new patch.
* NEWS: Updated.
* patches/pr1904-icedtea_and_distro_versioning.patch:
Backport of versioning fix from IcedTea 2.x.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From bugzilla-daemon at icedtea.classpath.org Tue Oct 14 20:43:20 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Tue, 14 Oct 2014 20:43:20 +0000
Subject: [Bug 1688] 8017173 regression introduced in recent icedtea6 and
icedtea7 releases
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1688
--- Comment #2 from hg commits ---
details:
http://icedtea.classpath.org//hg/release/icedtea6-1.13?cmd=changeset;node=a934b804b555
author: Andrew John Hughes
date: Thu Oct 09 02:30:41 2014 +0100
S8017173, PR1688: XMLCipher with RSA_OAEP Key Transport algorithm can't be
instantiated
2014-10-09 Andrew John Hughes
* Makefile.am:
(ICEDTEA_PATCHES): Add new patch.
* NEWS: Updated.
*
patches/openjdk/8017173-xml_cipher_rsa_oaep_cant_be_instantiated.patch:
Backport of regression fix from 7u for PR1688.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From bugzilla-daemon at icedtea.classpath.org Tue Oct 14 20:43:29 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Tue, 14 Oct 2014 20:43:29 +0000
Subject: [Bug 1967] [IcedTea6] Move to new OpenJDK bug URL format
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1967
--- Comment #2 from hg commits ---
details:
http://icedtea.classpath.org//hg/release/icedtea6-1.13?cmd=changeset;node=97f32768dcad
author: Andrew John Hughes
date: Thu Oct 09 01:42:05 2014 +0100
PR1967: Move to new OpenJDK bug URL format
2014-08-29 Andrew John Hughes
* NEWS: Update OpenJDK bug URL.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From andrew at icedtea.classpath.org Tue Oct 14 21:12:03 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Tue, 14 Oct 2014 21:12:03 +0000
Subject: /hg/release/icedtea7-2.5: Bump to icedtea-2.5.3.
Message-ID:
changeset 121ad7411fd1 in /hg/release/icedtea7-2.5
details: http://icedtea.classpath.org/hg/release/icedtea7-2.5?cmd=changeset;node=121ad7411fd1
author: Andrew John Hughes
date: Tue Oct 14 22:11:50 2014 +0100
Bump to icedtea-2.5.3.
2014-10-14 Andrew John Hughes
* patches/hotspot/aarch64/20140715-8030763-validate_global_memory_allocation.patch,
* patches/hotspot/aarch64/20140715-8032536-jvm_resolves_wrong_method.patch,
* patches/hotspot/aarch64/20140715-8035119-fix_exceptions_to_bytecode_verification.patch,
* patches/hotspot/aarch64/20140715-8036800-attribute_oom_to_right_code.patch,
* patches/hotspot/aarch64/20140715-8037076-check_constant_pool_constants.patch,
* patches/hotspot/aarch64/20140715-8037157-verify_init_call.patch,
* patches/hotspot/aarch64/20140715-8037167-better_method_signature_resolution.patch,
* patches/hotspot/aarch64/20140715-8043454-8037157_test_case_fix.patch:
Remove patches included in latest AArch64 drop.
* Makefile.am:
(CORBA_CHANGESET): Update to icedtea-2.5.3 tag.
(JAXP_CHANGESET): Likewise.
(JAXWS_CHANGESET): Likewise.
(JDK_CHANGESET): Likewise.
(LANGTOOLS_CHANGESET): Likewise.
(OPENJDK_CHANGESET): Likewise.
(CORBA_SHA256SUM): Likewise.
(JAXP_SHA256SUM): Likewise.
(JAXWS_SHA256SUM): Likewise.
(JDK_SHA256SUM): Likewise.
(LANGTOOLS_SHA256SUM): Likewise.
(OPENJDK_SHA256SUM): Likewise.
(ICEDTEA_PATCHES): Remove old AArch64 security patches and
add new ones from the 2014/10/14 update.
* NEWS: List changes from u71 and AArch64 port. Set release
date to today.
* configure.ac: Bump to 2.5.3.
* hotspot.map.in: Update to icedtea-2.5.3 tag for default.
Update AArch64 to jdk7u60_b04_aarch64_834 tag.
* patches/boot/ecj-multicatch.patch:
Remove defunct RSAClientKeyExchange patch. Add new cases
in CipherInputStream and CipherOutputStream.
* patches/boot/ecj-stringswitch.patch: Add new case in
AnnotationInvocationHandler.
* patches/hotspot/aarch64/20141014-8015256-better_class_accessibility.patch,
* patches/hotspot/aarch64/20141014-8036533-method_for_correct_defaults.patch,
* patches/hotspot/aarch64/20141014-8036805-correct_linker_method_lookup.patch,
* patches/hotspot/aarch64/20141014-8038898-safer_safepoints.patch,
* patches/hotspot/aarch64/20141014-8038903-more_native_monitor_monitoring.patch,
* patches/hotspot/aarch64/20141014-8041717-issue_with_class_file_parser.patch,
* patches/hotspot/aarch64/20141014-8042603-safepointpolloffset.patch,
* patches/hotspot/aarch64/20141014-8044269-analysis_of_archive_files.patch,
* patches/hotspot/aarch64/20141014-8046213-testemptybootstrapmethodsattr_failure.patch,
* patches/hotspot/aarch64/20141014-8050485-super_causes_verifyerror.patch:
OpenJDK 8 version of 2014/10/14 HotSpot security patches for AArch64.
diffstat:
ChangeLog | 48 +
Makefile.am | 42 +-
NEWS | 62 +-
configure.ac | 2 +-
hotspot.map.in | 4 +-
patches/boot/ecj-multicatch.patch | 387 +++++----
patches/boot/ecj-stringswitch.patch | 21 +
patches/hotspot/aarch64/20140715-8030763-validate_global_memory_allocation.patch | 233 ------
patches/hotspot/aarch64/20140715-8032536-jvm_resolves_wrong_method.patch | 77 -
patches/hotspot/aarch64/20140715-8035119-fix_exceptions_to_bytecode_verification.patch | 119 ---
patches/hotspot/aarch64/20140715-8036800-attribute_oom_to_right_code.patch | 40 -
patches/hotspot/aarch64/20140715-8037076-check_constant_pool_constants.patch | 37 -
patches/hotspot/aarch64/20140715-8037157-verify_init_call.patch | 25 -
patches/hotspot/aarch64/20140715-8037167-better_method_signature_resolution.patch | 67 -
patches/hotspot/aarch64/20140715-8043454-8037157_test_case_fix.patch | 48 -
patches/hotspot/aarch64/20141014-8015256-better_class_accessibility.patch | 209 +++++
patches/hotspot/aarch64/20141014-8036533-method_for_correct_defaults.patch | 291 +++++++
patches/hotspot/aarch64/20141014-8036805-correct_linker_method_lookup.patch | 221 +++++
patches/hotspot/aarch64/20141014-8038898-safer_safepoints.patch | 21 +
patches/hotspot/aarch64/20141014-8038903-more_native_monitor_monitoring.patch | 30 +
patches/hotspot/aarch64/20141014-8041717-issue_with_class_file_parser.patch | 33 +
patches/hotspot/aarch64/20141014-8042603-safepointpolloffset.patch | 22 +
patches/hotspot/aarch64/20141014-8044269-analysis_of_archive_files.patch | 250 ++++++
patches/hotspot/aarch64/20141014-8046213-testemptybootstrapmethodsattr_failure.patch | 24 +
patches/hotspot/aarch64/20141014-8050485-super_causes_verifyerror.patch | 259 ++++++
25 files changed, 1720 insertions(+), 852 deletions(-)
diffs (truncated from 2852 to 500 lines):
diff -r 2b5024a64ce9 -r 121ad7411fd1 ChangeLog
--- a/ChangeLog Thu Oct 02 01:04:25 2014 +0100
+++ b/ChangeLog Tue Oct 14 22:11:50 2014 +0100
@@ -1,3 +1,51 @@
+2014-10-14 Andrew John Hughes
+
+ * patches/hotspot/aarch64/20140715-8030763-validate_global_memory_allocation.patch,
+ * patches/hotspot/aarch64/20140715-8032536-jvm_resolves_wrong_method.patch,
+ * patches/hotspot/aarch64/20140715-8035119-fix_exceptions_to_bytecode_verification.patch,
+ * patches/hotspot/aarch64/20140715-8036800-attribute_oom_to_right_code.patch,
+ * patches/hotspot/aarch64/20140715-8037076-check_constant_pool_constants.patch,
+ * patches/hotspot/aarch64/20140715-8037157-verify_init_call.patch,
+ * patches/hotspot/aarch64/20140715-8037167-better_method_signature_resolution.patch,
+ * patches/hotspot/aarch64/20140715-8043454-8037157_test_case_fix.patch:
+ Remove patches included in latest AArch64 drop.
+ * Makefile.am:
+ (CORBA_CHANGESET): Update to icedtea-2.5.3 tag.
+ (JAXP_CHANGESET): Likewise.
+ (JAXWS_CHANGESET): Likewise.
+ (JDK_CHANGESET): Likewise.
+ (LANGTOOLS_CHANGESET): Likewise.
+ (OPENJDK_CHANGESET): Likewise.
+ (CORBA_SHA256SUM): Likewise.
+ (JAXP_SHA256SUM): Likewise.
+ (JAXWS_SHA256SUM): Likewise.
+ (JDK_SHA256SUM): Likewise.
+ (LANGTOOLS_SHA256SUM): Likewise.
+ (OPENJDK_SHA256SUM): Likewise.
+ (ICEDTEA_PATCHES): Remove old AArch64 security patches and
+ add new ones from the 2014/10/14 update.
+ * NEWS: List changes from u71 and AArch64 port. Set release
+ date to today.
+ * configure.ac: Bump to 2.5.3.
+ * hotspot.map.in: Update to icedtea-2.5.3 tag for default.
+ Update AArch64 to jdk7u60_b04_aarch64_834 tag.
+ * patches/boot/ecj-multicatch.patch:
+ Remove defunct RSAClientKeyExchange patch. Add new cases
+ in CipherInputStream and CipherOutputStream.
+ * patches/boot/ecj-stringswitch.patch: Add new case in
+ AnnotationInvocationHandler.
+ * patches/hotspot/aarch64/20141014-8015256-better_class_accessibility.patch,
+ * patches/hotspot/aarch64/20141014-8036533-method_for_correct_defaults.patch,
+ * patches/hotspot/aarch64/20141014-8036805-correct_linker_method_lookup.patch,
+ * patches/hotspot/aarch64/20141014-8038898-safer_safepoints.patch,
+ * patches/hotspot/aarch64/20141014-8038903-more_native_monitor_monitoring.patch,
+ * patches/hotspot/aarch64/20141014-8041717-issue_with_class_file_parser.patch,
+ * patches/hotspot/aarch64/20141014-8042603-safepointpolloffset.patch,
+ * patches/hotspot/aarch64/20141014-8044269-analysis_of_archive_files.patch,
+ * patches/hotspot/aarch64/20141014-8046213-testemptybootstrapmethodsattr_failure.patch,
+ * patches/hotspot/aarch64/20141014-8050485-super_causes_verifyerror.patch:
+ OpenJDK 8 version of 2014/10/14 HotSpot security patches for AArch64.
+
2014-10-01 Andrew John Hughes
* Makefile.am:
diff -r 2b5024a64ce9 -r 121ad7411fd1 Makefile.am
--- a/Makefile.am Thu Oct 02 01:04:25 2014 +0100
+++ b/Makefile.am Tue Oct 14 22:11:50 2014 +0100
@@ -4,19 +4,19 @@
BUILD_VERSION = b32
COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(BUILD_VERSION)
-CORBA_CHANGESET = 090fc686cf0b
-JAXP_CHANGESET = a4e4e763970f
-JAXWS_CHANGESET = dcb5afbd4d7d
-JDK_CHANGESET = 16dfadea81a1
-LANGTOOLS_CHANGESET = 0e3fd42f2696
-OPENJDK_CHANGESET = 6f40002d1813
+CORBA_CHANGESET = 4aed5efcd8df
+JAXP_CHANGESET = c903902aadd7
+JAXWS_CHANGESET = d3bef5fd93db
+JDK_CHANGESET = 6b81c7cc733e
+LANGTOOLS_CHANGESET = a64b8bf851a9
+OPENJDK_CHANGESET = 49dc79ef05ab
-CORBA_SHA256SUM = 65b0cb4638f08fe44d7d6d79af042e75747098bf4118003e141e87135ae6dcaa
-JAXP_SHA256SUM = 722493ec24c4fb4023f1d65b9334dee3526f0e347c249e074a45421ea870ecc5
-JAXWS_SHA256SUM = f3c2915ae2bdf3c2aab82a0e700c05512850063baf06fb2c2fb5896cabce110e
-JDK_SHA256SUM = dc00f5c39eb0fe8ccbf26aafe62e0eccf9785651f3ef8e090db1c62a970802d8
-LANGTOOLS_SHA256SUM = f560c641a6808726ed6cafdf6b1f29e98fc85faea56b1e751696892a2f5a1046
-OPENJDK_SHA256SUM = f2d69cdffd2bb14b744f4e25cb5ef2d0590926d1cb7da5868c2025479b2c74e1
+CORBA_SHA256SUM = 8ceb2cd60782b7fc14b88e3d366f273873fa5436cf0e36b86406c0905b7dc43c
+JAXP_SHA256SUM = 2d13a82078f3f2b8831d1e670e5e75719336a56490df64f16ab7647674a272ef
+JAXWS_SHA256SUM = 5a63d85307203f1aed1e31459ad5e32687909e0640d424ff6f540d9b1cceeb1e
+JDK_SHA256SUM = 40c4dda969be0ecd213e79269184e19cfc32100b83777dc529b3cf4b6aa3e12f
+LANGTOOLS_SHA256SUM = 516f6c21719f4b5a2092847c147cde7890c5a30d4aed9425ff667c0164ef1dd0
+OPENJDK_SHA256SUM = 3ba1a30762f5d5890e8ee6af11f52213ab9c574c01f07c75a081c42034f5d5c9
DROP_URL = http://icedtea.classpath.org/download/drops
@@ -279,14 +279,16 @@
if WITH_ALT_HSBUILD
ICEDTEA_PATCHES += patches/hotspot/aarch64/werror.patch \
- patches/hotspot/aarch64/20140715-8030763-validate_global_memory_allocation.patch \
- patches/hotspot/aarch64/20140715-8032536-jvm_resolves_wrong_method.patch \
- patches/hotspot/aarch64/20140715-8036800-attribute_oom_to_right_code.patch \
- patches/hotspot/aarch64/20140715-8035119-fix_exceptions_to_bytecode_verification.patch \
- patches/hotspot/aarch64/20140715-8037076-check_constant_pool_constants.patch \
- patches/hotspot/aarch64/20140715-8037157-verify_init_call.patch \
- patches/hotspot/aarch64/20140715-8043454-8037157_test_case_fix.patch \
- patches/hotspot/aarch64/20140715-8037167-better_method_signature_resolution.patch
+ patches/hotspot/aarch64/20141014-8015256-better_class_accessibility.patch \
+ patches/hotspot/aarch64/20141014-8036533-method_for_correct_defaults.patch \
+ patches/hotspot/aarch64/20141014-8036805-correct_linker_method_lookup.patch \
+ patches/hotspot/aarch64/20141014-8038898-safer_safepoints.patch \
+ patches/hotspot/aarch64/20141014-8038903-more_native_monitor_monitoring.patch \
+ patches/hotspot/aarch64/20141014-8041717-issue_with_class_file_parser.patch \
+ patches/hotspot/aarch64/20141014-8042603-safepointpolloffset.patch \
+ patches/hotspot/aarch64/20141014-8044269-analysis_of_archive_files.patch \
+ patches/hotspot/aarch64/20141014-8046213-testemptybootstrapmethodsattr_failure.patch \
+ patches/hotspot/aarch64/20141014-8050485-super_causes_verifyerror.patch
if ENABLE_SYSTEMTAP
ICEDTEA_PATCHES += \
patches/hotspot/aarch64/systemtap_gc.patch
diff -r 2b5024a64ce9 -r 121ad7411fd1 NEWS
--- a/NEWS Thu Oct 02 01:04:25 2014 +0100
+++ b/NEWS Tue Oct 14 22:11:50 2014 +0100
@@ -12,13 +12,48 @@
CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
-New in release 2.5.3 (2014-10-XX):
+New in release 2.5.3 (2014-10-14):
+* Security fixes
+ - S8015256: Better class accessibility
+ - S8022783, CVE-2014-6504: Optimize C2 optimizations
+ - S8035162: Service printing service
+ - S8035781: Improve equality for annotations
+ - S8036805: Correct linker method lookup.
+ - S8036810: Correct linker field lookup
+ - S8036936: Use local locales
+ - S8037066, CVE-2014-6457: Secure transport layer
+ - S8037846, CVE-2014-6558: Ensure streaming of input cipher streams
+ - S8038364: Use certificate exceptions correctly
+ - S8038899: Safer safepoints
+ - S8038903: More native monitor monitoring
+ - S8038908: Make Signature more robust
+ - S8038913: Bolster XML support
+ - S8039509, CVE-2014-6512: Wrap sockets more thoroughly
+ - S8039533, CVE-2014-6517: Higher resolution resolvers
+ - S8041540, CVE-2014-6511: Better use of pages in font processing
+ - S8041529: Better parameterization of parameter lists
+ - S8041545: Better validation of generated rasters
+ - S8041564, CVE-2014-6506: Improved management of logger resources
+ - S8041717, CVE-2014-6519: Issue with class file parser
+ - S8042609, CVE-2014-6513: Limit splashiness of splash images
+ - S8042797, CVE-2014-6502: Avoid strawberries in LogRecord
+ - S8044274, CVE-2014-6531: Proper property processing
* Backports
- S4963723: Implement SHA-224
- S7044060: Need to support NSA Suite B Cryptography algorithms
- S7122142: (ann) Race condition between isAnnotationPresent and getAnnotations
+ - S7160837: DigestOutputStream does not turn off digest calculation when "close()" is called
- S8006935: Need to take care of long secret keys in HMAC/PRF compuation
+ - S8012637: Adjust CipherInputStream class to work in AEAD/GCM mode
+ - S8028192: Use of PKCS11-NSS provider in FIPS mode broken
+ - S8038000: java.awt.image.RasterFormatException: Incorrect scanline stride
+ - S8039396: NPE when writing a class descriptor object to a custom ObjectOutputStream
+ - S8042603: 'SafepointPollOffset' was not declared in static member function 'static bool Arguments::check_vm_args_consistency()'
+ - S8042850: Extra unused entries in ICU ScriptCodes enum
+ - S8052162: REGRESSION: sun/java2d/cmm/ColorConvertOp tests fail since 7u71 b01
+ - S8053963: (dc) Use DatagramChannel.receive() instead of read() in connect()
+ - S8055176: 7u71 l10n resource file translation update
* Bug fixes
- PR1988: C++ Interpreter should no longer be used on ppc64
- PR1989: Make jdk_generic_profile.sh handle missing programs better and be more verbose
@@ -29,6 +64,31 @@
- PR2009: Checksum of policy JAR files changes on every build
- PR2025: LCMS_CFLAGS & LCMS_LIBS should not be used unless SYSTEM_LCMS is enabled
- RH1015432: java-1.7.0-openjdk: Fails on PPC with StackOverflowError (revised comprehensive fix)
+* AArch64 port
+ - AArch64 C2 instruct for smull
+ - Add frame anchor fences.
+ - Add MacroAssembler::maybe_isb()
+ - Add missing instruction synchronization barriers and cache flushes.
+ - Add support for a few simple intrinsics
+ - Add support for builtin crc32 instructions
+ - Add support for Neon implementation of CRC32
+ - All address constants are 48 bits in size.
+ - array load must only read 32 bits
+ - Define uabs(). Use it everywhere an absolute value is wanted.
+ - Fast string comparison
+ - Fast String.equals()
+ - Fix register usage in generate_verify_oop().
+ - Fix thinko in Atomic::xchg_ptr.
+ - Fix typo in fsqrts
+ - Improve C1 performance improvements in ic_cache checks
+ - Performance improvement and ease of use changes pulled from upstream
+ - Remove obsolete C1 patching code.
+ - Replace hotspot jtreg test suite with tests from jdk7u
+ - S8024648: 7141246 breaks Zero port
+ - Save intermediate state before removing C1 patching code.
+ - Unwind native AArch64 frames.
+ - Use 2- and 3-instruction immediate form of movoop and mov_metadata in C2-generated code.
+ - Various concurrency fixes.
New in release 2.5.2 (2014-08-29):
diff -r 2b5024a64ce9 -r 121ad7411fd1 configure.ac
--- a/configure.ac Thu Oct 02 01:04:25 2014 +0100
+++ b/configure.ac Tue Oct 14 22:11:50 2014 +0100
@@ -1,4 +1,4 @@
-AC_INIT([icedtea], [2.5.3pre02], [distro-pkg-dev at openjdk.java.net])
+AC_INIT([icedtea], [2.5.3], [distro-pkg-dev at openjdk.java.net])
AM_INIT_AUTOMAKE([1.9 tar-pax foreign])
AM_MAINTAINER_MODE([enable])
AC_CONFIG_FILES([Makefile])
diff -r 2b5024a64ce9 -r 121ad7411fd1 hotspot.map.in
--- a/hotspot.map.in Thu Oct 02 01:04:25 2014 +0100
+++ b/hotspot.map.in Tue Oct 14 22:11:50 2014 +0100
@@ -1,3 +1,3 @@
# version type(drop/hg) url changeset sha256sum
-default drop http://icedtea.classpath.org/download/drops/icedtea7/@ICEDTEA_RELEASE@ 7ce2690d2182 a46fa777ee7bdf5ef60231b105745e1c4e4cddc356cdc677b615a843705499b5
-aarch64 drop http://icedtea.classpath.org/download/drops/aarch64/2.5.1 a03843f2ff15 e88ca1ef9eeafa9bac7f0e5277a927129288547f241f0ed1e53969c6888177f2
+default drop http://icedtea.classpath.org/download/drops/icedtea7/@ICEDTEA_RELEASE@ 1d0d98e7c981 8c8e1f7e97f47fe4029e0b0ba42b3515474adabe64e1fbee15c0e2e22a13aa28
+aarch64 drop http://icedtea.classpath.org/download/drops/aarch64/@ICEDTEA_RELEASE@ 116bc9da35de b9e7f67079184310450c9b461b492f340aa7824c27079b430c8f25b58b327ec5
diff -r 2b5024a64ce9 -r 121ad7411fd1 patches/boot/ecj-multicatch.patch
--- a/patches/boot/ecj-multicatch.patch Thu Oct 02 01:04:25 2014 +0100
+++ b/patches/boot/ecj-multicatch.patch Tue Oct 14 22:11:50 2014 +0100
@@ -1,6 +1,38 @@
+diff -Nru openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java
+--- openjdk-boot.orig/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java 2014-05-12 22:18:02.000000000 +0100
++++ openjdk-boot/jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java 2014-10-14 19:21:56.737171023 +0100
+@@ -145,7 +145,9 @@
+ final String name = c.name();
+ ei = new EncodingInfo(name, name);
+ _encodingInfos.putEncoding(normalizedEncoding, ei);
+- } catch (IllegalCharsetNameException | UnsupportedCharsetException x) {
++ } catch (IllegalCharsetNameException x) {
++ ei = new EncodingInfo(null,null);
++ } catch (UnsupportedCharsetException x) {
+ ei = new EncodingInfo(null,null);
+ }
+ }
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/jmx/remote/internal/ArrayNotificationBuffer.java openjdk-boot/jdk/src/share/classes/com/sun/jmx/remote/internal/ArrayNotificationBuffer.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/jmx/remote/internal/ArrayNotificationBuffer.java 2014-10-02 03:17:19.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/jmx/remote/internal/ArrayNotificationBuffer.java 2014-10-14 19:21:56.733170968 +0100
+@@ -402,7 +402,13 @@
+ try {
+ ServerNotifForwarder.checkMBeanPermission(this.mBeanServer,
+ candidate.getObjectName(),"addNotificationListener");
+- } catch (InstanceNotFoundException | SecurityException e) {
++ } catch (InstanceNotFoundException e) {
++ if (logger.debugOn()) {
++ logger.debug("fetchNotifications", "candidate: " + candidate + " skipped. exception " + e);
++ }
++ ++nextSeq;
++ continue;
++ } catch (SecurityException e) {
+ if (logger.debugOn()) {
+ logger.debug("fetchNotifications", "candidate: " + candidate + " skipped. exception " + e);
+ }
diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/PrintStream.java openjdk-boot/jdk/src/share/classes/java/io/PrintStream.java
---- openjdk-boot.orig/jdk/src/share/classes/java/io/PrintStream.java 2013-04-03 14:18:05.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/io/PrintStream.java 2013-04-04 13:42:21.263677653 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/PrintStream.java 2014-10-02 03:17:19.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/io/PrintStream.java 2014-10-14 19:21:56.729170913 +0100
@@ -91,7 +91,10 @@
requireNonNull(csn, "charsetName");
try {
@@ -14,8 +46,8 @@
throw new UnsupportedEncodingException(csn);
}
diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/io/PrintWriter.java openjdk-boot/jdk/src/share/classes/java/io/PrintWriter.java
---- openjdk-boot.orig/jdk/src/share/classes/java/io/PrintWriter.java 2013-04-03 14:18:05.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/io/PrintWriter.java 2013-04-04 13:42:21.275677843 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/io/PrintWriter.java 2014-10-02 03:17:19.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/io/PrintWriter.java 2014-10-14 19:21:56.729170913 +0100
@@ -85,7 +85,10 @@
Objects.requireNonNull(csn, "charsetName");
try {
@@ -29,9 +61,9 @@
throw new UnsupportedEncodingException(csn);
}
diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java 2013-04-03 14:18:05.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java 2013-04-04 13:42:21.315678473 +0100
-@@ -747,7 +747,9 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java 2014-10-02 03:17:19.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java 2014-10-14 19:21:56.729170913 +0100
+@@ -748,7 +748,9 @@
Class> fieldType = Wrapper.forBasicType(types.charAt(index)).primitiveType();
try {
return LOOKUP.findGetter(cbmhClass, fieldName, fieldType);
@@ -42,7 +74,7 @@
throw newInternalError(e);
}
}
-@@ -801,7 +803,13 @@
+@@ -802,7 +804,13 @@
static MethodHandle makeCbmhCtor(Class extends BoundMethodHandle> cbmh, String types) {
try {
return linkConstructor(LOOKUP.findConstructor(cbmh, MethodType.fromMethodDescriptorString(makeSignature(types, true), null)));
@@ -58,8 +90,8 @@
}
}
diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/LambdaForm.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/LambdaForm.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/LambdaForm.java 2013-04-03 14:18:05.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/LambdaForm.java 2013-04-04 13:42:21.323678600 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/LambdaForm.java 2014-10-02 03:17:19.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/LambdaForm.java 2014-10-14 19:21:56.729170913 +0100
@@ -456,9 +456,11 @@
traceInterpreter("compileToBytecode", this);
isCompiled = true;
@@ -89,9 +121,9 @@
Name n = new Name(zcon).newIndex(0);
assert(n.type == ALL_TYPES.charAt(tn));
diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2013-04-04 13:34:02.223748460 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2013-04-04 13:42:21.323678600 +0100
-@@ -263,7 +263,12 @@
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2014-10-14 19:21:18.664639686 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2014-10-14 19:21:56.729170913 +0100
+@@ -264,7 +264,12 @@
continue;
}
throw new InternalError(err);
@@ -106,8 +138,8 @@
// ignore exotic ops the JVM cares about; we just wont issue them
//System.err.println("warning: "+err);
diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/management/ManagementFactory.java openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java
---- openjdk-boot.orig/jdk/src/share/classes/java/lang/management/ManagementFactory.java 2013-04-03 14:18:05.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java 2013-04-04 13:42:21.279677906 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/management/ManagementFactory.java 2014-10-02 03:17:19.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/management/ManagementFactory.java 2014-10-14 19:21:56.729170913 +0100
@@ -606,7 +606,9 @@
// create an MXBean proxy
return JMX.newMXBeanProxy(connection, objName, mxbeanInterface,
@@ -119,9 +151,71 @@
throw new IllegalArgumentException(e);
}
}
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/ProcessBuilder.java openjdk-boot/jdk/src/share/classes/java/lang/ProcessBuilder.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/ProcessBuilder.java 2014-10-02 03:17:19.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/ProcessBuilder.java 2014-10-14 19:21:56.737171023 +0100
+@@ -1030,10 +1030,10 @@
+ dir,
+ redirects,
+ redirectErrorStream);
+- } catch (IOException | IllegalArgumentException e) {
++ } catch (IOException e) {
+ String exceptionInfo = ": " + e.getMessage();
+ Throwable cause = e;
+- if ((e instanceof IOException) && security != null) {
++ if (security != null) {
+ // Can not disclose the fail reason for read-protected files.
+ try {
+ security.checkRead(prog);
+@@ -1045,6 +1045,16 @@
+ // It's much easier for us to create a high-quality error
+ // message than the low-level C code which found the problem.
+ throw new IOException(
++ "Cannot run program \"" + prog + "\""
++ + (dir == null ? "" : " (in directory \"" + dir + "\")")
++ + exceptionInfo,
++ cause);
++ } catch (IllegalArgumentException e) {
++ String exceptionInfo = ": " + e.getMessage();
++ Throwable cause = e;
++ // It's much easier for us to create a high-quality error
++ // message than the low-level C code which found the problem.
++ throw new IOException(
+ "Cannot run program \"" + prog + "\""
+ + (dir == null ? "" : " (in directory \"" + dir + "\")")
+ + exceptionInfo,
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Proxy.java openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/lang/reflect/Proxy.java 2014-10-02 03:17:19.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/reflect/Proxy.java 2014-10-14 19:21:56.733170968 +0100
+@@ -762,7 +762,9 @@
+ private static Object newInstance(Constructor> cons, InvocationHandler h) {
+ try {
+ return cons.newInstance(new Object[] {h} );
+- } catch (IllegalAccessException | InstantiationException e) {
++ } catch (IllegalAccessException e) {
++ throw new InternalError(e.toString());
++ } catch (InstantiationException e) {
+ throw new InternalError(e.toString());
+ } catch (InvocationTargetException e) {
+ Throwable t = e.getCause();
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/nio/charset/Charset.java openjdk-boot/jdk/src/share/classes/java/nio/charset/Charset.java
+--- openjdk-boot.orig/jdk/src/share/classes/java/nio/charset/Charset.java 2014-10-02 03:17:19.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/nio/charset/Charset.java 2014-10-14 19:21:56.737171023 +0100
+@@ -440,8 +440,9 @@
+ } catch (ClassNotFoundException x) {
+ // Extended charsets not available
+ // (charsets.jar not present)
+- } catch (InstantiationException |
+- IllegalAccessException x) {
++ } catch (InstantiationException x) {
++ throw new Error(x);
++ } catch (IllegalAccessException x) {
+ throw new Error(x);
+ }
+ return null;
diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Formatter.java openjdk-boot/jdk/src/share/classes/java/util/Formatter.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/Formatter.java 2013-04-03 14:18:05.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/Formatter.java 2013-04-04 13:42:21.283677969 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Formatter.java 2014-10-02 03:17:19.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/Formatter.java 2014-10-14 19:21:56.729170913 +0100
@@ -1857,7 +1857,10 @@
Objects.requireNonNull(csn, "charsetName");
try {
@@ -135,8 +229,8 @@
throw new UnsupportedEncodingException(csn);
}
diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/util/Scanner.java openjdk-boot/jdk/src/share/classes/java/util/Scanner.java
---- openjdk-boot.orig/jdk/src/share/classes/java/util/Scanner.java 2013-04-03 14:18:05.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/java/util/Scanner.java 2013-04-04 13:42:21.299678221 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/java/util/Scanner.java 2014-10-02 03:17:19.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/java/util/Scanner.java 2014-10-14 19:21:56.733170968 +0100
@@ -633,7 +633,10 @@
Objects.requireNonNull(csn, "charsetName");
try {
@@ -160,9 +254,54 @@
throw new IllegalArgumentException(charsetName);
}
}
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CipherInputStream.java openjdk-boot/jdk/src/share/classes/javax/crypto/CipherInputStream.java
+--- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CipherInputStream.java 2014-10-14 19:58:01.679349189 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/crypto/CipherInputStream.java 2014-10-14 19:58:59.096156147 +0100
+@@ -110,7 +110,10 @@
+ done = true;
+ try {
+ obuffer = cipher.doFinal();
+- } catch (IllegalBlockSizeException | BadPaddingException e) {
++ } catch (IllegalBlockSizeException e) {
++ obuffer = null;
++ throw new IOException(e);
++ } catch (BadPaddingException e) {
+ obuffer = null;
+ throw new IOException(e);
+ }
+@@ -314,7 +317,14 @@
+ cipher.doFinal();
+ }
+ }
+- catch (BadPaddingException | IllegalBlockSizeException ex) {
++ catch (BadPaddingException ex) {
++ /* If no data has been read from the stream to be en/decrypted,
++ we supress any exceptions, and close quietly. */
++ if (read) {
++ throw new IOException(ex);
++ }
++ }
++ catch (IllegalBlockSizeException ex) {
+ /* If no data has been read from the stream to be en/decrypted,
+ we supress any exceptions, and close quietly. */
+ if (read) {
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CipherOutputStream.java openjdk-boot/jdk/src/share/classes/javax/crypto/CipherOutputStream.java
+--- openjdk-boot.orig/jdk/src/share/classes/javax/crypto/CipherOutputStream.java 2014-10-14 19:57:56.383275536 +0100
++++ openjdk-boot/jdk/src/share/classes/javax/crypto/CipherOutputStream.java 2014-10-14 19:59:16.160397935 +0100
+@@ -208,7 +208,9 @@
+ closed = true;
+ try {
+ obuffer = cipher.doFinal();
+- } catch (IllegalBlockSizeException | BadPaddingException e) {
++ } catch (IllegalBlockSizeException e) {
++ obuffer = null;
++ } catch (BadPaddingException e) {
+ obuffer = null;
+ }
+ try {
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 2013-04-03 14:18:05.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java 2013-04-04 13:42:21.303678284 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/invoke/util/ValueConversions.java 2014-10-02 03:17:19.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/invoke/util/ValueConversions.java 2014-10-14 19:21:56.733170968 +0100
@@ -482,7 +482,9 @@
FILL_NEW_TYPED_ARRAY = IMPL_LOOKUP
.findStatic(THIS_CLASS, "fillNewTypedArray",
@@ -175,8 +314,8 @@
}
}
diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java 2013-04-03 14:18:05.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java 2013-04-04 13:42:21.327678663 +0100
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java 2014-10-02 03:17:19.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java 2014-10-14 19:21:56.733170968 +0100
@@ -296,7 +296,16 @@
active.put(id, entry);
return entry.mobj;
@@ -196,9 +335,9 @@
* or code recompiled and user forgot to provide
* activatable constructor?
diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java
---- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java 2013-04-03 14:18:05.000000000 +0100
-+++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java 2013-04-04 13:42:21.327678663 +0100
-@@ -261,11 +261,14 @@
+--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java 2014-10-02 03:17:19.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java 2014-10-14 19:21:56.733170968 +0100
+@@ -262,11 +262,14 @@
annotation = urlsToPath(urls);
}
@@ -215,8 +354,8 @@
* to be thrown by openConnection() and getPermission(). If it
* does happen, forget about this class loader's URLs and
diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java
From bugzilla-daemon at icedtea.classpath.org Tue Oct 14 21:33:03 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Tue, 14 Oct 2014 21:33:03 +0000
Subject: [Bug 1688] 8017173 regression introduced in recent icedtea6 and
icedtea7 releases
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1688
Andrew John Hughes changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From bugzilla-daemon at icedtea.classpath.org Tue Oct 14 21:34:31 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Tue, 14 Oct 2014 21:34:31 +0000
Subject: [Bug 1904] [IcedTea6] [REGRESSION] Bug reports now lack IcedTea
version & distribution packaging information
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1904
Andrew John Hughes changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From bugzilla-daemon at icedtea.classpath.org Tue Oct 14 21:35:04 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Tue, 14 Oct 2014 21:35:04 +0000
Subject: [Bug 1967] [IcedTea6] Move to new OpenJDK bug URL format
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1967
Andrew John Hughes changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From gnu.andrew at redhat.com Tue Oct 14 21:58:57 2014
From: gnu.andrew at redhat.com (Andrew Hughes)
Date: Tue, 14 Oct 2014 22:58:57 +0100
Subject: [SECURITY] IcedTea 1.13.5 for OpenJDK 6 Released!
Message-ID: <20141014215848.GA19816@carrie.the212.com>
The IcedTea project provides a harness to build the source code from
OpenJDK using Free Software build tools, along with additional
features such as a PulseAudio sound driver, the ability to build
against system libraries and support for alternative virtual machines
and architectures beyond those supported by OpenJDK.
This release updates our OpenJDK 6 support in the 1.13.x series with
the October 2014 security fixes.
If you find an issue with the release, please report it to our bug
database (http://icedtea.classpath.org/bugzilla) under the appropriate
component. Development discussion takes place on the
distro-pkg-dev at openjdk.java.net mailing list and patches are always
welcome.
Full details of the release can be found below.
What's New?
===========
New in release 1.13.5 (2014-10-14):
* Security fixes
- S8015256: Better class accessibility
- S8022783, CVE-2014-6504: Optimize C2 optimizations
- S8035162: Service printing service
- S8035781: Improve equality for annotations
- S8036805: Correct linker method lookup.
- S8036810: Correct linker field lookup
- S8037066, CVE-2014-6457: Secure transport layer
- S8037846, CVE-2014-6558: Ensure streaming of input cipher streams
- S8038899: Safer safepoints
- S8038903: More native monitor monitoring
- S8038908: Make Signature more robust
- S8038913: Bolster XML support
- S8039509, CVE-2014-6512: Wrap sockets more thoroughly
- S8039533, CVE-2014-6517: Higher resolution resolvers
- S8041540, CVE-2014-6511: Better use of pages in font processing
- S8041545: Better validation of generated rasters
- S8041564, CVE-2014-6506: Improved management of logger resources
- S8041717, CVE-2014-6519: Issue with class file parser
- S8042609, CVE-2014-6513: Limit splashiness of splash images
- S8042797, CVE-2014-6502: Avoid strawberries in LogRecord
- S8044274, CVE-2014-6531: Proper property processing
* Import of OpenJDK6 b33
- OJ37: OpenJDK6-b32 cannot be built on Windows
- OJ39: Handle fonts with the non-canonical processing flag set
- OJ41: OpenJDK6 should be compatible with Windows SDK 7.1
- OJ42: Remove @Override annotation on interfaces added by 2014/10/14 security fixes.
- S6967684: httpserver using a non thread-safe SimpleDateFormat
- S7033534: Two tests fail just against jdk7 b136
- S7160837: DigestOutputStream does not turn off digest calculation when "close()" is called
- S7172149: ArrayIndexOutOfBoundsException from Signature.verify
- S8010213: Some api/javax_net/SocketFactory tests fail in 7u25 nightly build
- S8012637: Adjust CipherInputStream class to work in AEAD/GCM mode
- S8028192: Use of PKCS11-NSS provider in FIPS mode broken
- S8038000: java.awt.image.RasterFormatException: Incorrect scanline stride
- S8039396: NPE when writing a class descriptor object to a custom ObjectOutputStream
- S8042603: 'SafepointPollOffset' was not declared in static member function 'static bool Arguments::check_vm_args_consistency()'
- S8042850: Extra unused entries in ICU ScriptCodes enum
- S8052162: REGRESSION: sun/java2d/cmm/ColorConvertOp tests fail since 7u71 b01
- S8053963: (dc) Use DatagramChannel.receive() instead of read() in connect()
* Backports
- S4963723: Implement SHA-224
- S6578658: Request for raw RSA (NONEwithRSA) Signature support in SunMSCAPI
- S6753664: Support SHA256 (and higher) in SunMSCAPI
- S7033170: Cipher.getMaxAllowedKeyLength(String) throws NoSuchAlgorithmException
- S7044060: Need to support NSA Suite B Cryptography algorithms
- S7106773: 512 bits RSA key cannot work with SHA384 and SHA512
- S7180907: Jarsigner -verify fails if rsa file used sha-256 with authenticated attributes
- S8006935: Need to take care of long secret keys in HMAC/PRF compuation
- S8017173, PR1688: XMLCipher with RSA_OAEP Key Transport algorithm can't be instantiated
- S8049480: Current versions of Java can't verify jars signed and timestamped with Java 9
* Bug fixes
- PR1904: [REGRESSION] Bug reports now lack IcedTea version & distribution packaging information
- PR1967: Move to new OpenJDK bug URL format
The tarballs can be downloaded from:
http://icedtea.classpath.org/download/source/icedtea6-1.13.5.tar.gz
http://icedtea.classpath.org/download/source/icedtea6-1.13.5.tar.xz
We provide both gzip and xz tarballs, so that those who are able to
make use of the smaller tarball produced by xz may do so.
The tarballs are accompanied by digital signatures available at:
http://icedtea.classpath.org/download/source/icedtea6-1.13.5.tar.gz.sig
http://icedtea.classpath.org/download/source/icedtea6-1.13.5.tar.xz.sig
These are produced using my public key. See details below.
PGP Key: 248BDC07 (hkp://zimmermann.mayfirst.org)
Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07
SHA256 checksums:
7bc21b8fa532c44279591372a77a76ae5976f54ae02ea8bdcd3dd7740511f1cb icedtea6-1.13.5.tar.gz
daf5b5132e73091af7bdf1040ae234773fa62c4ee8600a4abfdb7b2db205ce3a icedtea6-1.13.5.tar.gz.sig
3579852895dcce8dcb0277b221c5b27d57baf7e642e9cbb92c1b67d9af9e2cbb icedtea6-1.13.5.tar.xz
8b5de1b8c814d9743c7531ad58e0cb1de1c40e56c7f2315ae01c45c36faa20f1 icedtea6-1.13.5.tar.xz.sig
The checksums can be downloaded from:
http://icedtea.classpath.org/download/source/icedtea6-1.13.5.sha256
The following people helped with these releases:
* Andrew Hughes (all backports, release management)
We would also like to thank the bug reporters and testers!
To get started:
$ tar xzf icedtea6-1.13.5.tar.gz
or:
$ tar x -I xz -f icedtea6-1.13.5.tar.xz
then:
$ mkdir icedtea-build
$ cd icedtea-build
$ ../icedtea6-1.13.5/configure
$ make
Full build requirements and instructions are available in the INSTALL file.
Happy hacking!
--
Andrew :)
Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)
PGP Key: 248BDC07 (hkp://zimmermann.mayfirst.org)
Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL:
From andrew at icedtea.classpath.org Tue Oct 14 22:01:34 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Tue, 14 Oct 2014 22:01:34 +0000
Subject: /hg/release/icedtea6-1.13: Added tag icedtea6-1.13.5 for changes...
Message-ID:
changeset 63a2b655d971 in /hg/release/icedtea6-1.13
details: http://icedtea.classpath.org/hg/release/icedtea6-1.13?cmd=changeset;node=63a2b655d971
author: Andrew John Hughes
date: Tue Oct 14 22:41:41 2014 +0100
Added tag icedtea6-1.13.5 for changeset b2b4346dbdf5
diffstat:
.hgtags | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diffs (8 lines):
diff -r b2b4346dbdf5 -r 63a2b655d971 .hgtags
--- a/.hgtags Thu Oct 09 03:06:40 2014 +0100
+++ b/.hgtags Tue Oct 14 22:41:41 2014 +0100
@@ -31,3 +31,4 @@
0000000000000000000000000000000000000000 icedtea6-1.13.4
0000000000000000000000000000000000000000 icedtea6-1.13.4
cbd687c7240d173b0b34840ba07a39a6e7b39a20 icedtea6-1.13.4
+b2b4346dbdf5be3e9f8609e4a7e923f6557c19dd icedtea6-1.13.5
From bugzilla-daemon at icedtea.classpath.org Wed Oct 15 01:15:32 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Wed, 15 Oct 2014 01:15:32 +0000
Subject: [Bug 2032] New: CACAO lacks JVM_FindClassFromCaller introduced by
security patch in 2.5.3
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2032
Bug ID: 2032
Summary: CACAO lacks JVM_FindClassFromCaller introduced by
security patch in 2.5.3
Product: IcedTea
Version: 7-hg
Hardware: all
OS: All
Status: NEW
Severity: normal
Priority: P5
Component: CACAO
Assignee: stefan at complang.tuwien.ac.at
Reporter: gnu.andrew at redhat.com
CC: unassigned at icedtea.classpath.org, xerxes at zafena.se
/home/andrew/builder/icedtea7-2.5/openjdk.build-boot/tmp/java/java.lang/java/obj64/Class.o:
In function `Java_java_lang_Class_forName0':
/mnt/builder/icedtea7-2.5/openjdk-boot/jdk/make/java/java/../../../src/share/native/java/lang/Class.c:138:
undefined reference to `JVM_FindClassFromCaller'
collect2: error: ld returned 1 exit status
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From bugzilla-daemon at icedtea.classpath.org Wed Oct 15 01:16:14 2014
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Wed, 15 Oct 2014 01:16:14 +0000
Subject: [Bug 2032] CACAO lacks JVM_FindClassFromCaller introduced by
security patch in 2.5.3
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2032
Andrew John Hughes changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From andrew at icedtea.classpath.org Wed Oct 15 02:45:28 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Wed, 15 Oct 2014 02:45:28 +0000
Subject: /hg/release/icedtea6-1.13: 2 new changesets
Message-ID:
changeset 570cfed8b170 in /hg/release/icedtea6-1.13
details: http://icedtea.classpath.org/hg/release/icedtea6-1.13?cmd=changeset;node=570cfed8b170
author: Andrew John Hughes
date: Wed Oct 15 03:41:04 2014 +0100
Correct formatting in 1.13.5 release notes.
2014-10-14 Andrew John Hughes
* NEWS: Correct formatting in 1.13.5
release notes.
changeset d250454d7fbc in /hg/release/icedtea6-1.13
details: http://icedtea.classpath.org/hg/release/icedtea6-1.13?cmd=changeset;node=d250454d7fbc
author: Andrew John Hughes
date: Wed Oct 15 03:45:14 2014 +0100
Start 1.13.6 release cycle.
2014-10-14 Andrew John Hughes
* NEWS: Add 1.13.6 section.
* configure.ac: Bump to 1.13.6pre.
diffstat:
ChangeLog | 10 ++++++++++
NEWS | 4 +++-
configure.ac | 2 +-
3 files changed, 14 insertions(+), 2 deletions(-)
diffs (47 lines):
diff -r 63a2b655d971 -r d250454d7fbc ChangeLog
--- a/ChangeLog Tue Oct 14 22:41:41 2014 +0100
+++ b/ChangeLog Wed Oct 15 03:45:14 2014 +0100
@@ -1,3 +1,13 @@
+2014-10-14 Andrew John Hughes
+
+ * NEWS: Add 1.13.6 section.
+ * configure.ac: Bump to 1.13.6pre.
+
+2014-10-14 Andrew John Hughes
+
+ * NEWS: Correct formatting in 1.13.5
+ release notes.
+
2014-10-09 Andrew John Hughes
* configure.ac: Bump to 1.13.5.
diff -r 63a2b655d971 -r d250454d7fbc NEWS
--- a/NEWS Tue Oct 14 22:41:41 2014 +0100
+++ b/NEWS Wed Oct 15 03:45:14 2014 +0100
@@ -12,6 +12,8 @@
CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
+New in release 1.13.6 (2015-01-XX):
+
New in release 1.13.5 (2014-10-14):
* Security fixes
@@ -54,7 +56,7 @@
- S8042850: Extra unused entries in ICU ScriptCodes enum
- S8052162: REGRESSION: sun/java2d/cmm/ColorConvertOp tests fail since 7u71 b01
- S8053963: (dc) Use DatagramChannel.receive() instead of read() in connect()
- * Backports
+* Backports
- S4963723: Implement SHA-224
- S6578658: Request for raw RSA (NONEwithRSA) Signature support in SunMSCAPI
- S6753664: Support SHA256 (and higher) in SunMSCAPI
diff -r 63a2b655d971 -r d250454d7fbc configure.ac
--- a/configure.ac Tue Oct 14 22:41:41 2014 +0100
+++ b/configure.ac Wed Oct 15 03:45:14 2014 +0100
@@ -1,4 +1,4 @@
-AC_INIT([icedtea6],[1.13.5],[distro-pkg-dev at openjdk.java.net])
+AC_INIT([icedtea6],[1.13.6pre],[distro-pkg-dev at openjdk.java.net])
AC_CANONICAL_HOST
AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE([1.9 tar-pax foreign])
From gnu_andrew at member.fsf.org Wed Oct 15 05:29:33 2014
From: gnu_andrew at member.fsf.org (Andrew Hughes)
Date: Wed, 15 Oct 2014 06:29:33 +0100
Subject: [SECURITY] IcedTea 2.5.3 for OpenJDK 7 Released!
Message-ID: <20141015052933.GA10475@carrie.the212.com>
The IcedTea project provides a harness to build the source code from
OpenJDK using Free Software build tools, along with additional
features such as the ability to build against system libraries and
support for alternative virtual machines and architectures beyond
those supported by OpenJDK.
This release updates our OpenJDK 7 support in the 2.5.x series with
the October 2014 security fixes.
If you find an issue with the release, please report it to our bug
database (http://icedtea.classpath.org/bugzilla) under the appropriate
component. Development discussion takes place on the
distro-pkg-dev at openjdk.java.net mailing list and patches are always
welcome.
Note that alternate virtual machines (e.g. CACAO, JamVM) will be
broken by this release, until such a time as they introduce support
for JVM_FindClassFromCaller, a new virtual machine interface function
added by S8015256.
Full details of the release can be found below.
What's New?
===========
New in release 2.5.3 (2014-10-14):
* Security fixes
- S8015256: Better class accessibility
- S8022783, CVE-2014-6504: Optimize C2 optimizations
- S8035162: Service printing service
- S8035781: Improve equality for annotations
- S8036805: Correct linker method lookup.
- S8036810: Correct linker field lookup
- S8036936: Use local locales
- S8037066, CVE-2014-6457: Secure transport layer
- S8037846, CVE-2014-6558: Ensure streaming of input cipher streams
- S8038364: Use certificate exceptions correctly
- S8038899: Safer safepoints
- S8038903: More native monitor monitoring
- S8038908: Make Signature more robust
- S8038913: Bolster XML support
- S8039509, CVE-2014-6512: Wrap sockets more thoroughly
- S8039533, CVE-2014-6517: Higher resolution resolvers
- S8041540, CVE-2014-6511: Better use of pages in font processing
- S8041529: Better parameterization of parameter lists
- S8041545: Better validation of generated rasters
- S8041564, CVE-2014-6506: Improved management of logger resources
- S8041717, CVE-2014-6519: Issue with class file parser
- S8042609, CVE-2014-6513: Limit splashiness of splash images
- S8042797, CVE-2014-6502: Avoid strawberries in LogRecord
- S8044274, CVE-2014-6531: Proper property processing
* Backports
- S4963723: Implement SHA-224
- S7044060: Need to support NSA Suite B Cryptography algorithms
- S7122142: (ann) Race condition between isAnnotationPresent and getAnnotations
- S7160837: DigestOutputStream does not turn off digest calculation when "close()" is called
- S8006935: Need to take care of long secret keys in HMAC/PRF compuation
- S8012637: Adjust CipherInputStream class to work in AEAD/GCM mode
- S8028192: Use of PKCS11-NSS provider in FIPS mode broken
- S8038000: java.awt.image.RasterFormatException: Incorrect scanline stride
- S8039396: NPE when writing a class descriptor object to a custom ObjectOutputStream
- S8042603: 'SafepointPollOffset' was not declared in static member function 'static bool Arguments::check_vm_args_consistency()'
- S8042850: Extra unused entries in ICU ScriptCodes enum
- S8052162: REGRESSION: sun/java2d/cmm/ColorConvertOp tests fail since 7u71 b01
- S8053963: (dc) Use DatagramChannel.receive() instead of read() in connect()
- S8055176: 7u71 l10n resource file translation update
* Bug fixes
- PR1988: C++ Interpreter should no longer be used on ppc64
- PR1989: Make jdk_generic_profile.sh handle missing programs better and be more verbose
- PR1992, RH735336: Support retrieving proxy settings on GNOME 3.12.2
- PR2000: Synchronise HEAD tarball paths with release branch paths
- PR2002: Fix references to hotspot.map following PR2000
- PR2003: --disable-system-gtk option broken by refactoring in PR1736
- PR2009: Checksum of policy JAR files changes on every build
- PR2014: Use version from hotspot.map to create tarball filename
- PR2015: Update hotspot.map documentation in INSTALL
- PR2025: LCMS_CFLAGS & LCMS_LIBS should not be used unless SYSTEM_LCMS is enabled
- RH1015432: java-1.7.0-openjdk: Fails on PPC with StackOverflowError (revised comprehensive fix)
* CACAO
- PR2030, G453612, CA172: ARM hardfloat support for CACAO
* AArch64 port
- AArch64 C2 instruct for smull
- Add frame anchor fences.
- Add MacroAssembler::maybe_isb()
- Add missing instruction synchronization barriers and cache flushes.
- Add support for a few simple intrinsics
- Add support for builtin crc32 instructions
- Add support for Neon implementation of CRC32
- All address constants are 48 bits in size.
- array load must only read 32 bits
- Define uabs(). Use it everywhere an absolute value is wanted.
- Fast string comparison
- Fast String.equals()
- Fix register usage in generate_verify_oop().
- Fix thinko in Atomic::xchg_ptr.
- Fix typo in fsqrts
- Improve C1 performance improvements in ic_cache checks
- Performance improvement and ease of use changes pulled from upstream
- Remove obsolete C1 patching code.
- Replace hotspot jtreg test suite with tests from jdk7u
- S8024648: 7141246 breaks Zero port
- Save intermediate state before removing C1 patching code.
- Unwind native AArch64 frames.
- Use 2- and 3-instruction immediate form of movoop and mov_metadata in C2-generated code.
- Various concurrency fixes.
The tarballs can be downloaded from:
* http://icedtea.classpath.org/download/source/icedtea-2.5.3.tar.gz
* http://icedtea.classpath.org/download/source/icedtea-2.5.3.tar.xz
We provide both gzip and xz tarballs, so that those who are able to
make use of the smaller tarball produced by xz may do so.
The tarballs are accompanied by digital signatures available at:
* http://icedtea.classpath.org/download/source/icedtea-2.5.3.tar.gz.sig
* http://icedtea.classpath.org/download/source/icedtea-2.5.3.tar.xz.sig
These are produced using my public key. See details below.
PGP Key: 248BDC07 (hkp://zimmermann.mayfirst.org)
Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07
SHA256 checksums:
44df11ac8e5ace7194e7372ef169909e0dab31d6b2f6bbae9a9c33af2cc54540 icedtea-2.5.3.tar.gz
ac7c1ae97eef2d1c650ab7a21091f71e83a984f37a12c802c0f319f1438b0101 icedtea-2.5.3.tar.gz.sig
f4f2922cfec262496e935f81c1d39af66a789f69aa12d1ceee51bcca8934f1f0 icedtea-2.5.3.tar.xz
ed9b9cbc1237bfbf619e2cccfddf1002901371e94177a8becd85036be1ccf29a icedtea-2.5.3.tar.xz.sig
The checksums can be downloaded from:
* http://icedtea.classpath.org/download/source/icedtea-2.5.3.sha256
The following people helped with these releases:
* Andrew Hughes (all backports & bug fixes, release management)
We would also like to thank the bug reporters and testers!
To get started:
$ tar xzf icedtea-2.5.3.tar.gz
or:
$ tar x -I xz -f icedtea-2.5.3.tar.xz
then:
$ mkdir icedtea-build
$ cd icedtea-build
$ ../icedtea-2.5.3/configure
$ make
Full build requirements and instructions are available in the INSTALL file.
Happy hacking!
--
Andrew :)
Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)
PGP Key: 248BDC07 (https://keys.indymedia.org/)
Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL:
From andrew at icedtea.classpath.org Wed Oct 15 05:30:31 2014
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Wed, 15 Oct 2014 05:30:31 +0000
Subject: /hg/release/icedtea7-2.5: 5 new changesets
Message-ID:
changeset 2b6cee016628 in /hg/release/icedtea7-2.5
details: http://icedtea.classpath.org/hg/release/icedtea7-2.5?cmd=changeset;node=2b6cee016628
author: Andrew John Hughes