diff --git a/.hgtags b/.hgtags index d13de9187bc..8858dcabc63 100644 --- a/.hgtags +++ b/.hgtags @@ -236,3 +236,5 @@ b9a0f6c693f347a6f4b9bb994957f4eaa05bdedd jdk8-b111 ad67c34f79c28a8e755f4a49f313868619d6702c jdk8-b112 4a4dbcf7cb7d3e1a81beaa3b11cd909f69ebc79a jdk8-b113 dfa34ab293faad9b543a24646dbb381bc3ab5586 jdk8-b114 +3dd9732b17034f45d111996d1d50287b05a3998c jdk8-b115 +aaf663f591aba43ec942263b15ba62759ce26a1e jdk8-b116 diff --git a/.hgtags-top-repo b/.hgtags-top-repo index bc18620853e..3124406b347 100644 --- a/.hgtags-top-repo +++ b/.hgtags-top-repo @@ -236,3 +236,5 @@ d086227bfc45d124f09b3bd72a07956b4073bf71 jdk8-b111 547316ea137d83d9c63083a9b83db64198fe0c81 jdk8-b112 6ba4c7cb623ec612031e05cf8bf279d8f407bd1e jdk8-b113 4f2011496393a26dcfd7b1f7787a3673ddd32599 jdk8-b114 +763ada2a1d8c5962bc8c3d297e57c562d2e95338 jdk8-b115 +cbfe5da942c63ef865cab4a7159e01eff7d7fcf5 jdk8-b116 diff --git a/corba/.hgtags b/corba/.hgtags index 132a2d9acf4..60e3a2431f4 100644 --- a/corba/.hgtags +++ b/corba/.hgtags @@ -236,3 +236,5 @@ a4bb3b4500164748a9c33b2283cfda76d89f25ab jdk8-b108 43cec76d1d62587a07af07e2d9bec93aba2a506b jdk8-b112 a259ff3e42d91da68f4d4f09d7eb9dc22bc024fc jdk8-b113 0bbccf77c23e566170b88b52c2cf28e5d31ce927 jdk8-b114 +8d07115924b7d703a5048adb24e8aba751442f13 jdk8-b115 +5fdc4465208933ba704825b2b05e1afd062235fb jdk8-b116 diff --git a/corba/src/share/classes/com/sun/corba/se/spi/orbutil/proxy/CompositeInvocationHandlerImpl.java b/corba/src/share/classes/com/sun/corba/se/spi/orbutil/proxy/CompositeInvocationHandlerImpl.java index 91aacd5afae..271682a9f61 100644 --- a/corba/src/share/classes/com/sun/corba/se/spi/orbutil/proxy/CompositeInvocationHandlerImpl.java +++ b/corba/src/share/classes/com/sun/corba/se/spi/orbutil/proxy/CompositeInvocationHandlerImpl.java @@ -89,4 +89,6 @@ public class CompositeInvocationHandlerImpl implements sm.checkPermission(perm); } } + + private static final long serialVersionUID = 4571178305984833743L; } diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 22734a967f6..542f7acb1d0 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -391,3 +391,7 @@ f6962730bbde82f279a0ae3a1c14bc5e58096c6e jdk8-b111 82a9cdbf683e374a76f2009352de53e16bed5a91 hs25-b56 7fd913010dbbf75260688fd2fa8964763fa49a09 jdk8-b114 3b32d287da89a47a45d16f6d9ba5bd3cd9bf4b3e hs25-b57 +9ebaac78a8a0061fb9597e07f806498cb626cdeb jdk8-b115 +e510dfdec6dd701410f3398ed86ebcdff0cca63a hs25-b58 +52b076e6ffae247c1c7d8b7aba995195be2b6fc2 jdk8-b116 +c78d517c7ea47501b456e707afd4b78e7b5b202e hs25-b59 diff --git a/hotspot/make/hotspot_version b/hotspot/make/hotspot_version index 69d9e8e9e59..cf93d3d576a 100644 --- a/hotspot/make/hotspot_version +++ b/hotspot/make/hotspot_version @@ -35,7 +35,7 @@ HOTSPOT_VM_COPYRIGHT=Copyright 2013 HS_MAJOR_VER=25 HS_MINOR_VER=0 -HS_BUILD_NUMBER=57 +HS_BUILD_NUMBER=59 JDK_MAJOR_VER=1 JDK_MINOR_VER=8 diff --git a/hotspot/src/cpu/sparc/vm/macroAssembler_sparc.cpp b/hotspot/src/cpu/sparc/vm/macroAssembler_sparc.cpp index af142976b35..7d1957212ce 100644 --- a/hotspot/src/cpu/sparc/vm/macroAssembler_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/macroAssembler_sparc.cpp @@ -3526,8 +3526,12 @@ void MacroAssembler::bang_stack_size(Register Rsize, Register Rtsp, delayed()->sub(Rtsp, Roffset, Rtsp); // Bang down shadow pages too. - // The -1 because we already subtracted 1 page. - for (int i = 0; i< StackShadowPages-1; i++) { + // At this point, (tmp-0) is the last address touched, so don't + // touch it again. (It was touched as (tmp-pagesize) but then tmp + // was post-decremented.) Skip this address by starting at i=1, and + // touch a few more pages below. N.B. It is important to touch all + // the way down to and including i=StackShadowPages. + for (int i = 1; i <= StackShadowPages; i++) { set((-i*offset)+STACK_BIAS, Rscratch); st(G0, Rtsp, Rscratch); } diff --git a/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp b/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp index 62ff0f23b2b..4b6b1c7c00d 100644 --- a/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp @@ -1002,18 +1002,6 @@ void AdapterGenerator::gen_i2c_adapter( // and the vm will find there should this case occur. Address callee_target_addr(G2_thread, JavaThread::callee_target_offset()); __ st_ptr(G5_method, callee_target_addr); - - if (StressNonEntrant) { - // Open a big window for deopt failure - __ save_frame(0); - __ mov(G0, L0); - Label loop; - __ bind(loop); - __ sub(L0, 1, L0); - __ br_null_short(L0, Assembler::pt, loop); - __ restore(); - } - __ jmpl(G3, 0, G0); __ delayed()->nop(); } diff --git a/hotspot/src/cpu/sparc/vm/sparc.ad b/hotspot/src/cpu/sparc/vm/sparc.ad index eadb0a8b60f..9d3856245f2 100644 --- a/hotspot/src/cpu/sparc/vm/sparc.ad +++ b/hotspot/src/cpu/sparc/vm/sparc.ad @@ -2916,6 +2916,9 @@ enc_class Fast_Unlock(iRegP oop, iRegP box, o7RegP scratch, iRegP scratch2) %{ __ bind(LSkip2); } + // We have no guarantee that on 64 bit the higher half of limit_reg is 0 + __ signx(limit_reg); + __ subcc(limit_reg, 1 * sizeof(jchar), chr1_reg); __ br(Assembler::equal, true, Assembler::pn, Ldone); __ delayed()->mov(O7, result_reg); // result is difference in lengths @@ -2973,6 +2976,9 @@ enc_class enc_String_Equals(o0RegP str1, o1RegP str2, g3RegI cnt, notemp_iRegI r Register chr1_reg = result_reg; Register chr2_reg = tmp1_reg; + // We have no guarantee that on 64 bit the higher half of limit_reg is 0 + __ signx(limit_reg); + //check for alignment and position the pointers to the ends __ or3(str1_reg, str2_reg, chr1_reg); __ andcc(chr1_reg, 0x3, chr1_reg); diff --git a/hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp b/hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp index fcadd2ee9a3..b6f2438db83 100644 --- a/hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp @@ -196,7 +196,7 @@ void InterpreterMacroAssembler::check_and_handle_earlyret(Register java_thread) void InterpreterMacroAssembler::get_unsigned_2_byte_index_at_bcp(Register reg, int bcp_offset) { assert(bcp_offset >= 0, "bcp is still pointing to start of bytecode"); - movl(reg, Address(rsi, bcp_offset)); + load_unsigned_short(reg, Address(rsi, bcp_offset)); bswapl(reg); shrl(reg, 16); } diff --git a/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp b/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp index 7758d8fbcb5..520c872a604 100644 --- a/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp @@ -192,7 +192,7 @@ void InterpreterMacroAssembler::get_unsigned_2_byte_index_at_bcp( Register reg, int bcp_offset) { assert(bcp_offset >= 0, "bcp is still pointing to start of bytecode"); - movl(reg, Address(r13, bcp_offset)); + load_unsigned_short(reg, Address(r13, bcp_offset)); bswapl(reg); shrl(reg, 16); } diff --git a/hotspot/src/cpu/x86/vm/macroAssembler_x86.cpp b/hotspot/src/cpu/x86/vm/macroAssembler_x86.cpp index cc4fe6869dc..5059a386371 100644 --- a/hotspot/src/cpu/x86/vm/macroAssembler_x86.cpp +++ b/hotspot/src/cpu/x86/vm/macroAssembler_x86.cpp @@ -1381,8 +1381,12 @@ void MacroAssembler::bang_stack_size(Register size, Register tmp) { jcc(Assembler::greater, loop); // Bang down shadow pages too. - // The -1 because we already subtracted 1 page. - for (int i = 0; i< StackShadowPages-1; i++) { + // At this point, (tmp-0) is the last address touched, so don't + // touch it again. (It was touched as (tmp-pagesize) but then tmp + // was post-decremented.) Skip this address by starting at i=1, and + // touch a few more pages below. N.B. It is important to touch all + // the way down to and including i=StackShadowPages. + for (int i = 1; i <= StackShadowPages; i++) { // this could be any sized move but this is can be a debugging crumb // so the bigger the better. movptr(Address(tmp, (-i*os::vm_page_size())), size ); diff --git a/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp b/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp index 3d07cb0ee32..3c2ec9f426d 100644 --- a/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp @@ -558,7 +558,7 @@ void TemplateTable::aload() { void TemplateTable::locals_index_wide(Register reg) { - __ movl(reg, at_bcp(2)); + __ load_unsigned_short(reg, at_bcp(2)); __ bswapl(reg); __ shrl(reg, 16); __ negptr(reg); @@ -1552,7 +1552,11 @@ void TemplateTable::branch(bool is_jsr, bool is_wide) { InvocationCounter::counter_offset(); // Load up EDX with the branch displacement - __ movl(rdx, at_bcp(1)); + if (is_wide) { + __ movl(rdx, at_bcp(1)); + } else { + __ load_signed_short(rdx, at_bcp(1)); + } __ bswapl(rdx); if (!is_wide) __ sarl(rdx, 16); LP64_ONLY(__ movslq(rdx, rdx)); diff --git a/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp b/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp index 1da6efa85e0..544019c7179 100644 --- a/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp @@ -568,7 +568,7 @@ void TemplateTable::aload() { } void TemplateTable::locals_index_wide(Register reg) { - __ movl(reg, at_bcp(2)); + __ load_unsigned_short(reg, at_bcp(2)); __ bswapl(reg); __ shrl(reg, 16); __ negptr(reg); @@ -1575,7 +1575,11 @@ void TemplateTable::branch(bool is_jsr, bool is_wide) { InvocationCounter::counter_offset(); // Load up edx with the branch displacement - __ movl(rdx, at_bcp(1)); + if (is_wide) { + __ movl(rdx, at_bcp(1)); + } else { + __ load_signed_short(rdx, at_bcp(1)); + } __ bswapl(rdx); if (!is_wide) { diff --git a/hotspot/src/share/vm/asm/assembler.cpp b/hotspot/src/share/vm/asm/assembler.cpp index b56e2828636..ae3034bc969 100644 --- a/hotspot/src/share/vm/asm/assembler.cpp +++ b/hotspot/src/share/vm/asm/assembler.cpp @@ -122,7 +122,7 @@ void AbstractAssembler::bind(Label& L) { void AbstractAssembler::generate_stack_overflow_check( int frame_size_in_bytes) { if (UseStackBanging) { // Each code entry causes one stack bang n pages down the stack where n - // is configurable by StackBangPages. The setting depends on the maximum + // is configurable by StackShadowPages. The setting depends on the maximum // depth of VM call stack or native before going back into java code, // since only java code can raise a stack overflow exception using the // stack banging mechanism. The VM and native code does not detect stack diff --git a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp index 26bb8d0227e..1bfd4bad45d 100644 --- a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp +++ b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp @@ -4338,6 +4338,11 @@ void GraphBuilder::print_stats() { #endif // PRODUCT void GraphBuilder::profile_call(ciMethod* callee, Value recv, ciKlass* known_holder, Values* obj_args, bool inlined) { + // A default method's holder is an interface + if (known_holder != NULL && known_holder->is_interface()) { + assert(known_holder->is_instance_klass() && ((ciInstanceKlass*)known_holder)->has_default_methods(), "should be default method"); + known_holder = NULL; + } append(new ProfileCall(method(), bci(), callee, recv, known_holder, obj_args, inlined)); } diff --git a/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp index e3098911d88..8eb0189881c 100644 --- a/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp +++ b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp @@ -2574,8 +2574,25 @@ void LIRGenerator::do_Goto(Goto* x) { __ jump(x->default_sux()); } - -ciKlass* LIRGenerator::profile_arg_type(ciMethodData* md, int md_base_offset, int md_offset, intptr_t profiled_k, Value arg, LIR_Opr& mdp, bool not_null, ciKlass* signature_k) { +/** + * Emit profiling code if needed for arguments, parameters, return value types + * + * @param md MDO the code will update at runtime + * @param md_base_offset common offset in the MDO for this profile and subsequent ones + * @param md_offset offset in the MDO (on top of md_base_offset) for this profile + * @param profiled_k current profile + * @param obj IR node for the object to be profiled + * @param mdp register to hold the pointer inside the MDO (md + md_base_offset). + * Set once we find an update to make and use for next ones. + * @param not_null true if we know obj cannot be null + * @param signature_at_call_k signature at call for obj + * @param callee_signature_k signature of callee for obj + * at call and callee signatures differ at method handle call + * @return the only klass we know will ever be seen at this profile point + */ +ciKlass* LIRGenerator::profile_type(ciMethodData* md, int md_base_offset, int md_offset, intptr_t profiled_k, + Value obj, LIR_Opr& mdp, bool not_null, ciKlass* signature_at_call_k, + ciKlass* callee_signature_k) { ciKlass* result = NULL; bool do_null = !not_null && !TypeEntries::was_null_seen(profiled_k); bool do_update = !TypeEntries::is_type_unknown(profiled_k); @@ -2590,9 +2607,9 @@ ciKlass* LIRGenerator::profile_arg_type(ciMethodData* md, int md_base_offset, in if (do_update) { // try to find exact type, using CHA if possible, so that loading // the klass from the object can be avoided - ciType* type = arg->exact_type(); + ciType* type = obj->exact_type(); if (type == NULL) { - type = arg->declared_type(); + type = obj->declared_type(); type = comp->cha_exact_type(type); } assert(type == NULL || type->is_klass(), "type should be class"); @@ -2608,23 +2625,33 @@ ciKlass* LIRGenerator::profile_arg_type(ciMethodData* md, int md_base_offset, in ciKlass* exact_signature_k = NULL; if (do_update) { // Is the type from the signature exact (the only one possible)? - exact_signature_k = signature_k->exact_klass(); + exact_signature_k = signature_at_call_k->exact_klass(); if (exact_signature_k == NULL) { - exact_signature_k = comp->cha_exact_type(signature_k); + exact_signature_k = comp->cha_exact_type(signature_at_call_k); } else { result = exact_signature_k; - do_update = false; // Known statically. No need to emit any code: prevent // LIR_Assembler::emit_profile_type() from emitting useless code profiled_k = ciTypeEntries::with_status(result, profiled_k); } if (exact_signature_k != NULL && exact_klass != exact_signature_k) { - assert(exact_klass == NULL, "arg and signature disagree?"); + assert(exact_klass == NULL, "obj and signature disagree?"); // sometimes the type of the signature is better than the best type // the compiler has exact_klass = exact_signature_k; - do_update = exact_klass == NULL || ciTypeEntries::valid_ciklass(profiled_k) != exact_klass; } + if (callee_signature_k != NULL && + callee_signature_k != signature_at_call_k) { + ciKlass* improved_klass = callee_signature_k->exact_klass(); + if (improved_klass == NULL) { + improved_klass = comp->cha_exact_type(callee_signature_k); + } + if (improved_klass != NULL && exact_klass != improved_klass) { + assert(exact_klass == NULL, "obj and signature disagree?"); + exact_klass = exact_signature_k; + } + } + do_update = exact_klass == NULL || ciTypeEntries::valid_ciklass(profiled_k) != exact_klass; } if (!do_null && !do_update) { @@ -2640,7 +2667,7 @@ ciKlass* LIRGenerator::profile_arg_type(ciMethodData* md, int md_base_offset, in __ leal(LIR_OprFact::address(base_type_address), mdp); } } - LIRItem value(arg, this); + LIRItem value(obj, this); value.load_item(); __ profile_type(new LIR_Address(mdp, md_offset, T_METADATA), value.result(), exact_klass, profiled_k, new_pointer_register(), not_null, exact_signature_k != NULL); @@ -2665,9 +2692,9 @@ void LIRGenerator::profile_parameters(Base* x) { if (t == T_OBJECT || t == T_ARRAY) { intptr_t profiled_k = parameters->type(j); Local* local = x->state()->local_at(java_index)->as_Local(); - ciKlass* exact = profile_arg_type(md, md->byte_offset_of_slot(parameters_type_data, ParametersTypeData::type_offset(0)), - in_bytes(ParametersTypeData::type_offset(j)) - in_bytes(ParametersTypeData::type_offset(0)), - profiled_k, local, mdp, false, local->declared_type()->as_klass()); + ciKlass* exact = profile_type(md, md->byte_offset_of_slot(parameters_type_data, ParametersTypeData::type_offset(0)), + in_bytes(ParametersTypeData::type_offset(j)) - in_bytes(ParametersTypeData::type_offset(0)), + profiled_k, local, mdp, false, local->declared_type()->as_klass(), NULL); // If the profile is known statically set it once for all and do not emit any code if (exact != NULL) { md->set_parameter_type(j, exact); @@ -3129,19 +3156,28 @@ void LIRGenerator::profile_arguments(ProfileCall* x) { Bytecodes::Code bc = x->method()->java_code_at_bci(bci); int start = 0; int stop = data->is_CallTypeData() ? ((ciCallTypeData*)data)->number_of_arguments() : ((ciVirtualCallTypeData*)data)->number_of_arguments(); - if (x->nb_profiled_args() < stop) { - // if called through method handle invoke, some arguments may have been popped - stop = x->nb_profiled_args(); + if (x->inlined() && x->callee()->is_static() && Bytecodes::has_receiver(bc)) { + // first argument is not profiled at call (method handle invoke) + assert(x->method()->raw_code_at_bci(bci) == Bytecodes::_invokehandle, "invokehandle expected"); + start = 1; } - ciSignature* sig = x->callee()->signature(); + ciSignature* callee_signature = x->callee()->signature(); // method handle call to virtual method bool has_receiver = x->inlined() && !x->callee()->is_static() && !Bytecodes::has_receiver(bc); - ciSignatureStream sig_stream(sig, has_receiver ? x->callee()->holder() : NULL); - for (int i = 0; i < stop; i++) { + ciSignatureStream callee_signature_stream(callee_signature, has_receiver ? x->callee()->holder() : NULL); + + bool ignored_will_link; + ciSignature* signature_at_call = NULL; + x->method()->get_method_at_bci(bci, ignored_will_link, &signature_at_call); + ciSignatureStream signature_at_call_stream(signature_at_call); + + // if called through method handle invoke, some arguments may have been popped + for (int i = 0; i < stop && i+start < x->nb_profiled_args(); i++) { int off = in_bytes(TypeEntriesAtCall::argument_type_offset(i)) - in_bytes(TypeEntriesAtCall::args_data_offset()); - ciKlass* exact = profile_arg_type(md, base_offset, off, - args->type(i), x->profiled_arg_at(i+start), mdp, - !x->arg_needs_null_check(i+start), sig_stream.next_klass()); + ciKlass* exact = profile_type(md, base_offset, off, + args->type(i), x->profiled_arg_at(i+start), mdp, + !x->arg_needs_null_check(i+start), + signature_at_call_stream.next_klass(), callee_signature_stream.next_klass()); if (exact != NULL) { md->set_argument_type(bci, i, exact); } @@ -3176,8 +3212,8 @@ void LIRGenerator::profile_parameters_at_call(ProfileCall* x) { int bci = x->bci_of_invoke(); Bytecodes::Code bc = x->method()->java_code_at_bci(bci); // The first parameter is the receiver so that's what we start - // with if it exists. On exception if method handle call to - // virtual method has receiver in the args list + // with if it exists. One exception is method handle call to + // virtual method: the receiver is in the args list if (arg == NULL || !Bytecodes::has_receiver(bc)) { i = 1; arg = x->profiled_arg_at(0); @@ -3186,9 +3222,9 @@ void LIRGenerator::profile_parameters_at_call(ProfileCall* x) { int k = 0; // to iterate on the profile data for (;;) { intptr_t profiled_k = parameters->type(k); - ciKlass* exact = profile_arg_type(md, md->byte_offset_of_slot(parameters_type_data, ParametersTypeData::type_offset(0)), - in_bytes(ParametersTypeData::type_offset(k)) - in_bytes(ParametersTypeData::type_offset(0)), - profiled_k, arg, mdp, not_null, sig_stream.next_klass()); + ciKlass* exact = profile_type(md, md->byte_offset_of_slot(parameters_type_data, ParametersTypeData::type_offset(0)), + in_bytes(ParametersTypeData::type_offset(k)) - in_bytes(ParametersTypeData::type_offset(0)), + profiled_k, arg, mdp, not_null, sig_stream.next_klass(), NULL); // If the profile is known statically set it once for all and do not emit any code if (exact != NULL) { md->set_parameter_type(k, exact); @@ -3247,9 +3283,16 @@ void LIRGenerator::do_ProfileReturnType(ProfileReturnType* x) { assert(data->is_CallTypeData() || data->is_VirtualCallTypeData(), "wrong profile data type"); ciReturnTypeEntry* ret = data->is_CallTypeData() ? ((ciCallTypeData*)data)->ret() : ((ciVirtualCallTypeData*)data)->ret(); LIR_Opr mdp = LIR_OprFact::illegalOpr; - ciKlass* exact = profile_arg_type(md, 0, md->byte_offset_of_slot(data, ret->type_offset()), - ret->type(), x->ret(), mdp, - !x->needs_null_check(), x->callee()->signature()->return_type()->as_klass()); + + bool ignored_will_link; + ciSignature* signature_at_call = NULL; + x->method()->get_method_at_bci(bci, ignored_will_link, &signature_at_call); + + ciKlass* exact = profile_type(md, 0, md->byte_offset_of_slot(data, ret->type_offset()), + ret->type(), x->ret(), mdp, + !x->needs_null_check(), + signature_at_call->return_type()->as_klass(), + x->callee()->signature()->return_type()->as_klass()); if (exact != NULL) { md->set_return_type(bci, exact); } diff --git a/hotspot/src/share/vm/c1/c1_LIRGenerator.hpp b/hotspot/src/share/vm/c1/c1_LIRGenerator.hpp index f0c640da919..90b278f4356 100644 --- a/hotspot/src/share/vm/c1/c1_LIRGenerator.hpp +++ b/hotspot/src/share/vm/c1/c1_LIRGenerator.hpp @@ -434,7 +434,9 @@ class LIRGenerator: public InstructionVisitor, public BlockClosure { void do_ThreadIDIntrinsic(Intrinsic* x); void do_ClassIDIntrinsic(Intrinsic* x); #endif - ciKlass* profile_arg_type(ciMethodData* md, int md_first_offset, int md_offset, intptr_t profiled_k, Value arg, LIR_Opr& mdp, bool not_null, ciKlass* signature_k); + ciKlass* profile_type(ciMethodData* md, int md_first_offset, int md_offset, intptr_t profiled_k, + Value arg, LIR_Opr& mdp, bool not_null, ciKlass* signature_at_call_k, + ciKlass* callee_signature_k); void profile_arguments(ProfileCall* x); void profile_parameters(Base* x); void profile_parameters_at_call(ProfileCall* x); diff --git a/hotspot/src/share/vm/c1/c1_LinearScan.cpp b/hotspot/src/share/vm/c1/c1_LinearScan.cpp index b7c04dbe825..52dff2642c1 100644 --- a/hotspot/src/share/vm/c1/c1_LinearScan.cpp +++ b/hotspot/src/share/vm/c1/c1_LinearScan.cpp @@ -1138,8 +1138,10 @@ IntervalUseKind LinearScan::use_kind_of_input_operand(LIR_Op* op, LIR_Opr opr) { } } } - - } else if (opr_type != T_LONG) { + // We want to sometimes use logical operations on pointers, in particular in GC barriers. + // Since 64bit logical operations do not current support operands on stack, we have to make sure + // T_OBJECT doesn't get spilled along with T_LONG. + } else if (opr_type != T_LONG LP64_ONLY(&& opr_type != T_OBJECT)) { // integer instruction (note: long operands must always be in register) switch (op->code()) { case lir_cmp: diff --git a/hotspot/src/share/vm/c1/c1_globals.hpp b/hotspot/src/share/vm/c1/c1_globals.hpp index 9cc51ede622..c7136909c40 100644 --- a/hotspot/src/share/vm/c1/c1_globals.hpp +++ b/hotspot/src/share/vm/c1/c1_globals.hpp @@ -341,9 +341,6 @@ diagnostic(bool, C1PatchInvokeDynamic, true, \ "Patch invokedynamic appendix not known at compile time") \ \ - develop(intx, MaxForceInlineLevel, 100, \ - "maximum number of nested @ForceInline calls that are inlined") \ - \ // Read default values for c1 globals diff --git a/hotspot/src/share/vm/ci/ciEnv.cpp b/hotspot/src/share/vm/ci/ciEnv.cpp index 7e61a849b0f..f6c8949488e 100644 --- a/hotspot/src/share/vm/ci/ciEnv.cpp +++ b/hotspot/src/share/vm/ci/ciEnv.cpp @@ -935,7 +935,9 @@ void ciEnv::register_method(ciMethod* target, // Prevent SystemDictionary::add_to_hierarchy from running // and invalidating our dependencies until we install this method. + // No safepoints are allowed. Otherwise, class redefinition can occur in between. MutexLocker ml(Compile_lock); + No_Safepoint_Verifier nsv; // Change in Jvmti state may invalidate compilation. if (!failing() && @@ -1001,16 +1003,6 @@ void ciEnv::register_method(ciMethod* target, // Free codeBlobs code_buffer->free_blob(); - // stress test 6243940 by immediately making the method - // non-entrant behind the system's back. This has serious - // side effects on the code cache and is not meant for - // general stress testing - if (nm != NULL && StressNonEntrant) { - MutexLockerEx pl(Patching_lock, Mutex::_no_safepoint_check_flag); - NativeJump::patch_verified_entry(nm->entry_point(), nm->verified_entry_point(), - SharedRuntime::get_handle_wrong_method_stub()); - } - if (nm == NULL) { // The CodeCache is full. Print out warning and disable compilation. record_failure("code cache is full"); @@ -1036,11 +1028,11 @@ void ciEnv::register_method(ciMethod* target, char *method_name = method->name_and_sig_as_C_string(); tty->print_cr("Replacing method %s", method_name); } - if (old != NULL ) { + if (old != NULL) { old->make_not_entrant(); } } - if (TraceNMethodInstalls ) { + if (TraceNMethodInstalls) { ResourceMark rm; char *method_name = method->name_and_sig_as_C_string(); ttyLocker ttyl; @@ -1051,7 +1043,7 @@ void ciEnv::register_method(ciMethod* target, // Allow the code to be executed method->set_code(method, nm); } else { - if (TraceNMethodInstalls ) { + if (TraceNMethodInstalls) { ResourceMark rm; char *method_name = method->name_and_sig_as_C_string(); ttyLocker ttyl; @@ -1061,7 +1053,6 @@ void ciEnv::register_method(ciMethod* target, entry_bci); } method->method_holder()->add_osr_nmethod(nm); - } } } diff --git a/hotspot/src/share/vm/ci/ciMethodData.hpp b/hotspot/src/share/vm/ci/ciMethodData.hpp index 0602f85a125..0eeb510e348 100644 --- a/hotspot/src/share/vm/ci/ciMethodData.hpp +++ b/hotspot/src/share/vm/ci/ciMethodData.hpp @@ -77,7 +77,9 @@ public: static ciKlass* valid_ciklass(intptr_t k) { if (!TypeEntries::is_type_none(k) && !TypeEntries::is_type_unknown(k)) { - return (ciKlass*)TypeEntries::klass_part(k); + ciKlass* res = (ciKlass*)TypeEntries::klass_part(k); + assert(res != NULL, "invalid"); + return res; } else { return NULL; } diff --git a/hotspot/src/share/vm/classfile/classFileParser.cpp b/hotspot/src/share/vm/classfile/classFileParser.cpp index 1774ac18284..8990cc3952f 100644 --- a/hotspot/src/share/vm/classfile/classFileParser.cpp +++ b/hotspot/src/share/vm/classfile/classFileParser.cpp @@ -4080,7 +4080,7 @@ instanceKlassHandle ClassFileParser::parseClassFile(Symbol* name, // Generate any default methods - default methods are interface methods // that have a default implementation. This is new with Lambda project. - if (has_default_methods && !access_flags.is_interface() ) { + if (has_default_methods ) { DefaultMethods::generate_default_methods( this_klass(), &all_mirandas, CHECK_(nullHandle)); } diff --git a/hotspot/src/share/vm/classfile/defaultMethods.cpp b/hotspot/src/share/vm/classfile/defaultMethods.cpp index 6b3c910d67c..619856d69e5 100644 --- a/hotspot/src/share/vm/classfile/defaultMethods.cpp +++ b/hotspot/src/share/vm/classfile/defaultMethods.cpp @@ -171,8 +171,12 @@ class HierarchyVisitor : StackObj { } bool is_cancelled() const { return _cancelled; } + // This code used to skip interface classes because their only + // superclass was j.l.Object which would be also covered by class + // superclass hierarchy walks. Now that the starting point can be + // an interface, we must ensure we catch j.l.Object as the super. static bool has_super(InstanceKlass* cls) { - return cls->super() != NULL && !cls->is_interface(); + return cls->super() != NULL; } Node* node_at_depth(int i) const { @@ -391,24 +395,32 @@ class MethodFamily : public ResourceObj { return; } + // Qualified methods are maximally-specific methods + // These include public, instance concrete (=default) and abstract methods GrowableArray qualified_methods; + int num_defaults = 0; + int default_index = -1; + int qualified_index = -1; for (int i = 0; i < _members.length(); ++i) { Pair entry = _members.at(i); if (entry.second == QUALIFIED) { qualified_methods.append(entry.first); + qualified_index++; + if (entry.first->is_default_method()) { + num_defaults++; + default_index = qualified_index; + + } } } if (qualified_methods.length() == 0) { _exception_message = generate_no_defaults_message(CHECK); _exception_name = vmSymbols::java_lang_AbstractMethodError(); - } else if (qualified_methods.length() == 1) { - // leave abstract methods alone, they will be found via normal search path - Method* method = qualified_methods.at(0); - if (!method->is_abstract()) { - _selected_target = qualified_methods.at(0); - } - } else { + // If only one qualified method is default, select that + } else if (num_defaults == 1) { + _selected_target = qualified_methods.at(default_index); + } else if (num_defaults > 1) { _exception_message = generate_conflicts_message(&qualified_methods,CHECK); _exception_name = vmSymbols::java_lang_IncompatibleClassChangeError(); if (TraceDefaultMethods) { @@ -416,6 +428,7 @@ class MethodFamily : public ResourceObj { tty->print_cr(""); } } + // leave abstract methods alone, they will be found via normal search path } bool contains_signature(Symbol* query) { @@ -695,8 +708,10 @@ class FindMethodsByErasedSig : public HierarchyVisitor { Method* m = iklass->find_method(_method_name, _method_signature); // private interface methods are not candidates for default methods // invokespecial to private interface methods doesn't use default method logic + // The overpasses are your supertypes' errors, we do not include them // future: take access controls into account for superclass methods - if (m != NULL && !m->is_static() && (!iklass->is_interface() || m->is_public())) { + if (m != NULL && !m->is_static() && !m->is_overpass() && + (!iklass->is_interface() || m->is_public())) { if (_family == NULL) { _family = new StatefulMethodFamily(); } @@ -772,7 +787,8 @@ void DefaultMethods::generate_default_methods( #ifndef PRODUCT if (TraceDefaultMethods) { ResourceMark rm; // be careful with these! - tty->print_cr("Class %s requires default method processing", + tty->print_cr("%s %s requires default method processing", + klass->is_interface() ? "Interface" : "Class", klass->name()->as_klass_external_name()); PrintHierarchy printer; printer.run(klass); @@ -797,7 +813,7 @@ void DefaultMethods::generate_default_methods( } #ifndef PRODUCT if (TraceDefaultMethods) { - tty->print_cr("Creating overpasses..."); + tty->print_cr("Creating defaults and overpasses..."); } #endif // ndef PRODUCT @@ -1067,7 +1083,9 @@ static void merge_in_new_methods(InstanceKlass* klass, klass->set_initial_method_idnum(new_size); ClassLoaderData* cld = klass->class_loader_data(); - MetadataFactory::free_array(cld, original_methods); + if (original_methods ->length() > 0) { + MetadataFactory::free_array(cld, original_methods); + } if (original_ordering->length() > 0) { klass->set_method_ordering(merged_ordering); MetadataFactory::free_array(cld, original_ordering); diff --git a/hotspot/src/share/vm/classfile/metadataOnStackMark.cpp b/hotspot/src/share/vm/classfile/metadataOnStackMark.cpp index 1f24042f5cb..20404879adb 100644 --- a/hotspot/src/share/vm/classfile/metadataOnStackMark.cpp +++ b/hotspot/src/share/vm/classfile/metadataOnStackMark.cpp @@ -27,6 +27,7 @@ #include "code/codeCache.hpp" #include "compiler/compileBroker.hpp" #include "oops/metadata.hpp" +#include "prims/jvmtiImpl.hpp" #include "runtime/synchronizer.hpp" #include "runtime/thread.hpp" #include "utilities/growableArray.hpp" @@ -48,6 +49,7 @@ MetadataOnStackMark::MetadataOnStackMark() { Threads::metadata_do(Metadata::mark_on_stack); CodeCache::alive_nmethods_do(nmethod::mark_on_stack); CompileBroker::mark_on_stack(); + JvmtiCurrentBreakpoints::metadata_do(Metadata::mark_on_stack); } MetadataOnStackMark::~MetadataOnStackMark() { diff --git a/hotspot/src/share/vm/code/nmethod.cpp b/hotspot/src/share/vm/code/nmethod.cpp index 5d74db0d38b..68718499a00 100644 --- a/hotspot/src/share/vm/code/nmethod.cpp +++ b/hotspot/src/share/vm/code/nmethod.cpp @@ -618,21 +618,18 @@ nmethod* nmethod::new_nmethod(methodHandle method, // record this nmethod as dependent on this klass InstanceKlass::cast(klass)->add_dependent_nmethod(nm); } - } - NOT_PRODUCT(if (nm != NULL) nmethod_stats.note_nmethod(nm)); - if (PrintAssembly && nm != NULL) { - Disassembler::decode(nm); + NOT_PRODUCT(nmethod_stats.note_nmethod(nm)); + if (PrintAssembly) { + Disassembler::decode(nm); + } } } - - // verify nmethod - debug_only(if (nm) nm->verify();) // might block - + // Do verification and logging outside CodeCache_lock. if (nm != NULL) { + // Safepoints in nmethod::verify aren't allowed because nm hasn't been installed yet. + DEBUG_ONLY(nm->verify();) nm->log_new_nmethod(); } - - // done return nm; } @@ -1262,7 +1259,7 @@ void nmethod::make_unloaded(BoolObjectClosure* is_alive, oop cause) { set_osr_link(NULL); //set_scavenge_root_link(NULL); // done by prune_scavenge_root_nmethods - NMethodSweeper::notify(); + NMethodSweeper::report_state_change(this); } void nmethod::invalidate_osr_method() { @@ -1296,7 +1293,9 @@ void nmethod::log_state_change() const { } } -// Common functionality for both make_not_entrant and make_zombie +/** + * Common functionality for both make_not_entrant and make_zombie + */ bool nmethod::make_not_entrant_or_zombie(unsigned int state) { assert(state == zombie || state == not_entrant, "must be zombie or not_entrant"); assert(!is_zombie(), "should not already be a zombie"); @@ -1420,9 +1419,7 @@ bool nmethod::make_not_entrant_or_zombie(unsigned int state) { tty->print_cr("nmethod <" INTPTR_FORMAT "> code made %s", this, (state == not_entrant) ? "not entrant" : "zombie"); } - // Make sweeper aware that there is a zombie method that needs to be removed - NMethodSweeper::notify(); - + NMethodSweeper::report_state_change(this); return true; } @@ -2395,20 +2392,23 @@ void nmethod::verify() { void nmethod::verify_interrupt_point(address call_site) { - // This code does not work in release mode since - // owns_lock only is available in debug mode. - CompiledIC* ic = NULL; - Thread *cur = Thread::current(); - if (CompiledIC_lock->owner() == cur || - ((cur->is_VM_thread() || cur->is_ConcurrentGC_thread()) && - SafepointSynchronize::is_at_safepoint())) { - ic = CompiledIC_at(this, call_site); - CHECK_UNHANDLED_OOPS_ONLY(Thread::current()->clear_unhandled_oops()); - } else { - MutexLocker ml_verify (CompiledIC_lock); - ic = CompiledIC_at(this, call_site); + // Verify IC only when nmethod installation is finished. + bool is_installed = (method()->code() == this) // nmethod is in state 'alive' and installed + || !this->is_in_use(); // nmethod is installed, but not in 'alive' state + if (is_installed) { + Thread *cur = Thread::current(); + if (CompiledIC_lock->owner() == cur || + ((cur->is_VM_thread() || cur->is_ConcurrentGC_thread()) && + SafepointSynchronize::is_at_safepoint())) { + CompiledIC_at(this, call_site); + CHECK_UNHANDLED_OOPS_ONLY(Thread::current()->clear_unhandled_oops()); + } else { + MutexLocker ml_verify (CompiledIC_lock); + CompiledIC_at(this, call_site); + } } - PcDesc* pd = pc_desc_at(ic->end_of_call()); + + PcDesc* pd = pc_desc_at(nativeCall_at(call_site)->return_address()); assert(pd != NULL, "PcDesc must exist"); for (ScopeDesc* sd = new ScopeDesc(this, pd->scope_decode_offset(), pd->obj_decode_offset(), pd->should_reexecute(), diff --git a/hotspot/src/share/vm/compiler/compileBroker.cpp b/hotspot/src/share/vm/compiler/compileBroker.cpp index fb47df28267..f8fa26ff8c2 100644 --- a/hotspot/src/share/vm/compiler/compileBroker.cpp +++ b/hotspot/src/share/vm/compiler/compileBroker.cpp @@ -126,6 +126,7 @@ HS_DTRACE_PROBE_DECL9(hotspot, method__compile__end, bool CompileBroker::_initialized = false; volatile bool CompileBroker::_should_block = false; +volatile jint CompileBroker::_print_compilation_warning = 0; volatile jint CompileBroker::_should_compile_new_jobs = run_compilation; // The installed compiler(s) @@ -2027,11 +2028,10 @@ void CompileBroker::invoke_compiler_on_method(CompileTask* task) { #endif } -// ------------------------------------------------------------------ -// CompileBroker::handle_full_code_cache -// -// The CodeCache is full. Print out warning and disable compilation or -// try code cache cleaning so compilation can continue later. +/** + * The CodeCache is full. Print out warning and disable compilation + * or try code cache cleaning so compilation can continue later. + */ void CompileBroker::handle_full_code_cache() { UseInterpreter = true; if (UseCompiler || AlwaysCompileLoopMethods ) { @@ -2048,12 +2048,9 @@ void CompileBroker::handle_full_code_cache() { xtty->stamp(); xtty->end_elem(); } - warning("CodeCache is full. Compiler has been disabled."); - warning("Try increasing the code cache size using -XX:ReservedCodeCacheSize="); CodeCache::report_codemem_full(); - #ifndef PRODUCT if (CompileTheWorld || ExitOnFullCodeCache) { codecache_print(/* detailed= */ true); @@ -2066,17 +2063,22 @@ void CompileBroker::handle_full_code_cache() { // Since code cache is full, immediately stop new compiles if (CompileBroker::set_should_compile_new_jobs(CompileBroker::stop_compilation)) { NMethodSweeper::log_sweep("disable_compiler"); - - // Switch to 'vm_state'. This ensures that possibly_sweep() can be called - // without having to consider the state in which the current thread is. - ThreadInVMfromUnknown in_vm; - NMethodSweeper::possibly_sweep(); } + // Switch to 'vm_state'. This ensures that possibly_sweep() can be called + // without having to consider the state in which the current thread is. + ThreadInVMfromUnknown in_vm; + NMethodSweeper::possibly_sweep(); } else { disable_compilation_forever(); } + + // Print warning only once + if (should_print_compiler_warning()) { + warning("CodeCache is full. Compiler has been disabled."); + warning("Try increasing the code cache size using -XX:ReservedCodeCacheSize="); + codecache_print(/* detailed= */ true); + } } - codecache_print(/* detailed= */ true); } // ------------------------------------------------------------------ diff --git a/hotspot/src/share/vm/compiler/compileBroker.hpp b/hotspot/src/share/vm/compiler/compileBroker.hpp index 19beeec9fb4..a74afb3065f 100644 --- a/hotspot/src/share/vm/compiler/compileBroker.hpp +++ b/hotspot/src/share/vm/compiler/compileBroker.hpp @@ -315,6 +315,8 @@ class CompileBroker: AllStatic { static int _sum_nmethod_code_size; static long _peak_compilation_time; + static volatile jint _print_compilation_warning; + static CompilerThread* make_compiler_thread(const char* name, CompileQueue* queue, CompilerCounters* counters, AbstractCompiler* comp, TRAPS); static void init_compiler_threads(int c1_compiler_count, int c2_compiler_count); static bool compilation_is_complete (methodHandle method, int osr_bci, int comp_level); @@ -418,7 +420,11 @@ class CompileBroker: AllStatic { return _should_compile_new_jobs == shutdown_compilaton; } static void handle_full_code_cache(); - + // Ensures that warning is only printed once. + static bool should_print_compiler_warning() { + jint old = Atomic::cmpxchg(1, &_print_compilation_warning, 0); + return old == 0; + } // Return total compilation ticks static jlong total_compilation_ticks() { return _perf_total_compilation != NULL ? _perf_total_compilation->get_value() : 0; diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.cpp index c2aafb7bc20..a236a10efb3 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.cpp @@ -47,8 +47,9 @@ // ConcurrentMarkSweepPolicy methods // -ConcurrentMarkSweepPolicy::ConcurrentMarkSweepPolicy() { - initialize_all(); +void ConcurrentMarkSweepPolicy::initialize_alignments() { + _space_alignment = _gen_alignment = (uintx)Generation::GenGrain; + _heap_alignment = compute_heap_alignment(); } void ConcurrentMarkSweepPolicy::initialize_generations() { diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.hpp index 1483bca13eb..d26959f3d9f 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.hpp @@ -29,10 +29,11 @@ class ConcurrentMarkSweepPolicy : public TwoGenerationCollectorPolicy { protected: + void initialize_alignments(); void initialize_generations(); public: - ConcurrentMarkSweepPolicy(); + ConcurrentMarkSweepPolicy() {} ConcurrentMarkSweepPolicy* as_concurrent_mark_sweep_policy() { return this; } diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp index bf4ac21e346..ffe87d57c8d 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp @@ -594,9 +594,9 @@ CMSCollector::CMSCollector(ConcurrentMarkSweepGeneration* cmsGen, _verification_mark_bm(0, Mutex::leaf + 1, "CMS_verification_mark_bm_lock"), _completed_initialization(false), _collector_policy(cp), - _should_unload_classes(false), + _should_unload_classes(CMSClassUnloadingEnabled), _concurrent_cycles_since_last_unload(0), - _roots_scanning_options(0), + _roots_scanning_options(SharedHeap::SO_None), _inter_sweep_estimate(CMS_SweepWeight, CMS_SweepPadding), _intra_sweep_estimate(CMS_SweepWeight, CMS_SweepPadding), _gc_tracer_cm(new (ResourceObj::C_HEAP, mtGC) CMSTracer()), @@ -788,14 +788,6 @@ CMSCollector::CMSCollector(ConcurrentMarkSweepGeneration* cmsGen, && _survivor_chunk_index == 0), "Error"); - // Choose what strong roots should be scanned depending on verification options - if (!CMSClassUnloadingEnabled) { - // If class unloading is disabled we want to include all classes into the root set. - add_root_scanning_option(SharedHeap::SO_AllClasses); - } else { - add_root_scanning_option(SharedHeap::SO_SystemClasses); - } - NOT_PRODUCT(_overflow_counter = CMSMarkStackOverflowInterval;) _gc_counters = new CollectorCounters("CMS", 1); _completed_initialization = true; @@ -2532,6 +2524,9 @@ void CMSCollector::collect_in_foreground(bool clear_all_soft_refs, GCCause::Caus // Snapshot the soft reference policy to be used in this collection cycle. ref_processor()->setup_policy(clear_all_soft_refs); + // Decide if class unloading should be done + update_should_unload_classes(); + bool init_mark_was_synchronous = false; // until proven otherwise while (_collectorState != Idling) { if (TraceCMSState) { @@ -3310,7 +3305,10 @@ void CMSCollector::setup_cms_unloading_and_verification_state() { || VerifyBeforeExit; const int rso = SharedHeap::SO_Strings | SharedHeap::SO_CodeCache; + // We set the proper root for this CMS cycle here. if (should_unload_classes()) { // Should unload classes this cycle + remove_root_scanning_option(SharedHeap::SO_AllClasses); + add_root_scanning_option(SharedHeap::SO_SystemClasses); remove_root_scanning_option(rso); // Shrink the root set appropriately set_verifying(should_verify); // Set verification state for this cycle return; // Nothing else needs to be done at this time @@ -3318,6 +3316,9 @@ void CMSCollector::setup_cms_unloading_and_verification_state() { // Not unloading classes this cycle assert(!should_unload_classes(), "Inconsitency!"); + remove_root_scanning_option(SharedHeap::SO_SystemClasses); + add_root_scanning_option(SharedHeap::SO_AllClasses); + if ((!verifying() || unloaded_classes_last_cycle()) && should_verify) { // Include symbols, strings and code cache elements to prevent their resurrection. add_root_scanning_option(rso); diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp index 3f53067ca8d..4b82d5bd667 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @@ -2008,7 +2008,7 @@ jint G1CollectedHeap::initialize() { size_t init_byte_size = collector_policy()->initial_heap_byte_size(); size_t max_byte_size = collector_policy()->max_heap_byte_size(); - size_t heap_alignment = collector_policy()->max_alignment(); + size_t heap_alignment = collector_policy()->heap_alignment(); // Ensure that the sizes are properly aligned. Universe::check_alignment(init_byte_size, HeapRegion::GrainBytes, "g1 heap"); @@ -6656,13 +6656,18 @@ class RegisterNMethodOopClosure: public OopClosure { if (!oopDesc::is_null(heap_oop)) { oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); HeapRegion* hr = _g1h->heap_region_containing(obj); - assert(!hr->isHumongous(), "code root in humongous region?"); + assert(!hr->continuesHumongous(), + err_msg("trying to add code root "PTR_FORMAT" in continuation of humongous region "HR_FORMAT + " starting at "HR_FORMAT, + _nm, HR_FORMAT_PARAMS(hr), HR_FORMAT_PARAMS(hr->humongous_start_region()))); // HeapRegion::add_strong_code_root() avoids adding duplicate // entries but having duplicates is OK since we "mark" nmethods // as visited when we scan the strong code root lists during the GC. hr->add_strong_code_root(_nm); - assert(hr->rem_set()->strong_code_roots_list_contains(_nm), "add failed?"); + assert(hr->rem_set()->strong_code_roots_list_contains(_nm), + err_msg("failed to add code root "PTR_FORMAT" to remembered set of region "HR_FORMAT, + _nm, HR_FORMAT_PARAMS(hr))); } } @@ -6683,9 +6688,15 @@ class UnregisterNMethodOopClosure: public OopClosure { if (!oopDesc::is_null(heap_oop)) { oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); HeapRegion* hr = _g1h->heap_region_containing(obj); - assert(!hr->isHumongous(), "code root in humongous region?"); + assert(!hr->continuesHumongous(), + err_msg("trying to remove code root "PTR_FORMAT" in continuation of humongous region "HR_FORMAT + " starting at "HR_FORMAT, + _nm, HR_FORMAT_PARAMS(hr), HR_FORMAT_PARAMS(hr->humongous_start_region()))); + hr->remove_strong_code_root(_nm); - assert(!hr->rem_set()->strong_code_roots_list_contains(_nm), "remove failed?"); + assert(!hr->rem_set()->strong_code_roots_list_contains(_nm), + err_msg("failed to remove code root "PTR_FORMAT" of region "HR_FORMAT, + _nm, HR_FORMAT_PARAMS(hr))); } } @@ -6716,7 +6727,9 @@ void G1CollectedHeap::unregister_nmethod(nmethod* nm) { class MigrateCodeRootsHeapRegionClosure: public HeapRegionClosure { public: bool doHeapRegion(HeapRegion *hr) { - assert(!hr->isHumongous(), "humongous region in collection set?"); + assert(!hr->isHumongous(), + err_msg("humongous region "HR_FORMAT" should not have been added to collection set", + HR_FORMAT_PARAMS(hr))); hr->migrate_strong_code_roots(); return false; } @@ -6796,9 +6809,13 @@ public: bool doHeapRegion(HeapRegion *hr) { HeapRegionRemSet* hrrs = hr->rem_set(); - if (hr->isHumongous()) { - // Code roots should never be attached to a humongous region - assert(hrrs->strong_code_roots_list_length() == 0, "sanity"); + if (hr->continuesHumongous()) { + // Code roots should never be attached to a continuation of a humongous region + assert(hrrs->strong_code_roots_list_length() == 0, + err_msg("code roots should never be attached to continuations of humongous region "HR_FORMAT + " starting at "HR_FORMAT", but has "INT32_FORMAT, + HR_FORMAT_PARAMS(hr), HR_FORMAT_PARAMS(hr->humongous_start_region()), + hrrs->strong_code_roots_list_length())); return false; } diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp index 92eee2e8eb9..b4f9a0b0007 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp @@ -313,27 +313,38 @@ G1CollectorPolicy::G1CollectorPolicy() : // for the first time during initialization. _reserve_regions = 0; - initialize_all(); _collectionSetChooser = new CollectionSetChooser(); - _young_gen_sizer = new G1YoungGenSizer(); // Must be after call to initialize_flags +} + +void G1CollectorPolicy::initialize_alignments() { + _space_alignment = HeapRegion::GrainBytes; + size_t card_table_alignment = GenRemSet::max_alignment_constraint(GenRemSet::CardTable); + size_t page_size = UseLargePages ? os::large_page_size() : os::vm_page_size(); + _heap_alignment = MAX3(card_table_alignment, _space_alignment, page_size); } void G1CollectorPolicy::initialize_flags() { - _min_alignment = HeapRegion::GrainBytes; - size_t card_table_alignment = GenRemSet::max_alignment_constraint(rem_set_name()); - size_t page_size = UseLargePages ? os::large_page_size() : os::vm_page_size(); - _max_alignment = MAX3(card_table_alignment, _min_alignment, page_size); + if (G1HeapRegionSize != HeapRegion::GrainBytes) { + FLAG_SET_ERGO(uintx, G1HeapRegionSize, HeapRegion::GrainBytes); + } + if (SurvivorRatio < 1) { vm_exit_during_initialization("Invalid survivor ratio specified"); } CollectorPolicy::initialize_flags(); + _young_gen_sizer = new G1YoungGenSizer(); // Must be after call to initialize_flags } -G1YoungGenSizer::G1YoungGenSizer() : _sizer_kind(SizerDefaults), _adaptive_size(true) { - assert(G1NewSizePercent <= G1MaxNewSizePercent, "Min larger than max"); - assert(G1NewSizePercent > 0 && G1NewSizePercent < 100, "Min out of bounds"); - assert(G1MaxNewSizePercent > 0 && G1MaxNewSizePercent < 100, "Max out of bounds"); +void G1CollectorPolicy::post_heap_initialize() { + uintx max_regions = G1CollectedHeap::heap()->max_regions(); + size_t max_young_size = (size_t)_young_gen_sizer->max_young_length(max_regions) * HeapRegion::GrainBytes; + if (max_young_size != MaxNewSize) { + FLAG_SET_ERGO(uintx, MaxNewSize, max_young_size); + } +} +G1YoungGenSizer::G1YoungGenSizer() : _sizer_kind(SizerDefaults), _adaptive_size(true), + _min_desired_young_length(0), _max_desired_young_length(0) { if (FLAG_IS_CMDLINE(NewRatio)) { if (FLAG_IS_CMDLINE(NewSize) || FLAG_IS_CMDLINE(MaxNewSize)) { warning("-XX:NewSize and -XX:MaxNewSize override -XX:NewRatio"); @@ -344,8 +355,13 @@ G1YoungGenSizer::G1YoungGenSizer() : _sizer_kind(SizerDefaults), _adaptive_size( } } - if (FLAG_IS_CMDLINE(NewSize) && FLAG_IS_CMDLINE(MaxNewSize) && NewSize > MaxNewSize) { - vm_exit_during_initialization("Initial young gen size set larger than the maximum young gen size"); + if (NewSize > MaxNewSize) { + if (FLAG_IS_CMDLINE(MaxNewSize)) { + warning("NewSize (" SIZE_FORMAT "k) is greater than the MaxNewSize (" SIZE_FORMAT "k). " + "A new max generation size of " SIZE_FORMAT "k will be used.", + NewSize/K, MaxNewSize/K, NewSize/K); + } + MaxNewSize = NewSize; } if (FLAG_IS_CMDLINE(NewSize)) { @@ -378,34 +394,48 @@ uint G1YoungGenSizer::calculate_default_max_length(uint new_number_of_heap_regio return MAX2(1U, default_value); } -void G1YoungGenSizer::heap_size_changed(uint new_number_of_heap_regions) { - assert(new_number_of_heap_regions > 0, "Heap must be initialized"); +void G1YoungGenSizer::recalculate_min_max_young_length(uint number_of_heap_regions, uint* min_young_length, uint* max_young_length) { + assert(number_of_heap_regions > 0, "Heap must be initialized"); switch (_sizer_kind) { case SizerDefaults: - _min_desired_young_length = calculate_default_min_length(new_number_of_heap_regions); - _max_desired_young_length = calculate_default_max_length(new_number_of_heap_regions); + *min_young_length = calculate_default_min_length(number_of_heap_regions); + *max_young_length = calculate_default_max_length(number_of_heap_regions); break; case SizerNewSizeOnly: - _max_desired_young_length = calculate_default_max_length(new_number_of_heap_regions); - _max_desired_young_length = MAX2(_min_desired_young_length, _max_desired_young_length); + *max_young_length = calculate_default_max_length(number_of_heap_regions); + *max_young_length = MAX2(*min_young_length, *max_young_length); break; case SizerMaxNewSizeOnly: - _min_desired_young_length = calculate_default_min_length(new_number_of_heap_regions); - _min_desired_young_length = MIN2(_min_desired_young_length, _max_desired_young_length); + *min_young_length = calculate_default_min_length(number_of_heap_regions); + *min_young_length = MIN2(*min_young_length, *max_young_length); break; case SizerMaxAndNewSize: // Do nothing. Values set on the command line, don't update them at runtime. break; case SizerNewRatio: - _min_desired_young_length = new_number_of_heap_regions / (NewRatio + 1); - _max_desired_young_length = _min_desired_young_length; + *min_young_length = number_of_heap_regions / (NewRatio + 1); + *max_young_length = *min_young_length; break; default: ShouldNotReachHere(); } - assert(_min_desired_young_length <= _max_desired_young_length, "Invalid min/max young gen size values"); + assert(*min_young_length <= *max_young_length, "Invalid min/max young gen size values"); +} + +uint G1YoungGenSizer::max_young_length(uint number_of_heap_regions) { + // We need to pass the desired values because recalculation may not update these + // values in some cases. + uint temp = _min_desired_young_length; + uint result = _max_desired_young_length; + recalculate_min_max_young_length(number_of_heap_regions, &temp, &result); + return result; +} + +void G1YoungGenSizer::heap_size_changed(uint new_number_of_heap_regions) { + recalculate_min_max_young_length(new_number_of_heap_regions, &_min_desired_young_length, + &_max_desired_young_length); } void G1CollectorPolicy::init() { diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp index a497f2fa3b6..438bec82c51 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp @@ -136,8 +136,16 @@ private: uint calculate_default_min_length(uint new_number_of_heap_regions); uint calculate_default_max_length(uint new_number_of_heap_regions); + // Update the given values for minimum and maximum young gen length in regions + // given the number of heap regions depending on the kind of sizing algorithm. + void recalculate_min_max_young_length(uint number_of_heap_regions, uint* min_young_length, uint* max_young_length); + public: G1YoungGenSizer(); + // Calculate the maximum length of the young gen given the number of regions + // depending on the sizing algorithm. + uint max_young_length(uint number_of_heap_regions); + void heap_size_changed(uint new_number_of_heap_regions); uint min_desired_young_length() { return _min_desired_young_length; @@ -165,13 +173,9 @@ private: G1MMUTracker* _mmu_tracker; + void initialize_alignments(); void initialize_flags(); - void initialize_all() { - initialize_flags(); - initialize_size_info(); - } - CollectionSetChooser* _collectionSetChooser; double _full_collection_start_sec; @@ -217,7 +221,6 @@ private: return _during_marking; } -private: enum PredictionConstants { TruncatedSeqLength = 10 }; @@ -665,8 +668,6 @@ public: BarrierSet::Name barrier_set_name() { return BarrierSet::G1SATBCTLogging; } - GenRemSet::Name rem_set_name() { return GenRemSet::CardTable; } - bool need_to_start_conc_mark(const char* source, size_t alloc_word_size = 0); // Record the start and end of an evacuation pause. @@ -934,6 +935,7 @@ public: // Calculates survivor space parameters. void update_survivors_policy(); + virtual void post_heap_initialize(); }; // This should move to some place more general... diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.cpp index 0ed37e6c5a5..a11be17ef53 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.cpp @@ -377,11 +377,6 @@ void G1RemSet::prepare_for_oops_into_collection_set_do() { DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set(); dcqs.concatenate_logs(); - if (G1CollectedHeap::use_parallel_gc_threads()) { - // Don't set the number of workers here. It will be set - // when the task is run - // _seq_task->set_n_termination((int)n_workers()); - } guarantee( _cards_scanned == NULL, "invariant" ); _cards_scanned = NEW_C_HEAP_ARRAY(size_t, n_workers(), mtGC); for (uint i = 0; i < n_workers(); ++i) { diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp index 00eec548995..47a7a7a088f 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp @@ -174,11 +174,6 @@ void HeapRegion::setup_heap_region_size(size_t initial_heap_size, size_t max_hea region_size = MAX_REGION_SIZE; } - if (region_size != G1HeapRegionSize) { - // Update the flag to make sure that PrintFlagsFinal logs the correct value - FLAG_SET_ERGO(uintx, G1HeapRegionSize, region_size); - } - // And recalculate the log. region_size_log = log2_long((jlong) region_size); @@ -606,7 +601,9 @@ void HeapRegion::remove_strong_code_root(nmethod* nm) { void HeapRegion::migrate_strong_code_roots() { assert(in_collection_set(), "only collection set regions"); - assert(!isHumongous(), "not humongous regions"); + assert(!isHumongous(), + err_msg("humongous region "HR_FORMAT" should not have been added to collection set", + HR_FORMAT_PARAMS(this))); HeapRegionRemSet* hrrs = rem_set(); hrrs->migrate_strong_code_roots(); @@ -727,12 +724,11 @@ void HeapRegion::verify_strong_code_roots(VerifyOption vo, bool* failures) const return; } - // An H-region should have an empty strong code root list - if (isHumongous()) { + if (continuesHumongous()) { if (strong_code_roots_length > 0) { - gclog_or_tty->print_cr("region ["PTR_FORMAT","PTR_FORMAT"] is humongous " - "but has "INT32_FORMAT" code root entries", - bottom(), end(), strong_code_roots_length); + gclog_or_tty->print_cr("region "HR_FORMAT" is a continuation of a humongous " + "region but has "INT32_FORMAT" code root entries", + HR_FORMAT_PARAMS(this), strong_code_roots_length); *failures = true; } return; diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp index 68bdd760c2b..4308fc01873 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp @@ -1004,7 +1004,9 @@ public: void HeapRegionRemSet::migrate_strong_code_roots() { assert(hr()->in_collection_set(), "only collection set regions"); - assert(!hr()->isHumongous(), "not humongous regions"); + assert(!hr()->isHumongous(), + err_msg("humongous region "HR_FORMAT" should not have been added to the collection set", + HR_FORMAT_PARAMS(hr()))); ResourceMark rm; diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.cpp index 996a522927b..90bf630fe36 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.cpp @@ -25,6 +25,7 @@ #include "precompiled.hpp" #include "gc_implementation/parallelScavenge/adjoiningGenerations.hpp" #include "gc_implementation/parallelScavenge/adjoiningVirtualSpaces.hpp" +#include "gc_implementation/parallelScavenge/generationSizer.hpp" #include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" // If boundary moving is being used, create the young gen and old @@ -32,15 +33,17 @@ // the old behavior otherwise (with PSYoungGen and PSOldGen). AdjoiningGenerations::AdjoiningGenerations(ReservedSpace old_young_rs, - size_t init_low_byte_size, - size_t min_low_byte_size, - size_t max_low_byte_size, - size_t init_high_byte_size, - size_t min_high_byte_size, - size_t max_high_byte_size, + GenerationSizer* policy, size_t alignment) : - _virtual_spaces(old_young_rs, min_low_byte_size, - min_high_byte_size, alignment) { + _virtual_spaces(old_young_rs, policy->min_gen1_size(), + policy->min_gen0_size(), alignment) { + size_t init_low_byte_size = policy->initial_gen1_size(); + size_t min_low_byte_size = policy->min_gen1_size(); + size_t max_low_byte_size = policy->max_gen1_size(); + size_t init_high_byte_size = policy->initial_gen0_size(); + size_t min_high_byte_size = policy->min_gen0_size(); + size_t max_high_byte_size = policy->max_gen0_size(); + assert(min_low_byte_size <= init_low_byte_size && init_low_byte_size <= max_low_byte_size, "Parameter check"); assert(min_high_byte_size <= init_high_byte_size && diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.hpp index 70afb9996ae..950baa1d53f 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.hpp @@ -28,6 +28,7 @@ #include "gc_implementation/parallelScavenge/adjoiningVirtualSpaces.hpp" #include "gc_implementation/parallelScavenge/asPSOldGen.hpp" #include "gc_implementation/parallelScavenge/asPSYoungGen.hpp" +#include "gc_implementation/parallelScavenge/generationSizer.hpp" // Contains two generations that both use an AdjoiningVirtualSpaces. @@ -56,14 +57,7 @@ class AdjoiningGenerations : public CHeapObj { bool request_young_gen_expansion(size_t desired_change_in_bytes); public: - AdjoiningGenerations(ReservedSpace rs, - size_t init_low_byte_size, - size_t min_low_byte_size, - size_t max_low_byte_size, - size_t init_high_byte_size, - size_t min_high_byte_size, - size_t max_high_bytes_size, - size_t alignment); + AdjoiningGenerations(ReservedSpace rs, GenerationSizer* policy, size_t alignment); // Accessors PSYoungGen* young_gen() { return _young_gen; } diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.cpp index 39f5835ffe5..9d2e8182e06 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.cpp @@ -54,7 +54,6 @@ ASPSOldGen::ASPSOldGen(size_t initial_size, int level) : PSOldGen(initial_size, min_size, size_limit, gen_name, level), _gen_size_limit(size_limit) - {} ASPSOldGen::ASPSOldGen(PSVirtualSpace* vs, @@ -65,13 +64,11 @@ ASPSOldGen::ASPSOldGen(PSVirtualSpace* vs, int level) : PSOldGen(initial_size, min_size, size_limit, gen_name, level), _gen_size_limit(size_limit) - { _virtual_space = vs; } void ASPSOldGen::initialize_work(const char* perf_data_name, int level) { - PSOldGen::initialize_work(perf_data_name, level); // The old gen can grow to gen_size_limit(). _reserve reflects only @@ -94,7 +91,7 @@ size_t ASPSOldGen::available_for_expansion() { ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap(); size_t result = gen_size_limit() - virtual_space()->committed_size(); - size_t result_aligned = align_size_down(result, heap->old_gen_alignment()); + size_t result_aligned = align_size_down(result, heap->generation_alignment()); return result_aligned; } @@ -105,7 +102,7 @@ size_t ASPSOldGen::available_for_contraction() { } ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap(); - const size_t gen_alignment = heap->old_gen_alignment(); + const size_t gen_alignment = heap->generation_alignment(); PSAdaptiveSizePolicy* policy = heap->size_policy(); const size_t working_size = used_in_bytes() + (size_t) policy->avg_promoted()->padded_average(); diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.cpp index 73b63043b71..105772487c0 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.cpp @@ -70,13 +70,12 @@ void ASPSYoungGen::initialize(ReservedSpace rs, size_t alignment) { } size_t ASPSYoungGen::available_for_expansion() { - size_t current_committed_size = virtual_space()->committed_size(); assert((gen_size_limit() >= current_committed_size), "generation size limit is wrong"); ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap(); size_t result = gen_size_limit() - current_committed_size; - size_t result_aligned = align_size_down(result, heap->young_gen_alignment()); + size_t result_aligned = align_size_down(result, heap->generation_alignment()); return result_aligned; } @@ -85,7 +84,6 @@ size_t ASPSYoungGen::available_for_expansion() { // Future implementations could check the survivors and if to_space is in the // right place (below from_space), take a chunk from to_space. size_t ASPSYoungGen::available_for_contraction() { - size_t uncommitted_bytes = virtual_space()->uncommitted_size(); if (uncommitted_bytes != 0) { return uncommitted_bytes; @@ -94,8 +92,8 @@ size_t ASPSYoungGen::available_for_contraction() { if (eden_space()->is_empty()) { // Respect the minimum size for eden and for the young gen as a whole. ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap(); - const size_t eden_alignment = heap->intra_heap_alignment(); - const size_t gen_alignment = heap->young_gen_alignment(); + const size_t eden_alignment = heap->space_alignment(); + const size_t gen_alignment = heap->generation_alignment(); assert(eden_space()->capacity_in_bytes() >= eden_alignment, "Alignment is wrong"); @@ -121,7 +119,6 @@ size_t ASPSYoungGen::available_for_contraction() { gclog_or_tty->print_cr(" gen_avail %d K", gen_avail/K); } return result_aligned; - } return 0; @@ -132,7 +129,7 @@ size_t ASPSYoungGen::available_for_contraction() { // to_space can be. size_t ASPSYoungGen::available_to_live() { ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap(); - const size_t alignment = heap->intra_heap_alignment(); + const size_t alignment = heap->space_alignment(); // Include any space that is committed but is not in eden. size_t available = pointer_delta(eden_space()->bottom(), @@ -296,7 +293,7 @@ void ASPSYoungGen::resize_spaces(size_t requested_eden_size, assert(eden_start < from_start, "Cannot push into from_space"); ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap(); - const size_t alignment = heap->intra_heap_alignment(); + const size_t alignment = heap->space_alignment(); const bool maintain_minimum = (requested_eden_size + 2 * requested_survivor_size) <= min_gen_size(); diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/generationSizer.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/generationSizer.cpp new file mode 100644 index 00000000000..e417cd49599 --- /dev/null +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/generationSizer.cpp @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2001, 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. + * + */ + +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/generationSizer.hpp" +#include "memory/collectorPolicy.hpp" + +void GenerationSizer::trace_gen_sizes(const char* const str) { + if (TracePageSizes) { + tty->print_cr("%s: " SIZE_FORMAT "," SIZE_FORMAT " " + SIZE_FORMAT "," SIZE_FORMAT " " + SIZE_FORMAT, + str, + _min_gen1_size / K, _max_gen1_size / K, + _min_gen0_size / K, _max_gen0_size / K, + _max_heap_byte_size / K); + } +} + +void GenerationSizer::initialize_alignments() { + _space_alignment = _gen_alignment = default_gen_alignment(); + _heap_alignment = compute_heap_alignment(); +} + +void GenerationSizer::initialize_flags() { + // Do basic sizing work + TwoGenerationCollectorPolicy::initialize_flags(); + + assert(UseSerialGC || + !FLAG_IS_DEFAULT(ParallelGCThreads) || + (ParallelGCThreads > 0), + "ParallelGCThreads should be set before flag initialization"); + + // The survivor ratio's are calculated "raw", unlike the + // default gc, which adds 2 to the ratio value. We need to + // make sure the values are valid before using them. + if (MinSurvivorRatio < 3) { + FLAG_SET_ERGO(uintx, MinSurvivorRatio, 3); + } + + if (InitialSurvivorRatio < 3) { + FLAG_SET_ERGO(uintx, InitialSurvivorRatio, 3); + } +} + +void GenerationSizer::initialize_size_info() { + trace_gen_sizes("ps heap raw"); + const size_t page_sz = os::page_size_for_region(_min_heap_byte_size, + _max_heap_byte_size, + 8); + + // Can a page size be something else than a power of two? + assert(is_power_of_2((intptr_t)page_sz), "must be a power of 2"); + size_t new_alignment = round_to(page_sz, _gen_alignment); + if (new_alignment != _gen_alignment) { + _gen_alignment = new_alignment; + _space_alignment = new_alignment; + // Redo everything from the start + initialize_flags(); + } + TwoGenerationCollectorPolicy::initialize_size_info(); + + trace_gen_sizes("ps heap rnd"); +} diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/generationSizer.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/generationSizer.hpp index f7be7671ff9..eb8c78a8c81 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/generationSizer.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/generationSizer.hpp @@ -31,41 +31,17 @@ // TwoGenerationCollectorPolicy. Lets reuse it! class GenerationSizer : public TwoGenerationCollectorPolicy { - public: - GenerationSizer() { - // Partial init only! - initialize_flags(); - initialize_size_info(); - } + private: - void initialize_flags() { - // Do basic sizing work - TwoGenerationCollectorPolicy::initialize_flags(); + void trace_gen_sizes(const char* const str); - assert(UseSerialGC || - !FLAG_IS_DEFAULT(ParallelGCThreads) || - (ParallelGCThreads > 0), - "ParallelGCThreads should be set before flag initialization"); + // The alignment used for boundary between young gen and old gen + static size_t default_gen_alignment() { return 64 * K * HeapWordSize; } - // The survivor ratio's are calculated "raw", unlike the - // default gc, which adds 2 to the ratio value. We need to - // make sure the values are valid before using them. - if (MinSurvivorRatio < 3) { - MinSurvivorRatio = 3; - } + protected: - if (InitialSurvivorRatio < 3) { - InitialSurvivorRatio = 3; - } - } - - size_t min_young_gen_size() { return _min_gen0_size; } - size_t young_gen_size() { return _initial_gen0_size; } - size_t max_young_gen_size() { return _max_gen0_size; } - - size_t min_old_gen_size() { return _min_gen1_size; } - size_t old_gen_size() { return _initial_gen1_size; } - size_t max_old_gen_size() { return _max_gen1_size; } + void initialize_alignments(); + void initialize_flags(); + void initialize_size_info(); }; - #endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_GENERATIONSIZER_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp index e5d5229d30c..f93f2e8991f 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp @@ -52,76 +52,20 @@ PSGCAdaptivePolicyCounters* ParallelScavengeHeap::_gc_policy_counters = NULL; ParallelScavengeHeap* ParallelScavengeHeap::_psh = NULL; GCTaskManager* ParallelScavengeHeap::_gc_task_manager = NULL; -static void trace_gen_sizes(const char* const str, - size_t og_min, size_t og_max, - size_t yg_min, size_t yg_max) -{ - if (TracePageSizes) { - tty->print_cr("%s: " SIZE_FORMAT "," SIZE_FORMAT " " - SIZE_FORMAT "," SIZE_FORMAT " " - SIZE_FORMAT, - str, - og_min / K, og_max / K, - yg_min / K, yg_max / K, - (og_max + yg_max) / K); - } -} - jint ParallelScavengeHeap::initialize() { CollectedHeap::pre_initialize(); - // Cannot be initialized until after the flags are parsed - // GenerationSizer flag_parser; + // Initialize collector policy _collector_policy = new GenerationSizer(); + _collector_policy->initialize_all(); - size_t yg_min_size = _collector_policy->min_young_gen_size(); - size_t yg_max_size = _collector_policy->max_young_gen_size(); - size_t og_min_size = _collector_policy->min_old_gen_size(); - size_t og_max_size = _collector_policy->max_old_gen_size(); - - trace_gen_sizes("ps heap raw", - og_min_size, og_max_size, - yg_min_size, yg_max_size); - - const size_t og_page_sz = os::page_size_for_region(yg_min_size + og_min_size, - yg_max_size + og_max_size, - 8); - - const size_t og_align = set_alignment(_old_gen_alignment, og_page_sz); - const size_t yg_align = set_alignment(_young_gen_alignment, og_page_sz); - - // Update sizes to reflect the selected page size(s). - // - // NEEDS_CLEANUP. The default TwoGenerationCollectorPolicy uses NewRatio; it - // should check UseAdaptiveSizePolicy. Changes from generationSizer could - // move to the common code. - yg_min_size = align_size_up(yg_min_size, yg_align); - yg_max_size = align_size_up(yg_max_size, yg_align); - size_t yg_cur_size = - align_size_up(_collector_policy->young_gen_size(), yg_align); - yg_cur_size = MAX2(yg_cur_size, yg_min_size); - - og_min_size = align_size_up(og_min_size, og_align); - // Align old gen size down to preserve specified heap size. - assert(og_align == yg_align, "sanity"); - og_max_size = align_size_down(og_max_size, og_align); - og_max_size = MAX2(og_max_size, og_min_size); - size_t og_cur_size = - align_size_down(_collector_policy->old_gen_size(), og_align); - og_cur_size = MAX2(og_cur_size, og_min_size); - - trace_gen_sizes("ps heap rnd", - og_min_size, og_max_size, - yg_min_size, yg_max_size); - - const size_t heap_size = og_max_size + yg_max_size; - - ReservedSpace heap_rs = Universe::reserve_heap(heap_size, og_align); + const size_t heap_size = _collector_policy->max_heap_byte_size(); + ReservedSpace heap_rs = Universe::reserve_heap(heap_size, _collector_policy->heap_alignment()); MemTracker::record_virtual_memory_type((address)heap_rs.base(), mtJavaHeap); - os::trace_page_sizes("ps main", og_min_size + yg_min_size, - og_max_size + yg_max_size, og_page_sz, + os::trace_page_sizes("ps main", _collector_policy->min_heap_byte_size(), + heap_size, generation_alignment(), heap_rs.base(), heap_rs.size()); if (!heap_rs.is_reserved()) { @@ -142,12 +86,6 @@ jint ParallelScavengeHeap::initialize() { return JNI_ENOMEM; } - // Initial young gen size is 4 Mb - // - // XXX - what about flag_parser.young_gen_size()? - const size_t init_young_size = align_size_up(4 * M, yg_align); - yg_cur_size = MAX2(MIN2(init_young_size, yg_max_size), yg_cur_size); - // Make up the generations // Calculate the maximum size that a generation can grow. This // includes growth into the other generation. Note that the @@ -157,14 +95,7 @@ jint ParallelScavengeHeap::initialize() { double max_gc_pause_sec = ((double) MaxGCPauseMillis)/1000.0; double max_gc_minor_pause_sec = ((double) MaxGCMinorPauseMillis)/1000.0; - _gens = new AdjoiningGenerations(heap_rs, - og_cur_size, - og_min_size, - og_max_size, - yg_cur_size, - yg_min_size, - yg_max_size, - yg_align); + _gens = new AdjoiningGenerations(heap_rs, _collector_policy, generation_alignment()); _old_gen = _gens->old_gen(); _young_gen = _gens->young_gen(); @@ -176,7 +107,7 @@ jint ParallelScavengeHeap::initialize() { new PSAdaptiveSizePolicy(eden_capacity, initial_promo_size, young_gen()->to_space()->capacity_in_bytes(), - intra_heap_alignment(), + _collector_policy->gen_alignment(), max_gc_pause_sec, max_gc_minor_pause_sec, GCTimeRatio diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp index 4e458efa903..51f40d8c62b 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp @@ -25,6 +25,7 @@ #ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARALLELSCAVENGEHEAP_HPP #define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARALLELSCAVENGEHEAP_HPP +#include "gc_implementation/parallelScavenge/generationSizer.hpp" #include "gc_implementation/parallelScavenge/objectStartArray.hpp" #include "gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.hpp" #include "gc_implementation/parallelScavenge/psOldGen.hpp" @@ -32,14 +33,12 @@ #include "gc_implementation/shared/gcPolicyCounters.hpp" #include "gc_implementation/shared/gcWhen.hpp" #include "gc_interface/collectedHeap.inline.hpp" +#include "memory/collectorPolicy.hpp" #include "utilities/ostream.hpp" class AdjoiningGenerations; -class CollectorPolicy; class GCHeapSummary; class GCTaskManager; -class GenerationSizer; -class CollectorPolicy; class PSAdaptiveSizePolicy; class PSHeapSummary; @@ -50,24 +49,20 @@ class ParallelScavengeHeap : public CollectedHeap { static PSOldGen* _old_gen; // Sizing policy for entire heap - static PSAdaptiveSizePolicy* _size_policy; - static PSGCAdaptivePolicyCounters* _gc_policy_counters; + static PSAdaptiveSizePolicy* _size_policy; + static PSGCAdaptivePolicyCounters* _gc_policy_counters; static ParallelScavengeHeap* _psh; - size_t _young_gen_alignment; - size_t _old_gen_alignment; - GenerationSizer* _collector_policy; - inline size_t set_alignment(size_t& var, size_t val); - // Collection of generations that are adjacent in the // space reserved for the heap. AdjoiningGenerations* _gens; unsigned int _death_march_count; - static GCTaskManager* _gc_task_manager; // The task manager. + // The task manager + static GCTaskManager* _gc_task_manager; void trace_heap(GCWhen::Type when, GCTracer* tracer); @@ -80,16 +75,7 @@ class ParallelScavengeHeap : public CollectedHeap { HeapWord* mem_allocate_old_gen(size_t size); public: - ParallelScavengeHeap() : CollectedHeap() { - _death_march_count = 0; - set_alignment(_young_gen_alignment, intra_heap_alignment()); - set_alignment(_old_gen_alignment, intra_heap_alignment()); - } - - // Return the (conservative) maximum heap alignment - static size_t conservative_max_heap_alignment() { - return intra_heap_alignment(); - } + ParallelScavengeHeap() : CollectedHeap(), _death_march_count(0) { } // For use by VM operations enum CollectionType { @@ -103,8 +89,8 @@ class ParallelScavengeHeap : public CollectedHeap { virtual CollectorPolicy* collector_policy() const { return (CollectorPolicy*) _collector_policy; } - static PSYoungGen* young_gen() { return _young_gen; } - static PSOldGen* old_gen() { return _old_gen; } + static PSYoungGen* young_gen() { return _young_gen; } + static PSOldGen* old_gen() { return _old_gen; } virtual PSAdaptiveSizePolicy* size_policy() { return _size_policy; } @@ -121,13 +107,15 @@ class ParallelScavengeHeap : public CollectedHeap { void post_initialize(); void update_counters(); - // The alignment used for the various generations. - size_t young_gen_alignment() const { return _young_gen_alignment; } - size_t old_gen_alignment() const { return _old_gen_alignment; } - // The alignment used for eden and survivors within the young gen - // and for boundary between young gen and old gen. - static size_t intra_heap_alignment() { return 64 * K * HeapWordSize; } + // The alignment used for the various areas + size_t space_alignment() { return _collector_policy->space_alignment(); } + size_t generation_alignment() { return _collector_policy->gen_alignment(); } + + // Return the (conservative) maximum heap alignment + static size_t conservative_max_heap_alignment() { + return CollectorPolicy::compute_heap_alignment(); + } size_t capacity() const; size_t used() const; @@ -157,16 +145,15 @@ class ParallelScavengeHeap : public CollectedHeap { virtual bool is_in_partial_collection(const void *p); #endif - bool is_in_young(oop p); // reserved part - bool is_in_old(oop p); // reserved part + bool is_in_young(oop p); // reserved part + bool is_in_old(oop p); // reserved part // Memory allocation. "gc_time_limit_was_exceeded" will // be set to true if the adaptive size policy determine that // an excessive amount of time is being spent doing collections // and caused a NULL to be returned. If a NULL is not returned, // "gc_time_limit_was_exceeded" has an undefined meaning. - HeapWord* mem_allocate(size_t size, - bool* gc_overhead_limit_was_exceeded); + HeapWord* mem_allocate(size_t size, bool* gc_overhead_limit_was_exceeded); // Allocation attempt(s) during a safepoint. It should never be called // to allocate a new TLAB as this allocation might be satisfied out @@ -257,17 +244,10 @@ class ParallelScavengeHeap : public CollectedHeap { // Call these in sequential code around the processing of strong roots. class ParStrongRootsScope : public MarkingCodeBlobClosure::MarkScope { - public: + public: ParStrongRootsScope(); ~ParStrongRootsScope(); }; }; -inline size_t ParallelScavengeHeap::set_alignment(size_t& var, size_t val) -{ - assert(is_power_of_2((intptr_t)val), "must be a power of 2"); - var = round_to(val, intra_heap_alignment()); - return var; -} - #endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARALLELSCAVENGEHEAP_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.cpp index 8d411811b3c..a2f2fa722bf 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.cpp @@ -37,7 +37,7 @@ PSAdaptiveSizePolicy::PSAdaptiveSizePolicy(size_t init_eden_size, size_t init_promo_size, size_t init_survivor_size, - size_t intra_generation_alignment, + size_t space_alignment, double gc_pause_goal_sec, double gc_minor_pause_goal_sec, uint gc_cost_ratio) : @@ -46,9 +46,8 @@ PSAdaptiveSizePolicy::PSAdaptiveSizePolicy(size_t init_eden_size, init_survivor_size, gc_pause_goal_sec, gc_cost_ratio), - _collection_cost_margin_fraction(AdaptiveSizePolicyCollectionCostMargin/ - 100.0), - _intra_generation_alignment(intra_generation_alignment), + _collection_cost_margin_fraction(AdaptiveSizePolicyCollectionCostMargin / 100.0), + _space_alignment(space_alignment), _live_at_last_full_gc(init_promo_size), _gc_minor_pause_goal_sec(gc_minor_pause_goal_sec), _latest_major_mutator_interval_seconds(0), @@ -353,11 +352,10 @@ void PSAdaptiveSizePolicy::compute_eden_space_size( } // Align everything and make a final limit check - const size_t alignment = _intra_generation_alignment; - desired_eden_size = align_size_up(desired_eden_size, alignment); - desired_eden_size = MAX2(desired_eden_size, alignment); + desired_eden_size = align_size_up(desired_eden_size, _space_alignment); + desired_eden_size = MAX2(desired_eden_size, _space_alignment); - eden_limit = align_size_down(eden_limit, alignment); + eden_limit = align_size_down(eden_limit, _space_alignment); // And one last limit check, now that we've aligned things. if (desired_eden_size > eden_limit) { @@ -561,11 +559,10 @@ void PSAdaptiveSizePolicy::compute_old_gen_free_space( } // Align everything and make a final limit check - const size_t alignment = _intra_generation_alignment; - desired_promo_size = align_size_up(desired_promo_size, alignment); - desired_promo_size = MAX2(desired_promo_size, alignment); + desired_promo_size = align_size_up(desired_promo_size, _space_alignment); + desired_promo_size = MAX2(desired_promo_size, _space_alignment); - promo_limit = align_size_down(promo_limit, alignment); + promo_limit = align_size_down(promo_limit, _space_alignment); // And one last limit check, now that we've aligned things. desired_promo_size = MIN2(desired_promo_size, promo_limit); @@ -650,7 +647,7 @@ void PSAdaptiveSizePolicy::adjust_promo_for_minor_pause_time(bool is_full_gc, } // If the desired eden size is as small as it will get, // try to adjust the old gen size. - if (*desired_eden_size_ptr <= _intra_generation_alignment) { + if (*desired_eden_size_ptr <= _space_alignment) { // Vary the old gen size to reduce the young gen pause. This // may not be a good idea. This is just a test. if (minor_pause_old_estimator()->decrement_will_decrease()) { @@ -755,7 +752,7 @@ void PSAdaptiveSizePolicy::adjust_eden_for_pause_time(bool is_full_gc, // If the promo size is at the minimum (i.e., the old gen // size will not actually decrease), consider changing the // young gen size. - if (*desired_promo_size_ptr < _intra_generation_alignment) { + if (*desired_promo_size_ptr < _space_alignment) { // If increasing the young generation will decrease the old gen // pause, do it. // During startup there is noise in the statistics for deciding @@ -1066,24 +1063,24 @@ size_t PSAdaptiveSizePolicy::eden_increment(size_t cur_eden) { size_t PSAdaptiveSizePolicy::eden_increment_aligned_up(size_t cur_eden) { size_t result = eden_increment(cur_eden, YoungGenerationSizeIncrement); - return align_size_up(result, _intra_generation_alignment); + return align_size_up(result, _space_alignment); } size_t PSAdaptiveSizePolicy::eden_increment_aligned_down(size_t cur_eden) { size_t result = eden_increment(cur_eden); - return align_size_down(result, _intra_generation_alignment); + return align_size_down(result, _space_alignment); } size_t PSAdaptiveSizePolicy::eden_increment_with_supplement_aligned_up( size_t cur_eden) { size_t result = eden_increment(cur_eden, YoungGenerationSizeIncrement + _young_gen_size_increment_supplement); - return align_size_up(result, _intra_generation_alignment); + return align_size_up(result, _space_alignment); } size_t PSAdaptiveSizePolicy::eden_decrement_aligned_down(size_t cur_eden) { size_t eden_heap_delta = eden_decrement(cur_eden); - return align_size_down(eden_heap_delta, _intra_generation_alignment); + return align_size_down(eden_heap_delta, _space_alignment); } size_t PSAdaptiveSizePolicy::eden_decrement(size_t cur_eden) { @@ -1105,24 +1102,24 @@ size_t PSAdaptiveSizePolicy::promo_increment(size_t cur_promo) { size_t PSAdaptiveSizePolicy::promo_increment_aligned_up(size_t cur_promo) { size_t result = promo_increment(cur_promo, TenuredGenerationSizeIncrement); - return align_size_up(result, _intra_generation_alignment); + return align_size_up(result, _space_alignment); } size_t PSAdaptiveSizePolicy::promo_increment_aligned_down(size_t cur_promo) { size_t result = promo_increment(cur_promo, TenuredGenerationSizeIncrement); - return align_size_down(result, _intra_generation_alignment); + return align_size_down(result, _space_alignment); } size_t PSAdaptiveSizePolicy::promo_increment_with_supplement_aligned_up( size_t cur_promo) { size_t result = promo_increment(cur_promo, TenuredGenerationSizeIncrement + _old_gen_size_increment_supplement); - return align_size_up(result, _intra_generation_alignment); + return align_size_up(result, _space_alignment); } size_t PSAdaptiveSizePolicy::promo_decrement_aligned_down(size_t cur_promo) { size_t promo_heap_delta = promo_decrement(cur_promo); - return align_size_down(promo_heap_delta, _intra_generation_alignment); + return align_size_down(promo_heap_delta, _space_alignment); } size_t PSAdaptiveSizePolicy::promo_decrement(size_t cur_promo) { @@ -1135,9 +1132,9 @@ uint PSAdaptiveSizePolicy::compute_survivor_space_size_and_threshold( bool is_survivor_overflow, uint tenuring_threshold, size_t survivor_limit) { - assert(survivor_limit >= _intra_generation_alignment, + assert(survivor_limit >= _space_alignment, "survivor_limit too small"); - assert((size_t)align_size_down(survivor_limit, _intra_generation_alignment) + assert((size_t)align_size_down(survivor_limit, _space_alignment) == survivor_limit, "survivor_limit not aligned"); // This method is called even if the tenuring threshold and survivor @@ -1201,8 +1198,8 @@ uint PSAdaptiveSizePolicy::compute_survivor_space_size_and_threshold( // We're trying to pad the survivor size as little as possible without // overflowing the survivor spaces. size_t target_size = align_size_up((size_t)_avg_survived->padded_average(), - _intra_generation_alignment); - target_size = MAX2(target_size, _intra_generation_alignment); + _space_alignment); + target_size = MAX2(target_size, _space_alignment); if (target_size > survivor_limit) { // Target size is bigger than we can handle. Let's also reduce diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp index d88af2bf6ef..3389911876f 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp @@ -91,7 +91,7 @@ class PSAdaptiveSizePolicy : public AdaptiveSizePolicy { // for making ergonomic decisions. double _latest_major_mutator_interval_seconds; - const size_t _intra_generation_alignment; // alignment for eden, survivors + const size_t _space_alignment; // alignment for eden, survivors const double _gc_minor_pause_goal_sec; // goal for maximum minor gc pause @@ -229,7 +229,7 @@ class PSAdaptiveSizePolicy : public AdaptiveSizePolicy { PSAdaptiveSizePolicy(size_t init_eden_size, size_t init_promo_size, size_t init_survivor_size, - size_t intra_generation_alignment, + size_t space_alignment, double gc_pause_goal_sec, double gc_minor_pause_goal_sec, uint gc_time_ratio); @@ -378,7 +378,7 @@ class PSAdaptiveSizePolicy : public AdaptiveSizePolicy { // remain almost full anyway (top() will be near end(), but there will be a // large filler object at the bottom). const size_t sz = gen_size / MinSurvivorRatio; - const size_t alignment = _intra_generation_alignment; + const size_t alignment = _space_alignment; return sz > alignment ? align_size_down(sz, alignment) : alignment; } diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp index 2d8697587ac..c1f5c298794 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp @@ -103,7 +103,7 @@ void PSYoungGen::initialize_work() { // Compute maximum space sizes for performance counters ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap(); - size_t alignment = heap->intra_heap_alignment(); + size_t alignment = heap->space_alignment(); size_t size = virtual_space()->reserved_size(); size_t max_survivor_size; @@ -156,8 +156,9 @@ void PSYoungGen::compute_initial_space_boundaries() { assert(heap->kind() == CollectedHeap::ParallelScavengeHeap, "Sanity"); // Compute sizes - size_t alignment = heap->intra_heap_alignment(); + size_t alignment = heap->space_alignment(); size_t size = virtual_space()->committed_size(); + assert(size >= 3 * alignment, "Young space is not large enough for eden + 2 survivors"); size_t survivor_size = size / InitialSurvivorRatio; survivor_size = align_size_down(survivor_size, alignment); @@ -207,7 +208,7 @@ void PSYoungGen::set_space_boundaries(size_t eden_size, size_t survivor_size) { #ifndef PRODUCT void PSYoungGen::space_invariants() { ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap(); - const size_t alignment = heap->intra_heap_alignment(); + const size_t alignment = heap->space_alignment(); // Currently, our eden size cannot shrink to zero guarantee(eden_space()->capacity_in_bytes() >= alignment, "eden too small"); @@ -491,7 +492,7 @@ void PSYoungGen::resize_spaces(size_t requested_eden_size, char* to_end = (char*)to_space()->end(); ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap(); - const size_t alignment = heap->intra_heap_alignment(); + const size_t alignment = heap->space_alignment(); const bool maintain_minimum = (requested_eden_size + 2 * requested_survivor_size) <= min_gen_size(); @@ -840,8 +841,8 @@ size_t PSYoungGen::available_to_min_gen() { size_t PSYoungGen::available_to_live() { size_t delta_in_survivor = 0; ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap(); - const size_t space_alignment = heap->intra_heap_alignment(); - const size_t gen_alignment = heap->young_gen_alignment(); + const size_t space_alignment = heap->space_alignment(); + const size_t gen_alignment = heap->generation_alignment(); MutableSpace* space_shrinking = NULL; if (from_space()->end() > to_space()->end()) { diff --git a/hotspot/src/share/vm/gc_interface/collectedHeap.cpp b/hotspot/src/share/vm/gc_interface/collectedHeap.cpp index bbf5419fd0f..742e3b73be8 100644 --- a/hotspot/src/share/vm/gc_interface/collectedHeap.cpp +++ b/hotspot/src/share/vm/gc_interface/collectedHeap.cpp @@ -469,6 +469,10 @@ void CollectedHeap::fill_with_objects(HeapWord* start, size_t words, bool zap) fill_with_object_impl(start, words, zap); } +void CollectedHeap::post_initialize() { + collector_policy()->post_heap_initialize(); +} + HeapWord* CollectedHeap::allocate_new_tlab(size_t size) { guarantee(false, "thread-local allocation buffers not supported"); return NULL; diff --git a/hotspot/src/share/vm/interpreter/linkResolver.cpp b/hotspot/src/share/vm/interpreter/linkResolver.cpp index f88dd153394..f829a961f44 100644 --- a/hotspot/src/share/vm/interpreter/linkResolver.cpp +++ b/hotspot/src/share/vm/interpreter/linkResolver.cpp @@ -152,11 +152,13 @@ CallInfo::CallInfo(Method* resolved_method, Klass* resolved_klass) { // Could be an Object method inherited into an interface, but still a vtable call. kind = CallInfo::vtable_call; } else if (!resolved_klass->is_interface()) { - // A miranda method. Compute the vtable index. + // A default or miranda method. Compute the vtable index. ResourceMark rm; klassVtable* vt = InstanceKlass::cast(resolved_klass)->vtable(); - index = vt->index_of_miranda(resolved_method->name(), - resolved_method->signature()); + index = LinkResolver::vtable_index_of_interface_method(resolved_klass, + resolved_method); + assert(index >= 0 , "we should have valid vtable index at this point"); + kind = CallInfo::vtable_call; } else if (resolved_method->has_vtable_index()) { // Can occur if an interface redeclares a method of Object. @@ -279,7 +281,7 @@ void LinkResolver::lookup_instance_method_in_klasses(methodHandle& result, Klass } int LinkResolver::vtable_index_of_interface_method(KlassHandle klass, - methodHandle resolved_method, TRAPS) { + methodHandle resolved_method) { int vtable_index = Method::invalid_vtable_index; Symbol* name = resolved_method->name(); @@ -295,7 +297,7 @@ int LinkResolver::vtable_index_of_interface_method(KlassHandle klass, } if (vtable_index == Method::invalid_vtable_index) { // get vtable_index for miranda methods - ResourceMark rm(THREAD); + ResourceMark rm; klassVtable *vt = InstanceKlass::cast(klass())->vtable(); vtable_index = vt->index_of_miranda(name, signature); } @@ -691,7 +693,7 @@ void LinkResolver::resolve_interface_method(methodHandle& resolved_method, ); resolved_method->access_flags().print_on(tty); if (resolved_method->is_default_method()) { - tty->print("default"); + tty->print("default "); } if (resolved_method->is_overpass()) { tty->print("overpass"); @@ -937,7 +939,7 @@ void LinkResolver::linktime_resolve_special_method(methodHandle& resolved_method ); resolved_method->access_flags().print_on(tty); if (resolved_method->is_default_method()) { - tty->print("default"); + tty->print("default "); } if (resolved_method->is_overpass()) { tty->print("overpass"); @@ -1017,7 +1019,7 @@ void LinkResolver::runtime_resolve_special_method(CallInfo& result, methodHandle ); sel_method->access_flags().print_on(tty); if (sel_method->is_default_method()) { - tty->print("default"); + tty->print("default "); } if (sel_method->is_overpass()) { tty->print("overpass"); @@ -1081,7 +1083,7 @@ void LinkResolver::linktime_resolve_virtual_method(methodHandle &resolved_method ); resolved_method->access_flags().print_on(tty); if (resolved_method->is_default_method()) { - tty->print("default"); + tty->print("default "); } if (resolved_method->is_overpass()) { tty->print("overpass"); @@ -1118,7 +1120,7 @@ void LinkResolver::runtime_resolve_virtual_method(CallInfo& result, // do lookup based on receiver klass using the vtable index if (resolved_method->method_holder()->is_interface()) { // miranda method vtable_index = vtable_index_of_interface_method(resolved_klass, - resolved_method, CHECK); + resolved_method); assert(vtable_index >= 0 , "we should have valid vtable index at this point"); InstanceKlass* inst = InstanceKlass::cast(recv_klass()); @@ -1175,7 +1177,7 @@ void LinkResolver::runtime_resolve_virtual_method(CallInfo& result, ); selected_method->access_flags().print_on(tty); if (selected_method->is_default_method()) { - tty->print("default"); + tty->print("default "); } if (selected_method->is_overpass()) { tty->print("overpass"); @@ -1268,14 +1270,6 @@ void LinkResolver::runtime_resolve_interface_method(CallInfo& result, methodHand sel_method->name(), sel_method->signature())); } - // setup result - if (!resolved_method->has_itable_index()) { - int vtable_index = resolved_method->vtable_index(); - assert(vtable_index == sel_method->vtable_index(), "sanity check"); - result.set_virtual(resolved_klass, recv_klass, resolved_method, sel_method, vtable_index, CHECK); - return; - } - int itable_index = resolved_method()->itable_index(); if (TraceItables && Verbose) { ResourceMark rm(THREAD); @@ -1289,14 +1283,22 @@ void LinkResolver::runtime_resolve_interface_method(CallInfo& result, methodHand ); sel_method->access_flags().print_on(tty); if (sel_method->is_default_method()) { - tty->print("default"); + tty->print("default "); } if (sel_method->is_overpass()) { tty->print("overpass"); } tty->cr(); } - result.set_interface(resolved_klass, recv_klass, resolved_method, sel_method, itable_index, CHECK); + // setup result + if (!resolved_method->has_itable_index()) { + int vtable_index = resolved_method->vtable_index(); + assert(vtable_index == sel_method->vtable_index(), "sanity check"); + result.set_virtual(resolved_klass, recv_klass, resolved_method, sel_method, vtable_index, CHECK); + } else { + int itable_index = resolved_method()->itable_index(); + result.set_interface(resolved_klass, recv_klass, resolved_method, sel_method, itable_index, CHECK); + } } diff --git a/hotspot/src/share/vm/interpreter/linkResolver.hpp b/hotspot/src/share/vm/interpreter/linkResolver.hpp index 339cb92ba29..1411d909b9c 100644 --- a/hotspot/src/share/vm/interpreter/linkResolver.hpp +++ b/hotspot/src/share/vm/interpreter/linkResolver.hpp @@ -130,7 +130,6 @@ class LinkResolver: AllStatic { static void lookup_polymorphic_method (methodHandle& result, KlassHandle klass, Symbol* name, Symbol* signature, KlassHandle current_klass, Handle *appendix_result_or_null, Handle *method_type_result, TRAPS); - static int vtable_index_of_interface_method(KlassHandle klass, methodHandle resolved_method, TRAPS); static void resolve_klass (KlassHandle& result, constantPoolHandle pool, int index, TRAPS); static void resolve_pool (KlassHandle& resolved_klass, Symbol*& method_name, Symbol*& method_signature, KlassHandle& current_klass, constantPoolHandle pool, int index, TRAPS); @@ -186,6 +185,7 @@ class LinkResolver: AllStatic { static methodHandle resolve_interface_call_or_null(KlassHandle receiver_klass, KlassHandle resolved_klass, Symbol* method_name, Symbol* method_signature, KlassHandle current_klass); static methodHandle resolve_static_call_or_null (KlassHandle resolved_klass, Symbol* method_name, Symbol* method_signature, KlassHandle current_klass); static methodHandle resolve_special_call_or_null (KlassHandle resolved_klass, Symbol* method_name, Symbol* method_signature, KlassHandle current_klass); + static int vtable_index_of_interface_method(KlassHandle klass, methodHandle resolved_method); // same as above for compile-time resolution; returns vtable_index if current_klass if linked static int resolve_virtual_vtable_index (KlassHandle receiver_klass, KlassHandle resolved_klass, Symbol* method_name, Symbol* method_signature, KlassHandle current_klass); diff --git a/hotspot/src/share/vm/interpreter/rewriter.cpp b/hotspot/src/share/vm/interpreter/rewriter.cpp index 249fca33afe..82dfadecb12 100644 --- a/hotspot/src/share/vm/interpreter/rewriter.cpp +++ b/hotspot/src/share/vm/interpreter/rewriter.cpp @@ -70,21 +70,21 @@ void Rewriter::compute_index_maps() { } // Unrewrite the bytecodes if an error occurs. -void Rewriter::restore_bytecodes() { +void Rewriter::restore_bytecodes(TRAPS) { int len = _methods->length(); for (int i = len-1; i >= 0; i--) { Method* method = _methods->at(i); - scan_method(method, true); + scan_method(method, true, CHECK); } } // Creates a constant pool cache given a CPC map void Rewriter::make_constant_pool_cache(TRAPS) { - const int length = _cp_cache_map.length(); ClassLoaderData* loader_data = _pool->pool_holder()->class_loader_data(); ConstantPoolCache* cache = - ConstantPoolCache::allocate(loader_data, length, _cp_cache_map, + ConstantPoolCache::allocate(loader_data, _cp_cache_map, + _invokedynamic_cp_cache_map, _invokedynamic_references_map, CHECK); // initialize object cache in constant pool @@ -154,6 +154,31 @@ void Rewriter::rewrite_member_reference(address bcp, int offset, bool reverse) { } } +// If the constant pool entry for invokespecial is InterfaceMethodref, +// we need to add a separate cpCache entry for its resolution, because it is +// different than the resolution for invokeinterface with InterfaceMethodref. +// These cannot share cpCache entries. It's unclear if all invokespecial to +// InterfaceMethodrefs would resolve to the same thing so a new cpCache entry +// is created for each one. This was added with lambda. +void Rewriter::rewrite_invokespecial(address bcp, int offset, bool reverse, TRAPS) { + static int count = 0; + address p = bcp + offset; + if (!reverse) { + int cp_index = Bytes::get_Java_u2(p); + int cache_index = add_invokespecial_cp_cache_entry(cp_index); + if (cache_index != (int)(jushort) cache_index) { + THROW_MSG(vmSymbols::java_lang_InternalError(), + "This classfile overflows invokespecial for interfaces " + "and cannot be loaded"); + } + Bytes::put_native_u2(p, cache_index); + } else { + int cache_index = Bytes::get_native_u2(p); + int cp_index = cp_cache_entry_pool_index(cache_index); + Bytes::put_Java_u2(p, cp_index); + } +} + // Adjust the invocation bytecode for a signature-polymorphic method (MethodHandle.invoke, etc.) void Rewriter::maybe_rewrite_invokehandle(address opc, int cp_index, int cache_index, bool reverse) { @@ -203,7 +228,7 @@ void Rewriter::rewrite_invokedynamic(address bcp, int offset, bool reverse) { if (!reverse) { int cp_index = Bytes::get_Java_u2(p); int cache_index = add_invokedynamic_cp_cache_entry(cp_index); - add_invokedynamic_resolved_references_entries(cp_index, cache_index); + int resolved_index = add_invokedynamic_resolved_references_entries(cp_index, cache_index); // Replace the trailing four bytes with a CPC index for the dynamic // call site. Unlike other CPC entries, there is one per bytecode, // not just one per distinct CP entry. In other words, the @@ -212,13 +237,20 @@ void Rewriter::rewrite_invokedynamic(address bcp, int offset, bool reverse) { // all these entries. That is the main reason invokedynamic // must have a five-byte instruction format. (Of course, other JVM // implementations can use the bytes for other purposes.) - Bytes::put_native_u4(p, ConstantPool::encode_invokedynamic_index(cache_index)); // Note: We use native_u4 format exclusively for 4-byte indexes. + Bytes::put_native_u4(p, ConstantPool::encode_invokedynamic_index(cache_index)); + // add the bcp in case we need to patch this bytecode if we also find a + // invokespecial/InterfaceMethodref in the bytecode stream + _patch_invokedynamic_bcps->push(p); + _patch_invokedynamic_refs->push(resolved_index); } else { - // callsite index int cache_index = ConstantPool::decode_invokedynamic_index( Bytes::get_native_u4(p)); - int cp_index = cp_cache_entry_pool_index(cache_index); + // We will reverse the bytecode rewriting _after_ adjusting them. + // Adjust the cache index by offset to the invokedynamic entries in the + // cpCache plus the delta if the invokedynamic bytecodes were adjusted. + cache_index = cp_cache_delta() + _first_iteration_cp_cache_limit; + int cp_index = invokedynamic_cp_cache_entry_pool_index(cache_index); assert(_pool->tag_at(cp_index).is_invoke_dynamic(), "wrong index"); // zero out 4 bytes Bytes::put_Java_u4(p, 0); @@ -226,6 +258,34 @@ void Rewriter::rewrite_invokedynamic(address bcp, int offset, bool reverse) { } } +void Rewriter::patch_invokedynamic_bytecodes() { + // If the end of the cp_cache is the same as after initializing with the + // cpool, nothing needs to be done. Invokedynamic bytecodes are at the + // correct offsets. ie. no invokespecials added + int delta = cp_cache_delta(); + if (delta > 0) { + int length = _patch_invokedynamic_bcps->length(); + assert(length == _patch_invokedynamic_refs->length(), + "lengths should match"); + for (int i = 0; i < length; i++) { + address p = _patch_invokedynamic_bcps->at(i); + int cache_index = ConstantPool::decode_invokedynamic_index( + Bytes::get_native_u4(p)); + Bytes::put_native_u4(p, ConstantPool::encode_invokedynamic_index(cache_index + delta)); + + // invokedynamic resolved references map also points to cp cache and must + // add delta to each. + int resolved_index = _patch_invokedynamic_refs->at(i); + for (int entry = 0; entry < ConstantPoolCacheEntry::_indy_resolved_references_entries; entry++) { + assert(_invokedynamic_references_map[resolved_index+entry] == cache_index, + "should be the same index"); + _invokedynamic_references_map.at_put(resolved_index+entry, + cache_index + delta); + } + } + } +} + // Rewrite some ldc bytecodes to _fast_aldc void Rewriter::maybe_rewrite_ldc(address bcp, int offset, bool is_wide, @@ -269,7 +329,7 @@ void Rewriter::maybe_rewrite_ldc(address bcp, int offset, bool is_wide, // Rewrites a method given the index_map information -void Rewriter::scan_method(Method* method, bool reverse) { +void Rewriter::scan_method(Method* method, bool reverse, TRAPS) { int nof_jsrs = 0; bool has_monitor_bytecodes = false; @@ -329,12 +389,25 @@ void Rewriter::scan_method(Method* method, bool reverse) { #endif break; } + + case Bytecodes::_invokespecial : { + int offset = prefix_length + 1; + address p = bcp + offset; + int cp_index = Bytes::get_Java_u2(p); + // InterfaceMethodref + if (_pool->tag_at(cp_index).is_interface_method()) { + rewrite_invokespecial(bcp, offset, reverse, CHECK); + } else { + rewrite_member_reference(bcp, offset, reverse); + } + break; + } + case Bytecodes::_getstatic : // fall through case Bytecodes::_putstatic : // fall through case Bytecodes::_getfield : // fall through case Bytecodes::_putfield : // fall through case Bytecodes::_invokevirtual : // fall through - case Bytecodes::_invokespecial : // fall through case Bytecodes::_invokestatic : case Bytecodes::_invokeinterface: case Bytecodes::_invokehandle : // if reverse=true @@ -426,16 +499,21 @@ Rewriter::Rewriter(instanceKlassHandle klass, constantPoolHandle cpool, Array= 0; i--) { Method* method = _methods->at(i); - scan_method(method); + scan_method(method, false, CHECK); // If you get an error here, + // there is no reversing bytecodes } + // May have to fix invokedynamic bytecodes if invokestatic/InterfaceMethodref + // entries had to be added. + patch_invokedynamic_bytecodes(); + // allocate constant pool cache, now that we've seen all the bytecodes make_constant_pool_cache(THREAD); // Restore bytecodes to their unrewritten state if there are exceptions // rewriting bytecodes or allocating the cpCache if (HAS_PENDING_EXCEPTION) { - restore_bytecodes(); + restore_bytecodes(CATCH); return; } @@ -452,7 +530,7 @@ Rewriter::Rewriter(instanceKlassHandle klass, constantPoolHandle cpool, Array* _patch_invokedynamic_bcps; + GrowableArray* _patch_invokedynamic_refs; + void init_maps(int length) { _cp_map.initialize(length, -1); // Choose an initial value large enough that we don't get frequent // calls to grow(). - _cp_cache_map.initialize(length / 2); + _cp_cache_map.initialize(length/2); // Also cache resolved objects, in another different cache. _reference_map.initialize(length, -1); - _resolved_references_map.initialize(length / 2); - _invokedynamic_references_map.initialize(length / 2); + _resolved_references_map.initialize(length/2); + _invokedynamic_references_map.initialize(length/2); _resolved_reference_limit = -1; - DEBUG_ONLY(_cp_cache_index_limit = -1); + _first_iteration_cp_cache_limit = -1; + + // invokedynamic specific fields + _invokedynamic_cp_cache_map.initialize(length/4); + _patch_invokedynamic_bcps = new GrowableArray
(length/4); + _patch_invokedynamic_refs = new GrowableArray(length/4); } - int _cp_cache_index_limit; + int _first_iteration_cp_cache_limit; void record_map_limits() { -#ifdef ASSERT - // Record initial size of the two arrays generated for the CP cache: - _cp_cache_index_limit = _cp_cache_map.length(); -#endif //ASSERT + // Record initial size of the two arrays generated for the CP cache + // relative to walking the constant pool. + _first_iteration_cp_cache_limit = _cp_cache_map.length(); _resolved_reference_limit = _resolved_references_map.length(); } + int cp_cache_delta() { + // How many cp cache entries were added since recording map limits after + // cp cache initialization? + assert(_first_iteration_cp_cache_limit != -1, "only valid after first iteration"); + return _cp_cache_map.length() - _first_iteration_cp_cache_limit; + } + int cp_entry_to_cp_cache(int i) { assert(has_cp_cache(i), "oob"); return _cp_map[i]; } bool has_cp_cache(int i) { return (uint)i < (uint)_cp_map.length() && _cp_map[i] >= 0; } + int add_map_entry(int cp_index, intArray* cp_map, intStack* cp_cache_map) { + assert(cp_map->at(cp_index) == -1, "not twice on same cp_index"); + int cache_index = cp_cache_map->append(cp_index); + cp_map->at_put(cp_index, cache_index); + return cache_index; + } + int add_cp_cache_entry(int cp_index) { assert(_pool->tag_at(cp_index).value() != JVM_CONSTANT_InvokeDynamic, "use indy version"); - assert(_cp_map[cp_index] == -1, "not twice on same cp_index"); - assert(_cp_cache_index_limit == -1, "do not add cache entries after first iteration"); - int cache_index = _cp_cache_map.append(cp_index); - _cp_map.at_put(cp_index, cache_index); + assert(_first_iteration_cp_cache_limit == -1, "do not add cache entries after first iteration"); + int cache_index = add_map_entry(cp_index, &_cp_map, &_cp_cache_map); assert(cp_entry_to_cp_cache(cp_index) == cache_index, ""); assert(cp_cache_entry_pool_index(cache_index) == cp_index, ""); return cache_index; } - // add a new CP cache entry beyond the normal cache (for invokedynamic only) int add_invokedynamic_cp_cache_entry(int cp_index) { assert(_pool->tag_at(cp_index).value() == JVM_CONSTANT_InvokeDynamic, "use non-indy version"); - assert(_cp_map[cp_index] == -1, "do not map from cp_index"); - assert(_cp_cache_index_limit >= 0, "add indy cache entries after first iteration"); + assert(_first_iteration_cp_cache_limit >= 0, "add indy cache entries after first iteration"); + // add to the invokedynamic index map. + int cache_index = _invokedynamic_cp_cache_map.append(cp_index); + // do not update _cp_map, since the mapping is one-to-many + assert(invokedynamic_cp_cache_entry_pool_index(cache_index) == cp_index, ""); + // this index starts at one but in the bytecode it's appended to the end. + return cache_index + _first_iteration_cp_cache_limit; + } + + int invokedynamic_cp_cache_entry_pool_index(int cache_index) { + int cp_index = _invokedynamic_cp_cache_map[cache_index]; + return cp_index; + } + + // add a new CP cache entry beyond the normal cache for the special case of + // invokespecial with InterfaceMethodref as cpool operand. + int add_invokespecial_cp_cache_entry(int cp_index) { + assert(_first_iteration_cp_cache_limit >= 0, "add these special cache entries after first iteration"); + // Don't add InterfaceMethodref if it already exists at the end. + for (int i = _first_iteration_cp_cache_limit; i < _cp_cache_map.length(); i++) { + if (cp_cache_entry_pool_index(i) == cp_index) { + return i; + } + } int cache_index = _cp_cache_map.append(cp_index); - assert(cache_index >= _cp_cache_index_limit, ""); + assert(cache_index >= _first_iteration_cp_cache_limit, ""); // do not update _cp_map, since the mapping is one-to-many assert(cp_cache_entry_pool_index(cache_index) == cp_index, ""); return cache_index; } - // fix duplicated code later int cp_entry_to_resolved_references(int cp_index) const { assert(has_entry_in_resolved_references(cp_index), "oob"); return _reference_map[cp_index]; @@ -105,10 +152,7 @@ class Rewriter: public StackObj { // add a new entry to the resolved_references map int add_resolved_references_entry(int cp_index) { - assert(_reference_map[cp_index] == -1, "not twice on same cp_index"); - assert(_resolved_reference_limit == -1, "do not add CP refs after first iteration"); - int ref_index = _resolved_references_map.append(cp_index); - _reference_map.at_put(cp_index, ref_index); + int ref_index = add_map_entry(cp_index, &_reference_map, &_resolved_references_map); assert(cp_entry_to_resolved_references(cp_index) == ref_index, ""); return ref_index; } @@ -137,7 +181,7 @@ class Rewriter: public StackObj { // Access the contents of _cp_cache_map to determine CP cache layout. int cp_cache_entry_pool_index(int cache_index) { int cp_index = _cp_cache_map[cache_index]; - return cp_index; + return cp_index; } // All the work goes in here: @@ -145,14 +189,18 @@ class Rewriter: public StackObj { void compute_index_maps(); void make_constant_pool_cache(TRAPS); - void scan_method(Method* m, bool reverse = false); + void scan_method(Method* m, bool reverse, TRAPS); void rewrite_Object_init(methodHandle m, TRAPS); - void rewrite_member_reference(address bcp, int offset, bool reverse = false); - void maybe_rewrite_invokehandle(address opc, int cp_index, int cache_index, bool reverse = false); - void rewrite_invokedynamic(address bcp, int offset, bool reverse = false); - void maybe_rewrite_ldc(address bcp, int offset, bool is_wide, bool reverse = false); + void rewrite_member_reference(address bcp, int offset, bool reverse); + void maybe_rewrite_invokehandle(address opc, int cp_index, int cache_index, bool reverse); + void rewrite_invokedynamic(address bcp, int offset, bool reverse); + void maybe_rewrite_ldc(address bcp, int offset, bool is_wide, bool reverse); + void rewrite_invokespecial(address bcp, int offset, bool reverse, TRAPS); + + void patch_invokedynamic_bytecodes(); + // Revert bytecodes in case of an exception. - void restore_bytecodes(); + void restore_bytecodes(TRAPS); static methodHandle rewrite_jsrs(methodHandle m, TRAPS); public: diff --git a/hotspot/src/share/vm/memory/collectorPolicy.cpp b/hotspot/src/share/vm/memory/collectorPolicy.cpp index a3c466327ef..204011b689e 100644 --- a/hotspot/src/share/vm/memory/collectorPolicy.cpp +++ b/hotspot/src/share/vm/memory/collectorPolicy.cpp @@ -47,54 +47,107 @@ // CollectorPolicy methods. -void CollectorPolicy::initialize_flags() { - assert(_max_alignment >= _min_alignment, - err_msg("max_alignment: " SIZE_FORMAT " less than min_alignment: " SIZE_FORMAT, - _max_alignment, _min_alignment)); - assert(_max_alignment % _min_alignment == 0, - err_msg("max_alignment: " SIZE_FORMAT " not aligned by min_alignment: " SIZE_FORMAT, - _max_alignment, _min_alignment)); +CollectorPolicy::CollectorPolicy() : + _space_alignment(0), + _heap_alignment(0), + _initial_heap_byte_size(InitialHeapSize), + _max_heap_byte_size(MaxHeapSize), + _min_heap_byte_size(Arguments::min_heap_size()), + _max_heap_size_cmdline(false), + _size_policy(NULL), + _should_clear_all_soft_refs(false), + _all_soft_refs_clear(false) +{} - if (MaxHeapSize < InitialHeapSize) { - vm_exit_during_initialization("Incompatible initial and maximum heap sizes specified"); - } - - MinHeapDeltaBytes = align_size_up(MinHeapDeltaBytes, _min_alignment); +#ifdef ASSERT +void CollectorPolicy::assert_flags() { + assert(InitialHeapSize <= MaxHeapSize, "Ergonomics decided on incompatible initial and maximum heap sizes"); + assert(InitialHeapSize % _heap_alignment == 0, "InitialHeapSize alignment"); + assert(MaxHeapSize % _heap_alignment == 0, "MaxHeapSize alignment"); } -void CollectorPolicy::initialize_size_info() { - // User inputs from -mx and ms must be aligned - _min_heap_byte_size = align_size_up(Arguments::min_heap_size(), _min_alignment); - _initial_heap_byte_size = align_size_up(InitialHeapSize, _min_alignment); - _max_heap_byte_size = align_size_up(MaxHeapSize, _max_alignment); +void CollectorPolicy::assert_size_info() { + assert(InitialHeapSize == _initial_heap_byte_size, "Discrepancy between InitialHeapSize flag and local storage"); + assert(MaxHeapSize == _max_heap_byte_size, "Discrepancy between MaxHeapSize flag and local storage"); + assert(_max_heap_byte_size >= _min_heap_byte_size, "Ergonomics decided on incompatible minimum and maximum heap sizes"); + assert(_initial_heap_byte_size >= _min_heap_byte_size, "Ergonomics decided on incompatible initial and minimum heap sizes"); + assert(_max_heap_byte_size >= _initial_heap_byte_size, "Ergonomics decided on incompatible initial and maximum heap sizes"); + assert(_min_heap_byte_size % _heap_alignment == 0, "min_heap_byte_size alignment"); + assert(_initial_heap_byte_size % _heap_alignment == 0, "initial_heap_byte_size alignment"); + assert(_max_heap_byte_size % _heap_alignment == 0, "max_heap_byte_size alignment"); +} +#endif // ASSERT + +void CollectorPolicy::initialize_flags() { + assert(_space_alignment != 0, "Space alignment not set up properly"); + assert(_heap_alignment != 0, "Heap alignment not set up properly"); + assert(_heap_alignment >= _space_alignment, + err_msg("heap_alignment: " SIZE_FORMAT " less than space_alignment: " SIZE_FORMAT, + _heap_alignment, _space_alignment)); + assert(_heap_alignment % _space_alignment == 0, + err_msg("heap_alignment: " SIZE_FORMAT " not aligned by space_alignment: " SIZE_FORMAT, + _heap_alignment, _space_alignment)); + + if (FLAG_IS_CMDLINE(MaxHeapSize)) { + if (FLAG_IS_CMDLINE(InitialHeapSize) && InitialHeapSize > MaxHeapSize) { + vm_exit_during_initialization("Initial heap size set to a larger value than the maximum heap size"); + } + if (_min_heap_byte_size != 0 && MaxHeapSize < _min_heap_byte_size) { + vm_exit_during_initialization("Incompatible minimum and maximum heap sizes specified"); + } + _max_heap_size_cmdline = true; + } // Check heap parameter properties - if (_initial_heap_byte_size < M) { + if (InitialHeapSize < M) { vm_exit_during_initialization("Too small initial heap"); } - // Check heap parameter properties if (_min_heap_byte_size < M) { vm_exit_during_initialization("Too small minimum heap"); } - if (_initial_heap_byte_size <= NewSize) { - // make sure there is at least some room in old space - vm_exit_during_initialization("Too small initial heap for new size specified"); + + // User inputs from -Xmx and -Xms must be aligned + _min_heap_byte_size = align_size_up(_min_heap_byte_size, _heap_alignment); + uintx aligned_initial_heap_size = align_size_up(InitialHeapSize, _heap_alignment); + uintx aligned_max_heap_size = align_size_up(MaxHeapSize, _heap_alignment); + + // Write back to flags if the values changed + if (aligned_initial_heap_size != InitialHeapSize) { + FLAG_SET_ERGO(uintx, InitialHeapSize, aligned_initial_heap_size); } - if (_max_heap_byte_size < _min_heap_byte_size) { - vm_exit_during_initialization("Incompatible minimum and maximum heap sizes specified"); - } - if (_initial_heap_byte_size < _min_heap_byte_size) { - vm_exit_during_initialization("Incompatible minimum and initial heap sizes specified"); - } - if (_max_heap_byte_size < _initial_heap_byte_size) { - vm_exit_during_initialization("Incompatible initial and maximum heap sizes specified"); + if (aligned_max_heap_size != MaxHeapSize) { + FLAG_SET_ERGO(uintx, MaxHeapSize, aligned_max_heap_size); } + if (FLAG_IS_CMDLINE(InitialHeapSize) && _min_heap_byte_size != 0 && + InitialHeapSize < _min_heap_byte_size) { + vm_exit_during_initialization("Incompatible minimum and initial heap sizes specified"); + } + if (!FLAG_IS_DEFAULT(InitialHeapSize) && InitialHeapSize > MaxHeapSize) { + FLAG_SET_ERGO(uintx, MaxHeapSize, InitialHeapSize); + } else if (!FLAG_IS_DEFAULT(MaxHeapSize) && InitialHeapSize > MaxHeapSize) { + FLAG_SET_ERGO(uintx, InitialHeapSize, MaxHeapSize); + if (InitialHeapSize < _min_heap_byte_size) { + _min_heap_byte_size = InitialHeapSize; + } + } + + _initial_heap_byte_size = InitialHeapSize; + _max_heap_byte_size = MaxHeapSize; + + FLAG_SET_ERGO(uintx, MinHeapDeltaBytes, align_size_up(MinHeapDeltaBytes, _space_alignment)); + + DEBUG_ONLY(CollectorPolicy::assert_flags();) +} + +void CollectorPolicy::initialize_size_info() { if (PrintGCDetails && Verbose) { gclog_or_tty->print_cr("Minimum heap " SIZE_FORMAT " Initial heap " SIZE_FORMAT " Maximum heap " SIZE_FORMAT, _min_heap_byte_size, _initial_heap_byte_size, _max_heap_byte_size); } + + DEBUG_ONLY(CollectorPolicy::assert_size_info();) } bool CollectorPolicy::use_should_clear_all_soft_refs(bool v) { @@ -105,7 +158,6 @@ bool CollectorPolicy::use_should_clear_all_soft_refs(bool v) { GenRemSet* CollectorPolicy::create_rem_set(MemRegion whole_heap, int max_covered_regions) { - assert(rem_set_name() == GenRemSet::CardTable, "unrecognized GenRemSet::Name"); return new CardTableRS(whole_heap, max_covered_regions); } @@ -119,7 +171,7 @@ void CollectorPolicy::cleared_all_soft_refs() { _all_soft_refs_clear = true; } -size_t CollectorPolicy::compute_max_alignment() { +size_t CollectorPolicy::compute_heap_alignment() { // The card marking array and the offset arrays for old generations are // committed in os pages as well. Make sure they are entirely full (to // avoid partial page problems), e.g. if 512 bytes heap corresponds to 1 @@ -146,18 +198,21 @@ size_t CollectorPolicy::compute_max_alignment() { // GenCollectorPolicy methods. +GenCollectorPolicy::GenCollectorPolicy() : + _min_gen0_size(0), + _initial_gen0_size(0), + _max_gen0_size(0), + _gen_alignment(0), + _generations(NULL) +{} + size_t GenCollectorPolicy::scale_by_NewRatio_aligned(size_t base_size) { - size_t x = base_size / (NewRatio+1); - size_t new_gen_size = x > _min_alignment ? - align_size_down(x, _min_alignment) : - _min_alignment; - return new_gen_size; + return align_size_down_bounded(base_size / (NewRatio + 1), _gen_alignment); } size_t GenCollectorPolicy::bound_minus_alignment(size_t desired_size, size_t maximum_size) { - size_t alignment = _min_alignment; - size_t max_minus = maximum_size - alignment; + size_t max_minus = maximum_size - _gen_alignment; return desired_size < max_minus ? desired_size : max_minus; } @@ -165,7 +220,7 @@ size_t GenCollectorPolicy::bound_minus_alignment(size_t desired_size, void GenCollectorPolicy::initialize_size_policy(size_t init_eden_size, size_t init_promo_size, size_t init_survivor_size) { - const double max_gc_pause_sec = ((double) MaxGCPauseMillis)/1000.0; + const double max_gc_pause_sec = ((double) MaxGCPauseMillis) / 1000.0; _size_policy = new AdaptiveSizePolicy(init_eden_size, init_promo_size, init_survivor_size, @@ -173,100 +228,181 @@ void GenCollectorPolicy::initialize_size_policy(size_t init_eden_size, GCTimeRatio); } -void GenCollectorPolicy::initialize_flags() { - // All sizes must be multiples of the generation granularity. - _min_alignment = (uintx) Generation::GenGrain; - _max_alignment = compute_max_alignment(); +size_t GenCollectorPolicy::young_gen_size_lower_bound() { + // The young generation must be aligned and have room for eden + two survivors + return align_size_up(3 * _space_alignment, _gen_alignment); +} +#ifdef ASSERT +void GenCollectorPolicy::assert_flags() { + CollectorPolicy::assert_flags(); + assert(NewSize >= _min_gen0_size, "Ergonomics decided on a too small young gen size"); + assert(NewSize <= MaxNewSize, "Ergonomics decided on incompatible initial and maximum young gen sizes"); + assert(FLAG_IS_DEFAULT(MaxNewSize) || MaxNewSize < MaxHeapSize, "Ergonomics decided on incompatible maximum young gen and heap sizes"); + assert(NewSize % _gen_alignment == 0, "NewSize alignment"); + assert(FLAG_IS_DEFAULT(MaxNewSize) || MaxNewSize % _gen_alignment == 0, "MaxNewSize alignment"); +} + +void TwoGenerationCollectorPolicy::assert_flags() { + GenCollectorPolicy::assert_flags(); + assert(OldSize + NewSize <= MaxHeapSize, "Ergonomics decided on incompatible generation and heap sizes"); + assert(OldSize % _gen_alignment == 0, "OldSize alignment"); +} + +void GenCollectorPolicy::assert_size_info() { + CollectorPolicy::assert_size_info(); + // GenCollectorPolicy::initialize_size_info may update the MaxNewSize + assert(MaxNewSize < MaxHeapSize, "Ergonomics decided on incompatible maximum young and heap sizes"); + assert(NewSize == _initial_gen0_size, "Discrepancy between NewSize flag and local storage"); + assert(MaxNewSize == _max_gen0_size, "Discrepancy between MaxNewSize flag and local storage"); + assert(_min_gen0_size <= _initial_gen0_size, "Ergonomics decided on incompatible minimum and initial young gen sizes"); + assert(_initial_gen0_size <= _max_gen0_size, "Ergonomics decided on incompatible initial and maximum young gen sizes"); + assert(_min_gen0_size % _gen_alignment == 0, "_min_gen0_size alignment"); + assert(_initial_gen0_size % _gen_alignment == 0, "_initial_gen0_size alignment"); + assert(_max_gen0_size % _gen_alignment == 0, "_max_gen0_size alignment"); +} + +void TwoGenerationCollectorPolicy::assert_size_info() { + GenCollectorPolicy::assert_size_info(); + assert(OldSize == _initial_gen1_size, "Discrepancy between OldSize flag and local storage"); + assert(_min_gen1_size <= _initial_gen1_size, "Ergonomics decided on incompatible minimum and initial old gen sizes"); + assert(_initial_gen1_size <= _max_gen1_size, "Ergonomics decided on incompatible initial and maximum old gen sizes"); + assert(_max_gen1_size % _gen_alignment == 0, "_max_gen1_size alignment"); + assert(_initial_gen1_size % _gen_alignment == 0, "_initial_gen1_size alignment"); + assert(_max_heap_byte_size <= (_max_gen0_size + _max_gen1_size), "Total maximum heap sizes must be sum of generation maximum sizes"); +} +#endif // ASSERT + +void GenCollectorPolicy::initialize_flags() { CollectorPolicy::initialize_flags(); - // All generational heaps have a youngest gen; handle those flags here. + assert(_gen_alignment != 0, "Generation alignment not set up properly"); + assert(_heap_alignment >= _gen_alignment, + err_msg("heap_alignment: " SIZE_FORMAT " less than gen_alignment: " SIZE_FORMAT, + _heap_alignment, _gen_alignment)); + assert(_gen_alignment % _space_alignment == 0, + err_msg("gen_alignment: " SIZE_FORMAT " not aligned by space_alignment: " SIZE_FORMAT, + _gen_alignment, _space_alignment)); + assert(_heap_alignment % _gen_alignment == 0, + err_msg("heap_alignment: " SIZE_FORMAT " not aligned by gen_alignment: " SIZE_FORMAT, + _heap_alignment, _gen_alignment)); + + // All generational heaps have a youngest gen; handle those flags here + + // Make sure the heap is large enough for two generations + uintx smallest_new_size = young_gen_size_lower_bound(); + uintx smallest_heap_size = align_size_up(smallest_new_size + align_size_up(_space_alignment, _gen_alignment), + _heap_alignment); + if (MaxHeapSize < smallest_heap_size) { + FLAG_SET_ERGO(uintx, MaxHeapSize, smallest_heap_size); + _max_heap_byte_size = MaxHeapSize; + } + // If needed, synchronize _min_heap_byte size and _initial_heap_byte_size + if (_min_heap_byte_size < smallest_heap_size) { + _min_heap_byte_size = smallest_heap_size; + if (InitialHeapSize < _min_heap_byte_size) { + FLAG_SET_ERGO(uintx, InitialHeapSize, smallest_heap_size); + _initial_heap_byte_size = smallest_heap_size; + } + } + + // Now take the actual NewSize into account. We will silently increase NewSize + // if the user specified a smaller value. + smallest_new_size = MAX2(smallest_new_size, (uintx)align_size_down(NewSize, _gen_alignment)); + if (smallest_new_size != NewSize) { + FLAG_SET_ERGO(uintx, NewSize, smallest_new_size); + } + _initial_gen0_size = NewSize; + + if (!FLAG_IS_DEFAULT(MaxNewSize)) { + uintx min_new_size = MAX2(_gen_alignment, _min_gen0_size); + + if (MaxNewSize >= MaxHeapSize) { + // Make sure there is room for an old generation + uintx smaller_max_new_size = MaxHeapSize - _gen_alignment; + if (FLAG_IS_CMDLINE(MaxNewSize)) { + warning("MaxNewSize (" SIZE_FORMAT "k) is equal to or greater than the entire " + "heap (" SIZE_FORMAT "k). A new max generation size of " SIZE_FORMAT "k will be used.", + MaxNewSize/K, MaxHeapSize/K, smaller_max_new_size/K); + } + FLAG_SET_ERGO(uintx, MaxNewSize, smaller_max_new_size); + if (NewSize > MaxNewSize) { + FLAG_SET_ERGO(uintx, NewSize, MaxNewSize); + _initial_gen0_size = NewSize; + } + } else if (MaxNewSize < min_new_size) { + FLAG_SET_ERGO(uintx, MaxNewSize, min_new_size); + } else if (!is_size_aligned(MaxNewSize, _gen_alignment)) { + FLAG_SET_ERGO(uintx, MaxNewSize, align_size_down(MaxNewSize, _gen_alignment)); + } + _max_gen0_size = MaxNewSize; + } - // Adjust max size parameters if (NewSize > MaxNewSize) { - MaxNewSize = NewSize; + // At this point this should only happen if the user specifies a large NewSize and/or + // a small (but not too small) MaxNewSize. + if (FLAG_IS_CMDLINE(MaxNewSize)) { + warning("NewSize (" SIZE_FORMAT "k) is greater than the MaxNewSize (" SIZE_FORMAT "k). " + "A new max generation size of " SIZE_FORMAT "k will be used.", + NewSize/K, MaxNewSize/K, NewSize/K); + } + FLAG_SET_ERGO(uintx, MaxNewSize, NewSize); + _max_gen0_size = MaxNewSize; } - NewSize = align_size_down(NewSize, _min_alignment); - MaxNewSize = align_size_down(MaxNewSize, _min_alignment); - // Check validity of heap flags - assert(NewSize % _min_alignment == 0, "eden space alignment"); - assert(MaxNewSize % _min_alignment == 0, "survivor space alignment"); - - if (NewSize < 3 * _min_alignment) { - // make sure there room for eden and two survivor spaces - vm_exit_during_initialization("Too small new size specified"); - } if (SurvivorRatio < 1 || NewRatio < 1) { vm_exit_during_initialization("Invalid young gen ratio specified"); } + + DEBUG_ONLY(GenCollectorPolicy::assert_flags();) } void TwoGenerationCollectorPolicy::initialize_flags() { GenCollectorPolicy::initialize_flags(); - OldSize = align_size_down(OldSize, _min_alignment); + if (!is_size_aligned(OldSize, _gen_alignment)) { + FLAG_SET_ERGO(uintx, OldSize, align_size_down(OldSize, _gen_alignment)); + } - if (FLAG_IS_CMDLINE(OldSize) && FLAG_IS_DEFAULT(NewSize)) { + if (FLAG_IS_CMDLINE(OldSize) && FLAG_IS_DEFAULT(MaxHeapSize)) { // NewRatio will be used later to set the young generation size so we use // it to calculate how big the heap should be based on the requested OldSize // and NewRatio. assert(NewRatio > 0, "NewRatio should have been set up earlier"); size_t calculated_heapsize = (OldSize / NewRatio) * (NewRatio + 1); - calculated_heapsize = align_size_up(calculated_heapsize, _max_alignment); - MaxHeapSize = calculated_heapsize; - InitialHeapSize = calculated_heapsize; + calculated_heapsize = align_size_up(calculated_heapsize, _heap_alignment); + FLAG_SET_ERGO(uintx, MaxHeapSize, calculated_heapsize); + _max_heap_byte_size = MaxHeapSize; + FLAG_SET_ERGO(uintx, InitialHeapSize, calculated_heapsize); + _initial_heap_byte_size = InitialHeapSize; } - MaxHeapSize = align_size_up(MaxHeapSize, _max_alignment); // adjust max heap size if necessary if (NewSize + OldSize > MaxHeapSize) { - if (FLAG_IS_CMDLINE(MaxHeapSize)) { + if (_max_heap_size_cmdline) { // somebody set a maximum heap size with the intention that we should not // exceed it. Adjust New/OldSize as necessary. uintx calculated_size = NewSize + OldSize; double shrink_factor = (double) MaxHeapSize / calculated_size; - // align - NewSize = align_size_down((uintx) (NewSize * shrink_factor), _min_alignment); - // OldSize is already aligned because above we aligned MaxHeapSize to - // _max_alignment, and we just made sure that NewSize is aligned to - // _min_alignment. In initialize_flags() we verified that _max_alignment - // is a multiple of _min_alignment. - OldSize = MaxHeapSize - NewSize; - } else { - MaxHeapSize = NewSize + OldSize; - } - } - // need to do this again - MaxHeapSize = align_size_up(MaxHeapSize, _max_alignment); + uintx smaller_new_size = align_size_down((uintx)(NewSize * shrink_factor), _gen_alignment); + FLAG_SET_ERGO(uintx, NewSize, MAX2(young_gen_size_lower_bound(), smaller_new_size)); + _initial_gen0_size = NewSize; - // adjust max heap size if necessary - if (NewSize + OldSize > MaxHeapSize) { - if (FLAG_IS_CMDLINE(MaxHeapSize)) { - // somebody set a maximum heap size with the intention that we should not - // exceed it. Adjust New/OldSize as necessary. - uintx calculated_size = NewSize + OldSize; - double shrink_factor = (double) MaxHeapSize / calculated_size; - // align - NewSize = align_size_down((uintx) (NewSize * shrink_factor), _min_alignment); // OldSize is already aligned because above we aligned MaxHeapSize to - // _max_alignment, and we just made sure that NewSize is aligned to - // _min_alignment. In initialize_flags() we verified that _max_alignment - // is a multiple of _min_alignment. - OldSize = MaxHeapSize - NewSize; + // _heap_alignment, and we just made sure that NewSize is aligned to + // _gen_alignment. In initialize_flags() we verified that _heap_alignment + // is a multiple of _gen_alignment. + FLAG_SET_ERGO(uintx, OldSize, MaxHeapSize - NewSize); } else { - MaxHeapSize = NewSize + OldSize; + FLAG_SET_ERGO(uintx, MaxHeapSize, align_size_up(NewSize + OldSize, _heap_alignment)); + _max_heap_byte_size = MaxHeapSize; } } - // need to do this again - MaxHeapSize = align_size_up(MaxHeapSize, _max_alignment); always_do_update_barrier = UseConcMarkSweepGC; - // Check validity of heap flags - assert(OldSize % _min_alignment == 0, "old space alignment"); - assert(MaxHeapSize % _max_alignment == 0, "maximum heap alignment"); + DEBUG_ONLY(TwoGenerationCollectorPolicy::assert_flags();) } // Values set on the command line win over any ergonomically @@ -281,7 +417,7 @@ void TwoGenerationCollectorPolicy::initialize_flags() { void GenCollectorPolicy::initialize_size_info() { CollectorPolicy::initialize_size_info(); - // _min_alignment is used for alignment within a generation. + // _space_alignment is used for alignment within a generation. // There is additional alignment done down stream for some // collectors that sometimes causes unwanted rounding up of // generations sizes. @@ -289,35 +425,8 @@ void GenCollectorPolicy::initialize_size_info() { // Determine maximum size of gen0 size_t max_new_size = 0; - if (FLAG_IS_CMDLINE(MaxNewSize) || FLAG_IS_ERGO(MaxNewSize)) { - if (MaxNewSize < _min_alignment) { - max_new_size = _min_alignment; - } - if (MaxNewSize >= _max_heap_byte_size) { - max_new_size = align_size_down(_max_heap_byte_size - _min_alignment, - _min_alignment); - warning("MaxNewSize (" SIZE_FORMAT "k) is equal to or " - "greater than the entire heap (" SIZE_FORMAT "k). A " - "new generation size of " SIZE_FORMAT "k will be used.", - MaxNewSize/K, _max_heap_byte_size/K, max_new_size/K); - } else { - max_new_size = align_size_down(MaxNewSize, _min_alignment); - } - - // The case for FLAG_IS_ERGO(MaxNewSize) could be treated - // specially at this point to just use an ergonomically set - // MaxNewSize to set max_new_size. For cases with small - // heaps such a policy often did not work because the MaxNewSize - // was larger than the entire heap. The interpretation given - // to ergonomically set flags is that the flags are set - // by different collectors for their own special needs but - // are not allowed to badly shape the heap. This allows the - // different collectors to decide what's best for themselves - // without having to factor in the overall heap shape. It - // can be the case in the future that the collectors would - // only make "wise" ergonomics choices and this policy could - // just accept those choices. The choices currently made are - // not always "wise". + if (!FLAG_IS_DEFAULT(MaxNewSize)) { + max_new_size = MaxNewSize; } else { max_new_size = scale_by_NewRatio_aligned(_max_heap_byte_size); // Bound the maximum size by NewSize below (since it historically @@ -386,11 +495,22 @@ void GenCollectorPolicy::initialize_size_info() { _min_gen0_size = MIN2(_min_gen0_size, _initial_gen0_size); } + // Write back to flags if necessary + if (NewSize != _initial_gen0_size) { + FLAG_SET_ERGO(uintx, NewSize, _initial_gen0_size); + } + + if (MaxNewSize != _max_gen0_size) { + FLAG_SET_ERGO(uintx, MaxNewSize, _max_gen0_size); + } + if (PrintGCDetails && Verbose) { gclog_or_tty->print_cr("1: Minimum gen0 " SIZE_FORMAT " Initial gen0 " SIZE_FORMAT " Maximum gen0 " SIZE_FORMAT, _min_gen0_size, _initial_gen0_size, _max_gen0_size); } + + DEBUG_ONLY(GenCollectorPolicy::assert_size_info();) } // Call this method during the sizing of the gen1 to make @@ -403,23 +523,18 @@ void GenCollectorPolicy::initialize_size_info() { // keeping it simple also seems a worthwhile goal. bool TwoGenerationCollectorPolicy::adjust_gen0_sizes(size_t* gen0_size_ptr, size_t* gen1_size_ptr, - const size_t heap_size, - const size_t min_gen1_size) { + const size_t heap_size) { bool result = false; - if ((*gen1_size_ptr + *gen0_size_ptr) > heap_size) { - if ((heap_size < (*gen0_size_ptr + min_gen1_size)) && - (heap_size >= min_gen1_size + _min_alignment)) { - // Adjust gen0 down to accommodate min_gen1_size - *gen0_size_ptr = heap_size - min_gen1_size; - *gen0_size_ptr = - MAX2((uintx)align_size_down(*gen0_size_ptr, _min_alignment), _min_alignment); - assert(*gen0_size_ptr > 0, "Min gen0 is too large"); + if ((*gen0_size_ptr + *gen1_size_ptr) > heap_size) { + uintx smallest_new_size = young_gen_size_lower_bound(); + if ((heap_size < (*gen0_size_ptr + _min_gen1_size)) && + (heap_size >= _min_gen1_size + smallest_new_size)) { + // Adjust gen0 down to accommodate _min_gen1_size + *gen0_size_ptr = align_size_down_bounded(heap_size - _min_gen1_size, _gen_alignment); result = true; } else { - *gen1_size_ptr = heap_size - *gen0_size_ptr; - *gen1_size_ptr = - MAX2((uintx)align_size_down(*gen1_size_ptr, _min_alignment), _min_alignment); + *gen1_size_ptr = align_size_down_bounded(heap_size - *gen0_size_ptr, _gen_alignment); } } return result; @@ -440,41 +555,36 @@ void TwoGenerationCollectorPolicy::initialize_size_info() { // The maximum gen1 size can be determined from the maximum gen0 // and maximum heap size since no explicit flags exits // for setting the gen1 maximum. - _max_gen1_size = _max_heap_byte_size - _max_gen0_size; - _max_gen1_size = - MAX2((uintx)align_size_down(_max_gen1_size, _min_alignment), _min_alignment); + _max_gen1_size = MAX2(_max_heap_byte_size - _max_gen0_size, _gen_alignment); + // If no explicit command line flag has been set for the // gen1 size, use what is left for gen1. - if (FLAG_IS_DEFAULT(OldSize) || FLAG_IS_ERGO(OldSize)) { - // The user has not specified any value or ergonomics - // has chosen a value (which may or may not be consistent + if (!FLAG_IS_CMDLINE(OldSize)) { + // The user has not specified any value but the ergonomics + // may have chosen a value (which may or may not be consistent // with the overall heap size). In either case make // the minimum, maximum and initial sizes consistent // with the gen0 sizes and the overall heap sizes. - assert(_min_heap_byte_size > _min_gen0_size, - "gen0 has an unexpected minimum size"); - _min_gen1_size = _min_heap_byte_size - _min_gen0_size; - _min_gen1_size = - MAX2((uintx)align_size_down(_min_gen1_size, _min_alignment), _min_alignment); - _initial_gen1_size = _initial_heap_byte_size - _initial_gen0_size; - _initial_gen1_size = - MAX2((uintx)align_size_down(_initial_gen1_size, _min_alignment), _min_alignment); + _min_gen1_size = MAX2(_min_heap_byte_size - _min_gen0_size, _gen_alignment); + _initial_gen1_size = MAX2(_initial_heap_byte_size - _initial_gen0_size, _gen_alignment); + // _max_gen1_size has already been made consistent above + FLAG_SET_ERGO(uintx, OldSize, _initial_gen1_size); } else { // It's been explicitly set on the command line. Use the // OldSize and then determine the consequences. - _min_gen1_size = OldSize; + _min_gen1_size = MIN2(OldSize, _min_heap_byte_size - _min_gen0_size); _initial_gen1_size = OldSize; // If the user has explicitly set an OldSize that is inconsistent // with other command line flags, issue a warning. // The generation minimums and the overall heap mimimum should - // be within one heap alignment. - if ((_min_gen1_size + _min_gen0_size + _min_alignment) < _min_heap_byte_size) { + // be within one generation alignment. + if ((_min_gen1_size + _min_gen0_size + _gen_alignment) < _min_heap_byte_size) { warning("Inconsistency between minimum heap size and minimum " "generation sizes: using minimum heap = " SIZE_FORMAT, _min_heap_byte_size); } - if ((OldSize > _max_gen1_size)) { + if (OldSize > _max_gen1_size) { warning("Inconsistency between maximum heap size and maximum " "generation sizes: using maximum heap = " SIZE_FORMAT " -XX:OldSize flag is being ignored", @@ -482,8 +592,7 @@ void TwoGenerationCollectorPolicy::initialize_size_info() { } // If there is an inconsistency between the OldSize and the minimum and/or // initial size of gen0, since OldSize was explicitly set, OldSize wins. - if (adjust_gen0_sizes(&_min_gen0_size, &_min_gen1_size, - _min_heap_byte_size, OldSize)) { + if (adjust_gen0_sizes(&_min_gen0_size, &_min_gen1_size, _min_heap_byte_size)) { if (PrintGCDetails && Verbose) { gclog_or_tty->print_cr("2: Minimum gen0 " SIZE_FORMAT " Initial gen0 " SIZE_FORMAT " Maximum gen0 " SIZE_FORMAT, @@ -492,7 +601,7 @@ void TwoGenerationCollectorPolicy::initialize_size_info() { } // Initial size if (adjust_gen0_sizes(&_initial_gen0_size, &_initial_gen1_size, - _initial_heap_byte_size, OldSize)) { + _initial_heap_byte_size)) { if (PrintGCDetails && Verbose) { gclog_or_tty->print_cr("3: Minimum gen0 " SIZE_FORMAT " Initial gen0 " SIZE_FORMAT " Maximum gen0 " SIZE_FORMAT, @@ -507,11 +616,26 @@ void TwoGenerationCollectorPolicy::initialize_size_info() { _initial_gen1_size = MAX2(_initial_gen1_size, _min_gen1_size); _initial_gen1_size = MIN2(_initial_gen1_size, _max_gen1_size); + // Write back to flags if necessary + if (NewSize != _initial_gen0_size) { + FLAG_SET_ERGO(uintx, NewSize, _initial_gen0_size); + } + + if (MaxNewSize != _max_gen0_size) { + FLAG_SET_ERGO(uintx, MaxNewSize, _max_gen0_size); + } + + if (OldSize != _initial_gen1_size) { + FLAG_SET_ERGO(uintx, OldSize, _initial_gen1_size); + } + if (PrintGCDetails && Verbose) { gclog_or_tty->print_cr("Minimum gen1 " SIZE_FORMAT " Initial gen1 " SIZE_FORMAT " Maximum gen1 " SIZE_FORMAT, _min_gen1_size, _initial_gen1_size, _max_gen1_size); } + + DEBUG_ONLY(TwoGenerationCollectorPolicy::assert_size_info();) } HeapWord* GenCollectorPolicy::mem_allocate_work(size_t size, @@ -605,9 +729,7 @@ HeapWord* GenCollectorPolicy::mem_allocate_work(size_t size, gc_count_before = Universe::heap()->total_collections(); } - VM_GenCollectForAllocation op(size, - is_tlab, - gc_count_before); + VM_GenCollectForAllocation op(size, is_tlab, gc_count_before); VMThread::execute(&op); if (op.prologue_succeeded()) { result = op.result(); @@ -836,14 +958,16 @@ bool GenCollectorPolicy::should_try_older_generation_allocation( // MarkSweepPolicy methods // -MarkSweepPolicy::MarkSweepPolicy() { - initialize_all(); +void MarkSweepPolicy::initialize_alignments() { + _space_alignment = _gen_alignment = (uintx)Generation::GenGrain; + _heap_alignment = compute_heap_alignment(); } void MarkSweepPolicy::initialize_generations() { _generations = NEW_C_HEAP_ARRAY3(GenerationSpecPtr, number_of_generations(), mtGC, 0, AllocFailStrategy::RETURN_NULL); - if (_generations == NULL) + if (_generations == NULL) { vm_exit_during_initialization("Unable to allocate gen spec"); + } if (UseParNewGC) { _generations[0] = new GenerationSpec(Generation::ParNew, _initial_gen0_size, _max_gen0_size); @@ -852,8 +976,9 @@ void MarkSweepPolicy::initialize_generations() { } _generations[1] = new GenerationSpec(Generation::MarkSweepCompact, _initial_gen1_size, _max_gen1_size); - if (_generations[0] == NULL || _generations[1] == NULL) + if (_generations[0] == NULL || _generations[1] == NULL) { vm_exit_during_initialization("Unable to allocate gen spec"); + } } void MarkSweepPolicy::initialize_gc_policy_counters() { diff --git a/hotspot/src/share/vm/memory/collectorPolicy.hpp b/hotspot/src/share/vm/memory/collectorPolicy.hpp index 42976b34563..b72030113c4 100644 --- a/hotspot/src/share/vm/memory/collectorPolicy.hpp +++ b/hotspot/src/share/vm/memory/collectorPolicy.hpp @@ -61,17 +61,23 @@ class CollectorPolicy : public CHeapObj { protected: GCPolicyCounters* _gc_policy_counters; - // Requires that the concrete subclass sets the alignment constraints - // before calling. + virtual void initialize_alignments() = 0; virtual void initialize_flags(); virtual void initialize_size_info(); + DEBUG_ONLY(virtual void assert_flags();) + DEBUG_ONLY(virtual void assert_size_info();) + size_t _initial_heap_byte_size; size_t _max_heap_byte_size; size_t _min_heap_byte_size; - size_t _min_alignment; - size_t _max_alignment; + size_t _space_alignment; + size_t _heap_alignment; + + // Needed to keep information if MaxHeapSize was set on the command line + // when the flag value is aligned etc by ergonomics + bool _max_heap_size_cmdline; // The sizing of the heap are controlled by a sizing policy. AdaptiveSizePolicy* _size_policy; @@ -79,6 +85,7 @@ class CollectorPolicy : public CHeapObj { // Set to true when policy wants soft refs cleared. // Reset to false by gc after it clears all soft refs. bool _should_clear_all_soft_refs; + // Set to true by the GC if the just-completed gc cleared all // softrefs. This is set to true whenever a gc clears all softrefs, and // set to false each time gc returns to the mutator. For example, in the @@ -86,23 +93,20 @@ class CollectorPolicy : public CHeapObj { // mem_allocate() where it returns op.result() bool _all_soft_refs_clear; - CollectorPolicy() : - _min_alignment(1), - _max_alignment(1), - _initial_heap_byte_size(0), - _max_heap_byte_size(0), - _min_heap_byte_size(0), - _size_policy(NULL), - _should_clear_all_soft_refs(false), - _all_soft_refs_clear(false) - {} + CollectorPolicy(); public: - // Return maximum heap alignment that may be imposed by the policy - static size_t compute_max_alignment(); + virtual void initialize_all() { + initialize_alignments(); + initialize_flags(); + initialize_size_info(); + } - size_t min_alignment() { return _min_alignment; } - size_t max_alignment() { return _max_alignment; } + // Return maximum heap alignment that may be imposed by the policy + static size_t compute_heap_alignment(); + + size_t space_alignment() { return _space_alignment; } + size_t heap_alignment() { return _heap_alignment; } size_t initial_heap_byte_size() { return _initial_heap_byte_size; } size_t max_heap_byte_size() { return _max_heap_byte_size; } @@ -151,7 +155,6 @@ class CollectorPolicy : public CHeapObj { virtual BarrierSet::Name barrier_set_name() = 0; - virtual GenRemSet::Name rem_set_name() = 0; // Create the remembered set (to cover the given reserved region, // allowing breaking up into at most "max_covered_regions"). @@ -195,6 +198,9 @@ class CollectorPolicy : public CHeapObj { return false; } + // Do any updates required to global flags that are due to heap initialization + // changes + virtual void post_heap_initialize() = 0; }; class ClearedAllSoftRefs : public StackObj { @@ -219,6 +225,10 @@ class GenCollectorPolicy : public CollectorPolicy { size_t _initial_gen0_size; size_t _max_gen0_size; + // _gen_alignment and _space_alignment will have the same value most of the + // time. When using large pages they can differ. + size_t _gen_alignment; + GenerationSpec **_generations; // Return true if an allocation should be attempted in the older @@ -229,41 +239,50 @@ class GenCollectorPolicy : public CollectorPolicy { void initialize_flags(); void initialize_size_info(); + DEBUG_ONLY(void assert_flags();) + DEBUG_ONLY(void assert_size_info();) + // Try to allocate space by expanding the heap. virtual HeapWord* expand_heap_and_allocate(size_t size, bool is_tlab); - // Scale the base_size by NewRation according to + // Compute max heap alignment + size_t compute_max_alignment(); + + // Scale the base_size by NewRatio according to // result = base_size / (NewRatio + 1) // and align by min_alignment() size_t scale_by_NewRatio_aligned(size_t base_size); - // Bound the value by the given maximum minus the - // min_alignment. + // Bound the value by the given maximum minus the min_alignment size_t bound_minus_alignment(size_t desired_size, size_t maximum_size); public: + GenCollectorPolicy(); + // Accessors size_t min_gen0_size() { return _min_gen0_size; } size_t initial_gen0_size() { return _initial_gen0_size; } size_t max_gen0_size() { return _max_gen0_size; } + size_t gen_alignment() { return _gen_alignment; } virtual int number_of_generations() = 0; - virtual GenerationSpec **generations() { + virtual GenerationSpec **generations() { assert(_generations != NULL, "Sanity check"); return _generations; } virtual GenCollectorPolicy* as_generation_policy() { return this; } - virtual void initialize_generations() = 0; + virtual void initialize_generations() { }; virtual void initialize_all() { - initialize_flags(); - initialize_size_info(); + CollectorPolicy::initialize_all(); initialize_generations(); } + size_t young_gen_size_lower_bound(); + HeapWord* mem_allocate_work(size_t size, bool is_tlab, bool* gc_overhead_limit_was_exceeded); @@ -274,6 +293,10 @@ class GenCollectorPolicy : public CollectorPolicy { virtual void initialize_size_policy(size_t init_eden_size, size_t init_promo_size, size_t init_survivor_size); + + virtual void post_heap_initialize() { + assert(_max_gen0_size == MaxNewSize, "Should be taken care of by initialize_size_info"); + } }; // All of hotspot's current collectors are subtypes of this @@ -290,9 +313,14 @@ class TwoGenerationCollectorPolicy : public GenCollectorPolicy { void initialize_flags(); void initialize_size_info(); - void initialize_generations() { ShouldNotReachHere(); } + + DEBUG_ONLY(void assert_flags();) + DEBUG_ONLY(void assert_size_info();) public: + TwoGenerationCollectorPolicy() : GenCollectorPolicy(), _min_gen1_size(0), + _initial_gen1_size(0), _max_gen1_size(0) {} + // Accessors size_t min_gen1_size() { return _min_gen1_size; } size_t initial_gen1_size() { return _initial_gen1_size; } @@ -301,25 +329,25 @@ class TwoGenerationCollectorPolicy : public GenCollectorPolicy { // Inherited methods TwoGenerationCollectorPolicy* as_two_generation_policy() { return this; } - int number_of_generations() { return 2; } - BarrierSet::Name barrier_set_name() { return BarrierSet::CardTableModRef; } - GenRemSet::Name rem_set_name() { return GenRemSet::CardTable; } + int number_of_generations() { return 2; } + BarrierSet::Name barrier_set_name() { return BarrierSet::CardTableModRef; } virtual CollectorPolicy::Name kind() { return CollectorPolicy::TwoGenerationCollectorPolicyKind; } - // Returns true is gen0 sizes were adjusted + // Returns true if gen0 sizes were adjusted bool adjust_gen0_sizes(size_t* gen0_size_ptr, size_t* gen1_size_ptr, - const size_t heap_size, const size_t min_gen1_size); + const size_t heap_size); }; class MarkSweepPolicy : public TwoGenerationCollectorPolicy { protected: + void initialize_alignments(); void initialize_generations(); public: - MarkSweepPolicy(); + MarkSweepPolicy() {} MarkSweepPolicy* as_mark_sweep_policy() { return this; } diff --git a/hotspot/src/share/vm/memory/defNewGeneration.cpp b/hotspot/src/share/vm/memory/defNewGeneration.cpp index 0b4af29a3e3..ca3ff46b167 100644 --- a/hotspot/src/share/vm/memory/defNewGeneration.cpp +++ b/hotspot/src/share/vm/memory/defNewGeneration.cpp @@ -204,7 +204,7 @@ DefNewGeneration::DefNewGeneration(ReservedSpace rs, // Compute the maximum eden and survivor space sizes. These sizes // are computed assuming the entire reserved space is committed. // These values are exported as performance counters. - uintx alignment = GenCollectedHeap::heap()->collector_policy()->min_alignment(); + uintx alignment = GenCollectedHeap::heap()->collector_policy()->space_alignment(); uintx size = _virtual_space.reserved_size(); _max_survivor_size = compute_survivor_size(size, alignment); _max_eden_size = size - (2*_max_survivor_size); @@ -235,7 +235,7 @@ void DefNewGeneration::compute_space_boundaries(uintx minimum_eden_size, bool clear_space, bool mangle_space) { uintx alignment = - GenCollectedHeap::heap()->collector_policy()->min_alignment(); + GenCollectedHeap::heap()->collector_policy()->space_alignment(); // If the spaces are being cleared (only done at heap initialization // currently), the survivor spaces need not be empty. @@ -473,7 +473,7 @@ size_t DefNewGeneration::free() const { } size_t DefNewGeneration::max_capacity() const { - const size_t alignment = GenCollectedHeap::heap()->collector_policy()->min_alignment(); + const size_t alignment = GenCollectedHeap::heap()->collector_policy()->space_alignment(); const size_t reserved_bytes = reserved().byte_size(); return reserved_bytes - compute_survivor_size(reserved_bytes, alignment); } diff --git a/hotspot/src/share/vm/memory/genCollectedHeap.cpp b/hotspot/src/share/vm/memory/genCollectedHeap.cpp index 3a5ab210c83..aa6f24bd23e 100644 --- a/hotspot/src/share/vm/memory/genCollectedHeap.cpp +++ b/hotspot/src/share/vm/memory/genCollectedHeap.cpp @@ -111,7 +111,7 @@ jint GenCollectedHeap::initialize() { int n_covered_regions = 0; ReservedSpace heap_rs; - size_t heap_alignment = collector_policy()->max_alignment(); + size_t heap_alignment = collector_policy()->heap_alignment(); heap_address = allocate(heap_alignment, &total_reserved, &n_covered_regions, &heap_rs); @@ -1053,12 +1053,6 @@ void GenCollectedHeap::save_marks() { } } -void GenCollectedHeap::compute_new_generation_sizes(int collectedGen) { - for (int i = 0; i <= collectedGen; i++) { - _gens[i]->compute_new_size(); - } -} - GenCollectedHeap* GenCollectedHeap::heap() { assert(_gch != NULL, "Uninitialized access to GenCollectedHeap::heap()"); assert(_gch->kind() == CollectedHeap::GenCollectedHeap, "not a generational heap"); diff --git a/hotspot/src/share/vm/memory/genCollectedHeap.hpp b/hotspot/src/share/vm/memory/genCollectedHeap.hpp index 8f814132a78..5cd8a71280a 100644 --- a/hotspot/src/share/vm/memory/genCollectedHeap.hpp +++ b/hotspot/src/share/vm/memory/genCollectedHeap.hpp @@ -86,10 +86,6 @@ public: NOT_PRODUCT(static size_t _skip_header_HeapWords;) protected: - // Directs each generation up to and including "collectedGen" to recompute - // its desired size. - void compute_new_generation_sizes(int collectedGen); - // Helper functions for allocation HeapWord* attempt_allocation(size_t size, bool is_tlab, diff --git a/hotspot/src/share/vm/memory/metaspace.cpp b/hotspot/src/share/vm/memory/metaspace.cpp index 8df4e32c355..826dde3838c 100644 --- a/hotspot/src/share/vm/memory/metaspace.cpp +++ b/hotspot/src/share/vm/memory/metaspace.cpp @@ -2869,7 +2869,7 @@ void Metaspace::set_narrow_klass_base_and_shift(address metaspace_base, address Universe::set_narrow_klass_base(lower_base); - if ((uint64_t)(higher_address - lower_base) < UnscaledClassSpaceMax) { + if ((uint64_t)(higher_address - lower_base) <= UnscaledClassSpaceMax) { Universe::set_narrow_klass_shift(0); } else { assert(!UseSharedSpaces, "Cannot shift with UseSharedSpaces"); @@ -2885,7 +2885,7 @@ bool Metaspace::can_use_cds_with_metaspace_addr(char* metaspace_base, address cd address lower_base = MIN2((address)metaspace_base, cds_base); address higher_address = MAX2((address)(cds_base + FileMapInfo::shared_spaces_size()), (address)(metaspace_base + compressed_class_space_size())); - return ((uint64_t)(higher_address - lower_base) < UnscaledClassSpaceMax); + return ((uint64_t)(higher_address - lower_base) <= UnscaledClassSpaceMax); } // Try to allocate the metaspace at the requested addr. @@ -2975,11 +2975,6 @@ void Metaspace::initialize_class_space(ReservedSpace rs) { #endif -// Align down. If the aligning result in 0, return 'alignment'. -static size_t restricted_align_down(size_t size, size_t alignment) { - return MAX2(alignment, align_size_down_(size, alignment)); -} - void Metaspace::ergo_initialize() { if (DumpSharedSpaces) { // Using large pages when dumping the shared archive is currently not implemented. @@ -3002,13 +2997,13 @@ void Metaspace::ergo_initialize() { // Ideally, we would be able to set the default value of MaxMetaspaceSize in // globals.hpp to the aligned value, but this is not possible, since the // alignment depends on other flags being parsed. - MaxMetaspaceSize = restricted_align_down(MaxMetaspaceSize, _reserve_alignment); + MaxMetaspaceSize = align_size_down_bounded(MaxMetaspaceSize, _reserve_alignment); if (MetaspaceSize > MaxMetaspaceSize) { MetaspaceSize = MaxMetaspaceSize; } - MetaspaceSize = restricted_align_down(MetaspaceSize, _commit_alignment); + MetaspaceSize = align_size_down_bounded(MetaspaceSize, _commit_alignment); assert(MetaspaceSize <= MaxMetaspaceSize, "MetaspaceSize should be limited by MaxMetaspaceSize"); @@ -3016,10 +3011,10 @@ void Metaspace::ergo_initialize() { vm_exit_during_initialization("Too small initial Metaspace size"); } - MinMetaspaceExpansion = restricted_align_down(MinMetaspaceExpansion, _commit_alignment); - MaxMetaspaceExpansion = restricted_align_down(MaxMetaspaceExpansion, _commit_alignment); + MinMetaspaceExpansion = align_size_down_bounded(MinMetaspaceExpansion, _commit_alignment); + MaxMetaspaceExpansion = align_size_down_bounded(MaxMetaspaceExpansion, _commit_alignment); - CompressedClassSpaceSize = restricted_align_down(CompressedClassSpaceSize, _reserve_alignment); + CompressedClassSpaceSize = align_size_down_bounded(CompressedClassSpaceSize, _reserve_alignment); set_compressed_class_space_size(CompressedClassSpaceSize); } diff --git a/hotspot/src/share/vm/memory/sharedHeap.cpp b/hotspot/src/share/vm/memory/sharedHeap.cpp index 79455db9b6e..47ebc180c8e 100644 --- a/hotspot/src/share/vm/memory/sharedHeap.cpp +++ b/hotspot/src/share/vm/memory/sharedHeap.cpp @@ -247,6 +247,7 @@ void SharedHeap::set_barrier_set(BarrierSet* bs) { } void SharedHeap::post_initialize() { + CollectedHeap::post_initialize(); ref_processing_init(); } diff --git a/hotspot/src/share/vm/memory/universe.cpp b/hotspot/src/share/vm/memory/universe.cpp index 043962c6304..b393272e064 100644 --- a/hotspot/src/share/vm/memory/universe.cpp +++ b/hotspot/src/share/vm/memory/universe.cpp @@ -785,6 +785,7 @@ jint Universe::initialize_heap() { } else if (UseG1GC) { #if INCLUDE_ALL_GCS G1CollectorPolicy* g1p = new G1CollectorPolicy(); + g1p->initialize_all(); G1CollectedHeap* g1h = new G1CollectedHeap(g1p); Universe::_collectedHeap = g1h; #else // INCLUDE_ALL_GCS @@ -809,6 +810,7 @@ jint Universe::initialize_heap() { } else { // default old generation gc_policy = new MarkSweepPolicy(); } + gc_policy->initialize_all(); Universe::_collectedHeap = new GenCollectedHeap(gc_policy); } @@ -1041,7 +1043,7 @@ bool universe_post_init() { Universe::_virtual_machine_error_instance = InstanceKlass::cast(k)->allocate_instance(CHECK_false); - Universe::_vm_exception = InstanceKlass::cast(k)->allocate_instance(CHECK_false); + Universe::_vm_exception = InstanceKlass::cast(k)->allocate_instance(CHECK_false); if (!DumpSharedSpaces) { // These are the only Java fields that are currently set during shared space dumping. diff --git a/hotspot/src/share/vm/oops/cpCache.cpp b/hotspot/src/share/vm/oops/cpCache.cpp index 215cf7796f0..c9bbb5fc4d9 100644 --- a/hotspot/src/share/vm/oops/cpCache.cpp +++ b/hotspot/src/share/vm/oops/cpCache.cpp @@ -554,24 +554,37 @@ void ConstantPoolCacheEntry::verify(outputStream* st) const { // Implementation of ConstantPoolCache ConstantPoolCache* ConstantPoolCache::allocate(ClassLoaderData* loader_data, - int length, const intStack& index_map, + const intStack& invokedynamic_index_map, const intStack& invokedynamic_map, TRAPS) { + + const int length = index_map.length() + invokedynamic_index_map.length(); int size = ConstantPoolCache::size(length); return new (loader_data, size, false, MetaspaceObj::ConstantPoolCacheType, THREAD) - ConstantPoolCache(length, index_map, invokedynamic_map); + ConstantPoolCache(length, index_map, invokedynamic_index_map, invokedynamic_map); } void ConstantPoolCache::initialize(const intArray& inverse_index_map, + const intArray& invokedynamic_inverse_index_map, const intArray& invokedynamic_references_map) { - assert(inverse_index_map.length() == length(), "inverse index map must have same length as cache"); - for (int i = 0; i < length(); i++) { + for (int i = 0; i < inverse_index_map.length(); i++) { ConstantPoolCacheEntry* e = entry_at(i); int original_index = inverse_index_map[i]; e->initialize_entry(original_index); assert(entry_at(i) == e, "sanity"); } + + // Append invokedynamic entries at the end + int invokedynamic_offset = inverse_index_map.length(); + for (int i = 0; i < invokedynamic_inverse_index_map.length(); i++) { + int offset = i + invokedynamic_offset; + ConstantPoolCacheEntry* e = entry_at(offset); + int original_index = invokedynamic_inverse_index_map[i]; + e->initialize_entry(original_index); + assert(entry_at(offset) == e, "sanity"); + } + for (int ref = 0; ref < invokedynamic_references_map.length(); ref++) { const int cpci = invokedynamic_references_map[ref]; if (cpci >= 0) { diff --git a/hotspot/src/share/vm/oops/cpCache.hpp b/hotspot/src/share/vm/oops/cpCache.hpp index 77c0deb9d8f..26079fdfdb1 100644 --- a/hotspot/src/share/vm/oops/cpCache.hpp +++ b/hotspot/src/share/vm/oops/cpCache.hpp @@ -31,6 +31,10 @@ class PSPromotionManager; +// The ConstantPoolCache is not a cache! It is the resolution table that the +// interpreter uses to avoid going into the runtime and a way to access resolved +// values. + // A ConstantPoolCacheEntry describes an individual entry of the constant // pool cache. There's 2 principal kinds of entries: field entries for in- // stance & static field access, and method entries for invokes. Some of @@ -392,26 +396,33 @@ class ConstantPoolCache: public MetaspaceObj { friend class MetadataFactory; private: int _length; - ConstantPool* _constant_pool; // the corresponding constant pool + ConstantPool* _constant_pool; // the corresponding constant pool // Sizing debug_only(friend class ClassVerifier;) // Constructor - ConstantPoolCache(int length, const intStack& inverse_index_map, + ConstantPoolCache(int length, + const intStack& inverse_index_map, + const intStack& invokedynamic_inverse_index_map, const intStack& invokedynamic_references_map) : - _length(length), _constant_pool(NULL) { - initialize(inverse_index_map, invokedynamic_references_map); + _length(length), + _constant_pool(NULL) { + initialize(inverse_index_map, invokedynamic_inverse_index_map, + invokedynamic_references_map); for (int i = 0; i < length; i++) { assert(entry_at(i)->is_f1_null(), "Failed to clear?"); } } // Initialization - void initialize(const intArray& inverse_index_map, const intArray& invokedynamic_references_map); + void initialize(const intArray& inverse_index_map, + const intArray& invokedynamic_inverse_index_map, + const intArray& invokedynamic_references_map); public: - static ConstantPoolCache* allocate(ClassLoaderData* loader_data, int length, - const intStack& inverse_index_map, + static ConstantPoolCache* allocate(ClassLoaderData* loader_data, + const intStack& cp_cache_map, + const intStack& invokedynamic_cp_cache_map, const intStack& invokedynamic_references_map, TRAPS); bool is_constantPoolCache() const { return true; } diff --git a/hotspot/src/share/vm/oops/instanceKlass.cpp b/hotspot/src/share/vm/oops/instanceKlass.cpp index 510102d4e35..ae7ea804853 100644 --- a/hotspot/src/share/vm/oops/instanceKlass.cpp +++ b/hotspot/src/share/vm/oops/instanceKlass.cpp @@ -2211,6 +2211,10 @@ void InstanceKlass::clean_method_data(BoolObjectClosure* is_alive) { data = mdo->next_data(data)) { data->clean_weak_klass_links(is_alive); } + ParametersTypeData* parameters = mdo->parameters_type_data(); + if (parameters != NULL) { + parameters->clean_weak_klass_links(is_alive); + } } } } diff --git a/hotspot/src/share/vm/oops/klassVtable.cpp b/hotspot/src/share/vm/oops/klassVtable.cpp index 568e15ffae0..07a1c756826 100644 --- a/hotspot/src/share/vm/oops/klassVtable.cpp +++ b/hotspot/src/share/vm/oops/klassVtable.cpp @@ -86,7 +86,11 @@ void klassVtable::compute_vtable_size_and_num_mirandas( get_mirandas(&new_mirandas, all_mirandas, super, methods, NULL, local_interfaces); *num_new_mirandas = new_mirandas.length(); - vtable_length += *num_new_mirandas * vtableEntry::size(); + // Interfaces do not need interface methods in their vtables + // This includes miranda methods and during later processing, default methods + if (!class_flags.is_interface()) { + vtable_length += *num_new_mirandas * vtableEntry::size(); + } if (Universe::is_bootstrapping() && vtable_length == 0) { // array classes don't have their superclass set correctly during @@ -224,7 +228,11 @@ void klassVtable::initialize_vtable(bool checkconstraints, TRAPS) { } // add miranda methods; it will also return the updated initialized - initialized = fill_in_mirandas(initialized); + // Interfaces do not need interface methods in their vtables + // This includes miranda methods and during later processing, default methods + if (!ik()->is_interface()) { + initialized = fill_in_mirandas(initialized); + } // In class hierarchies where the accessibility is not increasing (i.e., going from private -> // package_private -> public/protected), the vtable might actually be smaller than our initial @@ -264,12 +272,12 @@ InstanceKlass* klassVtable::find_transitive_override(InstanceKlass* initialsuper _klass->internal_name(), sig, vtable_index); super_method->access_flags().print_on(tty); if (super_method->is_default_method()) { - tty->print("default"); + tty->print("default "); } tty->print("overriders flags: "); target_method->access_flags().print_on(tty); if (target_method->is_default_method()) { - tty->print("default"); + tty->print("default "); } } #endif /*PRODUCT*/ @@ -332,9 +340,15 @@ bool klassVtable::update_inherited_vtable(InstanceKlass* klass, methodHandle tar // An interface never allocates new vtable slots, only inherits old ones. // This method will either be assigned its own itable index later, // or be assigned an inherited vtable index in the loop below. - // default methods store their vtable indices in the inheritors default_vtable_indices - assert (default_index == -1, "interfaces don't store resolved default methods"); - target_method()->set_vtable_index(Method::pending_itable_index); + // default methods inherited by classes store their vtable indices + // in the inheritor's default_vtable_indices + // default methods inherited by interfaces may already have a + // valid itable index, if so, don't change it + // overpass methods in an interface will be assigned an itable index later + // by an inheriting class + if (!is_default || !target_method()->has_itable_index()) { + target_method()->set_vtable_index(Method::pending_itable_index); + } } // we need a new entry if there is no superclass @@ -441,7 +455,7 @@ bool klassVtable::update_inherited_vtable(InstanceKlass* klass, methodHandle tar target_klass->internal_name(), sig, i); super_method->access_flags().print_on(tty); if (super_method->is_default_method()) { - tty->print("default"); + tty->print("default "); } if (super_method->is_overpass()) { tty->print("overpass"); @@ -449,7 +463,7 @@ bool klassVtable::update_inherited_vtable(InstanceKlass* klass, methodHandle tar tty->print("overriders flags: "); target_method->access_flags().print_on(tty); if (target_method->is_default_method()) { - tty->print("default"); + tty->print("default "); } if (target_method->is_overpass()) { tty->print("overpass"); @@ -468,7 +482,7 @@ bool klassVtable::update_inherited_vtable(InstanceKlass* klass, methodHandle tar target_klass->internal_name(), sig,i); super_method->access_flags().print_on(tty); if (super_method->is_default_method()) { - tty->print("default"); + tty->print("default "); } if (super_method->is_overpass()) { tty->print("overpass"); @@ -476,7 +490,7 @@ bool klassVtable::update_inherited_vtable(InstanceKlass* klass, methodHandle tar tty->print("overriders flags: "); target_method->access_flags().print_on(tty); if (target_method->is_default_method()) { - tty->print("default"); + tty->print("default "); } if (target_method->is_overpass()) { tty->print("overpass"); @@ -494,8 +508,18 @@ void klassVtable::put_method_at(Method* m, int index) { #ifndef PRODUCT if (PrintVtables && Verbose) { ResourceMark rm; - tty->print_cr("adding %s::%s at index %d", _klass->internal_name(), - (m != NULL) ? m->name()->as_C_string() : "", index); + const char* sig = (m != NULL) ? m->name_and_sig_as_C_string() : ""; + tty->print("adding %s at index %d, flags: ", sig, index); + if (m != NULL) { + m->access_flags().print_on(tty); + if (m->is_default_method()) { + tty->print("default "); + } + if (m->is_overpass()) { + tty->print("overpass"); + } + } + tty->cr(); } #endif table()[index].set(m); @@ -631,8 +655,10 @@ bool klassVtable::is_miranda_entry_at(int i) { if (mhk->is_interface()) { assert(m->is_public(), "should be public"); assert(ik()->implements_interface(method_holder) , "this class should implement the interface"); - assert(is_miranda(m, ik()->methods(), ik()->default_methods(), ik()->super()), "should be a miranda_method"); - return true; + // the search could find a miranda or a default method + if (is_miranda(m, ik()->methods(), ik()->default_methods(), ik()->super())) { + return true; + } } return false; } @@ -644,9 +670,10 @@ bool klassVtable::is_miranda_entry_at(int i) { // the caller must make sure that the method belongs to an interface implemented by the class // Miranda methods only include public interface instance methods // Not private methods, not static methods, not default == concrete abstract +// Miranda methods also do not include overpass methods in interfaces bool klassVtable::is_miranda(Method* m, Array* class_methods, Array* default_methods, Klass* super) { - if (m->is_static() || m->is_private()) { + if (m->is_static() || m->is_private() || m->is_overpass()) { return false; } Symbol* name = m->name(); @@ -744,6 +771,8 @@ void klassVtable::get_mirandas(GrowableArray* new_mirandas, // Discover miranda methods ("miranda" = "interface abstract, no binding"), // and append them into the vtable starting at index initialized, // return the new value of initialized. +// Miranda methods use vtable entries, but do not get assigned a vtable_index +// The vtable_index is discovered by searching from the end of the vtable int klassVtable::fill_in_mirandas(int initialized) { GrowableArray mirandas(20); get_mirandas(&mirandas, NULL, ik()->super(), ik()->methods(), @@ -758,7 +787,7 @@ int klassVtable::fill_in_mirandas(int initialized) { sig, initialized); meth->access_flags().print_on(tty); if (meth->is_default_method()) { - tty->print("default"); + tty->print("default "); } tty->cr(); } @@ -858,7 +887,7 @@ void klassVtable::dump_vtable() { tty->print(" (%5d) ", i); m->access_flags().print_on(tty); if (m->is_default_method()) { - tty->print("default"); + tty->print("default "); } if (m->is_overpass()) { tty->print("overpass"); @@ -977,6 +1006,25 @@ int klassItable::assign_itable_indices_for_interface(Klass* klass) { if (interface_method_needs_itable_index(m)) { assert(!m->is_final_method(), "no final interface methods"); // If m is already assigned a vtable index, do not disturb it. + if (TraceItables && Verbose) { + ResourceMark rm; + const char* sig = (m != NULL) ? m->name_and_sig_as_C_string() : ""; + if (m->has_vtable_index()) { + tty->print("itable index %d for method: %s, flags: ", m->vtable_index(), sig); + } else { + tty->print("itable index %d for method: %s, flags: ", ime_num, sig); + } + if (m != NULL) { + m->access_flags().print_on(tty); + if (m->is_default_method()) { + tty->print("default "); + } + if (m->is_overpass()) { + tty->print("overpass"); + } + } + tty->cr(); + } if (!m->has_vtable_index()) { assert(m->vtable_index() == Method::pending_itable_index, "set by initialize_vtable"); m->set_itable_index(ime_num); @@ -1079,7 +1127,7 @@ void klassItable::initialize_itable_for_interface(int method_table_offset, Klass tty->print("target_method flags: "); target()->access_flags().print_on(tty); if (target()->is_default_method()) { - tty->print("default"); + tty->print("default "); } tty->cr(); } @@ -1158,7 +1206,7 @@ void klassItable::dump_itable() { tty->print(" (%5d) ", i); m->access_flags().print_on(tty); if (m->is_default_method()) { - tty->print("default"); + tty->print("default "); } tty->print(" -- "); m->print_name(tty); diff --git a/hotspot/src/share/vm/oops/methodData.cpp b/hotspot/src/share/vm/oops/methodData.cpp index 2cff5ee2c79..64c2f161377 100644 --- a/hotspot/src/share/vm/oops/methodData.cpp +++ b/hotspot/src/share/vm/oops/methodData.cpp @@ -275,23 +275,23 @@ void VirtualCallTypeData::post_initialize(BytecodeStream* stream, MethodData* md } bool TypeEntries::is_loader_alive(BoolObjectClosure* is_alive_cl, intptr_t p) { - return !is_type_none(p) && - !((Klass*)klass_part(p))->is_loader_alive(is_alive_cl); + Klass* k = (Klass*)klass_part(p); + return k != NULL && k->is_loader_alive(is_alive_cl); } void TypeStackSlotEntries::clean_weak_klass_links(BoolObjectClosure* is_alive_cl) { for (int i = 0; i < _number_of_entries; i++) { intptr_t p = type(i); - if (is_loader_alive(is_alive_cl, p)) { - set_type(i, type_none()); + if (!is_loader_alive(is_alive_cl, p)) { + set_type(i, with_status((Klass*)NULL, p)); } } } void ReturnTypeEntry::clean_weak_klass_links(BoolObjectClosure* is_alive_cl) { intptr_t p = type(); - if (is_loader_alive(is_alive_cl, p)) { - set_type(type_none()); + if (!is_loader_alive(is_alive_cl, p)) { + set_type(with_status((Klass*)NULL, p)); } } diff --git a/hotspot/src/share/vm/oops/methodData.hpp b/hotspot/src/share/vm/oops/methodData.hpp index a007708bb31..75cae3b15bb 100644 --- a/hotspot/src/share/vm/oops/methodData.hpp +++ b/hotspot/src/share/vm/oops/methodData.hpp @@ -690,7 +690,6 @@ public: // recorded type: cell without bit 0 and 1 static intptr_t klass_part(intptr_t v) { intptr_t r = v & type_klass_mask; - assert (r != 0, "invalid"); return r; } @@ -698,7 +697,9 @@ public: static Klass* valid_klass(intptr_t k) { if (!is_type_none(k) && !is_type_unknown(k)) { - return (Klass*)klass_part(k); + Klass* res = (Klass*)klass_part(k); + assert(res != NULL, "invalid"); + return res; } else { return NULL; } diff --git a/hotspot/src/share/vm/opto/bytecodeInfo.cpp b/hotspot/src/share/vm/opto/bytecodeInfo.cpp index 885ed1de643..1e875c42c50 100644 --- a/hotspot/src/share/vm/opto/bytecodeInfo.cpp +++ b/hotspot/src/share/vm/opto/bytecodeInfo.cpp @@ -389,6 +389,10 @@ bool InlineTree::try_to_inline(ciMethod* callee_method, ciMethod* caller_method, return false; } if (inline_level() > _max_inline_level) { + if (callee_method->force_inline() && inline_level() > MaxForceInlineLevel) { + set_msg("MaxForceInlineLevel"); + return false; + } if (!callee_method->force_inline() || !IncrementalInline) { set_msg("inlining too deep"); return false; diff --git a/hotspot/src/share/vm/opto/callGenerator.cpp b/hotspot/src/share/vm/opto/callGenerator.cpp index 33a13c83190..adc27ac02e4 100644 --- a/hotspot/src/share/vm/opto/callGenerator.cpp +++ b/hotspot/src/share/vm/opto/callGenerator.cpp @@ -776,7 +776,7 @@ CallGenerator* CallGenerator::for_method_handle_inline(JVMState* jvms, ciMethod* guarantee(!target->is_method_handle_intrinsic(), "should not happen"); // XXX remove const int vtable_index = Method::invalid_vtable_index; CallGenerator* cg = C->call_generator(target, vtable_index, false, jvms, true, PROB_ALWAYS, NULL, true, true); - assert(!cg->is_late_inline() || cg->is_mh_late_inline(), "no late inline here"); + assert(cg == NULL || !cg->is_late_inline() || cg->is_mh_late_inline(), "no late inline here"); if (cg != NULL && cg->is_inline()) return cg; } @@ -846,7 +846,7 @@ CallGenerator* CallGenerator::for_method_handle_inline(JVMState* jvms, ciMethod* } CallGenerator* cg = C->call_generator(target, vtable_index, call_does_dispatch, jvms, true, PROB_ALWAYS, speculative_receiver_type, true, true); - assert(!cg->is_late_inline() || cg->is_mh_late_inline(), "no late inline here"); + assert(cg == NULL || !cg->is_late_inline() || cg->is_mh_late_inline(), "no late inline here"); if (cg != NULL && cg->is_inline()) return cg; } diff --git a/hotspot/src/share/vm/opto/compile.cpp b/hotspot/src/share/vm/opto/compile.cpp index a896532f5d3..99d3cec271b 100644 --- a/hotspot/src/share/vm/opto/compile.cpp +++ b/hotspot/src/share/vm/opto/compile.cpp @@ -848,6 +848,7 @@ Compile::Compile( ciEnv* ci_env, C2Compiler* compiler, ciMethod* target, int osr } #endif + NOT_PRODUCT( verify_barriers(); ) // Now that we know the size of all the monitors we can add a fixed slot // for the original deopt pc. @@ -3018,12 +3019,17 @@ void Compile::final_graph_reshaping_impl( Node *n, Final_Reshape_Counts &frc) { // Phi nodes shouldn't be moved. They would only match below if they // had the same control as the MathExactNode. The only time that // would happen is if the Phi is also an input to the MathExact - if (!out->is_Phi()) { - if (out->in(0) == NULL) { - out->set_req(0, non_throwing); - } else if (out->in(0) == ctrl) { - out->set_req(0, non_throwing); - } + // + // Cmp nodes shouldn't have control set at all. + if (out->is_Phi() || + out->is_Cmp()) { + continue; + } + + if (out->in(0) == NULL) { + out->set_req(0, non_throwing); + } else if (out->in(0) == ctrl) { + out->set_req(0, non_throwing); } } } @@ -3368,6 +3374,72 @@ void Compile::verify_graph_edges(bool no_dead_code) { } } } + +// Verify GC barriers consistency +// Currently supported: +// - G1 pre-barriers (see GraphKit::g1_write_barrier_pre()) +void Compile::verify_barriers() { + if (UseG1GC) { + // Verify G1 pre-barriers + const int marking_offset = in_bytes(JavaThread::satb_mark_queue_offset() + PtrQueue::byte_offset_of_active()); + + ResourceArea *area = Thread::current()->resource_area(); + Unique_Node_List visited(area); + Node_List worklist(area); + // We're going to walk control flow backwards starting from the Root + worklist.push(_root); + while (worklist.size() > 0) { + Node* x = worklist.pop(); + if (x == NULL || x == top()) continue; + if (visited.member(x)) { + continue; + } else { + visited.push(x); + } + + if (x->is_Region()) { + for (uint i = 1; i < x->req(); i++) { + worklist.push(x->in(i)); + } + } else { + worklist.push(x->in(0)); + // We are looking for the pattern: + // /->ThreadLocal + // If->Bool->CmpI->LoadB->AddP->ConL(marking_offset) + // \->ConI(0) + // We want to verify that the If and the LoadB have the same control + // See GraphKit::g1_write_barrier_pre() + if (x->is_If()) { + IfNode *iff = x->as_If(); + if (iff->in(1)->is_Bool() && iff->in(1)->in(1)->is_Cmp()) { + CmpNode *cmp = iff->in(1)->in(1)->as_Cmp(); + if (cmp->Opcode() == Op_CmpI && cmp->in(2)->is_Con() && cmp->in(2)->bottom_type()->is_int()->get_con() == 0 + && cmp->in(1)->is_Load()) { + LoadNode* load = cmp->in(1)->as_Load(); + if (load->Opcode() == Op_LoadB && load->in(2)->is_AddP() && load->in(2)->in(2)->Opcode() == Op_ThreadLocal + && load->in(2)->in(3)->is_Con() + && load->in(2)->in(3)->bottom_type()->is_intptr_t()->get_con() == marking_offset) { + + Node* if_ctrl = iff->in(0); + Node* load_ctrl = load->in(0); + + if (if_ctrl != load_ctrl) { + // Skip possible CProj->NeverBranch in infinite loops + if ((if_ctrl->is_Proj() && if_ctrl->Opcode() == Op_CProj) + && (if_ctrl->in(0)->is_MultiBranch() && if_ctrl->in(0)->Opcode() == Op_NeverBranch)) { + if_ctrl = if_ctrl->in(0)->in(0); + } + } + assert(load_ctrl != NULL && if_ctrl == load_ctrl, "controls must match"); + } + } + } + } + } + } + } +} + #endif // The Compile object keeps track of failure reasons separately from the ciEnv. diff --git a/hotspot/src/share/vm/opto/compile.hpp b/hotspot/src/share/vm/opto/compile.hpp index 5eb340df651..5ad53e5d163 100644 --- a/hotspot/src/share/vm/opto/compile.hpp +++ b/hotspot/src/share/vm/opto/compile.hpp @@ -1148,6 +1148,9 @@ class Compile : public Phase { // graph is strongly connected from root in both directions. void verify_graph_edges(bool no_dead_code = false) PRODUCT_RETURN; + // Verify GC barrier patterns + void verify_barriers() PRODUCT_RETURN; + // End-of-run dumps. static void print_statistics() PRODUCT_RETURN; diff --git a/hotspot/src/share/vm/opto/loopTransform.cpp b/hotspot/src/share/vm/opto/loopTransform.cpp index 55a533bc38a..75f35b7d896 100644 --- a/hotspot/src/share/vm/opto/loopTransform.cpp +++ b/hotspot/src/share/vm/opto/loopTransform.cpp @@ -1964,7 +1964,7 @@ void PhaseIdealLoop::do_range_check( IdealLoopTree *loop, Node_List &old_new ) { // Find loads off the surviving projection; remove their control edge for (DUIterator_Fast imax, i = dp->fast_outs(imax); i < imax; i++) { Node* cd = dp->fast_out(i); // Control-dependent node - if( cd->is_Load() ) { // Loads can now float around in the loop + if (cd->is_Load() && cd->depends_only_on_test()) { // Loads can now float around in the loop // Allow the load to float around in the loop, or before it // but NOT before the pre-loop. _igvn.replace_input_of(cd, 0, ctrl); // ctrl, not NULL diff --git a/hotspot/src/share/vm/opto/loopopts.cpp b/hotspot/src/share/vm/opto/loopopts.cpp index 6529d1919ab..a7bf3ad28e8 100644 --- a/hotspot/src/share/vm/opto/loopopts.cpp +++ b/hotspot/src/share/vm/opto/loopopts.cpp @@ -42,6 +42,13 @@ Node *PhaseIdealLoop::split_thru_phi( Node *n, Node *region, int policy ) { // so disable this for now return NULL; } + + if (n->is_MathExact()) { + // MathExact has projections that are not correctly handled in the code + // below. + return NULL; + } + int wins = 0; assert(!n->is_CFG(), ""); assert(region->is_Region(), ""); diff --git a/hotspot/src/share/vm/opto/matcher.cpp b/hotspot/src/share/vm/opto/matcher.cpp index 85474115f30..25a71002073 100644 --- a/hotspot/src/share/vm/opto/matcher.cpp +++ b/hotspot/src/share/vm/opto/matcher.cpp @@ -464,17 +464,17 @@ void Matcher::init_first_stack_mask() { C->FIRST_STACK_mask().Clear(); // Add in the incoming argument area - OptoReg::Name init = OptoReg::add(_old_SP, C->out_preserve_stack_slots()); - for (i = init; i < _in_arg_limit; i = OptoReg::add(i,1)) + OptoReg::Name init_in = OptoReg::add(_old_SP, C->out_preserve_stack_slots()); + for (i = init_in; i < _in_arg_limit; i = OptoReg::add(i,1)) { C->FIRST_STACK_mask().Insert(i); - + } // Add in all bits past the outgoing argument area guarantee(RegMask::can_represent_arg(OptoReg::add(_out_arg_limit,-1)), "must be able to represent all call arguments in reg mask"); - init = _out_arg_limit; - for (i = init; RegMask::can_represent(i); i = OptoReg::add(i,1)) + OptoReg::Name init = _out_arg_limit; + for (i = init; RegMask::can_represent(i); i = OptoReg::add(i,1)) { C->FIRST_STACK_mask().Insert(i); - + } // Finally, set the "infinite stack" bit. C->FIRST_STACK_mask().set_AllStack(); @@ -506,16 +506,36 @@ void Matcher::init_first_stack_mask() { idealreg2spillmask[Op_VecS]->OR(C->FIRST_STACK_mask()); } if (Matcher::vector_size_supported(T_FLOAT,2)) { + // For VecD we need dual alignment and 8 bytes (2 slots) for spills. + // RA guarantees such alignment since it is needed for Double and Long values. *idealreg2spillmask[Op_VecD] = *idealreg2regmask[Op_VecD]; idealreg2spillmask[Op_VecD]->OR(aligned_stack_mask); } if (Matcher::vector_size_supported(T_FLOAT,4)) { + // For VecX we need quadro alignment and 16 bytes (4 slots) for spills. + // + // RA can use input arguments stack slots for spills but until RA + // we don't know frame size and offset of input arg stack slots. + // + // Exclude last input arg stack slots to avoid spilling vectors there + // otherwise vector spills could stomp over stack slots in caller frame. + OptoReg::Name in = OptoReg::add(_in_arg_limit, -1); + for (int k = 1; (in >= init_in) && (k < RegMask::SlotsPerVecX); k++) { + aligned_stack_mask.Remove(in); + in = OptoReg::add(in, -1); + } aligned_stack_mask.clear_to_sets(RegMask::SlotsPerVecX); assert(aligned_stack_mask.is_AllStack(), "should be infinite stack"); *idealreg2spillmask[Op_VecX] = *idealreg2regmask[Op_VecX]; idealreg2spillmask[Op_VecX]->OR(aligned_stack_mask); } if (Matcher::vector_size_supported(T_FLOAT,8)) { + // For VecY we need octo alignment and 32 bytes (8 slots) for spills. + OptoReg::Name in = OptoReg::add(_in_arg_limit, -1); + for (int k = 1; (in >= init_in) && (k < RegMask::SlotsPerVecY); k++) { + aligned_stack_mask.Remove(in); + in = OptoReg::add(in, -1); + } aligned_stack_mask.clear_to_sets(RegMask::SlotsPerVecY); assert(aligned_stack_mask.is_AllStack(), "should be infinite stack"); *idealreg2spillmask[Op_VecY] = *idealreg2regmask[Op_VecY]; diff --git a/hotspot/src/share/vm/opto/mathexactnode.hpp b/hotspot/src/share/vm/opto/mathexactnode.hpp index 59983e10bcd..a30304ba93a 100644 --- a/hotspot/src/share/vm/opto/mathexactnode.hpp +++ b/hotspot/src/share/vm/opto/mathexactnode.hpp @@ -49,7 +49,7 @@ public: virtual Node* Identity(PhaseTransform* phase) { return this; } virtual Node* Ideal(PhaseGVN* phase, bool can_reshape) { return NULL; } virtual const Type* Value(PhaseTransform* phase) const { return bottom_type(); } - virtual uint hash() const { return Node::hash(); } + virtual uint hash() const { return NO_HASH; } virtual bool is_CFG() const { return false; } virtual uint ideal_reg() const { return NotAMachineReg; } diff --git a/hotspot/src/share/vm/opto/memnode.hpp b/hotspot/src/share/vm/opto/memnode.hpp index 9a009908453..88a05ad134d 100644 --- a/hotspot/src/share/vm/opto/memnode.hpp +++ b/hotspot/src/share/vm/opto/memnode.hpp @@ -204,6 +204,17 @@ public: protected: const Type* load_array_final_field(const TypeKlassPtr *tkls, ciKlass* klass) const; + // depends_only_on_test is almost always true, and needs to be almost always + // true to enable key hoisting & commoning optimizations. However, for the + // special case of RawPtr loads from TLS top & end, and other loads performed by + // GC barriers, the control edge carries the dependence preventing hoisting past + // a Safepoint instead of the memory edge. (An unfortunate consequence of having + // Safepoints not set Raw Memory; itself an unfortunate consequence of having Nodes + // which produce results (new raw memory state) inside of loops preventing all + // manner of other optimizations). Basically, it's ugly but so is the alternative. + // See comment in macro.cpp, around line 125 expand_allocate_common(). + virtual bool depends_only_on_test() const { return adr_type() != TypeRawPtr::BOTTOM; } + }; //------------------------------LoadBNode-------------------------------------- @@ -370,16 +381,6 @@ public: virtual uint ideal_reg() const { return Op_RegP; } virtual int store_Opcode() const { return Op_StoreP; } virtual BasicType memory_type() const { return T_ADDRESS; } - // depends_only_on_test is almost always true, and needs to be almost always - // true to enable key hoisting & commoning optimizations. However, for the - // special case of RawPtr loads from TLS top & end, the control edge carries - // the dependence preventing hoisting past a Safepoint instead of the memory - // edge. (An unfortunate consequence of having Safepoints not set Raw - // Memory; itself an unfortunate consequence of having Nodes which produce - // results (new raw memory state) inside of loops preventing all manner of - // other optimizations). Basically, it's ugly but so is the alternative. - // See comment in macro.cpp, around line 125 expand_allocate_common(). - virtual bool depends_only_on_test() const { return adr_type() != TypeRawPtr::BOTTOM; } }; @@ -393,16 +394,6 @@ public: virtual uint ideal_reg() const { return Op_RegN; } virtual int store_Opcode() const { return Op_StoreN; } virtual BasicType memory_type() const { return T_NARROWOOP; } - // depends_only_on_test is almost always true, and needs to be almost always - // true to enable key hoisting & commoning optimizations. However, for the - // special case of RawPtr loads from TLS top & end, the control edge carries - // the dependence preventing hoisting past a Safepoint instead of the memory - // edge. (An unfortunate consequence of having Safepoints not set Raw - // Memory; itself an unfortunate consequence of having Nodes which produce - // results (new raw memory state) inside of loops preventing all manner of - // other optimizations). Basically, it's ugly but so is the alternative. - // See comment in macro.cpp, around line 125 expand_allocate_common(). - virtual bool depends_only_on_test() const { return adr_type() != TypeRawPtr::BOTTOM; } }; //------------------------------LoadKlassNode---------------------------------- diff --git a/hotspot/src/share/vm/prims/jvmtiImpl.cpp b/hotspot/src/share/vm/prims/jvmtiImpl.cpp index 5d560f56a2d..ad90eeb9435 100644 --- a/hotspot/src/share/vm/prims/jvmtiImpl.cpp +++ b/hotspot/src/share/vm/prims/jvmtiImpl.cpp @@ -210,6 +210,14 @@ void GrowableCache::oops_do(OopClosure* f) { } } +void GrowableCache::metadata_do(void f(Metadata*)) { + int len = _elements->length(); + for (int i=0; iat(i); + e->metadata_do(f); + } +} + void GrowableCache::gc_epilogue() { int len = _elements->length(); for (int i=0; imethod_holder()->class_loader_data()->class_loader(); + _class_holder = _method->method_holder()->klass_holder(); #ifdef CHECK_UNHANDLED_OOPS - // _class_loader can't be wrapped in a Handle, because JvmtiBreakpoint:s are - // eventually allocated on the heap. + // _class_holder can't be wrapped in a Handle, because JvmtiBreakpoints are + // sometimes allocated on the heap. // - // The code handling JvmtiBreakpoint:s allocated on the stack can't be - // interrupted by a GC until _class_loader is reachable by the GC via the + // The code handling JvmtiBreakpoints allocated on the stack can't be + // interrupted by a GC until _class_holder is reachable by the GC via the // oops_do method. - Thread::current()->allow_unhandled_oop(&_class_loader); + Thread::current()->allow_unhandled_oop(&_class_holder); #endif // CHECK_UNHANDLED_OOPS assert(_method != NULL, "_method != NULL"); _bci = (int) location; @@ -247,7 +255,7 @@ JvmtiBreakpoint::JvmtiBreakpoint(Method* m_method, jlocation location) { void JvmtiBreakpoint::copy(JvmtiBreakpoint& bp) { _method = bp._method; _bci = bp._bci; - _class_loader = bp._class_loader; + _class_holder = bp._class_holder; } bool JvmtiBreakpoint::lessThan(JvmtiBreakpoint& bp) { @@ -365,6 +373,13 @@ void VM_ChangeBreakpoints::oops_do(OopClosure* f) { } } +void VM_ChangeBreakpoints::metadata_do(void f(Metadata*)) { + // Walk metadata in breakpoints to keep from being deallocated with RedefineClasses + if (_bp != NULL) { + _bp->metadata_do(f); + } +} + // // class JvmtiBreakpoints // @@ -381,6 +396,10 @@ void JvmtiBreakpoints::oops_do(OopClosure* f) { _bps.oops_do(f); } +void JvmtiBreakpoints::metadata_do(void f(Metadata*)) { + _bps.metadata_do(f); +} + void JvmtiBreakpoints::gc_epilogue() { _bps.gc_epilogue(); } @@ -499,6 +518,12 @@ void JvmtiCurrentBreakpoints::oops_do(OopClosure* f) { } } +void JvmtiCurrentBreakpoints::metadata_do(void f(Metadata*)) { + if (_jvmti_breakpoints != NULL) { + _jvmti_breakpoints->metadata_do(f); + } +} + void JvmtiCurrentBreakpoints::gc_epilogue() { if (_jvmti_breakpoints != NULL) { _jvmti_breakpoints->gc_epilogue(); diff --git a/hotspot/src/share/vm/prims/jvmtiImpl.hpp b/hotspot/src/share/vm/prims/jvmtiImpl.hpp index c7beb176215..fc502c7387d 100644 --- a/hotspot/src/share/vm/prims/jvmtiImpl.hpp +++ b/hotspot/src/share/vm/prims/jvmtiImpl.hpp @@ -69,6 +69,7 @@ public: virtual bool lessThan(GrowableElement *e)=0; virtual GrowableElement *clone() =0; virtual void oops_do(OopClosure* f) =0; + virtual void metadata_do(void f(Metadata*)) =0; }; class GrowableCache VALUE_OBJ_CLASS_SPEC { @@ -115,6 +116,8 @@ public: void clear(); // apply f to every element and update the cache void oops_do(OopClosure* f); + // walk metadata to preserve for RedefineClasses + void metadata_do(void f(Metadata*)); // update the cache after a full gc void gc_epilogue(); }; @@ -148,6 +151,7 @@ public: void remove (int index) { _cache.remove(index); } void clear() { _cache.clear(); } void oops_do(OopClosure* f) { _cache.oops_do(f); } + void metadata_do(void f(Metadata*)) { _cache.metadata_do(f); } void gc_epilogue() { _cache.gc_epilogue(); } }; @@ -169,7 +173,7 @@ private: Method* _method; int _bci; Bytecodes::Code _orig_bytecode; - oop _class_loader; + oop _class_holder; // keeps _method memory from being deallocated public: JvmtiBreakpoint(); @@ -191,9 +195,15 @@ public: bool lessThan(GrowableElement* e) { Unimplemented(); return false; } bool equals(GrowableElement* e) { return equals((JvmtiBreakpoint&) *e); } void oops_do(OopClosure* f) { - // Mark the method loader as live - f->do_oop(&_class_loader); + // Mark the method loader as live so the Method* class loader doesn't get + // unloaded and Method* memory reclaimed. + f->do_oop(&_class_holder); } + void metadata_do(void f(Metadata*)) { + // walk metadata to preserve for RedefineClasses + f(_method); + } + GrowableElement *clone() { JvmtiBreakpoint *bp = new JvmtiBreakpoint(); bp->copy(*this); @@ -239,6 +249,7 @@ public: int length(); void oops_do(OopClosure* f); + void metadata_do(void f(Metadata*)); void print(); int set(JvmtiBreakpoint& bp); @@ -288,6 +299,7 @@ public: static inline bool is_breakpoint(address bcp); static void oops_do(OopClosure* f); + static void metadata_do(void f(Metadata*)); static void gc_epilogue(); }; @@ -332,6 +344,7 @@ public: VMOp_Type type() const { return VMOp_ChangeBreakpoints; } void doit(); void oops_do(OopClosure* f); + void metadata_do(void f(Metadata*)); }; diff --git a/hotspot/src/share/vm/prims/whitebox.cpp b/hotspot/src/share/vm/prims/whitebox.cpp index 6f6a2000a3f..1cb799b3ea9 100644 --- a/hotspot/src/share/vm/prims/whitebox.cpp +++ b/hotspot/src/share/vm/prims/whitebox.cpp @@ -53,6 +53,8 @@ #include "compiler/compileBroker.hpp" #include "runtime/compilationPolicy.hpp" +#define SIZE_T_MAX_VALUE ((size_t) -1) + bool WhiteBox::_used = false; WB_ENTRY(jlong, WB_GetObjectAddress(JNIEnv* env, jobject o, jobject obj)) @@ -105,10 +107,116 @@ WB_ENTRY(void, WB_PrintHeapSizes(JNIEnv* env, jobject o)) { gclog_or_tty->print_cr("Minimum heap "SIZE_FORMAT" Initial heap " SIZE_FORMAT" Maximum heap "SIZE_FORMAT" Min alignment "SIZE_FORMAT" Max alignment "SIZE_FORMAT, p->min_heap_byte_size(), p->initial_heap_byte_size(), p->max_heap_byte_size(), - p->min_alignment(), p->max_alignment()); + p->space_alignment(), p->heap_alignment()); } WB_END +#ifndef PRODUCT +// Forward declaration +void TestReservedSpace_test(); +void TestReserveMemorySpecial_test(); +void TestVirtualSpace_test(); +void TestMetaspaceAux_test(); +#endif + +WB_ENTRY(void, WB_RunMemoryUnitTests(JNIEnv* env, jobject o)) +#ifndef PRODUCT + TestReservedSpace_test(); + TestReserveMemorySpecial_test(); + TestVirtualSpace_test(); + TestMetaspaceAux_test(); +#endif +WB_END + +WB_ENTRY(void, WB_ReadFromNoaccessArea(JNIEnv* env, jobject o)) + size_t granularity = os::vm_allocation_granularity(); + ReservedHeapSpace rhs(100 * granularity, granularity, false, NULL); + VirtualSpace vs; + vs.initialize(rhs, 50 * granularity); + + //Check if constraints are complied + if (!( UseCompressedOops && rhs.base() != NULL && + Universe::narrow_oop_base() != NULL && + Universe::narrow_oop_use_implicit_null_checks() )) { + tty->print_cr("WB_ReadFromNoaccessArea method is useless:\n " + "\tUseCompressedOops is %d\n" + "\trhs.base() is "PTR_FORMAT"\n" + "\tUniverse::narrow_oop_base() is "PTR_FORMAT"\n" + "\tUniverse::narrow_oop_use_implicit_null_checks() is %d", + UseCompressedOops, + rhs.base(), + Universe::narrow_oop_base(), + Universe::narrow_oop_use_implicit_null_checks()); + return; + } + tty->print_cr("Reading from no access area... "); + tty->print_cr("*(vs.low_boundary() - rhs.noaccess_prefix() / 2 ) = %c", + *(vs.low_boundary() - rhs.noaccess_prefix() / 2 )); +WB_END + +static jint wb_stress_virtual_space_resize(size_t reserved_space_size, + size_t magnitude, size_t iterations) { + size_t granularity = os::vm_allocation_granularity(); + ReservedHeapSpace rhs(reserved_space_size * granularity, granularity, false, NULL); + VirtualSpace vs; + if (!vs.initialize(rhs, 0)) { + tty->print_cr("Failed to initialize VirtualSpace. Can't proceed."); + return 3; + } + + long seed = os::random(); + tty->print_cr("Random seed is %ld", seed); + os::init_random(seed); + + for (size_t i = 0; i < iterations; i++) { + + // Whether we will shrink or grow + bool shrink = os::random() % 2L == 0; + + // Get random delta to resize virtual space + size_t delta = (size_t)os::random() % magnitude; + + // If we are about to shrink virtual space below zero, then expand instead + if (shrink && vs.committed_size() < delta) { + shrink = false; + } + + // Resizing by delta + if (shrink) { + vs.shrink_by(delta); + } else { + // If expanding fails expand_by will silently return false + vs.expand_by(delta, true); + } + } + return 0; +} + +WB_ENTRY(jint, WB_StressVirtualSpaceResize(JNIEnv* env, jobject o, + jlong reserved_space_size, jlong magnitude, jlong iterations)) + tty->print_cr("reservedSpaceSize="JLONG_FORMAT", magnitude="JLONG_FORMAT", " + "iterations="JLONG_FORMAT"\n", reserved_space_size, magnitude, + iterations); + if (reserved_space_size < 0 || magnitude < 0 || iterations < 0) { + tty->print_cr("One of variables printed above is negative. Can't proceed.\n"); + return 1; + } + + // sizeof(size_t) depends on whether OS is 32bit or 64bit. sizeof(jlong) is + // always 8 byte. That's why we should avoid overflow in case of 32bit platform. + if (sizeof(size_t) < sizeof(jlong)) { + jlong size_t_max_value = (jlong) SIZE_T_MAX_VALUE; + if (reserved_space_size > size_t_max_value || magnitude > size_t_max_value + || iterations > size_t_max_value) { + tty->print_cr("One of variables printed above overflows size_t. Can't proceed.\n"); + return 2; + } + } + + return wb_stress_virtual_space_resize((size_t) reserved_space_size, + (size_t) magnitude, (size_t) iterations); +WB_END + #if INCLUDE_ALL_GCS WB_ENTRY(jboolean, WB_G1IsHumongous(JNIEnv* env, jobject o, jobject obj)) G1CollectedHeap* g1 = G1CollectedHeap::heap(); @@ -445,6 +553,9 @@ static JNINativeMethod methods[] = { {CC"getCompressedOopsMaxHeapSize", CC"()J", (void*)&WB_GetCompressedOopsMaxHeapSize}, {CC"printHeapSizes", CC"()V", (void*)&WB_PrintHeapSizes }, + {CC"runMemoryUnitTests", CC"()V", (void*)&WB_RunMemoryUnitTests}, + {CC"readFromNoaccessArea",CC"()V", (void*)&WB_ReadFromNoaccessArea}, + {CC"stressVirtualSpaceResize",CC"(JJJ)I", (void*)&WB_StressVirtualSpaceResize}, #if INCLUDE_ALL_GCS {CC"g1InConcurrentMark", CC"()Z", (void*)&WB_G1InConcurrentMark}, {CC"g1IsHumongous", CC"(Ljava/lang/Object;)Z", (void*)&WB_G1IsHumongous }, diff --git a/hotspot/src/share/vm/runtime/arguments.cpp b/hotspot/src/share/vm/runtime/arguments.cpp index 8060dae0377..51fb3f7d595 100644 --- a/hotspot/src/share/vm/runtime/arguments.cpp +++ b/hotspot/src/share/vm/runtime/arguments.cpp @@ -1132,9 +1132,6 @@ void Arguments::set_tiered_flags() { Tier3InvokeNotifyFreqLog = 0; Tier4InvocationThreshold = 0; } - if (FLAG_IS_DEFAULT(NmethodSweepFraction)) { - FLAG_SET_DEFAULT(NmethodSweepFraction, 1 + ReservedCodeCacheSize / (16 * M)); - } } #if INCLUDE_ALL_GCS @@ -1408,7 +1405,7 @@ uintx Arguments::max_heap_for_compressed_oops() { // NULL page is located before the heap, we pad the NULL page to the conservative // maximum alignment that the GC may ever impose upon the heap. size_t displacement_due_to_null_page = align_size_up_(os::vm_page_size(), - Arguments::conservative_max_heap_alignment()); + _conservative_max_heap_alignment); LP64_ONLY(return OopEncodingHeapMax - displacement_due_to_null_page); NOT_LP64(ShouldNotReachHere(); return 0); @@ -1505,7 +1502,7 @@ void Arguments::set_conservative_max_heap_alignment() { } #endif // INCLUDE_ALL_GCS _conservative_max_heap_alignment = MAX3(heap_alignment, os::max_page_size(), - CollectorPolicy::compute_max_alignment()); + CollectorPolicy::compute_heap_alignment()); } void Arguments::set_ergonomics_flags() { @@ -2165,6 +2162,10 @@ bool Arguments::check_vm_args_consistency() { #if INCLUDE_ALL_GCS if (UseG1GC) { + status = status && verify_percentage(G1NewSizePercent, "G1NewSizePercent"); + status = status && verify_percentage(G1MaxNewSizePercent, "G1MaxNewSizePercent"); + status = status && verify_interval(G1NewSizePercent, 0, G1MaxNewSizePercent, "G1NewSizePercent"); + status = status && verify_percentage(InitiatingHeapOccupancyPercent, "InitiatingHeapOccupancyPercent"); status = status && verify_min_value(G1RefProcDrainInterval, 1, @@ -2681,9 +2682,10 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args, describe_range_error(errcode); return JNI_EINVAL; } - FLAG_SET_CMDLINE(uintx, InitialHeapSize, (uintx)long_initial_heap_size); + set_min_heap_size((uintx)long_initial_heap_size); // Currently the minimum size and the initial heap sizes are the same. - set_min_heap_size(InitialHeapSize); + // Can be overridden with -XX:InitialHeapSize. + FLAG_SET_CMDLINE(uintx, InitialHeapSize, (uintx)long_initial_heap_size); // -Xmx } else if (match_option(option, "-Xmx", &tail) || match_option(option, "-XX:MaxHeapSize=", &tail)) { julong long_max_heap_size = 0; @@ -3643,6 +3645,11 @@ jint Arguments::apply_ergo() { "Incompatible compilation policy selected", NULL); } } + // Set NmethodSweepFraction after the size of the code cache is adapted (in case of tiered) + if (FLAG_IS_DEFAULT(NmethodSweepFraction)) { + FLAG_SET_DEFAULT(NmethodSweepFraction, 1 + ReservedCodeCacheSize / (16 * M)); + } + // Set heap size based on available physical memory set_heap_size(); diff --git a/hotspot/src/share/vm/runtime/globals.hpp b/hotspot/src/share/vm/runtime/globals.hpp index 2fe5420be39..60cddd0f4ea 100644 --- a/hotspot/src/share/vm/runtime/globals.hpp +++ b/hotspot/src/share/vm/runtime/globals.hpp @@ -2954,6 +2954,9 @@ class CommandLineFlags { product(intx, MaxRecursiveInlineLevel, 1, \ "maximum number of nested recursive calls that are inlined") \ \ + develop(intx, MaxForceInlineLevel, 100, \ + "maximum number of nested @ForceInline calls that are inlined") \ + \ product_pd(intx, InlineSmallCode, \ "Only inline already compiled methods if their code size is " \ "less than this") \ @@ -3019,9 +3022,6 @@ class CommandLineFlags { notproduct(intx, ZombieALotInterval, 5, \ "Number of exits until ZombieALot kicks in") \ \ - develop(bool, StressNonEntrant, false, \ - "Mark nmethods non-entrant at registration") \ - \ diagnostic(intx, MallocVerifyInterval, 0, \ "If non-zero, verify C heap after every N calls to " \ "malloc/realloc/free") \ @@ -3289,7 +3289,7 @@ class CommandLineFlags { "Exit the VM if we fill the code cache") \ \ product(bool, UseCodeCacheFlushing, true, \ - "Attempt to clean the code cache before shutting off compiler") \ + "Remove cold/old nmethods from the code cache") \ \ /* interpreter debugging */ \ develop(intx, BinarySwitchThreshold, 5, \ diff --git a/hotspot/src/share/vm/runtime/sweeper.cpp b/hotspot/src/share/vm/runtime/sweeper.cpp index eab7636fac1..19db74963ce 100644 --- a/hotspot/src/share/vm/runtime/sweeper.cpp +++ b/hotspot/src/share/vm/runtime/sweeper.cpp @@ -112,14 +112,13 @@ void NMethodSweeper::record_sweep(nmethod* nm, int line) { if (_records != NULL) { _records[_sweep_index].traversal = _traversals; _records[_sweep_index].traversal_mark = nm->_stack_traversal_mark; - _records[_sweep_index].invocation = _invocations; + _records[_sweep_index].invocation = _sweep_fractions_left; _records[_sweep_index].compile_id = nm->compile_id(); _records[_sweep_index].kind = nm->compile_kind(); _records[_sweep_index].state = nm->_state; _records[_sweep_index].vep = nm->verified_entry_point(); _records[_sweep_index].uep = nm->entry_point(); _records[_sweep_index].line = line; - _sweep_index = (_sweep_index + 1) % SweeperLogEntries; } } @@ -127,26 +126,29 @@ void NMethodSweeper::record_sweep(nmethod* nm, int line) { #define SWEEP(nm) #endif -nmethod* NMethodSweeper::_current = NULL; // Current nmethod -long NMethodSweeper::_traversals = 0; // Nof. stack traversals performed -int NMethodSweeper::_seen = 0; // Nof. nmethods we have currently processed in current pass of CodeCache -int NMethodSweeper::_flushed_count = 0; // Nof. nmethods flushed in current sweep -int NMethodSweeper::_zombified_count = 0; // Nof. nmethods made zombie in current sweep -int NMethodSweeper::_marked_count = 0; // Nof. nmethods marked for reclaim in current sweep +nmethod* NMethodSweeper::_current = NULL; // Current nmethod +long NMethodSweeper::_traversals = 0; // Stack scan count, also sweep ID. +long NMethodSweeper::_time_counter = 0; // Virtual time used to periodically invoke sweeper +long NMethodSweeper::_last_sweep = 0; // Value of _time_counter when the last sweep happened +int NMethodSweeper::_seen = 0; // Nof. nmethod we have currently processed in current pass of CodeCache +int NMethodSweeper::_flushed_count = 0; // Nof. nmethods flushed in current sweep +int NMethodSweeper::_zombified_count = 0; // Nof. nmethods made zombie in current sweep +int NMethodSweeper::_marked_for_reclamation_count = 0; // Nof. nmethods marked for reclaim in current sweep -volatile int NMethodSweeper::_invocations = 0; // Nof. invocations left until we are completed with this pass -volatile int NMethodSweeper::_sweep_started = 0; // Whether a sweep is in progress. +volatile bool NMethodSweeper::_should_sweep = true; // Indicates if we should invoke the sweeper +volatile int NMethodSweeper::_sweep_fractions_left = 0; // Nof. invocations left until we are completed with this pass +volatile int NMethodSweeper::_sweep_started = 0; // Flag to control conc sweeper +volatile int NMethodSweeper::_bytes_changed = 0; // Counts the total nmethod size if the nmethod changed from: + // 1) alive -> not_entrant + // 2) not_entrant -> zombie + // 3) zombie -> marked_for_reclamation -jint NMethodSweeper::_locked_seen = 0; -jint NMethodSweeper::_not_entrant_seen_on_stack = 0; -bool NMethodSweeper::_request_mark_phase = false; - -int NMethodSweeper::_total_nof_methods_reclaimed = 0; -jlong NMethodSweeper::_total_time_sweeping = 0; -jlong NMethodSweeper::_total_time_this_sweep = 0; -jlong NMethodSweeper::_peak_sweep_time = 0; -jlong NMethodSweeper::_peak_sweep_fraction_time = 0; -int NMethodSweeper::_hotness_counter_reset_val = 0; +int NMethodSweeper::_total_nof_methods_reclaimed = 0; // Accumulated nof methods flushed +jlong NMethodSweeper::_total_time_sweeping = 0; // Accumulated time sweeping +jlong NMethodSweeper::_total_time_this_sweep = 0; // Total time this sweep +jlong NMethodSweeper::_peak_sweep_time = 0; // Peak time for a full sweep +jlong NMethodSweeper::_peak_sweep_fraction_time = 0; // Peak time sweeping one fraction +int NMethodSweeper::_hotness_counter_reset_val = 0; class MarkActivationClosure: public CodeBlobClosure { @@ -197,13 +199,16 @@ void NMethodSweeper::mark_active_nmethods() { return; } + // Increase time so that we can estimate when to invoke the sweeper again. + _time_counter++; + // Check for restart assert(CodeCache::find_blob_unsafe(_current) == _current, "Sweeper nmethod cached state invalid"); - if (!sweep_in_progress() && need_marking_phase()) { - _seen = 0; - _invocations = NmethodSweepFraction; - _current = CodeCache::first_nmethod(); - _traversals += 1; + if (!sweep_in_progress()) { + _seen = 0; + _sweep_fractions_left = NmethodSweepFraction; + _current = CodeCache::first_nmethod(); + _traversals += 1; _total_time_this_sweep = 0; if (PrintMethodFlushing) { @@ -211,10 +216,6 @@ void NMethodSweeper::mark_active_nmethods() { } Threads::nmethods_do(&mark_activation_closure); - // reset the flags since we started a scan from the beginning. - reset_nmethod_marking(); - _locked_seen = 0; - _not_entrant_seen_on_stack = 0; } else { // Only set hotness counter Threads::nmethods_do(&set_hotness_closure); @@ -222,14 +223,48 @@ void NMethodSweeper::mark_active_nmethods() { OrderAccess::storestore(); } - +/** + * This function invokes the sweeper if at least one of the three conditions is met: + * (1) The code cache is getting full + * (2) There are sufficient state changes in/since the last sweep. + * (3) We have not been sweeping for 'some time' + */ void NMethodSweeper::possibly_sweep() { assert(JavaThread::current()->thread_state() == _thread_in_vm, "must run in vm mode"); if (!MethodFlushing || !sweep_in_progress()) { return; } - if (_invocations > 0) { + // If there was no state change while nmethod sweeping, 'should_sweep' will be false. + // This is one of the two places where should_sweep can be set to true. The general + // idea is as follows: If there is enough free space in the code cache, there is no + // need to invoke the sweeper. The following formula (which determines whether to invoke + // the sweeper or not) depends on the assumption that for larger ReservedCodeCacheSizes + // we need less frequent sweeps than for smaller ReservedCodecCacheSizes. Furthermore, + // the formula considers how much space in the code cache is currently used. Here are + // some examples that will (hopefully) help in understanding. + // + // Small ReservedCodeCacheSizes: (e.g., < 16M) We invoke the sweeper every time, since + // the result of the division is 0. This + // keeps the used code cache size small + // (important for embedded Java) + // Large ReservedCodeCacheSize : (e.g., 256M + code cache is 10% full). The formula + // computes: (256 / 16) - 1 = 15 + // As a result, we invoke the sweeper after + // 15 invocations of 'mark_active_nmethods. + // Large ReservedCodeCacheSize: (e.g., 256M + code Cache is 90% full). The formula + // computes: (256 / 16) - 10 = 6. + if (!_should_sweep) { + int time_since_last_sweep = _time_counter - _last_sweep; + double wait_until_next_sweep = (ReservedCodeCacheSize / (16 * M)) - time_since_last_sweep - + CodeCache::reverse_free_ratio(); + + if ((wait_until_next_sweep <= 0.0) || !CompileBroker::should_compile_new_jobs()) { + _should_sweep = true; + } + } + + if (_should_sweep && _sweep_fractions_left > 0) { // Only one thread at a time will sweep jint old = Atomic::cmpxchg( 1, &_sweep_started, 0 ); if (old != 0) { @@ -242,31 +277,46 @@ void NMethodSweeper::possibly_sweep() { memset(_records, 0, sizeof(SweeperRecord) * SweeperLogEntries); } #endif - if (_invocations > 0) { + + if (_sweep_fractions_left > 0) { sweep_code_cache(); - _invocations--; + _sweep_fractions_left--; + } + + // We are done with sweeping the code cache once. + if (_sweep_fractions_left == 0) { + _last_sweep = _time_counter; + // Reset flag; temporarily disables sweeper + _should_sweep = false; + // If there was enough state change, 'possibly_enable_sweeper()' + // sets '_should_sweep' to true + possibly_enable_sweeper(); + // Reset _bytes_changed only if there was enough state change. _bytes_changed + // can further increase by calls to 'report_state_change'. + if (_should_sweep) { + _bytes_changed = 0; + } } _sweep_started = 0; } } void NMethodSweeper::sweep_code_cache() { - jlong sweep_start_counter = os::elapsed_counter(); - _flushed_count = 0; - _zombified_count = 0; - _marked_count = 0; + _flushed_count = 0; + _zombified_count = 0; + _marked_for_reclamation_count = 0; if (PrintMethodFlushing && Verbose) { - tty->print_cr("### Sweep at %d out of %d. Invocations left: %d", _seen, CodeCache::nof_nmethods(), _invocations); + tty->print_cr("### Sweep at %d out of %d. Invocations left: %d", _seen, CodeCache::nof_nmethods(), _sweep_fractions_left); } if (!CompileBroker::should_compile_new_jobs()) { // If we have turned off compilations we might as well do full sweeps // in order to reach the clean state faster. Otherwise the sleeping compiler // threads will slow down sweeping. - _invocations = 1; + _sweep_fractions_left = 1; } // We want to visit all nmethods after NmethodSweepFraction @@ -274,7 +324,7 @@ void NMethodSweeper::sweep_code_cache() { // remaining number of invocations. This is only an estimate since // the number of nmethods changes during the sweep so the final // stage must iterate until it there are no more nmethods. - int todo = (CodeCache::nof_nmethods() - _seen) / _invocations; + int todo = (CodeCache::nof_nmethods() - _seen) / _sweep_fractions_left; int swept_count = 0; @@ -286,11 +336,11 @@ void NMethodSweeper::sweep_code_cache() { MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag); // The last invocation iterates until there are no more nmethods - for (int i = 0; (i < todo || _invocations == 1) && _current != NULL; i++) { + for (int i = 0; (i < todo || _sweep_fractions_left == 1) && _current != NULL; i++) { swept_count++; if (SafepointSynchronize::is_synchronizing()) { // Safepoint request if (PrintMethodFlushing && Verbose) { - tty->print_cr("### Sweep at %d out of %d, invocation: %d, yielding to safepoint", _seen, CodeCache::nof_nmethods(), _invocations); + tty->print_cr("### Sweep at %d out of %d, invocation: %d, yielding to safepoint", _seen, CodeCache::nof_nmethods(), _sweep_fractions_left); } MutexUnlockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag); @@ -314,19 +364,7 @@ void NMethodSweeper::sweep_code_cache() { } } - assert(_invocations > 1 || _current == NULL, "must have scanned the whole cache"); - - if (!sweep_in_progress() && !need_marking_phase() && (_locked_seen || _not_entrant_seen_on_stack)) { - // we've completed a scan without making progress but there were - // nmethods we were unable to process either because they were - // locked or were still on stack. We don't have to aggressively - // clean them up so just stop scanning. We could scan once more - // but that complicates the control logic and it's unlikely to - // matter much. - if (PrintMethodFlushing) { - tty->print_cr("### Couldn't make progress on some nmethods so stopping sweep"); - } - } + assert(_sweep_fractions_left > 1 || _current == NULL, "must have scanned the whole cache"); jlong sweep_end_counter = os::elapsed_counter(); jlong sweep_time = sweep_end_counter - sweep_start_counter; @@ -340,21 +378,21 @@ void NMethodSweeper::sweep_code_cache() { event.set_starttime(sweep_start_counter); event.set_endtime(sweep_end_counter); event.set_sweepIndex(_traversals); - event.set_sweepFractionIndex(NmethodSweepFraction - _invocations + 1); + event.set_sweepFractionIndex(NmethodSweepFraction - _sweep_fractions_left + 1); event.set_sweptCount(swept_count); event.set_flushedCount(_flushed_count); - event.set_markedCount(_marked_count); + event.set_markedCount(_marked_for_reclamation_count); event.set_zombifiedCount(_zombified_count); event.commit(); } #ifdef ASSERT if(PrintMethodFlushing) { - tty->print_cr("### sweeper: sweep time(%d): " INT64_FORMAT, _invocations, (jlong)sweep_time); + tty->print_cr("### sweeper: sweep time(%d): " INT64_FORMAT, _sweep_fractions_left, (jlong)sweep_time); } #endif - if (_invocations == 1) { + if (_sweep_fractions_left == 1) { _peak_sweep_time = MAX2(_peak_sweep_time, _total_time_this_sweep); log_sweep("finished"); } @@ -368,12 +406,37 @@ void NMethodSweeper::sweep_code_cache() { // it only makes sense to re-enable compilation if we have actually freed memory. // Note that typically several kB are released for sweeping 16MB of the code // cache. As a result, 'freed_memory' > 0 to restart the compiler. - if (UseCodeCacheFlushing && (!CompileBroker::should_compile_new_jobs() && (freed_memory > 0))) { + if (!CompileBroker::should_compile_new_jobs() && (freed_memory > 0)) { CompileBroker::set_should_compile_new_jobs(CompileBroker::run_compilation); log_sweep("restart_compiler"); } } +/** + * This function updates the sweeper statistics that keep track of nmethods + * state changes. If there is 'enough' state change, the sweeper is invoked + * as soon as possible. There can be data races on _bytes_changed. The data + * races are benign, since it does not matter if we loose a couple of bytes. + * In the worst case we call the sweeper a little later. Also, we are guaranteed + * to invoke the sweeper if the code cache gets full. + */ +void NMethodSweeper::report_state_change(nmethod* nm) { + _bytes_changed += nm->total_size(); + possibly_enable_sweeper(); +} + +/** + * Function determines if there was 'enough' state change in the code cache to invoke + * the sweeper again. Currently, we determine 'enough' as more than 1% state change in + * the code cache since the last sweep. + */ +void NMethodSweeper::possibly_enable_sweeper() { + double percent_changed = ((double)_bytes_changed / (double)ReservedCodeCacheSize) * 100; + if (percent_changed > 1.0) { + _should_sweep = true; + } +} + class NMethodMarker: public StackObj { private: CompilerThread* _thread; @@ -424,9 +487,6 @@ int NMethodSweeper::process_nmethod(nmethod *nm) { MutexLocker cl(CompiledIC_lock); nm->cleanup_inline_caches(); SWEEP(nm); - } else { - _locked_seen++; - SWEEP(nm); } return freed_memory; } @@ -448,8 +508,9 @@ int NMethodSweeper::process_nmethod(nmethod *nm) { tty->print_cr("### Nmethod %3d/" PTR_FORMAT " (zombie) being marked for reclamation", nm->compile_id(), nm); } nm->mark_for_reclamation(); - request_nmethod_marking(); - _marked_count++; + // Keep track of code cache state change + _bytes_changed += nm->total_size(); + _marked_for_reclamation_count++; SWEEP(nm); } } else if (nm->is_not_entrant()) { @@ -459,18 +520,14 @@ int NMethodSweeper::process_nmethod(nmethod *nm) { if (PrintMethodFlushing && Verbose) { tty->print_cr("### Nmethod %3d/" PTR_FORMAT " (not entrant) being made zombie", nm->compile_id(), nm); } + // Code cache state change is tracked in make_zombie() nm->make_zombie(); - request_nmethod_marking(); _zombified_count++; SWEEP(nm); } else { // Still alive, clean up its inline caches MutexLocker cl(CompiledIC_lock); nm->cleanup_inline_caches(); - // we coudn't transition this nmethod so don't immediately - // request a rescan. If this method stays on the stack for a - // long time we don't want to keep rescanning the code cache. - _not_entrant_seen_on_stack++; SWEEP(nm); } } else if (nm->is_unloaded()) { @@ -485,8 +542,8 @@ int NMethodSweeper::process_nmethod(nmethod *nm) { release_nmethod(nm); _flushed_count++; } else { + // Code cache state change is tracked in make_zombie() nm->make_zombie(); - request_nmethod_marking(); _zombified_count++; SWEEP(nm); } @@ -514,7 +571,11 @@ int NMethodSweeper::process_nmethod(nmethod *nm) { // The second condition ensures that methods are not immediately made not-entrant // after compilation. nm->make_not_entrant(); - request_nmethod_marking(); + // Code cache state change is tracked in make_not_entrant() + if (PrintMethodFlushing && Verbose) { + tty->print_cr("### Nmethod %d/" PTR_FORMAT "made not-entrant: hotness counter %d/%d threshold %f", + nm->compile_id(), nm, nm->hotness_counter(), reset_val, threshold); + } } } } diff --git a/hotspot/src/share/vm/runtime/sweeper.hpp b/hotspot/src/share/vm/runtime/sweeper.hpp index bd351760769..83040c72c4b 100644 --- a/hotspot/src/share/vm/runtime/sweeper.hpp +++ b/hotspot/src/share/vm/runtime/sweeper.hpp @@ -53,22 +53,22 @@ // is full. class NMethodSweeper : public AllStatic { - static long _traversals; // Stack scan count, also sweep ID. - static nmethod* _current; // Current nmethod - static int _seen; // Nof. nmethod we have currently processed in current pass of CodeCache - static int _flushed_count; // Nof. nmethods flushed in current sweep - static int _zombified_count; // Nof. nmethods made zombie in current sweep - static int _marked_count; // Nof. nmethods marked for reclaim in current sweep - - static volatile int _invocations; // No. of invocations left until we are completed with this pass - static volatile int _sweep_started; // Flag to control conc sweeper - - //The following are reset in mark_active_nmethods and synchronized by the safepoint - static bool _request_mark_phase; // Indicates that a change has happend and we need another mark pahse, - // always checked and reset at a safepoint so memory will be in sync. - static int _locked_seen; // Number of locked nmethods encountered during the scan - static int _not_entrant_seen_on_stack; // Number of not entrant nmethod were are still on stack + static long _traversals; // Stack scan count, also sweep ID. + static long _time_counter; // Virtual time used to periodically invoke sweeper + static long _last_sweep; // Value of _time_counter when the last sweep happened + static nmethod* _current; // Current nmethod + static int _seen; // Nof. nmethod we have currently processed in current pass of CodeCache + static int _flushed_count; // Nof. nmethods flushed in current sweep + static int _zombified_count; // Nof. nmethods made zombie in current sweep + static int _marked_for_reclamation_count; // Nof. nmethods marked for reclaim in current sweep + static volatile int _sweep_fractions_left; // Nof. invocations left until we are completed with this pass + static volatile int _sweep_started; // Flag to control conc sweeper + static volatile bool _should_sweep; // Indicates if we should invoke the sweeper + static volatile int _bytes_changed; // Counts the total nmethod size if the nmethod changed from: + // 1) alive -> not_entrant + // 2) not_entrant -> zombie + // 3) zombie -> marked_for_reclamation // Stat counters static int _total_nof_methods_reclaimed; // Accumulated nof methods flushed static jlong _total_time_sweeping; // Accumulated time sweeping @@ -81,9 +81,6 @@ class NMethodSweeper : public AllStatic { static bool sweep_in_progress(); static void sweep_code_cache(); - static void request_nmethod_marking() { _request_mark_phase = true; } - static void reset_nmethod_marking() { _request_mark_phase = false; } - static bool need_marking_phase() { return _request_mark_phase; } static int _hotness_counter_reset_val; @@ -109,13 +106,8 @@ class NMethodSweeper : public AllStatic { static int sort_nmethods_by_hotness(nmethod** nm1, nmethod** nm2); static int hotness_counter_reset_val(); - - static void notify() { - // Request a new sweep of the code cache from the beginning. No - // need to synchronize the setting of this flag since it only - // changes to false at safepoint so we can never overwrite it with false. - request_nmethod_marking(); - } + static void report_state_change(nmethod* nm); + static void possibly_enable_sweeper(); }; #endif // SHARE_VM_RUNTIME_SWEEPER_HPP diff --git a/hotspot/src/share/vm/utilities/globalDefinitions.hpp b/hotspot/src/share/vm/utilities/globalDefinitions.hpp index 7806cdc0811..ecb5429c783 100644 --- a/hotspot/src/share/vm/utilities/globalDefinitions.hpp +++ b/hotspot/src/share/vm/utilities/globalDefinitions.hpp @@ -456,6 +456,13 @@ inline void* align_pointer_up(const void* addr, size_t size) { return (void*) align_size_up_((uintptr_t)addr, size); } +// Align down with a lower bound. If the aligning results in 0, return 'alignment'. + +inline size_t align_size_down_bounded(size_t size, size_t alignment) { + size_t aligned_size = align_size_down_(size, alignment); + return aligned_size > 0 ? aligned_size : alignment; +} + // Clamp an address to be within a specific page // 1. If addr is on the page it is returned as is // 2. If addr is above the page_address the start of the *next* page will be returned diff --git a/hotspot/test/compiler/intrinsics/mathexact/CompareTest.java b/hotspot/test/compiler/intrinsics/mathexact/CompareTest.java new file mode 100644 index 00000000000..f6785c07c69 --- /dev/null +++ b/hotspot/test/compiler/intrinsics/mathexact/CompareTest.java @@ -0,0 +1,61 @@ +/* + * 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 8026722 + * @summary Verify that the compare after addExact is a signed compare + * @compile CompareTest.java + * @run main CompareTest + * + */ + +public class CompareTest { + public static long store = 0; + public static long addValue = 1231; + + public static void main(String[] args) { + for (int i = 0; i < 20000; ++i) { + runTest(i, i); + runTest(i-1, i); + } + } + + public static long create(long value, int v) { + if ((value | v) == 0) { + return 0; + } + + // C2 turned this test into unsigned test when a control edge was set on the Cmp + if (value < -31557014167219200L || value > 31556889864403199L) { + throw new RuntimeException("error"); + } + + return value; + } + + public static void runTest(long value, int value2) { + long res = Math.addExact(value, addValue); + store = create(res, Math.floorMod(value2, 100000)); + } +} diff --git a/hotspot/test/compiler/intrinsics/mathexact/GVNTest.java b/hotspot/test/compiler/intrinsics/mathexact/GVNTest.java new file mode 100644 index 00000000000..23fba15d433 --- /dev/null +++ b/hotspot/test/compiler/intrinsics/mathexact/GVNTest.java @@ -0,0 +1,60 @@ +/* + * 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 8028207 + * @summary Verify that GVN doesn't mess up the two addExacts + * @compile GVNTest.java + * @run main GVNTest + * + */ + +public class GVNTest { + public static int result = 0; + public static int value = 93; + public static void main(String[] args) { + for (int i = 0; i < 50000; ++i) { + result = runTest(value + i); + result = runTest(value + i); + result = runTest(value + i); + result = runTest(value + i); + result = runTest(value + i); + } + } + + public static int runTest(int value) { + int v = value + value; + int sum = 0; + if (v < 4032) { + for (int i = 0; i < 1023; ++i) { + sum += Math.addExact(value, value); + } + } else { + for (int i = 0; i < 321; ++i) { + sum += Math.addExact(value, value); + } + } + return sum + v; + } +} diff --git a/hotspot/test/compiler/intrinsics/mathexact/SplitThruPhiTest.java b/hotspot/test/compiler/intrinsics/mathexact/SplitThruPhiTest.java new file mode 100644 index 00000000000..b3b0c0d7417 --- /dev/null +++ b/hotspot/test/compiler/intrinsics/mathexact/SplitThruPhiTest.java @@ -0,0 +1,50 @@ +/* + * 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 8028198 + * @summary Verify that split through phi does the right thing + * @compile SplitThruPhiTest.java + * @run main SplitThruPhiTest + * + */ + +public class SplitThruPhiTest { + public static volatile int value = 19; + public static int store = 0; + public static void main(String[] args) { + for (int i = 0; i < 150000; ++i) { + store = runTest(value); + } + } + + public static int runTest(int val) { + int result = Math.addExact(val, 1); + int total = 0; + for (int i = val; i < 200; i = Math.addExact(i, 1)) { + total += i; + } + return total; + } +} diff --git a/hotspot/test/compiler/intrinsics/stringequals/TestStringEqualsBadLength.java b/hotspot/test/compiler/intrinsics/stringequals/TestStringEqualsBadLength.java new file mode 100644 index 00000000000..0de5175d286 --- /dev/null +++ b/hotspot/test/compiler/intrinsics/stringequals/TestStringEqualsBadLength.java @@ -0,0 +1,82 @@ +/* + * 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 8027445 + * @summary String.equals() may be called with a length whose upper bits are not cleared + * @run main/othervm -XX:-UseOnStackReplacement -XX:-BackgroundCompilation TestStringEqualsBadLength + * + */ + +import java.util.Arrays; + +public class TestStringEqualsBadLength { + + int v1; + int v2; + + boolean m(String s1) { + int l = v2 - v1; // 0 - (-1) = 1. On 64 bit: 0xffffffff00000001 + char[] arr = new char[l]; + arr[0] = 'a'; + String s2 = new String(arr); + // The string length is not reloaded but the value computed is + // reused so pointer computation must not use + // 0xffffffff00000001 + return s2.equals(s1); + } + + // Same thing with String.compareTo() + int m2(String s1) { + int l = v2 - v1; + char[] arr = new char[l+1]; + arr[0] = 'a'; + arr[1] = 'b'; + String s2 = new String(arr); + return s2.compareTo(s1); + } + + // Same thing with equals() for arrays + boolean m3(char[] arr1) { + int l = v2 - v1; // 0 - (-1) = 1. On 64 bit: 0xffffffff00000001 + char[] arr2 = new char[l]; + arr2[0] = 'a'; + return Arrays.equals(arr2, arr1); + } + + static public void main(String[] args) { + TestStringEqualsBadLength tse = new TestStringEqualsBadLength(); + tse.v1 = -1; + tse.v2 = 0; + char[] arr = new char[1]; + arr[0] = 'a'; + for (int i = 0; i < 20000; i++) { + tse.m("a"); + tse.m2("ab"); + tse.m3(arr); + } + + System.out.println("TEST PASSED"); + } +} diff --git a/hotspot/test/compiler/profiling/TestUnexpectedProfilingMismatch.java b/hotspot/test/compiler/profiling/TestUnexpectedProfilingMismatch.java new file mode 100644 index 00000000000..b118027b5aa --- /dev/null +++ b/hotspot/test/compiler/profiling/TestUnexpectedProfilingMismatch.java @@ -0,0 +1,102 @@ +/* + * 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 8027631 + * @summary profiling of arguments at calls cannot rely on signature of callee for types + * @run main/othervm -XX:-BackgroundCompilation -XX:TieredStopAtLevel=3 -XX:TypeProfileLevel=111 -XX:Tier3InvocationThreshold=200 -XX:Tier0InvokeNotifyFreqLog=7 TestUnexpectedProfilingMismatch + * + */ + +import java.lang.invoke.*; + +public class TestUnexpectedProfilingMismatch { + + static class A { + } + + static class B { + } + + static void mA(A a) { + } + + static void mB(B b) { + } + + static final MethodHandle mhA; + static final MethodHandle mhB; + static { + MethodHandles.Lookup lookup = MethodHandles.lookup(); + MethodType mt = MethodType.methodType(void.class, A.class); + MethodHandle res = null; + try { + res = lookup.findStatic(TestUnexpectedProfilingMismatch.class, "mA", mt); + } catch(NoSuchMethodException ex) { + } catch(IllegalAccessException ex) { + } + mhA = res; + mt = MethodType.methodType(void.class, B.class); + try { + res = lookup.findStatic(TestUnexpectedProfilingMismatch.class, "mB", mt); + } catch(NoSuchMethodException ex) { + } catch(IllegalAccessException ex) { + } + mhB = res; + } + + void m1(A a, boolean doit) throws Throwable { + if (doit) { + mhA.invoke(a); + } + } + + void m2(B b) throws Throwable { + mhB.invoke(b); + } + + static public void main(String[] args) { + TestUnexpectedProfilingMismatch tih = new TestUnexpectedProfilingMismatch(); + A a = new A(); + B b = new B(); + try { + for (int i = 0; i < 256 - 1; i++) { + tih.m1(a, true); + } + // Will trigger the compilation but will also run once + // more interpreted with a non null MDO which it will + // update. Make it skip the body of the method. + tih.m1(a, false); + // Compile this one as well and do the profiling + for (int i = 0; i < 256; i++) { + tih.m2(b); + } + // Will run and see a conflict + tih.m1(a, true); + } catch(Throwable ex) { + ex.printStackTrace(); + } + System.out.println("TEST PASSED"); + } +} diff --git a/langtools/test/tools/javac/diags/examples/InterfaceOrArrayExpected.java b/hotspot/test/compiler/profiling/unloadingconflict/B.java similarity index 89% rename from langtools/test/tools/javac/diags/examples/InterfaceOrArrayExpected.java rename to hotspot/test/compiler/profiling/unloadingconflict/B.java index 4c57562958e..c37eb867648 100644 --- a/langtools/test/tools/javac/diags/examples/InterfaceOrArrayExpected.java +++ b/hotspot/test/compiler/profiling/unloadingconflict/B.java @@ -21,8 +21,5 @@ * questions. */ -// key: compiler.err.intf.or.array.expected.here - -import java.util.List; - -class InterfaceExpected { } +public class B { +} diff --git a/hotspot/test/compiler/profiling/unloadingconflict/TestProfileConflictClassUnloading.java b/hotspot/test/compiler/profiling/unloadingconflict/TestProfileConflictClassUnloading.java new file mode 100644 index 00000000000..c074e18a2a8 --- /dev/null +++ b/hotspot/test/compiler/profiling/unloadingconflict/TestProfileConflictClassUnloading.java @@ -0,0 +1,88 @@ +/* + * 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 8027572 + * @summary class unloading resets profile, method compiled after the profile is first set and before class loading sets unknown bit with not recorded class + * @build B + * @run main/othervm -XX:TypeProfileLevel=222 -XX:-BackgroundCompilation TestProfileConflictClassUnloading + * + */ + +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLClassLoader; +import java.nio.file.Paths; + +public class TestProfileConflictClassUnloading { + static class A { + } + + + static void m1(Object o) { + } + + static void m2(Object o) { + m1(o); + } + + static void m3(A a, boolean do_call) { + if (!do_call) { + return; + } + m2(a); + } + + public static ClassLoader newClassLoader() { + try { + return new URLClassLoader(new URL[] { + Paths.get(System.getProperty("test.classes",".")).toUri().toURL(), + }, null); + } catch (MalformedURLException e){ + throw new RuntimeException("Unexpected URL conversion failure", e); + } + } + + public static void main(String[] args) throws Exception { + ClassLoader loader = newClassLoader(); + Object o = loader.loadClass("B").newInstance(); + // collect conflicting profiles + for (int i = 0; i < 5000; i++) { + m2(o); + } + // prepare for conflict + A a = new A(); + for (int i = 0; i < 5000; i++) { + m3(a, false); + } + // unload class in profile + o = null; + loader = null; + System.gc(); + // record the conflict + m3(a, true); + // trigger another GC + System.gc(); + } +} diff --git a/hotspot/test/compiler/regalloc/C1ObjectSpillInLogicOp.java b/hotspot/test/compiler/regalloc/C1ObjectSpillInLogicOp.java new file mode 100644 index 00000000000..d6976bd3bdf --- /dev/null +++ b/hotspot/test/compiler/regalloc/C1ObjectSpillInLogicOp.java @@ -0,0 +1,45 @@ +/* + * 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 8027751 + * @summary C1 crashes generating G1 post-barrier in Unsafe.getAndSetObject() intrinsic because of the new value spill + * @run main/othervm -XX:+UseG1GC C1ObjectSpillInLogicOp + * + * G1 barriers use logical operators (xor) on T_OBJECT mixed with T_LONG or T_INT. + * The current implementation of logical operations on x86 in C1 doesn't allow for long operands to be on stack. + * There is a special code in the register allocator that forces long arguments in registers on x86. However T_OBJECT + * can be spilled just fine, and in that case the xor emission will fail. + */ + +import java.util.concurrent.atomic.*; +class C1ObjectSpillInLogicOp { + static public void main(String[] args) { + AtomicReferenceArray x = new AtomicReferenceArray(128); + Integer y = new Integer(0); + for (int i = 0; i < 50000; i++) { + x.getAndSet(i % x.length(), y); + } + } +} diff --git a/hotspot/test/compiler/uncommontrap/UncommonTrapStackBang.java b/hotspot/test/compiler/uncommontrap/UncommonTrapStackBang.java new file mode 100644 index 00000000000..164453b7b62 --- /dev/null +++ b/hotspot/test/compiler/uncommontrap/UncommonTrapStackBang.java @@ -0,0 +1,10908 @@ +/* + * 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 8026775 + * @summary Uncommon trap blob did not bang all the stack shadow pages + * + * @run main/othervm -server -XX:+IgnoreUnrecognizedVMOptions -XX:+TieredCompilation UncommonTrapStackBang + * @run main/othervm -server -XX:+IgnoreUnrecognizedVMOptions -XX:-TieredCompilation UncommonTrapStackBang + * + * + * Note: This test does not reproduce the problem with absolute + * certainty. Empirically the bug reproduces on Windows some 80+% of + * the time. Setting everything up to fail in 100% of the cases turns + * out to be tricky at best. + * + * + * The goal of this test is to set up the following stack: + * + * doIt() + * eatStack() + * ... + * eatStack() + * run() + * + * + * When doIt() gets executed it will hit an uncommon trap and expand + * into a huge interpreter frame. The doIt method then calls the + * compiled version of StringBuilder.() which does a single + * stack bang StackShadowPages down. + * + * The uncommon trap blob is supposed to prepare for the interpreter + * by pre-touching stack pages. The bug was that it didn't correctly + * pre-touch all the stack shadow pages, leaving a "hole" on the stack + * which raises an exception on Windows when the stack bang in + * StringBuilder is performed. + */ +public class UncommonTrapStackBang extends Thread { + class Foo { } + + public static void main(String[] args) throws Exception { + doWarmup(); + + // Fork off a new thread to increase odds of the stack being unmapped + UncommonTrapStackBang htsb = new UncommonTrapStackBang(); + htsb.run(); + htsb.join(); + } + + // Make sure: + // + // a) StringBuilder.()V is compiled + // b) doIt() is compiled with an uncommon trap in the unlikely path + public static void doWarmup() { + for (int i = 0; i < 100_000; i++) { + new StringBuilder(); + + doIt(false); + } + } + + public void run() { + eatStack(200); + } + + // Consume some stack to get down to some unused/unmapped pages, + // then call doIt and provoke the uncommon trap/deoptimization + private void eatStack(int n) { + if (n <= 0) { + doIt(true); + return; + } + + eatStack(n - 1); + } + + static public void doIt(boolean unlikely) { + int i0; + int i1; + int i2; + int i3; + int i4; + int i5; + int i6; + int i7; + int i8; + int i9; + int i10; + int i11; + int i12; + int i13; + int i14; + int i15; + int i16; + int i17; + int i18; + int i19; + int i20; + int i21; + int i22; + int i23; + int i24; + int i25; + int i26; + int i27; + int i28; + int i29; + int i30; + int i31; + int i32; + int i33; + int i34; + int i35; + int i36; + int i37; + int i38; + int i39; + int i40; + int i41; + int i42; + int i43; + int i44; + int i45; + int i46; + int i47; + int i48; + int i49; + int i50; + int i51; + int i52; + int i53; + int i54; + int i55; + int i56; + int i57; + int i58; + int i59; + int i60; + int i61; + int i62; + int i63; + int i64; + int i65; + int i66; + int i67; + int i68; + int i69; + int i70; + int i71; + int i72; + int i73; + int i74; + int i75; + int i76; + int i77; + int i78; + int i79; + int i80; + int i81; + int i82; + int i83; + int i84; + int i85; + int i86; + int i87; + int i88; + int i89; + int i90; + int i91; + int i92; + int i93; + int i94; + int i95; + int i96; + int i97; + int i98; + int i99; + int i100; + int i101; + int i102; + int i103; + int i104; + int i105; + int i106; + int i107; + int i108; + int i109; + int i110; + int i111; + int i112; + int i113; + int i114; + int i115; + int i116; + int i117; + int i118; + int i119; + int i120; + int i121; + int i122; + int i123; + int i124; + int i125; + int i126; + int i127; + int i128; + int i129; + int i130; + int i131; + int i132; + int i133; + int i134; + int i135; + int i136; + int i137; + int i138; + int i139; + int i140; + int i141; + int i142; + int i143; + int i144; + int i145; + int i146; + int i147; + int i148; + int i149; + int i150; + int i151; + int i152; + int i153; + int i154; + int i155; + int i156; + int i157; + int i158; + int i159; + int i160; + int i161; + int i162; + int i163; + int i164; + int i165; + int i166; + int i167; + int i168; + int i169; + int i170; + int i171; + int i172; + int i173; + int i174; + int i175; + int i176; + int i177; + int i178; + int i179; + int i180; + int i181; + int i182; + int i183; + int i184; + int i185; + int i186; + int i187; + int i188; + int i189; + int i190; + int i191; + int i192; + int i193; + int i194; + int i195; + int i196; + int i197; + int i198; + int i199; + int i200; + int i201; + int i202; + int i203; + int i204; + int i205; + int i206; + int i207; + int i208; + int i209; + int i210; + int i211; + int i212; + int i213; + int i214; + int i215; + int i216; + int i217; + int i218; + int i219; + int i220; + int i221; + int i222; + int i223; + int i224; + int i225; + int i226; + int i227; + int i228; + int i229; + int i230; + int i231; + int i232; + int i233; + int i234; + int i235; + int i236; + int i237; + int i238; + int i239; + int i240; + int i241; + int i242; + int i243; + int i244; + int i245; + int i246; + int i247; + int i248; + int i249; + int i250; + int i251; + int i252; + int i253; + int i254; + int i255; + int i256; + int i257; + int i258; + int i259; + int i260; + int i261; + int i262; + int i263; + int i264; + int i265; + int i266; + int i267; + int i268; + int i269; + int i270; + int i271; + int i272; + int i273; + int i274; + int i275; + int i276; + int i277; + int i278; + int i279; + int i280; + int i281; + int i282; + int i283; + int i284; + int i285; + int i286; + int i287; + int i288; + int i289; + int i290; + int i291; + int i292; + int i293; + int i294; + int i295; + int i296; + int i297; + int i298; + int i299; + int i300; + int i301; + int i302; + int i303; + int i304; + int i305; + int i306; + int i307; + int i308; + int i309; + int i310; + int i311; + int i312; + int i313; + int i314; + int i315; + int i316; + int i317; + int i318; + int i319; + int i320; + int i321; + int i322; + int i323; + int i324; + int i325; + int i326; + int i327; + int i328; + int i329; + int i330; + int i331; + int i332; + int i333; + int i334; + int i335; + int i336; + int i337; + int i338; + int i339; + int i340; + int i341; + int i342; + int i343; + int i344; + int i345; + int i346; + int i347; + int i348; + int i349; + int i350; + int i351; + int i352; + int i353; + int i354; + int i355; + int i356; + int i357; + int i358; + int i359; + int i360; + int i361; + int i362; + int i363; + int i364; + int i365; + int i366; + int i367; + int i368; + int i369; + int i370; + int i371; + int i372; + int i373; + int i374; + int i375; + int i376; + int i377; + int i378; + int i379; + int i380; + int i381; + int i382; + int i383; + int i384; + int i385; + int i386; + int i387; + int i388; + int i389; + int i390; + int i391; + int i392; + int i393; + int i394; + int i395; + int i396; + int i397; + int i398; + int i399; + int i400; + int i401; + int i402; + int i403; + int i404; + int i405; + int i406; + int i407; + int i408; + int i409; + int i410; + int i411; + int i412; + int i413; + int i414; + int i415; + int i416; + int i417; + int i418; + int i419; + int i420; + int i421; + int i422; + int i423; + int i424; + int i425; + int i426; + int i427; + int i428; + int i429; + int i430; + int i431; + int i432; + int i433; + int i434; + int i435; + int i436; + int i437; + int i438; + int i439; + int i440; + int i441; + int i442; + int i443; + int i444; + int i445; + int i446; + int i447; + int i448; + int i449; + int i450; + int i451; + int i452; + int i453; + int i454; + int i455; + int i456; + int i457; + int i458; + int i459; + int i460; + int i461; + int i462; + int i463; + int i464; + int i465; + int i466; + int i467; + int i468; + int i469; + int i470; + int i471; + int i472; + int i473; + int i474; + int i475; + int i476; + int i477; + int i478; + int i479; + int i480; + int i481; + int i482; + int i483; + int i484; + int i485; + int i486; + int i487; + int i488; + int i489; + int i490; + int i491; + int i492; + int i493; + int i494; + int i495; + int i496; + int i497; + int i498; + int i499; + int i500; + int i501; + int i502; + int i503; + int i504; + int i505; + int i506; + int i507; + int i508; + int i509; + int i510; + int i511; + int i512; + int i513; + int i514; + int i515; + int i516; + int i517; + int i518; + int i519; + int i520; + int i521; + int i522; + int i523; + int i524; + int i525; + int i526; + int i527; + int i528; + int i529; + int i530; + int i531; + int i532; + int i533; + int i534; + int i535; + int i536; + int i537; + int i538; + int i539; + int i540; + int i541; + int i542; + int i543; + int i544; + int i545; + int i546; + int i547; + int i548; + int i549; + int i550; + int i551; + int i552; + int i553; + int i554; + int i555; + int i556; + int i557; + int i558; + int i559; + int i560; + int i561; + int i562; + int i563; + int i564; + int i565; + int i566; + int i567; + int i568; + int i569; + int i570; + int i571; + int i572; + int i573; + int i574; + int i575; + int i576; + int i577; + int i578; + int i579; + int i580; + int i581; + int i582; + int i583; + int i584; + int i585; + int i586; + int i587; + int i588; + int i589; + int i590; + int i591; + int i592; + int i593; + int i594; + int i595; + int i596; + int i597; + int i598; + int i599; + int i600; + int i601; + int i602; + int i603; + int i604; + int i605; + int i606; + int i607; + int i608; + int i609; + int i610; + int i611; + int i612; + int i613; + int i614; + int i615; + int i616; + int i617; + int i618; + int i619; + int i620; + int i621; + int i622; + int i623; + int i624; + int i625; + int i626; + int i627; + int i628; + int i629; + int i630; + int i631; + int i632; + int i633; + int i634; + int i635; + int i636; + int i637; + int i638; + int i639; + int i640; + int i641; + int i642; + int i643; + int i644; + int i645; + int i646; + int i647; + int i648; + int i649; + int i650; + int i651; + int i652; + int i653; + int i654; + int i655; + int i656; + int i657; + int i658; + int i659; + int i660; + int i661; + int i662; + int i663; + int i664; + int i665; + int i666; + int i667; + int i668; + int i669; + int i670; + int i671; + int i672; + int i673; + int i674; + int i675; + int i676; + int i677; + int i678; + int i679; + int i680; + int i681; + int i682; + int i683; + int i684; + int i685; + int i686; + int i687; + int i688; + int i689; + int i690; + int i691; + int i692; + int i693; + int i694; + int i695; + int i696; + int i697; + int i698; + int i699; + int i700; + int i701; + int i702; + int i703; + int i704; + int i705; + int i706; + int i707; + int i708; + int i709; + int i710; + int i711; + int i712; + int i713; + int i714; + int i715; + int i716; + int i717; + int i718; + int i719; + int i720; + int i721; + int i722; + int i723; + int i724; + int i725; + int i726; + int i727; + int i728; + int i729; + int i730; + int i731; + int i732; + int i733; + int i734; + int i735; + int i736; + int i737; + int i738; + int i739; + int i740; + int i741; + int i742; + int i743; + int i744; + int i745; + int i746; + int i747; + int i748; + int i749; + int i750; + int i751; + int i752; + int i753; + int i754; + int i755; + int i756; + int i757; + int i758; + int i759; + int i760; + int i761; + int i762; + int i763; + int i764; + int i765; + int i766; + int i767; + int i768; + int i769; + int i770; + int i771; + int i772; + int i773; + int i774; + int i775; + int i776; + int i777; + int i778; + int i779; + int i780; + int i781; + int i782; + int i783; + int i784; + int i785; + int i786; + int i787; + int i788; + int i789; + int i790; + int i791; + int i792; + int i793; + int i794; + int i795; + int i796; + int i797; + int i798; + int i799; + int i800; + int i801; + int i802; + int i803; + int i804; + int i805; + int i806; + int i807; + int i808; + int i809; + int i810; + int i811; + int i812; + int i813; + int i814; + int i815; + int i816; + int i817; + int i818; + int i819; + int i820; + int i821; + int i822; + int i823; + int i824; + int i825; + int i826; + int i827; + int i828; + int i829; + int i830; + int i831; + int i832; + int i833; + int i834; + int i835; + int i836; + int i837; + int i838; + int i839; + int i840; + int i841; + int i842; + int i843; + int i844; + int i845; + int i846; + int i847; + int i848; + int i849; + int i850; + int i851; + int i852; + int i853; + int i854; + int i855; + int i856; + int i857; + int i858; + int i859; + int i860; + int i861; + int i862; + int i863; + int i864; + int i865; + int i866; + int i867; + int i868; + int i869; + int i870; + int i871; + int i872; + int i873; + int i874; + int i875; + int i876; + int i877; + int i878; + int i879; + int i880; + int i881; + int i882; + int i883; + int i884; + int i885; + int i886; + int i887; + int i888; + int i889; + int i890; + int i891; + int i892; + int i893; + int i894; + int i895; + int i896; + int i897; + int i898; + int i899; + int i900; + int i901; + int i902; + int i903; + int i904; + int i905; + int i906; + int i907; + int i908; + int i909; + int i910; + int i911; + int i912; + int i913; + int i914; + int i915; + int i916; + int i917; + int i918; + int i919; + int i920; + int i921; + int i922; + int i923; + int i924; + int i925; + int i926; + int i927; + int i928; + int i929; + int i930; + int i931; + int i932; + int i933; + int i934; + int i935; + int i936; + int i937; + int i938; + int i939; + int i940; + int i941; + int i942; + int i943; + int i944; + int i945; + int i946; + int i947; + int i948; + int i949; + int i950; + int i951; + int i952; + int i953; + int i954; + int i955; + int i956; + int i957; + int i958; + int i959; + int i960; + int i961; + int i962; + int i963; + int i964; + int i965; + int i966; + int i967; + int i968; + int i969; + int i970; + int i971; + int i972; + int i973; + int i974; + int i975; + int i976; + int i977; + int i978; + int i979; + int i980; + int i981; + int i982; + int i983; + int i984; + int i985; + int i986; + int i987; + int i988; + int i989; + int i990; + int i991; + int i992; + int i993; + int i994; + int i995; + int i996; + int i997; + int i998; + int i999; + int i1000; + int i1001; + int i1002; + int i1003; + int i1004; + int i1005; + int i1006; + int i1007; + int i1008; + int i1009; + int i1010; + int i1011; + int i1012; + int i1013; + int i1014; + int i1015; + int i1016; + int i1017; + int i1018; + int i1019; + int i1020; + int i1021; + int i1022; + int i1023; + int i1024; + int i1025; + int i1026; + int i1027; + int i1028; + int i1029; + int i1030; + int i1031; + int i1032; + int i1033; + int i1034; + int i1035; + int i1036; + int i1037; + int i1038; + int i1039; + int i1040; + int i1041; + int i1042; + int i1043; + int i1044; + int i1045; + int i1046; + int i1047; + int i1048; + int i1049; + int i1050; + int i1051; + int i1052; + int i1053; + int i1054; + int i1055; + int i1056; + int i1057; + int i1058; + int i1059; + int i1060; + int i1061; + int i1062; + int i1063; + int i1064; + int i1065; + int i1066; + int i1067; + int i1068; + int i1069; + int i1070; + int i1071; + int i1072; + int i1073; + int i1074; + int i1075; + int i1076; + int i1077; + int i1078; + int i1079; + int i1080; + int i1081; + int i1082; + int i1083; + int i1084; + int i1085; + int i1086; + int i1087; + int i1088; + int i1089; + int i1090; + int i1091; + int i1092; + int i1093; + int i1094; + int i1095; + int i1096; + int i1097; + int i1098; + int i1099; + int i1100; + int i1101; + int i1102; + int i1103; + int i1104; + int i1105; + int i1106; + int i1107; + int i1108; + int i1109; + int i1110; + int i1111; + int i1112; + int i1113; + int i1114; + int i1115; + int i1116; + int i1117; + int i1118; + int i1119; + int i1120; + int i1121; + int i1122; + int i1123; + int i1124; + int i1125; + int i1126; + int i1127; + int i1128; + int i1129; + int i1130; + int i1131; + int i1132; + int i1133; + int i1134; + int i1135; + int i1136; + int i1137; + int i1138; + int i1139; + int i1140; + int i1141; + int i1142; + int i1143; + int i1144; + int i1145; + int i1146; + int i1147; + int i1148; + int i1149; + int i1150; + int i1151; + int i1152; + int i1153; + int i1154; + int i1155; + int i1156; + int i1157; + int i1158; + int i1159; + int i1160; + int i1161; + int i1162; + int i1163; + int i1164; + int i1165; + int i1166; + int i1167; + int i1168; + int i1169; + int i1170; + int i1171; + int i1172; + int i1173; + int i1174; + int i1175; + int i1176; + int i1177; + int i1178; + int i1179; + int i1180; + int i1181; + int i1182; + int i1183; + int i1184; + int i1185; + int i1186; + int i1187; + int i1188; + int i1189; + int i1190; + int i1191; + int i1192; + int i1193; + int i1194; + int i1195; + int i1196; + int i1197; + int i1198; + int i1199; + int i1200; + int i1201; + int i1202; + int i1203; + int i1204; + int i1205; + int i1206; + int i1207; + int i1208; + int i1209; + int i1210; + int i1211; + int i1212; + int i1213; + int i1214; + int i1215; + int i1216; + int i1217; + int i1218; + int i1219; + int i1220; + int i1221; + int i1222; + int i1223; + int i1224; + int i1225; + int i1226; + int i1227; + int i1228; + int i1229; + int i1230; + int i1231; + int i1232; + int i1233; + int i1234; + int i1235; + int i1236; + int i1237; + int i1238; + int i1239; + int i1240; + int i1241; + int i1242; + int i1243; + int i1244; + int i1245; + int i1246; + int i1247; + int i1248; + int i1249; + int i1250; + int i1251; + int i1252; + int i1253; + int i1254; + int i1255; + int i1256; + int i1257; + int i1258; + int i1259; + int i1260; + int i1261; + int i1262; + int i1263; + int i1264; + int i1265; + int i1266; + int i1267; + int i1268; + int i1269; + int i1270; + int i1271; + int i1272; + int i1273; + int i1274; + int i1275; + int i1276; + int i1277; + int i1278; + int i1279; + int i1280; + int i1281; + int i1282; + int i1283; + int i1284; + int i1285; + int i1286; + int i1287; + int i1288; + int i1289; + int i1290; + int i1291; + int i1292; + int i1293; + int i1294; + int i1295; + int i1296; + int i1297; + int i1298; + int i1299; + int i1300; + int i1301; + int i1302; + int i1303; + int i1304; + int i1305; + int i1306; + int i1307; + int i1308; + int i1309; + int i1310; + int i1311; + int i1312; + int i1313; + int i1314; + int i1315; + int i1316; + int i1317; + int i1318; + int i1319; + int i1320; + int i1321; + int i1322; + int i1323; + int i1324; + int i1325; + int i1326; + int i1327; + int i1328; + int i1329; + int i1330; + int i1331; + int i1332; + int i1333; + int i1334; + int i1335; + int i1336; + int i1337; + int i1338; + int i1339; + int i1340; + int i1341; + int i1342; + int i1343; + int i1344; + int i1345; + int i1346; + int i1347; + int i1348; + int i1349; + int i1350; + int i1351; + int i1352; + int i1353; + int i1354; + int i1355; + int i1356; + int i1357; + int i1358; + int i1359; + int i1360; + int i1361; + int i1362; + int i1363; + int i1364; + int i1365; + int i1366; + int i1367; + int i1368; + int i1369; + int i1370; + int i1371; + int i1372; + int i1373; + int i1374; + int i1375; + int i1376; + int i1377; + int i1378; + int i1379; + int i1380; + int i1381; + int i1382; + int i1383; + int i1384; + int i1385; + int i1386; + int i1387; + int i1388; + int i1389; + int i1390; + int i1391; + int i1392; + int i1393; + int i1394; + int i1395; + int i1396; + int i1397; + int i1398; + int i1399; + int i1400; + int i1401; + int i1402; + int i1403; + int i1404; + int i1405; + int i1406; + int i1407; + int i1408; + int i1409; + int i1410; + int i1411; + int i1412; + int i1413; + int i1414; + int i1415; + int i1416; + int i1417; + int i1418; + int i1419; + int i1420; + int i1421; + int i1422; + int i1423; + int i1424; + int i1425; + int i1426; + int i1427; + int i1428; + int i1429; + int i1430; + int i1431; + int i1432; + int i1433; + int i1434; + int i1435; + int i1436; + int i1437; + int i1438; + int i1439; + int i1440; + int i1441; + int i1442; + int i1443; + int i1444; + int i1445; + int i1446; + int i1447; + int i1448; + int i1449; + int i1450; + int i1451; + int i1452; + int i1453; + int i1454; + int i1455; + int i1456; + int i1457; + int i1458; + int i1459; + int i1460; + int i1461; + int i1462; + int i1463; + int i1464; + int i1465; + int i1466; + int i1467; + int i1468; + int i1469; + int i1470; + int i1471; + int i1472; + int i1473; + int i1474; + int i1475; + int i1476; + int i1477; + int i1478; + int i1479; + int i1480; + int i1481; + int i1482; + int i1483; + int i1484; + int i1485; + int i1486; + int i1487; + int i1488; + int i1489; + int i1490; + int i1491; + int i1492; + int i1493; + int i1494; + int i1495; + int i1496; + int i1497; + int i1498; + int i1499; + int i1500; + int i1501; + int i1502; + int i1503; + int i1504; + int i1505; + int i1506; + int i1507; + int i1508; + int i1509; + int i1510; + int i1511; + int i1512; + int i1513; + int i1514; + int i1515; + int i1516; + int i1517; + int i1518; + int i1519; + int i1520; + int i1521; + int i1522; + int i1523; + int i1524; + int i1525; + int i1526; + int i1527; + int i1528; + int i1529; + int i1530; + int i1531; + int i1532; + int i1533; + int i1534; + int i1535; + int i1536; + int i1537; + int i1538; + int i1539; + int i1540; + int i1541; + int i1542; + int i1543; + int i1544; + int i1545; + int i1546; + int i1547; + int i1548; + int i1549; + int i1550; + int i1551; + int i1552; + int i1553; + int i1554; + int i1555; + int i1556; + int i1557; + int i1558; + int i1559; + int i1560; + int i1561; + int i1562; + int i1563; + int i1564; + int i1565; + int i1566; + int i1567; + int i1568; + int i1569; + int i1570; + int i1571; + int i1572; + int i1573; + int i1574; + int i1575; + int i1576; + int i1577; + int i1578; + int i1579; + int i1580; + int i1581; + int i1582; + int i1583; + int i1584; + int i1585; + int i1586; + int i1587; + int i1588; + int i1589; + int i1590; + int i1591; + int i1592; + int i1593; + int i1594; + int i1595; + int i1596; + int i1597; + int i1598; + int i1599; + int i1600; + int i1601; + int i1602; + int i1603; + int i1604; + int i1605; + int i1606; + int i1607; + int i1608; + int i1609; + int i1610; + int i1611; + int i1612; + int i1613; + int i1614; + int i1615; + int i1616; + int i1617; + int i1618; + int i1619; + int i1620; + int i1621; + int i1622; + int i1623; + int i1624; + int i1625; + int i1626; + int i1627; + int i1628; + int i1629; + int i1630; + int i1631; + int i1632; + int i1633; + int i1634; + int i1635; + int i1636; + int i1637; + int i1638; + int i1639; + int i1640; + int i1641; + int i1642; + int i1643; + int i1644; + int i1645; + int i1646; + int i1647; + int i1648; + int i1649; + int i1650; + int i1651; + int i1652; + int i1653; + int i1654; + int i1655; + int i1656; + int i1657; + int i1658; + int i1659; + int i1660; + int i1661; + int i1662; + int i1663; + int i1664; + int i1665; + int i1666; + int i1667; + int i1668; + int i1669; + int i1670; + int i1671; + int i1672; + int i1673; + int i1674; + int i1675; + int i1676; + int i1677; + int i1678; + int i1679; + int i1680; + int i1681; + int i1682; + int i1683; + int i1684; + int i1685; + int i1686; + int i1687; + int i1688; + int i1689; + int i1690; + int i1691; + int i1692; + int i1693; + int i1694; + int i1695; + int i1696; + int i1697; + int i1698; + int i1699; + int i1700; + int i1701; + int i1702; + int i1703; + int i1704; + int i1705; + int i1706; + int i1707; + int i1708; + int i1709; + int i1710; + int i1711; + int i1712; + int i1713; + int i1714; + int i1715; + int i1716; + int i1717; + int i1718; + int i1719; + int i1720; + int i1721; + int i1722; + int i1723; + int i1724; + int i1725; + int i1726; + int i1727; + int i1728; + int i1729; + int i1730; + int i1731; + int i1732; + int i1733; + int i1734; + int i1735; + int i1736; + int i1737; + int i1738; + int i1739; + int i1740; + int i1741; + int i1742; + int i1743; + int i1744; + int i1745; + int i1746; + int i1747; + int i1748; + int i1749; + int i1750; + int i1751; + int i1752; + int i1753; + int i1754; + int i1755; + int i1756; + int i1757; + int i1758; + int i1759; + int i1760; + int i1761; + int i1762; + int i1763; + int i1764; + int i1765; + int i1766; + int i1767; + int i1768; + int i1769; + int i1770; + int i1771; + int i1772; + int i1773; + int i1774; + int i1775; + int i1776; + int i1777; + int i1778; + int i1779; + int i1780; + int i1781; + int i1782; + int i1783; + int i1784; + int i1785; + int i1786; + int i1787; + int i1788; + int i1789; + int i1790; + int i1791; + int i1792; + int i1793; + int i1794; + int i1795; + int i1796; + int i1797; + int i1798; + int i1799; + int i1800; + int i1801; + int i1802; + int i1803; + int i1804; + int i1805; + int i1806; + int i1807; + int i1808; + int i1809; + int i1810; + int i1811; + int i1812; + int i1813; + int i1814; + int i1815; + int i1816; + int i1817; + int i1818; + int i1819; + int i1820; + int i1821; + int i1822; + int i1823; + int i1824; + int i1825; + int i1826; + int i1827; + int i1828; + int i1829; + int i1830; + int i1831; + int i1832; + int i1833; + int i1834; + int i1835; + int i1836; + int i1837; + int i1838; + int i1839; + int i1840; + int i1841; + int i1842; + int i1843; + int i1844; + int i1845; + int i1846; + int i1847; + int i1848; + int i1849; + int i1850; + int i1851; + int i1852; + int i1853; + int i1854; + int i1855; + int i1856; + int i1857; + int i1858; + int i1859; + int i1860; + int i1861; + int i1862; + int i1863; + int i1864; + int i1865; + int i1866; + int i1867; + int i1868; + int i1869; + int i1870; + int i1871; + int i1872; + int i1873; + int i1874; + int i1875; + int i1876; + int i1877; + int i1878; + int i1879; + int i1880; + int i1881; + int i1882; + int i1883; + int i1884; + int i1885; + int i1886; + int i1887; + int i1888; + int i1889; + int i1890; + int i1891; + int i1892; + int i1893; + int i1894; + int i1895; + int i1896; + int i1897; + int i1898; + int i1899; + int i1900; + int i1901; + int i1902; + int i1903; + int i1904; + int i1905; + int i1906; + int i1907; + int i1908; + int i1909; + int i1910; + int i1911; + int i1912; + int i1913; + int i1914; + int i1915; + int i1916; + int i1917; + int i1918; + int i1919; + int i1920; + int i1921; + int i1922; + int i1923; + int i1924; + int i1925; + int i1926; + int i1927; + int i1928; + int i1929; + int i1930; + int i1931; + int i1932; + int i1933; + int i1934; + int i1935; + int i1936; + int i1937; + int i1938; + int i1939; + int i1940; + int i1941; + int i1942; + int i1943; + int i1944; + int i1945; + int i1946; + int i1947; + int i1948; + int i1949; + int i1950; + int i1951; + int i1952; + int i1953; + int i1954; + int i1955; + int i1956; + int i1957; + int i1958; + int i1959; + int i1960; + int i1961; + int i1962; + int i1963; + int i1964; + int i1965; + int i1966; + int i1967; + int i1968; + int i1969; + int i1970; + int i1971; + int i1972; + int i1973; + int i1974; + int i1975; + int i1976; + int i1977; + int i1978; + int i1979; + int i1980; + int i1981; + int i1982; + int i1983; + int i1984; + int i1985; + int i1986; + int i1987; + int i1988; + int i1989; + int i1990; + int i1991; + int i1992; + int i1993; + int i1994; + int i1995; + int i1996; + int i1997; + int i1998; + int i1999; + int i2000; + int i2001; + int i2002; + int i2003; + int i2004; + int i2005; + int i2006; + int i2007; + int i2008; + int i2009; + int i2010; + int i2011; + int i2012; + int i2013; + int i2014; + int i2015; + int i2016; + int i2017; + int i2018; + int i2019; + int i2020; + int i2021; + int i2022; + int i2023; + int i2024; + int i2025; + int i2026; + int i2027; + int i2028; + int i2029; + int i2030; + int i2031; + int i2032; + int i2033; + int i2034; + int i2035; + int i2036; + int i2037; + int i2038; + int i2039; + int i2040; + int i2041; + int i2042; + int i2043; + int i2044; + int i2045; + int i2046; + int i2047; + int i2048; + int i2049; + int i2050; + int i2051; + int i2052; + int i2053; + int i2054; + int i2055; + int i2056; + int i2057; + int i2058; + int i2059; + int i2060; + int i2061; + int i2062; + int i2063; + int i2064; + int i2065; + int i2066; + int i2067; + int i2068; + int i2069; + int i2070; + int i2071; + int i2072; + int i2073; + int i2074; + int i2075; + int i2076; + int i2077; + int i2078; + int i2079; + int i2080; + int i2081; + int i2082; + int i2083; + int i2084; + int i2085; + int i2086; + int i2087; + int i2088; + int i2089; + int i2090; + int i2091; + int i2092; + int i2093; + int i2094; + int i2095; + int i2096; + int i2097; + int i2098; + int i2099; + int i2100; + int i2101; + int i2102; + int i2103; + int i2104; + int i2105; + int i2106; + int i2107; + int i2108; + int i2109; + int i2110; + int i2111; + int i2112; + int i2113; + int i2114; + int i2115; + int i2116; + int i2117; + int i2118; + int i2119; + int i2120; + int i2121; + int i2122; + int i2123; + int i2124; + int i2125; + int i2126; + int i2127; + int i2128; + int i2129; + int i2130; + int i2131; + int i2132; + int i2133; + int i2134; + int i2135; + int i2136; + int i2137; + int i2138; + int i2139; + int i2140; + int i2141; + int i2142; + int i2143; + int i2144; + int i2145; + int i2146; + int i2147; + int i2148; + int i2149; + int i2150; + int i2151; + int i2152; + int i2153; + int i2154; + int i2155; + int i2156; + int i2157; + int i2158; + int i2159; + int i2160; + int i2161; + int i2162; + int i2163; + int i2164; + int i2165; + int i2166; + int i2167; + int i2168; + int i2169; + int i2170; + int i2171; + int i2172; + int i2173; + int i2174; + int i2175; + int i2176; + int i2177; + int i2178; + int i2179; + int i2180; + int i2181; + int i2182; + int i2183; + int i2184; + int i2185; + int i2186; + int i2187; + int i2188; + int i2189; + int i2190; + int i2191; + int i2192; + int i2193; + int i2194; + int i2195; + int i2196; + int i2197; + int i2198; + int i2199; + int i2200; + int i2201; + int i2202; + int i2203; + int i2204; + int i2205; + int i2206; + int i2207; + int i2208; + int i2209; + int i2210; + int i2211; + int i2212; + int i2213; + int i2214; + int i2215; + int i2216; + int i2217; + int i2218; + int i2219; + int i2220; + int i2221; + int i2222; + int i2223; + int i2224; + int i2225; + int i2226; + int i2227; + int i2228; + int i2229; + int i2230; + int i2231; + int i2232; + int i2233; + int i2234; + int i2235; + int i2236; + int i2237; + int i2238; + int i2239; + int i2240; + int i2241; + int i2242; + int i2243; + int i2244; + int i2245; + int i2246; + int i2247; + int i2248; + int i2249; + int i2250; + int i2251; + int i2252; + int i2253; + int i2254; + int i2255; + int i2256; + int i2257; + int i2258; + int i2259; + int i2260; + int i2261; + int i2262; + int i2263; + int i2264; + int i2265; + int i2266; + int i2267; + int i2268; + int i2269; + int i2270; + int i2271; + int i2272; + int i2273; + int i2274; + int i2275; + int i2276; + int i2277; + int i2278; + int i2279; + int i2280; + int i2281; + int i2282; + int i2283; + int i2284; + int i2285; + int i2286; + int i2287; + int i2288; + int i2289; + int i2290; + int i2291; + int i2292; + int i2293; + int i2294; + int i2295; + int i2296; + int i2297; + int i2298; + int i2299; + int i2300; + int i2301; + int i2302; + int i2303; + int i2304; + int i2305; + int i2306; + int i2307; + int i2308; + int i2309; + int i2310; + int i2311; + int i2312; + int i2313; + int i2314; + int i2315; + int i2316; + int i2317; + int i2318; + int i2319; + int i2320; + int i2321; + int i2322; + int i2323; + int i2324; + int i2325; + int i2326; + int i2327; + int i2328; + int i2329; + int i2330; + int i2331; + int i2332; + int i2333; + int i2334; + int i2335; + int i2336; + int i2337; + int i2338; + int i2339; + int i2340; + int i2341; + int i2342; + int i2343; + int i2344; + int i2345; + int i2346; + int i2347; + int i2348; + int i2349; + int i2350; + int i2351; + int i2352; + int i2353; + int i2354; + int i2355; + int i2356; + int i2357; + int i2358; + int i2359; + int i2360; + int i2361; + int i2362; + int i2363; + int i2364; + int i2365; + int i2366; + int i2367; + int i2368; + int i2369; + int i2370; + int i2371; + int i2372; + int i2373; + int i2374; + int i2375; + int i2376; + int i2377; + int i2378; + int i2379; + int i2380; + int i2381; + int i2382; + int i2383; + int i2384; + int i2385; + int i2386; + int i2387; + int i2388; + int i2389; + int i2390; + int i2391; + int i2392; + int i2393; + int i2394; + int i2395; + int i2396; + int i2397; + int i2398; + int i2399; + int i2400; + int i2401; + int i2402; + int i2403; + int i2404; + int i2405; + int i2406; + int i2407; + int i2408; + int i2409; + int i2410; + int i2411; + int i2412; + int i2413; + int i2414; + int i2415; + int i2416; + int i2417; + int i2418; + int i2419; + int i2420; + int i2421; + int i2422; + int i2423; + int i2424; + int i2425; + int i2426; + int i2427; + int i2428; + int i2429; + int i2430; + int i2431; + int i2432; + int i2433; + int i2434; + int i2435; + int i2436; + int i2437; + int i2438; + int i2439; + int i2440; + int i2441; + int i2442; + int i2443; + int i2444; + int i2445; + int i2446; + int i2447; + int i2448; + int i2449; + int i2450; + int i2451; + int i2452; + int i2453; + int i2454; + int i2455; + int i2456; + int i2457; + int i2458; + int i2459; + int i2460; + int i2461; + int i2462; + int i2463; + int i2464; + int i2465; + int i2466; + int i2467; + int i2468; + int i2469; + int i2470; + int i2471; + int i2472; + int i2473; + int i2474; + int i2475; + int i2476; + int i2477; + int i2478; + int i2479; + int i2480; + int i2481; + int i2482; + int i2483; + int i2484; + int i2485; + int i2486; + int i2487; + int i2488; + int i2489; + int i2490; + int i2491; + int i2492; + int i2493; + int i2494; + int i2495; + int i2496; + int i2497; + int i2498; + int i2499; + int i2500; + int i2501; + int i2502; + int i2503; + int i2504; + int i2505; + int i2506; + int i2507; + int i2508; + int i2509; + int i2510; + int i2511; + int i2512; + int i2513; + int i2514; + int i2515; + int i2516; + int i2517; + int i2518; + int i2519; + int i2520; + int i2521; + int i2522; + int i2523; + int i2524; + int i2525; + int i2526; + int i2527; + int i2528; + int i2529; + int i2530; + int i2531; + int i2532; + int i2533; + int i2534; + int i2535; + int i2536; + int i2537; + int i2538; + int i2539; + int i2540; + int i2541; + int i2542; + int i2543; + int i2544; + int i2545; + int i2546; + int i2547; + int i2548; + int i2549; + int i2550; + int i2551; + int i2552; + int i2553; + int i2554; + int i2555; + int i2556; + int i2557; + int i2558; + int i2559; + int i2560; + int i2561; + int i2562; + int i2563; + int i2564; + int i2565; + int i2566; + int i2567; + int i2568; + int i2569; + int i2570; + int i2571; + int i2572; + int i2573; + int i2574; + int i2575; + int i2576; + int i2577; + int i2578; + int i2579; + int i2580; + int i2581; + int i2582; + int i2583; + int i2584; + int i2585; + int i2586; + int i2587; + int i2588; + int i2589; + int i2590; + int i2591; + int i2592; + int i2593; + int i2594; + int i2595; + int i2596; + int i2597; + int i2598; + int i2599; + int i2600; + int i2601; + int i2602; + int i2603; + int i2604; + int i2605; + int i2606; + int i2607; + int i2608; + int i2609; + int i2610; + int i2611; + int i2612; + int i2613; + int i2614; + int i2615; + int i2616; + int i2617; + int i2618; + int i2619; + int i2620; + int i2621; + int i2622; + int i2623; + int i2624; + int i2625; + int i2626; + int i2627; + int i2628; + int i2629; + int i2630; + int i2631; + int i2632; + int i2633; + int i2634; + int i2635; + int i2636; + int i2637; + int i2638; + int i2639; + int i2640; + int i2641; + int i2642; + int i2643; + int i2644; + int i2645; + int i2646; + int i2647; + int i2648; + int i2649; + int i2650; + int i2651; + int i2652; + int i2653; + int i2654; + int i2655; + int i2656; + int i2657; + int i2658; + int i2659; + int i2660; + int i2661; + int i2662; + int i2663; + int i2664; + int i2665; + int i2666; + int i2667; + int i2668; + int i2669; + int i2670; + int i2671; + int i2672; + int i2673; + int i2674; + int i2675; + int i2676; + int i2677; + int i2678; + int i2679; + int i2680; + int i2681; + int i2682; + int i2683; + int i2684; + int i2685; + int i2686; + int i2687; + int i2688; + int i2689; + int i2690; + int i2691; + int i2692; + int i2693; + int i2694; + int i2695; + int i2696; + int i2697; + int i2698; + int i2699; + int i2700; + int i2701; + int i2702; + int i2703; + int i2704; + int i2705; + int i2706; + int i2707; + int i2708; + int i2709; + int i2710; + int i2711; + int i2712; + int i2713; + int i2714; + int i2715; + int i2716; + int i2717; + int i2718; + int i2719; + int i2720; + int i2721; + int i2722; + int i2723; + int i2724; + int i2725; + int i2726; + int i2727; + int i2728; + int i2729; + int i2730; + int i2731; + int i2732; + int i2733; + int i2734; + int i2735; + int i2736; + int i2737; + int i2738; + int i2739; + int i2740; + int i2741; + int i2742; + int i2743; + int i2744; + int i2745; + int i2746; + int i2747; + int i2748; + int i2749; + int i2750; + int i2751; + int i2752; + int i2753; + int i2754; + int i2755; + int i2756; + int i2757; + int i2758; + int i2759; + int i2760; + int i2761; + int i2762; + int i2763; + int i2764; + int i2765; + int i2766; + int i2767; + int i2768; + int i2769; + int i2770; + int i2771; + int i2772; + int i2773; + int i2774; + int i2775; + int i2776; + int i2777; + int i2778; + int i2779; + int i2780; + int i2781; + int i2782; + int i2783; + int i2784; + int i2785; + int i2786; + int i2787; + int i2788; + int i2789; + int i2790; + int i2791; + int i2792; + int i2793; + int i2794; + int i2795; + int i2796; + int i2797; + int i2798; + int i2799; + int i2800; + int i2801; + int i2802; + int i2803; + int i2804; + int i2805; + int i2806; + int i2807; + int i2808; + int i2809; + int i2810; + int i2811; + int i2812; + int i2813; + int i2814; + int i2815; + int i2816; + int i2817; + int i2818; + int i2819; + int i2820; + int i2821; + int i2822; + int i2823; + int i2824; + int i2825; + int i2826; + int i2827; + int i2828; + int i2829; + int i2830; + int i2831; + int i2832; + int i2833; + int i2834; + int i2835; + int i2836; + int i2837; + int i2838; + int i2839; + int i2840; + int i2841; + int i2842; + int i2843; + int i2844; + int i2845; + int i2846; + int i2847; + int i2848; + int i2849; + int i2850; + int i2851; + int i2852; + int i2853; + int i2854; + int i2855; + int i2856; + int i2857; + int i2858; + int i2859; + int i2860; + int i2861; + int i2862; + int i2863; + int i2864; + int i2865; + int i2866; + int i2867; + int i2868; + int i2869; + int i2870; + int i2871; + int i2872; + int i2873; + int i2874; + int i2875; + int i2876; + int i2877; + int i2878; + int i2879; + int i2880; + int i2881; + int i2882; + int i2883; + int i2884; + int i2885; + int i2886; + int i2887; + int i2888; + int i2889; + int i2890; + int i2891; + int i2892; + int i2893; + int i2894; + int i2895; + int i2896; + int i2897; + int i2898; + int i2899; + int i2900; + int i2901; + int i2902; + int i2903; + int i2904; + int i2905; + int i2906; + int i2907; + int i2908; + int i2909; + int i2910; + int i2911; + int i2912; + int i2913; + int i2914; + int i2915; + int i2916; + int i2917; + int i2918; + int i2919; + int i2920; + int i2921; + int i2922; + int i2923; + int i2924; + int i2925; + int i2926; + int i2927; + int i2928; + int i2929; + int i2930; + int i2931; + int i2932; + int i2933; + int i2934; + int i2935; + int i2936; + int i2937; + int i2938; + int i2939; + int i2940; + int i2941; + int i2942; + int i2943; + int i2944; + int i2945; + int i2946; + int i2947; + int i2948; + int i2949; + int i2950; + int i2951; + int i2952; + int i2953; + int i2954; + int i2955; + int i2956; + int i2957; + int i2958; + int i2959; + int i2960; + int i2961; + int i2962; + int i2963; + int i2964; + int i2965; + int i2966; + int i2967; + int i2968; + int i2969; + int i2970; + int i2971; + int i2972; + int i2973; + int i2974; + int i2975; + int i2976; + int i2977; + int i2978; + int i2979; + int i2980; + int i2981; + int i2982; + int i2983; + int i2984; + int i2985; + int i2986; + int i2987; + int i2988; + int i2989; + int i2990; + int i2991; + int i2992; + int i2993; + int i2994; + int i2995; + int i2996; + int i2997; + int i2998; + int i2999; + int i3000; + int i3001; + int i3002; + int i3003; + int i3004; + int i3005; + int i3006; + int i3007; + int i3008; + int i3009; + int i3010; + int i3011; + int i3012; + int i3013; + int i3014; + int i3015; + int i3016; + int i3017; + int i3018; + int i3019; + int i3020; + int i3021; + int i3022; + int i3023; + int i3024; + int i3025; + int i3026; + int i3027; + int i3028; + int i3029; + int i3030; + int i3031; + int i3032; + int i3033; + int i3034; + int i3035; + int i3036; + int i3037; + int i3038; + int i3039; + int i3040; + int i3041; + int i3042; + int i3043; + int i3044; + int i3045; + int i3046; + int i3047; + int i3048; + int i3049; + int i3050; + int i3051; + int i3052; + int i3053; + int i3054; + int i3055; + int i3056; + int i3057; + int i3058; + int i3059; + int i3060; + int i3061; + int i3062; + int i3063; + int i3064; + int i3065; + int i3066; + int i3067; + int i3068; + int i3069; + int i3070; + int i3071; + int i3072; + int i3073; + int i3074; + int i3075; + int i3076; + int i3077; + int i3078; + int i3079; + int i3080; + int i3081; + int i3082; + int i3083; + int i3084; + int i3085; + int i3086; + int i3087; + int i3088; + int i3089; + int i3090; + int i3091; + int i3092; + int i3093; + int i3094; + int i3095; + int i3096; + int i3097; + int i3098; + int i3099; + int i3100; + int i3101; + int i3102; + int i3103; + int i3104; + int i3105; + int i3106; + int i3107; + int i3108; + int i3109; + int i3110; + int i3111; + int i3112; + int i3113; + int i3114; + int i3115; + int i3116; + int i3117; + int i3118; + int i3119; + int i3120; + int i3121; + int i3122; + int i3123; + int i3124; + int i3125; + int i3126; + int i3127; + int i3128; + int i3129; + int i3130; + int i3131; + int i3132; + int i3133; + int i3134; + int i3135; + int i3136; + int i3137; + int i3138; + int i3139; + int i3140; + int i3141; + int i3142; + int i3143; + int i3144; + int i3145; + int i3146; + int i3147; + int i3148; + int i3149; + int i3150; + int i3151; + int i3152; + int i3153; + int i3154; + int i3155; + int i3156; + int i3157; + int i3158; + int i3159; + int i3160; + int i3161; + int i3162; + int i3163; + int i3164; + int i3165; + int i3166; + int i3167; + int i3168; + int i3169; + int i3170; + int i3171; + int i3172; + int i3173; + int i3174; + int i3175; + int i3176; + int i3177; + int i3178; + int i3179; + int i3180; + int i3181; + int i3182; + int i3183; + int i3184; + int i3185; + int i3186; + int i3187; + int i3188; + int i3189; + int i3190; + int i3191; + int i3192; + int i3193; + int i3194; + int i3195; + int i3196; + int i3197; + int i3198; + int i3199; + int i3200; + int i3201; + int i3202; + int i3203; + int i3204; + int i3205; + int i3206; + int i3207; + int i3208; + int i3209; + int i3210; + int i3211; + int i3212; + int i3213; + int i3214; + int i3215; + int i3216; + int i3217; + int i3218; + int i3219; + int i3220; + int i3221; + int i3222; + int i3223; + int i3224; + int i3225; + int i3226; + int i3227; + int i3228; + int i3229; + int i3230; + int i3231; + int i3232; + int i3233; + int i3234; + int i3235; + int i3236; + int i3237; + int i3238; + int i3239; + int i3240; + int i3241; + int i3242; + int i3243; + int i3244; + int i3245; + int i3246; + int i3247; + int i3248; + int i3249; + int i3250; + int i3251; + int i3252; + int i3253; + int i3254; + int i3255; + int i3256; + int i3257; + int i3258; + int i3259; + int i3260; + int i3261; + int i3262; + int i3263; + int i3264; + int i3265; + int i3266; + int i3267; + int i3268; + int i3269; + int i3270; + int i3271; + int i3272; + int i3273; + int i3274; + int i3275; + int i3276; + int i3277; + int i3278; + int i3279; + int i3280; + int i3281; + int i3282; + int i3283; + int i3284; + int i3285; + int i3286; + int i3287; + int i3288; + int i3289; + int i3290; + int i3291; + int i3292; + int i3293; + int i3294; + int i3295; + int i3296; + int i3297; + int i3298; + int i3299; + int i3300; + int i3301; + int i3302; + int i3303; + int i3304; + int i3305; + int i3306; + int i3307; + int i3308; + int i3309; + int i3310; + int i3311; + int i3312; + int i3313; + int i3314; + int i3315; + int i3316; + int i3317; + int i3318; + int i3319; + int i3320; + int i3321; + int i3322; + int i3323; + int i3324; + int i3325; + int i3326; + int i3327; + int i3328; + int i3329; + int i3330; + int i3331; + int i3332; + int i3333; + int i3334; + int i3335; + int i3336; + int i3337; + int i3338; + int i3339; + int i3340; + int i3341; + int i3342; + int i3343; + int i3344; + int i3345; + int i3346; + int i3347; + int i3348; + int i3349; + int i3350; + int i3351; + int i3352; + int i3353; + int i3354; + int i3355; + int i3356; + int i3357; + int i3358; + int i3359; + int i3360; + int i3361; + int i3362; + int i3363; + int i3364; + int i3365; + int i3366; + int i3367; + int i3368; + int i3369; + int i3370; + int i3371; + int i3372; + int i3373; + int i3374; + int i3375; + int i3376; + int i3377; + int i3378; + int i3379; + int i3380; + int i3381; + int i3382; + int i3383; + int i3384; + int i3385; + int i3386; + int i3387; + int i3388; + int i3389; + int i3390; + int i3391; + int i3392; + int i3393; + int i3394; + int i3395; + int i3396; + int i3397; + int i3398; + int i3399; + int i3400; + int i3401; + int i3402; + int i3403; + int i3404; + int i3405; + int i3406; + int i3407; + int i3408; + int i3409; + int i3410; + int i3411; + int i3412; + int i3413; + int i3414; + int i3415; + int i3416; + int i3417; + int i3418; + int i3419; + int i3420; + int i3421; + int i3422; + int i3423; + int i3424; + int i3425; + int i3426; + int i3427; + int i3428; + int i3429; + int i3430; + int i3431; + int i3432; + int i3433; + int i3434; + int i3435; + int i3436; + int i3437; + int i3438; + int i3439; + int i3440; + int i3441; + int i3442; + int i3443; + int i3444; + int i3445; + int i3446; + int i3447; + int i3448; + int i3449; + int i3450; + int i3451; + int i3452; + int i3453; + int i3454; + int i3455; + int i3456; + int i3457; + int i3458; + int i3459; + int i3460; + int i3461; + int i3462; + int i3463; + int i3464; + int i3465; + int i3466; + int i3467; + int i3468; + int i3469; + int i3470; + int i3471; + int i3472; + int i3473; + int i3474; + int i3475; + int i3476; + int i3477; + int i3478; + int i3479; + int i3480; + int i3481; + int i3482; + int i3483; + int i3484; + int i3485; + int i3486; + int i3487; + int i3488; + int i3489; + int i3490; + int i3491; + int i3492; + int i3493; + int i3494; + int i3495; + int i3496; + int i3497; + int i3498; + int i3499; + int i3500; + int i3501; + int i3502; + int i3503; + int i3504; + int i3505; + int i3506; + int i3507; + int i3508; + int i3509; + int i3510; + int i3511; + int i3512; + int i3513; + int i3514; + int i3515; + int i3516; + int i3517; + int i3518; + int i3519; + int i3520; + int i3521; + int i3522; + int i3523; + int i3524; + int i3525; + int i3526; + int i3527; + int i3528; + int i3529; + int i3530; + int i3531; + int i3532; + int i3533; + int i3534; + int i3535; + int i3536; + int i3537; + int i3538; + int i3539; + int i3540; + int i3541; + int i3542; + int i3543; + int i3544; + int i3545; + int i3546; + int i3547; + int i3548; + int i3549; + int i3550; + int i3551; + int i3552; + int i3553; + int i3554; + int i3555; + int i3556; + int i3557; + int i3558; + int i3559; + int i3560; + int i3561; + int i3562; + int i3563; + int i3564; + int i3565; + int i3566; + int i3567; + int i3568; + int i3569; + int i3570; + int i3571; + int i3572; + int i3573; + int i3574; + int i3575; + int i3576; + int i3577; + int i3578; + int i3579; + int i3580; + int i3581; + int i3582; + int i3583; + int i3584; + int i3585; + int i3586; + int i3587; + int i3588; + int i3589; + int i3590; + int i3591; + int i3592; + int i3593; + int i3594; + int i3595; + int i3596; + int i3597; + int i3598; + int i3599; + int i3600; + int i3601; + int i3602; + int i3603; + int i3604; + int i3605; + int i3606; + int i3607; + int i3608; + int i3609; + int i3610; + int i3611; + int i3612; + int i3613; + int i3614; + int i3615; + int i3616; + int i3617; + int i3618; + int i3619; + int i3620; + int i3621; + int i3622; + int i3623; + int i3624; + int i3625; + int i3626; + int i3627; + int i3628; + int i3629; + int i3630; + int i3631; + int i3632; + int i3633; + int i3634; + int i3635; + int i3636; + int i3637; + int i3638; + int i3639; + int i3640; + int i3641; + int i3642; + int i3643; + int i3644; + int i3645; + int i3646; + int i3647; + int i3648; + int i3649; + int i3650; + int i3651; + int i3652; + int i3653; + int i3654; + int i3655; + int i3656; + int i3657; + int i3658; + int i3659; + int i3660; + int i3661; + int i3662; + int i3663; + int i3664; + int i3665; + int i3666; + int i3667; + int i3668; + int i3669; + int i3670; + int i3671; + int i3672; + int i3673; + int i3674; + int i3675; + int i3676; + int i3677; + int i3678; + int i3679; + int i3680; + int i3681; + int i3682; + int i3683; + int i3684; + int i3685; + int i3686; + int i3687; + int i3688; + int i3689; + int i3690; + int i3691; + int i3692; + int i3693; + int i3694; + int i3695; + int i3696; + int i3697; + int i3698; + int i3699; + int i3700; + int i3701; + int i3702; + int i3703; + int i3704; + int i3705; + int i3706; + int i3707; + int i3708; + int i3709; + int i3710; + int i3711; + int i3712; + int i3713; + int i3714; + int i3715; + int i3716; + int i3717; + int i3718; + int i3719; + int i3720; + int i3721; + int i3722; + int i3723; + int i3724; + int i3725; + int i3726; + int i3727; + int i3728; + int i3729; + int i3730; + int i3731; + int i3732; + int i3733; + int i3734; + int i3735; + int i3736; + int i3737; + int i3738; + int i3739; + int i3740; + int i3741; + int i3742; + int i3743; + int i3744; + int i3745; + int i3746; + int i3747; + int i3748; + int i3749; + int i3750; + int i3751; + int i3752; + int i3753; + int i3754; + int i3755; + int i3756; + int i3757; + int i3758; + int i3759; + int i3760; + int i3761; + int i3762; + int i3763; + int i3764; + int i3765; + int i3766; + int i3767; + int i3768; + int i3769; + int i3770; + int i3771; + int i3772; + int i3773; + int i3774; + int i3775; + int i3776; + int i3777; + int i3778; + int i3779; + int i3780; + int i3781; + int i3782; + int i3783; + int i3784; + int i3785; + int i3786; + int i3787; + int i3788; + int i3789; + int i3790; + int i3791; + int i3792; + int i3793; + int i3794; + int i3795; + int i3796; + int i3797; + int i3798; + int i3799; + int i3800; + int i3801; + int i3802; + int i3803; + int i3804; + int i3805; + int i3806; + int i3807; + int i3808; + int i3809; + int i3810; + int i3811; + int i3812; + int i3813; + int i3814; + int i3815; + int i3816; + int i3817; + int i3818; + int i3819; + int i3820; + int i3821; + int i3822; + int i3823; + int i3824; + int i3825; + int i3826; + int i3827; + int i3828; + int i3829; + int i3830; + int i3831; + int i3832; + int i3833; + int i3834; + int i3835; + int i3836; + int i3837; + int i3838; + int i3839; + int i3840; + int i3841; + int i3842; + int i3843; + int i3844; + int i3845; + int i3846; + int i3847; + int i3848; + int i3849; + int i3850; + int i3851; + int i3852; + int i3853; + int i3854; + int i3855; + int i3856; + int i3857; + int i3858; + int i3859; + int i3860; + int i3861; + int i3862; + int i3863; + int i3864; + int i3865; + int i3866; + int i3867; + int i3868; + int i3869; + int i3870; + int i3871; + int i3872; + int i3873; + int i3874; + int i3875; + int i3876; + int i3877; + int i3878; + int i3879; + int i3880; + int i3881; + int i3882; + int i3883; + int i3884; + int i3885; + int i3886; + int i3887; + int i3888; + int i3889; + int i3890; + int i3891; + int i3892; + int i3893; + int i3894; + int i3895; + int i3896; + int i3897; + int i3898; + int i3899; + int i3900; + int i3901; + int i3902; + int i3903; + int i3904; + int i3905; + int i3906; + int i3907; + int i3908; + int i3909; + int i3910; + int i3911; + int i3912; + int i3913; + int i3914; + int i3915; + int i3916; + int i3917; + int i3918; + int i3919; + int i3920; + int i3921; + int i3922; + int i3923; + int i3924; + int i3925; + int i3926; + int i3927; + int i3928; + int i3929; + int i3930; + int i3931; + int i3932; + int i3933; + int i3934; + int i3935; + int i3936; + int i3937; + int i3938; + int i3939; + int i3940; + int i3941; + int i3942; + int i3943; + int i3944; + int i3945; + int i3946; + int i3947; + int i3948; + int i3949; + int i3950; + int i3951; + int i3952; + int i3953; + int i3954; + int i3955; + int i3956; + int i3957; + int i3958; + int i3959; + int i3960; + int i3961; + int i3962; + int i3963; + int i3964; + int i3965; + int i3966; + int i3967; + int i3968; + int i3969; + int i3970; + int i3971; + int i3972; + int i3973; + int i3974; + int i3975; + int i3976; + int i3977; + int i3978; + int i3979; + int i3980; + int i3981; + int i3982; + int i3983; + int i3984; + int i3985; + int i3986; + int i3987; + int i3988; + int i3989; + int i3990; + int i3991; + int i3992; + int i3993; + int i3994; + int i3995; + int i3996; + int i3997; + int i3998; + int i3999; + int i4000; + int i4001; + int i4002; + int i4003; + int i4004; + int i4005; + int i4006; + int i4007; + int i4008; + int i4009; + int i4010; + int i4011; + int i4012; + int i4013; + int i4014; + int i4015; + int i4016; + int i4017; + int i4018; + int i4019; + int i4020; + int i4021; + int i4022; + int i4023; + int i4024; + int i4025; + int i4026; + int i4027; + int i4028; + int i4029; + int i4030; + int i4031; + int i4032; + int i4033; + int i4034; + int i4035; + int i4036; + int i4037; + int i4038; + int i4039; + int i4040; + int i4041; + int i4042; + int i4043; + int i4044; + int i4045; + int i4046; + int i4047; + int i4048; + int i4049; + int i4050; + int i4051; + int i4052; + int i4053; + int i4054; + int i4055; + int i4056; + int i4057; + int i4058; + int i4059; + int i4060; + int i4061; + int i4062; + int i4063; + int i4064; + int i4065; + int i4066; + int i4067; + int i4068; + int i4069; + int i4070; + int i4071; + int i4072; + int i4073; + int i4074; + int i4075; + int i4076; + int i4077; + int i4078; + int i4079; + int i4080; + int i4081; + int i4082; + int i4083; + int i4084; + int i4085; + int i4086; + int i4087; + int i4088; + int i4089; + int i4090; + int i4091; + int i4092; + int i4093; + int i4094; + int i4095; + int i4096; + int i4097; + int i4098; + int i4099; + int i4100; + int i4101; + int i4102; + int i4103; + int i4104; + int i4105; + int i4106; + int i4107; + int i4108; + int i4109; + int i4110; + int i4111; + int i4112; + int i4113; + int i4114; + int i4115; + int i4116; + int i4117; + int i4118; + int i4119; + int i4120; + int i4121; + int i4122; + int i4123; + int i4124; + int i4125; + int i4126; + int i4127; + int i4128; + int i4129; + int i4130; + int i4131; + int i4132; + int i4133; + int i4134; + int i4135; + int i4136; + int i4137; + int i4138; + int i4139; + int i4140; + int i4141; + int i4142; + int i4143; + int i4144; + int i4145; + int i4146; + int i4147; + int i4148; + int i4149; + int i4150; + int i4151; + int i4152; + int i4153; + int i4154; + int i4155; + int i4156; + int i4157; + int i4158; + int i4159; + int i4160; + int i4161; + int i4162; + int i4163; + int i4164; + int i4165; + int i4166; + int i4167; + int i4168; + int i4169; + int i4170; + int i4171; + int i4172; + int i4173; + int i4174; + int i4175; + int i4176; + int i4177; + int i4178; + int i4179; + int i4180; + int i4181; + int i4182; + int i4183; + int i4184; + int i4185; + int i4186; + int i4187; + int i4188; + int i4189; + int i4190; + int i4191; + int i4192; + int i4193; + int i4194; + int i4195; + int i4196; + int i4197; + int i4198; + int i4199; + int i4200; + int i4201; + int i4202; + int i4203; + int i4204; + int i4205; + int i4206; + int i4207; + int i4208; + int i4209; + int i4210; + int i4211; + int i4212; + int i4213; + int i4214; + int i4215; + int i4216; + int i4217; + int i4218; + int i4219; + int i4220; + int i4221; + int i4222; + int i4223; + int i4224; + int i4225; + int i4226; + int i4227; + int i4228; + int i4229; + int i4230; + int i4231; + int i4232; + int i4233; + int i4234; + int i4235; + int i4236; + int i4237; + int i4238; + int i4239; + int i4240; + int i4241; + int i4242; + int i4243; + int i4244; + int i4245; + int i4246; + int i4247; + int i4248; + int i4249; + int i4250; + int i4251; + int i4252; + int i4253; + int i4254; + int i4255; + int i4256; + int i4257; + int i4258; + int i4259; + int i4260; + int i4261; + int i4262; + int i4263; + int i4264; + int i4265; + int i4266; + int i4267; + int i4268; + int i4269; + int i4270; + int i4271; + int i4272; + int i4273; + int i4274; + int i4275; + int i4276; + int i4277; + int i4278; + int i4279; + int i4280; + int i4281; + int i4282; + int i4283; + int i4284; + int i4285; + int i4286; + int i4287; + int i4288; + int i4289; + int i4290; + int i4291; + int i4292; + int i4293; + int i4294; + int i4295; + int i4296; + int i4297; + int i4298; + int i4299; + int i4300; + int i4301; + int i4302; + int i4303; + int i4304; + int i4305; + int i4306; + int i4307; + int i4308; + int i4309; + int i4310; + int i4311; + int i4312; + int i4313; + int i4314; + int i4315; + int i4316; + int i4317; + int i4318; + int i4319; + int i4320; + int i4321; + int i4322; + int i4323; + int i4324; + int i4325; + int i4326; + int i4327; + int i4328; + int i4329; + int i4330; + int i4331; + int i4332; + int i4333; + int i4334; + int i4335; + int i4336; + int i4337; + int i4338; + int i4339; + int i4340; + int i4341; + int i4342; + int i4343; + int i4344; + int i4345; + int i4346; + int i4347; + int i4348; + int i4349; + int i4350; + int i4351; + int i4352; + int i4353; + int i4354; + int i4355; + int i4356; + int i4357; + int i4358; + int i4359; + int i4360; + int i4361; + int i4362; + int i4363; + int i4364; + int i4365; + int i4366; + int i4367; + int i4368; + int i4369; + int i4370; + int i4371; + int i4372; + int i4373; + int i4374; + int i4375; + int i4376; + int i4377; + int i4378; + int i4379; + int i4380; + int i4381; + int i4382; + int i4383; + int i4384; + int i4385; + int i4386; + int i4387; + int i4388; + int i4389; + int i4390; + int i4391; + int i4392; + int i4393; + int i4394; + int i4395; + int i4396; + int i4397; + int i4398; + int i4399; + int i4400; + int i4401; + int i4402; + int i4403; + int i4404; + int i4405; + int i4406; + int i4407; + int i4408; + int i4409; + int i4410; + int i4411; + int i4412; + int i4413; + int i4414; + int i4415; + int i4416; + int i4417; + int i4418; + int i4419; + int i4420; + int i4421; + int i4422; + int i4423; + int i4424; + int i4425; + int i4426; + int i4427; + int i4428; + int i4429; + int i4430; + int i4431; + int i4432; + int i4433; + int i4434; + int i4435; + int i4436; + int i4437; + int i4438; + int i4439; + int i4440; + int i4441; + int i4442; + int i4443; + int i4444; + int i4445; + int i4446; + int i4447; + int i4448; + int i4449; + int i4450; + int i4451; + int i4452; + int i4453; + int i4454; + int i4455; + int i4456; + int i4457; + int i4458; + int i4459; + int i4460; + int i4461; + int i4462; + int i4463; + int i4464; + int i4465; + int i4466; + int i4467; + int i4468; + int i4469; + int i4470; + int i4471; + int i4472; + int i4473; + int i4474; + int i4475; + int i4476; + int i4477; + int i4478; + int i4479; + int i4480; + int i4481; + int i4482; + int i4483; + int i4484; + int i4485; + int i4486; + int i4487; + int i4488; + int i4489; + int i4490; + int i4491; + int i4492; + int i4493; + int i4494; + int i4495; + int i4496; + int i4497; + int i4498; + int i4499; + int i4500; + int i4501; + int i4502; + int i4503; + int i4504; + int i4505; + int i4506; + int i4507; + int i4508; + int i4509; + int i4510; + int i4511; + int i4512; + int i4513; + int i4514; + int i4515; + int i4516; + int i4517; + int i4518; + int i4519; + int i4520; + int i4521; + int i4522; + int i4523; + int i4524; + int i4525; + int i4526; + int i4527; + int i4528; + int i4529; + int i4530; + int i4531; + int i4532; + int i4533; + int i4534; + int i4535; + int i4536; + int i4537; + int i4538; + int i4539; + int i4540; + int i4541; + int i4542; + int i4543; + int i4544; + int i4545; + int i4546; + int i4547; + int i4548; + int i4549; + int i4550; + int i4551; + int i4552; + int i4553; + int i4554; + int i4555; + int i4556; + int i4557; + int i4558; + int i4559; + int i4560; + int i4561; + int i4562; + int i4563; + int i4564; + int i4565; + int i4566; + int i4567; + int i4568; + int i4569; + int i4570; + int i4571; + int i4572; + int i4573; + int i4574; + int i4575; + int i4576; + int i4577; + int i4578; + int i4579; + int i4580; + int i4581; + int i4582; + int i4583; + int i4584; + int i4585; + int i4586; + int i4587; + int i4588; + int i4589; + int i4590; + int i4591; + int i4592; + int i4593; + int i4594; + int i4595; + int i4596; + int i4597; + int i4598; + int i4599; + int i4600; + int i4601; + int i4602; + int i4603; + int i4604; + int i4605; + int i4606; + int i4607; + int i4608; + int i4609; + int i4610; + int i4611; + int i4612; + int i4613; + int i4614; + int i4615; + int i4616; + int i4617; + int i4618; + int i4619; + int i4620; + int i4621; + int i4622; + int i4623; + int i4624; + int i4625; + int i4626; + int i4627; + int i4628; + int i4629; + int i4630; + int i4631; + int i4632; + int i4633; + int i4634; + int i4635; + int i4636; + int i4637; + int i4638; + int i4639; + int i4640; + int i4641; + int i4642; + int i4643; + int i4644; + int i4645; + int i4646; + int i4647; + int i4648; + int i4649; + int i4650; + int i4651; + int i4652; + int i4653; + int i4654; + int i4655; + int i4656; + int i4657; + int i4658; + int i4659; + int i4660; + int i4661; + int i4662; + int i4663; + int i4664; + int i4665; + int i4666; + int i4667; + int i4668; + int i4669; + int i4670; + int i4671; + int i4672; + int i4673; + int i4674; + int i4675; + int i4676; + int i4677; + int i4678; + int i4679; + int i4680; + int i4681; + int i4682; + int i4683; + int i4684; + int i4685; + int i4686; + int i4687; + int i4688; + int i4689; + int i4690; + int i4691; + int i4692; + int i4693; + int i4694; + int i4695; + int i4696; + int i4697; + int i4698; + int i4699; + int i4700; + int i4701; + int i4702; + int i4703; + int i4704; + int i4705; + int i4706; + int i4707; + int i4708; + int i4709; + int i4710; + int i4711; + int i4712; + int i4713; + int i4714; + int i4715; + int i4716; + int i4717; + int i4718; + int i4719; + int i4720; + int i4721; + int i4722; + int i4723; + int i4724; + int i4725; + int i4726; + int i4727; + int i4728; + int i4729; + int i4730; + int i4731; + int i4732; + int i4733; + int i4734; + int i4735; + int i4736; + int i4737; + int i4738; + int i4739; + int i4740; + int i4741; + int i4742; + int i4743; + int i4744; + int i4745; + int i4746; + int i4747; + int i4748; + int i4749; + int i4750; + int i4751; + int i4752; + int i4753; + int i4754; + int i4755; + int i4756; + int i4757; + int i4758; + int i4759; + int i4760; + int i4761; + int i4762; + int i4763; + int i4764; + int i4765; + int i4766; + int i4767; + int i4768; + int i4769; + int i4770; + int i4771; + int i4772; + int i4773; + int i4774; + int i4775; + int i4776; + int i4777; + int i4778; + int i4779; + int i4780; + int i4781; + int i4782; + int i4783; + int i4784; + int i4785; + int i4786; + int i4787; + int i4788; + int i4789; + int i4790; + int i4791; + int i4792; + int i4793; + int i4794; + int i4795; + int i4796; + int i4797; + int i4798; + int i4799; + int i4800; + int i4801; + int i4802; + int i4803; + int i4804; + int i4805; + int i4806; + int i4807; + int i4808; + int i4809; + int i4810; + int i4811; + int i4812; + int i4813; + int i4814; + int i4815; + int i4816; + int i4817; + int i4818; + int i4819; + int i4820; + int i4821; + int i4822; + int i4823; + int i4824; + int i4825; + int i4826; + int i4827; + int i4828; + int i4829; + int i4830; + int i4831; + int i4832; + int i4833; + int i4834; + int i4835; + int i4836; + int i4837; + int i4838; + int i4839; + int i4840; + int i4841; + int i4842; + int i4843; + int i4844; + int i4845; + int i4846; + int i4847; + int i4848; + int i4849; + int i4850; + int i4851; + int i4852; + int i4853; + int i4854; + int i4855; + int i4856; + int i4857; + int i4858; + int i4859; + int i4860; + int i4861; + int i4862; + int i4863; + int i4864; + int i4865; + int i4866; + int i4867; + int i4868; + int i4869; + int i4870; + int i4871; + int i4872; + int i4873; + int i4874; + int i4875; + int i4876; + int i4877; + int i4878; + int i4879; + int i4880; + int i4881; + int i4882; + int i4883; + int i4884; + int i4885; + int i4886; + int i4887; + int i4888; + int i4889; + int i4890; + int i4891; + int i4892; + int i4893; + int i4894; + int i4895; + int i4896; + int i4897; + int i4898; + int i4899; + int i4900; + int i4901; + int i4902; + int i4903; + int i4904; + int i4905; + int i4906; + int i4907; + int i4908; + int i4909; + int i4910; + int i4911; + int i4912; + int i4913; + int i4914; + int i4915; + int i4916; + int i4917; + int i4918; + int i4919; + int i4920; + int i4921; + int i4922; + int i4923; + int i4924; + int i4925; + int i4926; + int i4927; + int i4928; + int i4929; + int i4930; + int i4931; + int i4932; + int i4933; + int i4934; + int i4935; + int i4936; + int i4937; + int i4938; + int i4939; + int i4940; + int i4941; + int i4942; + int i4943; + int i4944; + int i4945; + int i4946; + int i4947; + int i4948; + int i4949; + int i4950; + int i4951; + int i4952; + int i4953; + int i4954; + int i4955; + int i4956; + int i4957; + int i4958; + int i4959; + int i4960; + int i4961; + int i4962; + int i4963; + int i4964; + int i4965; + int i4966; + int i4967; + int i4968; + int i4969; + int i4970; + int i4971; + int i4972; + int i4973; + int i4974; + int i4975; + int i4976; + int i4977; + int i4978; + int i4979; + int i4980; + int i4981; + int i4982; + int i4983; + int i4984; + int i4985; + int i4986; + int i4987; + int i4988; + int i4989; + int i4990; + int i4991; + int i4992; + int i4993; + int i4994; + int i4995; + int i4996; + int i4997; + int i4998; + int i4999; + int i5000; + int i5001; + int i5002; + int i5003; + int i5004; + int i5005; + int i5006; + int i5007; + int i5008; + int i5009; + int i5010; + int i5011; + int i5012; + int i5013; + int i5014; + int i5015; + int i5016; + int i5017; + int i5018; + int i5019; + int i5020; + int i5021; + int i5022; + int i5023; + int i5024; + int i5025; + int i5026; + int i5027; + int i5028; + int i5029; + int i5030; + int i5031; + int i5032; + int i5033; + int i5034; + int i5035; + int i5036; + int i5037; + int i5038; + int i5039; + int i5040; + int i5041; + int i5042; + int i5043; + int i5044; + int i5045; + int i5046; + int i5047; + int i5048; + int i5049; + int i5050; + int i5051; + int i5052; + int i5053; + int i5054; + int i5055; + int i5056; + int i5057; + int i5058; + int i5059; + int i5060; + int i5061; + int i5062; + int i5063; + int i5064; + int i5065; + int i5066; + int i5067; + int i5068; + int i5069; + int i5070; + int i5071; + int i5072; + int i5073; + int i5074; + int i5075; + int i5076; + int i5077; + int i5078; + int i5079; + int i5080; + int i5081; + int i5082; + int i5083; + int i5084; + int i5085; + int i5086; + int i5087; + int i5088; + int i5089; + int i5090; + int i5091; + int i5092; + int i5093; + int i5094; + int i5095; + int i5096; + int i5097; + int i5098; + int i5099; + int i5100; + int i5101; + int i5102; + int i5103; + int i5104; + int i5105; + int i5106; + int i5107; + int i5108; + int i5109; + int i5110; + int i5111; + int i5112; + int i5113; + int i5114; + int i5115; + int i5116; + int i5117; + int i5118; + int i5119; + int i5120; + int i5121; + int i5122; + int i5123; + int i5124; + int i5125; + int i5126; + int i5127; + int i5128; + int i5129; + int i5130; + int i5131; + int i5132; + int i5133; + int i5134; + int i5135; + int i5136; + int i5137; + int i5138; + int i5139; + int i5140; + int i5141; + int i5142; + int i5143; + int i5144; + int i5145; + int i5146; + int i5147; + int i5148; + int i5149; + int i5150; + int i5151; + int i5152; + int i5153; + int i5154; + int i5155; + int i5156; + int i5157; + int i5158; + int i5159; + int i5160; + int i5161; + int i5162; + int i5163; + int i5164; + int i5165; + int i5166; + int i5167; + int i5168; + int i5169; + int i5170; + int i5171; + int i5172; + int i5173; + int i5174; + int i5175; + int i5176; + int i5177; + int i5178; + int i5179; + int i5180; + int i5181; + int i5182; + int i5183; + int i5184; + int i5185; + int i5186; + int i5187; + int i5188; + int i5189; + int i5190; + int i5191; + int i5192; + int i5193; + int i5194; + int i5195; + int i5196; + int i5197; + int i5198; + int i5199; + int i5200; + int i5201; + int i5202; + int i5203; + int i5204; + int i5205; + int i5206; + int i5207; + int i5208; + int i5209; + int i5210; + int i5211; + int i5212; + int i5213; + int i5214; + int i5215; + int i5216; + int i5217; + int i5218; + int i5219; + int i5220; + int i5221; + int i5222; + int i5223; + int i5224; + int i5225; + int i5226; + int i5227; + int i5228; + int i5229; + int i5230; + int i5231; + int i5232; + int i5233; + int i5234; + int i5235; + int i5236; + int i5237; + int i5238; + int i5239; + int i5240; + int i5241; + int i5242; + int i5243; + int i5244; + int i5245; + int i5246; + int i5247; + int i5248; + int i5249; + int i5250; + int i5251; + int i5252; + int i5253; + int i5254; + int i5255; + int i5256; + int i5257; + int i5258; + int i5259; + int i5260; + int i5261; + int i5262; + int i5263; + int i5264; + int i5265; + int i5266; + int i5267; + int i5268; + int i5269; + int i5270; + int i5271; + int i5272; + int i5273; + int i5274; + int i5275; + int i5276; + int i5277; + int i5278; + int i5279; + int i5280; + int i5281; + int i5282; + int i5283; + int i5284; + int i5285; + int i5286; + int i5287; + int i5288; + int i5289; + int i5290; + int i5291; + int i5292; + int i5293; + int i5294; + int i5295; + int i5296; + int i5297; + int i5298; + int i5299; + int i5300; + int i5301; + int i5302; + int i5303; + int i5304; + int i5305; + int i5306; + int i5307; + int i5308; + int i5309; + int i5310; + int i5311; + int i5312; + int i5313; + int i5314; + int i5315; + int i5316; + int i5317; + int i5318; + int i5319; + int i5320; + int i5321; + int i5322; + int i5323; + int i5324; + int i5325; + int i5326; + int i5327; + int i5328; + int i5329; + int i5330; + int i5331; + int i5332; + int i5333; + int i5334; + int i5335; + int i5336; + int i5337; + int i5338; + int i5339; + int i5340; + int i5341; + int i5342; + int i5343; + int i5344; + int i5345; + int i5346; + int i5347; + int i5348; + int i5349; + int i5350; + int i5351; + int i5352; + int i5353; + int i5354; + int i5355; + int i5356; + int i5357; + int i5358; + int i5359; + int i5360; + int i5361; + int i5362; + int i5363; + int i5364; + int i5365; + int i5366; + int i5367; + int i5368; + int i5369; + int i5370; + int i5371; + int i5372; + int i5373; + int i5374; + int i5375; + int i5376; + int i5377; + int i5378; + int i5379; + int i5380; + int i5381; + int i5382; + int i5383; + int i5384; + int i5385; + int i5386; + int i5387; + int i5388; + int i5389; + int i5390; + int i5391; + int i5392; + int i5393; + int i5394; + int i5395; + int i5396; + int i5397; + int i5398; + int i5399; + int i5400; + int i5401; + int i5402; + int i5403; + int i5404; + int i5405; + int i5406; + int i5407; + int i5408; + int i5409; + int i5410; + int i5411; + int i5412; + int i5413; + int i5414; + int i5415; + int i5416; + int i5417; + int i5418; + int i5419; + int i5420; + int i5421; + int i5422; + int i5423; + int i5424; + int i5425; + int i5426; + int i5427; + int i5428; + int i5429; + int i5430; + int i5431; + int i5432; + int i5433; + int i5434; + int i5435; + int i5436; + int i5437; + int i5438; + int i5439; + int i5440; + int i5441; + int i5442; + int i5443; + int i5444; + int i5445; + int i5446; + int i5447; + int i5448; + int i5449; + int i5450; + int i5451; + int i5452; + int i5453; + int i5454; + int i5455; + int i5456; + int i5457; + int i5458; + int i5459; + int i5460; + int i5461; + int i5462; + int i5463; + int i5464; + int i5465; + int i5466; + int i5467; + int i5468; + int i5469; + int i5470; + int i5471; + int i5472; + int i5473; + int i5474; + int i5475; + int i5476; + int i5477; + int i5478; + int i5479; + int i5480; + int i5481; + int i5482; + int i5483; + int i5484; + int i5485; + int i5486; + int i5487; + int i5488; + int i5489; + int i5490; + int i5491; + int i5492; + int i5493; + int i5494; + int i5495; + int i5496; + int i5497; + int i5498; + int i5499; + int i5500; + int i5501; + int i5502; + int i5503; + int i5504; + int i5505; + int i5506; + int i5507; + int i5508; + int i5509; + int i5510; + int i5511; + int i5512; + int i5513; + int i5514; + int i5515; + int i5516; + int i5517; + int i5518; + int i5519; + int i5520; + int i5521; + int i5522; + int i5523; + int i5524; + int i5525; + int i5526; + int i5527; + int i5528; + int i5529; + int i5530; + int i5531; + int i5532; + int i5533; + int i5534; + int i5535; + int i5536; + int i5537; + int i5538; + int i5539; + int i5540; + int i5541; + int i5542; + int i5543; + int i5544; + int i5545; + int i5546; + int i5547; + int i5548; + int i5549; + int i5550; + int i5551; + int i5552; + int i5553; + int i5554; + int i5555; + int i5556; + int i5557; + int i5558; + int i5559; + int i5560; + int i5561; + int i5562; + int i5563; + int i5564; + int i5565; + int i5566; + int i5567; + int i5568; + int i5569; + int i5570; + int i5571; + int i5572; + int i5573; + int i5574; + int i5575; + int i5576; + int i5577; + int i5578; + int i5579; + int i5580; + int i5581; + int i5582; + int i5583; + int i5584; + int i5585; + int i5586; + int i5587; + int i5588; + int i5589; + int i5590; + int i5591; + int i5592; + int i5593; + int i5594; + int i5595; + int i5596; + int i5597; + int i5598; + int i5599; + int i5600; + int i5601; + int i5602; + int i5603; + int i5604; + int i5605; + int i5606; + int i5607; + int i5608; + int i5609; + int i5610; + int i5611; + int i5612; + int i5613; + int i5614; + int i5615; + int i5616; + int i5617; + int i5618; + int i5619; + int i5620; + int i5621; + int i5622; + int i5623; + int i5624; + int i5625; + int i5626; + int i5627; + int i5628; + int i5629; + int i5630; + int i5631; + int i5632; + int i5633; + int i5634; + int i5635; + int i5636; + int i5637; + int i5638; + int i5639; + int i5640; + int i5641; + int i5642; + int i5643; + int i5644; + int i5645; + int i5646; + int i5647; + int i5648; + int i5649; + int i5650; + int i5651; + int i5652; + int i5653; + int i5654; + int i5655; + int i5656; + int i5657; + int i5658; + int i5659; + int i5660; + int i5661; + int i5662; + int i5663; + int i5664; + int i5665; + int i5666; + int i5667; + int i5668; + int i5669; + int i5670; + int i5671; + int i5672; + int i5673; + int i5674; + int i5675; + int i5676; + int i5677; + int i5678; + int i5679; + int i5680; + int i5681; + int i5682; + int i5683; + int i5684; + int i5685; + int i5686; + int i5687; + int i5688; + int i5689; + int i5690; + int i5691; + int i5692; + int i5693; + int i5694; + int i5695; + int i5696; + int i5697; + int i5698; + int i5699; + int i5700; + int i5701; + int i5702; + int i5703; + int i5704; + int i5705; + int i5706; + int i5707; + int i5708; + int i5709; + int i5710; + int i5711; + int i5712; + int i5713; + int i5714; + int i5715; + int i5716; + int i5717; + int i5718; + int i5719; + int i5720; + int i5721; + int i5722; + int i5723; + int i5724; + int i5725; + int i5726; + int i5727; + int i5728; + int i5729; + int i5730; + int i5731; + int i5732; + int i5733; + int i5734; + int i5735; + int i5736; + int i5737; + int i5738; + int i5739; + int i5740; + int i5741; + int i5742; + int i5743; + int i5744; + int i5745; + int i5746; + int i5747; + int i5748; + int i5749; + int i5750; + int i5751; + int i5752; + int i5753; + int i5754; + int i5755; + int i5756; + int i5757; + int i5758; + int i5759; + int i5760; + int i5761; + int i5762; + int i5763; + int i5764; + int i5765; + int i5766; + int i5767; + int i5768; + int i5769; + int i5770; + int i5771; + int i5772; + int i5773; + int i5774; + int i5775; + int i5776; + int i5777; + int i5778; + int i5779; + int i5780; + int i5781; + int i5782; + int i5783; + int i5784; + int i5785; + int i5786; + int i5787; + int i5788; + int i5789; + int i5790; + int i5791; + int i5792; + int i5793; + int i5794; + int i5795; + int i5796; + int i5797; + int i5798; + int i5799; + int i5800; + int i5801; + int i5802; + int i5803; + int i5804; + int i5805; + int i5806; + int i5807; + int i5808; + int i5809; + int i5810; + int i5811; + int i5812; + int i5813; + int i5814; + int i5815; + int i5816; + int i5817; + int i5818; + int i5819; + int i5820; + int i5821; + int i5822; + int i5823; + int i5824; + int i5825; + int i5826; + int i5827; + int i5828; + int i5829; + int i5830; + int i5831; + int i5832; + int i5833; + int i5834; + int i5835; + int i5836; + int i5837; + int i5838; + int i5839; + int i5840; + int i5841; + int i5842; + int i5843; + int i5844; + int i5845; + int i5846; + int i5847; + int i5848; + int i5849; + int i5850; + int i5851; + int i5852; + int i5853; + int i5854; + int i5855; + int i5856; + int i5857; + int i5858; + int i5859; + int i5860; + int i5861; + int i5862; + int i5863; + int i5864; + int i5865; + int i5866; + int i5867; + int i5868; + int i5869; + int i5870; + int i5871; + int i5872; + int i5873; + int i5874; + int i5875; + int i5876; + int i5877; + int i5878; + int i5879; + int i5880; + int i5881; + int i5882; + int i5883; + int i5884; + int i5885; + int i5886; + int i5887; + int i5888; + int i5889; + int i5890; + int i5891; + int i5892; + int i5893; + int i5894; + int i5895; + int i5896; + int i5897; + int i5898; + int i5899; + int i5900; + int i5901; + int i5902; + int i5903; + int i5904; + int i5905; + int i5906; + int i5907; + int i5908; + int i5909; + int i5910; + int i5911; + int i5912; + int i5913; + int i5914; + int i5915; + int i5916; + int i5917; + int i5918; + int i5919; + int i5920; + int i5921; + int i5922; + int i5923; + int i5924; + int i5925; + int i5926; + int i5927; + int i5928; + int i5929; + int i5930; + int i5931; + int i5932; + int i5933; + int i5934; + int i5935; + int i5936; + int i5937; + int i5938; + int i5939; + int i5940; + int i5941; + int i5942; + int i5943; + int i5944; + int i5945; + int i5946; + int i5947; + int i5948; + int i5949; + int i5950; + int i5951; + int i5952; + int i5953; + int i5954; + int i5955; + int i5956; + int i5957; + int i5958; + int i5959; + int i5960; + int i5961; + int i5962; + int i5963; + int i5964; + int i5965; + int i5966; + int i5967; + int i5968; + int i5969; + int i5970; + int i5971; + int i5972; + int i5973; + int i5974; + int i5975; + int i5976; + int i5977; + int i5978; + int i5979; + int i5980; + int i5981; + int i5982; + int i5983; + int i5984; + int i5985; + int i5986; + int i5987; + int i5988; + int i5989; + int i5990; + int i5991; + int i5992; + int i5993; + int i5994; + int i5995; + int i5996; + int i5997; + int i5998; + int i5999; + int i6000; + int i6001; + int i6002; + int i6003; + int i6004; + int i6005; + int i6006; + int i6007; + int i6008; + int i6009; + int i6010; + int i6011; + int i6012; + int i6013; + int i6014; + int i6015; + int i6016; + int i6017; + int i6018; + int i6019; + int i6020; + int i6021; + int i6022; + int i6023; + int i6024; + int i6025; + int i6026; + int i6027; + int i6028; + int i6029; + int i6030; + int i6031; + int i6032; + int i6033; + int i6034; + int i6035; + int i6036; + int i6037; + int i6038; + int i6039; + int i6040; + int i6041; + int i6042; + int i6043; + int i6044; + int i6045; + int i6046; + int i6047; + int i6048; + int i6049; + int i6050; + int i6051; + int i6052; + int i6053; + int i6054; + int i6055; + int i6056; + int i6057; + int i6058; + int i6059; + int i6060; + int i6061; + int i6062; + int i6063; + int i6064; + int i6065; + int i6066; + int i6067; + int i6068; + int i6069; + int i6070; + int i6071; + int i6072; + int i6073; + int i6074; + int i6075; + int i6076; + int i6077; + int i6078; + int i6079; + int i6080; + int i6081; + int i6082; + int i6083; + int i6084; + int i6085; + int i6086; + int i6087; + int i6088; + int i6089; + int i6090; + int i6091; + int i6092; + int i6093; + int i6094; + int i6095; + int i6096; + int i6097; + int i6098; + int i6099; + int i6100; + int i6101; + int i6102; + int i6103; + int i6104; + int i6105; + int i6106; + int i6107; + int i6108; + int i6109; + int i6110; + int i6111; + int i6112; + int i6113; + int i6114; + int i6115; + int i6116; + int i6117; + int i6118; + int i6119; + int i6120; + int i6121; + int i6122; + int i6123; + int i6124; + int i6125; + int i6126; + int i6127; + int i6128; + int i6129; + int i6130; + int i6131; + int i6132; + int i6133; + int i6134; + int i6135; + int i6136; + int i6137; + int i6138; + int i6139; + int i6140; + int i6141; + int i6142; + int i6143; + int i6144; + int i6145; + int i6146; + int i6147; + int i6148; + int i6149; + int i6150; + int i6151; + int i6152; + int i6153; + int i6154; + int i6155; + int i6156; + int i6157; + int i6158; + int i6159; + int i6160; + int i6161; + int i6162; + int i6163; + int i6164; + int i6165; + int i6166; + int i6167; + int i6168; + int i6169; + int i6170; + int i6171; + int i6172; + int i6173; + int i6174; + int i6175; + int i6176; + int i6177; + int i6178; + int i6179; + int i6180; + int i6181; + int i6182; + int i6183; + int i6184; + int i6185; + int i6186; + int i6187; + int i6188; + int i6189; + int i6190; + int i6191; + int i6192; + int i6193; + int i6194; + int i6195; + int i6196; + int i6197; + int i6198; + int i6199; + int i6200; + int i6201; + int i6202; + int i6203; + int i6204; + int i6205; + int i6206; + int i6207; + int i6208; + int i6209; + int i6210; + int i6211; + int i6212; + int i6213; + int i6214; + int i6215; + int i6216; + int i6217; + int i6218; + int i6219; + int i6220; + int i6221; + int i6222; + int i6223; + int i6224; + int i6225; + int i6226; + int i6227; + int i6228; + int i6229; + int i6230; + int i6231; + int i6232; + int i6233; + int i6234; + int i6235; + int i6236; + int i6237; + int i6238; + int i6239; + int i6240; + int i6241; + int i6242; + int i6243; + int i6244; + int i6245; + int i6246; + int i6247; + int i6248; + int i6249; + int i6250; + int i6251; + int i6252; + int i6253; + int i6254; + int i6255; + int i6256; + int i6257; + int i6258; + int i6259; + int i6260; + int i6261; + int i6262; + int i6263; + int i6264; + int i6265; + int i6266; + int i6267; + int i6268; + int i6269; + int i6270; + int i6271; + int i6272; + int i6273; + int i6274; + int i6275; + int i6276; + int i6277; + int i6278; + int i6279; + int i6280; + int i6281; + int i6282; + int i6283; + int i6284; + int i6285; + int i6286; + int i6287; + int i6288; + int i6289; + int i6290; + int i6291; + int i6292; + int i6293; + int i6294; + int i6295; + int i6296; + int i6297; + int i6298; + int i6299; + int i6300; + int i6301; + int i6302; + int i6303; + int i6304; + int i6305; + int i6306; + int i6307; + int i6308; + int i6309; + int i6310; + int i6311; + int i6312; + int i6313; + int i6314; + int i6315; + int i6316; + int i6317; + int i6318; + int i6319; + int i6320; + int i6321; + int i6322; + int i6323; + int i6324; + int i6325; + int i6326; + int i6327; + int i6328; + int i6329; + int i6330; + int i6331; + int i6332; + int i6333; + int i6334; + int i6335; + int i6336; + int i6337; + int i6338; + int i6339; + int i6340; + int i6341; + int i6342; + int i6343; + int i6344; + int i6345; + int i6346; + int i6347; + int i6348; + int i6349; + int i6350; + int i6351; + int i6352; + int i6353; + int i6354; + int i6355; + int i6356; + int i6357; + int i6358; + int i6359; + int i6360; + int i6361; + int i6362; + int i6363; + int i6364; + int i6365; + int i6366; + int i6367; + int i6368; + int i6369; + int i6370; + int i6371; + int i6372; + int i6373; + int i6374; + int i6375; + int i6376; + int i6377; + int i6378; + int i6379; + int i6380; + int i6381; + int i6382; + int i6383; + int i6384; + int i6385; + int i6386; + int i6387; + int i6388; + int i6389; + int i6390; + int i6391; + int i6392; + int i6393; + int i6394; + int i6395; + int i6396; + int i6397; + int i6398; + int i6399; + int i6400; + int i6401; + int i6402; + int i6403; + int i6404; + int i6405; + int i6406; + int i6407; + int i6408; + int i6409; + int i6410; + int i6411; + int i6412; + int i6413; + int i6414; + int i6415; + int i6416; + int i6417; + int i6418; + int i6419; + int i6420; + int i6421; + int i6422; + int i6423; + int i6424; + int i6425; + int i6426; + int i6427; + int i6428; + int i6429; + int i6430; + int i6431; + int i6432; + int i6433; + int i6434; + int i6435; + int i6436; + int i6437; + int i6438; + int i6439; + int i6440; + int i6441; + int i6442; + int i6443; + int i6444; + int i6445; + int i6446; + int i6447; + int i6448; + int i6449; + int i6450; + int i6451; + int i6452; + int i6453; + int i6454; + int i6455; + int i6456; + int i6457; + int i6458; + int i6459; + int i6460; + int i6461; + int i6462; + int i6463; + int i6464; + int i6465; + int i6466; + int i6467; + int i6468; + int i6469; + int i6470; + int i6471; + int i6472; + int i6473; + int i6474; + int i6475; + int i6476; + int i6477; + int i6478; + int i6479; + int i6480; + int i6481; + int i6482; + int i6483; + int i6484; + int i6485; + int i6486; + int i6487; + int i6488; + int i6489; + int i6490; + int i6491; + int i6492; + int i6493; + int i6494; + int i6495; + int i6496; + int i6497; + int i6498; + int i6499; + int i6500; + int i6501; + int i6502; + int i6503; + int i6504; + int i6505; + int i6506; + int i6507; + int i6508; + int i6509; + int i6510; + int i6511; + int i6512; + int i6513; + int i6514; + int i6515; + int i6516; + int i6517; + int i6518; + int i6519; + int i6520; + int i6521; + int i6522; + int i6523; + int i6524; + int i6525; + int i6526; + int i6527; + int i6528; + int i6529; + int i6530; + int i6531; + int i6532; + int i6533; + int i6534; + int i6535; + int i6536; + int i6537; + int i6538; + int i6539; + int i6540; + int i6541; + int i6542; + int i6543; + int i6544; + int i6545; + int i6546; + int i6547; + int i6548; + int i6549; + int i6550; + int i6551; + int i6552; + int i6553; + int i6554; + int i6555; + int i6556; + int i6557; + int i6558; + int i6559; + int i6560; + int i6561; + int i6562; + int i6563; + int i6564; + int i6565; + int i6566; + int i6567; + int i6568; + int i6569; + int i6570; + int i6571; + int i6572; + int i6573; + int i6574; + int i6575; + int i6576; + int i6577; + int i6578; + int i6579; + int i6580; + int i6581; + int i6582; + int i6583; + int i6584; + int i6585; + int i6586; + int i6587; + int i6588; + int i6589; + int i6590; + int i6591; + int i6592; + int i6593; + int i6594; + int i6595; + int i6596; + int i6597; + int i6598; + int i6599; + int i6600; + int i6601; + int i6602; + int i6603; + int i6604; + int i6605; + int i6606; + int i6607; + int i6608; + int i6609; + int i6610; + int i6611; + int i6612; + int i6613; + int i6614; + int i6615; + int i6616; + int i6617; + int i6618; + int i6619; + int i6620; + int i6621; + int i6622; + int i6623; + int i6624; + int i6625; + int i6626; + int i6627; + int i6628; + int i6629; + int i6630; + int i6631; + int i6632; + int i6633; + int i6634; + int i6635; + int i6636; + int i6637; + int i6638; + int i6639; + int i6640; + int i6641; + int i6642; + int i6643; + int i6644; + int i6645; + int i6646; + int i6647; + int i6648; + int i6649; + int i6650; + int i6651; + int i6652; + int i6653; + int i6654; + int i6655; + int i6656; + int i6657; + int i6658; + int i6659; + int i6660; + int i6661; + int i6662; + int i6663; + int i6664; + int i6665; + int i6666; + int i6667; + int i6668; + int i6669; + int i6670; + int i6671; + int i6672; + int i6673; + int i6674; + int i6675; + int i6676; + int i6677; + int i6678; + int i6679; + int i6680; + int i6681; + int i6682; + int i6683; + int i6684; + int i6685; + int i6686; + int i6687; + int i6688; + int i6689; + int i6690; + int i6691; + int i6692; + int i6693; + int i6694; + int i6695; + int i6696; + int i6697; + int i6698; + int i6699; + int i6700; + int i6701; + int i6702; + int i6703; + int i6704; + int i6705; + int i6706; + int i6707; + int i6708; + int i6709; + int i6710; + int i6711; + int i6712; + int i6713; + int i6714; + int i6715; + int i6716; + int i6717; + int i6718; + int i6719; + int i6720; + int i6721; + int i6722; + int i6723; + int i6724; + int i6725; + int i6726; + int i6727; + int i6728; + int i6729; + int i6730; + int i6731; + int i6732; + int i6733; + int i6734; + int i6735; + int i6736; + int i6737; + int i6738; + int i6739; + int i6740; + int i6741; + int i6742; + int i6743; + int i6744; + int i6745; + int i6746; + int i6747; + int i6748; + int i6749; + int i6750; + int i6751; + int i6752; + int i6753; + int i6754; + int i6755; + int i6756; + int i6757; + int i6758; + int i6759; + int i6760; + int i6761; + int i6762; + int i6763; + int i6764; + int i6765; + int i6766; + int i6767; + int i6768; + int i6769; + int i6770; + int i6771; + int i6772; + int i6773; + int i6774; + int i6775; + int i6776; + int i6777; + int i6778; + int i6779; + int i6780; + int i6781; + int i6782; + int i6783; + int i6784; + int i6785; + int i6786; + int i6787; + int i6788; + int i6789; + int i6790; + int i6791; + int i6792; + int i6793; + int i6794; + int i6795; + int i6796; + int i6797; + int i6798; + int i6799; + int i6800; + int i6801; + int i6802; + int i6803; + int i6804; + int i6805; + int i6806; + int i6807; + int i6808; + int i6809; + int i6810; + int i6811; + int i6812; + int i6813; + int i6814; + int i6815; + int i6816; + int i6817; + int i6818; + int i6819; + int i6820; + int i6821; + int i6822; + int i6823; + int i6824; + int i6825; + int i6826; + int i6827; + int i6828; + int i6829; + int i6830; + int i6831; + int i6832; + int i6833; + int i6834; + int i6835; + int i6836; + int i6837; + int i6838; + int i6839; + int i6840; + int i6841; + int i6842; + int i6843; + int i6844; + int i6845; + int i6846; + int i6847; + int i6848; + int i6849; + int i6850; + int i6851; + int i6852; + int i6853; + int i6854; + int i6855; + int i6856; + int i6857; + int i6858; + int i6859; + int i6860; + int i6861; + int i6862; + int i6863; + int i6864; + int i6865; + int i6866; + int i6867; + int i6868; + int i6869; + int i6870; + int i6871; + int i6872; + int i6873; + int i6874; + int i6875; + int i6876; + int i6877; + int i6878; + int i6879; + int i6880; + int i6881; + int i6882; + int i6883; + int i6884; + int i6885; + int i6886; + int i6887; + int i6888; + int i6889; + int i6890; + int i6891; + int i6892; + int i6893; + int i6894; + int i6895; + int i6896; + int i6897; + int i6898; + int i6899; + int i6900; + int i6901; + int i6902; + int i6903; + int i6904; + int i6905; + int i6906; + int i6907; + int i6908; + int i6909; + int i6910; + int i6911; + int i6912; + int i6913; + int i6914; + int i6915; + int i6916; + int i6917; + int i6918; + int i6919; + int i6920; + int i6921; + int i6922; + int i6923; + int i6924; + int i6925; + int i6926; + int i6927; + int i6928; + int i6929; + int i6930; + int i6931; + int i6932; + int i6933; + int i6934; + int i6935; + int i6936; + int i6937; + int i6938; + int i6939; + int i6940; + int i6941; + int i6942; + int i6943; + int i6944; + int i6945; + int i6946; + int i6947; + int i6948; + int i6949; + int i6950; + int i6951; + int i6952; + int i6953; + int i6954; + int i6955; + int i6956; + int i6957; + int i6958; + int i6959; + int i6960; + int i6961; + int i6962; + int i6963; + int i6964; + int i6965; + int i6966; + int i6967; + int i6968; + int i6969; + int i6970; + int i6971; + int i6972; + int i6973; + int i6974; + int i6975; + int i6976; + int i6977; + int i6978; + int i6979; + int i6980; + int i6981; + int i6982; + int i6983; + int i6984; + int i6985; + int i6986; + int i6987; + int i6988; + int i6989; + int i6990; + int i6991; + int i6992; + int i6993; + int i6994; + int i6995; + int i6996; + int i6997; + int i6998; + int i6999; + int i7000; + int i7001; + int i7002; + int i7003; + int i7004; + int i7005; + int i7006; + int i7007; + int i7008; + int i7009; + int i7010; + int i7011; + int i7012; + int i7013; + int i7014; + int i7015; + int i7016; + int i7017; + int i7018; + int i7019; + int i7020; + int i7021; + int i7022; + int i7023; + int i7024; + int i7025; + int i7026; + int i7027; + int i7028; + int i7029; + int i7030; + int i7031; + int i7032; + int i7033; + int i7034; + int i7035; + int i7036; + int i7037; + int i7038; + int i7039; + int i7040; + int i7041; + int i7042; + int i7043; + int i7044; + int i7045; + int i7046; + int i7047; + int i7048; + int i7049; + int i7050; + int i7051; + int i7052; + int i7053; + int i7054; + int i7055; + int i7056; + int i7057; + int i7058; + int i7059; + int i7060; + int i7061; + int i7062; + int i7063; + int i7064; + int i7065; + int i7066; + int i7067; + int i7068; + int i7069; + int i7070; + int i7071; + int i7072; + int i7073; + int i7074; + int i7075; + int i7076; + int i7077; + int i7078; + int i7079; + int i7080; + int i7081; + int i7082; + int i7083; + int i7084; + int i7085; + int i7086; + int i7087; + int i7088; + int i7089; + int i7090; + int i7091; + int i7092; + int i7093; + int i7094; + int i7095; + int i7096; + int i7097; + int i7098; + int i7099; + int i7100; + int i7101; + int i7102; + int i7103; + int i7104; + int i7105; + int i7106; + int i7107; + int i7108; + int i7109; + int i7110; + int i7111; + int i7112; + int i7113; + int i7114; + int i7115; + int i7116; + int i7117; + int i7118; + int i7119; + int i7120; + int i7121; + int i7122; + int i7123; + int i7124; + int i7125; + int i7126; + int i7127; + int i7128; + int i7129; + int i7130; + int i7131; + int i7132; + int i7133; + int i7134; + int i7135; + int i7136; + int i7137; + int i7138; + int i7139; + int i7140; + int i7141; + int i7142; + int i7143; + int i7144; + int i7145; + int i7146; + int i7147; + int i7148; + int i7149; + int i7150; + int i7151; + int i7152; + int i7153; + int i7154; + int i7155; + int i7156; + int i7157; + int i7158; + int i7159; + int i7160; + int i7161; + int i7162; + int i7163; + int i7164; + int i7165; + int i7166; + int i7167; + int i7168; + int i7169; + int i7170; + int i7171; + int i7172; + int i7173; + int i7174; + int i7175; + int i7176; + int i7177; + int i7178; + int i7179; + int i7180; + int i7181; + int i7182; + int i7183; + int i7184; + int i7185; + int i7186; + int i7187; + int i7188; + int i7189; + int i7190; + int i7191; + int i7192; + int i7193; + int i7194; + int i7195; + int i7196; + int i7197; + int i7198; + int i7199; + int i7200; + int i7201; + int i7202; + int i7203; + int i7204; + int i7205; + int i7206; + int i7207; + int i7208; + int i7209; + int i7210; + int i7211; + int i7212; + int i7213; + int i7214; + int i7215; + int i7216; + int i7217; + int i7218; + int i7219; + int i7220; + int i7221; + int i7222; + int i7223; + int i7224; + int i7225; + int i7226; + int i7227; + int i7228; + int i7229; + int i7230; + int i7231; + int i7232; + int i7233; + int i7234; + int i7235; + int i7236; + int i7237; + int i7238; + int i7239; + int i7240; + int i7241; + int i7242; + int i7243; + int i7244; + int i7245; + int i7246; + int i7247; + int i7248; + int i7249; + int i7250; + int i7251; + int i7252; + int i7253; + int i7254; + int i7255; + int i7256; + int i7257; + int i7258; + int i7259; + int i7260; + int i7261; + int i7262; + int i7263; + int i7264; + int i7265; + int i7266; + int i7267; + int i7268; + int i7269; + int i7270; + int i7271; + int i7272; + int i7273; + int i7274; + int i7275; + int i7276; + int i7277; + int i7278; + int i7279; + int i7280; + int i7281; + int i7282; + int i7283; + int i7284; + int i7285; + int i7286; + int i7287; + int i7288; + int i7289; + int i7290; + int i7291; + int i7292; + int i7293; + int i7294; + int i7295; + int i7296; + int i7297; + int i7298; + int i7299; + int i7300; + int i7301; + int i7302; + int i7303; + int i7304; + int i7305; + int i7306; + int i7307; + int i7308; + int i7309; + int i7310; + int i7311; + int i7312; + int i7313; + int i7314; + int i7315; + int i7316; + int i7317; + int i7318; + int i7319; + int i7320; + int i7321; + int i7322; + int i7323; + int i7324; + int i7325; + int i7326; + int i7327; + int i7328; + int i7329; + int i7330; + int i7331; + int i7332; + int i7333; + int i7334; + int i7335; + int i7336; + int i7337; + int i7338; + int i7339; + int i7340; + int i7341; + int i7342; + int i7343; + int i7344; + int i7345; + int i7346; + int i7347; + int i7348; + int i7349; + int i7350; + int i7351; + int i7352; + int i7353; + int i7354; + int i7355; + int i7356; + int i7357; + int i7358; + int i7359; + int i7360; + int i7361; + int i7362; + int i7363; + int i7364; + int i7365; + int i7366; + int i7367; + int i7368; + int i7369; + int i7370; + int i7371; + int i7372; + int i7373; + int i7374; + int i7375; + int i7376; + int i7377; + int i7378; + int i7379; + int i7380; + int i7381; + int i7382; + int i7383; + int i7384; + int i7385; + int i7386; + int i7387; + int i7388; + int i7389; + int i7390; + int i7391; + int i7392; + int i7393; + int i7394; + int i7395; + int i7396; + int i7397; + int i7398; + int i7399; + int i7400; + int i7401; + int i7402; + int i7403; + int i7404; + int i7405; + int i7406; + int i7407; + int i7408; + int i7409; + int i7410; + int i7411; + int i7412; + int i7413; + int i7414; + int i7415; + int i7416; + int i7417; + int i7418; + int i7419; + int i7420; + int i7421; + int i7422; + int i7423; + int i7424; + int i7425; + int i7426; + int i7427; + int i7428; + int i7429; + int i7430; + int i7431; + int i7432; + int i7433; + int i7434; + int i7435; + int i7436; + int i7437; + int i7438; + int i7439; + int i7440; + int i7441; + int i7442; + int i7443; + int i7444; + int i7445; + int i7446; + int i7447; + int i7448; + int i7449; + int i7450; + int i7451; + int i7452; + int i7453; + int i7454; + int i7455; + int i7456; + int i7457; + int i7458; + int i7459; + int i7460; + int i7461; + int i7462; + int i7463; + int i7464; + int i7465; + int i7466; + int i7467; + int i7468; + int i7469; + int i7470; + int i7471; + int i7472; + int i7473; + int i7474; + int i7475; + int i7476; + int i7477; + int i7478; + int i7479; + int i7480; + int i7481; + int i7482; + int i7483; + int i7484; + int i7485; + int i7486; + int i7487; + int i7488; + int i7489; + int i7490; + int i7491; + int i7492; + int i7493; + int i7494; + int i7495; + int i7496; + int i7497; + int i7498; + int i7499; + int i7500; + int i7501; + int i7502; + int i7503; + int i7504; + int i7505; + int i7506; + int i7507; + int i7508; + int i7509; + int i7510; + int i7511; + int i7512; + int i7513; + int i7514; + int i7515; + int i7516; + int i7517; + int i7518; + int i7519; + int i7520; + int i7521; + int i7522; + int i7523; + int i7524; + int i7525; + int i7526; + int i7527; + int i7528; + int i7529; + int i7530; + int i7531; + int i7532; + int i7533; + int i7534; + int i7535; + int i7536; + int i7537; + int i7538; + int i7539; + int i7540; + int i7541; + int i7542; + int i7543; + int i7544; + int i7545; + int i7546; + int i7547; + int i7548; + int i7549; + int i7550; + int i7551; + int i7552; + int i7553; + int i7554; + int i7555; + int i7556; + int i7557; + int i7558; + int i7559; + int i7560; + int i7561; + int i7562; + int i7563; + int i7564; + int i7565; + int i7566; + int i7567; + int i7568; + int i7569; + int i7570; + int i7571; + int i7572; + int i7573; + int i7574; + int i7575; + int i7576; + int i7577; + int i7578; + int i7579; + int i7580; + int i7581; + int i7582; + int i7583; + int i7584; + int i7585; + int i7586; + int i7587; + int i7588; + int i7589; + int i7590; + int i7591; + int i7592; + int i7593; + int i7594; + int i7595; + int i7596; + int i7597; + int i7598; + int i7599; + int i7600; + int i7601; + int i7602; + int i7603; + int i7604; + int i7605; + int i7606; + int i7607; + int i7608; + int i7609; + int i7610; + int i7611; + int i7612; + int i7613; + int i7614; + int i7615; + int i7616; + int i7617; + int i7618; + int i7619; + int i7620; + int i7621; + int i7622; + int i7623; + int i7624; + int i7625; + int i7626; + int i7627; + int i7628; + int i7629; + int i7630; + int i7631; + int i7632; + int i7633; + int i7634; + int i7635; + int i7636; + int i7637; + int i7638; + int i7639; + int i7640; + int i7641; + int i7642; + int i7643; + int i7644; + int i7645; + int i7646; + int i7647; + int i7648; + int i7649; + int i7650; + int i7651; + int i7652; + int i7653; + int i7654; + int i7655; + int i7656; + int i7657; + int i7658; + int i7659; + int i7660; + int i7661; + int i7662; + int i7663; + int i7664; + int i7665; + int i7666; + int i7667; + int i7668; + int i7669; + int i7670; + int i7671; + int i7672; + int i7673; + int i7674; + int i7675; + int i7676; + int i7677; + int i7678; + int i7679; + int i7680; + int i7681; + int i7682; + int i7683; + int i7684; + int i7685; + int i7686; + int i7687; + int i7688; + int i7689; + int i7690; + int i7691; + int i7692; + int i7693; + int i7694; + int i7695; + int i7696; + int i7697; + int i7698; + int i7699; + int i7700; + int i7701; + int i7702; + int i7703; + int i7704; + int i7705; + int i7706; + int i7707; + int i7708; + int i7709; + int i7710; + int i7711; + int i7712; + int i7713; + int i7714; + int i7715; + int i7716; + int i7717; + int i7718; + int i7719; + int i7720; + int i7721; + int i7722; + int i7723; + int i7724; + int i7725; + int i7726; + int i7727; + int i7728; + int i7729; + int i7730; + int i7731; + int i7732; + int i7733; + int i7734; + int i7735; + int i7736; + int i7737; + int i7738; + int i7739; + int i7740; + int i7741; + int i7742; + int i7743; + int i7744; + int i7745; + int i7746; + int i7747; + int i7748; + int i7749; + int i7750; + int i7751; + int i7752; + int i7753; + int i7754; + int i7755; + int i7756; + int i7757; + int i7758; + int i7759; + int i7760; + int i7761; + int i7762; + int i7763; + int i7764; + int i7765; + int i7766; + int i7767; + int i7768; + int i7769; + int i7770; + int i7771; + int i7772; + int i7773; + int i7774; + int i7775; + int i7776; + int i7777; + int i7778; + int i7779; + int i7780; + int i7781; + int i7782; + int i7783; + int i7784; + int i7785; + int i7786; + int i7787; + int i7788; + int i7789; + int i7790; + int i7791; + int i7792; + int i7793; + int i7794; + int i7795; + int i7796; + int i7797; + int i7798; + int i7799; + int i7800; + int i7801; + int i7802; + int i7803; + int i7804; + int i7805; + int i7806; + int i7807; + int i7808; + int i7809; + int i7810; + int i7811; + int i7812; + int i7813; + int i7814; + int i7815; + int i7816; + int i7817; + int i7818; + int i7819; + int i7820; + int i7821; + int i7822; + int i7823; + int i7824; + int i7825; + int i7826; + int i7827; + int i7828; + int i7829; + int i7830; + int i7831; + int i7832; + int i7833; + int i7834; + int i7835; + int i7836; + int i7837; + int i7838; + int i7839; + int i7840; + int i7841; + int i7842; + int i7843; + int i7844; + int i7845; + int i7846; + int i7847; + int i7848; + int i7849; + int i7850; + int i7851; + int i7852; + int i7853; + int i7854; + int i7855; + int i7856; + int i7857; + int i7858; + int i7859; + int i7860; + int i7861; + int i7862; + int i7863; + int i7864; + int i7865; + int i7866; + int i7867; + int i7868; + int i7869; + int i7870; + int i7871; + int i7872; + int i7873; + int i7874; + int i7875; + int i7876; + int i7877; + int i7878; + int i7879; + int i7880; + int i7881; + int i7882; + int i7883; + int i7884; + int i7885; + int i7886; + int i7887; + int i7888; + int i7889; + int i7890; + int i7891; + int i7892; + int i7893; + int i7894; + int i7895; + int i7896; + int i7897; + int i7898; + int i7899; + int i7900; + int i7901; + int i7902; + int i7903; + int i7904; + int i7905; + int i7906; + int i7907; + int i7908; + int i7909; + int i7910; + int i7911; + int i7912; + int i7913; + int i7914; + int i7915; + int i7916; + int i7917; + int i7918; + int i7919; + int i7920; + int i7921; + int i7922; + int i7923; + int i7924; + int i7925; + int i7926; + int i7927; + int i7928; + int i7929; + int i7930; + int i7931; + int i7932; + int i7933; + int i7934; + int i7935; + int i7936; + int i7937; + int i7938; + int i7939; + int i7940; + int i7941; + int i7942; + int i7943; + int i7944; + int i7945; + int i7946; + int i7947; + int i7948; + int i7949; + int i7950; + int i7951; + int i7952; + int i7953; + int i7954; + int i7955; + int i7956; + int i7957; + int i7958; + int i7959; + int i7960; + int i7961; + int i7962; + int i7963; + int i7964; + int i7965; + int i7966; + int i7967; + int i7968; + int i7969; + int i7970; + int i7971; + int i7972; + int i7973; + int i7974; + int i7975; + int i7976; + int i7977; + int i7978; + int i7979; + int i7980; + int i7981; + int i7982; + int i7983; + int i7984; + int i7985; + int i7986; + int i7987; + int i7988; + int i7989; + int i7990; + int i7991; + int i7992; + int i7993; + int i7994; + int i7995; + int i7996; + int i7997; + int i7998; + int i7999; + int i8000; + int i8001; + int i8002; + int i8003; + int i8004; + int i8005; + int i8006; + int i8007; + int i8008; + int i8009; + int i8010; + int i8011; + int i8012; + int i8013; + int i8014; + int i8015; + int i8016; + int i8017; + int i8018; + int i8019; + int i8020; + int i8021; + int i8022; + int i8023; + int i8024; + int i8025; + int i8026; + int i8027; + int i8028; + int i8029; + int i8030; + int i8031; + int i8032; + int i8033; + int i8034; + int i8035; + int i8036; + int i8037; + int i8038; + int i8039; + int i8040; + int i8041; + int i8042; + int i8043; + int i8044; + int i8045; + int i8046; + int i8047; + int i8048; + int i8049; + int i8050; + int i8051; + int i8052; + int i8053; + int i8054; + int i8055; + int i8056; + int i8057; + int i8058; + int i8059; + int i8060; + int i8061; + int i8062; + int i8063; + int i8064; + int i8065; + int i8066; + int i8067; + int i8068; + int i8069; + int i8070; + int i8071; + int i8072; + int i8073; + int i8074; + int i8075; + int i8076; + int i8077; + int i8078; + int i8079; + int i8080; + int i8081; + int i8082; + int i8083; + int i8084; + int i8085; + int i8086; + int i8087; + int i8088; + int i8089; + int i8090; + int i8091; + int i8092; + int i8093; + int i8094; + int i8095; + int i8096; + int i8097; + int i8098; + int i8099; + int i8100; + int i8101; + int i8102; + int i8103; + int i8104; + int i8105; + int i8106; + int i8107; + int i8108; + int i8109; + int i8110; + int i8111; + int i8112; + int i8113; + int i8114; + int i8115; + int i8116; + int i8117; + int i8118; + int i8119; + int i8120; + int i8121; + int i8122; + int i8123; + int i8124; + int i8125; + int i8126; + int i8127; + int i8128; + int i8129; + int i8130; + int i8131; + int i8132; + int i8133; + int i8134; + int i8135; + int i8136; + int i8137; + int i8138; + int i8139; + int i8140; + int i8141; + int i8142; + int i8143; + int i8144; + int i8145; + int i8146; + int i8147; + int i8148; + int i8149; + int i8150; + int i8151; + int i8152; + int i8153; + int i8154; + int i8155; + int i8156; + int i8157; + int i8158; + int i8159; + int i8160; + int i8161; + int i8162; + int i8163; + int i8164; + int i8165; + int i8166; + int i8167; + int i8168; + int i8169; + int i8170; + int i8171; + int i8172; + int i8173; + int i8174; + int i8175; + int i8176; + int i8177; + int i8178; + int i8179; + int i8180; + int i8181; + int i8182; + int i8183; + int i8184; + int i8185; + int i8186; + int i8187; + int i8188; + int i8189; + int i8190; + int i8191; + int i8192; + int i8193; + int i8194; + int i8195; + int i8196; + int i8197; + int i8198; + int i8199; + int i8200; + int i8201; + int i8202; + int i8203; + int i8204; + int i8205; + int i8206; + int i8207; + int i8208; + int i8209; + int i8210; + int i8211; + int i8212; + int i8213; + int i8214; + int i8215; + int i8216; + int i8217; + int i8218; + int i8219; + int i8220; + int i8221; + int i8222; + int i8223; + int i8224; + int i8225; + int i8226; + int i8227; + int i8228; + int i8229; + int i8230; + int i8231; + int i8232; + int i8233; + int i8234; + int i8235; + int i8236; + int i8237; + int i8238; + int i8239; + int i8240; + int i8241; + int i8242; + int i8243; + int i8244; + int i8245; + int i8246; + int i8247; + int i8248; + int i8249; + int i8250; + int i8251; + int i8252; + int i8253; + int i8254; + int i8255; + int i8256; + int i8257; + int i8258; + int i8259; + int i8260; + int i8261; + int i8262; + int i8263; + int i8264; + int i8265; + int i8266; + int i8267; + int i8268; + int i8269; + int i8270; + int i8271; + int i8272; + int i8273; + int i8274; + int i8275; + int i8276; + int i8277; + int i8278; + int i8279; + int i8280; + int i8281; + int i8282; + int i8283; + int i8284; + int i8285; + int i8286; + int i8287; + int i8288; + int i8289; + int i8290; + int i8291; + int i8292; + int i8293; + int i8294; + int i8295; + int i8296; + int i8297; + int i8298; + int i8299; + int i8300; + int i8301; + int i8302; + int i8303; + int i8304; + int i8305; + int i8306; + int i8307; + int i8308; + int i8309; + int i8310; + int i8311; + int i8312; + int i8313; + int i8314; + int i8315; + int i8316; + int i8317; + int i8318; + int i8319; + int i8320; + int i8321; + int i8322; + int i8323; + int i8324; + int i8325; + int i8326; + int i8327; + int i8328; + int i8329; + int i8330; + int i8331; + int i8332; + int i8333; + int i8334; + int i8335; + int i8336; + int i8337; + int i8338; + int i8339; + int i8340; + int i8341; + int i8342; + int i8343; + int i8344; + int i8345; + int i8346; + int i8347; + int i8348; + int i8349; + int i8350; + int i8351; + int i8352; + int i8353; + int i8354; + int i8355; + int i8356; + int i8357; + int i8358; + int i8359; + int i8360; + int i8361; + int i8362; + int i8363; + int i8364; + int i8365; + int i8366; + int i8367; + int i8368; + int i8369; + int i8370; + int i8371; + int i8372; + int i8373; + int i8374; + int i8375; + int i8376; + int i8377; + int i8378; + int i8379; + int i8380; + int i8381; + int i8382; + int i8383; + int i8384; + int i8385; + int i8386; + int i8387; + int i8388; + int i8389; + int i8390; + int i8391; + int i8392; + int i8393; + int i8394; + int i8395; + int i8396; + int i8397; + int i8398; + int i8399; + int i8400; + int i8401; + int i8402; + int i8403; + int i8404; + int i8405; + int i8406; + int i8407; + int i8408; + int i8409; + int i8410; + int i8411; + int i8412; + int i8413; + int i8414; + int i8415; + int i8416; + int i8417; + int i8418; + int i8419; + int i8420; + int i8421; + int i8422; + int i8423; + int i8424; + int i8425; + int i8426; + int i8427; + int i8428; + int i8429; + int i8430; + int i8431; + int i8432; + int i8433; + int i8434; + int i8435; + int i8436; + int i8437; + int i8438; + int i8439; + int i8440; + int i8441; + int i8442; + int i8443; + int i8444; + int i8445; + int i8446; + int i8447; + int i8448; + int i8449; + int i8450; + int i8451; + int i8452; + int i8453; + int i8454; + int i8455; + int i8456; + int i8457; + int i8458; + int i8459; + int i8460; + int i8461; + int i8462; + int i8463; + int i8464; + int i8465; + int i8466; + int i8467; + int i8468; + int i8469; + int i8470; + int i8471; + int i8472; + int i8473; + int i8474; + int i8475; + int i8476; + int i8477; + int i8478; + int i8479; + int i8480; + int i8481; + int i8482; + int i8483; + int i8484; + int i8485; + int i8486; + int i8487; + int i8488; + int i8489; + int i8490; + int i8491; + int i8492; + int i8493; + int i8494; + int i8495; + int i8496; + int i8497; + int i8498; + int i8499; + int i8500; + int i8501; + int i8502; + int i8503; + int i8504; + int i8505; + int i8506; + int i8507; + int i8508; + int i8509; + int i8510; + int i8511; + int i8512; + int i8513; + int i8514; + int i8515; + int i8516; + int i8517; + int i8518; + int i8519; + int i8520; + int i8521; + int i8522; + int i8523; + int i8524; + int i8525; + int i8526; + int i8527; + int i8528; + int i8529; + int i8530; + int i8531; + int i8532; + int i8533; + int i8534; + int i8535; + int i8536; + int i8537; + int i8538; + int i8539; + int i8540; + int i8541; + int i8542; + int i8543; + int i8544; + int i8545; + int i8546; + int i8547; + int i8548; + int i8549; + int i8550; + int i8551; + int i8552; + int i8553; + int i8554; + int i8555; + int i8556; + int i8557; + int i8558; + int i8559; + int i8560; + int i8561; + int i8562; + int i8563; + int i8564; + int i8565; + int i8566; + int i8567; + int i8568; + int i8569; + int i8570; + int i8571; + int i8572; + int i8573; + int i8574; + int i8575; + int i8576; + int i8577; + int i8578; + int i8579; + int i8580; + int i8581; + int i8582; + int i8583; + int i8584; + int i8585; + int i8586; + int i8587; + int i8588; + int i8589; + int i8590; + int i8591; + int i8592; + int i8593; + int i8594; + int i8595; + int i8596; + int i8597; + int i8598; + int i8599; + int i8600; + int i8601; + int i8602; + int i8603; + int i8604; + int i8605; + int i8606; + int i8607; + int i8608; + int i8609; + int i8610; + int i8611; + int i8612; + int i8613; + int i8614; + int i8615; + int i8616; + int i8617; + int i8618; + int i8619; + int i8620; + int i8621; + int i8622; + int i8623; + int i8624; + int i8625; + int i8626; + int i8627; + int i8628; + int i8629; + int i8630; + int i8631; + int i8632; + int i8633; + int i8634; + int i8635; + int i8636; + int i8637; + int i8638; + int i8639; + int i8640; + int i8641; + int i8642; + int i8643; + int i8644; + int i8645; + int i8646; + int i8647; + int i8648; + int i8649; + int i8650; + int i8651; + int i8652; + int i8653; + int i8654; + int i8655; + int i8656; + int i8657; + int i8658; + int i8659; + int i8660; + int i8661; + int i8662; + int i8663; + int i8664; + int i8665; + int i8666; + int i8667; + int i8668; + int i8669; + int i8670; + int i8671; + int i8672; + int i8673; + int i8674; + int i8675; + int i8676; + int i8677; + int i8678; + int i8679; + int i8680; + int i8681; + int i8682; + int i8683; + int i8684; + int i8685; + int i8686; + int i8687; + int i8688; + int i8689; + int i8690; + int i8691; + int i8692; + int i8693; + int i8694; + int i8695; + int i8696; + int i8697; + int i8698; + int i8699; + int i8700; + int i8701; + int i8702; + int i8703; + int i8704; + int i8705; + int i8706; + int i8707; + int i8708; + int i8709; + int i8710; + int i8711; + int i8712; + int i8713; + int i8714; + int i8715; + int i8716; + int i8717; + int i8718; + int i8719; + int i8720; + int i8721; + int i8722; + int i8723; + int i8724; + int i8725; + int i8726; + int i8727; + int i8728; + int i8729; + int i8730; + int i8731; + int i8732; + int i8733; + int i8734; + int i8735; + int i8736; + int i8737; + int i8738; + int i8739; + int i8740; + int i8741; + int i8742; + int i8743; + int i8744; + int i8745; + int i8746; + int i8747; + int i8748; + int i8749; + int i8750; + int i8751; + int i8752; + int i8753; + int i8754; + int i8755; + int i8756; + int i8757; + int i8758; + int i8759; + int i8760; + int i8761; + int i8762; + int i8763; + int i8764; + int i8765; + int i8766; + int i8767; + int i8768; + int i8769; + int i8770; + int i8771; + int i8772; + int i8773; + int i8774; + int i8775; + int i8776; + int i8777; + int i8778; + int i8779; + int i8780; + int i8781; + int i8782; + int i8783; + int i8784; + int i8785; + int i8786; + int i8787; + int i8788; + int i8789; + int i8790; + int i8791; + int i8792; + int i8793; + int i8794; + int i8795; + int i8796; + int i8797; + int i8798; + int i8799; + int i8800; + int i8801; + int i8802; + int i8803; + int i8804; + int i8805; + int i8806; + int i8807; + int i8808; + int i8809; + int i8810; + int i8811; + int i8812; + int i8813; + int i8814; + int i8815; + int i8816; + int i8817; + int i8818; + int i8819; + int i8820; + int i8821; + int i8822; + int i8823; + int i8824; + int i8825; + int i8826; + int i8827; + int i8828; + int i8829; + int i8830; + int i8831; + int i8832; + int i8833; + int i8834; + int i8835; + int i8836; + int i8837; + int i8838; + int i8839; + int i8840; + int i8841; + int i8842; + int i8843; + int i8844; + int i8845; + int i8846; + int i8847; + int i8848; + int i8849; + int i8850; + int i8851; + int i8852; + int i8853; + int i8854; + int i8855; + int i8856; + int i8857; + int i8858; + int i8859; + int i8860; + int i8861; + int i8862; + int i8863; + int i8864; + int i8865; + int i8866; + int i8867; + int i8868; + int i8869; + int i8870; + int i8871; + int i8872; + int i8873; + int i8874; + int i8875; + int i8876; + int i8877; + int i8878; + int i8879; + int i8880; + int i8881; + int i8882; + int i8883; + int i8884; + int i8885; + int i8886; + int i8887; + int i8888; + int i8889; + int i8890; + int i8891; + int i8892; + int i8893; + int i8894; + int i8895; + int i8896; + int i8897; + int i8898; + int i8899; + int i8900; + int i8901; + int i8902; + int i8903; + int i8904; + int i8905; + int i8906; + int i8907; + int i8908; + int i8909; + int i8910; + int i8911; + int i8912; + int i8913; + int i8914; + int i8915; + int i8916; + int i8917; + int i8918; + int i8919; + int i8920; + int i8921; + int i8922; + int i8923; + int i8924; + int i8925; + int i8926; + int i8927; + int i8928; + int i8929; + int i8930; + int i8931; + int i8932; + int i8933; + int i8934; + int i8935; + int i8936; + int i8937; + int i8938; + int i8939; + int i8940; + int i8941; + int i8942; + int i8943; + int i8944; + int i8945; + int i8946; + int i8947; + int i8948; + int i8949; + int i8950; + int i8951; + int i8952; + int i8953; + int i8954; + int i8955; + int i8956; + int i8957; + int i8958; + int i8959; + int i8960; + int i8961; + int i8962; + int i8963; + int i8964; + int i8965; + int i8966; + int i8967; + int i8968; + int i8969; + int i8970; + int i8971; + int i8972; + int i8973; + int i8974; + int i8975; + int i8976; + int i8977; + int i8978; + int i8979; + int i8980; + int i8981; + int i8982; + int i8983; + int i8984; + int i8985; + int i8986; + int i8987; + int i8988; + int i8989; + int i8990; + int i8991; + int i8992; + int i8993; + int i8994; + int i8995; + int i8996; + int i8997; + int i8998; + int i8999; + int i9000; + int i9001; + int i9002; + int i9003; + int i9004; + int i9005; + int i9006; + int i9007; + int i9008; + int i9009; + int i9010; + int i9011; + int i9012; + int i9013; + int i9014; + int i9015; + int i9016; + int i9017; + int i9018; + int i9019; + int i9020; + int i9021; + int i9022; + int i9023; + int i9024; + int i9025; + int i9026; + int i9027; + int i9028; + int i9029; + int i9030; + int i9031; + int i9032; + int i9033; + int i9034; + int i9035; + int i9036; + int i9037; + int i9038; + int i9039; + int i9040; + int i9041; + int i9042; + int i9043; + int i9044; + int i9045; + int i9046; + int i9047; + int i9048; + int i9049; + int i9050; + int i9051; + int i9052; + int i9053; + int i9054; + int i9055; + int i9056; + int i9057; + int i9058; + int i9059; + int i9060; + int i9061; + int i9062; + int i9063; + int i9064; + int i9065; + int i9066; + int i9067; + int i9068; + int i9069; + int i9070; + int i9071; + int i9072; + int i9073; + int i9074; + int i9075; + int i9076; + int i9077; + int i9078; + int i9079; + int i9080; + int i9081; + int i9082; + int i9083; + int i9084; + int i9085; + int i9086; + int i9087; + int i9088; + int i9089; + int i9090; + int i9091; + int i9092; + int i9093; + int i9094; + int i9095; + int i9096; + int i9097; + int i9098; + int i9099; + int i9100; + int i9101; + int i9102; + int i9103; + int i9104; + int i9105; + int i9106; + int i9107; + int i9108; + int i9109; + int i9110; + int i9111; + int i9112; + int i9113; + int i9114; + int i9115; + int i9116; + int i9117; + int i9118; + int i9119; + int i9120; + int i9121; + int i9122; + int i9123; + int i9124; + int i9125; + int i9126; + int i9127; + int i9128; + int i9129; + int i9130; + int i9131; + int i9132; + int i9133; + int i9134; + int i9135; + int i9136; + int i9137; + int i9138; + int i9139; + int i9140; + int i9141; + int i9142; + int i9143; + int i9144; + int i9145; + int i9146; + int i9147; + int i9148; + int i9149; + int i9150; + int i9151; + int i9152; + int i9153; + int i9154; + int i9155; + int i9156; + int i9157; + int i9158; + int i9159; + int i9160; + int i9161; + int i9162; + int i9163; + int i9164; + int i9165; + int i9166; + int i9167; + int i9168; + int i9169; + int i9170; + int i9171; + int i9172; + int i9173; + int i9174; + int i9175; + int i9176; + int i9177; + int i9178; + int i9179; + int i9180; + int i9181; + int i9182; + int i9183; + int i9184; + int i9185; + int i9186; + int i9187; + int i9188; + int i9189; + int i9190; + int i9191; + int i9192; + int i9193; + int i9194; + int i9195; + int i9196; + int i9197; + int i9198; + int i9199; + int i9200; + int i9201; + int i9202; + int i9203; + int i9204; + int i9205; + int i9206; + int i9207; + int i9208; + int i9209; + int i9210; + int i9211; + int i9212; + int i9213; + int i9214; + int i9215; + int i9216; + int i9217; + int i9218; + int i9219; + int i9220; + int i9221; + int i9222; + int i9223; + int i9224; + int i9225; + int i9226; + int i9227; + int i9228; + int i9229; + int i9230; + int i9231; + int i9232; + int i9233; + int i9234; + int i9235; + int i9236; + int i9237; + int i9238; + int i9239; + int i9240; + int i9241; + int i9242; + int i9243; + int i9244; + int i9245; + int i9246; + int i9247; + int i9248; + int i9249; + int i9250; + int i9251; + int i9252; + int i9253; + int i9254; + int i9255; + int i9256; + int i9257; + int i9258; + int i9259; + int i9260; + int i9261; + int i9262; + int i9263; + int i9264; + int i9265; + int i9266; + int i9267; + int i9268; + int i9269; + int i9270; + int i9271; + int i9272; + int i9273; + int i9274; + int i9275; + int i9276; + int i9277; + int i9278; + int i9279; + int i9280; + int i9281; + int i9282; + int i9283; + int i9284; + int i9285; + int i9286; + int i9287; + int i9288; + int i9289; + int i9290; + int i9291; + int i9292; + int i9293; + int i9294; + int i9295; + int i9296; + int i9297; + int i9298; + int i9299; + int i9300; + int i9301; + int i9302; + int i9303; + int i9304; + int i9305; + int i9306; + int i9307; + int i9308; + int i9309; + int i9310; + int i9311; + int i9312; + int i9313; + int i9314; + int i9315; + int i9316; + int i9317; + int i9318; + int i9319; + int i9320; + int i9321; + int i9322; + int i9323; + int i9324; + int i9325; + int i9326; + int i9327; + int i9328; + int i9329; + int i9330; + int i9331; + int i9332; + int i9333; + int i9334; + int i9335; + int i9336; + int i9337; + int i9338; + int i9339; + int i9340; + int i9341; + int i9342; + int i9343; + int i9344; + int i9345; + int i9346; + int i9347; + int i9348; + int i9349; + int i9350; + int i9351; + int i9352; + int i9353; + int i9354; + int i9355; + int i9356; + int i9357; + int i9358; + int i9359; + int i9360; + int i9361; + int i9362; + int i9363; + int i9364; + int i9365; + int i9366; + int i9367; + int i9368; + int i9369; + int i9370; + int i9371; + int i9372; + int i9373; + int i9374; + int i9375; + int i9376; + int i9377; + int i9378; + int i9379; + int i9380; + int i9381; + int i9382; + int i9383; + int i9384; + int i9385; + int i9386; + int i9387; + int i9388; + int i9389; + int i9390; + int i9391; + int i9392; + int i9393; + int i9394; + int i9395; + int i9396; + int i9397; + int i9398; + int i9399; + int i9400; + int i9401; + int i9402; + int i9403; + int i9404; + int i9405; + int i9406; + int i9407; + int i9408; + int i9409; + int i9410; + int i9411; + int i9412; + int i9413; + int i9414; + int i9415; + int i9416; + int i9417; + int i9418; + int i9419; + int i9420; + int i9421; + int i9422; + int i9423; + int i9424; + int i9425; + int i9426; + int i9427; + int i9428; + int i9429; + int i9430; + int i9431; + int i9432; + int i9433; + int i9434; + int i9435; + int i9436; + int i9437; + int i9438; + int i9439; + int i9440; + int i9441; + int i9442; + int i9443; + int i9444; + int i9445; + int i9446; + int i9447; + int i9448; + int i9449; + int i9450; + int i9451; + int i9452; + int i9453; + int i9454; + int i9455; + int i9456; + int i9457; + int i9458; + int i9459; + int i9460; + int i9461; + int i9462; + int i9463; + int i9464; + int i9465; + int i9466; + int i9467; + int i9468; + int i9469; + int i9470; + int i9471; + int i9472; + int i9473; + int i9474; + int i9475; + int i9476; + int i9477; + int i9478; + int i9479; + int i9480; + int i9481; + int i9482; + int i9483; + int i9484; + int i9485; + int i9486; + int i9487; + int i9488; + int i9489; + int i9490; + int i9491; + int i9492; + int i9493; + int i9494; + int i9495; + int i9496; + int i9497; + int i9498; + int i9499; + int i9500; + int i9501; + int i9502; + int i9503; + int i9504; + int i9505; + int i9506; + int i9507; + int i9508; + int i9509; + int i9510; + int i9511; + int i9512; + int i9513; + int i9514; + int i9515; + int i9516; + int i9517; + int i9518; + int i9519; + int i9520; + int i9521; + int i9522; + int i9523; + int i9524; + int i9525; + int i9526; + int i9527; + int i9528; + int i9529; + int i9530; + int i9531; + int i9532; + int i9533; + int i9534; + int i9535; + int i9536; + int i9537; + int i9538; + int i9539; + int i9540; + int i9541; + int i9542; + int i9543; + int i9544; + int i9545; + int i9546; + int i9547; + int i9548; + int i9549; + int i9550; + int i9551; + int i9552; + int i9553; + int i9554; + int i9555; + int i9556; + int i9557; + int i9558; + int i9559; + int i9560; + int i9561; + int i9562; + int i9563; + int i9564; + int i9565; + int i9566; + int i9567; + int i9568; + int i9569; + int i9570; + int i9571; + int i9572; + int i9573; + int i9574; + int i9575; + int i9576; + int i9577; + int i9578; + int i9579; + int i9580; + int i9581; + int i9582; + int i9583; + int i9584; + int i9585; + int i9586; + int i9587; + int i9588; + int i9589; + int i9590; + int i9591; + int i9592; + int i9593; + int i9594; + int i9595; + int i9596; + int i9597; + int i9598; + int i9599; + int i9600; + int i9601; + int i9602; + int i9603; + int i9604; + int i9605; + int i9606; + int i9607; + int i9608; + int i9609; + int i9610; + int i9611; + int i9612; + int i9613; + int i9614; + int i9615; + int i9616; + int i9617; + int i9618; + int i9619; + int i9620; + int i9621; + int i9622; + int i9623; + int i9624; + int i9625; + int i9626; + int i9627; + int i9628; + int i9629; + int i9630; + int i9631; + int i9632; + int i9633; + int i9634; + int i9635; + int i9636; + int i9637; + int i9638; + int i9639; + int i9640; + int i9641; + int i9642; + int i9643; + int i9644; + int i9645; + int i9646; + int i9647; + int i9648; + int i9649; + int i9650; + int i9651; + int i9652; + int i9653; + int i9654; + int i9655; + int i9656; + int i9657; + int i9658; + int i9659; + int i9660; + int i9661; + int i9662; + int i9663; + int i9664; + int i9665; + int i9666; + int i9667; + int i9668; + int i9669; + int i9670; + int i9671; + int i9672; + int i9673; + int i9674; + int i9675; + int i9676; + int i9677; + int i9678; + int i9679; + int i9680; + int i9681; + int i9682; + int i9683; + int i9684; + int i9685; + int i9686; + int i9687; + int i9688; + int i9689; + int i9690; + int i9691; + int i9692; + int i9693; + int i9694; + int i9695; + int i9696; + int i9697; + int i9698; + int i9699; + int i9700; + int i9701; + int i9702; + int i9703; + int i9704; + int i9705; + int i9706; + int i9707; + int i9708; + int i9709; + int i9710; + int i9711; + int i9712; + int i9713; + int i9714; + int i9715; + int i9716; + int i9717; + int i9718; + int i9719; + int i9720; + int i9721; + int i9722; + int i9723; + int i9724; + int i9725; + int i9726; + int i9727; + int i9728; + int i9729; + int i9730; + int i9731; + int i9732; + int i9733; + int i9734; + int i9735; + int i9736; + int i9737; + int i9738; + int i9739; + int i9740; + int i9741; + int i9742; + int i9743; + int i9744; + int i9745; + int i9746; + int i9747; + int i9748; + int i9749; + int i9750; + int i9751; + int i9752; + int i9753; + int i9754; + int i9755; + int i9756; + int i9757; + int i9758; + int i9759; + int i9760; + int i9761; + int i9762; + int i9763; + int i9764; + int i9765; + int i9766; + int i9767; + int i9768; + int i9769; + int i9770; + int i9771; + int i9772; + int i9773; + int i9774; + int i9775; + int i9776; + int i9777; + int i9778; + int i9779; + int i9780; + int i9781; + int i9782; + int i9783; + int i9784; + int i9785; + int i9786; + int i9787; + int i9788; + int i9789; + int i9790; + int i9791; + int i9792; + int i9793; + int i9794; + int i9795; + int i9796; + int i9797; + int i9798; + int i9799; + int i9800; + int i9801; + int i9802; + int i9803; + int i9804; + int i9805; + int i9806; + int i9807; + int i9808; + int i9809; + int i9810; + int i9811; + int i9812; + int i9813; + int i9814; + int i9815; + int i9816; + int i9817; + int i9818; + int i9819; + int i9820; + int i9821; + int i9822; + int i9823; + int i9824; + int i9825; + int i9826; + int i9827; + int i9828; + int i9829; + int i9830; + int i9831; + int i9832; + int i9833; + int i9834; + int i9835; + int i9836; + int i9837; + int i9838; + int i9839; + int i9840; + int i9841; + int i9842; + int i9843; + int i9844; + int i9845; + int i9846; + int i9847; + int i9848; + int i9849; + int i9850; + int i9851; + int i9852; + int i9853; + int i9854; + int i9855; + int i9856; + int i9857; + int i9858; + int i9859; + int i9860; + int i9861; + int i9862; + int i9863; + int i9864; + int i9865; + int i9866; + int i9867; + int i9868; + int i9869; + int i9870; + int i9871; + int i9872; + int i9873; + int i9874; + int i9875; + int i9876; + int i9877; + int i9878; + int i9879; + int i9880; + int i9881; + int i9882; + int i9883; + int i9884; + int i9885; + int i9886; + int i9887; + int i9888; + int i9889; + int i9890; + int i9891; + int i9892; + int i9893; + int i9894; + int i9895; + int i9896; + int i9897; + int i9898; + int i9899; + int i9900; + int i9901; + int i9902; + int i9903; + int i9904; + int i9905; + int i9906; + int i9907; + int i9908; + int i9909; + int i9910; + int i9911; + int i9912; + int i9913; + int i9914; + int i9915; + int i9916; + int i9917; + int i9918; + int i9919; + int i9920; + int i9921; + int i9922; + int i9923; + int i9924; + int i9925; + int i9926; + int i9927; + int i9928; + int i9929; + int i9930; + int i9931; + int i9932; + int i9933; + int i9934; + int i9935; + int i9936; + int i9937; + int i9938; + int i9939; + int i9940; + int i9941; + int i9942; + int i9943; + int i9944; + int i9945; + int i9946; + int i9947; + int i9948; + int i9949; + int i9950; + int i9951; + int i9952; + int i9953; + int i9954; + int i9955; + int i9956; + int i9957; + int i9958; + int i9959; + int i9960; + int i9961; + int i9962; + int i9963; + int i9964; + int i9965; + int i9966; + int i9967; + int i9968; + int i9969; + int i9970; + int i9971; + int i9972; + int i9973; + int i9974; + int i9975; + int i9976; + int i9977; + int i9978; + int i9979; + int i9980; + int i9981; + int i9982; + int i9983; + int i9984; + int i9985; + int i9986; + int i9987; + int i9988; + int i9989; + int i9990; + int i9991; + int i9992; + int i9993; + int i9994; + int i9995; + int i9996; + int i9997; + int i9998; + int i9999; + int i10000; + int i10001; + int i10002; + int i10003; + int i10004; + int i10005; + int i10006; + int i10007; + int i10008; + int i10009; + int i10010; + int i10011; + int i10012; + int i10013; + int i10014; + int i10015; + int i10016; + int i10017; + int i10018; + int i10019; + int i10020; + int i10021; + int i10022; + int i10023; + int i10024; + int i10025; + int i10026; + int i10027; + int i10028; + int i10029; + int i10030; + int i10031; + int i10032; + int i10033; + int i10034; + int i10035; + int i10036; + int i10037; + int i10038; + int i10039; + int i10040; + int i10041; + int i10042; + int i10043; + int i10044; + int i10045; + int i10046; + int i10047; + int i10048; + int i10049; + int i10050; + int i10051; + int i10052; + int i10053; + int i10054; + int i10055; + int i10056; + int i10057; + int i10058; + int i10059; + int i10060; + int i10061; + int i10062; + int i10063; + int i10064; + int i10065; + int i10066; + int i10067; + int i10068; + int i10069; + int i10070; + int i10071; + int i10072; + int i10073; + int i10074; + int i10075; + int i10076; + int i10077; + int i10078; + int i10079; + int i10080; + int i10081; + int i10082; + int i10083; + int i10084; + int i10085; + int i10086; + int i10087; + int i10088; + int i10089; + int i10090; + int i10091; + int i10092; + int i10093; + int i10094; + int i10095; + int i10096; + int i10097; + int i10098; + int i10099; + int i10100; + int i10101; + int i10102; + int i10103; + int i10104; + int i10105; + int i10106; + int i10107; + int i10108; + int i10109; + int i10110; + int i10111; + int i10112; + int i10113; + int i10114; + int i10115; + int i10116; + int i10117; + int i10118; + int i10119; + int i10120; + int i10121; + int i10122; + int i10123; + int i10124; + int i10125; + int i10126; + int i10127; + int i10128; + int i10129; + int i10130; + int i10131; + int i10132; + int i10133; + int i10134; + int i10135; + int i10136; + int i10137; + int i10138; + int i10139; + int i10140; + int i10141; + int i10142; + int i10143; + int i10144; + int i10145; + int i10146; + int i10147; + int i10148; + int i10149; + int i10150; + int i10151; + int i10152; + int i10153; + int i10154; + int i10155; + int i10156; + int i10157; + int i10158; + int i10159; + int i10160; + int i10161; + int i10162; + int i10163; + int i10164; + int i10165; + int i10166; + int i10167; + int i10168; + int i10169; + int i10170; + int i10171; + int i10172; + int i10173; + int i10174; + int i10175; + int i10176; + int i10177; + int i10178; + int i10179; + int i10180; + int i10181; + int i10182; + int i10183; + int i10184; + int i10185; + int i10186; + int i10187; + int i10188; + int i10189; + int i10190; + int i10191; + int i10192; + int i10193; + int i10194; + int i10195; + int i10196; + int i10197; + int i10198; + int i10199; + int i10200; + int i10201; + int i10202; + int i10203; + int i10204; + int i10205; + int i10206; + int i10207; + int i10208; + int i10209; + int i10210; + int i10211; + int i10212; + int i10213; + int i10214; + int i10215; + int i10216; + int i10217; + int i10218; + int i10219; + int i10220; + int i10221; + int i10222; + int i10223; + int i10224; + int i10225; + int i10226; + int i10227; + int i10228; + int i10229; + int i10230; + int i10231; + int i10232; + int i10233; + int i10234; + int i10235; + int i10236; + int i10237; + int i10238; + int i10239; + int i10240; + int i10241; + int i10242; + int i10243; + int i10244; + int i10245; + int i10246; + int i10247; + int i10248; + int i10249; + int i10250; + int i10251; + int i10252; + int i10253; + int i10254; + int i10255; + int i10256; + int i10257; + int i10258; + int i10259; + int i10260; + int i10261; + int i10262; + int i10263; + int i10264; + int i10265; + int i10266; + int i10267; + int i10268; + int i10269; + int i10270; + int i10271; + int i10272; + int i10273; + int i10274; + int i10275; + int i10276; + int i10277; + int i10278; + int i10279; + int i10280; + int i10281; + int i10282; + int i10283; + int i10284; + int i10285; + int i10286; + int i10287; + int i10288; + int i10289; + int i10290; + int i10291; + int i10292; + int i10293; + int i10294; + int i10295; + int i10296; + int i10297; + int i10298; + int i10299; + int i10300; + int i10301; + int i10302; + int i10303; + int i10304; + int i10305; + int i10306; + int i10307; + int i10308; + int i10309; + int i10310; + int i10311; + int i10312; + int i10313; + int i10314; + int i10315; + int i10316; + int i10317; + int i10318; + int i10319; + int i10320; + int i10321; + int i10322; + int i10323; + int i10324; + int i10325; + int i10326; + int i10327; + int i10328; + int i10329; + int i10330; + int i10331; + int i10332; + int i10333; + int i10334; + int i10335; + int i10336; + int i10337; + int i10338; + int i10339; + int i10340; + int i10341; + int i10342; + int i10343; + int i10344; + int i10345; + int i10346; + int i10347; + int i10348; + int i10349; + int i10350; + int i10351; + int i10352; + int i10353; + int i10354; + int i10355; + int i10356; + int i10357; + int i10358; + int i10359; + int i10360; + int i10361; + int i10362; + int i10363; + int i10364; + int i10365; + int i10366; + int i10367; + int i10368; + int i10369; + int i10370; + int i10371; + int i10372; + int i10373; + int i10374; + int i10375; + int i10376; + int i10377; + int i10378; + int i10379; + int i10380; + int i10381; + int i10382; + int i10383; + int i10384; + int i10385; + int i10386; + int i10387; + int i10388; + int i10389; + int i10390; + int i10391; + int i10392; + int i10393; + int i10394; + int i10395; + int i10396; + int i10397; + int i10398; + int i10399; + int i10400; + int i10401; + int i10402; + int i10403; + int i10404; + int i10405; + int i10406; + int i10407; + int i10408; + int i10409; + int i10410; + int i10411; + int i10412; + int i10413; + int i10414; + int i10415; + int i10416; + int i10417; + int i10418; + int i10419; + int i10420; + int i10421; + int i10422; + int i10423; + int i10424; + int i10425; + int i10426; + int i10427; + int i10428; + int i10429; + int i10430; + int i10431; + int i10432; + int i10433; + int i10434; + int i10435; + int i10436; + int i10437; + int i10438; + int i10439; + int i10440; + int i10441; + int i10442; + int i10443; + int i10444; + int i10445; + int i10446; + int i10447; + int i10448; + int i10449; + int i10450; + int i10451; + int i10452; + int i10453; + int i10454; + int i10455; + int i10456; + int i10457; + int i10458; + int i10459; + int i10460; + int i10461; + int i10462; + int i10463; + int i10464; + int i10465; + int i10466; + int i10467; + int i10468; + int i10469; + int i10470; + int i10471; + int i10472; + int i10473; + int i10474; + int i10475; + int i10476; + int i10477; + int i10478; + int i10479; + int i10480; + int i10481; + int i10482; + int i10483; + int i10484; + int i10485; + int i10486; + int i10487; + int i10488; + int i10489; + int i10490; + int i10491; + int i10492; + int i10493; + int i10494; + int i10495; + int i10496; + int i10497; + int i10498; + int i10499; + int i10500; + int i10501; + int i10502; + int i10503; + int i10504; + int i10505; + int i10506; + int i10507; + int i10508; + int i10509; + int i10510; + int i10511; + int i10512; + int i10513; + int i10514; + int i10515; + int i10516; + int i10517; + int i10518; + int i10519; + int i10520; + int i10521; + int i10522; + int i10523; + int i10524; + int i10525; + int i10526; + int i10527; + int i10528; + int i10529; + int i10530; + int i10531; + int i10532; + int i10533; + int i10534; + int i10535; + int i10536; + int i10537; + int i10538; + int i10539; + int i10540; + int i10541; + int i10542; + int i10543; + int i10544; + int i10545; + int i10546; + int i10547; + int i10548; + int i10549; + int i10550; + int i10551; + int i10552; + int i10553; + int i10554; + int i10555; + int i10556; + int i10557; + int i10558; + int i10559; + int i10560; + int i10561; + int i10562; + int i10563; + int i10564; + int i10565; + int i10566; + int i10567; + int i10568; + int i10569; + int i10570; + int i10571; + int i10572; + int i10573; + int i10574; + int i10575; + int i10576; + int i10577; + int i10578; + int i10579; + int i10580; + int i10581; + int i10582; + int i10583; + int i10584; + int i10585; + int i10586; + int i10587; + int i10588; + int i10589; + int i10590; + int i10591; + int i10592; + int i10593; + int i10594; + int i10595; + int i10596; + int i10597; + int i10598; + int i10599; + int i10600; + int i10601; + int i10602; + int i10603; + int i10604; + int i10605; + int i10606; + int i10607; + int i10608; + int i10609; + int i10610; + int i10611; + int i10612; + int i10613; + int i10614; + int i10615; + int i10616; + int i10617; + int i10618; + int i10619; + int i10620; + int i10621; + int i10622; + int i10623; + int i10624; + int i10625; + int i10626; + int i10627; + int i10628; + int i10629; + int i10630; + int i10631; + int i10632; + int i10633; + int i10634; + int i10635; + int i10636; + int i10637; + int i10638; + int i10639; + int i10640; + int i10641; + int i10642; + int i10643; + int i10644; + int i10645; + int i10646; + int i10647; + int i10648; + int i10649; + int i10650; + int i10651; + int i10652; + int i10653; + int i10654; + int i10655; + int i10656; + int i10657; + int i10658; + int i10659; + int i10660; + int i10661; + int i10662; + int i10663; + int i10664; + int i10665; + int i10666; + int i10667; + int i10668; + int i10669; + int i10670; + int i10671; + int i10672; + int i10673; + int i10674; + int i10675; + int i10676; + int i10677; + int i10678; + int i10679; + int i10680; + int i10681; + int i10682; + int i10683; + int i10684; + int i10685; + int i10686; + int i10687; + int i10688; + int i10689; + int i10690; + int i10691; + int i10692; + int i10693; + int i10694; + int i10695; + int i10696; + int i10697; + int i10698; + int i10699; + int i10700; + int i10701; + int i10702; + int i10703; + int i10704; + int i10705; + int i10706; + int i10707; + int i10708; + int i10709; + int i10710; + int i10711; + int i10712; + int i10713; + int i10714; + int i10715; + int i10716; + int i10717; + int i10718; + int i10719; + int i10720; + int i10721; + int i10722; + int i10723; + int i10724; + int i10725; + int i10726; + int i10727; + int i10728; + int i10729; + int i10730; + int i10731; + int i10732; + int i10733; + int i10734; + int i10735; + int i10736; + int i10737; + int i10738; + int i10739; + int i10740; + int i10741; + int i10742; + int i10743; + int i10744; + int i10745; + int i10746; + int i10747; + int i10748; + int i10749; + int i10750; + int i10751; + int i10752; + int i10753; + int i10754; + int i10755; + int i10756; + int i10757; + int i10758; + int i10759; + int i10760; + int i10761; + int i10762; + int i10763; + int i10764; + int i10765; + int i10766; + int i10767; + int i10768; + int i10769; + int i10770; + int i10771; + int i10772; + int i10773; + int i10774; + int i10775; + int i10776; + int i10777; + int i10778; + int i10779; + int i10780; + int i10781; + int i10782; + int i10783; + int i10784; + int i10785; + int i10786; + int i10787; + int i10788; + int i10789; + int i10790; + int i10791; + int i10792; + int i10793; + int i10794; + int i10795; + int i10796; + int i10797; + int i10798; + int i10799; + + if (unlikely) { + // Since Foo is not loaded this will turn into an uncommon trap + Class c = Foo.class; + + StringBuilder sb = new StringBuilder(); + } + } +} diff --git a/hotspot/test/gc/arguments/TestMaxHeapSizeTools.java b/hotspot/test/gc/arguments/TestMaxHeapSizeTools.java index cb7d841355e..0e07f794194 100644 --- a/hotspot/test/gc/arguments/TestMaxHeapSizeTools.java +++ b/hotspot/test/gc/arguments/TestMaxHeapSizeTools.java @@ -64,32 +64,29 @@ class TestMaxHeapSizeTools { long newPlusOldSize = values[0] + values[1]; long smallValue = newPlusOldSize / 2; long largeValue = newPlusOldSize * 2; + long maxHeapSize = largeValue + (2 * 1024 * 1024); // -Xms is not set - checkErgonomics(new String[] { gcflag, "-Xmx16M" }, values, -1, -1); - checkErgonomics(new String[] { gcflag, "-Xmx16M", "-XX:InitialHeapSize=" + smallValue }, values, smallValue, smallValue); - checkErgonomics(new String[] { gcflag, "-Xmx16M", "-XX:InitialHeapSize=" + largeValue }, values, -1, largeValue); - checkErgonomics(new String[] { gcflag, "-Xmx16M", "-XX:InitialHeapSize=0" }, values, -1, -1); + checkErgonomics(new String[] { gcflag, "-Xmx" + maxHeapSize }, values, -1, -1); + checkErgonomics(new String[] { gcflag, "-Xmx" + maxHeapSize, "-XX:InitialHeapSize=" + smallValue }, values, -1, smallValue); + checkErgonomics(new String[] { gcflag, "-Xmx" + maxHeapSize, "-XX:InitialHeapSize=" + largeValue }, values, -1, largeValue); + checkErgonomics(new String[] { gcflag, "-Xmx" + maxHeapSize, "-XX:InitialHeapSize=0" }, values, -1, -1); // -Xms is set to zero - checkErgonomics(new String[] { gcflag, "-Xmx16M", "-Xms0" }, values, -1, -1); - checkErgonomics(new String[] { gcflag, "-Xmx16M", "-Xms0", "-XX:InitialHeapSize=" + smallValue }, values, smallValue, smallValue); - checkErgonomics(new String[] { gcflag, "-Xmx16M", "-Xms0", "-XX:InitialHeapSize=" + largeValue }, values, -1, largeValue); - checkErgonomics(new String[] { gcflag, "-Xmx16M", "-Xms0", "-XX:InitialHeapSize=0" }, values, -1, -1); + checkErgonomics(new String[] { gcflag, "-Xmx" + maxHeapSize, "-Xms0" }, values, -1, -1); + checkErgonomics(new String[] { gcflag, "-Xmx" + maxHeapSize, "-Xms0", "-XX:InitialHeapSize=" + smallValue }, values, -1, smallValue); + checkErgonomics(new String[] { gcflag, "-Xmx" + maxHeapSize, "-Xms0", "-XX:InitialHeapSize=" + largeValue }, values, -1, largeValue); + checkErgonomics(new String[] { gcflag, "-Xmx" + maxHeapSize, "-Xms0", "-XX:InitialHeapSize=0" }, values, -1, -1); // -Xms is set to small value - checkErgonomics(new String[] { gcflag, "-Xmx16M", "-Xms" + smallValue }, values, -1, -1); - checkErgonomics(new String[] { gcflag, "-Xmx16M", "-Xms" + smallValue, "-XX:InitialHeapSize=" + smallValue }, values, smallValue, smallValue); - checkErgonomics(new String[] { gcflag, "-Xmx16M", "-Xms" + smallValue, "-XX:InitialHeapSize=" + largeValue }, values, smallValue, largeValue); - checkErgonomics(new String[] { gcflag, "-Xmx16M", "-Xms" + smallValue, "-XX:InitialHeapSize=0" }, values, smallValue, -1); + checkErgonomics(new String[] { gcflag, "-Xmx" + maxHeapSize, "-Xms" + smallValue }, values, -1, -1); + checkErgonomics(new String[] { gcflag, "-Xmx" + maxHeapSize, "-Xms" + smallValue, "-XX:InitialHeapSize=" + smallValue }, values, smallValue, smallValue); + checkErgonomics(new String[] { gcflag, "-Xmx" + maxHeapSize, "-Xms" + smallValue, "-XX:InitialHeapSize=" + largeValue }, values, smallValue, largeValue); + checkErgonomics(new String[] { gcflag, "-Xmx" + maxHeapSize, "-Xms" + smallValue, "-XX:InitialHeapSize=0" }, values, smallValue, -1); // -Xms is set to large value - checkErgonomics(new String[] { gcflag, "-Xmx16M", "-Xms" + largeValue }, values, largeValue, largeValue); - // the next case has already been checked elsewhere and gives an error - // checkErgonomics(new String[] { gcflag, "-Xmx16M", "-Xms" + largeValue, "-XX:InitialHeapSize=" + smallValue }, values, smallValue, smallValue); - // the next case has already been checked elsewhere too - // checkErgonomics(new String[] { gcflag, "-Xmx16M", "-Xms" + largeValue, "-XX:InitialHeapSize=" + largeValue }, values, values[0], largeValue); - checkErgonomics(new String[] { gcflag, "-Xmx16M", "-Xms" + largeValue, "-XX:InitialHeapSize=0" }, values, largeValue, -1); + checkErgonomics(new String[] { gcflag, "-Xmx" + maxHeapSize, "-Xms" + largeValue }, values, largeValue, largeValue); + checkErgonomics(new String[] { gcflag, "-Xmx" + maxHeapSize, "-Xms" + largeValue, "-XX:InitialHeapSize=0" }, values, largeValue, -1); } private static long align_up(long value, long alignment) { diff --git a/hotspot/test/gc/arguments/TestMaxNewSize.java b/hotspot/test/gc/arguments/TestMaxNewSize.java new file mode 100644 index 00000000000..af20cb819e3 --- /dev/null +++ b/hotspot/test/gc/arguments/TestMaxNewSize.java @@ -0,0 +1,122 @@ +/* +* 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 TestMaxNewSize + * @key gc + * @bug 7057939 + * @summary Make sure that MaxNewSize always has a useful value after argument + * processing. + * @library /testlibrary + * @build TestMaxNewSize + * @run main TestMaxNewSize -XX:+UseSerialGC + * @run main TestMaxNewSize -XX:+UseParallelGC + * @run main TestMaxNewSize -XX:+UseConcMarkSweepGC + * @run main TestMaxNewSize -XX:+UseG1GC + * @author thomas.schatzl@oracle.com, jesper.wilhelmsson@oracle.com + */ + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import java.math.BigInteger; + +import java.util.ArrayList; +import java.util.Arrays; + +import com.oracle.java.testlibrary.*; + +public class TestMaxNewSize { + + private static void checkMaxNewSize(String[] flags, int heapsize) throws Exception { + BigInteger actual = new BigInteger(getMaxNewSize(flags)); + System.out.println(actual); + if (actual.compareTo(new BigInteger((new Long(heapsize)).toString())) == 1) { + throw new RuntimeException("MaxNewSize value set to \"" + actual + + "\", expected otherwise when running with the following flags: " + Arrays.asList(flags).toString()); + } + } + + private static void checkIncompatibleNewSize(String[] flags) throws Exception { + ArrayList finalargs = new ArrayList(); + finalargs.addAll(Arrays.asList(flags)); + finalargs.add("-version"); + + ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(finalargs.toArray(new String[0])); + OutputAnalyzer output = new OutputAnalyzer(pb.start()); + output.shouldContain("Initial young gen size set larger than the maximum young gen size"); + } + + private static boolean isRunningG1(String[] args) { + for (int i = 0; i < args.length; i++) { + if (args[i].contains("+UseG1GC")) { + return true; + } + } + return false; + } + + private static String getMaxNewSize(String[] flags) throws Exception { + ArrayList finalargs = new ArrayList(); + finalargs.addAll(Arrays.asList(flags)); + if (isRunningG1(flags)) { + finalargs.add("-XX:G1HeapRegionSize=1M"); + } + finalargs.add("-XX:+PrintFlagsFinal"); + finalargs.add("-version"); + + ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(finalargs.toArray(new String[0])); + OutputAnalyzer output = new OutputAnalyzer(pb.start()); + output.shouldHaveExitValue(0); + String stdout = output.getStdout(); + //System.out.println(stdout); + return getFlagValue("MaxNewSize", stdout); + } + + private static String getFlagValue(String flag, String where) { + Matcher m = Pattern.compile(flag + "\\s+:?=\\s+\\d+").matcher(where); + if (!m.find()) { + throw new RuntimeException("Could not find value for flag " + flag + " in output string"); + } + String match = m.group(); + return match.substring(match.lastIndexOf(" ") + 1, match.length()); + } + + public static void main(String args[]) throws Exception { + String gcName = args[0]; + final int M32 = 32 * 1024 * 1024; + final int M64 = 64 * 1024 * 1024; + final int M96 = 96 * 1024 * 1024; + final int M128 = 128 * 1024 * 1024; + checkMaxNewSize(new String[] { gcName, "-Xmx128M" }, M128); + checkMaxNewSize(new String[] { gcName, "-Xmx128M", "-XX:NewRatio=5" }, M128); + checkMaxNewSize(new String[] { gcName, "-Xmx128M", "-XX:NewSize=32M" }, M128); + checkMaxNewSize(new String[] { gcName, "-Xmx128M", "-XX:OldSize=96M" }, M128); + checkMaxNewSize(new String[] { gcName, "-Xmx128M", "-XX:MaxNewSize=32M" }, M32); + checkMaxNewSize(new String[] { gcName, "-Xmx128M", "-XX:NewSize=32M", "-XX:MaxNewSize=32M" }, M32); + checkMaxNewSize(new String[] { gcName, "-Xmx128M", "-XX:NewRatio=6", "-XX:MaxNewSize=32M" }, M32); + checkMaxNewSize(new String[] { gcName, "-Xmx128M", "-Xms96M" }, M128); + checkMaxNewSize(new String[] { gcName, "-Xmx96M", "-Xms96M" }, M96); + checkMaxNewSize(new String[] { gcName, "-XX:NewSize=128M", "-XX:MaxNewSize=50M"}, M128); + } +} diff --git a/hotspot/test/gc/g1/TestHumongousCodeCacheRoots.java b/hotspot/test/gc/g1/TestHumongousCodeCacheRoots.java new file mode 100644 index 00000000000..0d3ad500a87 --- /dev/null +++ b/hotspot/test/gc/g1/TestHumongousCodeCacheRoots.java @@ -0,0 +1,143 @@ +/* + * 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 + * @key regression + * @key gc + * @bug 8027756 + * @library /testlibrary /testlibrary/whitebox + * @build TestHumongousCodeCacheRoots + * @run main ClassFileInstaller sun.hotspot.WhiteBox + * @summary Humongous objects may have references from the code cache + * @run main TestHumongousCodeCacheRoots +*/ + +import com.oracle.java.testlibrary.*; +import sun.hotspot.WhiteBox; + +import java.util.ArrayList; +import java.util.Arrays; + +class TestHumongousCodeCacheRootsHelper { + + static final int n = 1000000; + static final int[] AA = new int[n]; + static final int[] BB = new int[n]; + + public static void main(String args[]) throws Exception { + // do some work so that the compiler compiles this method, inlining the + // reference to the integer array (which is a humonguous object) into + // the code cache. + for(int i = 0; i < n; i++) { + AA[i] = 0; + BB[i] = 0; + } + // trigger a GC that checks that the verification code allows humongous + // objects with code cache roots; objects should be all live here. + System.gc(); + + // deoptimize everyhing: this should make all compiled code zombies. + WhiteBox wb = WhiteBox.getWhiteBox(); + wb.deoptimizeAll(); + + // trigger a GC that checks that the verification code allows humongous + // objects with code cache roots; objects should be all live here. + System.gc(); + + // wait a little for the code cache sweeper to try to clean up zombie nmethods + // and unregister the code roots. + try { Thread.sleep(5000); } catch (InterruptedException ex) { } + + // do some work on the arrays to make sure that they need to be live after the GCs + for(int i = 0; i < n; i++) { + AA[i] = 1; + BB[i] = 10; + } + + System.out.println(); + } +} + +public class TestHumongousCodeCacheRoots { + + /** + * Executes a class in a new VM process with the given parameters. + * @param vmargs Arguments to the VM to run + * @param classname Name of the class to run + * @param arguments Arguments to the class + * @param useTestDotJavaDotOpts Use test.java.opts as part of the VM argument string + * @return The OutputAnalyzer with the results for the invocation. + */ + public static OutputAnalyzer runWhiteBoxTest(String[] vmargs, String classname, String[] arguments, boolean useTestDotJavaDotOpts) throws Exception { + ArrayList finalargs = new ArrayList(); + + String[] whiteboxOpts = new String[] { + "-Xbootclasspath/a:.", + "-XX:+UnlockDiagnosticVMOptions", "-XX:+WhiteBoxAPI", + "-cp", System.getProperty("java.class.path"), + }; + + if (useTestDotJavaDotOpts) { + // System.getProperty("test.java.opts") is '' if no options is set, + // we need to skip such a result + String[] externalVMOpts = new String[0]; + if (System.getProperty("test.java.opts") != null && System.getProperty("test.java.opts").length() != 0) { + externalVMOpts = System.getProperty("test.java.opts").split(" "); + } + finalargs.addAll(Arrays.asList(externalVMOpts)); + } + + finalargs.addAll(Arrays.asList(vmargs)); + finalargs.addAll(Arrays.asList(whiteboxOpts)); + finalargs.add(classname); + finalargs.addAll(Arrays.asList(arguments)); + + ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(finalargs.toArray(new String[0])); + OutputAnalyzer output = new OutputAnalyzer(pb.start()); + output.shouldHaveExitValue(0); + + return output; + } + + public static void runTest(String compiler, String[] other) throws Exception { + ArrayList joined = new ArrayList(); + joined.add(compiler); + joined.addAll(Arrays.asList(other)); + runWhiteBoxTest(joined.toArray(new String[0]), TestHumongousCodeCacheRootsHelper.class.getName(), + new String[] {}, false); + } + + public static void main(String[] args) throws Exception { + final String[] baseArguments = new String[] { + "-XX:+UseG1GC", "-XX:G1HeapRegionSize=1M", "-Xmx100M", // make sure we get a humongous region + "-XX:+UnlockDiagnosticVMOptions", + "-XX:InitiatingHeapOccupancyPercent=1", // strong code root marking + "-XX:+G1VerifyHeapRegionCodeRoots", "-XX:+VerifyAfterGC", // make sure that verification is run + "-XX:NmethodSweepFraction=1", "-XX:NmethodSweepCheckInterval=1", // make the code cache sweep more predictable + }; + runTest("-client", baseArguments); + runTest("-server", baseArguments); + } +} + diff --git a/hotspot/test/runtime/memory/ReadFromNoaccessArea.java b/hotspot/test/runtime/memory/ReadFromNoaccessArea.java new file mode 100644 index 00000000000..1078dd2e4ea --- /dev/null +++ b/hotspot/test/runtime/memory/ReadFromNoaccessArea.java @@ -0,0 +1,80 @@ +/* + * 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 + * @summary Test that touching noaccess area in class ReservedHeapSpace results in SIGSEGV/ACCESS_VIOLATION + * @library /testlibrary /testlibrary/whitebox + * @build ReadFromNoaccessArea + * @run main ClassFileInstaller sun.hotspot.WhiteBox + * @run main ReadFromNoaccessArea + */ + +import com.oracle.java.testlibrary.*; +import sun.hotspot.WhiteBox; + +public class ReadFromNoaccessArea { + + public static void main(String args[]) throws Exception { + if (!Platform.is64bit()) { + System.out.println("ReadFromNoaccessArea tests is useful only on 64bit architecture. Passing silently."); + return; + } + + ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + "-Xbootclasspath/a:.", + "-XX:+UnlockDiagnosticVMOptions", + "-XX:+WhiteBoxAPI", + "-XX:+UseCompressedOops", + "-XX:HeapBaseMinAddress=33G", + DummyClassWithMainTryingToReadFromNoaccessArea.class.getName()); + + OutputAnalyzer output = new OutputAnalyzer(pb.start()); + System.out.println("******* Printing stdout for analysis in case of failure *******"); + System.out.println(output.getStdout()); + System.out.println("******* Printing stderr for analysis in case of failure *******"); + System.out.println(output.getStderr()); + System.out.println("***************************************************************"); + if (output.getStdout() != null && output.getStdout().contains("WB_ReadFromNoaccessArea method is useless")) { + // Test conditions broken. There is no protected page in ReservedHeapSpace in these circumstances. Silently passing test. + return; + } + if (Platform.isWindows()) { + output.shouldContain("EXCEPTION_ACCESS_VIOLATION"); + } else if (Platform.isOSX()) { + output.shouldContain("SIGBUS"); + } else { + output.shouldContain("SIGSEGV"); + } + } + + public static class DummyClassWithMainTryingToReadFromNoaccessArea { + + // This method calls whitebox method reading from noaccess area + public static void main(String args[]) throws Exception { + WhiteBox.getWhiteBox().readFromNoaccessArea(); + throw new Exception("Call of readFromNoaccessArea succeeded! This is wrong. Crash expected. Test failed."); + } + } + +} diff --git a/hotspot/test/runtime/memory/RunUnitTestsConcurrently.java b/hotspot/test/runtime/memory/RunUnitTestsConcurrently.java new file mode 100644 index 00000000000..35b855e0af3 --- /dev/null +++ b/hotspot/test/runtime/memory/RunUnitTestsConcurrently.java @@ -0,0 +1,74 @@ +/* + * 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 + * @summary Test launches unit tests inside vm concurrently + * @library /testlibrary /testlibrary/whitebox + * @build RunUnitTestsConcurrently + * @run main ClassFileInstaller sun.hotspot.WhiteBox + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI RunUnitTestsConcurrently 30 15000 + */ + +import com.oracle.java.testlibrary.*; +import sun.hotspot.WhiteBox; + +public class RunUnitTestsConcurrently { + + private static WhiteBox wb; + private static long timeout; + private static long timeStamp; + + public static class Worker implements Runnable { + @Override + public void run() { + while (System.currentTimeMillis() - timeStamp < timeout) { + WhiteBox.getWhiteBox().runMemoryUnitTests(); + } + } + } + + public static void main(String[] args) throws InterruptedException { + if (!Platform.isDebugBuild() || !Platform.is64bit()) { + return; + } + wb = WhiteBox.getWhiteBox(); + System.out.println("Starting threads"); + + int threads = Integer.valueOf(args[0]); + timeout = Long.valueOf(args[1]); + + timeStamp = System.currentTimeMillis(); + + Thread[] threadsArray = new Thread[threads]; + for (int i = 0; i < threads; i++) { + threadsArray[i] = new Thread(new Worker()); + threadsArray[i].start(); + } + for (int i = 0; i < threads; i++) { + threadsArray[i].join(); + } + + System.out.println("Quitting test."); + } +} diff --git a/hotspot/test/runtime/memory/StressVirtualSpaceResize.java b/hotspot/test/runtime/memory/StressVirtualSpaceResize.java new file mode 100644 index 00000000000..df978012080 --- /dev/null +++ b/hotspot/test/runtime/memory/StressVirtualSpaceResize.java @@ -0,0 +1,41 @@ +/* + * 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 + * @summary Stress test that expands/shrinks VirtualSpace + * @library /testlibrary /testlibrary/whitebox + * @build StressVirtualSpaceResize + * @run main ClassFileInstaller sun.hotspot.WhiteBox + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI StressVirtualSpaceResize + */ + +import sun.hotspot.WhiteBox; + +public class StressVirtualSpaceResize { + + public static void main(String args[]) throws Exception { + if (WhiteBox.getWhiteBox().stressVirtualSpaceResize(1000, 0xffffL, 0xffffL) != 0) + throw new RuntimeException("Whitebox method stressVirtualSpaceResize returned non zero exit code"); + } +} diff --git a/hotspot/test/testlibrary/whitebox/sun/hotspot/WhiteBox.java b/hotspot/test/testlibrary/whitebox/sun/hotspot/WhiteBox.java index 091b5f7543b..da1244ce093 100644 --- a/hotspot/test/testlibrary/whitebox/sun/hotspot/WhiteBox.java +++ b/hotspot/test/testlibrary/whitebox/sun/hotspot/WhiteBox.java @@ -144,4 +144,10 @@ public class WhiteBox { // force Full GC public native void fullGC(); + + // Tests on ReservedSpace/VirtualSpace classes + public native int stressVirtualSpaceResize(long reservedSpaceSize, long magnitude, long iterations); + public native void runMemoryUnitTests(); + public native void readFromNoaccessArea(); + } diff --git a/jaxp/.hgtags b/jaxp/.hgtags index d3911b41c9c..0e916a9561f 100644 --- a/jaxp/.hgtags +++ b/jaxp/.hgtags @@ -236,3 +236,5 @@ d6a32e3831aab20a9a3bc78cdc0a60aaad725c6c jdk8-b107 c1f9158fbb9c2da50f6946fffd974e8236e08447 jdk8-b112 0046d2278204b7eff76803fc4623cb48c7e6384d jdk8-b113 1b1e12117fe2840e5d21ae9a4b309e4f981f3ea8 jdk8-b114 +f610fd46463e6b0533dd92bce11a1e7d84984e64 jdk8-b115 +e757eb9aee3d6bec7da074c47e07616104a8df33 jdk8-b116 diff --git a/jaxws/.hgtags b/jaxws/.hgtags index dc8b2a85477..5a6cfd9993b 100644 --- a/jaxws/.hgtags +++ b/jaxws/.hgtags @@ -236,3 +236,5 @@ cc682329886be2fc26220fc30597ee4e5bba43ed jdk8-b110 dbdd5c76250928582cb5342bcf7b299a6007d538 jdk8-b112 9261f342aa73a79bbd1a817ae72fa72b15ef30bc jdk8-b113 9ad289610fc6effe9076280b7920d0f16470709f jdk8-b114 +e126d8eca69b83a1cc159c2375b7c33140346d2b jdk8-b115 +587560c222a2476066852224ed02d39b5090a299 jdk8-b116 diff --git a/jdk/.hgignore b/jdk/.hgignore index e849b9e6d1f..d8754b13e1f 100644 --- a/jdk/.hgignore +++ b/jdk/.hgignore @@ -1,5 +1,6 @@ ^build/ ^dist/ +^testoutput/ /nbproject/private/ ^make/netbeans/.*/build/ ^make/netbeans/.*/dist/ diff --git a/jdk/.hgtags b/jdk/.hgtags index 3b064a023d8..2ea9affc5fd 100644 --- a/jdk/.hgtags +++ b/jdk/.hgtags @@ -236,3 +236,6 @@ eea685b9ccaa1980e0a7e07d6a3a84bcc7e9ab82 jdk8-b107 f002f5f3a16cca62e139cb8eed05ffaeb373587d jdk8-b112 5b4261b4b72af53e8e178933ef6bc6c7f8cdbc60 jdk8-b113 f26a0c8071bde1e3b923713c75156e4a58955623 jdk8-b114 +f82b730c798b6bf38946baaba8a7d80fd5efaa70 jdk8-b115 +0dc0067f3b8efb299a4c23f76ee26ea64df9e1d7 jdk8-b116 +fc4ac66aa657e09de5f8257c3174f240ed0cbaf7 jdk8-b117 diff --git a/jdk/make/java/management/mapfile-vers b/jdk/make/java/management/mapfile-vers index 0ea2ab4eb06..1cf52a8c710 100644 --- a/jdk/make/java/management/mapfile-vers +++ b/jdk/make/java/management/mapfile-vers @@ -103,6 +103,7 @@ SUNWprivate_1.1 { Java_sun_management_VMManagementImpl_getSafepointCount; Java_sun_management_VMManagementImpl_getSafepointSyncTime; Java_sun_management_VMManagementImpl_getStartupTime; + Java_sun_management_VMManagementImpl_getUptime0; Java_sun_management_VMManagementImpl_getTotalApplicationNonStoppedTime; Java_sun_management_VMManagementImpl_getTotalClassCount; Java_sun_management_VMManagementImpl_getTotalCompileTime; diff --git a/jdk/make/tools/sharing/classlist.linux b/jdk/make/tools/sharing/classlist.linux index 3d73d7fc731..fe642b27eca 100644 --- a/jdk/make/tools/sharing/classlist.linux +++ b/jdk/make/tools/sharing/classlist.linux @@ -1,2327 +1,2454 @@ -java/lang/Object -java/lang/String -java/io/Serializable -java/lang/Comparable -java/lang/CharSequence -java/lang/Class -java/lang/reflect/GenericDeclaration -java/lang/reflect/Type -java/lang/reflect/AnnotatedElement -java/lang/Cloneable -java/lang/ClassLoader -java/lang/System -java/lang/Throwable -java/lang/Error -java/lang/ThreadDeath -java/lang/Exception -java/lang/RuntimeException -java/security/ProtectionDomain -java/security/AccessControlContext -java/lang/ClassNotFoundException -java/lang/NoClassDefFoundError -java/lang/LinkageError -java/lang/ClassCastException -java/lang/ArrayStoreException -java/lang/VirtualMachineError -java/lang/OutOfMemoryError -java/lang/StackOverflowError -java/lang/IllegalMonitorStateException -java/lang/ref/Reference -java/lang/ref/SoftReference -java/lang/ref/WeakReference -java/lang/ref/FinalReference -java/lang/ref/PhantomReference -java/lang/ref/Finalizer -java/lang/Thread -java/lang/Runnable -java/lang/ThreadGroup -java/lang/Thread$UncaughtExceptionHandler -java/util/Properties -java/util/Hashtable -java/util/Map -java/util/Dictionary -java/lang/reflect/AccessibleObject -java/lang/reflect/Field -java/lang/reflect/Member -java/lang/reflect/Method -java/lang/reflect/Constructor -sun/reflect/MagicAccessorImpl -sun/reflect/MethodAccessorImpl -sun/reflect/MethodAccessor -sun/reflect/ConstructorAccessorImpl -sun/reflect/ConstructorAccessor -sun/reflect/DelegatingClassLoader -sun/reflect/ConstantPool -sun/reflect/UnsafeStaticFieldAccessorImpl -sun/reflect/UnsafeFieldAccessorImpl -sun/reflect/FieldAccessorImpl -sun/reflect/FieldAccessor -java/util/Vector -java/util/List -java/util/Collection -java/lang/Iterable -java/util/RandomAccess -java/util/AbstractList -java/util/AbstractCollection -java/lang/StringBuffer -java/lang/AbstractStringBuilder -java/lang/Appendable -java/lang/StackTraceElement -java/nio/Buffer -java/lang/Boolean -java/lang/Character -java/lang/Float -java/lang/Number -java/lang/Double -java/lang/Byte -java/lang/Short -java/lang/Integer -java/lang/Long -java/lang/NullPointerException -java/lang/ArithmeticException -java/io/ObjectStreamField -java/lang/String$CaseInsensitiveComparator -java/util/Comparator -java/lang/RuntimePermission -java/security/BasicPermission -java/security/Permission -java/security/Guard -sun/misc/SoftCache -java/util/AbstractMap -java/lang/ref/ReferenceQueue -java/lang/ref/ReferenceQueue$Null -java/lang/ref/ReferenceQueue$Lock -java/util/HashMap -java/lang/annotation/Annotation -java/util/HashMap$Entry -java/util/Map$Entry -java/security/AccessController -java/lang/reflect/ReflectPermission -sun/reflect/ReflectionFactory$GetReflectionFactoryAction -java/security/PrivilegedAction -java/util/Stack -sun/reflect/ReflectionFactory -java/lang/ref/Reference$Lock -java/lang/ref/Reference$ReferenceHandler -java/lang/ref/Finalizer$FinalizerThread -java/util/Enumeration -java/util/Iterator -java/util/Hashtable$Entry -java/nio/charset/Charset -sun/nio/cs/StandardCharsets -sun/nio/cs/FastCharsetProvider -java/nio/charset/spi/CharsetProvider -sun/nio/cs/StandardCharsets$Aliases -sun/util/PreHashedMap -sun/nio/cs/StandardCharsets$Classes -sun/nio/cs/StandardCharsets$Cache -java/lang/ThreadLocal -java/util/concurrent/atomic/AtomicInteger -sun/misc/Unsafe -java/lang/NoSuchMethodError -java/lang/IncompatibleClassChangeError -sun/reflect/Reflection -java/util/Collections -java/util/Collections$EmptySet -java/util/AbstractSet -java/util/Set -java/util/Collections$EmptyList -java/util/Collections$EmptyMap -java/util/Collections$ReverseComparator -java/util/Collections$SynchronizedMap -java/lang/Class$3 -java/lang/reflect/Modifier -java/lang/reflect/ReflectAccess -sun/reflect/LangReflectAccess -java/util/Arrays -java/lang/Math -sun/nio/cs/US_ASCII -sun/nio/cs/HistoricallyNamedCharset -sun/misc/VM -java/lang/StringCoding -java/lang/ThreadLocal$ThreadLocalMap -java/lang/ThreadLocal$ThreadLocalMap$Entry -java/lang/StringCoding$StringDecoder -sun/nio/cs/US_ASCII$Decoder -java/nio/charset/CharsetDecoder -java/nio/charset/CodingErrorAction -java/nio/ByteBuffer -java/nio/HeapByteBuffer -java/nio/Bits -java/nio/ByteOrder -java/nio/CharBuffer -java/lang/Readable -java/nio/HeapCharBuffer -java/nio/charset/CoderResult -java/nio/charset/CoderResult$1 -java/nio/charset/CoderResult$Cache -java/nio/charset/CoderResult$2 -sun/misc/Version -java/io/FileInputStream -java/io/InputStream -java/io/Closeable -java/io/FileDescriptor -java/io/FileOutputStream -java/io/OutputStream -java/io/Flushable -java/io/BufferedInputStream -java/io/FilterInputStream -java/util/concurrent/atomic/AtomicReferenceFieldUpdater -java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl -sun/reflect/misc/ReflectUtil -java/io/PrintStream -java/io/FilterOutputStream -java/io/BufferedOutputStream -java/io/OutputStreamWriter -java/io/Writer -sun/nio/cs/StreamEncoder -sun/security/action/GetPropertyAction -sun/nio/cs/US_ASCII$Encoder -java/nio/charset/CharsetEncoder -sun/nio/cs/Surrogate$Parser -sun/nio/cs/Surrogate -java/io/BufferedWriter -java/lang/Runtime -java/io/File -java/io/FileSystem -java/io/UnixFileSystem -java/io/ExpiringCache -java/io/ExpiringCache$1 -java/util/LinkedHashMap -java/util/LinkedHashMap$Entry -java/lang/StringBuilder -sun/misc/SharedSecrets -java/lang/ClassLoader$3 -java/lang/StringCoding$StringEncoder -java/io/ExpiringCache$Entry -java/lang/ClassLoader$NativeLibrary -java/lang/Terminator -java/lang/Terminator$1 -sun/misc/SignalHandler -sun/misc/Signal -sun/misc/NativeSignalHandler -java/io/Console -java/io/Console$1 -sun/misc/JavaIOAccess -java/lang/Shutdown -java/util/ArrayList -java/lang/Shutdown$Lock -java/lang/ApplicationShutdownHooks -java/util/IdentityHashMap -sun/misc/OSEnvironment -java/lang/System$2 -sun/misc/JavaLangAccess -java/lang/Compiler -java/lang/Compiler$1 -sun/misc/Launcher -sun/misc/Launcher$Factory -java/net/URLStreamHandlerFactory -sun/misc/Launcher$ExtClassLoader -java/net/URLClassLoader -java/security/SecureClassLoader -sun/security/util/Debug -java/net/URLClassLoader$7 -sun/misc/JavaNetAccess -java/util/StringTokenizer -sun/misc/Launcher$ExtClassLoader$1 -java/security/PrivilegedExceptionAction -sun/misc/MetaIndex -java/io/BufferedReader -java/io/Reader -java/io/FileReader -java/io/InputStreamReader -sun/nio/cs/StreamDecoder -java/lang/reflect/Array -sun/net/www/ParseUtil -java/util/BitSet -java/io/ObjectStreamClass -java/net/URL -java/util/Locale -java/util/concurrent/ConcurrentHashMap -java/util/concurrent/ConcurrentMap -java/util/concurrent/ConcurrentHashMap$Segment -java/util/concurrent/locks/ReentrantLock -java/util/concurrent/locks/Lock -java/util/concurrent/locks/ReentrantLock$NonfairSync -java/util/concurrent/locks/ReentrantLock$Sync -java/util/concurrent/locks/AbstractQueuedSynchronizer -java/util/concurrent/locks/AbstractOwnableSynchronizer -java/util/concurrent/locks/AbstractQueuedSynchronizer$Node -java/util/concurrent/ConcurrentHashMap$HashEntry -java/lang/CharacterDataLatin1 -java/net/Parts -sun/net/www/protocol/file/Handler -java/net/URLStreamHandler -java/lang/Class$1 -sun/reflect/ReflectionFactory$1 -sun/reflect/NativeConstructorAccessorImpl -sun/reflect/DelegatingConstructorAccessorImpl -java/util/HashSet -sun/misc/URLClassPath -sun/net/www/protocol/jar/Handler -sun/misc/Launcher$AppClassLoader -sun/misc/Launcher$AppClassLoader$1 -java/lang/SystemClassLoaderAction -java/net/URLClassLoader$1 -sun/misc/URLClassPath$3 -sun/misc/URLClassPath$JarLoader -sun/misc/URLClassPath$Loader -java/security/PrivilegedActionException -sun/misc/URLClassPath$FileLoader -sun/misc/URLClassPath$FileLoader$1 -sun/misc/Resource -sun/nio/ByteBuffered -java/security/CodeSource -java/security/Permissions -java/security/PermissionCollection -sun/net/www/protocol/file/FileURLConnection -sun/net/www/URLConnection -java/net/URLConnection -java/net/UnknownContentHandler -java/net/ContentHandler -sun/net/www/MessageHeader -java/io/FilePermission -java/io/FilePermission$1 -sun/security/provider/PolicyFile -java/security/Policy -java/security/Policy$UnsupportedEmptyCollection -java/io/FilePermissionCollection -java/security/AllPermission -java/security/UnresolvedPermission -java/security/BasicPermissionCollection -java/security/Principal -java/security/cert/Certificate -java/util/AbstractList$Itr -java/util/IdentityHashMap$KeySet -java/util/IdentityHashMap$KeyIterator -java/util/IdentityHashMap$IdentityHashMapIterator -java/io/DeleteOnExitHook -java/util/LinkedHashSet -java/util/HashMap$KeySet -java/util/LinkedHashMap$KeyIterator -java/util/LinkedHashMap$LinkedHashIterator -java/awt/Frame -java/awt/MenuContainer -java/awt/Window -javax/accessibility/Accessible -java/awt/Container -java/awt/Component -java/awt/image/ImageObserver -java/lang/InterruptedException -java/awt/Label -java/util/logging/Logger -java/util/logging/Handler -java/util/logging/Level -java/util/logging/LogManager -java/util/logging/LogManager$1 -java/beans/PropertyChangeSupport -java/util/logging/LogManager$LogNode -java/util/logging/LoggingPermission -java/util/logging/LogManager$Cleaner -java/util/logging/LogManager$RootLogger -java/util/logging/LogManager$2 -java/util/Properties$LineReader -java/util/Hashtable$Enumerator -java/beans/PropertyChangeEvent -java/util/EventObject -java/awt/Component$AWTTreeLock -sun/awt/NativeLibLoader -sun/security/action/LoadLibraryAction -java/awt/GraphicsEnvironment -java/awt/GraphicsEnvironment$1 -java/lang/ProcessEnvironment -java/lang/ProcessEnvironment$Variable -java/lang/ProcessEnvironment$ExternalData -java/lang/ProcessEnvironment$Value -java/lang/ProcessEnvironment$StringEnvironment -java/util/Collections$UnmodifiableMap -java/awt/Toolkit -java/awt/Toolkit$3 -sun/util/CoreResourceBundleControl -java/util/ResourceBundle$Control -java/util/Arrays$ArrayList -java/util/Collections$UnmodifiableRandomAccessList -java/util/Collections$UnmodifiableList -java/util/Collections$UnmodifiableCollection -java/util/ResourceBundle -java/util/ResourceBundle$1 -java/util/ResourceBundle$RBClassLoader -java/util/ResourceBundle$RBClassLoader$1 -java/util/ResourceBundle$CacheKey -java/util/ResourceBundle$LoaderReference -java/util/ResourceBundle$CacheKeyReference -java/util/ResourceBundle$SingleFormatControl -sun/awt/resources/awt -java/util/ListResourceBundle -java/awt/Toolkit$1 -java/io/FileNotFoundException -java/io/IOException -java/awt/event/KeyEvent -java/awt/event/InputEvent -java/awt/event/ComponentEvent +com/sun/java/swing/SwingUtilities3 +com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI +com/sun/swing/internal/plaf/basic/resources/basic +com/sun/swing/internal/plaf/metal/resources/metal +java/applet/Applet java/awt/AWTEvent -java/awt/event/NativeLibLoader -java/util/WeakHashMap -java/util/WeakHashMap$Entry -java/awt/Component$DummyRequestFocusController -sun/awt/RequestFocusController -java/awt/LayoutManager -java/awt/LightweightDispatcher -java/awt/event/AWTEventListener -java/util/EventListener -java/awt/Dimension -java/awt/geom/Dimension2D -java/util/concurrent/atomic/AtomicBoolean -java/awt/ComponentOrientation -java/awt/Component$2 -java/lang/NoSuchMethodException -sun/awt/AppContext -sun/awt/AppContext$1 -sun/awt/AppContext$2 -sun/awt/MostRecentKeyValue -java/awt/Cursor -sun/awt/X11GraphicsEnvironment -sun/java2d/SunGraphicsEnvironment -sun/java2d/FontSupport -sun/awt/DisplayChangedListener -java/io/FilenameFilter -sun/awt/X11GraphicsEnvironment$1 -sun/awt/SunToolkit -sun/awt/WindowClosingSupport -sun/awt/WindowClosingListener -sun/awt/ComponentFactory -sun/awt/InputMethodSupport -java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject -java/util/concurrent/locks/Condition -sun/awt/AWTAutoShutdown -sun/awt/SunToolkit$6 -java/awt/Dialog$ModalExclusionType -java/lang/Enum -java/awt/Dialog -java/awt/Dialog$ModalityType -java/awt/ModalEventFilter -java/awt/EventFilter -sun/reflect/UnsafeFieldAccessorFactory -sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl -sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl -sun/awt/SunDisplayChanger -sun/java2d/SunGraphicsEnvironment$1 -java/io/StreamTokenizer -sun/font/FontManager -sun/font/FileFont -sun/font/PhysicalFont -sun/font/Font2D -sun/font/CompositeFont -java/util/HashMap$Values -java/util/HashMap$ValueIterator -java/util/HashMap$HashIterator -java/awt/Font -java/awt/geom/AffineTransform -sun/font/AttributeValues -sun/font/EAttribute -java/text/AttributedCharacterIterator$Attribute -java/lang/Class$4 -sun/reflect/NativeMethodAccessorImpl -sun/reflect/DelegatingMethodAccessorImpl -java/awt/font/TextAttribute -java/lang/Integer$IntegerCache -sun/font/TrueTypeFont -java/awt/font/FontRenderContext -java/awt/RenderingHints -sun/awt/SunHints -sun/awt/SunHints$Key -java/awt/RenderingHints$Key -sun/awt/SunHints$Value -sun/awt/SunHints$LCDContrastKey -sun/font/Type1Font -java/awt/geom/Point2D$Float -java/awt/geom/Point2D -sun/font/StrikeMetrics -java/awt/geom/Rectangle2D$Float -java/awt/geom/Rectangle2D -java/awt/geom/RectangularShape -java/awt/Shape -java/awt/geom/GeneralPath -java/awt/geom/Path2D$Float -java/awt/geom/Path2D -sun/font/CharToGlyphMapper -sun/font/PhysicalStrike -sun/font/FontStrike -sun/font/GlyphList -sun/font/StrikeCache -sun/java2d/Disposer -sun/java2d/Disposer$1 -sun/font/StrikeCache$1 -sun/awt/motif/MFontConfiguration -sun/awt/FontConfiguration -sun/awt/FontDescriptor -java/util/Scanner -java/util/regex/Pattern -java/util/regex/Pattern$Node -java/util/regex/Pattern$LastNode -java/util/regex/Pattern$GroupHead -java/util/regex/Pattern$CharPropertyNames -java/util/regex/Pattern$CharPropertyNames$1 -java/util/regex/Pattern$CharPropertyNames$CharPropertyFactory -java/util/regex/Pattern$CharPropertyNames$2 -java/util/regex/Pattern$CharPropertyNames$5 -java/util/regex/Pattern$CharPropertyNames$3 -java/util/regex/Pattern$CharPropertyNames$6 -java/util/regex/Pattern$CharPropertyNames$CloneableProperty -java/util/regex/Pattern$CharProperty -java/util/regex/Pattern$CharPropertyNames$4 -java/util/regex/Pattern$CharPropertyNames$7 -java/util/regex/Pattern$CharPropertyNames$8 -java/util/regex/Pattern$CharPropertyNames$9 -java/util/regex/Pattern$CharPropertyNames$10 -java/util/regex/Pattern$CharPropertyNames$11 -java/util/regex/Pattern$CharPropertyNames$12 -java/util/regex/Pattern$CharPropertyNames$13 -java/util/regex/Pattern$CharPropertyNames$14 -java/util/regex/Pattern$CharPropertyNames$15 -java/util/regex/Pattern$CharPropertyNames$16 -java/util/regex/Pattern$CharPropertyNames$17 -java/util/regex/Pattern$CharPropertyNames$18 -java/util/regex/Pattern$CharPropertyNames$19 -java/util/regex/Pattern$CharPropertyNames$20 -java/util/regex/Pattern$CharPropertyNames$21 -java/util/regex/Pattern$Curly -java/util/regex/Pattern$Slice -java/util/regex/Pattern$Begin -java/util/regex/Pattern$First -java/util/regex/Pattern$Start -java/util/regex/Pattern$TreeInfo -java/util/regex/Pattern$All -java/util/regex/Pattern$BitClass -java/util/regex/Pattern$BmpCharProperty -java/util/regex/Pattern$6 -java/util/regex/Pattern$CharProperty$1 -sun/nio/ch/FileChannelImpl -java/nio/channels/FileChannel -java/nio/channels/ByteChannel -java/nio/channels/ReadableByteChannel -java/nio/channels/Channel -java/nio/channels/WritableByteChannel -java/nio/channels/GatheringByteChannel -java/nio/channels/ScatteringByteChannel -java/nio/channels/spi/AbstractInterruptibleChannel -java/nio/channels/InterruptibleChannel -sun/nio/ch/Util -sun/nio/ch/IOUtil -sun/nio/ch/FileDispatcher -sun/nio/ch/NativeDispatcher -sun/nio/ch/Reflect -java/nio/MappedByteBuffer -sun/nio/ch/Reflect$1 -sun/nio/ch/NativeThreadSet -java/nio/channels/Channels -java/util/Scanner$1 -sun/misc/LRUCache -java/util/regex/Matcher -java/util/regex/MatchResult -java/text/NumberFormat -java/text/Format -java/text/spi/NumberFormatProvider -java/util/spi/LocaleServiceProvider -sun/util/LocaleServiceProviderPool -sun/util/LocaleServiceProviderPool$1 -java/util/ServiceLoader -java/util/ServiceLoader$LazyIterator -java/util/ServiceLoader$1 -java/util/HashMap$EntrySet -java/util/LinkedHashMap$EntryIterator -sun/misc/Launcher$1 -sun/misc/URLClassPath$2 -java/lang/ClassLoader$2 -sun/misc/URLClassPath$1 -java/net/URLClassLoader$3 -sun/misc/CompoundEnumeration -sun/misc/URLClassPath$JarLoader$1 -sun/misc/FileURLMapper -java/net/URLClassLoader$3$1 -sun/util/resources/LocaleData -sun/util/resources/LocaleData$1 -sun/util/resources/LocaleData$LocaleDataResourceBundleControl -sun/util/LocaleDataMetaInfo -sun/text/resources/FormatData -java/util/ResourceBundle$BundleReference -sun/text/resources/FormatData_en -sun/text/resources/FormatData_en_US -java/text/DecimalFormatSymbols -java/text/spi/DecimalFormatSymbolsProvider -java/util/Currency -java/util/Currency$1 -java/util/spi/CurrencyNameProvider -sun/util/resources/CurrencyNames -sun/util/resources/LocaleNamesBundle -sun/util/resources/OpenListResourceBundle -sun/util/resources/CurrencyNames_en_US -java/text/DecimalFormat -java/text/FieldPosition -java/text/DigitList -java/math/RoundingMode -java/util/regex/Pattern$GroupTail -java/util/regex/Pattern$Ctype -java/util/regex/Pattern$Ques -java/util/regex/Pattern$GroupCurly -java/util/regex/Pattern$5 -java/util/regex/Pattern$Loop -java/util/regex/Pattern$Prolog -java/util/regex/Pattern$BranchConn -java/util/regex/Pattern$Branch -java/nio/channels/spi/AbstractInterruptibleChannel$1 -sun/nio/ch/Interruptible -sun/nio/ch/NativeThread -sun/nio/ch/DirectBuffer -java/nio/DirectByteBuffer -java/nio/DirectByteBuffer$Deallocator -sun/misc/Cleaner -sun/nio/ch/IOStatus -java/util/regex/ASCII -java/io/DataInputStream -java/io/DataInput -java/lang/Short$ShortCache -java/util/HashMap$KeyIterator -sun/font/CompositeFontDescriptor -sun/font/Font2DHandle -sun/font/FontFamily -java/awt/GraphicsDevice -sun/awt/X11GraphicsDevice -sun/awt/X11GraphicsConfig -java/awt/GraphicsConfiguration -java/awt/ImageCapabilities -sun/java2d/x11/X11SurfaceData -sun/java2d/SurfaceData -java/awt/Transparency -sun/java2d/DisposerTarget -sun/java2d/InvalidPipeException -java/lang/IllegalStateException -sun/java2d/NullSurfaceData -sun/java2d/loops/SurfaceType -sun/awt/image/PixelConverter -sun/awt/image/PixelConverter$Xrgb -sun/awt/image/PixelConverter$Argb -sun/awt/image/PixelConverter$ArgbPre -sun/awt/image/PixelConverter$Xbgr -sun/awt/image/PixelConverter$Rgba -sun/awt/image/PixelConverter$RgbaPre -sun/awt/image/PixelConverter$Ushort565Rgb -sun/awt/image/PixelConverter$Ushort555Rgb -sun/awt/image/PixelConverter$Ushort555Rgbx -sun/awt/image/PixelConverter$Ushort4444Argb -sun/awt/image/PixelConverter$ByteGray -sun/awt/image/PixelConverter$UshortGray -sun/awt/image/PixelConverter$Rgbx -sun/awt/image/PixelConverter$Bgrx -sun/awt/image/PixelConverter$ArgbBm -java/awt/image/ColorModel -java/awt/image/DirectColorModel -java/awt/image/PackedColorModel -java/awt/color/ColorSpace -java/awt/color/ICC_Profile -java/awt/color/ICC_ProfileRGB -java/awt/color/ICC_Profile$1 -java/awt/color/ICC_ColorSpace -sun/java2d/pipe/NullPipe -sun/java2d/pipe/PixelDrawPipe -sun/java2d/pipe/PixelFillPipe -sun/java2d/pipe/ShapeDrawPipe -sun/java2d/pipe/TextPipe -sun/java2d/pipe/DrawImagePipe -java/awt/image/IndexColorModel -sun/java2d/pipe/LoopPipe -sun/java2d/pipe/OutlineTextRenderer -sun/java2d/pipe/SolidTextRenderer -sun/java2d/pipe/GlyphListLoopPipe -sun/java2d/pipe/GlyphListPipe -sun/java2d/pipe/AATextRenderer -sun/java2d/pipe/LCDTextRenderer -sun/java2d/pipe/AlphaColorPipe -sun/java2d/pipe/CompositePipe -sun/java2d/pipe/PixelToShapeConverter -sun/java2d/pipe/TextRenderer -sun/java2d/pipe/SpanClipRenderer -sun/java2d/pipe/Region -sun/java2d/pipe/RegionIterator -sun/java2d/pipe/AlphaPaintPipe -sun/java2d/pipe/SpanShapeRenderer$Composite -sun/java2d/pipe/SpanShapeRenderer -sun/java2d/pipe/GeneralCompositePipe -sun/java2d/pipe/DrawImage -sun/java2d/loops/RenderCache -sun/java2d/loops/RenderCache$Entry -sun/java2d/loops/XORComposite -java/awt/Composite -sun/font/X11TextRenderer -sun/java2d/loops/GraphicsPrimitive -sun/java2d/x11/X11PMBlitLoops -sun/java2d/loops/Blit -sun/java2d/loops/GraphicsPrimitiveMgr -sun/java2d/loops/CompositeType -sun/java2d/SunGraphics2D -sun/awt/ConstrainableGraphics -java/awt/Graphics2D -java/awt/Graphics -java/awt/Color -java/awt/Paint -java/awt/AlphaComposite -sun/java2d/loops/BlitBg -sun/java2d/loops/ScaledBlit -sun/java2d/loops/FillRect -sun/java2d/loops/FillSpans -sun/java2d/loops/DrawLine -sun/java2d/loops/DrawRect -sun/java2d/loops/DrawPolygons -sun/java2d/loops/DrawPath -sun/java2d/loops/FillPath -sun/java2d/loops/MaskBlit -sun/java2d/loops/MaskFill -sun/java2d/loops/DrawGlyphList -sun/java2d/loops/DrawGlyphListAA -sun/java2d/loops/DrawGlyphListLCD -sun/java2d/loops/TransformHelper -java/awt/BasicStroke -java/awt/Stroke -sun/misc/PerformanceLogger -sun/misc/PerformanceLogger$TimeData -sun/java2d/pipe/ValidatePipe -sun/java2d/loops/CustomComponent -sun/java2d/loops/GraphicsPrimitiveProxy -sun/java2d/loops/GeneralRenderer -sun/java2d/loops/GraphicsPrimitiveMgr$1 -sun/java2d/loops/GraphicsPrimitiveMgr$2 -sun/java2d/x11/X11PMBlitLoops$DelegateBlitLoop -sun/java2d/x11/X11PMBlitBgLoops -sun/java2d/x11/X11SurfaceData$LazyPipe -sun/awt/X11GraphicsConfig$X11GCDisposerRecord -sun/java2d/DisposerRecord -java/awt/BorderLayout -java/awt/LayoutManager2 -java/awt/Rectangle -java/awt/Toolkit$2 -sun/awt/X11/XToolkit -sun/awt/X11/XConstants -sun/awt/UNIXToolkit -java/util/TreeMap -java/util/NavigableMap -java/util/SortedMap -sun/awt/X11/XlibWrapper -sun/awt/X11/XUtilConstants -sun/awt/X11/XProtocolConstants -sun/awt/X11/XCursorFontConstants -sun/awt/X11/XlibWrapper$1 -sun/awt/X11/XToolkit$4 -sun/awt/X11/XModifierKeymap -sun/awt/X11/XWrapperBase -sun/awt/X11/Native -sun/awt/X11/Native$1 -java/awt/EventQueue -java/util/EmptyStackException -java/lang/reflect/InvocationTargetException -java/awt/EventDispatchThread -java/awt/event/PaintEvent -java/awt/event/MouseEvent -sun/awt/PeerEvent -java/awt/event/InvocationEvent -java/awt/ActiveEvent -sun/awt/X11/XToolkit$1 -sun/awt/X11/XEventDispatcher -sun/awt/SunToolkit$ModalityListenerList -sun/awt/ModalityListener -sun/awt/SunToolkit$1 -java/util/MissingResourceException -java/awt/Queue -sun/awt/PostEventQueue -java/util/LinkedList -java/util/Deque -java/util/Queue -java/util/AbstractSequentialList -sun/awt/X11/AwtScreenData -sun/awt/X11/XWM -sun/awt/X11/MWMConstants -sun/awt/X11/XAtom -java/awt/Insets -sun/awt/X11/XWM$1 -sun/awt/X11/XSetWindowAttributes -sun/awt/X11/XErrorEvent -sun/awt/X11/XNETProtocol -sun/awt/X11/XStateProtocol -sun/awt/X11/XLayerProtocol -sun/awt/X11/XProtocol -sun/awt/X11/WindowPropertyGetter -sun/awt/X11/UnsafeXDisposerRecord -sun/awt/X11/XPropertyCache -sun/awt/X11/XWINProtocol -sun/awt/X11/XAtomList -sun/awt/X11/XToolkit$3 -sun/awt/X11/XAnyEvent -java/awt/Window$WindowDisposerRecord -java/awt/KeyboardFocusManager -java/awt/KeyEventDispatcher -java/awt/KeyEventPostProcessor +java/awt/AWTEvent$1 +java/awt/AWTEventMulticaster java/awt/AWTKeyStroke java/awt/AWTKeyStroke$1 -java/awt/DefaultKeyboardFocusManager -java/awt/DefaultFocusTraversalPolicy +java/awt/ActiveEvent +java/awt/Adjustable +java/awt/AlphaComposite +java/awt/BasicStroke +java/awt/BorderLayout +java/awt/BufferCapabilities +java/awt/Canvas +java/awt/CardLayout +java/awt/CardLayout$Card +java/awt/Color +java/awt/Component +java/awt/Component$1 +java/awt/Component$3 +java/awt/Component$AWTTreeLock +java/awt/Component$AccessibleAWTComponent +java/awt/Component$BaselineResizeBehavior +java/awt/Component$BltBufferStrategy +java/awt/Component$BltSubRegionBufferStrategy +java/awt/Component$DummyRequestFocusController +java/awt/Component$FlipBufferStrategy +java/awt/ComponentOrientation +java/awt/Composite +java/awt/Conditional +java/awt/Container +java/awt/Container$1 +java/awt/Container$AccessibleAWTContainer java/awt/ContainerOrderFocusTraversalPolicy +java/awt/Cursor +java/awt/Cursor$1 +java/awt/DefaultFocusTraversalPolicy +java/awt/DefaultKeyboardFocusManager +java/awt/DefaultKeyboardFocusManager$1 +java/awt/DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent +java/awt/DefaultKeyboardFocusManager$TypeAheadMarker +java/awt/Dialog +java/awt/Dialog$ModalExclusionType +java/awt/Dialog$ModalityType +java/awt/Dimension +java/awt/Event +java/awt/EventDispatchThread +java/awt/EventDispatchThread$1 +java/awt/EventDispatchThread$HierarchyEventFilter +java/awt/EventFilter +java/awt/EventFilter$FilterAction +java/awt/EventQueue +java/awt/EventQueue$1 +java/awt/EventQueue$1AWTInvocationLock +java/awt/EventQueue$2 +java/awt/EventQueue$3 +java/awt/EventQueue$4 +java/awt/EventQueue$5 +java/awt/FlowLayout java/awt/FocusTraversalPolicy -java/util/Collections$UnmodifiableSet -sun/awt/HeadlessToolkit -sun/awt/X11/XKeyboardFocusManagerPeer -java/awt/peer/KeyboardFocusManagerPeer -sun/awt/X11/XKeyboardFocusManagerPeer$1 -sun/awt/X11/XFramePeer -java/awt/peer/FramePeer -java/awt/peer/WindowPeer -java/awt/peer/ContainerPeer -java/awt/peer/ComponentPeer -sun/awt/X11/XDecoratedPeer -sun/awt/X11/XWindowPeer -sun/awt/X11/XPanelPeer -java/awt/peer/PanelPeer -sun/awt/X11/XCanvasPeer -java/awt/peer/CanvasPeer -sun/awt/X11/XComponentPeer -java/awt/dnd/peer/DropTargetPeer -sun/awt/X11/XWindow -sun/awt/X11ComponentPeer -sun/awt/X11/XBaseWindow -sun/awt/X11/XCreateWindowParams -java/lang/Long$LongCache -sun/awt/X11/XBaseWindow$InitialiseState -sun/awt/X11/XBaseWindow$StateLock -sun/awt/X11/AwtGraphicsConfigData -sun/awt/X11/XVisualInfo -java/awt/SystemColor -sun/awt/X11/MotifColorUtilities -java/lang/StrictMath -sun/awt/X11/XRepaintArea -sun/awt/RepaintArea -sun/awt/X11/XWindowAttributesData -java/util/concurrent/locks/LockSupport -sun/awt/X11/WindowDimensions +java/awt/Font +java/awt/Font$FontAccessImpl +java/awt/FontFormatException +java/awt/FontMetrics +java/awt/Frame +java/awt/Frame$1 +java/awt/Graphics +java/awt/Graphics2D +java/awt/GraphicsCallback +java/awt/GraphicsCallback$PaintCallback +java/awt/GraphicsConfiguration +java/awt/GraphicsDevice +java/awt/GraphicsEnvironment +java/awt/GraphicsEnvironment$1 +java/awt/GridLayout +java/awt/Image +java/awt/Image$1 +java/awt/ImageCapabilities +java/awt/ImageMediaEntry +java/awt/Insets +java/awt/ItemSelectable +java/awt/KeyEventDispatcher +java/awt/KeyEventPostProcessor +java/awt/KeyboardFocusManager +java/awt/KeyboardFocusManager$1 +java/awt/KeyboardFocusManager$3 +java/awt/KeyboardFocusManager$HeavyweightFocusRequest +java/awt/KeyboardFocusManager$LightweightFocusRequest +java/awt/Label +java/awt/LayoutManager +java/awt/LayoutManager2 +java/awt/LightweightDispatcher +java/awt/LightweightDispatcher$2 +java/awt/MediaEntry +java/awt/MediaTracker +java/awt/MenuBar +java/awt/MenuComponent +java/awt/MenuContainer +java/awt/ModalEventFilter +java/awt/Paint +java/awt/Panel java/awt/Point -java/util/TreeMap$Entry -sun/nio/cs/UTF_8 -sun/nio/cs/Unicode -sun/nio/cs/UTF_8$Encoder -sun/nio/cs/UTF_8$Decoder -sun/nio/cs/Surrogate$Generator -sun/awt/X11/XPropertyEvent -sun/awt/X11/XDropTargetEventProcessor -sun/awt/X11/XDragSourceContextPeer -sun/awt/X11/XDragSourceProtocolListener -sun/awt/dnd/SunDragSourceContextPeer -java/awt/dnd/peer/DragSourceContextPeer -sun/awt/X11/XAwtState -sun/awt/X11/XBaseWindow$1 -sun/awt/X11/XRootWindow -sun/nio/cs/ISO_8859_1 -sun/nio/cs/ISO_8859_1$Encoder -sun/nio/cs/ISO_8859_1$Decoder -sun/java2d/x11/X11SurfaceData$X11WindowSurfaceData -sun/java2d/loops/RenderLoops -sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec -sun/java2d/DefaultDisposerRecord -sun/java2d/x11/X11Renderer -sun/awt/X11/XGlobalCursorManager -sun/awt/GlobalCursorManager -java/awt/Cursor$CursorDisposer -java/awt/AWTException -java/awt/HeadlessException -java/lang/UnsupportedOperationException -sun/reflect/UnsafeLongFieldAccessorImpl -sun/reflect/UnsafeIntegerFieldAccessorImpl -sun/awt/X11/XClientMessageEvent -sun/awt/X11/XIconInfo -sun/awt/X11/XAWTIcon32_java_icon16_png -sun/awt/X11/XAWTIcon32_java_icon24_png -sun/awt/X11/XAWTIcon32_java_icon32_png -sun/awt/X11/XAWTIcon32_java_icon48_png -sun/awt/X11/XSizeHints -sun/awt/X11/XContentWindow -sun/awt/X11/XFocusProxyWindow -sun/awt/X11/XWMHints -java/util/LinkedList$ListItr -java/util/ListIterator -sun/awt/SunToolkit$2 -java/awt/image/BufferStrategy +java/awt/PrintGraphics +java/awt/Queue +java/awt/Rectangle +java/awt/RenderingHints +java/awt/RenderingHints$Key +java/awt/SentEvent +java/awt/SequencedEvent +java/awt/SequencedEvent$1 +java/awt/Shape +java/awt/SplashScreen +java/awt/Stroke +java/awt/SystemColor +java/awt/Toolkit +java/awt/Toolkit$1 +java/awt/Toolkit$2 +java/awt/Toolkit$3 +java/awt/Toolkit$4 +java/awt/Toolkit$5 +java/awt/Toolkit$DesktopPropertyChangeSupport +java/awt/Toolkit$DesktopPropertyChangeSupport$1 +java/awt/Toolkit$SelectiveAWTEventListener +java/awt/Toolkit$ToolkitEventMulticaster +java/awt/Transparency +java/awt/TrayIcon +java/awt/VKCollection +java/awt/Window +java/awt/Window$1 +java/awt/Window$1DisposeAction +java/awt/Window$Type +java/awt/Window$WindowDisposerRecord +java/awt/color/ColorSpace +java/awt/color/ICC_ColorSpace +java/awt/color/ICC_Profile +java/awt/color/ICC_Profile$1 +java/awt/color/ICC_ProfileRGB +java/awt/datatransfer/Clipboard +java/awt/datatransfer/ClipboardOwner +java/awt/datatransfer/FlavorMap +java/awt/datatransfer/FlavorTable +java/awt/datatransfer/SystemFlavorMap +java/awt/datatransfer/Transferable java/awt/dnd/DropTarget +java/awt/dnd/DropTargetContext java/awt/dnd/DropTargetListener +java/awt/dnd/peer/DragSourceContextPeer +java/awt/dnd/peer/DropTargetContextPeer +java/awt/dnd/peer/DropTargetPeer +java/awt/event/AWTEventListener +java/awt/event/AWTEventListenerProxy +java/awt/event/ActionEvent +java/awt/event/ActionListener +java/awt/event/AdjustmentEvent +java/awt/event/AdjustmentListener +java/awt/event/ComponentAdapter +java/awt/event/ComponentEvent java/awt/event/ComponentListener +java/awt/event/ContainerEvent +java/awt/event/ContainerListener +java/awt/event/FocusAdapter +java/awt/event/FocusEvent java/awt/event/FocusListener -java/awt/event/HierarchyListener java/awt/event/HierarchyBoundsListener +java/awt/event/HierarchyListener +java/awt/event/InputEvent +java/awt/event/InputEvent$1 +java/awt/event/InputMethodEvent +java/awt/event/InputMethodListener +java/awt/event/InvocationEvent +java/awt/event/InvocationEvent$1 +java/awt/event/ItemEvent +java/awt/event/ItemListener +java/awt/event/KeyAdapter +java/awt/event/KeyEvent +java/awt/event/KeyEvent$1 java/awt/event/KeyListener +java/awt/event/MouseAdapter +java/awt/event/MouseEvent java/awt/event/MouseListener +java/awt/event/MouseMotionAdapter java/awt/event/MouseMotionListener java/awt/event/MouseWheelListener -java/awt/event/InputMethodListener -java/awt/event/ContainerListener -javax/accessibility/AccessibleContext -sun/reflect/UnsafeObjectFieldAccessorImpl -java/awt/peer/LightweightPeer -sun/awt/X11/XLabelPeer +java/awt/event/NativeLibLoader +java/awt/event/NativeLibLoader$1 +java/awt/event/PaintEvent +java/awt/event/TextListener +java/awt/event/WindowAdapter +java/awt/event/WindowEvent +java/awt/event/WindowFocusListener +java/awt/event/WindowListener +java/awt/event/WindowStateListener +java/awt/font/FontRenderContext +java/awt/font/GlyphVector +java/awt/font/LineMetrics +java/awt/font/TextAttribute +java/awt/geom/AffineTransform +java/awt/geom/Dimension2D +java/awt/geom/GeneralPath +java/awt/geom/Line2D +java/awt/geom/Line2D$Float +java/awt/geom/Path2D +java/awt/geom/Path2D$Float +java/awt/geom/PathIterator +java/awt/geom/Point2D +java/awt/geom/Point2D$Float +java/awt/geom/RectIterator +java/awt/geom/Rectangle2D +java/awt/geom/Rectangle2D$Float +java/awt/geom/RectangularShape +java/awt/im/InputContext +java/awt/im/InputMethodRequests +java/awt/im/spi/InputMethod +java/awt/im/spi/InputMethodContext +java/awt/im/spi/InputMethodDescriptor +java/awt/image/BufferStrategy +java/awt/image/BufferedImage +java/awt/image/BufferedImage$1 +java/awt/image/ColorModel +java/awt/image/ColorModel$1 +java/awt/image/ComponentSampleModel +java/awt/image/DataBuffer +java/awt/image/DataBuffer$1 +java/awt/image/DataBufferByte +java/awt/image/DataBufferInt +java/awt/image/DirectColorModel +java/awt/image/FilteredImageSource +java/awt/image/ImageConsumer +java/awt/image/ImageFilter +java/awt/image/ImageObserver +java/awt/image/ImageProducer +java/awt/image/IndexColorModel +java/awt/image/PackedColorModel +java/awt/image/PixelInterleavedSampleModel +java/awt/image/RGBImageFilter +java/awt/image/Raster +java/awt/image/RenderedImage +java/awt/image/SampleModel +java/awt/image/SinglePixelPackedSampleModel +java/awt/image/VolatileImage +java/awt/image/WritableRaster +java/awt/image/WritableRenderedImage +java/awt/peer/CanvasPeer +java/awt/peer/ComponentPeer +java/awt/peer/ContainerPeer +java/awt/peer/FramePeer +java/awt/peer/KeyboardFocusManagerPeer java/awt/peer/LabelPeer -sun/awt/X11/XMapEvent -sun/awt/X11/XQueryTree -sun/awt/X11/XConfigureEvent -sun/awt/X11/PropMwmHints -sun/awt/GlobalCursorManager$NativeUpdater -javax/swing/JFrame -javax/swing/WindowConstants -javax/swing/RootPaneContainer -javax/swing/TransferHandler$HasGetTransferHandler -javax/swing/JLabel -javax/swing/SwingConstants -javax/swing/JComponent -javax/swing/JComponent$1 -javax/swing/SwingUtilities -javax/swing/JRootPane -sun/security/action/GetBooleanAction -javax/swing/event/EventListenerList -javax/swing/JPanel -java/awt/FlowLayout -javax/swing/UIManager -javax/swing/UIManager$LookAndFeelInfo -sun/swing/SwingUtilities2 -sun/swing/SwingUtilities2$LSBCacheEntry -javax/swing/UIManager$LAFState -javax/swing/UIDefaults -javax/swing/MultiUIDefaults -javax/swing/UIManager$1 -javax/swing/plaf/metal/MetalLookAndFeel -javax/swing/plaf/basic/BasicLookAndFeel -javax/swing/LookAndFeel -sun/swing/DefaultLookup -javax/swing/plaf/metal/OceanTheme -javax/swing/plaf/metal/DefaultMetalTheme -javax/swing/plaf/metal/MetalTheme -javax/swing/plaf/ColorUIResource -javax/swing/plaf/UIResource -sun/swing/PrintColorUIResource -javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate -javax/swing/plaf/FontUIResource -sun/swing/SwingLazyValue -javax/swing/UIDefaults$LazyValue -javax/swing/UIDefaults$ActiveValue -javax/swing/plaf/InsetsUIResource -sun/swing/SwingUtilities2$2 -javax/swing/plaf/basic/BasicLookAndFeel$2 -javax/swing/plaf/DimensionUIResource -javax/swing/UIDefaults$LazyInputMap -java/lang/Character$CharacterCache -javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue -javax/swing/plaf/metal/MetalLookAndFeel$FontActiveValue -java/awt/print/PrinterJob -sun/swing/SwingUtilities2$AATextInfo -sun/awt/X11/XAWTXSettings -sun/awt/X11/XMSelectionListener -sun/awt/XSettings -sun/awt/X11/XMSelection -sun/awt/X11/XMSelection$1 -javax/swing/plaf/metal/MetalLookAndFeel$AATextListener +java/awt/peer/LightweightPeer +java/awt/peer/PanelPeer +java/awt/peer/SystemTrayPeer +java/awt/peer/WindowPeer +java/awt/print/PrinterGraphics +java/beans/ChangeListenerMap +java/beans/PropertyChangeEvent java/beans/PropertyChangeListener java/beans/PropertyChangeListenerProxy +java/beans/PropertyChangeSupport +java/beans/PropertyChangeSupport$PropertyChangeListenerMap +java/beans/VetoableChangeListener +java/io/Bits +java/io/BufferedInputStream +java/io/BufferedOutputStream +java/io/BufferedReader +java/io/BufferedWriter +java/io/ByteArrayInputStream +java/io/ByteArrayOutputStream +java/io/Closeable +java/io/DataInput +java/io/DataInputStream +java/io/DataOutput +java/io/DataOutputStream +java/io/DefaultFileSystem +java/io/EOFException +java/io/ExpiringCache +java/io/ExpiringCache$1 +java/io/ExpiringCache$Entry +java/io/Externalizable +java/io/File +java/io/File$PathStatus +java/io/FileDescriptor +java/io/FileDescriptor$1 +java/io/FileInputStream +java/io/FileInputStream$1 +java/io/FileNotFoundException +java/io/FileOutputStream +java/io/FileOutputStream$1 +java/io/FilePermission +java/io/FilePermission$1 +java/io/FilePermissionCollection +java/io/FileReader +java/io/FileSystem +java/io/FileWriter +java/io/FilenameFilter +java/io/FilterInputStream +java/io/FilterOutputStream +java/io/FilterReader +java/io/Flushable +java/io/IOException +java/io/InputStream +java/io/InputStreamReader +java/io/InterruptedIOException +java/io/ObjectInput +java/io/ObjectInputStream +java/io/ObjectInputStream$BlockDataInputStream +java/io/ObjectInputStream$GetField +java/io/ObjectInputStream$GetFieldImpl +java/io/ObjectInputStream$HandleTable +java/io/ObjectInputStream$HandleTable$HandleList +java/io/ObjectInputStream$PeekInputStream +java/io/ObjectInputStream$ValidationList +java/io/ObjectOutput +java/io/ObjectOutputStream +java/io/ObjectOutputStream$BlockDataOutputStream +java/io/ObjectOutputStream$HandleTable +java/io/ObjectOutputStream$ReplaceTable +java/io/ObjectStreamClass +java/io/ObjectStreamClass$1 +java/io/ObjectStreamClass$2 +java/io/ObjectStreamClass$3 +java/io/ObjectStreamClass$4 +java/io/ObjectStreamClass$5 +java/io/ObjectStreamClass$Caches +java/io/ObjectStreamClass$ClassDataSlot +java/io/ObjectStreamClass$EntryFuture +java/io/ObjectStreamClass$ExceptionInfo +java/io/ObjectStreamClass$FieldReflector +java/io/ObjectStreamClass$FieldReflectorKey +java/io/ObjectStreamClass$MemberSignature +java/io/ObjectStreamClass$WeakClassKey +java/io/ObjectStreamConstants +java/io/ObjectStreamField +java/io/OutputStream +java/io/OutputStreamWriter +java/io/PrintStream +java/io/PushbackInputStream +java/io/RandomAccessFile +java/io/RandomAccessFile$1 +java/io/Reader +java/io/SerialCallbackContext +java/io/Serializable +java/io/StreamTokenizer +java/io/StringReader +java/io/StringWriter +java/io/UnixFileSystem +java/io/UnsupportedEncodingException +java/io/Writer +java/lang/AbstractStringBuilder +java/lang/Appendable +java/lang/ApplicationShutdownHooks +java/lang/ApplicationShutdownHooks$1 +java/lang/ArithmeticException +java/lang/ArrayIndexOutOfBoundsException +java/lang/ArrayStoreException +java/lang/AutoCloseable +java/lang/Boolean +java/lang/BootstrapMethodError +java/lang/Byte +java/lang/CharSequence +java/lang/Character +java/lang/Character$CharacterCache +java/lang/CharacterData +java/lang/CharacterData00 +java/lang/CharacterDataLatin1 +java/lang/Class +java/lang/Class$1 +java/lang/Class$3 +java/lang/Class$4 +java/lang/Class$AnnotationData +java/lang/Class$Atomic +java/lang/Class$ReflectionData +java/lang/ClassCastException +java/lang/ClassFormatError +java/lang/ClassLoader +java/lang/ClassLoader$2 +java/lang/ClassLoader$3 +java/lang/ClassLoader$NativeLibrary +java/lang/ClassLoader$ParallelLoaders +java/lang/ClassNotFoundException +java/lang/ClassValue$ClassValueMap +java/lang/CloneNotSupportedException +java/lang/Cloneable +java/lang/Comparable +java/lang/Compiler +java/lang/Compiler$1 +java/lang/Double +java/lang/Enum +java/lang/Error +java/lang/Exception +java/lang/ExceptionInInitializerError +java/lang/Float +java/lang/IllegalAccessError +java/lang/IllegalAccessException +java/lang/IllegalArgumentException +java/lang/IllegalMonitorStateException +java/lang/IllegalStateException +java/lang/IncompatibleClassChangeError +java/lang/IndexOutOfBoundsException +java/lang/InheritableThreadLocal +java/lang/InstantiationException +java/lang/Integer +java/lang/Integer$IntegerCache +java/lang/InternalError +java/lang/InterruptedException +java/lang/Iterable +java/lang/LinkageError +java/lang/Long +java/lang/Long$LongCache +java/lang/Math +java/lang/NoClassDefFoundError +java/lang/NoSuchFieldException +java/lang/NoSuchMethodError +java/lang/NoSuchMethodException +java/lang/NullPointerException +java/lang/Number +java/lang/NumberFormatException +java/lang/Object +java/lang/OutOfMemoryError +java/lang/Package +java/lang/Process +java/lang/ProcessBuilder +java/lang/ProcessBuilder$NullOutputStream +java/lang/ProcessEnvironment +java/lang/ProcessEnvironment$ExternalData +java/lang/ProcessEnvironment$StringEnvironment +java/lang/ProcessEnvironment$Value +java/lang/ProcessEnvironment$Variable +java/lang/ProcessImpl +java/lang/Readable +java/lang/ReflectiveOperationException +java/lang/Runnable +java/lang/Runtime +java/lang/RuntimeException +java/lang/RuntimePermission +java/lang/SecurityException +java/lang/SecurityManager +java/lang/Short +java/lang/Shutdown +java/lang/Shutdown$Lock +java/lang/StackOverflowError +java/lang/StackTraceElement +java/lang/StrictMath +java/lang/String +java/lang/String$CaseInsensitiveComparator +java/lang/StringBuffer +java/lang/StringBuilder +java/lang/StringCoding +java/lang/StringCoding$StringDecoder +java/lang/StringCoding$StringEncoder +java/lang/StringIndexOutOfBoundsException +java/lang/System +java/lang/System$2 +java/lang/SystemClassLoaderAction +java/lang/Terminator +java/lang/Terminator$1 +java/lang/Thread +java/lang/Thread$State +java/lang/Thread$UncaughtExceptionHandler +java/lang/ThreadDeath +java/lang/ThreadGroup +java/lang/ThreadLocal +java/lang/ThreadLocal$ThreadLocalMap +java/lang/ThreadLocal$ThreadLocalMap$Entry +java/lang/Throwable +java/lang/Throwable$PrintStreamOrWriter +java/lang/Throwable$WrappedPrintStream +java/lang/UNIXProcess +java/lang/UNIXProcess$1 +java/lang/UNIXProcess$2 +java/lang/UNIXProcess$3 +java/lang/UNIXProcess$4 +java/lang/UNIXProcess$LaunchMechanism +java/lang/UNIXProcess$ProcessPipeInputStream +java/lang/UNIXProcess$ProcessPipeOutputStream +java/lang/UNIXProcess$ProcessReaperThreadFactory +java/lang/UNIXProcess$ProcessReaperThreadFactory$1 +java/lang/UnsatisfiedLinkError +java/lang/UnsupportedOperationException +java/lang/VirtualMachineError +java/lang/Void +java/lang/annotation/Annotation +java/lang/invoke/CallSite +java/lang/invoke/ConstantCallSite +java/lang/invoke/DirectMethodHandle +java/lang/invoke/Invokers +java/lang/invoke/LambdaForm +java/lang/invoke/LambdaForm$NamedFunction +java/lang/invoke/MemberName +java/lang/invoke/MemberName$Factory +java/lang/invoke/MethodHandle +java/lang/invoke/MethodHandleImpl +java/lang/invoke/MethodHandleNatives +java/lang/invoke/MethodHandleStatics +java/lang/invoke/MethodHandleStatics$1 +java/lang/invoke/MethodType +java/lang/invoke/MethodType$ConcurrentWeakInternSet +java/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry +java/lang/invoke/MethodTypeForm +java/lang/invoke/MutableCallSite +java/lang/invoke/VolatileCallSite +java/lang/ref/FinalReference +java/lang/ref/Finalizer +java/lang/ref/Finalizer$FinalizerThread +java/lang/ref/PhantomReference +java/lang/ref/Reference +java/lang/ref/Reference$Lock +java/lang/ref/Reference$ReferenceHandler +java/lang/ref/ReferenceQueue +java/lang/ref/ReferenceQueue$Lock +java/lang/ref/ReferenceQueue$Null +java/lang/ref/SoftReference +java/lang/ref/WeakReference +java/lang/reflect/AccessibleObject +java/lang/reflect/AnnotatedElement +java/lang/reflect/Array +java/lang/reflect/Constructor +java/lang/reflect/Executable +java/lang/reflect/Field +java/lang/reflect/GenericDeclaration +java/lang/reflect/InvocationHandler +java/lang/reflect/InvocationTargetException +java/lang/reflect/Member +java/lang/reflect/Method +java/lang/reflect/Modifier +java/lang/reflect/Parameter +java/lang/reflect/Proxy +java/lang/reflect/Proxy$KeyFactory +java/lang/reflect/Proxy$ProxyClassFactory +java/lang/reflect/ReflectAccess +java/lang/reflect/ReflectPermission +java/lang/reflect/Type +java/lang/reflect/WeakCache +java/math/BigInteger +java/math/BigInteger$UnsafeHolder +java/math/MutableBigInteger +java/math/RoundingMode +java/math/SignedMutableBigInteger +java/net/AbstractPlainDatagramSocketImpl +java/net/AbstractPlainDatagramSocketImpl$1 +java/net/AbstractPlainSocketImpl +java/net/AbstractPlainSocketImpl$1 +java/net/Authenticator +java/net/BindException +java/net/ConnectException +java/net/DatagramPacket +java/net/DatagramPacket$1 +java/net/DatagramSocket +java/net/DatagramSocket$1 +java/net/DatagramSocketImpl +java/net/DefaultDatagramSocketImplFactory +java/net/DefaultInterface +java/net/FileNameMap +java/net/HttpURLConnection +java/net/Inet4Address +java/net/Inet4AddressImpl +java/net/Inet6Address +java/net/Inet6Address$Inet6AddressHolder +java/net/Inet6AddressImpl +java/net/InetAddress +java/net/InetAddress$1 +java/net/InetAddress$2 +java/net/InetAddress$Cache +java/net/InetAddress$Cache$Type +java/net/InetAddress$CacheEntry +java/net/InetAddress$InetAddressHolder +java/net/InetAddressImpl +java/net/InetAddressImplFactory +java/net/InetSocketAddress +java/net/InetSocketAddress$InetSocketAddressHolder +java/net/InterfaceAddress +java/net/JarURLConnection +java/net/MalformedURLException +java/net/MulticastSocket +java/net/NetworkInterface +java/net/NetworkInterface$1 +java/net/NoRouteToHostException +java/net/Parts +java/net/PlainDatagramSocketImpl +java/net/PlainSocketImpl +java/net/Proxy +java/net/Proxy$Type +java/net/ProxySelector +java/net/ServerSocket +java/net/Socket +java/net/SocketAddress +java/net/SocketException +java/net/SocketImpl +java/net/SocketImplFactory +java/net/SocketOptions +java/net/SocksConsts +java/net/SocksSocketImpl +java/net/SocksSocketImpl$3 +java/net/URI +java/net/URI$Parser +java/net/URL +java/net/URLClassLoader +java/net/URLClassLoader$1 +java/net/URLClassLoader$2 +java/net/URLClassLoader$3 +java/net/URLClassLoader$3$1 +java/net/URLClassLoader$7 +java/net/URLConnection +java/net/URLConnection$1 +java/net/URLStreamHandler +java/net/URLStreamHandlerFactory +java/net/UnknownHostException +java/nio/Bits +java/nio/Bits$1 +java/nio/Buffer +java/nio/ByteBuffer +java/nio/ByteBufferAsIntBufferB +java/nio/ByteBufferAsShortBufferB +java/nio/ByteOrder +java/nio/CharBuffer +java/nio/DirectByteBuffer +java/nio/DirectByteBuffer$Deallocator +java/nio/DirectByteBufferR +java/nio/DirectLongBufferU +java/nio/HeapByteBuffer +java/nio/HeapCharBuffer +java/nio/IntBuffer +java/nio/LongBuffer +java/nio/MappedByteBuffer +java/nio/ShortBuffer +java/nio/channels/ByteChannel +java/nio/channels/Channel +java/nio/channels/FileChannel +java/nio/channels/FileChannel$MapMode +java/nio/channels/GatheringByteChannel +java/nio/channels/InterruptibleChannel +java/nio/channels/NetworkChannel +java/nio/channels/ReadableByteChannel +java/nio/channels/ScatteringByteChannel +java/nio/channels/SeekableByteChannel +java/nio/channels/SelectableChannel +java/nio/channels/SocketChannel +java/nio/channels/WritableByteChannel +java/nio/channels/spi/AbstractInterruptibleChannel +java/nio/channels/spi/AbstractInterruptibleChannel$1 +java/nio/channels/spi/AbstractSelectableChannel +java/nio/charset/Charset +java/nio/charset/CharsetDecoder +java/nio/charset/CharsetEncoder +java/nio/charset/CoderResult +java/nio/charset/CoderResult$1 +java/nio/charset/CoderResult$2 +java/nio/charset/CoderResult$Cache +java/nio/charset/CodingErrorAction +java/nio/charset/StandardCharsets +java/nio/charset/spi/CharsetProvider +java/nio/file/Path +java/nio/file/Watchable +java/nio/file/attribute/FileAttribute +java/security/AccessControlContext +java/security/AccessController +java/security/AlgorithmParameters +java/security/AlgorithmParametersSpi +java/security/AllPermission +java/security/AllPermissionCollection +java/security/BasicPermission +java/security/BasicPermissionCollection +java/security/CodeSigner +java/security/CodeSource +java/security/GeneralSecurityException +java/security/Guard +java/security/InvalidKeyException +java/security/Key +java/security/KeyException +java/security/MessageDigest +java/security/MessageDigest$Delegate +java/security/MessageDigestSpi +java/security/NoSuchAlgorithmException +java/security/Permission +java/security/PermissionCollection +java/security/Permissions +java/security/Principal +java/security/PrivateKey +java/security/PrivilegedAction +java/security/PrivilegedActionException +java/security/PrivilegedExceptionAction +java/security/ProtectionDomain +java/security/ProtectionDomain$1 +java/security/ProtectionDomain$3 +java/security/ProtectionDomain$Key +java/security/Provider +java/security/Provider$EngineDescription +java/security/Provider$Service +java/security/Provider$ServiceKey +java/security/Provider$UString +java/security/PublicKey +java/security/SecureClassLoader +java/security/SecureRandomSpi +java/security/Security +java/security/Security$1 +java/security/Signature +java/security/Signature$Delegate +java/security/SignatureException +java/security/SignatureSpi +java/security/UnresolvedPermission +java/security/cert/Certificate +java/security/interfaces/DSAKey +java/security/interfaces/DSAParams +java/security/interfaces/DSAPrivateKey +java/security/interfaces/DSAPublicKey +java/security/spec/AlgorithmParameterSpec +java/security/spec/DSAParameterSpec +java/text/AttributedCharacterIterator$Attribute +java/text/CharacterIterator +java/text/Collator +java/text/DateFormat +java/text/DateFormat$Field +java/text/DateFormatSymbols +java/text/DecimalFormat +java/text/DecimalFormatSymbols +java/text/DigitList +java/text/DontCareFieldPosition +java/text/DontCareFieldPosition$1 +java/text/EntryPair +java/text/FieldPosition +java/text/Format +java/text/Format$Field +java/text/Format$FieldDelegate +java/text/MergeCollation +java/text/MessageFormat +java/text/MessageFormat$Field +java/text/NumberFormat +java/text/NumberFormat$Field +java/text/ParseException +java/text/PatternEntry +java/text/PatternEntry$Parser +java/text/RBCollationTables +java/text/RBCollationTables$BuildAPI +java/text/RBTableBuilder +java/text/RuleBasedCollator +java/text/SimpleDateFormat +java/text/spi/BreakIteratorProvider +java/text/spi/CollatorProvider +java/text/spi/DateFormatProvider +java/text/spi/DateFormatSymbolsProvider +java/text/spi/DecimalFormatSymbolsProvider +java/text/spi/NumberFormatProvider +java/util/AbstractCollection +java/util/AbstractList +java/util/AbstractList$Itr +java/util/AbstractList$ListItr +java/util/AbstractMap +java/util/AbstractQueue +java/util/AbstractSequentialList +java/util/AbstractSet +java/util/ArrayDeque +java/util/ArrayList +java/util/ArrayList$Itr +java/util/ArrayList$ListItr +java/util/ArrayList$SubList +java/util/ArrayList$SubList$1 +java/util/Arrays +java/util/Arrays$ArrayList +java/util/Arrays$LegacyMergeSort +java/util/BitSet +java/util/Calendar +java/util/Calendar$Builder +java/util/Collection +java/util/Collections +java/util/Collections$3 +java/util/Collections$EmptyEnumeration +java/util/Collections$EmptyIterator +java/util/Collections$EmptyList +java/util/Collections$EmptyMap +java/util/Collections$EmptySet +java/util/Collections$SetFromMap +java/util/Collections$SynchronizedCollection +java/util/Collections$SynchronizedMap +java/util/Collections$SynchronizedSet +java/util/Collections$UnmodifiableCollection +java/util/Collections$UnmodifiableCollection$1 +java/util/Collections$UnmodifiableList +java/util/Collections$UnmodifiableList$1 +java/util/Collections$UnmodifiableMap +java/util/Collections$UnmodifiableRandomAccessList +java/util/Collections$UnmodifiableSet +java/util/ComparableTimSort +java/util/Comparator +java/util/Currency +java/util/Currency$1 +java/util/Currency$CurrencyNameGetter +java/util/Date +java/util/Deque +java/util/Dictionary +java/util/Enumeration +java/util/EventListener java/util/EventListenerProxy -sun/awt/EventListenerAggregate -javax/swing/UIDefaults$ProxyLazyValue +java/util/EventObject +java/util/GregorianCalendar +java/util/HashMap +java/util/HashMap$EntryIterator +java/util/HashMap$EntrySet +java/util/HashMap$HashIterator +java/util/HashMap$KeyIterator +java/util/HashMap$KeySet +java/util/HashMap$Node +java/util/HashMap$TreeNode +java/util/HashMap$ValueIterator +java/util/HashMap$Values +java/util/HashSet +java/util/Hashtable +java/util/Hashtable$Entry +java/util/Hashtable$EntrySet +java/util/Hashtable$Enumerator +java/util/Hashtable$ValueCollection +java/util/IdentityHashMap +java/util/IdentityHashMap$IdentityHashMapIterator +java/util/IdentityHashMap$KeyIterator +java/util/IdentityHashMap$KeySet +java/util/IdentityHashMap$ValueIterator +java/util/IdentityHashMap$Values +java/util/Iterator +java/util/LinkedHashMap +java/util/LinkedHashMap$Entry +java/util/LinkedHashMap$LinkedEntryIterator +java/util/LinkedHashMap$LinkedEntrySet +java/util/LinkedHashMap$LinkedHashIterator +java/util/LinkedHashMap$LinkedKeyIterator +java/util/LinkedHashMap$LinkedKeySet +java/util/LinkedList +java/util/LinkedList$ListItr +java/util/LinkedList$Node +java/util/List +java/util/ListIterator +java/util/ListResourceBundle +java/util/Locale +java/util/Locale$1 +java/util/Locale$Cache +java/util/Locale$Category +java/util/Locale$LocaleKey +java/util/Map +java/util/Map$Entry +java/util/MissingResourceException +java/util/NavigableMap +java/util/Objects +java/util/PriorityQueue +java/util/Properties +java/util/Properties$LineReader +java/util/PropertyResourceBundle +java/util/Queue +java/util/Random +java/util/RandomAccess +java/util/ResourceBundle +java/util/ResourceBundle$1 +java/util/ResourceBundle$BundleReference +java/util/ResourceBundle$CacheKey +java/util/ResourceBundle$CacheKeyReference +java/util/ResourceBundle$Control +java/util/ResourceBundle$Control$1 +java/util/ResourceBundle$Control$CandidateListCache +java/util/ResourceBundle$LoaderReference +java/util/ResourceBundle$RBClassLoader +java/util/ResourceBundle$RBClassLoader$1 +java/util/ResourceBundle$SingleFormatControl +java/util/ServiceLoader +java/util/ServiceLoader$1 +java/util/ServiceLoader$LazyIterator +java/util/Set +java/util/SortedMap +java/util/Stack +java/util/StringTokenizer +java/util/TimSort +java/util/TimeZone +java/util/TimeZone$1 +java/util/TreeMap +java/util/TreeMap$Entry +java/util/Vector +java/util/Vector$1 +java/util/Vector$Itr +java/util/Vector$ListItr +java/util/WeakHashMap +java/util/WeakHashMap$Entry +java/util/WeakHashMap$KeySet +java/util/concurrent/AbstractExecutorService +java/util/concurrent/BlockingQueue +java/util/concurrent/ConcurrentHashMap +java/util/concurrent/ConcurrentHashMap$BaseIterator +java/util/concurrent/ConcurrentHashMap$CollectionView +java/util/concurrent/ConcurrentHashMap$CounterCell +java/util/concurrent/ConcurrentHashMap$EntrySetView +java/util/concurrent/ConcurrentHashMap$ForwardingNode +java/util/concurrent/ConcurrentHashMap$KeyIterator +java/util/concurrent/ConcurrentHashMap$KeySetView +java/util/concurrent/ConcurrentHashMap$Node +java/util/concurrent/ConcurrentHashMap$Segment +java/util/concurrent/ConcurrentHashMap$Traverser +java/util/concurrent/ConcurrentHashMap$ValueIterator +java/util/concurrent/ConcurrentHashMap$ValuesView +java/util/concurrent/ConcurrentMap +java/util/concurrent/CopyOnWriteArrayList +java/util/concurrent/DelayQueue +java/util/concurrent/Delayed +java/util/concurrent/Executor +java/util/concurrent/ExecutorService +java/util/concurrent/Executors +java/util/concurrent/RejectedExecutionHandler +java/util/concurrent/SynchronousQueue +java/util/concurrent/SynchronousQueue$TransferStack +java/util/concurrent/SynchronousQueue$TransferStack$SNode +java/util/concurrent/SynchronousQueue$Transferer +java/util/concurrent/ThreadFactory +java/util/concurrent/ThreadPoolExecutor +java/util/concurrent/ThreadPoolExecutor$AbortPolicy +java/util/concurrent/ThreadPoolExecutor$Worker +java/util/concurrent/TimeUnit +java/util/concurrent/TimeUnit$1 +java/util/concurrent/TimeUnit$2 +java/util/concurrent/TimeUnit$3 +java/util/concurrent/TimeUnit$4 +java/util/concurrent/TimeUnit$5 +java/util/concurrent/TimeUnit$6 +java/util/concurrent/TimeUnit$7 +java/util/concurrent/atomic/AtomicBoolean +java/util/concurrent/atomic/AtomicInteger +java/util/concurrent/atomic/AtomicLong +java/util/concurrent/atomic/AtomicMarkableReference +java/util/concurrent/atomic/AtomicMarkableReference$Pair +java/util/concurrent/atomic/AtomicReferenceFieldUpdater +java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl +java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1 +java/util/concurrent/locks/AbstractOwnableSynchronizer +java/util/concurrent/locks/AbstractQueuedSynchronizer +java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject +java/util/concurrent/locks/AbstractQueuedSynchronizer$Node +java/util/concurrent/locks/Condition +java/util/concurrent/locks/Lock +java/util/concurrent/locks/LockSupport +java/util/concurrent/locks/ReentrantLock +java/util/concurrent/locks/ReentrantLock$NonfairSync +java/util/concurrent/locks/ReentrantLock$Sync +java/util/function/BiFunction +java/util/jar/Attributes +java/util/jar/Attributes$Name +java/util/jar/JarEntry +java/util/jar/JarFile +java/util/jar/JarFile$JarEntryIterator +java/util/jar/JarFile$JarFileEntry +java/util/jar/JarVerifier +java/util/jar/JarVerifier$3 +java/util/jar/JavaUtilJarAccessImpl +java/util/jar/Manifest +java/util/jar/Manifest$FastInputStream +java/util/logging/Handler +java/util/logging/Level +java/util/logging/Level$KnownLevel +java/util/logging/LogManager +java/util/logging/LogManager$1 +java/util/logging/LogManager$2 +java/util/logging/LogManager$3 +java/util/logging/LogManager$5 +java/util/logging/LogManager$Cleaner +java/util/logging/LogManager$LogNode +java/util/logging/LogManager$LoggerContext +java/util/logging/LogManager$LoggerContext$1 +java/util/logging/LogManager$LoggerWeakRef +java/util/logging/LogManager$RootLogger +java/util/logging/LogManager$SystemLoggerContext +java/util/logging/Logger +java/util/logging/Logger$1 +java/util/logging/LoggingPermission +java/util/logging/LoggingProxyImpl +java/util/spi/CalendarDataProvider +java/util/spi/CurrencyNameProvider +java/util/spi/LocaleNameProvider +java/util/spi/LocaleServiceProvider +java/util/spi/ResourceBundleControlProvider +java/util/spi/TimeZoneNameProvider +java/util/zip/CRC32 +java/util/zip/Checksum +java/util/zip/DeflaterOutputStream +java/util/zip/GZIPInputStream +java/util/zip/Inflater +java/util/zip/InflaterInputStream +java/util/zip/ZStreamRef +java/util/zip/ZipCoder +java/util/zip/ZipConstants +java/util/zip/ZipEntry +java/util/zip/ZipFile +java/util/zip/ZipFile$1 +java/util/zip/ZipFile$ZipEntryIterator +java/util/zip/ZipFile$ZipFileInflaterInputStream +java/util/zip/ZipFile$ZipFileInputStream +java/util/zip/ZipInputStream +java/util/zip/ZipUtils +javax/accessibility/Accessible +javax/accessibility/AccessibleAction +javax/accessibility/AccessibleBundle +javax/accessibility/AccessibleComponent +javax/accessibility/AccessibleContext +javax/accessibility/AccessibleExtendedComponent +javax/accessibility/AccessibleRelationSet +javax/accessibility/AccessibleState +javax/accessibility/AccessibleText +javax/accessibility/AccessibleValue +javax/security/auth/Destroyable +javax/sound/sampled/Control$Type +javax/sound/sampled/DataLine +javax/sound/sampled/DataLine$Info +javax/sound/sampled/FloatControl$Type +javax/sound/sampled/Line +javax/sound/sampled/Line$Info +javax/sound/sampled/LineUnavailableException +javax/sound/sampled/UnsupportedAudioFileException +javax/swing/AbstractAction +javax/swing/AbstractButton +javax/swing/AbstractButton$AccessibleAbstractButton +javax/swing/AbstractButton$Handler +javax/swing/AbstractCellEditor +javax/swing/AbstractListModel +javax/swing/Action +javax/swing/ActionMap +javax/swing/AncestorNotifier +javax/swing/ArrayTable +javax/swing/BorderFactory +javax/swing/BoundedRangeModel +javax/swing/Box +javax/swing/Box$Filler +javax/swing/BoxLayout +javax/swing/BufferStrategyPaintManager +javax/swing/BufferStrategyPaintManager$BufferInfo +javax/swing/ButtonGroup +javax/swing/ButtonModel +javax/swing/CellEditor +javax/swing/CellRendererPane +javax/swing/ClientPropertyKey +javax/swing/ClientPropertyKey$1 +javax/swing/ComboBoxEditor +javax/swing/ComboBoxModel +javax/swing/ComponentInputMap +javax/swing/DefaultBoundedRangeModel +javax/swing/DefaultButtonModel +javax/swing/DefaultCellEditor +javax/swing/DefaultCellEditor$1 +javax/swing/DefaultCellEditor$EditorDelegate +javax/swing/DefaultComboBoxModel +javax/swing/DefaultListCellRenderer +javax/swing/DefaultListCellRenderer$UIResource +javax/swing/DefaultListModel +javax/swing/DefaultListSelectionModel +javax/swing/DefaultSingleSelectionModel +javax/swing/DropMode +javax/swing/FocusManager +javax/swing/GrayFilter +javax/swing/Icon +javax/swing/ImageIcon +javax/swing/ImageIcon$1 +javax/swing/ImageIcon$2 +javax/swing/ImageIcon$2$1 +javax/swing/ImageIcon$3 +javax/swing/InputMap +javax/swing/InternalFrameFocusTraversalPolicy +javax/swing/JButton +javax/swing/JCheckBox +javax/swing/JCheckBoxMenuItem +javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem +javax/swing/JComboBox +javax/swing/JComboBox$1 +javax/swing/JComboBox$KeySelectionManager +javax/swing/JComponent +javax/swing/JComponent$1 +javax/swing/JComponent$2 +javax/swing/JComponent$AccessibleJComponent +javax/swing/JDialog +javax/swing/JEditorPane +javax/swing/JFrame +javax/swing/JInternalFrame +javax/swing/JLabel +javax/swing/JLayer +javax/swing/JLayeredPane +javax/swing/JList +javax/swing/JList$3 +javax/swing/JList$ListSelectionHandler +javax/swing/JMenu +javax/swing/JMenu$MenuChangeListener +javax/swing/JMenu$WinListener +javax/swing/JMenuBar +javax/swing/JMenuItem +javax/swing/JMenuItem$AccessibleJMenuItem +javax/swing/JMenuItem$MenuItemFocusListener +javax/swing/JPanel +javax/swing/JPopupMenu +javax/swing/JPopupMenu$Separator +javax/swing/JProgressBar +javax/swing/JProgressBar$ModelListener +javax/swing/JRadioButton +javax/swing/JRadioButtonMenuItem +javax/swing/JRootPane +javax/swing/JRootPane$1 +javax/swing/JRootPane$RootLayout +javax/swing/JScrollBar +javax/swing/JScrollBar$ModelListener +javax/swing/JScrollPane +javax/swing/JScrollPane$ScrollBar +javax/swing/JSeparator +javax/swing/JSlider +javax/swing/JSlider$ModelListener +javax/swing/JSplitPane +javax/swing/JTabbedPane +javax/swing/JTabbedPane$ModelListener +javax/swing/JTabbedPane$Page +javax/swing/JTable +javax/swing/JTable$2 +javax/swing/JTable$5 +javax/swing/JTable$Resizable2 +javax/swing/JTable$Resizable3 +javax/swing/JTextArea +javax/swing/JTextField +javax/swing/JTextField$NotifyAction +javax/swing/JTextField$ScrollRepainter +javax/swing/JToggleButton +javax/swing/JToggleButton$ToggleButtonModel +javax/swing/JToolBar +javax/swing/JToolBar$DefaultToolBarLayout +javax/swing/JToolBar$Separator +javax/swing/JToolTip +javax/swing/JTree +javax/swing/JTree$TreeModelHandler +javax/swing/JTree$TreeSelectionRedirector +javax/swing/JViewport +javax/swing/JViewport$ViewListener +javax/swing/JWindow +javax/swing/KeyStroke +javax/swing/KeyboardManager +javax/swing/KeyboardManager$ComponentKeyStrokePair +javax/swing/LayoutComparator +javax/swing/LayoutFocusTraversalPolicy +javax/swing/ListCellRenderer +javax/swing/ListModel +javax/swing/ListSelectionModel +javax/swing/LookAndFeel +javax/swing/MenuElement +javax/swing/MenuSelectionManager +javax/swing/MultiUIDefaults +javax/swing/MutableComboBoxModel +javax/swing/RepaintManager +javax/swing/RepaintManager$2 +javax/swing/RepaintManager$3 +javax/swing/RepaintManager$DisplayChangedHandler +javax/swing/RepaintManager$PaintManager +javax/swing/RepaintManager$ProcessingRunnable +javax/swing/RootPaneContainer +javax/swing/ScrollPaneConstants +javax/swing/ScrollPaneLayout +javax/swing/ScrollPaneLayout$UIResource +javax/swing/Scrollable +javax/swing/SingleSelectionModel +javax/swing/SizeRequirements +javax/swing/SortingFocusTraversalPolicy +javax/swing/SwingConstants +javax/swing/SwingContainerOrderFocusTraversalPolicy +javax/swing/SwingDefaultFocusTraversalPolicy +javax/swing/SwingPaintEventDispatcher +javax/swing/SwingUtilities +javax/swing/SwingUtilities$SharedOwnerFrame +javax/swing/Timer +javax/swing/Timer$DoPostEvent +javax/swing/TimerQueue +javax/swing/TimerQueue$1 +javax/swing/TimerQueue$DelayedTimer +javax/swing/ToolTipManager +javax/swing/ToolTipManager$AccessibilityKeyListener +javax/swing/ToolTipManager$MoveBeforeEnterListener +javax/swing/ToolTipManager$insideTimerAction +javax/swing/ToolTipManager$outsideTimerAction +javax/swing/ToolTipManager$stillInsideTimerAction +javax/swing/TransferHandler +javax/swing/TransferHandler$DropHandler +javax/swing/TransferHandler$HasGetTransferHandler +javax/swing/TransferHandler$SwingDropTarget +javax/swing/TransferHandler$TransferAction +javax/swing/TransferHandler$TransferSupport +javax/swing/UIDefaults +javax/swing/UIDefaults$ActiveValue +javax/swing/UIDefaults$LazyInputMap +javax/swing/UIDefaults$LazyValue +javax/swing/UIDefaults$TextAndMnemonicHashMap +javax/swing/UIManager +javax/swing/UIManager$1 +javax/swing/UIManager$2 +javax/swing/UIManager$LAFState +javax/swing/UIManager$LookAndFeelInfo +javax/swing/UnsupportedLookAndFeelException +javax/swing/ViewportLayout +javax/swing/WindowConstants +javax/swing/border/AbstractBorder +javax/swing/border/BevelBorder +javax/swing/border/Border +javax/swing/border/CompoundBorder +javax/swing/border/EmptyBorder +javax/swing/border/EtchedBorder +javax/swing/border/LineBorder +javax/swing/border/MatteBorder +javax/swing/border/TitledBorder +javax/swing/event/AncestorEvent +javax/swing/event/AncestorListener +javax/swing/event/CaretEvent +javax/swing/event/CaretListener +javax/swing/event/CellEditorListener +javax/swing/event/ChangeEvent +javax/swing/event/ChangeListener +javax/swing/event/DocumentEvent +javax/swing/event/DocumentEvent$ElementChange +javax/swing/event/DocumentEvent$EventType +javax/swing/event/DocumentListener +javax/swing/event/EventListenerList +javax/swing/event/ListDataEvent +javax/swing/event/ListDataListener +javax/swing/event/ListSelectionEvent +javax/swing/event/ListSelectionListener +javax/swing/event/MenuDragMouseListener +javax/swing/event/MenuEvent +javax/swing/event/MenuKeyListener +javax/swing/event/MenuListener +javax/swing/event/MouseInputAdapter +javax/swing/event/MouseInputListener +javax/swing/event/PopupMenuListener +javax/swing/event/RowSorterListener +javax/swing/event/SwingPropertyChangeSupport +javax/swing/event/TableColumnModelEvent +javax/swing/event/TableColumnModelListener +javax/swing/event/TableModelEvent +javax/swing/event/TableModelListener +javax/swing/event/TreeExpansionListener +javax/swing/event/TreeModelEvent +javax/swing/event/TreeModelListener +javax/swing/event/TreeSelectionEvent +javax/swing/event/TreeSelectionListener +javax/swing/event/UndoableEditEvent +javax/swing/event/UndoableEditListener +javax/swing/filechooser/FileFilter +javax/swing/plaf/ActionMapUIResource +javax/swing/plaf/BorderUIResource +javax/swing/plaf/BorderUIResource$CompoundBorderUIResource +javax/swing/plaf/BorderUIResource$EmptyBorderUIResource +javax/swing/plaf/BorderUIResource$LineBorderUIResource +javax/swing/plaf/ButtonUI +javax/swing/plaf/ColorUIResource +javax/swing/plaf/ComboBoxUI +javax/swing/plaf/ComponentInputMapUIResource +javax/swing/plaf/ComponentUI +javax/swing/plaf/DimensionUIResource +javax/swing/plaf/FontUIResource +javax/swing/plaf/InputMapUIResource +javax/swing/plaf/InsetsUIResource +javax/swing/plaf/LabelUI +javax/swing/plaf/ListUI +javax/swing/plaf/MenuBarUI +javax/swing/plaf/MenuItemUI +javax/swing/plaf/PanelUI +javax/swing/plaf/PopupMenuUI +javax/swing/plaf/ProgressBarUI +javax/swing/plaf/RootPaneUI +javax/swing/plaf/ScrollBarUI +javax/swing/plaf/ScrollPaneUI +javax/swing/plaf/SeparatorUI +javax/swing/plaf/SliderUI +javax/swing/plaf/SplitPaneUI +javax/swing/plaf/TabbedPaneUI +javax/swing/plaf/TableHeaderUI +javax/swing/plaf/TableUI +javax/swing/plaf/TextUI +javax/swing/plaf/ToolBarUI +javax/swing/plaf/TreeUI +javax/swing/plaf/UIResource +javax/swing/plaf/ViewportUI +javax/swing/plaf/basic/BasicArrowButton +javax/swing/plaf/basic/BasicBorders +javax/swing/plaf/basic/BasicBorders$ButtonBorder +javax/swing/plaf/basic/BasicBorders$MarginBorder +javax/swing/plaf/basic/BasicBorders$RadioButtonBorder +javax/swing/plaf/basic/BasicBorders$RolloverMarginBorder +javax/swing/plaf/basic/BasicBorders$SplitPaneBorder +javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder +javax/swing/plaf/basic/BasicButtonListener +javax/swing/plaf/basic/BasicButtonUI +javax/swing/plaf/basic/BasicCheckBoxMenuItemUI +javax/swing/plaf/basic/BasicComboBoxEditor +javax/swing/plaf/basic/BasicComboBoxEditor$BorderlessTextField +javax/swing/plaf/basic/BasicComboBoxEditor$UIResource +javax/swing/plaf/basic/BasicComboBoxRenderer +javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource +javax/swing/plaf/basic/BasicComboBoxUI +javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager +javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager +javax/swing/plaf/basic/BasicComboBoxUI$Handler +javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler +javax/swing/plaf/basic/BasicComboPopup +javax/swing/plaf/basic/BasicComboPopup$1 +javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass +javax/swing/plaf/basic/BasicComboPopup$Handler +javax/swing/plaf/basic/BasicGraphicsUtils +javax/swing/plaf/basic/BasicHTML +javax/swing/plaf/basic/BasicLabelUI +javax/swing/plaf/basic/BasicListUI +javax/swing/plaf/basic/BasicListUI$Handler +javax/swing/plaf/basic/BasicListUI$ListTransferHandler +javax/swing/plaf/basic/BasicLookAndFeel +javax/swing/plaf/basic/BasicLookAndFeel$1 +javax/swing/plaf/basic/BasicLookAndFeel$2 +javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper +javax/swing/plaf/basic/BasicMenuBarUI +javax/swing/plaf/basic/BasicMenuBarUI$Handler +javax/swing/plaf/basic/BasicMenuItemUI +javax/swing/plaf/basic/BasicMenuItemUI$Handler +javax/swing/plaf/basic/BasicMenuUI +javax/swing/plaf/basic/BasicMenuUI$Handler +javax/swing/plaf/basic/BasicPanelUI +javax/swing/plaf/basic/BasicPopupMenuUI +javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener +javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener +javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper +javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper$1 +javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber +javax/swing/plaf/basic/BasicProgressBarUI +javax/swing/plaf/basic/BasicProgressBarUI$Handler +javax/swing/plaf/basic/BasicRadioButtonMenuItemUI +javax/swing/plaf/basic/BasicRadioButtonUI +javax/swing/plaf/basic/BasicRootPaneUI +javax/swing/plaf/basic/BasicRootPaneUI$RootPaneInputMap +javax/swing/plaf/basic/BasicScrollBarUI +javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener +javax/swing/plaf/basic/BasicScrollBarUI$Handler +javax/swing/plaf/basic/BasicScrollBarUI$ModelListener +javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler +javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener +javax/swing/plaf/basic/BasicScrollBarUI$TrackListener +javax/swing/plaf/basic/BasicScrollPaneUI +javax/swing/plaf/basic/BasicScrollPaneUI$Handler +javax/swing/plaf/basic/BasicSeparatorUI +javax/swing/plaf/basic/BasicSliderUI +javax/swing/plaf/basic/BasicSliderUI$Actions +javax/swing/plaf/basic/BasicSliderUI$Handler +javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler +javax/swing/plaf/basic/BasicSliderUI$ScrollListener +javax/swing/plaf/basic/BasicSliderUI$TrackListener +javax/swing/plaf/basic/BasicSplitPaneDivider +javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout +javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler +javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchActionHandler +javax/swing/plaf/basic/BasicSplitPaneUI +javax/swing/plaf/basic/BasicSplitPaneUI$1 +javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager +javax/swing/plaf/basic/BasicSplitPaneUI$Handler +javax/swing/plaf/basic/BasicTabbedPaneUI +javax/swing/plaf/basic/BasicTabbedPaneUI$Handler +javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout +javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout +javax/swing/plaf/basic/BasicTableHeaderUI +javax/swing/plaf/basic/BasicTableHeaderUI$1 +javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler +javax/swing/plaf/basic/BasicTableUI +javax/swing/plaf/basic/BasicTableUI$Handler +javax/swing/plaf/basic/BasicTableUI$TableTransferHandler +javax/swing/plaf/basic/BasicTextAreaUI +javax/swing/plaf/basic/BasicTextFieldUI +javax/swing/plaf/basic/BasicTextUI +javax/swing/plaf/basic/BasicTextUI$BasicCaret +javax/swing/plaf/basic/BasicTextUI$BasicCursor +javax/swing/plaf/basic/BasicTextUI$BasicHighlighter +javax/swing/plaf/basic/BasicTextUI$DragListener +javax/swing/plaf/basic/BasicTextUI$FocusAction +javax/swing/plaf/basic/BasicTextUI$RootView +javax/swing/plaf/basic/BasicTextUI$TextActionWrapper +javax/swing/plaf/basic/BasicTextUI$TextTransferHandler +javax/swing/plaf/basic/BasicTextUI$UpdateHandler +javax/swing/plaf/basic/BasicToggleButtonUI +javax/swing/plaf/basic/BasicToolBarSeparatorUI +javax/swing/plaf/basic/BasicToolBarUI +javax/swing/plaf/basic/BasicToolBarUI$DockingListener +javax/swing/plaf/basic/BasicToolBarUI$Handler +javax/swing/plaf/basic/BasicTreeUI +javax/swing/plaf/basic/BasicTreeUI$Actions +javax/swing/plaf/basic/BasicTreeUI$Handler +javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler +javax/swing/plaf/basic/BasicTreeUI$TreeTransferHandler +javax/swing/plaf/basic/BasicViewportUI +javax/swing/plaf/basic/ComboPopup +javax/swing/plaf/basic/DefaultMenuLayout +javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag +javax/swing/plaf/basic/LazyActionMap +javax/swing/plaf/metal/DefaultMetalTheme +javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate +javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1 +javax/swing/plaf/metal/MetalBorders +javax/swing/plaf/metal/MetalBorders$ButtonBorder +javax/swing/plaf/metal/MetalBorders$Flush3DBorder +javax/swing/plaf/metal/MetalBorders$MenuBarBorder +javax/swing/plaf/metal/MetalBorders$MenuItemBorder +javax/swing/plaf/metal/MetalBorders$PopupMenuBorder +javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder +javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder +javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder +javax/swing/plaf/metal/MetalBorders$TextFieldBorder +javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder +javax/swing/plaf/metal/MetalBorders$ToolBarBorder +javax/swing/plaf/metal/MetalBumps +javax/swing/plaf/metal/MetalButtonUI +javax/swing/plaf/metal/MetalCheckBoxUI +javax/swing/plaf/metal/MetalComboBoxButton +javax/swing/plaf/metal/MetalComboBoxButton$1 +javax/swing/plaf/metal/MetalComboBoxEditor +javax/swing/plaf/metal/MetalComboBoxEditor$1 +javax/swing/plaf/metal/MetalComboBoxEditor$EditorBorder +javax/swing/plaf/metal/MetalComboBoxEditor$UIResource +javax/swing/plaf/metal/MetalComboBoxIcon +javax/swing/plaf/metal/MetalComboBoxUI +javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager +javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener +javax/swing/plaf/metal/MetalIconFactory +javax/swing/plaf/metal/MetalIconFactory$CheckBoxIcon +javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon +javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 +javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon +javax/swing/plaf/metal/MetalIconFactory$MenuArrowIcon +javax/swing/plaf/metal/MetalIconFactory$MenuItemArrowIcon +javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon +javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon +javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon +javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon +javax/swing/plaf/metal/MetalLabelUI +javax/swing/plaf/metal/MetalLookAndFeel +javax/swing/plaf/metal/MetalLookAndFeel$AATextListener +javax/swing/plaf/metal/MetalLookAndFeel$FontActiveValue +javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue +javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue$1 +javax/swing/plaf/metal/MetalPopupMenuSeparatorUI +javax/swing/plaf/metal/MetalProgressBarUI +javax/swing/plaf/metal/MetalRadioButtonUI +javax/swing/plaf/metal/MetalRootPaneUI +javax/swing/plaf/metal/MetalScrollBarUI +javax/swing/plaf/metal/MetalScrollBarUI$ScrollBarListener +javax/swing/plaf/metal/MetalScrollButton +javax/swing/plaf/metal/MetalScrollPaneUI +javax/swing/plaf/metal/MetalScrollPaneUI$1 +javax/swing/plaf/metal/MetalSeparatorUI +javax/swing/plaf/metal/MetalSliderUI +javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener +javax/swing/plaf/metal/MetalSplitPaneDivider +javax/swing/plaf/metal/MetalSplitPaneDivider$1 +javax/swing/plaf/metal/MetalSplitPaneDivider$2 +javax/swing/plaf/metal/MetalSplitPaneUI +javax/swing/plaf/metal/MetalTabbedPaneUI +javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout +javax/swing/plaf/metal/MetalTextFieldUI +javax/swing/plaf/metal/MetalTheme +javax/swing/plaf/metal/MetalToggleButtonUI +javax/swing/plaf/metal/MetalToolBarUI +javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener +javax/swing/plaf/metal/MetalTreeUI +javax/swing/plaf/metal/MetalTreeUI$LineListener +javax/swing/plaf/metal/OceanTheme javax/swing/plaf/metal/OceanTheme$1 javax/swing/plaf/metal/OceanTheme$2 javax/swing/plaf/metal/OceanTheme$3 javax/swing/plaf/metal/OceanTheme$4 javax/swing/plaf/metal/OceanTheme$5 javax/swing/plaf/metal/OceanTheme$6 -javax/swing/RepaintManager -javax/swing/RepaintManager$DisplayChangedHandler -javax/swing/SwingPaintEventDispatcher -sun/awt/PaintEventDispatcher -javax/swing/UIManager$2 -java/awt/PopupMenu -java/awt/Menu -java/awt/MenuItem -java/awt/MenuComponent -java/io/ObjectOutputStream -java/io/ObjectOutput -java/io/DataOutput -java/io/ObjectStreamConstants -java/io/PrintWriter -java/io/ObjectInputStream -java/io/ObjectInput -java/awt/Event -java/awt/im/InputContext -java/awt/event/MouseWheelEvent -java/awt/BufferCapabilities -sun/awt/CausedFocusEvent$Cause -java/awt/PointerInfo -java/awt/Component$BaselineResizeBehavior -java/awt/FontMetrics -java/awt/Image -java/awt/image/ImageProducer -java/awt/image/VolatileImage -java/awt/im/InputMethodRequests -java/awt/event/FocusEvent -java/awt/event/InputMethodEvent -java/awt/event/HierarchyEvent -javax/accessibility/AccessibleStateSet -com/sun/swing/internal/plaf/metal/resources/metal -sun/util/ResourceBundleEnumeration -com/sun/swing/internal/plaf/basic/resources/basic -javax/swing/plaf/basic/BasicPanelUI -javax/swing/plaf/PanelUI -javax/swing/plaf/ComponentUI -sun/reflect/misc/MethodUtil -sun/reflect/misc/MethodUtil$1 -java/util/jar/JarFile -java/util/zip/ZipFile -java/util/zip/ZipConstants -java/util/jar/JavaUtilJarAccessImpl -sun/misc/JavaUtilJarAccess -sun/misc/JarIndex -java/util/zip/ZipEntry -java/util/jar/JarFile$JarFileEntry -java/util/jar/JarEntry -sun/misc/URLClassPath$JarLoader$2 -sun/net/www/protocol/jar/JarURLConnection -java/net/JarURLConnection -sun/net/www/protocol/jar/JarFileFactory -sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController -java/net/HttpURLConnection -sun/net/www/protocol/jar/URLJarFile -sun/net/www/protocol/jar/URLJarFile$URLJarFileEntry -sun/net/www/protocol/jar/JarURLConnection$JarURLInputStream -java/util/zip/ZipFile$ZipFileInputStream -java/security/AllPermissionCollection -java/lang/IllegalAccessException -javax/swing/JPasswordField -javax/swing/JTextField -javax/swing/text/JTextComponent -javax/swing/Scrollable -javax/swing/JLayeredPane -javax/swing/JRootPane$1 -javax/swing/ArrayTable -javax/swing/JInternalFrame -javax/swing/JRootPane$RootLayout -javax/swing/BufferStrategyPaintManager -javax/swing/RepaintManager$PaintManager -javax/swing/plaf/metal/MetalRootPaneUI -javax/swing/plaf/basic/BasicRootPaneUI -javax/swing/plaf/RootPaneUI -javax/swing/plaf/basic/BasicRootPaneUI$RootPaneInputMap -javax/swing/plaf/ComponentInputMapUIResource -javax/swing/ComponentInputMap -javax/swing/InputMap -javax/swing/plaf/InputMapUIResource -javax/swing/KeyStroke -java/awt/VKCollection -sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl -javax/swing/plaf/basic/LazyActionMap -javax/swing/plaf/ActionMapUIResource -javax/swing/ActionMap -javax/swing/LayoutFocusTraversalPolicy -javax/swing/SortingFocusTraversalPolicy -javax/swing/InternalFrameFocusTraversalPolicy -javax/swing/SwingContainerOrderFocusTraversalPolicy -javax/swing/SwingDefaultFocusTraversalPolicy -javax/swing/LayoutComparator -javax/swing/plaf/metal/MetalLabelUI -javax/swing/plaf/basic/BasicLabelUI -javax/swing/plaf/LabelUI -javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1 -javax/swing/plaf/basic/BasicHTML -sun/awt/NullComponentPeer -java/awt/event/WindowEvent -java/awt/EventQueue$1 -java/awt/EventDispatchThread$1 -java/awt/Conditional -java/awt/EventDispatchThread$HierarchyEventFilter -java/awt/EventFilter$FilterAction -sun/awt/dnd/SunDropTargetEvent -java/awt/event/ActionEvent -java/util/jar/Manifest -java/io/ByteArrayInputStream -java/util/jar/Attributes -java/util/jar/Manifest$FastInputStream -java/util/jar/Attributes$Name -sun/misc/ASCIICaseInsensitiveComparator -java/util/jar/JarVerifier -java/io/ByteArrayOutputStream -sun/misc/ExtensionDependency -java/lang/Package -sun/security/util/ManifestEntryVerifier -java/security/Provider -java/security/Provider$ServiceKey -java/security/Provider$EngineDescription -java/security/Security -java/security/Security$1 -sun/misc/FloatingDecimal -sun/misc/FloatingDecimal$1 -sun/security/provider/NativePRNG -java/security/SecureRandomSpi -sun/security/provider/NativePRNG$1 -sun/security/provider/NativePRNG$RandomIO -sun/misc/BASE64Decoder -sun/misc/CharacterDecoder -sun/security/util/SignatureFileVerifier -java/awt/event/KeyAdapter -java/lang/NumberFormatException -java/lang/IllegalArgumentException -java/io/FileWriter -java/net/Authenticator -java/net/MalformedURLException -javax/swing/text/Element -javax/swing/text/Document -javax/swing/text/PlainDocument +javax/swing/plaf/synth/SynthConstants +javax/swing/plaf/synth/SynthUI +javax/swing/table/AbstractTableModel +javax/swing/table/DefaultTableCellRenderer +javax/swing/table/DefaultTableColumnModel +javax/swing/table/DefaultTableModel +javax/swing/table/JTableHeader +javax/swing/table/TableCellEditor +javax/swing/table/TableCellRenderer +javax/swing/table/TableColumn +javax/swing/table/TableColumnModel +javax/swing/table/TableModel javax/swing/text/AbstractDocument -javax/swing/text/GapContent -javax/swing/text/AbstractDocument$Content -javax/swing/text/GapVector -javax/swing/text/GapContent$MarkVector -javax/swing/text/GapContent$MarkData -javax/swing/text/StyleContext +javax/swing/text/AbstractDocument$1 +javax/swing/text/AbstractDocument$AbstractElement javax/swing/text/AbstractDocument$AttributeContext -javax/swing/text/StyleConstants -javax/swing/text/StyleConstants$CharacterConstants -javax/swing/text/AttributeSet$CharacterAttribute -javax/swing/text/StyleConstants$FontConstants -javax/swing/text/AttributeSet$FontAttribute -javax/swing/text/StyleConstants$ColorConstants -javax/swing/text/AttributeSet$ColorAttribute -javax/swing/text/StyleConstants$ParagraphConstants -javax/swing/text/AttributeSet$ParagraphAttribute -javax/swing/text/StyleContext$FontKey -javax/swing/text/SimpleAttributeSet -javax/swing/text/MutableAttributeSet -javax/swing/text/AttributeSet -javax/swing/text/SimpleAttributeSet$EmptyAttributeSet -javax/swing/text/StyleContext$NamedStyle -javax/swing/text/Style -javax/swing/text/StyleContext$SmallAttributeSet +javax/swing/text/AbstractDocument$BidiElement javax/swing/text/AbstractDocument$BidiRootElement javax/swing/text/AbstractDocument$BranchElement -javax/swing/text/AbstractDocument$AbstractElement -javax/swing/tree/TreeNode -javax/swing/text/AbstractDocument$1 -javax/swing/text/AbstractDocument$BidiElement -javax/swing/text/AbstractDocument$LeafElement -javax/swing/text/GapContent$StickyPosition -javax/swing/text/Position -javax/swing/text/StyleContext$KeyEnumeration -javax/swing/text/GapContent$InsertUndo -javax/swing/undo/AbstractUndoableEdit -javax/swing/undo/UndoableEdit +javax/swing/text/AbstractDocument$Content javax/swing/text/AbstractDocument$DefaultDocumentEvent -javax/swing/event/DocumentEvent -javax/swing/undo/CompoundEdit -javax/swing/event/DocumentEvent$EventType -javax/swing/text/Segment -java/text/CharacterIterator -javax/swing/text/Utilities -javax/swing/text/SegmentCache -javax/swing/text/SegmentCache$CachedSegment -javax/swing/event/UndoableEditEvent javax/swing/text/AbstractDocument$ElementEdit -javax/swing/event/DocumentEvent$ElementChange -java/net/Socket -java/net/InetAddress -java/net/InetAddress$Cache -java/net/InetAddress$Cache$Type -java/net/InetAddressImplFactory -java/net/Inet4AddressImpl -java/net/InetAddressImpl -java/net/InetAddress$1 -sun/net/spi/nameservice/NameService -sun/net/util/IPAddressUtil -java/util/RandomAccessSubList -java/util/SubList -java/util/SubList$1 -java/util/AbstractList$ListItr -java/net/Inet4Address -java/net/InetSocketAddress -java/net/SocketAddress -java/net/SocksSocketImpl -java/net/SocksConsts -java/net/PlainSocketImpl -java/net/SocketImpl -java/net/SocketOptions -java/net/SocketException -java/net/SocksSocketImpl$5 -java/net/ProxySelector -sun/net/spi/DefaultProxySelector -sun/net/spi/DefaultProxySelector$1 -sun/net/NetProperties -sun/net/NetProperties$1 -sun/net/spi/DefaultProxySelector$NonProxyInfo -java/net/Inet6Address -java/net/URI -java/net/URI$Parser -java/net/Proxy -java/net/Proxy$Type -java/net/ConnectException -javax/swing/JMenu -javax/swing/MenuElement -javax/swing/JMenuItem -javax/swing/AbstractButton -java/awt/ItemSelectable -javax/swing/event/MenuListener -javax/swing/JCheckBoxMenuItem -javax/swing/Icon -javax/swing/JButton -java/awt/event/WindowListener -java/net/URLClassLoader$2 -javax/swing/ImageIcon -javax/swing/ImageIcon$1 -java/awt/MediaTracker -sun/misc/SoftCache$ValueCell -sun/awt/image/URLImageSource -sun/awt/image/InputStreamImageSource -sun/awt/image/ImageFetchable -sun/awt/image/ToolkitImage -java/awt/Image$1 -sun/awt/image/SurfaceManager$ImageAccessor -sun/awt/image/SurfaceManager -sun/awt/image/NativeLibLoader -java/awt/ImageMediaEntry -java/awt/MediaEntry -sun/awt/image/ImageRepresentation -java/awt/image/ImageConsumer -sun/awt/image/ImageWatched -sun/awt/image/ImageWatched$Link -sun/awt/image/ImageWatched$WeakLink -sun/awt/image/ImageConsumerQueue -sun/awt/image/ImageFetcher -sun/awt/image/FetcherInfo -sun/awt/image/ImageFetcher$1 -sun/awt/image/GifImageDecoder -sun/awt/image/ImageDecoder -sun/awt/image/GifFrame -java/awt/image/Raster -java/awt/image/DataBufferByte -java/awt/image/DataBuffer -java/awt/image/PixelInterleavedSampleModel -java/awt/image/ComponentSampleModel -java/awt/image/SampleModel -sun/awt/image/ByteInterleavedRaster -sun/awt/image/ByteComponentRaster -sun/awt/image/SunWritableRaster -java/awt/image/WritableRaster -java/awt/image/BufferedImage -java/awt/image/WritableRenderedImage -java/awt/image/RenderedImage -sun/awt/image/IntegerComponentRaster -sun/awt/image/BytePackedRaster -java/awt/Canvas -sun/font/FontDesignMetrics -sun/font/FontStrikeDesc -sun/font/CompositeStrike -sun/font/FontStrikeDisposer -sun/font/StrikeCache$SoftDisposerRef -sun/font/StrikeCache$DisposableStrike -sun/font/TrueTypeFont$TTDisposerRecord -sun/font/TrueTypeFont$1 -java/io/RandomAccessFile -java/nio/ByteBufferAsIntBufferB -java/nio/IntBuffer -sun/font/TrueTypeFont$DirectoryEntry -java/nio/ByteBufferAsShortBufferB -java/nio/ShortBuffer -sun/nio/cs/UTF_16 -sun/nio/cs/UTF_16$Decoder -sun/nio/cs/UnicodeDecoder -sun/font/FileFontStrike -sun/font/TrueTypeGlyphMapper -sun/font/CMap -sun/font/CMap$NullCMapClass -sun/font/CMap$CMapFormat4 -java/nio/ByteBufferAsCharBufferB -sun/font/FontDesignMetrics$KeyReference -sun/awt/image/PNGImageDecoder -sun/awt/image/PNGFilterInputStream -java/util/zip/InflaterInputStream -java/util/zip/Inflater -sun/awt/EventQueueItem -sun/awt/SunToolkit$3 -sun/awt/X11/XExposeEvent -sun/reflect/UnsafeBooleanFieldAccessorImpl -sun/awt/event/IgnorePaintEvent -java/awt/image/DataBufferInt -java/awt/image/SinglePixelPackedSampleModel -sun/awt/image/IntegerInterleavedRaster -sun/awt/image/OffScreenImage -sun/awt/image/BufImgSurfaceData -sun/java2d/opengl/GLXGraphicsConfig -sun/java2d/opengl/OGLGraphicsConfig -sun/java2d/x11/X11SurfaceData$X11PixmapSurfaceData -sun/awt/image/WritableRasterNative -sun/awt/image/DataBufferNative -sun/java2d/SurfaceManagerFactory -sun/java2d/opengl/GLXSurfaceData -sun/java2d/opengl/OGLSurfaceData -sun/font/CompositeGlyphMapper -sun/java2d/loops/FontInfo -java/util/Date -sun/util/calendar/CalendarSystem -sun/util/calendar/Gregorian -sun/util/calendar/BaseCalendar -sun/util/calendar/AbstractCalendar -java/util/TimeZone -java/lang/InheritableThreadLocal -sun/util/calendar/ZoneInfo -sun/util/calendar/ZoneInfoFile -sun/util/calendar/ZoneInfoFile$1 -java/util/TimeZone$1 -sun/util/calendar/Gregorian$Date -sun/util/calendar/BaseCalendar$Date -sun/util/calendar/CalendarDate -sun/util/calendar/CalendarUtils -java/util/TimeZone$DisplayNames -sun/util/TimeZoneNameUtility -sun/util/resources/TimeZoneNames -sun/util/resources/TimeZoneNamesBundle -sun/util/resources/TimeZoneNames_en -java/util/spi/TimeZoneNameProvider -java/lang/ProcessBuilder -java/lang/ProcessImpl -java/lang/UNIXProcess -java/lang/Process -java/lang/UNIXProcess$1 -java/net/ServerSocket -java/util/Random -java/util/concurrent/atomic/AtomicLong -java/lang/InternalError -java/io/StringReader -java/lang/SecurityException -java/io/FilterReader -java/lang/reflect/Proxy -java/lang/reflect/InvocationHandler -java/lang/NoSuchFieldException -java/lang/InstantiationException -java/lang/ArrayIndexOutOfBoundsException -java/lang/IndexOutOfBoundsException -javax/swing/JDialog -sun/awt/X11/XClipboard -sun/awt/datatransfer/SunClipboard -java/awt/datatransfer/Clipboard -java/awt/datatransfer/SystemFlavorMap -java/awt/datatransfer/FlavorMap -java/awt/datatransfer/FlavorTable -java/awt/datatransfer/SystemFlavorMap$1 -sun/net/ProgressMonitor -sun/net/DefaultProgressMeteringPolicy -sun/net/ProgressMeteringPolicy -java/awt/datatransfer/SystemFlavorMap$2 -java/awt/datatransfer/MimeType -java/io/Externalizable -java/awt/datatransfer/MimeTypeParameterList -sun/awt/datatransfer/DataTransferer -java/util/Collections$SynchronizedSet -java/util/Collections$SynchronizedCollection -java/awt/datatransfer/DataFlavor -java/awt/datatransfer/DataFlavor$1 -sun/awt/datatransfer/DataTransferer$CharsetComparator -sun/awt/datatransfer/DataTransferer$IndexedComparator -sun/nio/cs/UTF_16LE -sun/nio/cs/UTF_16BE -sun/awt/datatransfer/DataTransferer$DataFlavorComparator -java/rmi/Remote -sun/awt/datatransfer/DataTransferer$1 -sun/awt/X11/XDataTransferer -sun/awt/datatransfer/ToolkitThreadBlockedHandler -javax/imageio/ImageTypeSpecifier -sun/awt/X11/XSelection -sun/security/action/GetIntegerAction -sun/awt/X11/XSelection$IncrementalTransferHandler -sun/awt/X11/XSelection$SelectionEventHandler -java/awt/datatransfer/Transferable -java/io/EOFException -java/util/Vector$1 -java/util/zip/ZipFile$1 -java/util/zip/ZipFile$2 -java/util/jar/JarFile$1 -java/util/PropertyResourceBundle -java/util/ResourceBundle$Control$1 -java/util/Hashtable$EntrySet -java/lang/IllegalAccessError -java/text/MessageFormat -java/text/MessageFormat$Field -java/text/Format$Field -java/lang/CloneNotSupportedException -sun/reflect/MethodAccessorGenerator -sun/reflect/AccessorGenerator -sun/reflect/ClassFileConstants -java/lang/Void -sun/reflect/ByteVectorFactory -sun/reflect/ByteVectorImpl -sun/reflect/ByteVector -sun/reflect/ClassFileAssembler -sun/reflect/UTF8 -sun/reflect/Label -sun/reflect/Label$PatchInfo -sun/reflect/MethodAccessorGenerator$1 -sun/reflect/ClassDefiner -sun/reflect/ClassDefiner$1 -sun/reflect/BootstrapConstructorAccessorImpl -java/awt/event/ActionListener -javax/swing/Timer -javax/swing/Timer$DoPostEvent -javax/swing/TimerQueue -javax/swing/TimerQueue$1 -javax/swing/ToolTipManager -java/awt/event/MouseAdapter -javax/swing/ToolTipManager$insideTimerAction -javax/swing/ToolTipManager$outsideTimerAction -javax/swing/ToolTipManager$stillInsideTimerAction -sun/swing/UIAction -javax/swing/Action -javax/swing/ToolTipManager$MoveBeforeEnterListener -java/awt/event/MouseMotionAdapter -java/util/Hashtable$ValueCollection -javax/swing/event/CaretListener -javax/swing/JToolBar -javax/swing/JSplitPane -javax/swing/border/Border -javax/swing/JToggleButton -javax/swing/border/EmptyBorder -javax/swing/border/AbstractBorder -javax/swing/DefaultButtonModel -javax/swing/ButtonModel -javax/swing/AbstractButton$Handler -javax/swing/event/ChangeListener -java/awt/event/ItemListener -javax/swing/plaf/metal/MetalButtonUI -javax/swing/plaf/basic/BasicButtonUI -javax/swing/plaf/ButtonUI -javax/swing/plaf/metal/MetalBorders -javax/swing/plaf/BorderUIResource$CompoundBorderUIResource -javax/swing/border/CompoundBorder -javax/swing/plaf/metal/MetalBorders$ButtonBorder -javax/swing/plaf/basic/BasicBorders$MarginBorder -javax/swing/plaf/basic/BasicButtonListener -java/awt/AWTEventMulticaster -java/awt/event/WindowFocusListener -java/awt/event/WindowStateListener -java/awt/event/AdjustmentListener -java/awt/event/TextListener -javax/swing/event/AncestorListener -java/beans/VetoableChangeListener -javax/swing/ButtonGroup -javax/swing/JToggleButton$ToggleButtonModel -javax/swing/plaf/metal/MetalToggleButtonUI -javax/swing/plaf/basic/BasicToggleButtonUI -javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder -java/awt/CardLayout -javax/swing/Box -javax/swing/plaf/metal/MetalBorders$TextFieldBorder -javax/swing/plaf/metal/MetalBorders$Flush3DBorder -javax/swing/BoxLayout -javax/swing/JMenuBar -javax/swing/DefaultSingleSelectionModel -javax/swing/SingleSelectionModel -javax/swing/plaf/basic/BasicMenuBarUI -javax/swing/plaf/MenuBarUI -javax/swing/plaf/basic/DefaultMenuLayout -javax/swing/plaf/metal/MetalBorders$MenuBarBorder -javax/swing/plaf/basic/BasicMenuBarUI$Handler -javax/swing/KeyboardManager -javax/swing/event/MenuEvent -javax/swing/JMenu$MenuChangeListener -javax/swing/JMenuItem$MenuItemFocusListener -javax/swing/plaf/basic/BasicMenuUI -javax/swing/plaf/basic/BasicMenuItemUI -javax/swing/plaf/MenuItemUI -javax/swing/plaf/metal/MetalBorders$MenuItemBorder -javax/swing/plaf/metal/MetalIconFactory -javax/swing/plaf/metal/MetalIconFactory$MenuArrowIcon -javax/swing/plaf/basic/BasicMenuUI$Handler -javax/swing/event/MenuKeyListener -javax/swing/plaf/basic/BasicMenuItemUI$Handler -javax/swing/event/MenuDragMouseListener -javax/swing/event/MouseInputListener -javax/swing/event/ChangeEvent -java/awt/event/ContainerEvent -javax/swing/plaf/metal/MetalIconFactory$MenuItemArrowIcon -javax/swing/JPopupMenu -javax/swing/plaf/basic/BasicPopupMenuUI -javax/swing/plaf/PopupMenuUI -javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper -java/awt/event/AWTEventListenerProxy -java/awt/Toolkit$SelectiveAWTEventListener -java/awt/Toolkit$ToolkitEventMulticaster -javax/swing/plaf/basic/BasicLookAndFeel$1 -javax/swing/plaf/metal/MetalBorders$PopupMenuBorder -javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener -javax/swing/event/PopupMenuListener -javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener -javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber -javax/swing/MenuSelectionManager -javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper -javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper$1 -java/awt/event/FocusAdapter -javax/swing/JMenu$WinListener -java/awt/event/WindowAdapter -javax/swing/JPopupMenu$Separator -javax/swing/JSeparator -javax/swing/plaf/metal/MetalPopupMenuSeparatorUI -javax/swing/plaf/metal/MetalSeparatorUI -javax/swing/plaf/basic/BasicSeparatorUI -javax/swing/plaf/SeparatorUI -javax/swing/JComboBox -javax/swing/event/ListDataListener -javax/swing/event/CaretEvent -javax/swing/text/TabExpander -javax/swing/JScrollBar -java/awt/Adjustable -javax/swing/event/MouseInputAdapter -javax/swing/JScrollBar$ModelListener -javax/swing/DefaultBoundedRangeModel -javax/swing/BoundedRangeModel -javax/swing/plaf/metal/MetalScrollBarUI -javax/swing/plaf/basic/BasicScrollBarUI -javax/swing/plaf/ScrollBarUI -javax/swing/plaf/metal/MetalBumps -javax/swing/plaf/metal/MetalScrollButton -javax/swing/plaf/basic/BasicArrowButton -javax/swing/plaf/basic/BasicScrollBarUI$TrackListener -javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener -javax/swing/plaf/basic/BasicScrollBarUI$ModelListener -javax/swing/plaf/metal/MetalScrollBarUI$ScrollBarListener -javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler -javax/swing/plaf/basic/BasicScrollBarUI$Handler -javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener -javax/swing/CellRendererPane -java/util/HashMap$EntryIterator -javax/swing/border/MatteBorder -sun/font/StandardGlyphVector -java/awt/font/GlyphVector -sun/font/StandardGlyphVector$GlyphStrike -sun/font/CoreMetrics -sun/font/FontLineMetrics -java/awt/font/LineMetrics -javax/swing/ComboBoxModel -javax/swing/ListModel -javax/swing/ListCellRenderer -javax/swing/DefaultComboBoxModel -javax/swing/MutableComboBoxModel -javax/swing/AbstractListModel -javax/swing/JComboBox$1 -javax/swing/AncestorNotifier -javax/swing/plaf/metal/MetalComboBoxUI -javax/swing/plaf/basic/BasicComboBoxUI -javax/swing/plaf/ComboBoxUI -javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager -javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager -javax/swing/plaf/basic/BasicComboPopup -javax/swing/plaf/basic/ComboPopup -javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass -javax/swing/border/LineBorder -javax/swing/plaf/basic/BasicComboPopup$1 -javax/swing/JList -javax/swing/DropMode -javax/swing/DefaultListSelectionModel -javax/swing/ListSelectionModel -javax/swing/plaf/basic/BasicListUI -javax/swing/plaf/ListUI -javax/swing/plaf/basic/BasicListUI$ListTransferHandler -javax/swing/TransferHandler -javax/swing/TransferHandler$TransferAction -javax/swing/DefaultListCellRenderer$UIResource -javax/swing/DefaultListCellRenderer -javax/swing/TransferHandler$SwingDropTarget -java/awt/dnd/DropTargetContext -javax/swing/TransferHandler$DropHandler -javax/swing/TransferHandler$TransferSupport -javax/swing/plaf/basic/BasicListUI$Handler -javax/swing/event/ListSelectionListener -javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag -javax/swing/plaf/basic/BasicComboPopup$Handler -javax/swing/JScrollPane -javax/swing/ScrollPaneConstants -javax/swing/ScrollPaneLayout$UIResource -javax/swing/ScrollPaneLayout -javax/swing/JViewport -javax/swing/ViewportLayout -javax/swing/plaf/basic/BasicViewportUI -javax/swing/plaf/ViewportUI -javax/swing/JScrollPane$ScrollBar -javax/swing/JViewport$ViewListener -java/awt/event/ComponentAdapter -javax/swing/plaf/metal/MetalScrollPaneUI -javax/swing/plaf/basic/BasicScrollPaneUI -javax/swing/plaf/ScrollPaneUI -javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder -javax/swing/plaf/basic/BasicScrollPaneUI$Handler -javax/swing/plaf/metal/MetalScrollPaneUI$1 -javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource -javax/swing/plaf/basic/BasicComboBoxRenderer -javax/swing/plaf/metal/MetalComboBoxEditor$UIResource -javax/swing/plaf/metal/MetalComboBoxEditor -javax/swing/plaf/basic/BasicComboBoxEditor -javax/swing/ComboBoxEditor -javax/swing/plaf/basic/BasicComboBoxEditor$BorderlessTextField -javax/swing/JTextField$NotifyAction -javax/swing/text/TextAction -javax/swing/AbstractAction -javax/swing/text/JTextComponent$MutableCaretEvent -javax/swing/plaf/metal/MetalTextFieldUI -javax/swing/plaf/basic/BasicTextFieldUI -javax/swing/plaf/basic/BasicTextUI -javax/swing/text/ViewFactory -javax/swing/plaf/TextUI -javax/swing/plaf/basic/BasicTextUI$BasicCursor +javax/swing/text/AbstractDocument$InsertStringResult +javax/swing/text/AbstractDocument$LeafElement +javax/swing/text/AttributeSet +javax/swing/text/AttributeSet$CharacterAttribute +javax/swing/text/AttributeSet$ColorAttribute +javax/swing/text/AttributeSet$FontAttribute +javax/swing/text/AttributeSet$ParagraphAttribute +javax/swing/text/Caret +javax/swing/text/DefaultCaret +javax/swing/text/DefaultCaret$Handler javax/swing/text/DefaultEditorKit -javax/swing/text/EditorKit -javax/swing/text/DefaultEditorKit$InsertContentAction -javax/swing/text/DefaultEditorKit$DeletePrevCharAction -javax/swing/text/DefaultEditorKit$DeleteNextCharAction -javax/swing/text/DefaultEditorKit$ReadOnlyAction -javax/swing/text/DefaultEditorKit$DeleteWordAction -javax/swing/text/DefaultEditorKit$WritableAction -javax/swing/text/DefaultEditorKit$CutAction -javax/swing/text/DefaultEditorKit$CopyAction -javax/swing/text/DefaultEditorKit$PasteAction -javax/swing/text/DefaultEditorKit$VerticalPageAction -javax/swing/text/DefaultEditorKit$PageAction -javax/swing/text/DefaultEditorKit$InsertBreakAction javax/swing/text/DefaultEditorKit$BeepAction -javax/swing/text/DefaultEditorKit$NextVisualPositionAction -javax/swing/text/DefaultEditorKit$BeginWordAction -javax/swing/text/DefaultEditorKit$EndWordAction -javax/swing/text/DefaultEditorKit$PreviousWordAction -javax/swing/text/DefaultEditorKit$NextWordAction -javax/swing/text/DefaultEditorKit$BeginLineAction -javax/swing/text/DefaultEditorKit$EndLineAction -javax/swing/text/DefaultEditorKit$BeginParagraphAction -javax/swing/text/DefaultEditorKit$EndParagraphAction javax/swing/text/DefaultEditorKit$BeginAction -javax/swing/text/DefaultEditorKit$EndAction +javax/swing/text/DefaultEditorKit$BeginLineAction +javax/swing/text/DefaultEditorKit$BeginParagraphAction +javax/swing/text/DefaultEditorKit$BeginWordAction +javax/swing/text/DefaultEditorKit$CopyAction +javax/swing/text/DefaultEditorKit$CutAction javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction +javax/swing/text/DefaultEditorKit$DeleteNextCharAction +javax/swing/text/DefaultEditorKit$DeletePrevCharAction +javax/swing/text/DefaultEditorKit$DeleteWordAction +javax/swing/text/DefaultEditorKit$DumpModelAction +javax/swing/text/DefaultEditorKit$EndAction +javax/swing/text/DefaultEditorKit$EndLineAction +javax/swing/text/DefaultEditorKit$EndParagraphAction +javax/swing/text/DefaultEditorKit$EndWordAction +javax/swing/text/DefaultEditorKit$InsertBreakAction +javax/swing/text/DefaultEditorKit$InsertContentAction javax/swing/text/DefaultEditorKit$InsertTabAction -javax/swing/text/DefaultEditorKit$SelectWordAction +javax/swing/text/DefaultEditorKit$NextVisualPositionAction +javax/swing/text/DefaultEditorKit$NextWordAction +javax/swing/text/DefaultEditorKit$PageAction +javax/swing/text/DefaultEditorKit$PasteAction +javax/swing/text/DefaultEditorKit$PreviousWordAction +javax/swing/text/DefaultEditorKit$ReadOnlyAction +javax/swing/text/DefaultEditorKit$SelectAllAction javax/swing/text/DefaultEditorKit$SelectLineAction javax/swing/text/DefaultEditorKit$SelectParagraphAction -javax/swing/text/DefaultEditorKit$SelectAllAction -javax/swing/text/DefaultEditorKit$UnselectAction +javax/swing/text/DefaultEditorKit$SelectWordAction javax/swing/text/DefaultEditorKit$ToggleComponentOrientationAction -javax/swing/text/DefaultEditorKit$DumpModelAction -javax/swing/plaf/basic/BasicTextUI$TextTransferHandler -javax/swing/text/Position$Bias -javax/swing/plaf/basic/BasicTextUI$RootView -javax/swing/text/View -javax/swing/plaf/basic/BasicTextUI$UpdateHandler -javax/swing/event/DocumentListener -javax/swing/plaf/basic/BasicTextUI$DragListener -javax/swing/plaf/basic/BasicComboBoxEditor$UIResource -javax/swing/plaf/basic/BasicTextUI$BasicCaret -javax/swing/text/DefaultCaret -javax/swing/text/Caret -javax/swing/text/DefaultCaret$Handler -java/awt/datatransfer/ClipboardOwner -javax/swing/plaf/basic/BasicTextUI$BasicHighlighter +javax/swing/text/DefaultEditorKit$UnselectAction +javax/swing/text/DefaultEditorKit$VerticalPageAction +javax/swing/text/DefaultEditorKit$WritableAction javax/swing/text/DefaultHighlighter -javax/swing/text/LayeredHighlighter +javax/swing/text/DefaultHighlighter$DefaultHighlightPainter +javax/swing/text/DefaultHighlighter$SafeDamager +javax/swing/text/Document +javax/swing/text/EditorKit +javax/swing/text/Element +javax/swing/text/FieldView +javax/swing/text/GapContent +javax/swing/text/GapContent$InsertUndo +javax/swing/text/GapContent$MarkData +javax/swing/text/GapContent$MarkVector +javax/swing/text/GapContent$StickyPosition +javax/swing/text/GapVector javax/swing/text/Highlighter javax/swing/text/Highlighter$Highlight -javax/swing/text/DefaultHighlighter$DefaultHighlightPainter -javax/swing/text/LayeredHighlighter$LayerPainter javax/swing/text/Highlighter$HighlightPainter -javax/swing/text/DefaultHighlighter$SafeDamager -javax/swing/text/FieldView -javax/swing/text/PlainView +javax/swing/text/JTextComponent +javax/swing/text/JTextComponent$1 javax/swing/text/JTextComponent$DefaultKeymap -javax/swing/text/Keymap -javax/swing/text/JTextComponent$KeymapWrapper javax/swing/text/JTextComponent$KeymapActionMap -javax/swing/plaf/basic/BasicTextUI$FocusAction -javax/swing/plaf/basic/BasicTextUI$TextActionWrapper -javax/swing/JTextArea -javax/swing/JEditorPane -javax/swing/JTextField$ScrollRepainter -javax/swing/plaf/metal/MetalComboBoxEditor$1 -javax/swing/plaf/metal/MetalComboBoxEditor$EditorBorder -javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener -javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler -javax/swing/plaf/basic/BasicComboBoxUI$Handler -javax/swing/plaf/metal/MetalComboBoxButton -javax/swing/plaf/metal/MetalComboBoxIcon -javax/swing/plaf/metal/MetalComboBoxButton$1 -javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager -javax/swing/JComboBox$KeySelectionManager -javax/swing/JToolBar$DefaultToolBarLayout -javax/swing/plaf/metal/MetalToolBarUI -javax/swing/plaf/basic/BasicToolBarUI -javax/swing/plaf/ToolBarUI -javax/swing/plaf/metal/MetalBorders$ToolBarBorder -javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue$1 -javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder -javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder -javax/swing/plaf/basic/BasicBorders$RadioButtonBorder -javax/swing/plaf/basic/BasicBorders$ButtonBorder -javax/swing/plaf/basic/BasicBorders$RolloverMarginBorder -javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener -javax/swing/plaf/basic/BasicToolBarUI$DockingListener -javax/swing/plaf/basic/BasicToolBarUI$Handler -javax/swing/border/EtchedBorder -javax/swing/JToolBar$Separator -javax/swing/plaf/basic/BasicToolBarSeparatorUI -java/applet/Applet -java/awt/Panel -com/sun/awt/AWTUtilities -javax/swing/KeyboardManager$ComponentKeyStrokePair -sun/awt/EmbeddedFrame -sun/awt/im/InputMethodContext -java/awt/im/spi/InputMethodContext -sun/awt/im/InputContext -sun/awt/im/InputMethodManager -sun/awt/im/ExecutableInputMethodManager -sun/awt/X11/XInputMethodDescriptor -sun/awt/X11InputMethodDescriptor -java/awt/im/spi/InputMethodDescriptor -sun/awt/im/InputMethodLocator -sun/awt/im/ExecutableInputMethodManager$2 -sun/misc/Service -sun/misc/Service$LazyIterator -java/util/TreeSet -java/util/NavigableSet -java/util/SortedSet -javax/swing/SizeRequirements -javax/swing/plaf/basic/BasicGraphicsUtils -java/awt/event/AdjustmentEvent -java/awt/MenuBar -sun/awt/X11/XComponentPeer$2 -java/awt/SequencedEvent -java/beans/PropertyVetoException -java/awt/DefaultKeyboardFocusManager$TypeAheadMarker -java/awt/KeyboardFocusManager$HeavyweightFocusRequest -java/awt/KeyboardFocusManager$LightweightFocusRequest -sun/awt/KeyboardFocusManagerPeerImpl -sun/awt/SunToolkit$7 -java/awt/Window$1DisposeAction -java/awt/LightweightDispatcher$2 -sun/awt/X11/XReparentEvent -sun/awt/X11/XWindowAttributes -sun/awt/X11/XFocusChangeEvent -sun/awt/X11/XComponentPeer$1 -sun/awt/X11/XUnmapEvent -java/io/StringWriter -javax/swing/JWindow -java/io/UnsupportedEncodingException -java/net/UnknownHostException -java/nio/channels/SocketChannel -java/nio/channels/spi/AbstractSelectableChannel -java/nio/channels/SelectableChannel -java/net/SocketImplFactory -javax/swing/UnsupportedLookAndFeelException -java/lang/UnsatisfiedLinkError -javax/swing/Box$Filler -javax/swing/JComponent$2 -sun/net/www/MimeTable -java/net/FileNameMap -sun/net/www/MimeTable$1 -sun/net/www/MimeEntry -java/net/URLConnection$1 -java/text/SimpleDateFormat -java/text/DateFormat -java/text/DateFormat$Field -java/util/Calendar -java/util/GregorianCalendar -sun/util/resources/CalendarData -sun/util/resources/CalendarData_en -java/text/DateFormatSymbols -java/text/spi/DateFormatSymbolsProvider -java/text/DontCareFieldPosition -java/text/DontCareFieldPosition$1 -java/text/Format$FieldDelegate -javax/swing/plaf/BorderUIResource -javax/swing/BorderFactory -javax/swing/border/BevelBorder -javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon -javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 -java/util/zip/ZipInputStream -java/io/PushbackInputStream -java/util/zip/CRC32 -java/util/zip/Checksum -java/lang/Thread$State -javax/swing/SwingUtilities$SharedOwnerFrame -javax/swing/JTable -javax/swing/event/TableModelListener -javax/swing/event/TableColumnModelListener -javax/swing/event/CellEditorListener -javax/swing/event/RowSorterListener -javax/swing/BufferStrategyPaintManager$BufferInfo -java/awt/Component$BltSubRegionBufferStrategy -sun/awt/SubRegionShowable -java/awt/Component$BltBufferStrategy -sun/awt/image/SunVolatileImage -sun/awt/image/BufferedImageGraphicsConfig -sun/print/PrinterGraphicsConfig -sun/java2d/x11/X11VolatileSurfaceManager -sun/awt/image/VolatileSurfaceManager -java/awt/print/PrinterGraphics -java/awt/PrintGraphics -java/awt/GraphicsCallback$PaintCallback -java/awt/GraphicsCallback -sun/awt/SunGraphicsCallback -javax/swing/JRadioButton -java/lang/ClassFormatError -javax/swing/JTabbedPane -javax/swing/JTabbedPane$ModelListener -javax/swing/plaf/metal/MetalTabbedPaneUI -javax/swing/plaf/basic/BasicTabbedPaneUI -javax/swing/plaf/TabbedPaneUI -javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$Handler -sun/swing/ImageIconUIResource -javax/swing/GrayFilter -java/awt/image/RGBImageFilter -java/awt/image/ImageFilter -java/awt/image/FilteredImageSource -org/w3c/dom/Node -org/xml/sax/SAXException -javax/xml/parsers/ParserConfigurationException -org/xml/sax/EntityResolver -java/security/NoSuchAlgorithmException -java/security/GeneralSecurityException -java/util/zip/GZIPInputStream -java/util/zip/DeflaterOutputStream -org/xml/sax/InputSource -javax/xml/parsers/DocumentBuilderFactory -javax/xml/parsers/FactoryFinder -javax/xml/parsers/SecuritySupport -javax/xml/parsers/SecuritySupport$2 -javax/xml/parsers/SecuritySupport$5 -javax/xml/parsers/SecuritySupport$1 -javax/xml/parsers/SecuritySupport$4 -javax/xml/parsers/DocumentBuilder -org/w3c/dom/Document -org/xml/sax/helpers/DefaultHandler -org/xml/sax/DTDHandler -org/xml/sax/ContentHandler -org/xml/sax/ErrorHandler -org/xml/sax/SAXNotSupportedException -org/xml/sax/Locator -org/xml/sax/SAXNotRecognizedException -org/xml/sax/SAXParseException -org/w3c/dom/NodeList -org/w3c/dom/events/EventTarget -org/w3c/dom/traversal/DocumentTraversal -org/w3c/dom/events/DocumentEvent -org/w3c/dom/ranges/DocumentRange -org/w3c/dom/Entity -org/w3c/dom/Element -org/w3c/dom/CharacterData -org/w3c/dom/CDATASection -org/w3c/dom/Text -org/xml/sax/AttributeList -org/w3c/dom/DOMException -org/w3c/dom/Notation -org/w3c/dom/DocumentType -org/w3c/dom/Attr -org/w3c/dom/EntityReference -org/w3c/dom/ProcessingInstruction -org/w3c/dom/Comment -org/w3c/dom/DocumentFragment -org/w3c/dom/events/Event -org/w3c/dom/events/MutationEvent -org/w3c/dom/traversal/TreeWalker -org/w3c/dom/ranges/Range -org/w3c/dom/traversal/NodeIterator -org/w3c/dom/events/EventException -org/w3c/dom/NamedNodeMap -java/lang/StringIndexOutOfBoundsException -java/awt/GridLayout -javax/swing/plaf/metal/MetalRadioButtonUI -javax/swing/plaf/basic/BasicRadioButtonUI -javax/swing/plaf/basic/BasicBorders -javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon -java/awt/event/ItemEvent -java/awt/CardLayout$Card -javax/swing/JCheckBox -javax/swing/event/ListSelectionEvent -javax/swing/plaf/metal/MetalCheckBoxUI -javax/swing/plaf/metal/MetalIconFactory$CheckBoxIcon -java/lang/ExceptionInInitializerError -com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI -javax/swing/JProgressBar -javax/swing/JProgressBar$ModelListener -javax/swing/plaf/metal/MetalProgressBarUI -javax/swing/plaf/basic/BasicProgressBarUI -javax/swing/plaf/ProgressBarUI -javax/swing/plaf/BorderUIResource$LineBorderUIResource -javax/swing/plaf/basic/BasicProgressBarUI$Handler -javax/swing/tree/TreeModel -javax/swing/table/TableCellRenderer -javax/swing/table/JTableHeader -javax/swing/event/TreeExpansionListener -javax/swing/table/AbstractTableModel -javax/swing/table/TableModel -javax/swing/table/DefaultTableCellRenderer -javax/swing/JTree -javax/swing/tree/TreeSelectionModel -javax/swing/tree/DefaultTreeCellRenderer -javax/swing/tree/TreeCellRenderer -javax/swing/table/TableCellEditor -javax/swing/CellEditor -javax/swing/JToolTip -javax/swing/table/TableColumn -javax/swing/table/DefaultTableColumnModel -javax/swing/table/TableColumnModel -javax/swing/table/DefaultTableModel -javax/swing/event/TableModelEvent -sun/swing/table/DefaultTableCellHeaderRenderer -javax/swing/plaf/basic/BasicTableHeaderUI -javax/swing/plaf/TableHeaderUI -javax/swing/plaf/basic/BasicTableHeaderUI$1 -javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler -javax/swing/DefaultCellEditor -javax/swing/tree/TreeCellEditor -javax/swing/AbstractCellEditor -javax/swing/plaf/basic/BasicTableUI -javax/swing/plaf/TableUI -javax/swing/plaf/basic/BasicTableUI$TableTransferHandler -javax/swing/plaf/basic/BasicTableUI$Handler -javax/swing/tree/DefaultTreeSelectionModel -javax/swing/tree/TreePath -javax/swing/plaf/metal/MetalTreeUI -javax/swing/plaf/basic/BasicTreeUI -javax/swing/plaf/TreeUI -javax/swing/plaf/basic/BasicTreeUI$Actions -javax/swing/plaf/basic/BasicTreeUI$TreeTransferHandler -javax/swing/plaf/metal/MetalTreeUI$LineListener -javax/swing/plaf/basic/BasicTreeUI$Handler -javax/swing/event/TreeModelListener -javax/swing/event/TreeSelectionListener -javax/swing/event/SwingPropertyChangeSupport -javax/swing/tree/VariableHeightLayoutCache +javax/swing/text/JTextComponent$KeymapWrapper +javax/swing/text/JTextComponent$MutableCaretEvent +javax/swing/text/Keymap +javax/swing/text/LayeredHighlighter +javax/swing/text/LayeredHighlighter$LayerPainter +javax/swing/text/MutableAttributeSet +javax/swing/text/PlainDocument +javax/swing/text/PlainView +javax/swing/text/Position +javax/swing/text/Position$Bias +javax/swing/text/Segment +javax/swing/text/SegmentCache +javax/swing/text/SegmentCache$CachedSegment +javax/swing/text/SimpleAttributeSet +javax/swing/text/SimpleAttributeSet$EmptyAttributeSet +javax/swing/text/Style +javax/swing/text/StyleConstants +javax/swing/text/StyleConstants$CharacterConstants +javax/swing/text/StyleConstants$ColorConstants +javax/swing/text/StyleConstants$FontConstants +javax/swing/text/StyleConstants$ParagraphConstants +javax/swing/text/StyleContext +javax/swing/text/StyleContext$FontKey +javax/swing/text/StyleContext$KeyEnumeration +javax/swing/text/StyleContext$NamedStyle +javax/swing/text/StyleContext$SmallAttributeSet +javax/swing/text/TabExpander +javax/swing/text/TextAction +javax/swing/text/Utilities +javax/swing/text/View +javax/swing/text/ViewFactory javax/swing/tree/AbstractLayoutCache -javax/swing/tree/RowMapper -javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler javax/swing/tree/AbstractLayoutCache$NodeDimensions -javax/swing/JTree$TreeModelHandler -javax/swing/tree/VariableHeightLayoutCache$TreeStateNode javax/swing/tree/DefaultMutableTreeNode -javax/swing/tree/MutableTreeNode javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration -javax/swing/event/TableColumnModelEvent -java/text/ParseException -java/text/NumberFormat$Field -javax/swing/event/UndoableEditListener -javax/swing/filechooser/FileFilter -javax/swing/tree/DefaultTreeModel javax/swing/tree/DefaultTreeCellEditor javax/swing/tree/DefaultTreeCellEditor$1 javax/swing/tree/DefaultTreeCellEditor$DefaultTextField -javax/swing/DefaultCellEditor$1 -javax/swing/DefaultCellEditor$EditorDelegate javax/swing/tree/DefaultTreeCellEditor$EditorContainer -javax/swing/JTree$TreeSelectionRedirector -javax/swing/event/TreeModelEvent -javax/swing/plaf/metal/MetalSplitPaneUI -javax/swing/plaf/basic/BasicSplitPaneUI -javax/swing/plaf/SplitPaneUI -javax/swing/plaf/basic/BasicSplitPaneDivider -javax/swing/plaf/basic/BasicBorders$SplitPaneBorder -javax/swing/plaf/metal/MetalSplitPaneDivider -javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout -javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler -javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder -javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager -javax/swing/plaf/basic/BasicSplitPaneUI$1 -javax/swing/plaf/basic/BasicSplitPaneUI$Handler -javax/swing/plaf/metal/MetalSplitPaneDivider$1 -javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchActionHandler -javax/swing/plaf/metal/MetalSplitPaneDivider$2 -javax/swing/border/TitledBorder -javax/swing/plaf/basic/BasicTextAreaUI -java/util/Collections$UnmodifiableCollection$1 -java/io/InterruptedIOException -java/net/NoRouteToHostException -java/net/BindException +javax/swing/tree/DefaultTreeCellRenderer +javax/swing/tree/DefaultTreeModel +javax/swing/tree/DefaultTreeSelectionModel +javax/swing/tree/MutableTreeNode javax/swing/tree/PathPlaceHolder -javax/swing/event/TreeSelectionEvent -javax/swing/JList$3 -javax/swing/JList$ListSelectionHandler -javax/swing/JSlider -javax/swing/JSlider$ModelListener -javax/swing/plaf/metal/MetalSliderUI -javax/swing/plaf/basic/BasicSliderUI -javax/swing/plaf/SliderUI -javax/swing/plaf/basic/BasicSliderUI$Actions -javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon -javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon -javax/swing/plaf/basic/BasicSliderUI$TrackListener -javax/swing/plaf/basic/BasicSliderUI$Handler -javax/swing/plaf/basic/BasicSliderUI$ScrollListener -javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener -javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler -sun/java2d/HeadlessGraphicsEnvironment -java/util/Hashtable$KeySet -java/awt/FontFormatException -sun/font/Type1Font$1 -java/nio/channels/FileChannel$MapMode -sun/nio/ch/FileChannelImpl$Unmapper -sun/nio/ch/Util$3 -java/nio/DirectByteBufferR -java/nio/charset/Charset$3 -sun/nio/cs/AbstractCharsetProvider -sun/nio/cs/SingleByteDecoder -java/lang/CharacterData00 -javax/swing/DefaultListModel -javax/swing/event/ListDataEvent -javax/sound/sampled/DataLine -javax/sound/sampled/Line -javax/sound/sampled/Line$Info -javax/sound/sampled/DataLine$Info -javax/sound/sampled/Control$Type -javax/sound/sampled/FloatControl$Type -javax/sound/sampled/LineUnavailableException -javax/sound/sampled/UnsupportedAudioFileException -javax/swing/JRadioButtonMenuItem -javax/swing/JMenuItem$AccessibleJMenuItem -javax/swing/AbstractButton$AccessibleAbstractButton -javax/accessibility/AccessibleAction -javax/accessibility/AccessibleValue -javax/accessibility/AccessibleText -javax/accessibility/AccessibleExtendedComponent -javax/accessibility/AccessibleComponent -javax/swing/JComponent$AccessibleJComponent -java/awt/Container$AccessibleAWTContainer -java/awt/Component$AccessibleAWTComponent -javax/accessibility/AccessibleRelationSet -javax/accessibility/AccessibleState -javax/accessibility/AccessibleBundle -javax/swing/plaf/basic/BasicCheckBoxMenuItemUI -javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon -javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem -javax/swing/plaf/basic/BasicRadioButtonMenuItemUI -javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon +javax/swing/tree/RowMapper +javax/swing/tree/TreeCellEditor +javax/swing/tree/TreeCellRenderer +javax/swing/tree/TreeModel +javax/swing/tree/TreeNode +javax/swing/tree/TreePath +javax/swing/tree/TreeSelectionModel +javax/swing/tree/VariableHeightLayoutCache +javax/swing/tree/VariableHeightLayoutCache$TreeStateNode +javax/swing/undo/AbstractUndoableEdit +javax/swing/undo/CompoundEdit +javax/swing/undo/UndoableEdit +javax/xml/parsers/DocumentBuilder +javax/xml/parsers/DocumentBuilderFactory +javax/xml/parsers/FactoryFinder +javax/xml/parsers/FactoryFinder$1 +javax/xml/parsers/ParserConfigurationException +javax/xml/parsers/SecuritySupport +javax/xml/parsers/SecuritySupport$2 +javax/xml/parsers/SecuritySupport$5 +org/w3c/dom/Attr +org/w3c/dom/CDATASection +org/w3c/dom/CharacterData +org/w3c/dom/Comment +org/w3c/dom/DOMException +org/w3c/dom/Document +org/w3c/dom/DocumentFragment +org/w3c/dom/DocumentType +org/w3c/dom/Element +org/w3c/dom/Entity +org/w3c/dom/EntityReference +org/w3c/dom/NamedNodeMap +org/w3c/dom/Node +org/w3c/dom/NodeList +org/w3c/dom/Notation +org/w3c/dom/ProcessingInstruction +org/w3c/dom/Text +org/w3c/dom/events/DocumentEvent +org/w3c/dom/events/Event +org/w3c/dom/events/EventException +org/w3c/dom/events/EventTarget +org/w3c/dom/events/MutationEvent +org/w3c/dom/ranges/DocumentRange +org/w3c/dom/ranges/Range +org/w3c/dom/traversal/DocumentTraversal +org/w3c/dom/traversal/NodeIterator +org/w3c/dom/traversal/TreeWalker +org/xml/sax/AttributeList +org/xml/sax/ContentHandler +org/xml/sax/DTDHandler +org/xml/sax/EntityResolver +org/xml/sax/ErrorHandler +org/xml/sax/InputSource +org/xml/sax/Locator +org/xml/sax/SAXException +org/xml/sax/SAXNotRecognizedException +org/xml/sax/SAXNotSupportedException +org/xml/sax/SAXParseException +org/xml/sax/helpers/DefaultHandler +sun/awt/AWTAccessor +sun/awt/AWTAccessor$AWTEventAccessor +sun/awt/AWTAccessor$ClientPropertyKeyAccessor +sun/awt/AWTAccessor$ComponentAccessor +sun/awt/AWTAccessor$ContainerAccessor +sun/awt/AWTAccessor$CursorAccessor +sun/awt/AWTAccessor$DefaultKeyboardFocusManagerAccessor +sun/awt/AWTAccessor$EventQueueAccessor +sun/awt/AWTAccessor$FrameAccessor +sun/awt/AWTAccessor$InputEventAccessor +sun/awt/AWTAccessor$InvocationEventAccessor +sun/awt/AWTAccessor$KeyEventAccessor +sun/awt/AWTAccessor$KeyboardFocusManagerAccessor +sun/awt/AWTAccessor$SequencedEventAccessor +sun/awt/AWTAccessor$ToolkitAccessor +sun/awt/AWTAccessor$WindowAccessor +sun/awt/AWTAutoShutdown +sun/awt/AWTIcon32_java_icon16_png +sun/awt/AWTIcon32_java_icon24_png +sun/awt/AWTIcon32_java_icon32_png +sun/awt/AWTIcon32_java_icon48_png +sun/awt/AppContext +sun/awt/AppContext$1 +sun/awt/AppContext$2 +sun/awt/AppContext$3 +sun/awt/AppContext$6 +sun/awt/AppContext$GetAppContextLock +sun/awt/AppContext$State +sun/awt/CausedFocusEvent +sun/awt/CausedFocusEvent$Cause +sun/awt/ComponentFactory +sun/awt/ConstrainableGraphics +sun/awt/DisplayChangedListener +sun/awt/EmbeddedFrame +sun/awt/EventQueueDelegate +sun/awt/EventQueueItem +sun/awt/FontConfiguration +sun/awt/FontDescriptor +sun/awt/GlobalCursorManager +sun/awt/GlobalCursorManager$NativeUpdater +sun/awt/HeadlessToolkit +sun/awt/IconInfo +sun/awt/InputMethodSupport +sun/awt/KeyboardFocusManagerPeerImpl +sun/awt/KeyboardFocusManagerPeerProvider +sun/awt/LightweightFrame +sun/awt/ModalityListener +sun/awt/MostRecentKeyValue +sun/awt/NullComponentPeer +sun/awt/OSInfo +sun/awt/OSInfo$1 +sun/awt/OSInfo$OSType +sun/awt/OSInfo$WindowsVersion +sun/awt/PaintEventDispatcher +sun/awt/PeerEvent +sun/awt/PostEventQueue +sun/awt/RepaintArea +sun/awt/RequestFocusController +sun/awt/SubRegionShowable +sun/awt/SunDisplayChanger +sun/awt/SunGraphicsCallback +sun/awt/SunHints +sun/awt/SunHints$Key +sun/awt/SunHints$LCDContrastKey +sun/awt/SunHints$Value +sun/awt/SunToolkit +sun/awt/SunToolkit$ModalityListenerList +sun/awt/TimedWindowEvent +sun/awt/UNIXToolkit +sun/awt/WindowClosingListener +sun/awt/WindowClosingSupport +sun/awt/X11/AwtGraphicsConfigData +sun/awt/X11/AwtScreenData +sun/awt/X11/MotifColorUtilities +sun/awt/X11/MotifDnDConstants +sun/awt/X11/MotifDnDDragSourceProtocol +sun/awt/X11/MotifDnDDropTargetProtocol +sun/awt/X11/Native +sun/awt/X11/Native$1 +sun/awt/X11/OwnershipListener +sun/awt/X11/PropMwmHints +sun/awt/X11/UnsafeXDisposerRecord +sun/awt/X11/WindowDimensions +sun/awt/X11/WindowPropertyGetter +sun/awt/X11/XAWTXSettings +sun/awt/X11/XAnyEvent +sun/awt/X11/XAtom +sun/awt/X11/XAtomList +sun/awt/X11/XAwtState +sun/awt/X11/XBaseWindow +sun/awt/X11/XBaseWindow$1 +sun/awt/X11/XBaseWindow$InitialiseState +sun/awt/X11/XBaseWindow$StateLock +sun/awt/X11/XCanvasPeer +sun/awt/X11/XClientMessageEvent +sun/awt/X11/XClipboard +sun/awt/X11/XComponentPeer +sun/awt/X11/XComponentPeer$1 +sun/awt/X11/XConfigureEvent +sun/awt/X11/XContentWindow +sun/awt/X11/XCreateWindowParams +sun/awt/X11/XDecoratedPeer +sun/awt/X11/XDnDConstants +sun/awt/X11/XDnDDragSourceProtocol +sun/awt/X11/XDnDDropTargetProtocol +sun/awt/X11/XDragAndDropProtocols +sun/awt/X11/XDragSourceContextPeer +sun/awt/X11/XDragSourceProtocol +sun/awt/X11/XDragSourceProtocolListener +sun/awt/X11/XDropTargetContextPeer +sun/awt/X11/XDropTargetContextPeer$XDropTargetProtocolListenerImpl +sun/awt/X11/XDropTargetEventProcessor +sun/awt/X11/XDropTargetProtocol +sun/awt/X11/XDropTargetProtocolListener +sun/awt/X11/XDropTargetRegistry +sun/awt/X11/XEmbeddedFramePeer +sun/awt/X11/XErrorEvent +sun/awt/X11/XErrorHandler +sun/awt/X11/XErrorHandler$IgnoreBadWindowHandler +sun/awt/X11/XErrorHandler$VerifyChangePropertyHandler +sun/awt/X11/XErrorHandler$XBaseErrorHandler +sun/awt/X11/XErrorHandler$XErrorHandlerWithFlag +sun/awt/X11/XErrorHandler$XShmAttachHandler +sun/awt/X11/XErrorHandlerUtil +sun/awt/X11/XEvent +sun/awt/X11/XEventDispatcher +sun/awt/X11/XExposeEvent +sun/awt/X11/XFocusChangeEvent +sun/awt/X11/XFocusProxyWindow +sun/awt/X11/XFramePeer +sun/awt/X11/XGlobalCursorManager +sun/awt/X11/XInputMethod +sun/awt/X11/XInputMethodDescriptor +sun/awt/X11/XKeyboardFocusManagerPeer +sun/awt/X11/XLabelPeer +sun/awt/X11/XLayerProtocol +sun/awt/X11/XMSelection +sun/awt/X11/XMSelection$1 +sun/awt/X11/XMSelection$3 +sun/awt/X11/XMSelectionListener +sun/awt/X11/XModifierKeymap +sun/awt/X11/XNETProtocol +sun/awt/X11/XPanelPeer +sun/awt/X11/XPropertyCache +sun/awt/X11/XPropertyEvent +sun/awt/X11/XProtocol +sun/awt/X11/XRepaintArea +sun/awt/X11/XReparentEvent +sun/awt/X11/XRootWindow +sun/awt/X11/XSelection +sun/awt/X11/XSelection$IncrementalTransferHandler +sun/awt/X11/XSelection$SelectionEventHandler +sun/awt/X11/XSetWindowAttributes +sun/awt/X11/XSizeHints +sun/awt/X11/XStateProtocol +sun/awt/X11/XSystemTrayPeer +sun/awt/X11/XToolkit +sun/awt/X11/XToolkit$1 +sun/awt/X11/XToolkit$2 +sun/awt/X11/XToolkit$2$1 +sun/awt/X11/XToolkit$3 +sun/awt/X11/XToolkit$4 +sun/awt/X11/XToolkit$5 +sun/awt/X11/XUnmapEvent +sun/awt/X11/XVisibilityEvent +sun/awt/X11/XVisualInfo +sun/awt/X11/XWINProtocol +sun/awt/X11/XWM +sun/awt/X11/XWM$1 +sun/awt/X11/XWMHints +sun/awt/X11/XWindow +sun/awt/X11/XWindowAttributes +sun/awt/X11/XWindowAttributesData +sun/awt/X11/XWindowPeer +sun/awt/X11/XWindowPeer$2 +sun/awt/X11/XWindowPeer$4 +sun/awt/X11/XWrapperBase +sun/awt/X11/XlibUtil +sun/awt/X11/XlibWrapper +sun/awt/X11ComponentPeer +sun/awt/X11FontManager +sun/awt/X11GraphicsConfig +sun/awt/X11GraphicsConfig$X11GCDisposerRecord +sun/awt/X11GraphicsDevice +sun/awt/X11GraphicsEnvironment +sun/awt/X11GraphicsEnvironment$1 +sun/awt/X11InputMethod +sun/awt/X11InputMethodDescriptor +sun/awt/XSettings +sun/awt/XSettings$Update +sun/awt/datatransfer/SunClipboard +sun/awt/dnd/SunDragSourceContextPeer +sun/awt/dnd/SunDropTargetContextPeer +sun/awt/dnd/SunDropTargetEvent +sun/awt/event/IgnorePaintEvent +sun/awt/geom/PathConsumer2D +sun/awt/im/ExecutableInputMethodManager +sun/awt/im/ExecutableInputMethodManager$3 +sun/awt/im/InputContext +sun/awt/im/InputMethodAdapter +sun/awt/im/InputMethodContext +sun/awt/im/InputMethodLocator +sun/awt/im/InputMethodManager +sun/awt/image/BufImgSurfaceData +sun/awt/image/BufImgSurfaceData$ICMColorData +sun/awt/image/BufImgSurfaceManager +sun/awt/image/BufferedImageGraphicsConfig +sun/awt/image/ByteComponentRaster +sun/awt/image/ByteInterleavedRaster +sun/awt/image/BytePackedRaster +sun/awt/image/FetcherInfo +sun/awt/image/GifFrame +sun/awt/image/GifImageDecoder +sun/awt/image/ImageConsumerQueue +sun/awt/image/ImageDecoder sun/awt/image/ImageDecoder$1 -javax/swing/JTabbedPane$Page -java/net/DatagramSocket -java/net/MulticastSocket -java/net/DatagramPacket +sun/awt/image/ImageFetchable +sun/awt/image/ImageFetcher +sun/awt/image/ImageFetcher$1 +sun/awt/image/ImageRepresentation +sun/awt/image/ImageWatched +sun/awt/image/ImageWatched$Link +sun/awt/image/ImageWatched$WeakLink +sun/awt/image/InputStreamImageSource +sun/awt/image/IntegerComponentRaster +sun/awt/image/IntegerInterleavedRaster +sun/awt/image/NativeLibLoader +sun/awt/image/NativeLibLoader$1 +sun/awt/image/OffScreenImage +sun/awt/image/PNGFilterInputStream +sun/awt/image/PNGImageDecoder +sun/awt/image/PixelConverter +sun/awt/image/PixelConverter$Argb +sun/awt/image/PixelConverter$ArgbBm +sun/awt/image/PixelConverter$ArgbPre +sun/awt/image/PixelConverter$Bgrx +sun/awt/image/PixelConverter$ByteGray +sun/awt/image/PixelConverter$Rgba +sun/awt/image/PixelConverter$RgbaPre +sun/awt/image/PixelConverter$Rgbx +sun/awt/image/PixelConverter$Ushort4444Argb +sun/awt/image/PixelConverter$Ushort555Rgb +sun/awt/image/PixelConverter$Ushort555Rgbx +sun/awt/image/PixelConverter$Ushort565Rgb +sun/awt/image/PixelConverter$UshortGray +sun/awt/image/PixelConverter$Xbgr +sun/awt/image/PixelConverter$Xrgb +sun/awt/image/SunVolatileImage +sun/awt/image/SunWritableRaster +sun/awt/image/SunWritableRaster$DataStealer +sun/awt/image/SurfaceManager +sun/awt/image/SurfaceManager$ImageAccessor +sun/awt/image/SurfaceManager$ProxiedGraphicsConfig +sun/awt/image/ToolkitImage +sun/awt/image/URLImageSource +sun/awt/image/VolatileSurfaceManager +sun/awt/motif/MFontConfiguration +sun/awt/resources/awt +sun/awt/util/IdentityArrayList +sun/dc/DuctusRenderingEngine +sun/dc/path/PathConsumer +sun/dc/pr/PathDasher +sun/dc/pr/PathDasher$1 +sun/dc/pr/PathStroker +sun/dc/pr/PathStroker$1 +sun/font/AttributeValues +sun/font/CMap +sun/font/CMap$CMapFormat12 +sun/font/CMap$NullCMapClass +sun/font/CharToGlyphMapper +sun/font/CompositeFont +sun/font/CompositeFontDescriptor +sun/font/CompositeGlyphMapper +sun/font/CompositeStrike +sun/font/CoreMetrics +sun/font/EAttribute +sun/font/FcFontConfiguration +sun/font/FileFont +sun/font/FileFontStrike +sun/font/Font2D +sun/font/Font2DHandle +sun/font/FontAccess +sun/font/FontConfigManager +sun/font/FontConfigManager$FcCompFont +sun/font/FontConfigManager$FontConfigFont +sun/font/FontConfigManager$FontConfigInfo +sun/font/FontDesignMetrics +sun/font/FontDesignMetrics$KeyReference +sun/font/FontDesignMetrics$MetricsKey +sun/font/FontFamily +sun/font/FontLineMetrics +sun/font/FontManager +sun/font/FontManagerFactory +sun/font/FontManagerFactory$1 +sun/font/FontManagerForSGE +sun/font/FontManagerNativeLibrary +sun/font/FontManagerNativeLibrary$1 +sun/font/FontScaler +sun/font/FontStrike +sun/font/FontStrikeDesc +sun/font/FontStrikeDisposer +sun/font/FontUtilities +sun/font/FontUtilities$1 +sun/font/GlyphList +sun/font/PhysicalFont +sun/font/PhysicalStrike +sun/font/StandardGlyphVector +sun/font/StandardGlyphVector$GlyphStrike +sun/font/StrikeCache +sun/font/StrikeCache$1 +sun/font/StrikeCache$DisposableStrike +sun/font/StrikeCache$SoftDisposerRef +sun/font/StrikeMetrics +sun/font/SunFontManager +sun/font/SunFontManager$1 +sun/font/SunFontManager$11 +sun/font/SunFontManager$2 +sun/font/SunFontManager$3 +sun/font/SunFontManager$FontRegistrationInfo +sun/font/SunFontManager$T1Filter +sun/font/SunFontManager$TTFilter +sun/font/T2KFontScaler +sun/font/T2KFontScaler$1 +sun/font/TrueTypeFont +sun/font/TrueTypeFont$1 +sun/font/TrueTypeFont$DirectoryEntry +sun/font/TrueTypeFont$TTDisposerRecord +sun/font/TrueTypeGlyphMapper +sun/font/Type1Font +sun/font/Type1Font$1 +sun/font/X11TextRenderer +sun/java2d/BackBufferCapsProvider +sun/java2d/DefaultDisposerRecord +sun/java2d/DestSurfaceProvider +sun/java2d/Disposer +sun/java2d/Disposer$1 +sun/java2d/Disposer$2 +sun/java2d/Disposer$PollDisposable +sun/java2d/DisposerRecord +sun/java2d/DisposerTarget +sun/java2d/FontSupport +sun/java2d/InvalidPipeException +sun/java2d/NullSurfaceData +sun/java2d/StateTrackable +sun/java2d/StateTrackable$State +sun/java2d/StateTrackableDelegate +sun/java2d/StateTrackableDelegate$2 +sun/java2d/SunGraphics2D +sun/java2d/SunGraphicsEnvironment +sun/java2d/SunGraphicsEnvironment$1 +sun/java2d/Surface +sun/java2d/SurfaceData +sun/java2d/SurfaceData$PixelToPgramLoopConverter +sun/java2d/SurfaceData$PixelToShapeLoopConverter +sun/java2d/SurfaceManagerFactory +sun/java2d/UnixSurfaceManagerFactory +sun/java2d/cmm/CMSManager +sun/java2d/cmm/ProfileActivator +sun/java2d/cmm/ProfileDeferralInfo +sun/java2d/cmm/ProfileDeferralMgr +sun/java2d/loops/Blit +sun/java2d/loops/BlitBg +sun/java2d/loops/CompositeType +sun/java2d/loops/CustomComponent +sun/java2d/loops/DrawGlyphList +sun/java2d/loops/DrawGlyphListAA +sun/java2d/loops/DrawGlyphListLCD +sun/java2d/loops/DrawLine +sun/java2d/loops/DrawParallelogram +sun/java2d/loops/DrawPath +sun/java2d/loops/DrawPolygons +sun/java2d/loops/DrawRect +sun/java2d/loops/FillParallelogram +sun/java2d/loops/FillPath +sun/java2d/loops/FillRect +sun/java2d/loops/FillSpans +sun/java2d/loops/FontInfo +sun/java2d/loops/GeneralRenderer +sun/java2d/loops/GraphicsPrimitive +sun/java2d/loops/GraphicsPrimitiveMgr +sun/java2d/loops/GraphicsPrimitiveMgr$1 +sun/java2d/loops/GraphicsPrimitiveMgr$2 +sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec +sun/java2d/loops/GraphicsPrimitiveProxy +sun/java2d/loops/MaskBlit +sun/java2d/loops/MaskFill +sun/java2d/loops/RenderCache +sun/java2d/loops/RenderCache$Entry +sun/java2d/loops/RenderLoops +sun/java2d/loops/ScaledBlit +sun/java2d/loops/SurfaceType +sun/java2d/loops/TransformHelper +sun/java2d/loops/XORComposite +sun/java2d/opengl/GLXGraphicsConfig +sun/java2d/opengl/OGLGraphicsConfig +sun/java2d/pipe/AAShapePipe +sun/java2d/pipe/AATextRenderer +sun/java2d/pipe/AlphaColorPipe +sun/java2d/pipe/AlphaPaintPipe +sun/java2d/pipe/CompositePipe +sun/java2d/pipe/DrawImage +sun/java2d/pipe/DrawImagePipe +sun/java2d/pipe/GeneralCompositePipe +sun/java2d/pipe/GlyphListLoopPipe +sun/java2d/pipe/GlyphListPipe +sun/java2d/pipe/LCDTextRenderer +sun/java2d/pipe/LoopBasedPipe +sun/java2d/pipe/LoopPipe +sun/java2d/pipe/NullPipe +sun/java2d/pipe/OutlineTextRenderer +sun/java2d/pipe/ParallelogramPipe +sun/java2d/pipe/PixelDrawPipe +sun/java2d/pipe/PixelFillPipe +sun/java2d/pipe/PixelToParallelogramConverter +sun/java2d/pipe/PixelToShapeConverter +sun/java2d/pipe/Region +sun/java2d/pipe/Region$ImmutableRegion +sun/java2d/pipe/RegionIterator +sun/java2d/pipe/RenderingEngine +sun/java2d/pipe/RenderingEngine$1 +sun/java2d/pipe/ShapeDrawPipe +sun/java2d/pipe/ShapeSpanIterator +sun/java2d/pipe/SolidTextRenderer +sun/java2d/pipe/SpanClipRenderer +sun/java2d/pipe/SpanIterator +sun/java2d/pipe/SpanShapeRenderer +sun/java2d/pipe/SpanShapeRenderer$Composite +sun/java2d/pipe/TextPipe +sun/java2d/pipe/TextRenderer +sun/java2d/pipe/ValidatePipe +sun/java2d/pipe/hw/AccelGraphicsConfig +sun/java2d/pipe/hw/BufferedContextProvider +sun/java2d/x11/X11Renderer +sun/java2d/x11/X11SurfaceData +sun/java2d/x11/X11SurfaceData$LazyPipe +sun/java2d/x11/X11SurfaceData$X11WindowSurfaceData +sun/java2d/x11/X11VolatileSurfaceManager +sun/java2d/x11/XSurfaceData +sun/java2d/xr/XRGraphicsConfig +sun/launcher/LauncherHelper +sun/launcher/LauncherHelper$FXHelper +sun/misc/ASCIICaseInsensitiveComparator +sun/misc/Cleaner +sun/misc/CompoundEnumeration +sun/misc/ExtensionDependency +sun/misc/FDBigInteger +sun/misc/FileURLMapper +sun/misc/FloatingDecimal +sun/misc/FloatingDecimal$1 +sun/misc/FloatingDecimal$ASCIIToBinaryBuffer +sun/misc/FloatingDecimal$ASCIIToBinaryConverter +sun/misc/FloatingDecimal$BinaryToASCIIBuffer +sun/misc/FloatingDecimal$BinaryToASCIIConverter +sun/misc/FloatingDecimal$ExceptionalBinaryToASCIIBuffer +sun/misc/FloatingDecimal$PreparedASCIIToBinaryBuffer +sun/misc/IOUtils +sun/misc/JarIndex +sun/misc/JavaAWTAccess +sun/misc/JavaIOFileDescriptorAccess +sun/misc/JavaLangAccess +sun/misc/JavaNetAccess +sun/misc/JavaNioAccess +sun/misc/JavaSecurityAccess +sun/misc/JavaSecurityProtectionDomainAccess +sun/misc/JavaUtilJarAccess +sun/misc/JavaUtilZipFileAccess +sun/misc/Launcher +sun/misc/Launcher$AppClassLoader +sun/misc/Launcher$AppClassLoader$1 +sun/misc/Launcher$BootClassPathHolder +sun/misc/Launcher$BootClassPathHolder$1 +sun/misc/Launcher$ExtClassLoader +sun/misc/Launcher$ExtClassLoader$1 +sun/misc/Launcher$Factory +sun/misc/MetaIndex +sun/misc/NativeSignalHandler +sun/misc/OSEnvironment +sun/misc/Perf +sun/misc/Perf$GetPerfAction +sun/misc/PerfCounter +sun/misc/PerfCounter$CoreCounters +sun/misc/PerformanceLogger +sun/misc/PerformanceLogger$TimeData +sun/misc/PostVMInitHook +sun/misc/Resource +sun/misc/SharedSecrets +sun/misc/Signal +sun/misc/SignalHandler +sun/misc/SoftCache +sun/misc/SoftCache$ValueCell +sun/misc/URLClassPath +sun/misc/URLClassPath$1 +sun/misc/URLClassPath$2 +sun/misc/URLClassPath$3 +sun/misc/URLClassPath$FileLoader +sun/misc/URLClassPath$JarLoader +sun/misc/URLClassPath$JarLoader$1 +sun/misc/URLClassPath$JarLoader$2 +sun/misc/URLClassPath$Loader +sun/misc/Unsafe +sun/misc/VM +sun/misc/Version +sun/net/DefaultProgressMeteringPolicy sun/net/InetAddressCachePolicy sun/net/InetAddressCachePolicy$1 sun/net/InetAddressCachePolicy$2 -java/net/InetAddress$CacheEntry -java/net/PlainDatagramSocketImpl -java/net/DatagramSocketImpl -java/net/NetworkInterface -java/net/InterfaceAddress -java/text/Collator -java/text/spi/CollatorProvider -sun/text/resources/CollationData -sun/text/resources/CollationData_en -sun/util/EmptyListResourceBundle -java/text/RuleBasedCollator -java/text/CollationRules -java/text/RBCollationTables -java/text/RBTableBuilder -java/text/RBCollationTables$BuildAPI -sun/text/IntHashtable -sun/text/UCompactIntArray -sun/text/normalizer/NormalizerImpl -sun/text/normalizer/ICUData -sun/text/normalizer/NormalizerDataReader -sun/text/normalizer/ICUBinary$Authenticate -sun/text/normalizer/ICUBinary -sun/text/normalizer/NormalizerImpl$FCDTrieImpl -sun/text/normalizer/Trie$DataManipulate -sun/text/normalizer/NormalizerImpl$NormTrieImpl -sun/text/normalizer/NormalizerImpl$AuxTrieImpl -sun/text/normalizer/IntTrie -sun/text/normalizer/Trie -sun/text/normalizer/CharTrie -sun/text/normalizer/CharTrie$FriendAgent -sun/text/normalizer/UnicodeSet -sun/text/normalizer/UnicodeMatcher -sun/text/normalizer/NormalizerImpl$DecomposeArgs -java/text/MergeCollation -java/text/PatternEntry$Parser -java/text/PatternEntry -java/text/EntryPair -sun/text/ComposedCharIter -sun/text/normalizer/UTF16 +sun/net/NetHooks +sun/net/NetHooks$Provider +sun/net/NetProperties +sun/net/NetProperties$1 +sun/net/ProgressMeteringPolicy +sun/net/ProgressMonitor +sun/net/ResourceManager +sun/net/sdp/SdpProvider +sun/net/spi/DefaultProxySelector +sun/net/spi/DefaultProxySelector$1 +sun/net/spi/DefaultProxySelector$3 +sun/net/spi/DefaultProxySelector$NonProxyInfo +sun/net/spi/nameservice/NameService +sun/net/util/IPAddressUtil +sun/net/util/URLUtil +sun/net/www/MessageHeader +sun/net/www/MimeEntry +sun/net/www/MimeTable +sun/net/www/MimeTable$1 +sun/net/www/MimeTable$DefaultInstanceHolder +sun/net/www/MimeTable$DefaultInstanceHolder$1 +sun/net/www/ParseUtil +sun/net/www/URLConnection +sun/net/www/protocol/file/FileURLConnection +sun/net/www/protocol/file/Handler sun/net/www/protocol/http/Handler -java/io/ObjectInputStream$BlockDataInputStream -java/io/ObjectInputStream$PeekInputStream -java/io/ObjectInputStream$HandleTable -java/io/ObjectInputStream$ValidationList -java/io/Bits -java/io/ObjectStreamClass$Caches -java/io/ObjectStreamClass$WeakClassKey -java/io/ObjectStreamClass$EntryFuture -java/io/ObjectStreamClass$2 +sun/net/www/protocol/jar/Handler +sun/net/www/protocol/jar/JarFileFactory +sun/net/www/protocol/jar/JarURLConnection +sun/net/www/protocol/jar/JarURLConnection$JarURLInputStream +sun/net/www/protocol/jar/URLJarFile +sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController +sun/net/www/protocol/jar/URLJarFile$URLJarFileEntry +sun/nio/ByteBuffered +sun/nio/ch/DirectBuffer +sun/nio/ch/FileChannelImpl +sun/nio/ch/FileChannelImpl$Unmapper +sun/nio/ch/FileDispatcher +sun/nio/ch/FileDispatcherImpl +sun/nio/ch/IOStatus +sun/nio/ch/IOUtil +sun/nio/ch/IOUtil$1 +sun/nio/ch/Interruptible +sun/nio/ch/NativeDispatcher +sun/nio/ch/NativeThread +sun/nio/ch/NativeThreadSet +sun/nio/ch/Util +sun/nio/ch/Util$1 +sun/nio/ch/Util$4 +sun/nio/ch/Util$BufferCache +sun/nio/cs/ArrayDecoder +sun/nio/cs/ArrayEncoder +sun/nio/cs/FastCharsetProvider +sun/nio/cs/HistoricallyNamedCharset +sun/nio/cs/ISO_8859_1 +sun/nio/cs/ISO_8859_1$Encoder +sun/nio/cs/StandardCharsets +sun/nio/cs/StandardCharsets$Aliases +sun/nio/cs/StandardCharsets$Cache +sun/nio/cs/StandardCharsets$Classes +sun/nio/cs/StreamDecoder +sun/nio/cs/StreamEncoder +sun/nio/cs/Surrogate +sun/nio/cs/Surrogate$Parser +sun/nio/cs/US_ASCII +sun/nio/cs/US_ASCII$Decoder +sun/nio/cs/UTF_16 +sun/nio/cs/UTF_16$Decoder +sun/nio/cs/UTF_16BE +sun/nio/cs/UTF_16LE +sun/nio/cs/UTF_8 +sun/nio/cs/UTF_8$Decoder +sun/nio/cs/UTF_8$Encoder +sun/nio/cs/Unicode +sun/nio/cs/UnicodeDecoder +sun/print/PrinterGraphicsConfig +sun/reflect/AccessorGenerator +sun/reflect/BootstrapConstructorAccessorImpl +sun/reflect/ByteVector +sun/reflect/ByteVectorFactory +sun/reflect/ByteVectorImpl +sun/reflect/CallerSensitive +sun/reflect/ClassDefiner +sun/reflect/ClassDefiner$1 +sun/reflect/ClassFileAssembler +sun/reflect/ClassFileConstants +sun/reflect/ConstantPool +sun/reflect/ConstructorAccessor +sun/reflect/ConstructorAccessorImpl +sun/reflect/DelegatingClassLoader +sun/reflect/DelegatingConstructorAccessorImpl +sun/reflect/DelegatingMethodAccessorImpl +sun/reflect/FieldAccessor +sun/reflect/FieldAccessorImpl +sun/reflect/Label +sun/reflect/Label$PatchInfo +sun/reflect/LangReflectAccess +sun/reflect/MagicAccessorImpl +sun/reflect/MethodAccessor +sun/reflect/MethodAccessorGenerator +sun/reflect/MethodAccessorGenerator$1 +sun/reflect/MethodAccessorImpl +sun/reflect/NativeConstructorAccessorImpl +sun/reflect/NativeMethodAccessorImpl +sun/reflect/Reflection +sun/reflect/ReflectionFactory +sun/reflect/ReflectionFactory$1 +sun/reflect/ReflectionFactory$GetReflectionFactoryAction sun/reflect/SerializationConstructorAccessorImpl -java/io/ObjectStreamClass$FieldReflectorKey -java/io/ObjectStreamClass$FieldReflector -java/io/ObjectStreamClass$1 -java/io/DataOutputStream -java/io/ObjectStreamClass$MemberSignature -java/io/ObjectStreamClass$3 -java/io/ObjectStreamClass$4 -java/io/ObjectStreamClass$5 -java/security/MessageDigest -java/security/MessageDigestSpi +sun/reflect/UTF8 +sun/reflect/UnsafeFieldAccessorFactory +sun/reflect/UnsafeFieldAccessorImpl +sun/reflect/UnsafeObjectFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticLongFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl +sun/reflect/UnsafeStaticFieldAccessorImpl +sun/reflect/annotation/AnnotationType +sun/reflect/generics/repository/AbstractRepository +sun/reflect/generics/repository/ClassRepository +sun/reflect/generics/repository/GenericDeclRepository +sun/reflect/misc/MethodUtil +sun/reflect/misc/MethodUtil$1 +sun/reflect/misc/ReflectUtil +sun/security/action/GetBooleanAction +sun/security/action/GetIntegerAction +sun/security/action/GetPropertyAction sun/security/jca/GetInstance -sun/security/jca/Providers -sun/security/jca/ProviderList +sun/security/jca/GetInstance$Instance sun/security/jca/ProviderConfig -sun/security/jca/ProviderList$3 +sun/security/jca/ProviderConfig$2 +sun/security/jca/ProviderList sun/security/jca/ProviderList$1 sun/security/jca/ProviderList$2 -sun/security/jca/ProviderConfig$1 -sun/security/jca/ProviderConfig$3 -java/security/Provider$Service -java/security/Provider$UString -sun/security/provider/SHA -sun/security/provider/DigestBase -sun/security/jca/GetInstance$Instance -java/security/MessageDigest$Delegate -sun/security/provider/ByteArrayAccess -java/io/ObjectStreamClass$ClassDataSlot -sun/reflect/UnsafeQualifiedStaticLongFieldAccessorImpl -java/security/SignatureException -java/security/InvalidKeyException -java/security/KeyException -java/security/Signature -java/security/SignatureSpi -java/io/ObjectOutputStream$BlockDataOutputStream -sun/security/provider/DSAPublicKey -java/security/interfaces/DSAPublicKey -java/security/interfaces/DSAKey -java/security/PublicKey -java/security/Key -sun/security/x509/X509Key -java/io/ObjectOutputStream$HandleTable -java/io/ObjectOutputStream$ReplaceTable -sun/security/x509/AlgorithmId -sun/security/util/DerEncoder -sun/security/util/BitArray -sun/security/util/DerOutputStream -sun/security/util/DerValue -java/math/BigInteger -java/security/interfaces/DSAParams -sun/security/util/DerInputStream -sun/security/util/DerInputBuffer -sun/security/util/ObjectIdentifier -java/security/AlgorithmParameters -java/security/AlgorithmParametersSpi -sun/security/provider/DSAParameters -sun/security/util/ByteArrayLexOrder -sun/security/util/ByteArrayTagOrder -sun/security/util/DerIndefLenConverter -java/io/InvalidClassException -java/io/ObjectStreamException -java/io/ObjectInputStream$GetFieldImpl -java/io/ObjectInputStream$GetField -sun/security/jca/ServiceId +sun/security/jca/ProviderList$3 sun/security/jca/ProviderList$ServiceList sun/security/jca/ProviderList$ServiceList$1 -java/security/Signature$Delegate -java/security/interfaces/DSAPrivateKey -java/security/PrivateKey -sun/security/provider/DSA$SHA1withDSA +sun/security/jca/Providers +sun/security/jca/ServiceId +sun/security/provider/ByteArrayAccess sun/security/provider/DSA -java/security/spec/DSAParameterSpec -java/security/spec/AlgorithmParameterSpec -java/math/MutableBigInteger -java/math/SignedMutableBigInteger -java/awt/EventQueue$1AWTInvocationLock -java/awt/Component$FlipBufferStrategy -java/awt/SentEvent -sun/awt/X11/XDestroyWindowEvent -sun/awt/X11/XDropTargetRegistry -sun/awt/X11/XEmbeddedFramePeer -sun/awt/X11/XDragAndDropProtocols -sun/awt/X11/XDropTargetContextPeer -sun/awt/dnd/SunDropTargetContextPeer -java/awt/dnd/peer/DropTargetContextPeer -sun/awt/X11/XDropTargetContextPeer$XDropTargetProtocolListenerImpl -sun/awt/X11/XDropTargetProtocolListener -sun/awt/X11/XDnDDragSourceProtocol -sun/awt/X11/XDragSourceProtocol -sun/awt/X11/MotifDnDDragSourceProtocol -sun/awt/X11/XDnDDropTargetProtocol -sun/awt/X11/XDropTargetProtocol -sun/awt/X11/MotifDnDDropTargetProtocol -sun/awt/X11/XDnDConstants -sun/awt/X11/MotifDnDConstants -javax/swing/JTable$2 -javax/swing/JTable$Resizable3 -javax/swing/JTable$Resizable2 -javax/swing/JTable$5 -javax/swing/event/AncestorEvent -sun/font/FontDesignMetrics$MetricsKey -java/awt/geom/Line2D$Float -java/awt/geom/Line2D -com/sun/java/swing/plaf/gtk/GTKLookAndFeel -javax/swing/plaf/synth/SynthLookAndFeel -javax/swing/plaf/synth/DefaultSynthStyleFactory -javax/swing/plaf/synth/SynthStyleFactory -sun/swing/BakedArrayList -javax/swing/plaf/synth/SynthLookAndFeel$Handler -javax/swing/plaf/synth/SynthDefaultLookup -com/sun/java/swing/plaf/gtk/GTKEngine -com/sun/java/swing/plaf/gtk/GTKEngine$Settings -com/sun/java/swing/plaf/gtk/GTKStyleFactory -com/sun/java/swing/plaf/gtk/PangoFonts -com/sun/java/swing/plaf/gtk/GTKLookAndFeel$WeakPCL -javax/swing/plaf/synth/Region -javax/swing/plaf/synth/SynthLookAndFeel$AATextListener -com/sun/java/swing/plaf/gtk/GTKRegion -com/sun/java/swing/plaf/gtk/GTKStyle -com/sun/java/swing/plaf/gtk/GTKConstants -javax/swing/plaf/synth/SynthStyle -javax/swing/plaf/synth/SynthGraphicsUtils -com/sun/java/swing/plaf/gtk/GTKGraphicsUtils -com/sun/java/swing/plaf/gtk/GTKStyle$GTKStockIcon -sun/swing/plaf/synth/SynthIcon -com/sun/java/swing/plaf/gtk/GTKColorType -javax/swing/plaf/synth/ColorType -com/sun/java/swing/plaf/gtk/resources/gtk -com/sun/swing/internal/plaf/synth/resources/synth -com/sun/java/swing/plaf/gtk/GTKStyle$GTKLazyValue -com/sun/java/swing/plaf/gtk/GTKLookAndFeel$1FontLazyValue -com/sun/java/swing/plaf/gtk/GTKLookAndFeel$2 -com/sun/java/swing/plaf/gtk/GTKLookAndFeel$3 -javax/swing/plaf/synth/SynthPanelUI -javax/swing/plaf/synth/SynthConstants -javax/swing/plaf/synth/SynthContext -javax/swing/plaf/synth/SynthBorder -javax/swing/plaf/synth/SynthRootPaneUI -javax/swing/plaf/synth/SynthLabelUI -javax/swing/plaf/synth/SynthButtonUI -javax/swing/plaf/synth/SynthToggleButtonUI -javax/swing/plaf/basic/BasicBorders$FieldBorder -javax/swing/plaf/synth/SynthMenuBarUI -javax/swing/plaf/synth/SynthMenuUI -javax/swing/plaf/synth/SynthUI -com/sun/java/swing/plaf/gtk/GTKIconFactory -com/sun/java/swing/plaf/gtk/GTKIconFactory$MenuArrowIcon -com/sun/java/swing/plaf/gtk/GTKIconFactory$DelegatingIcon -com/sun/java/swing/plaf/gtk/GTKConstants$ArrowType -javax/swing/plaf/basic/BasicIconFactory -javax/swing/plaf/basic/BasicIconFactory$MenuItemCheckIcon -javax/swing/plaf/synth/SynthMenuItemUI -javax/swing/plaf/synth/SynthPopupMenuUI -javax/swing/plaf/synth/SynthSeparatorUI -javax/swing/plaf/synth/SynthScrollBarUI -javax/swing/plaf/synth/SynthArrowButton -javax/swing/plaf/synth/SynthArrowButton$SynthArrowButtonUI -javax/swing/plaf/synth/SynthComboBoxUI -javax/swing/plaf/synth/SynthComboPopup -javax/swing/plaf/synth/SynthListUI -javax/swing/plaf/synth/SynthListUI$SynthListCellRenderer -javax/swing/plaf/synth/SynthViewportUI -javax/swing/plaf/synth/SynthScrollPaneUI -javax/swing/plaf/synth/SynthScrollPaneUI$ViewportBorder -javax/swing/plaf/synth/SynthComboBoxUI$SynthComboBoxRenderer -javax/swing/plaf/synth/SynthComboBoxUI$SynthComboBoxEditor -javax/swing/plaf/synth/SynthTextFieldUI -javax/swing/plaf/synth/SynthToolBarUI -javax/swing/plaf/synth/SynthToolBarUI$SynthToolBarLayoutManager -com/sun/java/swing/plaf/gtk/GTKIconFactory$ToolBarHandleIcon -com/sun/java/swing/plaf/gtk/GTKConstants$Orientation -sun/awt/X11/XTranslateCoordinates -com/sun/java/swing/plaf/gtk/GTKPainter -javax/swing/plaf/synth/SynthPainter -javax/swing/plaf/synth/SynthPainter$1 -com/sun/java/swing/plaf/gtk/GTKConstants$PositionType -com/sun/java/swing/plaf/gtk/GTKConstants$ShadowType -java/io/ObjectInputStream$HandleTable$HandleList -sun/java2d/pipe/ShapeSpanIterator -sun/java2d/pipe/SpanIterator -sun/dc/path/PathConsumer -sun/dc/pr/PathStroker -sun/dc/pr/PathDasher -java/awt/geom/LineIterator -java/awt/geom/PathIterator -sun/applet/Main -sun/applet/AppletMessageHandler -sun/applet/resources/MsgAppletViewer -sun/applet/AppletSecurity -sun/awt/AWTSecurityManager -java/lang/SecurityManager -java/security/DomainCombiner -sun/applet/AppletSecurity$1 -java/lang/SecurityManager$1 -java/security/SecurityPermission -java/util/PropertyPermission -sun/applet/AppletViewer -java/applet/AppletContext -java/awt/print/Printable -sun/security/util/SecurityConstants -java/awt/AWTPermission -java/net/NetPermission -java/net/SocketPermission -javax/security/auth/AuthPermission -java/lang/Thread$1 -java/util/logging/LogManager$5 -sun/applet/StdAppletViewerFactory -sun/applet/AppletViewerFactory -sun/applet/AppletViewer$UserActionListener -sun/applet/AppletViewerPanel -sun/applet/AppletPanel -java/applet/AppletStub -sun/misc/MessageUtils -sun/applet/AppletPanel$10 -java/security/Policy$1 -sun/security/provider/PolicyFile$1 -sun/security/provider/PolicyFile$3 -sun/security/util/PropertyExpander -sun/security/provider/PolicyParser -sun/security/util/PolicyUtil -sun/security/provider/PolicyParser$GrantEntry -sun/security/provider/PolicyParser$PermissionEntry -sun/security/provider/PolicyFile$PolicyEntry -sun/security/provider/PolicyFile$6 -sun/security/provider/PolicyFile$7 -java/net/SocketPermissionCollection -java/util/PropertyPermissionCollection -sun/applet/AppletPanel$9 -sun/applet/AppletClassLoader -sun/applet/AppletThreadGroup -sun/applet/AppContextCreator -sun/applet/AppletPanel$1 -sun/awt/X11/XMenuBarPeer -java/awt/peer/MenuBarPeer -java/awt/peer/MenuComponentPeer -sun/awt/X11/XBaseMenuWindow -sun/awt/X11/XMenuPeer -java/awt/peer/MenuPeer -java/awt/peer/MenuItemPeer -sun/awt/X11/XMenuItemPeer -java/awt/MenuShortcut -sun/awt/X11/XMenuWindow -sun/awt/X11/XMenuItemPeer$TextMetrics -sun/awt/AppContext$3 -sun/awt/X11/XMenuBarPeer$MappingData -sun/awt/X11/XBaseMenuWindow$MappingData -sun/applet/AppletViewer$1 -sun/applet/AppletViewer$1AppletEventListener -sun/applet/AppletListener -sun/applet/AppletEventMulticaster -sun/misc/Queue -sun/misc/QueueElement -sun/applet/AppletEvent -sun/applet/AppletClassLoader$1 -sun/awt/X11/XBaseMenuWindow$3 -java/awt/DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent -sun/awt/CausedFocusEvent -sun/awt/X11/XWindow$1 -java/net/URLClassLoader$4 -sun/applet/AppletClassLoader$2 -javax/swing/JApplet -java/lang/ClassLoader$1 -sun/security/provider/PolicyFile$5 -java/security/PermissionsEnumerator -java/util/Collections$1 -sun/applet/AppletPanel$11 -sun/applet/AppletPanel$8 -sun/applet/AppletPanel$2 -sun/applet/AppletPanel$3 -sun/applet/AppletPanel$6 -javax/swing/BufferStrategyPaintManager$1 -# f3ac8b467e7f8c49 +sun/security/provider/DSA$LegacyDSA +sun/security/provider/DSA$SHA1withDSA +sun/security/provider/DSAParameters +sun/security/provider/DSAPublicKey +sun/security/provider/DigestBase +sun/security/provider/NativePRNG +sun/security/provider/NativePRNG$1 +sun/security/provider/NativePRNG$2 +sun/security/provider/NativePRNG$Blocking +sun/security/provider/NativePRNG$NonBlocking +sun/security/provider/NativePRNG$RandomIO +sun/security/provider/NativePRNG$Variant +sun/security/provider/SHA +sun/security/provider/Sun +sun/security/provider/SunEntries +sun/security/provider/SunEntries$1 +sun/security/util/BitArray +sun/security/util/ByteArrayLexOrder +sun/security/util/Debug +sun/security/util/DerEncoder +sun/security/util/DerIndefLenConverter +sun/security/util/DerInputBuffer +sun/security/util/DerInputStream +sun/security/util/DerOutputStream +sun/security/util/DerValue +sun/security/util/ManifestEntryVerifier +sun/security/util/ObjectIdentifier +sun/security/util/SignatureFileVerifier +sun/security/x509/AlgorithmId +sun/security/x509/X509Key +sun/swing/DefaultLookup +sun/swing/ImageIconUIResource +sun/swing/JLightweightFrame +sun/swing/MenuItemLayoutHelper +sun/swing/MenuItemLayoutHelper$ColumnAlignment +sun/swing/MenuItemLayoutHelper$LayoutResult +sun/swing/MenuItemLayoutHelper$RectSize +sun/swing/PrintColorUIResource +sun/swing/StringUIClientPropertyKey +sun/swing/SwingAccessor +sun/swing/SwingAccessor$JTextComponentAccessor +sun/swing/SwingLazyValue +sun/swing/SwingLazyValue$1 +sun/swing/SwingUtilities2 +sun/swing/SwingUtilities2$2 +sun/swing/SwingUtilities2$AATextInfo +sun/swing/SwingUtilities2$LSBCacheEntry +sun/swing/UIAction +sun/swing/UIClientPropertyKey +sun/swing/table/DefaultTableCellHeaderRenderer +sun/swing/table/DefaultTableCellHeaderRenderer$EmptyIcon +sun/text/ComposedCharIter +sun/text/IntHashtable +sun/text/UCompactIntArray +sun/text/normalizer/CharTrie +sun/text/normalizer/CharTrie$FriendAgent +sun/text/normalizer/ICUBinary +sun/text/normalizer/ICUBinary$Authenticate +sun/text/normalizer/ICUData +sun/text/normalizer/IntTrie +sun/text/normalizer/NormalizerDataReader +sun/text/normalizer/NormalizerImpl +sun/text/normalizer/NormalizerImpl$AuxTrieImpl +sun/text/normalizer/NormalizerImpl$DecomposeArgs +sun/text/normalizer/NormalizerImpl$FCDTrieImpl +sun/text/normalizer/NormalizerImpl$NormTrieImpl +sun/text/normalizer/Trie +sun/text/normalizer/Trie$DataManipulate +sun/text/normalizer/UTF16 +sun/text/normalizer/UnicodeMatcher +sun/text/normalizer/UnicodeSet +sun/text/resources/CollationData +sun/text/resources/FormatData +sun/text/resources/en/FormatData_en +sun/text/resources/en/FormatData_en_US +sun/util/CoreResourceBundleControl +sun/util/PreHashedMap +sun/util/ResourceBundleEnumeration +sun/util/calendar/AbstractCalendar +sun/util/calendar/BaseCalendar +sun/util/calendar/BaseCalendar$Date +sun/util/calendar/CalendarDate +sun/util/calendar/CalendarSystem +sun/util/calendar/CalendarUtils +sun/util/calendar/Gregorian +sun/util/calendar/Gregorian$Date +sun/util/calendar/ZoneInfo +sun/util/calendar/ZoneInfoFile +sun/util/calendar/ZoneInfoFile$1 +sun/util/calendar/ZoneInfoFile$Checksum +sun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule +sun/util/locale/BaseLocale +sun/util/locale/BaseLocale$Cache +sun/util/locale/BaseLocale$Key +sun/util/locale/LanguageTag +sun/util/locale/LocaleObjectCache +sun/util/locale/LocaleObjectCache$CacheEntry +sun/util/locale/LocaleUtils +sun/util/locale/provider/AuxLocaleProviderAdapter +sun/util/locale/provider/AuxLocaleProviderAdapter$NullProvider +sun/util/locale/provider/AvailableLanguageTags +sun/util/locale/provider/CalendarDataProviderImpl +sun/util/locale/provider/CalendarDataUtility +sun/util/locale/provider/CalendarDataUtility$CalendarWeekParameterGetter +sun/util/locale/provider/CalendarProviderImpl +sun/util/locale/provider/CollatorProviderImpl +sun/util/locale/provider/CurrencyNameProviderImpl +sun/util/locale/provider/DateFormatSymbolsProviderImpl +sun/util/locale/provider/DecimalFormatSymbolsProviderImpl +sun/util/locale/provider/JRELocaleProviderAdapter +sun/util/locale/provider/JRELocaleProviderAdapter$1 +sun/util/locale/provider/LocaleDataMetaInfo +sun/util/locale/provider/LocaleProviderAdapter +sun/util/locale/provider/LocaleProviderAdapter$1 +sun/util/locale/provider/LocaleProviderAdapter$Type +sun/util/locale/provider/LocaleResources +sun/util/locale/provider/LocaleResources$ResourceReference +sun/util/locale/provider/LocaleServiceProviderPool +sun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter +sun/util/locale/provider/NumberFormatProviderImpl +sun/util/locale/provider/ResourceBundleBasedAdapter +sun/util/locale/provider/SPILocaleProviderAdapter +sun/util/locale/provider/SPILocaleProviderAdapter$1 +sun/util/locale/provider/TimeZoneNameProviderImpl +sun/util/locale/provider/TimeZoneNameUtility +sun/util/locale/provider/TimeZoneNameUtility$TimeZoneNameGetter +sun/util/logging/LoggingProxy +sun/util/logging/LoggingSupport +sun/util/logging/LoggingSupport$1 +sun/util/logging/LoggingSupport$2 +sun/util/logging/PlatformLogger +sun/util/logging/PlatformLogger$1 +sun/util/logging/PlatformLogger$DefaultLoggerProxy +sun/util/logging/PlatformLogger$JavaLoggerProxy +sun/util/logging/PlatformLogger$Level +sun/util/logging/PlatformLogger$LoggerProxy +sun/util/logging/resources/logging +sun/util/resources/CalendarData +sun/util/resources/CurrencyNames +sun/util/resources/LocaleData +sun/util/resources/LocaleData$1 +sun/util/resources/LocaleData$LocaleDataResourceBundleControl +sun/util/resources/LocaleNamesBundle +sun/util/resources/OpenListResourceBundle +sun/util/resources/ParallelListResourceBundle +sun/util/resources/ParallelListResourceBundle$KeySet +sun/util/resources/TimeZoneNames +sun/util/resources/TimeZoneNamesBundle +sun/util/resources/en/CalendarData_en +sun/util/resources/en/CurrencyNames_en_US +sun/util/resources/en/TimeZoneNames_en +sun/util/spi/CalendarProvider +# e4fe875988768cf5 diff --git a/jdk/make/tools/sharing/classlist.macosx b/jdk/make/tools/sharing/classlist.macosx index d07236da9e9..6f854b45e39 100644 --- a/jdk/make/tools/sharing/classlist.macosx +++ b/jdk/make/tools/sharing/classlist.macosx @@ -1,2406 +1,2208 @@ -java/lang/Object -java/lang/String -java/io/Serializable -java/lang/Comparable -java/lang/CharSequence -java/lang/Class -java/lang/reflect/GenericDeclaration -java/lang/reflect/Type -java/lang/reflect/AnnotatedElement -java/lang/Cloneable -java/lang/ClassLoader -java/lang/System -java/lang/Throwable -java/lang/Error -java/lang/ThreadDeath -java/lang/Exception -java/lang/RuntimeException -java/security/ProtectionDomain -java/security/AccessControlContext -java/lang/ClassNotFoundException -java/lang/NoClassDefFoundError -java/lang/LinkageError -java/lang/ClassCastException -java/lang/ArrayStoreException -java/lang/VirtualMachineError -java/lang/OutOfMemoryError -java/lang/StackOverflowError -java/lang/IllegalMonitorStateException -java/lang/ref/Reference -java/lang/ref/SoftReference -java/lang/ref/WeakReference -java/lang/ref/FinalReference -java/lang/ref/PhantomReference -java/lang/ref/Finalizer -java/lang/Thread -java/lang/Runnable -java/lang/ThreadGroup -java/lang/Thread$UncaughtExceptionHandler -java/util/Properties -java/util/Hashtable -java/util/Map -java/util/Dictionary -java/lang/reflect/AccessibleObject -java/lang/reflect/Field -java/lang/reflect/Member -java/lang/reflect/Method -java/lang/reflect/Constructor -sun/reflect/MagicAccessorImpl -sun/reflect/MethodAccessorImpl -sun/reflect/MethodAccessor -sun/reflect/ConstructorAccessorImpl -sun/reflect/ConstructorAccessor -sun/reflect/DelegatingClassLoader -sun/reflect/ConstantPool -sun/reflect/UnsafeStaticFieldAccessorImpl -sun/reflect/UnsafeFieldAccessorImpl -sun/reflect/FieldAccessorImpl -sun/reflect/FieldAccessor -java/util/Vector -java/util/List -java/util/Collection -java/lang/Iterable -java/util/RandomAccess -java/util/AbstractList -java/util/AbstractCollection -java/lang/StringBuffer -java/lang/AbstractStringBuilder -java/lang/Appendable -java/lang/StackTraceElement -java/nio/Buffer -java/lang/Boolean -java/lang/Character -java/lang/Float -java/lang/Number -java/lang/Double -java/lang/Byte -java/lang/Short -java/lang/Integer -java/lang/Long -java/lang/NullPointerException -java/lang/ArithmeticException -java/io/ObjectStreamField -java/lang/String$CaseInsensitiveComparator -java/util/Comparator -java/lang/RuntimePermission -java/security/BasicPermission -java/security/Permission -java/security/Guard -sun/misc/SoftCache -java/util/AbstractMap -java/lang/ref/ReferenceQueue -java/lang/ref/ReferenceQueue$Null -java/lang/ref/ReferenceQueue$Lock -java/util/HashMap -java/lang/annotation/Annotation -java/util/HashMap$Entry -java/util/Map$Entry -java/security/AccessController -java/lang/reflect/ReflectPermission -sun/reflect/ReflectionFactory$GetReflectionFactoryAction -java/security/PrivilegedAction -java/util/Stack -sun/reflect/ReflectionFactory -java/lang/ref/Reference$Lock -java/lang/ref/Reference$ReferenceHandler -java/lang/ref/Finalizer$FinalizerThread -java/util/Hashtable$EmptyEnumerator -java/util/Enumeration -java/util/Hashtable$EmptyIterator -java/util/Iterator -java/util/Hashtable$Entry -java/nio/charset/Charset -sun/nio/cs/StandardCharsets -sun/nio/cs/FastCharsetProvider -java/nio/charset/spi/CharsetProvider -sun/nio/cs/StandardCharsets$Aliases -sun/util/PreHashedMap -sun/nio/cs/StandardCharsets$Classes -sun/nio/cs/StandardCharsets$Cache -java/lang/ThreadLocal -java/util/concurrent/atomic/AtomicInteger -sun/misc/Unsafe -java/lang/NoSuchMethodError -java/lang/IncompatibleClassChangeError -sun/reflect/Reflection -java/util/Collections -java/util/Collections$EmptySet -java/util/AbstractSet -java/util/Set -java/util/Collections$EmptyList -java/util/Collections$EmptyMap -java/util/Collections$ReverseComparator -java/util/Collections$SynchronizedMap -java/lang/Class$3 -java/lang/reflect/Modifier -java/lang/reflect/ReflectAccess -sun/reflect/LangReflectAccess -java/util/Arrays -java/lang/Math -sun/nio/cs/US_ASCII -sun/nio/cs/HistoricallyNamedCharset -sun/misc/VM -java/lang/StringCoding -java/lang/ThreadLocal$ThreadLocalMap -java/lang/ThreadLocal$ThreadLocalMap$Entry -java/lang/StringCoding$StringDecoder -sun/nio/cs/US_ASCII$Decoder -java/nio/charset/CharsetDecoder -java/nio/charset/CodingErrorAction -java/nio/ByteBuffer -java/nio/HeapByteBuffer -java/nio/Bits -java/nio/ByteOrder -java/nio/CharBuffer -java/lang/Readable -java/nio/HeapCharBuffer -java/nio/charset/CoderResult -java/nio/charset/CoderResult$1 -java/nio/charset/CoderResult$Cache -java/nio/charset/CoderResult$2 -sun/misc/Version -java/io/FileInputStream -java/io/InputStream -java/io/Closeable -java/io/FileDescriptor -java/io/FileOutputStream -java/io/OutputStream -java/io/Flushable -java/io/BufferedInputStream -java/io/FilterInputStream -java/util/concurrent/atomic/AtomicReferenceFieldUpdater -java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl -sun/reflect/misc/ReflectUtil -java/io/PrintStream -java/io/FilterOutputStream -java/io/BufferedOutputStream -java/io/OutputStreamWriter -java/io/Writer -sun/nio/cs/StreamEncoder -sun/security/action/GetPropertyAction -sun/nio/cs/US_ASCII$Encoder -java/nio/charset/CharsetEncoder -sun/nio/cs/Surrogate$Parser -sun/nio/cs/Surrogate -java/io/BufferedWriter -java/lang/Runtime -java/io/File -java/io/FileSystem -java/io/UnixFileSystem -java/io/ExpiringCache -java/io/ExpiringCache$1 -java/util/LinkedHashMap -java/util/LinkedHashMap$Entry -java/lang/StringBuilder -java/io/File$1 -sun/misc/JavaIODeleteOnExitAccess -sun/misc/SharedSecrets -java/lang/ClassLoader$3 -java/lang/StringCoding$StringEncoder -java/io/ExpiringCache$Entry -java/lang/ClassLoader$NativeLibrary -java/lang/Terminator -java/lang/Terminator$1 -sun/misc/SignalHandler -sun/misc/Signal -sun/misc/NativeSignalHandler -java/io/Console -java/io/Console$1 -sun/misc/JavaIOAccess -java/io/Console$1$1 -java/lang/Shutdown -java/util/ArrayList -java/lang/Shutdown$Lock -java/lang/ApplicationShutdownHooks -java/util/IdentityHashMap -sun/misc/OSEnvironment -java/lang/System$2 -sun/misc/JavaLangAccess -java/lang/Compiler -java/lang/Compiler$1 -sun/misc/Launcher -sun/misc/Launcher$Factory -java/net/URLStreamHandlerFactory -sun/misc/Launcher$ExtClassLoader -java/net/URLClassLoader -java/security/SecureClassLoader -sun/security/util/Debug -java/net/URLClassLoader$7 -sun/misc/JavaNetAccess -java/util/StringTokenizer -sun/misc/Launcher$ExtClassLoader$1 -java/security/PrivilegedExceptionAction -sun/misc/MetaIndex -java/io/BufferedReader -java/io/Reader -java/io/FileReader -java/io/InputStreamReader -sun/nio/cs/StreamDecoder -java/lang/reflect/Array -sun/net/www/ParseUtil -java/util/BitSet -java/io/ObjectStreamClass -java/net/URL -java/util/Locale -java/util/concurrent/ConcurrentHashMap -java/util/concurrent/ConcurrentMap -java/util/concurrent/ConcurrentHashMap$Segment -java/util/concurrent/locks/ReentrantLock -java/util/concurrent/locks/Lock -java/util/concurrent/locks/ReentrantLock$NonfairSync -java/util/concurrent/locks/ReentrantLock$Sync -java/util/concurrent/locks/AbstractQueuedSynchronizer -java/util/concurrent/locks/AbstractOwnableSynchronizer -java/util/concurrent/locks/AbstractQueuedSynchronizer$Node -java/util/concurrent/ConcurrentHashMap$HashEntry -java/lang/CharacterDataLatin1 -java/net/Parts -sun/net/www/protocol/file/Handler -java/net/URLStreamHandler -java/lang/Class$1 -sun/reflect/ReflectionFactory$1 -sun/reflect/NativeConstructorAccessorImpl -sun/reflect/DelegatingConstructorAccessorImpl -java/util/HashSet -sun/misc/URLClassPath -sun/net/www/protocol/jar/Handler -sun/misc/Launcher$AppClassLoader -sun/misc/Launcher$AppClassLoader$1 -java/lang/SystemClassLoaderAction -java/net/URLClassLoader$1 -sun/misc/URLClassPath$3 -sun/misc/URLClassPath$JarLoader -sun/misc/URLClassPath$Loader -java/security/PrivilegedActionException -sun/misc/URLClassPath$FileLoader -sun/misc/URLClassPath$FileLoader$1 -sun/misc/Resource -sun/nio/ByteBuffered -java/security/CodeSource -java/security/Permissions -java/security/PermissionCollection -sun/net/www/protocol/file/FileURLConnection -sun/net/www/URLConnection -java/net/URLConnection -java/net/UnknownContentHandler -java/net/ContentHandler -sun/net/www/MessageHeader -java/io/FilePermission -java/io/FilePermission$1 -sun/security/provider/PolicyFile -java/security/Policy -java/security/Policy$UnsupportedEmptyCollection -java/io/FilePermissionCollection -java/security/AllPermission -java/security/UnresolvedPermission -java/security/BasicPermissionCollection -java/security/Principal -java/security/cert/Certificate -java/util/AbstractList$Itr -java/util/IdentityHashMap$KeySet -java/util/IdentityHashMap$KeyIterator -java/util/IdentityHashMap$IdentityHashMapIterator -java/io/DeleteOnExitHook -java/util/LinkedHashSet -java/util/HashMap$KeySet -java/util/LinkedHashMap$KeyIterator -java/util/LinkedHashMap$LinkedHashIterator -java/awt/Frame -java/awt/MenuContainer -java/awt/Window -javax/accessibility/Accessible -java/awt/Container -java/awt/Component -java/awt/image/ImageObserver -java/lang/InterruptedException -java/awt/Label -java/util/logging/Logger -java/util/logging/Handler -java/util/logging/Level -java/util/logging/LogManager -java/util/logging/LogManager$1 -java/beans/PropertyChangeSupport -java/util/logging/LogManager$LogNode -java/util/logging/LoggingPermission -java/util/logging/LogManager$Cleaner -java/util/logging/LogManager$RootLogger -java/util/logging/LogManager$2 -java/util/Properties$LineReader -java/util/Hashtable$Enumerator -java/beans/PropertyChangeEvent -java/util/EventObject -java/awt/Component$AWTTreeLock -sun/awt/DebugHelper -sun/awt/NativeLibLoader -sun/security/action/LoadLibraryAction -java/awt/GraphicsEnvironment -java/awt/GraphicsEnvironment$1 -java/lang/ProcessEnvironment -java/lang/ProcessEnvironment$Variable -java/lang/ProcessEnvironment$ExternalData -java/lang/ProcessEnvironment$Value -java/lang/ProcessEnvironment$StringEnvironment -java/util/Collections$UnmodifiableMap -sun/awt/DebugHelperStub -java/awt/Toolkit -java/awt/Toolkit$3 -sun/util/CoreResourceBundleControl -java/util/ResourceBundle$Control -java/util/Arrays$ArrayList -java/util/Collections$UnmodifiableRandomAccessList -java/util/Collections$UnmodifiableList -java/util/Collections$UnmodifiableCollection -java/util/ResourceBundle -java/util/ResourceBundle$1 -java/util/ResourceBundle$RBClassLoader -java/util/ResourceBundle$RBClassLoader$1 -java/util/ResourceBundle$CacheKey -java/util/ResourceBundle$LoaderReference -java/util/ResourceBundle$CacheKeyReference -java/util/ResourceBundle$SingleFormatControl -sun/awt/resources/awt -java/util/ListResourceBundle -java/awt/Toolkit$1 -java/io/FileNotFoundException -java/io/IOException -java/awt/event/KeyEvent -java/awt/event/InputEvent -java/awt/event/ComponentEvent +apple/laf/JRSUIConstants +apple/laf/JRSUIConstants$AlignmentHorizontal +apple/laf/JRSUIConstants$AlignmentVertical +apple/laf/JRSUIConstants$Animating +apple/laf/JRSUIConstants$DoubleValue +apple/laf/JRSUIConstants$Focused +apple/laf/JRSUIConstants$FrameOnly +apple/laf/JRSUIConstants$Hit +apple/laf/JRSUIConstants$IndicatorOnly +apple/laf/JRSUIConstants$Key +apple/laf/JRSUIConstants$NothingToScroll +apple/laf/JRSUIConstants$Orientation +apple/laf/JRSUIConstants$Property +apple/laf/JRSUIConstants$PropertyEncoding +apple/laf/JRSUIConstants$ScrollBarPart +apple/laf/JRSUIConstants$SegmentPosition +apple/laf/JRSUIConstants$SegmentTrailingSeparator +apple/laf/JRSUIConstants$ShowArrows +apple/laf/JRSUIConstants$Size +apple/laf/JRSUIConstants$State +apple/laf/JRSUIConstants$Widget +apple/laf/JRSUIControl +apple/laf/JRSUIControl$BufferState +apple/laf/JRSUIControl$ThreadLocalByteBuffer +apple/laf/JRSUIState +apple/laf/JRSUIState$ScrollBarState +apple/laf/JRSUIState$ValueState +apple/laf/JRSUIStateFactory +apple/laf/JRSUIUtils +apple/laf/JRSUIUtils$NineSliceMetricsProvider +apple/laf/JRSUIUtils$TabbedPane +com/apple/eawt/AboutHandler +com/apple/eawt/AppEventListener +com/apple/eawt/AppReOpenedListener +com/apple/eawt/OpenFilesHandler +com/apple/eawt/PreferencesHandler +com/apple/eawt/PrintFilesHandler +com/apple/eawt/QuitHandler +com/apple/eawt/QuitStrategy +com/apple/eawt/_AppEventHandler +com/apple/eawt/_AppEventHandler$_AboutDispatcher +com/apple/eawt/_AppEventHandler$_AppEventDispatcher +com/apple/eawt/_AppEventHandler$_AppEventMultiplexor +com/apple/eawt/_AppEventHandler$_AppForegroundDispatcher +com/apple/eawt/_AppEventHandler$_AppReOpenedDispatcher +com/apple/eawt/_AppEventHandler$_BooleanAppEventMultiplexor +com/apple/eawt/_AppEventHandler$_HiddenAppDispatcher +com/apple/eawt/_AppEventHandler$_NativeEvent +com/apple/eawt/_AppEventHandler$_OpenAppDispatcher +com/apple/eawt/_AppEventHandler$_OpenFileDispatcher +com/apple/eawt/_AppEventHandler$_OpenURIDispatcher +com/apple/eawt/_AppEventHandler$_PreferencesDispatcher +com/apple/eawt/_AppEventHandler$_PrintFileDispatcher +com/apple/eawt/_AppEventHandler$_QueuingAppEventDispatcher +com/apple/eawt/_AppEventHandler$_QuitDispatcher +com/apple/eawt/_AppEventHandler$_ScreenSleepDispatcher +com/apple/eawt/_AppEventHandler$_SystemSleepDispatcher +com/apple/eawt/_AppEventHandler$_UserSessionDispatcher +com/apple/eawt/_AppEventLegacyHandler +com/apple/eawt/_AppMenuBarHandler +com/apple/eawt/_OpenAppHandler +com/apple/laf/AquaBorder +com/apple/laf/AquaButtonBorder +com/apple/laf/AquaButtonBorder$1 +com/apple/laf/AquaButtonBorder$Dynamic +com/apple/laf/AquaButtonBorder$Dynamic$1 +com/apple/laf/AquaButtonBorder$Named +com/apple/laf/AquaButtonBorder$Toggle +com/apple/laf/AquaButtonBorder$Toolbar +com/apple/laf/AquaButtonExtendedTypes +com/apple/laf/AquaButtonExtendedTypes$1 +com/apple/laf/AquaButtonExtendedTypes$2 +com/apple/laf/AquaButtonExtendedTypes$3 +com/apple/laf/AquaButtonExtendedTypes$4 +com/apple/laf/AquaButtonExtendedTypes$5 +com/apple/laf/AquaButtonExtendedTypes$6 +com/apple/laf/AquaButtonExtendedTypes$7 +com/apple/laf/AquaButtonExtendedTypes$8 +com/apple/laf/AquaButtonExtendedTypes$BorderDefinedTypeSpecifier +com/apple/laf/AquaButtonExtendedTypes$BorderDefinedTypeSpecifier$1 +com/apple/laf/AquaButtonExtendedTypes$SegmentedBorderDefinedTypeSpecifier +com/apple/laf/AquaButtonExtendedTypes$SegmentedNamedBorder +com/apple/laf/AquaButtonExtendedTypes$TypeSpecifier +com/apple/laf/AquaButtonToggleUI +com/apple/laf/AquaButtonUI +com/apple/laf/AquaButtonUI$AquaButtonListener +com/apple/laf/AquaButtonUI$AquaHierarchyButtonListener +com/apple/laf/AquaCaret +com/apple/laf/AquaComboBoxButton +com/apple/laf/AquaComboBoxButton$1 +com/apple/laf/AquaComboBoxPopup +com/apple/laf/AquaComboBoxPopup$1 +com/apple/laf/AquaComboBoxRenderer +com/apple/laf/AquaComboBoxRendererInternal +com/apple/laf/AquaComboBoxUI +com/apple/laf/AquaComboBoxUI$1 +com/apple/laf/AquaComboBoxUI$10 +com/apple/laf/AquaComboBoxUI$11 +com/apple/laf/AquaComboBoxUI$12 +com/apple/laf/AquaComboBoxUI$12$1 +com/apple/laf/AquaComboBoxUI$12$2 +com/apple/laf/AquaComboBoxUI$12$3 +com/apple/laf/AquaComboBoxUI$12$4 +com/apple/laf/AquaComboBoxUI$12$5 +com/apple/laf/AquaComboBoxUI$12$6 +com/apple/laf/AquaComboBoxUI$12$7 +com/apple/laf/AquaComboBoxUI$2 +com/apple/laf/AquaComboBoxUI$3 +com/apple/laf/AquaComboBoxUI$4 +com/apple/laf/AquaComboBoxUI$5 +com/apple/laf/AquaComboBoxUI$6 +com/apple/laf/AquaComboBoxUI$7 +com/apple/laf/AquaComboBoxUI$8 +com/apple/laf/AquaComboBoxUI$9 +com/apple/laf/AquaComboBoxUI$AquaComboBoxEditor +com/apple/laf/AquaComboBoxUI$AquaComboBoxLayoutManager +com/apple/laf/AquaComboBoxUI$AquaCustomComboTextField +com/apple/laf/AquaComboBoxUI$AquaCustomComboTextField$1 +com/apple/laf/AquaComboBoxUI$ComboBoxAction +com/apple/laf/AquaFocusHandler +com/apple/laf/AquaFocusHandler$1 +com/apple/laf/AquaFonts +com/apple/laf/AquaFonts$1 +com/apple/laf/AquaFonts$2 +com/apple/laf/AquaFonts$3 +com/apple/laf/AquaFonts$4 +com/apple/laf/AquaFonts$5 +com/apple/laf/AquaFonts$6 +com/apple/laf/AquaFonts$7 +com/apple/laf/AquaFonts$DerivedUIResourceFont +com/apple/laf/AquaHighlighter +com/apple/laf/AquaHighlighter$1 +com/apple/laf/AquaHighlighter$AquaHighlightPainter +com/apple/laf/AquaIcon$CachingScalingIcon +com/apple/laf/AquaIcon$InvertableIcon +com/apple/laf/AquaIcon$SystemIcon +com/apple/laf/AquaIcon$SystemIconSingleton +com/apple/laf/AquaIcon$SystemIconUIResourceSingleton +com/apple/laf/AquaImageFactory +com/apple/laf/AquaImageFactory$IconUIResourceSingleton +com/apple/laf/AquaImageFactory$InvertableImageIcon +com/apple/laf/AquaImageFactory$NamedImageSingleton +com/apple/laf/AquaImageFactory$SystemColorProxy +com/apple/laf/AquaKeyBindings +com/apple/laf/AquaKeyBindings$AquaMultilineAction +com/apple/laf/AquaKeyBindings$BindingsProvider +com/apple/laf/AquaKeyBindings$LateBoundInputMap +com/apple/laf/AquaKeyBindings$SimpleBinding +com/apple/laf/AquaLabelUI +com/apple/laf/AquaListUI +com/apple/laf/AquaListUI$AquaHomeEndAction +com/apple/laf/AquaListUI$AquaPropertyChangeHandler +com/apple/laf/AquaListUI$FocusHandler +com/apple/laf/AquaListUI$MouseInputHandler +com/apple/laf/AquaLookAndFeel +com/apple/laf/AquaLookAndFeel$1 +com/apple/laf/AquaLookAndFeel$2 +com/apple/laf/AquaLookAndFeel$3 +com/apple/laf/AquaMenuBarBorder +com/apple/laf/AquaMenuBarUI +com/apple/laf/AquaMenuBorder +com/apple/laf/AquaMenuItemUI +com/apple/laf/AquaMenuItemUI$IndeterminateListener +com/apple/laf/AquaMenuPainter +com/apple/laf/AquaMenuPainter$Client +com/apple/laf/AquaMenuPainter$RecyclableBorder +com/apple/laf/AquaMenuUI +com/apple/laf/AquaMenuUI$AquaMouseInputHandler +com/apple/laf/AquaMenuUI$MenuDragMouseHandler +com/apple/laf/AquaMnemonicHandler +com/apple/laf/AquaMnemonicHandler$AltProcessor +com/apple/laf/AquaPainter +com/apple/laf/AquaPainter$1 +com/apple/laf/AquaPainter$AquaNineSlicingImagePainter +com/apple/laf/AquaPainter$AquaSingleImagePainter +com/apple/laf/AquaPanelUI +com/apple/laf/AquaPopupMenuSeparatorUI +com/apple/laf/AquaPopupMenuUI +com/apple/laf/AquaRootPaneUI +com/apple/laf/AquaScrollBarUI +com/apple/laf/AquaScrollBarUI$1 +com/apple/laf/AquaScrollBarUI$ModelListener +com/apple/laf/AquaScrollBarUI$PropertyChangeHandler +com/apple/laf/AquaScrollBarUI$ScrollListener +com/apple/laf/AquaScrollBarUI$TrackListener +com/apple/laf/AquaScrollPaneUI +com/apple/laf/AquaScrollPaneUI$XYMouseWheelHandler +com/apple/laf/AquaScrollRegionBorder +com/apple/laf/AquaTableHeaderBorder +com/apple/laf/AquaTableHeaderBorder$1 +com/apple/laf/AquaTextAreaUI +com/apple/laf/AquaTextFieldBorder +com/apple/laf/AquaTextFieldSearch +com/apple/laf/AquaTextFieldSearch$SearchFieldBorder +com/apple/laf/AquaTextFieldSearch$SearchFieldPropertyListener +com/apple/laf/AquaTextFieldUI +com/apple/laf/AquaToolBarSeparatorUI +com/apple/laf/AquaToolBarUI +com/apple/laf/AquaToolBarUI$ToolBarBorder +com/apple/laf/AquaUtilControlSize +com/apple/laf/AquaUtilControlSize$PropertySizeListener +com/apple/laf/AquaUtilControlSize$SizeDescriptor +com/apple/laf/AquaUtilControlSize$SizeVariant +com/apple/laf/AquaUtilControlSize$Sizeable +com/apple/laf/AquaUtils +com/apple/laf/AquaUtils$2 +com/apple/laf/AquaUtils$5 +com/apple/laf/AquaUtils$6 +com/apple/laf/AquaUtils$JComponentPainter +com/apple/laf/AquaUtils$RecyclableSingleton +com/apple/laf/AquaUtils$RecyclableSingletonFromDefaultConstructor +com/apple/laf/ClientPropertyApplicator +com/apple/laf/ClientPropertyApplicator$Property +com/apple/laf/ImageCache +com/apple/laf/ImageCache$1 +com/apple/laf/ImageCache$PixelCountSoftReference +com/apple/laf/ScreenMenuBar +com/apple/laf/ScreenMenuBarProvider +com/apple/laf/ScreenMenuPropertyHandler +com/apple/laf/ScreenPopupFactory +com/apple/laf/ScreenPopupFactory$1 +com/apple/laf/resources/aqua +com/sun/java/swing/SwingUtilities3 +com/sun/swing/internal/plaf/basic/resources/basic +java/applet/Applet java/awt/AWTEvent -java/awt/event/NativeLibLoader -java/util/WeakHashMap -java/util/WeakHashMap$Entry -java/awt/Component$DummyRequestFocusController -sun/awt/RequestFocusController -java/awt/LayoutManager -java/awt/LightweightDispatcher -java/awt/event/AWTEventListener -java/util/EventListener -java/awt/Dimension -java/awt/geom/Dimension2D -java/util/concurrent/atomic/AtomicBoolean -java/awt/ComponentOrientation -java/awt/Component$2 -java/lang/NoSuchMethodException -sun/awt/AppContext -sun/awt/AppContext$1 -sun/awt/AppContext$2 -sun/awt/MostRecentKeyValue -java/awt/Cursor -sun/awt/X11GraphicsEnvironment -sun/java2d/SunGraphicsEnvironment -sun/java2d/FontSupport -sun/awt/DisplayChangedListener -sun/java2d/SunGraphicsEnvironment$TTFilter -java/io/FilenameFilter -sun/java2d/SunGraphicsEnvironment$T1Filter -sun/awt/X11GraphicsEnvironment$1 -sun/awt/SunToolkit -sun/awt/WindowClosingSupport -sun/awt/WindowClosingListener -sun/awt/ComponentFactory -sun/awt/InputMethodSupport -java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject -java/util/concurrent/locks/Condition -sun/awt/AWTAutoShutdown -sun/awt/AWTAutoShutdown$PeerMap -sun/awt/SunToolkit$6 -java/awt/Dialog$ModalExclusionType -java/lang/Enum -java/awt/Dialog -java/awt/Dialog$ModalityType -java/awt/ModalEventFilter -java/awt/EventFilter -sun/reflect/UnsafeFieldAccessorFactory -sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl -sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl -sun/awt/SunDisplayChanger -sun/java2d/SunGraphicsEnvironment$1 -java/io/StreamTokenizer -sun/font/FontManager -sun/font/FileFont -sun/font/PhysicalFont -sun/font/Font2D -sun/font/CompositeFont -java/util/HashMap$Values -java/util/HashMap$ValueIterator -java/util/HashMap$HashIterator -sun/font/FontManager$1 -java/awt/Font -java/awt/geom/AffineTransform -sun/font/AttributeValues -sun/font/EAttribute -java/text/AttributedCharacterIterator$Attribute -java/lang/Class$4 -sun/reflect/NativeMethodAccessorImpl -sun/reflect/DelegatingMethodAccessorImpl -java/awt/font/TextAttribute -java/lang/Integer$IntegerCache -sun/font/TrueTypeFont -java/awt/font/FontRenderContext -java/awt/RenderingHints -sun/awt/SunHints -sun/awt/SunHints$Key -java/awt/RenderingHints$Key -sun/awt/SunHints$Value -sun/awt/SunHints$LCDContrastKey -sun/font/Type1Font -java/awt/geom/Point2D$Float -java/awt/geom/Point2D -sun/font/StrikeMetrics -java/awt/geom/Rectangle2D$Float -java/awt/geom/Rectangle2D -java/awt/geom/RectangularShape -java/awt/Shape -java/awt/geom/GeneralPath -java/awt/geom/Path2D$Float -java/awt/geom/Path2D -sun/font/CharToGlyphMapper -sun/font/PhysicalStrike -sun/font/FontStrike -sun/font/GlyphList -sun/font/StrikeCache -sun/java2d/Disposer -sun/java2d/Disposer$1 -sun/font/StrikeCache$1 -sun/font/FontManager$FontRegistrationInfo -sun/awt/motif/MFontConfiguration -sun/awt/FontConfiguration -sun/awt/FontDescriptor -java/util/Scanner -java/util/regex/Pattern -java/util/regex/Pattern$8 -java/util/regex/Pattern$Node -java/util/regex/Pattern$LastNode -java/util/regex/Pattern$GroupHead -java/util/regex/Pattern$CharPropertyNames -java/util/regex/Pattern$CharPropertyNames$1 -java/util/regex/Pattern$CharPropertyNames$CharPropertyFactory -java/util/regex/Pattern$CharPropertyNames$2 -java/util/regex/Pattern$CharPropertyNames$5 -java/util/regex/Pattern$CharPropertyNames$3 -java/util/regex/Pattern$CharPropertyNames$6 -java/util/regex/Pattern$CharPropertyNames$CloneableProperty -java/util/regex/Pattern$CharProperty -java/util/regex/Pattern$CharPropertyNames$4 -java/util/regex/Pattern$CharPropertyNames$7 -java/util/regex/Pattern$CharPropertyNames$8 -java/util/regex/Pattern$CharPropertyNames$9 -java/util/regex/Pattern$CharPropertyNames$10 -java/util/regex/Pattern$CharPropertyNames$11 -java/util/regex/Pattern$CharPropertyNames$12 -java/util/regex/Pattern$CharPropertyNames$13 -java/util/regex/Pattern$CharPropertyNames$14 -java/util/regex/Pattern$CharPropertyNames$15 -java/util/regex/Pattern$CharPropertyNames$16 -java/util/regex/Pattern$CharPropertyNames$17 -java/util/regex/Pattern$CharPropertyNames$18 -java/util/regex/Pattern$CharPropertyNames$19 -java/util/regex/Pattern$CharPropertyNames$20 -java/util/regex/Pattern$CharPropertyNames$21 -java/util/regex/Pattern$Curly -java/util/regex/Pattern$Slice -java/util/regex/Pattern$Begin -java/util/regex/Pattern$First -java/util/regex/Pattern$Start -java/util/regex/Pattern$TreeInfo -java/util/regex/Pattern$All -java/util/regex/Pattern$BitClass -java/util/regex/Pattern$BmpCharProperty -java/util/regex/Pattern$6 -java/util/regex/Pattern$CharProperty$1 -java/util/regex/Pattern$10 -sun/nio/ch/FileChannelImpl -java/nio/channels/FileChannel -java/nio/channels/ByteChannel -java/nio/channels/ReadableByteChannel -java/nio/channels/Channel -java/nio/channels/WritableByteChannel -java/nio/channels/GatheringByteChannel -java/nio/channels/ScatteringByteChannel -java/nio/channels/spi/AbstractInterruptibleChannel -java/nio/channels/InterruptibleChannel -sun/nio/ch/Util -sun/nio/ch/IOUtil -sun/nio/ch/FileDispatcher -sun/nio/ch/NativeDispatcher -sun/nio/ch/Reflect -java/nio/MappedByteBuffer -sun/nio/ch/Reflect$1 -sun/nio/ch/NativeThreadSet -java/nio/channels/Channels -java/util/Scanner$1 -sun/misc/LRUCache -java/util/regex/Matcher -java/util/regex/MatchResult -java/text/NumberFormat -java/text/Format -java/text/spi/NumberFormatProvider -java/util/spi/LocaleServiceProvider -sun/util/LocaleServiceProviderPool -sun/util/LocaleServiceProviderPool$1 -java/util/ServiceLoader -java/util/ServiceLoader$LazyIterator -java/util/ServiceLoader$1 -java/util/HashMap$EntrySet -java/util/LinkedHashMap$EntryIterator -sun/misc/Launcher$1 -sun/misc/URLClassPath$2 -java/lang/ClassLoader$2 -sun/misc/URLClassPath$1 -java/net/URLClassLoader$3 -sun/misc/CompoundEnumeration -sun/misc/URLClassPath$JarLoader$1 -sun/misc/FileURLMapper -java/net/URLClassLoader$3$1 -sun/util/resources/LocaleData -sun/util/resources/LocaleData$1 -sun/util/resources/LocaleData$LocaleDataResourceBundleControl -sun/util/LocaleDataMetaInfo -sun/text/resources/FormatData -java/util/ResourceBundle$BundleReference -sun/text/resources/FormatData_en -sun/text/resources/FormatData_en_US -java/text/DecimalFormatSymbols -java/text/spi/DecimalFormatSymbolsProvider -java/util/Currency -java/util/Currency$1 -java/util/CurrencyData -java/util/spi/CurrencyNameProvider -sun/util/resources/CurrencyNames -sun/util/resources/LocaleNamesBundle -sun/util/resources/OpenListResourceBundle -sun/util/resources/CurrencyNames_en_US -java/text/DecimalFormat -java/text/FieldPosition -java/text/DigitList -java/math/RoundingMode -java/util/regex/Pattern$GroupTail -java/util/regex/Pattern$Ctype -java/util/regex/Pattern$Ques -java/util/regex/Pattern$GroupCurly -java/util/regex/Pattern$5 -java/util/regex/Pattern$Loop -java/util/regex/Pattern$Prolog -java/util/regex/Pattern$9 -java/util/regex/Pattern$BranchConn -java/util/regex/Pattern$Branch -java/nio/channels/spi/AbstractInterruptibleChannel$1 -sun/nio/ch/Interruptible -sun/nio/ch/NativeThread -sun/nio/ch/DirectBuffer -java/nio/DirectByteBuffer -java/nio/DirectByteBuffer$Deallocator -sun/misc/Cleaner -sun/nio/ch/IOStatus -java/util/regex/ASCII -java/io/DataInputStream -java/io/DataInput -java/lang/Short$ShortCache -java/util/HashMap$KeyIterator -sun/font/CompositeFontDescriptor -sun/font/Font2DHandle -sun/font/FontFamily -java/awt/GraphicsDevice -sun/awt/X11GraphicsDevice -sun/awt/X11GraphicsConfig -java/awt/GraphicsConfiguration -java/awt/ImageCapabilities -sun/java2d/x11/X11SurfaceData -sun/java2d/SurfaceData -java/awt/Transparency -sun/java2d/DisposerTarget -sun/java2d/InvalidPipeException -java/lang/IllegalStateException -sun/java2d/NullSurfaceData -sun/java2d/loops/SurfaceType -sun/awt/image/PixelConverter -sun/awt/image/PixelConverter$Xrgb -sun/awt/image/PixelConverter$Argb -sun/awt/image/PixelConverter$ArgbPre -sun/awt/image/PixelConverter$Xbgr -sun/awt/image/PixelConverter$Rgba -sun/awt/image/PixelConverter$RgbaPre -sun/awt/image/PixelConverter$Ushort565Rgb -sun/awt/image/PixelConverter$Ushort555Rgb -sun/awt/image/PixelConverter$Ushort555Rgbx -sun/awt/image/PixelConverter$Ushort4444Argb -sun/awt/image/PixelConverter$ByteGray -sun/awt/image/PixelConverter$UshortGray -sun/awt/image/PixelConverter$Rgbx -sun/awt/image/PixelConverter$Bgrx -sun/awt/image/PixelConverter$ArgbBm -java/awt/image/ColorModel -java/awt/image/DirectColorModel -java/awt/image/PackedColorModel -java/awt/color/ColorSpace -java/awt/color/ICC_Profile -sun/awt/color/ProfileDeferralInfo -sun/awt/color/ProfileDeferralMgr -java/awt/color/ICC_ProfileRGB -java/awt/color/ICC_Profile$1 -sun/awt/color/ProfileActivator -java/awt/color/ICC_ColorSpace -sun/java2d/pipe/NullPipe -sun/java2d/pipe/PixelDrawPipe -sun/java2d/pipe/PixelFillPipe -sun/java2d/pipe/ShapeDrawPipe -sun/java2d/pipe/TextPipe -sun/java2d/pipe/DrawImagePipe -java/awt/image/IndexColorModel -sun/java2d/pipe/LoopPipe -sun/java2d/pipe/OutlineTextRenderer -sun/java2d/pipe/SolidTextRenderer -sun/java2d/pipe/GlyphListLoopPipe -sun/java2d/pipe/GlyphListPipe -sun/java2d/pipe/AATextRenderer -sun/java2d/pipe/LCDTextRenderer -sun/java2d/pipe/AlphaColorPipe -sun/java2d/pipe/CompositePipe -sun/java2d/pipe/PixelToShapeConverter -sun/java2d/pipe/TextRenderer -sun/java2d/pipe/SpanClipRenderer -sun/java2d/pipe/Region -sun/java2d/pipe/RegionIterator -sun/java2d/pipe/DuctusShapeRenderer -sun/java2d/pipe/DuctusRenderer -sun/java2d/pipe/AlphaPaintPipe -sun/java2d/pipe/SpanShapeRenderer$Composite -sun/java2d/pipe/SpanShapeRenderer -sun/java2d/pipe/GeneralCompositePipe -sun/java2d/pipe/DrawImage -sun/java2d/loops/RenderCache -sun/java2d/loops/RenderCache$Entry -sun/java2d/loops/XORComposite -java/awt/Composite -sun/font/X11TextRenderer -sun/java2d/loops/GraphicsPrimitive -sun/java2d/x11/X11PMBlitLoops -sun/java2d/loops/Blit -sun/java2d/loops/GraphicsPrimitiveMgr -sun/java2d/loops/CompositeType -sun/java2d/SunGraphics2D -sun/awt/ConstrainableGraphics -java/awt/Graphics2D -java/awt/Graphics -java/awt/Color -java/awt/Paint -java/awt/AlphaComposite -sun/java2d/loops/BlitBg -sun/java2d/loops/ScaledBlit -sun/java2d/loops/FillRect -sun/java2d/loops/FillSpans -sun/java2d/loops/DrawLine -sun/java2d/loops/DrawRect -sun/java2d/loops/DrawPolygons -sun/java2d/loops/DrawPath -sun/java2d/loops/FillPath -sun/java2d/loops/MaskBlit -sun/java2d/loops/MaskFill -sun/java2d/loops/DrawGlyphList -sun/java2d/loops/DrawGlyphListAA -sun/java2d/loops/DrawGlyphListLCD -sun/java2d/loops/TransformHelper -java/awt/BasicStroke -java/awt/Stroke -sun/misc/PerformanceLogger -sun/misc/PerformanceLogger$TimeData -sun/java2d/pipe/ValidatePipe -sun/java2d/loops/CustomComponent -sun/java2d/loops/GraphicsPrimitiveProxy -sun/java2d/loops/GeneralRenderer -sun/java2d/loops/GraphicsPrimitiveMgr$1 -sun/java2d/loops/GraphicsPrimitiveMgr$2 -sun/java2d/x11/X11PMBlitLoops$DelegateBlitLoop -sun/java2d/x11/X11PMBlitBgLoops -sun/java2d/x11/X11SurfaceData$LazyPipe -sun/awt/X11GraphicsConfig$X11GCDisposerRecord -sun/java2d/DisposerRecord -java/awt/BorderLayout -java/awt/LayoutManager2 -java/awt/Rectangle -java/awt/Toolkit$2 -sun/awt/X11/XToolkit -sun/awt/X11/XConstants -sun/awt/UNIXToolkit -java/util/TreeMap -java/util/NavigableMap -java/util/SortedMap -sun/awt/X11/XlibWrapper -sun/awt/X11/XUtilConstants -sun/awt/X11/XProtocolConstants -sun/awt/X11/XCursorFontConstants -sun/awt/X11/XlibWrapper$1 -sun/awt/X11/XToolkit$4 -sun/awt/X11/XModifierKeymap -sun/awt/X11/XWrapperBase -sun/awt/X11/Native -sun/awt/X11/Native$1 -java/awt/EventQueue -sun/awt/X11/XToolkit$7 -java/util/EmptyStackException -java/lang/reflect/InvocationTargetException -java/awt/EventDispatchThread -java/awt/event/PaintEvent -java/awt/event/MouseEvent -sun/awt/PeerEvent -java/awt/event/InvocationEvent -java/awt/ActiveEvent -java/awt/EventQueueItem -sun/awt/X11/XToolkit$1 -sun/awt/X11/XToolkit$XErrorHandler -sun/awt/X11/XToolkit$5 -sun/awt/X11/XEventDispatcher -sun/awt/SunToolkit$ModalityListenerList -sun/awt/ModalityListener -sun/awt/SunToolkit$1 -java/util/MissingResourceException -java/awt/Queue -sun/awt/PostEventQueue -java/util/LinkedList -java/util/Deque -java/util/Queue -java/util/AbstractSequentialList -java/util/LinkedList$Entry -sun/awt/X11/AwtScreenData -sun/awt/X11/XWM -sun/awt/X11/MWMConstants -sun/awt/X11/XAtom -java/awt/Insets -sun/awt/X11/XWM$1 -sun/awt/X11/XWM$2 -sun/awt/X11/XSetWindowAttributes -sun/awt/X11/XErrorEvent -sun/awt/X11/XNETProtocol -sun/awt/X11/XStateProtocol -sun/awt/X11/XLayerProtocol -sun/awt/X11/XProtocol -sun/awt/X11/XProtocol$1 -sun/awt/X11/WindowPropertyGetter -sun/awt/X11/UnsafeXDisposerRecord -sun/awt/X11/XPropertyCache -sun/awt/X11/XWINProtocol -sun/awt/X11/XAtomList -sun/awt/X11/XToolkit$3 -sun/awt/X11/XAnyEvent -sun/awt/X11/IXAnyEvent -java/awt/Window$WindowDisposerRecord -java/awt/KeyboardFocusManager -java/awt/KeyEventDispatcher -java/awt/KeyEventPostProcessor +java/awt/AWTEvent$1 +java/awt/AWTEvent$2 +java/awt/AWTEventMulticaster java/awt/AWTKeyStroke java/awt/AWTKeyStroke$1 -java/awt/DefaultKeyboardFocusManager -java/awt/DefaultFocusTraversalPolicy -java/awt/ContainerOrderFocusTraversalPolicy -java/awt/FocusTraversalPolicy -java/awt/MutableBoolean -java/util/Collections$UnmodifiableSet -sun/awt/HeadlessToolkit -sun/awt/X11/XKeyboardFocusManagerPeer -java/awt/peer/KeyboardFocusManagerPeer -sun/awt/X11/XKeyboardFocusManagerPeer$1 -sun/awt/X11/XFramePeer -java/awt/peer/FramePeer -java/awt/peer/WindowPeer -java/awt/peer/ContainerPeer -java/awt/peer/ComponentPeer -sun/awt/X11/XDecoratedPeer -sun/awt/X11/XWindowPeer -sun/awt/X11/XPanelPeer -java/awt/peer/PanelPeer -sun/awt/X11/XCanvasPeer -java/awt/peer/CanvasPeer -sun/awt/X11/XComponentPeer -java/awt/dnd/peer/DropTargetPeer -sun/awt/X11/XWindow -sun/awt/X11ComponentPeer -sun/awt/X11/XBaseWindow -sun/awt/X11/XCreateWindowParams -java/lang/Long$LongCache -sun/awt/X11/XBaseWindow$InitialiseState -sun/awt/X11/XBaseWindow$StateLock -sun/awt/X11/AwtGraphicsConfigData -sun/awt/X11/XVisualInfo -java/awt/SystemColor -sun/awt/X11/MotifColorUtilities -java/lang/StrictMath -sun/awt/X11/XRepaintArea -sun/awt/RepaintArea -sun/awt/X11/XWindowAttributesData -java/util/concurrent/locks/LockSupport -sun/awt/X11/WindowDimensions -java/awt/Point -java/util/TreeMap$Entry -sun/nio/cs/UTF_8 -sun/nio/cs/Unicode -sun/nio/cs/UTF_8$Encoder -sun/nio/cs/UTF_8$Decoder -sun/nio/cs/Surrogate$Generator -sun/awt/X11/XPropertyEvent -sun/awt/X11/XDropTargetEventProcessor -sun/awt/X11/XDragSourceContextPeer -sun/awt/X11/XDragSourceProtocolListener -sun/awt/dnd/SunDragSourceContextPeer -java/awt/dnd/peer/DragSourceContextPeer -sun/awt/X11/XAwtState -sun/awt/X11/XBaseWindow$1 -sun/awt/X11/XRootWindow -sun/nio/cs/ISO_8859_1 -sun/nio/cs/ISO_8859_1$Encoder -sun/nio/cs/ISO_8859_1$Decoder -sun/java2d/x11/X11SurfaceData$X11WindowSurfaceData -sun/java2d/loops/RenderLoops -sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec -sun/java2d/DefaultDisposerRecord -sun/java2d/x11/X11Renderer -sun/awt/X11/XGlobalCursorManager -sun/awt/GlobalCursorManager -sun/awt/X11/XToolkit$6 -java/awt/Cursor$CursorDisposer -java/awt/AWTException -java/awt/HeadlessException -java/lang/UnsupportedOperationException -sun/reflect/UnsafeLongFieldAccessorImpl -sun/reflect/UnsafeIntegerFieldAccessorImpl -sun/awt/X11/XClientMessageEvent -sun/awt/X11/XIconInfo -sun/awt/X11/XAWTIcon32_java_icon16_png -sun/awt/X11/XAWTIcon32_java_icon24_png -sun/awt/X11/XAWTIcon32_java_icon32_png -sun/awt/X11/XAWTIcon32_java_icon48_png -sun/awt/X11/XSizeHints -sun/awt/X11/XContentWindow -sun/awt/X11/XFocusProxyWindow -sun/awt/X11/XWMHints -java/util/LinkedList$ListItr -java/util/ListIterator -sun/awt/SunToolkit$2 -java/awt/image/BufferStrategy -java/awt/dnd/DropTarget -java/awt/dnd/DropTargetListener -java/awt/event/ComponentListener -java/awt/event/FocusListener -java/awt/event/HierarchyListener -java/awt/event/HierarchyBoundsListener -java/awt/event/KeyListener -java/awt/event/MouseListener -java/awt/event/MouseMotionListener -java/awt/event/MouseWheelListener -java/awt/event/InputMethodListener -java/awt/Component$NativeInLightFixer -java/awt/event/ContainerListener -javax/accessibility/AccessibleContext -sun/reflect/UnsafeObjectFieldAccessorImpl -java/awt/peer/LightweightPeer -sun/awt/X11/XLabelPeer -java/awt/peer/LabelPeer -sun/awt/X11/XMapEvent -sun/awt/X11/XQueryTree -sun/awt/X11/XConfigureEvent -sun/awt/X11/PropMwmHints -sun/awt/GlobalCursorManager$NativeUpdater -javax/swing/JFrame -javax/swing/WindowConstants -javax/swing/RootPaneContainer -javax/swing/TransferHandler$HasGetTransferHandler -javax/swing/JLabel -javax/swing/SwingConstants -javax/swing/JComponent -javax/swing/JComponent$1 -javax/swing/SwingUtilities -javax/swing/JRootPane -sun/security/action/GetBooleanAction -javax/swing/event/EventListenerList -javax/swing/JPanel -java/awt/FlowLayout -javax/swing/UIManager -javax/swing/UIManager$LookAndFeelInfo -sun/swing/SwingUtilities2 -sun/swing/SwingUtilities2$LSBCacheEntry -javax/swing/UIManager$LAFState -javax/swing/UIDefaults -javax/swing/MultiUIDefaults -javax/swing/UIManager$1 -javax/swing/plaf/metal/MetalLookAndFeel -javax/swing/plaf/basic/BasicLookAndFeel -javax/swing/LookAndFeel -sun/swing/DefaultLookup -javax/swing/plaf/metal/OceanTheme -javax/swing/plaf/metal/DefaultMetalTheme -javax/swing/plaf/metal/MetalTheme -javax/swing/plaf/ColorUIResource -javax/swing/plaf/UIResource -sun/swing/PrintColorUIResource -javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate -javax/swing/plaf/FontUIResource -sun/swing/SwingLazyValue -javax/swing/UIDefaults$LazyValue -javax/swing/UIDefaults$ActiveValue -javax/swing/plaf/InsetsUIResource -sun/swing/SwingUtilities2$2 -javax/swing/plaf/basic/BasicLookAndFeel$2 -javax/swing/plaf/DimensionUIResource -javax/swing/UIDefaults$LazyInputMap -java/lang/Character$CharacterCache -javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue -javax/swing/plaf/metal/MetalLookAndFeel$FontActiveValue -java/awt/print/PrinterJob -sun/swing/SwingUtilities2$AATextInfo -sun/awt/X11/XAWTXSettings -sun/awt/X11/XMSelectionListener -sun/awt/XSettings -sun/awt/X11/XMSelection -sun/awt/X11/XMSelection$1 -javax/swing/plaf/metal/MetalLookAndFeel$AATextListener -java/beans/PropertyChangeListener -java/beans/PropertyChangeListenerProxy -java/util/EventListenerProxy -sun/awt/EventListenerAggregate -javax/swing/UIDefaults$ProxyLazyValue -javax/swing/plaf/metal/OceanTheme$1 -javax/swing/plaf/metal/OceanTheme$2 -javax/swing/plaf/metal/OceanTheme$3 -javax/swing/plaf/metal/OceanTheme$4 -javax/swing/plaf/metal/OceanTheme$5 -javax/swing/plaf/metal/OceanTheme$6 -javax/swing/RepaintManager -javax/swing/RepaintManager$DisplayChangedHandler -javax/swing/SwingPaintEventDispatcher -sun/awt/PaintEventDispatcher -javax/swing/UIManager$2 -javax/swing/UIManager$3 -java/awt/PopupMenu -java/awt/Menu -java/awt/MenuItem -java/awt/MenuComponent -java/io/ObjectOutputStream -java/io/ObjectOutput -java/io/DataOutput -java/io/ObjectStreamConstants -java/io/PrintWriter -java/io/ObjectInputStream -java/io/ObjectInput -java/awt/Event -java/awt/im/InputContext -java/awt/event/MouseWheelEvent -java/awt/BufferCapabilities -sun/awt/CausedFocusEvent$Cause -java/awt/PointerInfo -java/awt/Component$BaselineResizeBehavior -java/awt/FontMetrics -java/awt/Image -java/awt/image/ImageProducer -java/awt/image/VolatileImage -java/awt/im/InputMethodRequests -java/awt/event/FocusEvent -java/awt/event/InputMethodEvent -java/awt/event/HierarchyEvent -javax/accessibility/AccessibleStateSet -com/sun/swing/internal/plaf/metal/resources/metal -sun/util/ResourceBundleEnumeration -com/sun/swing/internal/plaf/basic/resources/basic -javax/swing/plaf/basic/BasicPanelUI -javax/swing/plaf/PanelUI -javax/swing/plaf/ComponentUI -sun/reflect/misc/MethodUtil -sun/reflect/misc/MethodUtil$1 -java/util/jar/JarFile -java/util/zip/ZipFile -java/util/zip/ZipConstants -java/util/jar/JavaUtilJarAccessImpl -sun/misc/JavaUtilJarAccess -sun/misc/JarIndex -java/util/zip/ZipEntry -java/util/jar/JarFile$JarFileEntry -java/util/jar/JarEntry -sun/misc/URLClassPath$JarLoader$2 -sun/net/www/protocol/jar/JarURLConnection -java/net/JarURLConnection -sun/net/www/protocol/jar/JarFileFactory -sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController -java/net/HttpURLConnection -sun/net/www/protocol/jar/URLJarFile -sun/net/www/protocol/jar/URLJarFile$URLJarFileEntry -sun/net/www/protocol/jar/JarURLConnection$JarURLInputStream -java/util/zip/ZipFile$ZipFileInputStream -java/security/AllPermissionCollection -java/lang/IllegalAccessException -javax/swing/JPasswordField -javax/swing/JTextField -javax/swing/text/JTextComponent -javax/swing/Scrollable -javax/swing/JLayeredPane -javax/swing/JRootPane$1 -javax/swing/ArrayTable -javax/swing/JInternalFrame -javax/swing/JRootPane$RootLayout -javax/swing/BufferStrategyPaintManager -javax/swing/RepaintManager$PaintManager -javax/swing/plaf/metal/MetalRootPaneUI -javax/swing/plaf/basic/BasicRootPaneUI -javax/swing/plaf/RootPaneUI -javax/swing/plaf/basic/BasicRootPaneUI$RootPaneInputMap -javax/swing/plaf/ComponentInputMapUIResource -javax/swing/ComponentInputMap -javax/swing/InputMap -javax/swing/plaf/InputMapUIResource -javax/swing/KeyStroke -java/awt/VKCollection -sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl -javax/swing/plaf/basic/LazyActionMap -javax/swing/plaf/ActionMapUIResource -javax/swing/ActionMap -javax/swing/LayoutFocusTraversalPolicy -javax/swing/SortingFocusTraversalPolicy -javax/swing/InternalFrameFocusTraversalPolicy -javax/swing/SwingContainerOrderFocusTraversalPolicy -javax/swing/SwingDefaultFocusTraversalPolicy -javax/swing/LayoutComparator -javax/swing/plaf/metal/MetalLabelUI -javax/swing/plaf/basic/BasicLabelUI -javax/swing/plaf/LabelUI -javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1 -javax/swing/plaf/basic/BasicHTML -javax/swing/SystemEventQueueUtilities -javax/swing/SystemEventQueueUtilities$SystemEventQueue -sun/awt/NullComponentPeer -java/awt/event/WindowEvent -java/awt/EventQueue$1 -java/awt/EventDispatchThread$1 -java/awt/Conditional -java/awt/EventDispatchThread$HierarchyEventFilter -java/awt/EventFilter$FilterAction -sun/awt/dnd/SunDropTargetEvent -java/awt/event/ActionEvent -java/util/jar/Manifest -java/io/ByteArrayInputStream -java/util/jar/Attributes -java/util/jar/Manifest$FastInputStream -java/util/jar/Attributes$Name -sun/misc/ASCIICaseInsensitiveComparator -java/util/jar/JarVerifier -java/io/ByteArrayOutputStream -sun/misc/ExtensionDependency -java/lang/Package -sun/security/util/ManifestEntryVerifier -sun/security/provider/Sun -java/security/Provider -java/security/Provider$ServiceKey -java/security/Provider$EngineDescription -sun/security/provider/Sun$1 -java/security/Security -java/security/Security$1 -sun/misc/FloatingDecimal -sun/misc/FloatingDecimal$1 -sun/security/provider/NativePRNG -java/security/SecureRandomSpi -sun/security/provider/NativePRNG$1 -sun/security/provider/NativePRNG$RandomIO -sun/misc/BASE64Decoder -sun/misc/CharacterDecoder -sun/security/util/SignatureFileVerifier -java/awt/event/KeyAdapter -java/lang/NumberFormatException -java/lang/IllegalArgumentException -java/io/FileWriter -java/net/Authenticator -java/net/MalformedURLException -javax/swing/text/Element -javax/swing/text/Document -javax/swing/text/PlainDocument -javax/swing/text/AbstractDocument -javax/swing/text/GapContent -javax/swing/text/AbstractDocument$Content -javax/swing/text/GapVector -javax/swing/text/GapContent$MarkVector -javax/swing/text/GapContent$MarkData -javax/swing/text/StyleContext -javax/swing/text/AbstractDocument$AttributeContext -javax/swing/text/StyleConstants -javax/swing/text/StyleConstants$CharacterConstants -javax/swing/text/AttributeSet$CharacterAttribute -javax/swing/text/StyleConstants$FontConstants -javax/swing/text/AttributeSet$FontAttribute -javax/swing/text/StyleConstants$ColorConstants -javax/swing/text/AttributeSet$ColorAttribute -javax/swing/text/StyleConstants$ParagraphConstants -javax/swing/text/AttributeSet$ParagraphAttribute -javax/swing/text/StyleContext$FontKey -javax/swing/text/SimpleAttributeSet -javax/swing/text/MutableAttributeSet -javax/swing/text/AttributeSet -javax/swing/text/SimpleAttributeSet$EmptyAttributeSet -javax/swing/text/StyleContext$NamedStyle -javax/swing/text/Style -javax/swing/text/SimpleAttributeSet$1 -javax/swing/text/StyleContext$SmallAttributeSet -javax/swing/text/AbstractDocument$BidiRootElement -javax/swing/text/AbstractDocument$BranchElement -javax/swing/text/AbstractDocument$AbstractElement -javax/swing/tree/TreeNode -javax/swing/text/AbstractDocument$1 -javax/swing/text/AbstractDocument$BidiElement -javax/swing/text/AbstractDocument$LeafElement -javax/swing/text/GapContent$StickyPosition -javax/swing/text/Position -javax/swing/text/StyleContext$KeyEnumeration -javax/swing/text/GapContent$InsertUndo -javax/swing/undo/AbstractUndoableEdit -javax/swing/undo/UndoableEdit -javax/swing/text/AbstractDocument$DefaultDocumentEvent -javax/swing/event/DocumentEvent -javax/swing/undo/CompoundEdit -javax/swing/event/DocumentEvent$EventType -javax/swing/text/Segment -java/text/CharacterIterator -javax/swing/text/Utilities -javax/swing/text/SegmentCache -javax/swing/text/SegmentCache$CachedSegment -javax/swing/event/UndoableEditEvent -javax/swing/text/AbstractDocument$ElementEdit -javax/swing/event/DocumentEvent$ElementChange -java/net/Socket -java/net/InetAddress -java/net/InetAddress$Cache -java/net/InetAddress$Cache$Type -java/net/InetAddressImplFactory -java/net/Inet4AddressImpl -java/net/InetAddressImpl -java/net/InetAddress$1 -sun/net/spi/nameservice/NameService -sun/net/util/IPAddressUtil -java/util/RandomAccessSubList -java/util/SubList -java/util/SubList$1 -java/util/AbstractList$ListItr -java/net/Inet4Address -java/net/InetSocketAddress -java/net/SocketAddress -java/net/SocksSocketImpl -java/net/SocksConsts -java/net/PlainSocketImpl -java/net/SocketImpl -java/net/SocketOptions -java/net/SocketException -java/net/SocksSocketImpl$5 -java/net/ProxySelector -sun/net/spi/DefaultProxySelector -sun/net/spi/DefaultProxySelector$1 -sun/net/NetProperties -sun/net/NetProperties$1 -sun/net/spi/DefaultProxySelector$NonProxyInfo -java/net/Inet6Address -java/net/URI -java/net/URI$Parser -java/net/Proxy -java/net/Proxy$Type -java/net/ConnectException -javax/swing/JMenu -javax/swing/MenuElement -javax/swing/JMenuItem -javax/swing/AbstractButton -java/awt/ItemSelectable -javax/swing/event/MenuListener -javax/swing/JCheckBoxMenuItem -javax/swing/Icon -javax/swing/JButton -java/awt/event/WindowListener -java/net/URLClassLoader$2 -javax/swing/ImageIcon -javax/swing/ImageIcon$1 -java/awt/MediaTracker -sun/misc/SoftCache$ValueCell -sun/awt/image/URLImageSource -sun/awt/image/InputStreamImageSource -sun/awt/image/ImageFetchable -sun/awt/image/ToolkitImage -java/awt/Image$1 -sun/awt/image/SurfaceManager$ImageAccessor -sun/awt/image/SurfaceManager -sun/awt/image/NativeLibLoader -java/awt/ImageMediaEntry -java/awt/MediaEntry -sun/awt/image/ImageRepresentation -java/awt/image/ImageConsumer -sun/awt/image/ImageWatched -sun/awt/image/ImageWatched$Link -sun/awt/image/ImageWatched$WeakLink -sun/awt/image/ImageConsumerQueue -sun/awt/image/ImageFetcher -sun/awt/image/FetcherInfo -sun/awt/image/ImageFetcher$1 -sun/awt/image/GifImageDecoder -sun/awt/image/ImageDecoder -sun/awt/image/GifFrame -java/awt/image/Raster -java/awt/image/DataBufferByte -java/awt/image/DataBuffer -java/awt/image/PixelInterleavedSampleModel -java/awt/image/ComponentSampleModel -java/awt/image/SampleModel -sun/awt/image/ByteInterleavedRaster -sun/awt/image/ByteComponentRaster -sun/awt/image/SunWritableRaster -java/awt/image/WritableRaster -java/awt/image/BufferedImage -java/awt/image/WritableRenderedImage -java/awt/image/RenderedImage -sun/awt/image/IntegerComponentRaster -sun/awt/image/BytePackedRaster +java/awt/ActiveEvent +java/awt/Adjustable +java/awt/AlphaComposite +java/awt/BasicStroke +java/awt/BorderLayout java/awt/Canvas -sun/font/FontDesignMetrics -sun/font/FontStrikeDesc -sun/font/CompositeStrike -sun/font/FontStrikeDisposer -sun/font/StrikeCache$SoftDisposerRef -sun/font/StrikeCache$DisposableStrike -sun/font/TrueTypeFont$TTDisposerRecord -sun/font/TrueTypeFont$1 -java/io/RandomAccessFile -java/nio/ByteBufferAsIntBufferB -java/nio/IntBuffer -sun/font/TrueTypeFont$DirectoryEntry -java/nio/ByteBufferAsShortBufferB -java/nio/ShortBuffer -sun/nio/cs/UTF_16 -sun/nio/cs/UTF_16$Decoder -sun/nio/cs/UnicodeDecoder -sun/font/FileFontStrike -sun/font/FileFont$FileFontDisposer -sun/font/TrueTypeGlyphMapper -sun/font/CMap -sun/font/CMap$NullCMapClass -sun/font/CMap$CMapFormat4 -java/nio/ByteBufferAsCharBufferB -sun/font/FontDesignMetrics$KeyReference -sun/awt/image/PNGImageDecoder -sun/awt/image/PNGFilterInputStream -java/util/zip/InflaterInputStream -java/util/zip/Inflater -sun/awt/EventQueueItem -sun/awt/SunToolkit$3 -sun/awt/X11/XExposeEvent -sun/awt/X11/ComponentAccessor -sun/awt/X11/ComponentAccessor$1 -sun/reflect/UnsafeBooleanFieldAccessorImpl -sun/awt/event/IgnorePaintEvent -java/awt/image/DataBufferInt -java/awt/image/SinglePixelPackedSampleModel -sun/awt/image/IntegerInterleavedRaster -sun/java2d/x11/X11RemoteOffScreenImage -sun/awt/image/RemoteOffScreenImage -sun/awt/image/OffScreenImage -sun/java2d/x11/X11RemoteOffScreenImage$X11RemoteSurfaceManager -sun/awt/image/OffScreenSurfaceManager -sun/awt/image/CachingSurfaceManager -sun/awt/image/RasterListener -sun/awt/image/BufImgSurfaceData -sun/java2d/opengl/GLXGraphicsConfig -sun/java2d/opengl/OGLGraphicsConfig -sun/java2d/x11/X11SurfaceData$X11PixmapSurfaceData -sun/awt/image/WritableRasterNative -sun/awt/image/DataBufferNative -sun/java2d/SurfaceManagerFactory -sun/java2d/x11/X11CachingSurfaceManager -sun/java2d/opengl/GLXSurfaceData -sun/java2d/opengl/OGLSurfaceData -sun/font/CompositeGlyphMapper -sun/java2d/loops/FontInfo -java/util/Date -sun/util/calendar/CalendarSystem -sun/util/calendar/Gregorian -sun/util/calendar/BaseCalendar -sun/util/calendar/AbstractCalendar -java/util/TimeZone -java/lang/InheritableThreadLocal -sun/util/calendar/ZoneInfo -sun/util/calendar/ZoneInfoFile -sun/util/calendar/ZoneInfoFile$1 -java/util/TimeZone$1 -sun/util/calendar/Gregorian$Date -sun/util/calendar/BaseCalendar$Date -sun/util/calendar/CalendarDate -sun/util/calendar/CalendarUtils -java/util/TimeZone$DisplayNames -sun/util/TimeZoneNameUtility -sun/util/resources/TimeZoneNames -sun/util/resources/TimeZoneNamesBundle -sun/util/resources/TimeZoneNames_en -java/util/spi/TimeZoneNameProvider -java/lang/ProcessBuilder -java/lang/ProcessImpl -java/lang/UNIXProcess -java/lang/Process -java/lang/UNIXProcess$Gate -java/lang/UNIXProcess$1 -java/lang/UNIXProcess$1$1 -java/lang/UNIXProcess$1$1$1 -java/net/ServerSocket -java/util/Random -java/util/concurrent/atomic/AtomicLong -java/lang/InternalError -java/io/StringReader -java/lang/SecurityException -java/io/FilterReader -java/lang/reflect/Proxy -java/lang/reflect/InvocationHandler -java/lang/NoSuchFieldException -java/lang/InstantiationException -java/lang/ArrayIndexOutOfBoundsException -java/lang/IndexOutOfBoundsException -javax/swing/JDialog -sun/awt/X11/XClipboard -sun/awt/datatransfer/SunClipboard +java/awt/CardLayout +java/awt/Color +java/awt/Component +java/awt/Component$1 +java/awt/Component$3 +java/awt/Component$AWTTreeLock +java/awt/Component$DummyRequestFocusController +java/awt/ComponentOrientation +java/awt/Composite +java/awt/Conditional +java/awt/Container +java/awt/Container$1 +java/awt/Container$EventTargetFilter +java/awt/Container$MouseEventTargetFilter +java/awt/ContainerOrderFocusTraversalPolicy +java/awt/Cursor +java/awt/Cursor$1 +java/awt/DefaultFocusTraversalPolicy +java/awt/DefaultKeyboardFocusManager +java/awt/DefaultKeyboardFocusManager$1 +java/awt/DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent +java/awt/DefaultKeyboardFocusManager$TypeAheadMarker +java/awt/Dialog +java/awt/Dialog$1 +java/awt/Dialog$3 +java/awt/Dialog$ModalExclusionType +java/awt/Dialog$ModalityType +java/awt/Dimension +java/awt/Event +java/awt/EventDispatchThread +java/awt/EventDispatchThread$1 +java/awt/EventDispatchThread$HierarchyEventFilter +java/awt/EventFilter +java/awt/EventFilter$FilterAction +java/awt/EventQueue +java/awt/EventQueue$1 +java/awt/EventQueue$2 +java/awt/EventQueue$3 +java/awt/EventQueue$4 +java/awt/EventQueue$5 +java/awt/FlowLayout +java/awt/FocusTraversalPolicy +java/awt/Font +java/awt/Font$FontAccessImpl +java/awt/FontMetrics +java/awt/Frame +java/awt/Frame$1 +java/awt/Graphics +java/awt/Graphics2D +java/awt/GraphicsCallback +java/awt/GraphicsCallback$PaintCallback +java/awt/GraphicsConfiguration +java/awt/GraphicsDevice +java/awt/GraphicsEnvironment +java/awt/GraphicsEnvironment$1 +java/awt/Image +java/awt/Image$1 +java/awt/ImageCapabilities +java/awt/ImageMediaEntry +java/awt/Insets +java/awt/ItemSelectable +java/awt/KeyEventDispatcher +java/awt/KeyEventPostProcessor +java/awt/KeyboardFocusManager +java/awt/KeyboardFocusManager$1 +java/awt/KeyboardFocusManager$2 +java/awt/KeyboardFocusManager$3 +java/awt/KeyboardFocusManager$HeavyweightFocusRequest +java/awt/KeyboardFocusManager$LightweightFocusRequest +java/awt/Label +java/awt/LayoutManager +java/awt/LayoutManager2 +java/awt/LightweightDispatcher +java/awt/LightweightDispatcher$1 +java/awt/LightweightDispatcher$2 +java/awt/MediaEntry +java/awt/MediaTracker +java/awt/MenuBar +java/awt/MenuComponent +java/awt/MenuContainer +java/awt/ModalEventFilter +java/awt/ModalEventFilter$1 +java/awt/ModalEventFilter$ApplicationModalEventFilter +java/awt/Paint +java/awt/Panel +java/awt/Point +java/awt/PrintGraphics +java/awt/Queue +java/awt/Rectangle +java/awt/RenderingHints +java/awt/RenderingHints$Key +java/awt/SecondaryLoop +java/awt/SentEvent +java/awt/SequencedEvent +java/awt/Shape +java/awt/SplashScreen +java/awt/Stroke +java/awt/SystemColor +java/awt/Toolkit +java/awt/Toolkit$1 +java/awt/Toolkit$2 +java/awt/Toolkit$3 +java/awt/Toolkit$4 +java/awt/Toolkit$5 +java/awt/Toolkit$DesktopPropertyChangeSupport +java/awt/Toolkit$SelectiveAWTEventListener +java/awt/Toolkit$ToolkitEventMulticaster +java/awt/Transparency +java/awt/TrayIcon +java/awt/VKCollection +java/awt/WaitDispatchSupport +java/awt/WaitDispatchSupport$1 +java/awt/WaitDispatchSupport$2 +java/awt/WaitDispatchSupport$5 +java/awt/Window +java/awt/Window$1 +java/awt/Window$1DisposeAction +java/awt/Window$Type +java/awt/Window$WindowDisposerRecord +java/awt/color/ColorSpace +java/awt/color/ICC_ColorSpace +java/awt/color/ICC_Profile +java/awt/color/ICC_Profile$1 +java/awt/color/ICC_ProfileRGB java/awt/datatransfer/Clipboard -java/awt/datatransfer/SystemFlavorMap +java/awt/datatransfer/ClipboardOwner +java/awt/datatransfer/DataFlavor java/awt/datatransfer/FlavorMap java/awt/datatransfer/FlavorTable -java/awt/datatransfer/SystemFlavorMap$1 -sun/net/ProgressMonitor -sun/net/DefaultProgressMeteringPolicy -sun/net/ProgressMeteringPolicy -java/awt/datatransfer/SystemFlavorMap$2 java/awt/datatransfer/MimeType -java/io/Externalizable java/awt/datatransfer/MimeTypeParameterList -sun/awt/datatransfer/DataTransferer -java/util/Collections$SynchronizedSet -java/util/Collections$SynchronizedCollection -java/awt/datatransfer/DataFlavor -java/awt/datatransfer/DataFlavor$1 -sun/awt/datatransfer/DataTransferer$CharsetComparator -sun/awt/datatransfer/DataTransferer$IndexedComparator -sun/nio/cs/UTF_16LE -sun/nio/cs/UTF_16BE -sun/awt/datatransfer/DataTransferer$DataFlavorComparator -java/rmi/Remote -sun/awt/datatransfer/DataTransferer$1 -sun/awt/X11/XDataTransferer -sun/awt/datatransfer/ToolkitThreadBlockedHandler -javax/imageio/ImageTypeSpecifier -sun/awt/X11/XSelection -sun/security/action/GetIntegerAction -sun/awt/X11/XSelection$IncrementalTransferHandler -sun/awt/X11/XSelection$SelectionEventHandler +java/awt/datatransfer/MimeTypeParseException +java/awt/datatransfer/SystemFlavorMap +java/awt/datatransfer/SystemFlavorMap$1 +java/awt/datatransfer/SystemFlavorMap$2 java/awt/datatransfer/Transferable +java/awt/dnd/DropTarget +java/awt/dnd/DropTargetContext +java/awt/dnd/DropTargetListener +java/awt/dnd/peer/DragSourceContextPeer +java/awt/dnd/peer/DropTargetPeer +java/awt/event/AWTEventListener +java/awt/event/AWTEventListenerProxy +java/awt/event/ActionEvent +java/awt/event/ActionListener +java/awt/event/AdjustmentEvent +java/awt/event/AdjustmentListener +java/awt/event/ComponentAdapter +java/awt/event/ComponentEvent +java/awt/event/ComponentListener +java/awt/event/ContainerEvent +java/awt/event/ContainerListener +java/awt/event/FocusAdapter +java/awt/event/FocusEvent +java/awt/event/FocusListener +java/awt/event/HierarchyBoundsListener +java/awt/event/HierarchyEvent +java/awt/event/HierarchyListener +java/awt/event/InputEvent +java/awt/event/InputEvent$1 +java/awt/event/InputMethodEvent +java/awt/event/InputMethodListener +java/awt/event/InvocationEvent +java/awt/event/ItemListener +java/awt/event/KeyAdapter +java/awt/event/KeyEvent +java/awt/event/KeyEvent$1 +java/awt/event/KeyListener +java/awt/event/MouseAdapter +java/awt/event/MouseEvent +java/awt/event/MouseListener +java/awt/event/MouseMotionAdapter +java/awt/event/MouseMotionListener +java/awt/event/MouseWheelEvent +java/awt/event/MouseWheelListener +java/awt/event/NativeLibLoader +java/awt/event/NativeLibLoader$1 +java/awt/event/PaintEvent +java/awt/event/TextListener +java/awt/event/WindowAdapter +java/awt/event/WindowEvent +java/awt/event/WindowFocusListener +java/awt/event/WindowListener +java/awt/event/WindowStateListener +java/awt/font/FontRenderContext +java/awt/font/GlyphVector +java/awt/font/LineMetrics +java/awt/font/TextAttribute +java/awt/geom/AffineTransform +java/awt/geom/Dimension2D +java/awt/geom/GeneralPath +java/awt/geom/Path2D +java/awt/geom/Path2D$Float +java/awt/geom/Point2D +java/awt/geom/Point2D$Double +java/awt/geom/Point2D$Float +java/awt/geom/Rectangle2D +java/awt/geom/Rectangle2D$Double +java/awt/geom/Rectangle2D$Float +java/awt/geom/RectangularShape +java/awt/im/InputContext +java/awt/im/InputMethodRequests +java/awt/im/spi/InputMethod +java/awt/im/spi/InputMethodContext +java/awt/im/spi/InputMethodDescriptor +java/awt/image/BufferStrategy +java/awt/image/BufferedImage +java/awt/image/BufferedImage$1 +java/awt/image/ColorModel +java/awt/image/ColorModel$1 +java/awt/image/ComponentSampleModel +java/awt/image/DataBuffer +java/awt/image/DataBuffer$1 +java/awt/image/DataBufferByte +java/awt/image/DataBufferInt +java/awt/image/DirectColorModel +java/awt/image/FilteredImageSource +java/awt/image/ImageConsumer +java/awt/image/ImageFilter +java/awt/image/ImageObserver +java/awt/image/ImageProducer +java/awt/image/IndexColorModel +java/awt/image/PackedColorModel +java/awt/image/PixelInterleavedSampleModel +java/awt/image/RGBImageFilter +java/awt/image/Raster +java/awt/image/RenderedImage +java/awt/image/SampleModel +java/awt/image/SinglePixelPackedSampleModel +java/awt/image/VolatileImage +java/awt/image/WritableRaster +java/awt/image/WritableRenderedImage +java/awt/peer/CanvasPeer +java/awt/peer/ComponentPeer +java/awt/peer/ContainerPeer +java/awt/peer/DialogPeer +java/awt/peer/FramePeer +java/awt/peer/KeyboardFocusManagerPeer +java/awt/peer/LabelPeer +java/awt/peer/LightweightPeer +java/awt/peer/PanelPeer +java/awt/peer/WindowPeer +java/awt/print/PrinterGraphics +java/beans/ChangeListenerMap +java/beans/PropertyChangeEvent +java/beans/PropertyChangeListener +java/beans/PropertyChangeListenerProxy +java/beans/PropertyChangeSupport +java/beans/PropertyChangeSupport$PropertyChangeListenerMap +java/io/Bits +java/io/BufferedInputStream +java/io/BufferedOutputStream +java/io/BufferedReader +java/io/BufferedWriter +java/io/ByteArrayInputStream +java/io/ByteArrayOutputStream +java/io/Closeable +java/io/DataInput +java/io/DataInputStream +java/io/DataOutput +java/io/DataOutputStream +java/io/DefaultFileSystem java/io/EOFException -java/util/Vector$1 -java/util/zip/ZipFile$1 -java/util/zip/ZipFile$2 -java/util/jar/JarFile$1 -java/util/PropertyResourceBundle -java/util/ResourceBundle$Control$1 -java/util/Hashtable$EntrySet +java/io/ExpiringCache +java/io/ExpiringCache$1 +java/io/ExpiringCache$Entry +java/io/Externalizable +java/io/File +java/io/File$PathStatus +java/io/FileDescriptor +java/io/FileDescriptor$1 +java/io/FileInputStream +java/io/FileInputStream$1 +java/io/FileNotFoundException +java/io/FileOutputStream +java/io/FileOutputStream$1 +java/io/FilePermission +java/io/FilePermission$1 +java/io/FilePermissionCollection +java/io/FileReader +java/io/FileSystem +java/io/FileWriter +java/io/FilenameFilter +java/io/FilterInputStream +java/io/FilterOutputStream +java/io/FilterReader +java/io/Flushable +java/io/IOException +java/io/InputStream +java/io/InputStreamReader +java/io/ObjectInput +java/io/ObjectInputStream +java/io/ObjectOutput +java/io/ObjectOutputStream +java/io/ObjectOutputStream$BlockDataOutputStream +java/io/ObjectOutputStream$HandleTable +java/io/ObjectOutputStream$ReplaceTable +java/io/ObjectStreamClass +java/io/ObjectStreamClass$2 +java/io/ObjectStreamClass$Caches +java/io/ObjectStreamClass$EntryFuture +java/io/ObjectStreamClass$FieldReflector +java/io/ObjectStreamClass$FieldReflectorKey +java/io/ObjectStreamClass$WeakClassKey +java/io/ObjectStreamConstants +java/io/ObjectStreamField +java/io/OutputStream +java/io/OutputStreamWriter +java/io/PrintStream +java/io/PrintWriter +java/io/RandomAccessFile +java/io/Reader +java/io/Serializable +java/io/StringReader +java/io/StringWriter +java/io/UnixFileSystem +java/io/UnsupportedEncodingException +java/io/Writer +java/lang/AbstractStringBuilder +java/lang/Appendable +java/lang/ApplicationShutdownHooks +java/lang/ApplicationShutdownHooks$1 +java/lang/ArithmeticException +java/lang/ArrayIndexOutOfBoundsException +java/lang/ArrayStoreException +java/lang/AutoCloseable +java/lang/Boolean +java/lang/BootstrapMethodError +java/lang/Byte +java/lang/CharSequence +java/lang/Character +java/lang/Character$CharacterCache +java/lang/CharacterData +java/lang/CharacterDataLatin1 +java/lang/Class +java/lang/Class$1 +java/lang/Class$3 +java/lang/Class$4 +java/lang/Class$AnnotationData +java/lang/Class$Atomic +java/lang/Class$ReflectionData +java/lang/ClassCastException +java/lang/ClassLoader +java/lang/ClassLoader$2 +java/lang/ClassLoader$3 +java/lang/ClassLoader$NativeLibrary +java/lang/ClassLoader$ParallelLoaders +java/lang/ClassLoaderHelper +java/lang/ClassNotFoundException +java/lang/ClassValue$ClassValueMap +java/lang/CloneNotSupportedException +java/lang/Cloneable +java/lang/Comparable +java/lang/Compiler +java/lang/Compiler$1 +java/lang/Double +java/lang/Enum +java/lang/Error +java/lang/Exception +java/lang/ExceptionInInitializerError +java/lang/Float java/lang/IllegalAccessError +java/lang/IllegalAccessException +java/lang/IllegalArgumentException +java/lang/IllegalMonitorStateException +java/lang/IllegalStateException +java/lang/IncompatibleClassChangeError +java/lang/IndexOutOfBoundsException +java/lang/InstantiationException +java/lang/Integer +java/lang/Integer$IntegerCache +java/lang/InternalError +java/lang/InterruptedException +java/lang/Iterable +java/lang/LinkageError +java/lang/Long +java/lang/Long$LongCache +java/lang/Math +java/lang/NoClassDefFoundError +java/lang/NoSuchFieldException +java/lang/NoSuchMethodError +java/lang/NoSuchMethodException +java/lang/NullPointerException +java/lang/Number +java/lang/NumberFormatException +java/lang/Object +java/lang/OutOfMemoryError +java/lang/Package +java/lang/Process +java/lang/ProcessBuilder +java/lang/ProcessBuilder$NullInputStream +java/lang/ProcessBuilder$NullOutputStream +java/lang/ProcessEnvironment +java/lang/ProcessEnvironment$ExternalData +java/lang/ProcessEnvironment$StringEnvironment +java/lang/ProcessEnvironment$Value +java/lang/ProcessEnvironment$Variable +java/lang/ProcessImpl +java/lang/Readable +java/lang/ReflectiveOperationException +java/lang/Runnable +java/lang/Runtime +java/lang/RuntimeException +java/lang/RuntimePermission +java/lang/SecurityException +java/lang/SecurityManager +java/lang/Short +java/lang/Short$ShortCache +java/lang/Shutdown +java/lang/Shutdown$Lock +java/lang/StackOverflowError +java/lang/StackTraceElement +java/lang/StrictMath +java/lang/String +java/lang/String$CaseInsensitiveComparator +java/lang/StringBuffer +java/lang/StringBuilder +java/lang/StringCoding +java/lang/StringCoding$StringDecoder +java/lang/StringCoding$StringEncoder +java/lang/StringIndexOutOfBoundsException +java/lang/System +java/lang/System$2 +java/lang/SystemClassLoaderAction +java/lang/Terminator +java/lang/Terminator$1 +java/lang/Thread +java/lang/Thread$UncaughtExceptionHandler +java/lang/ThreadDeath +java/lang/ThreadGroup +java/lang/ThreadLocal +java/lang/ThreadLocal$ThreadLocalMap +java/lang/ThreadLocal$ThreadLocalMap$Entry +java/lang/Throwable +java/lang/Throwable$PrintStreamOrWriter +java/lang/Throwable$WrappedPrintStream +java/lang/Throwable$WrappedPrintWriter +java/lang/UNIXProcess +java/lang/UNIXProcess$1 +java/lang/UNIXProcess$2 +java/lang/UNIXProcess$3 +java/lang/UNIXProcess$4 +java/lang/UNIXProcess$LaunchMechanism +java/lang/UNIXProcess$ProcessPipeInputStream +java/lang/UNIXProcess$ProcessPipeOutputStream +java/lang/UNIXProcess$ProcessReaperThreadFactory +java/lang/UNIXProcess$ProcessReaperThreadFactory$1 +java/lang/UnsatisfiedLinkError +java/lang/UnsupportedOperationException +java/lang/VirtualMachineError +java/lang/Void +java/lang/annotation/Annotation +java/lang/invoke/CallSite +java/lang/invoke/ConstantCallSite +java/lang/invoke/DirectMethodHandle +java/lang/invoke/Invokers +java/lang/invoke/LambdaForm +java/lang/invoke/LambdaForm$NamedFunction +java/lang/invoke/MagicLambdaImpl +java/lang/invoke/MemberName +java/lang/invoke/MemberName$Factory +java/lang/invoke/MethodHandle +java/lang/invoke/MethodHandleImpl +java/lang/invoke/MethodHandleNatives +java/lang/invoke/MethodHandleStatics +java/lang/invoke/MethodHandleStatics$1 +java/lang/invoke/MethodType +java/lang/invoke/MethodType$ConcurrentWeakInternSet +java/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry +java/lang/invoke/MethodTypeForm +java/lang/invoke/MutableCallSite +java/lang/invoke/VolatileCallSite +java/lang/ref/FinalReference +java/lang/ref/Finalizer +java/lang/ref/Finalizer$FinalizerThread +java/lang/ref/PhantomReference +java/lang/ref/Reference +java/lang/ref/Reference$Lock +java/lang/ref/Reference$ReferenceHandler +java/lang/ref/ReferenceQueue +java/lang/ref/ReferenceQueue$Lock +java/lang/ref/ReferenceQueue$Null +java/lang/ref/SoftReference +java/lang/ref/WeakReference +java/lang/reflect/AccessibleObject +java/lang/reflect/AnnotatedElement +java/lang/reflect/Array +java/lang/reflect/Constructor +java/lang/reflect/Executable +java/lang/reflect/Field +java/lang/reflect/GenericDeclaration +java/lang/reflect/InvocationHandler +java/lang/reflect/InvocationTargetException +java/lang/reflect/Member +java/lang/reflect/Method +java/lang/reflect/Modifier +java/lang/reflect/Parameter +java/lang/reflect/Proxy +java/lang/reflect/Proxy$KeyFactory +java/lang/reflect/Proxy$ProxyClassFactory +java/lang/reflect/ReflectAccess +java/lang/reflect/ReflectPermission +java/lang/reflect/Type +java/lang/reflect/WeakCache +java/net/AbstractPlainSocketImpl +java/net/AbstractPlainSocketImpl$1 +java/net/Authenticator +java/net/ConnectException +java/net/DefaultInterface +java/net/HttpURLConnection +java/net/Inet4Address +java/net/Inet6Address +java/net/Inet6Address$Inet6AddressHolder +java/net/Inet6AddressImpl +java/net/InetAddress +java/net/InetAddress$1 +java/net/InetAddress$2 +java/net/InetAddress$Cache +java/net/InetAddress$Cache$Type +java/net/InetAddress$InetAddressHolder +java/net/InetAddressImpl +java/net/InetAddressImplFactory +java/net/InetSocketAddress +java/net/InetSocketAddress$InetSocketAddressHolder +java/net/InterfaceAddress +java/net/JarURLConnection +java/net/MalformedURLException +java/net/NetworkInterface +java/net/NetworkInterface$1 +java/net/NetworkInterface$2 +java/net/Parts +java/net/PlainSocketImpl +java/net/Proxy +java/net/Proxy$Type +java/net/ProxySelector +java/net/ServerSocket +java/net/Socket +java/net/SocketAddress +java/net/SocketException +java/net/SocketImpl +java/net/SocketOptions +java/net/SocksConsts +java/net/SocksSocketImpl +java/net/SocksSocketImpl$3 +java/net/URI +java/net/URI$Parser +java/net/URL +java/net/URLClassLoader +java/net/URLClassLoader$1 +java/net/URLClassLoader$2 +java/net/URLClassLoader$3 +java/net/URLClassLoader$3$1 +java/net/URLClassLoader$7 +java/net/URLConnection +java/net/URLStreamHandler +java/net/URLStreamHandlerFactory +java/nio/Bits +java/nio/Bits$1 +java/nio/Buffer +java/nio/ByteBuffer +java/nio/ByteBufferAsIntBufferB +java/nio/ByteBufferAsShortBufferB +java/nio/ByteOrder +java/nio/CharBuffer +java/nio/DirectByteBuffer +java/nio/DirectByteBuffer$Deallocator +java/nio/DirectLongBufferU +java/nio/HeapByteBuffer +java/nio/HeapCharBuffer +java/nio/IntBuffer +java/nio/LongBuffer +java/nio/MappedByteBuffer +java/nio/ShortBuffer +java/nio/channels/ByteChannel +java/nio/channels/Channel +java/nio/channels/FileChannel +java/nio/channels/GatheringByteChannel +java/nio/channels/InterruptibleChannel +java/nio/channels/ReadableByteChannel +java/nio/channels/ScatteringByteChannel +java/nio/channels/SeekableByteChannel +java/nio/channels/WritableByteChannel +java/nio/channels/spi/AbstractInterruptibleChannel +java/nio/channels/spi/AbstractInterruptibleChannel$1 +java/nio/charset/Charset +java/nio/charset/CharsetDecoder +java/nio/charset/CharsetEncoder +java/nio/charset/CoderResult +java/nio/charset/CoderResult$1 +java/nio/charset/CoderResult$2 +java/nio/charset/CoderResult$Cache +java/nio/charset/CodingErrorAction +java/nio/charset/StandardCharsets +java/nio/charset/spi/CharsetProvider +java/nio/file/Path +java/nio/file/Watchable +java/nio/file/attribute/FileAttribute +java/rmi/MarshalledObject +java/rmi/Remote +java/security/AccessControlContext +java/security/AccessController +java/security/AllPermission +java/security/AllPermissionCollection +java/security/BasicPermission +java/security/BasicPermissionCollection +java/security/CodeSigner +java/security/CodeSource +java/security/Guard +java/security/Permission +java/security/PermissionCollection +java/security/Permissions +java/security/Principal +java/security/PrivilegedAction +java/security/PrivilegedActionException +java/security/PrivilegedExceptionAction +java/security/ProtectionDomain +java/security/ProtectionDomain$1 +java/security/ProtectionDomain$3 +java/security/ProtectionDomain$Key +java/security/SecureClassLoader +java/security/UnresolvedPermission +java/security/cert/Certificate +java/text/AttributedCharacterIterator +java/text/AttributedCharacterIterator$Attribute +java/text/AttributedString +java/text/AttributedString$AttributedStringIterator +java/text/CharacterIterator +java/text/FieldPosition +java/text/Format +java/text/Format$Field java/text/MessageFormat java/text/MessageFormat$Field -java/text/Format$Field -java/lang/CloneNotSupportedException -sun/reflect/MethodAccessorGenerator -sun/reflect/AccessorGenerator -sun/reflect/ClassFileConstants -java/lang/Void -sun/reflect/ByteVectorFactory -sun/reflect/ByteVectorImpl -sun/reflect/ByteVector -sun/reflect/ClassFileAssembler -sun/reflect/UTF8 -sun/reflect/Label -sun/reflect/Label$PatchInfo -sun/reflect/MethodAccessorGenerator$1 -sun/reflect/ClassDefiner -sun/reflect/ClassDefiner$1 -sun/reflect/BootstrapConstructorAccessorImpl -java/awt/event/ActionListener +java/text/spi/BreakIteratorProvider +java/text/spi/CollatorProvider +java/text/spi/DateFormatProvider +java/text/spi/DateFormatSymbolsProvider +java/text/spi/DecimalFormatSymbolsProvider +java/text/spi/NumberFormatProvider +java/util/AbstractCollection +java/util/AbstractList +java/util/AbstractList$Itr +java/util/AbstractMap +java/util/AbstractQueue +java/util/AbstractSequentialList +java/util/AbstractSet +java/util/ArrayDeque +java/util/ArrayList +java/util/ArrayList$Itr +java/util/ArrayList$ListItr +java/util/ArrayList$SubList +java/util/ArrayList$SubList$1 +java/util/Arrays +java/util/Arrays$ArrayList +java/util/Arrays$LegacyMergeSort +java/util/BitSet +java/util/Collection +java/util/Collections +java/util/Collections$EmptyEnumeration +java/util/Collections$EmptyList +java/util/Collections$EmptyMap +java/util/Collections$EmptySet +java/util/Collections$SetFromMap +java/util/Collections$SynchronizedCollection +java/util/Collections$SynchronizedMap +java/util/Collections$SynchronizedSet +java/util/Collections$UnmodifiableCollection +java/util/Collections$UnmodifiableCollection$1 +java/util/Collections$UnmodifiableList +java/util/Collections$UnmodifiableMap +java/util/Collections$UnmodifiableRandomAccessList +java/util/Collections$UnmodifiableSet +java/util/Collections$UnmodifiableSortedSet +java/util/ComparableTimSort +java/util/Comparator +java/util/Date +java/util/Deque +java/util/Dictionary +java/util/Enumeration +java/util/EventListener +java/util/EventListenerProxy +java/util/EventObject +java/util/HashMap +java/util/HashMap$EntryIterator +java/util/HashMap$EntrySet +java/util/HashMap$HashIterator +java/util/HashMap$KeyIterator +java/util/HashMap$KeySet +java/util/HashMap$Node +java/util/HashMap$TreeNode +java/util/HashMap$ValueIterator +java/util/HashMap$Values +java/util/HashSet +java/util/Hashtable +java/util/Hashtable$Entry +java/util/Hashtable$EntrySet +java/util/Hashtable$Enumerator +java/util/Hashtable$ValueCollection +java/util/IdentityHashMap +java/util/IdentityHashMap$IdentityHashMapIterator +java/util/IdentityHashMap$KeyIterator +java/util/IdentityHashMap$KeySet +java/util/Iterator +java/util/LinkedHashMap +java/util/LinkedHashMap$Entry +java/util/LinkedHashMap$LinkedEntryIterator +java/util/LinkedHashMap$LinkedEntrySet +java/util/LinkedHashMap$LinkedHashIterator +java/util/LinkedHashMap$LinkedKeyIterator +java/util/LinkedHashMap$LinkedKeySet +java/util/LinkedHashSet +java/util/LinkedList +java/util/LinkedList$ListItr +java/util/LinkedList$Node +java/util/List +java/util/ListIterator +java/util/ListResourceBundle +java/util/Locale +java/util/Locale$1 +java/util/Locale$Cache +java/util/Locale$Category +java/util/Locale$LocaleKey +java/util/Map +java/util/Map$Entry +java/util/MissingResourceException +java/util/NavigableMap +java/util/NavigableSet +java/util/Objects +java/util/PriorityQueue +java/util/Properties +java/util/Properties$LineReader +java/util/PropertyResourceBundle +java/util/Queue +java/util/Random +java/util/RandomAccess +java/util/ResourceBundle +java/util/ResourceBundle$1 +java/util/ResourceBundle$BundleReference +java/util/ResourceBundle$CacheKey +java/util/ResourceBundle$CacheKeyReference +java/util/ResourceBundle$Control +java/util/ResourceBundle$Control$1 +java/util/ResourceBundle$Control$CandidateListCache +java/util/ResourceBundle$LoaderReference +java/util/ResourceBundle$RBClassLoader +java/util/ResourceBundle$RBClassLoader$1 +java/util/ResourceBundle$SingleFormatControl +java/util/ServiceLoader +java/util/ServiceLoader$1 +java/util/ServiceLoader$LazyIterator +java/util/Set +java/util/SortedMap +java/util/SortedSet +java/util/Stack +java/util/StringTokenizer +java/util/TimSort +java/util/TimeZone +java/util/TimeZone$1 +java/util/TreeMap +java/util/TreeMap$Entry +java/util/TreeMap$KeyIterator +java/util/TreeMap$KeySet +java/util/TreeMap$PrivateEntryIterator +java/util/TreeSet +java/util/Vector +java/util/Vector$1 +java/util/Vector$Itr +java/util/Vector$ListItr +java/util/WeakHashMap +java/util/WeakHashMap$Entry +java/util/WeakHashMap$HashIterator +java/util/WeakHashMap$KeyIterator +java/util/WeakHashMap$KeySet +java/util/concurrent/AbstractExecutorService +java/util/concurrent/BlockingQueue +java/util/concurrent/ConcurrentHashMap +java/util/concurrent/ConcurrentHashMap$BaseIterator +java/util/concurrent/ConcurrentHashMap$CollectionView +java/util/concurrent/ConcurrentHashMap$CounterCell +java/util/concurrent/ConcurrentHashMap$EntrySetView +java/util/concurrent/ConcurrentHashMap$ForwardingNode +java/util/concurrent/ConcurrentHashMap$KeyIterator +java/util/concurrent/ConcurrentHashMap$KeySetView +java/util/concurrent/ConcurrentHashMap$Node +java/util/concurrent/ConcurrentHashMap$Segment +java/util/concurrent/ConcurrentHashMap$Traverser +java/util/concurrent/ConcurrentHashMap$ValuesView +java/util/concurrent/ConcurrentMap +java/util/concurrent/CopyOnWriteArrayList +java/util/concurrent/DelayQueue +java/util/concurrent/Delayed +java/util/concurrent/Executor +java/util/concurrent/ExecutorService +java/util/concurrent/Executors +java/util/concurrent/RejectedExecutionHandler +java/util/concurrent/SynchronousQueue +java/util/concurrent/SynchronousQueue$TransferStack +java/util/concurrent/SynchronousQueue$TransferStack$SNode +java/util/concurrent/SynchronousQueue$Transferer +java/util/concurrent/ThreadFactory +java/util/concurrent/ThreadPoolExecutor +java/util/concurrent/ThreadPoolExecutor$AbortPolicy +java/util/concurrent/ThreadPoolExecutor$Worker +java/util/concurrent/TimeUnit +java/util/concurrent/TimeUnit$1 +java/util/concurrent/TimeUnit$2 +java/util/concurrent/TimeUnit$3 +java/util/concurrent/TimeUnit$4 +java/util/concurrent/TimeUnit$5 +java/util/concurrent/TimeUnit$6 +java/util/concurrent/TimeUnit$7 +java/util/concurrent/atomic/AtomicBoolean +java/util/concurrent/atomic/AtomicInteger +java/util/concurrent/atomic/AtomicLong +java/util/concurrent/atomic/AtomicReferenceFieldUpdater +java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl +java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1 +java/util/concurrent/locks/AbstractOwnableSynchronizer +java/util/concurrent/locks/AbstractQueuedSynchronizer +java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject +java/util/concurrent/locks/AbstractQueuedSynchronizer$Node +java/util/concurrent/locks/Condition +java/util/concurrent/locks/Lock +java/util/concurrent/locks/LockSupport +java/util/concurrent/locks/ReadWriteLock +java/util/concurrent/locks/ReentrantLock +java/util/concurrent/locks/ReentrantLock$NonfairSync +java/util/concurrent/locks/ReentrantLock$Sync +java/util/concurrent/locks/ReentrantReadWriteLock +java/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync +java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock +java/util/concurrent/locks/ReentrantReadWriteLock$Sync +java/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter +java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock +java/util/function/BiFunction +java/util/jar/Attributes +java/util/jar/Attributes$Name +java/util/jar/JarEntry +java/util/jar/JarFile +java/util/jar/JarFile$JarEntryIterator +java/util/jar/JarFile$JarFileEntry +java/util/jar/JarVerifier +java/util/jar/JarVerifier$3 +java/util/jar/JavaUtilJarAccessImpl +java/util/jar/Manifest +java/util/jar/Manifest$FastInputStream +java/util/logging/Handler +java/util/logging/Level +java/util/logging/Level$KnownLevel +java/util/logging/LogManager +java/util/logging/LogManager$1 +java/util/logging/LogManager$2 +java/util/logging/LogManager$3 +java/util/logging/LogManager$5 +java/util/logging/LogManager$Cleaner +java/util/logging/LogManager$LogNode +java/util/logging/LogManager$LoggerContext +java/util/logging/LogManager$LoggerContext$1 +java/util/logging/LogManager$LoggerWeakRef +java/util/logging/LogManager$RootLogger +java/util/logging/LogManager$SystemLoggerContext +java/util/logging/Logger +java/util/logging/Logger$1 +java/util/logging/LoggingPermission +java/util/logging/LoggingProxyImpl +java/util/spi/CalendarDataProvider +java/util/spi/CurrencyNameProvider +java/util/spi/LocaleNameProvider +java/util/spi/LocaleServiceProvider +java/util/spi/ResourceBundleControlProvider +java/util/spi/TimeZoneNameProvider +java/util/zip/CRC32 +java/util/zip/Checksum +java/util/zip/Inflater +java/util/zip/InflaterInputStream +java/util/zip/ZStreamRef +java/util/zip/ZipCoder +java/util/zip/ZipConstants +java/util/zip/ZipEntry +java/util/zip/ZipException +java/util/zip/ZipFile +java/util/zip/ZipFile$1 +java/util/zip/ZipFile$ZipEntryIterator +java/util/zip/ZipFile$ZipFileInflaterInputStream +java/util/zip/ZipFile$ZipFileInputStream +java/util/zip/ZipUtils +javax/accessibility/Accessible +javax/accessibility/AccessibleContext +javax/swing/AbstractAction +javax/swing/AbstractButton +javax/swing/AbstractButton$Handler +javax/swing/AbstractListModel +javax/swing/Action +javax/swing/ActionMap +javax/swing/AncestorNotifier +javax/swing/ArrayTable +javax/swing/Autoscroller +javax/swing/BorderFactory +javax/swing/BoundedRangeModel +javax/swing/Box +javax/swing/Box$Filler +javax/swing/BoxLayout +javax/swing/ButtonGroup +javax/swing/ButtonModel +javax/swing/CellRendererPane +javax/swing/ClientPropertyKey +javax/swing/ClientPropertyKey$1 +javax/swing/ComboBoxEditor +javax/swing/ComboBoxModel +javax/swing/ComponentInputMap +javax/swing/DefaultBoundedRangeModel +javax/swing/DefaultButtonModel +javax/swing/DefaultComboBoxModel +javax/swing/DefaultListCellRenderer +javax/swing/DefaultListCellRenderer$UIResource +javax/swing/DefaultListSelectionModel +javax/swing/DefaultSingleSelectionModel +javax/swing/DropMode +javax/swing/FocusManager +javax/swing/GrayFilter +javax/swing/Icon +javax/swing/ImageIcon +javax/swing/ImageIcon$1 +javax/swing/ImageIcon$2 +javax/swing/ImageIcon$2$1 +javax/swing/ImageIcon$3 +javax/swing/InputMap +javax/swing/InternalFrameFocusTraversalPolicy +javax/swing/JButton +javax/swing/JCheckBox +javax/swing/JCheckBoxMenuItem +javax/swing/JComboBox +javax/swing/JComboBox$1 +javax/swing/JComboBox$KeySelectionManager +javax/swing/JComponent +javax/swing/JComponent$1 +javax/swing/JComponent$2 +javax/swing/JDialog +javax/swing/JEditorPane +javax/swing/JFrame +javax/swing/JInternalFrame +javax/swing/JLabel +javax/swing/JLayer +javax/swing/JLayeredPane +javax/swing/JList +javax/swing/JMenu +javax/swing/JMenu$MenuChangeListener +javax/swing/JMenu$WinListener +javax/swing/JMenuBar +javax/swing/JMenuItem +javax/swing/JMenuItem$MenuItemFocusListener +javax/swing/JPanel +javax/swing/JPasswordField +javax/swing/JPopupMenu +javax/swing/JPopupMenu$Separator +javax/swing/JRadioButton +javax/swing/JRadioButtonMenuItem +javax/swing/JRootPane +javax/swing/JRootPane$1 +javax/swing/JRootPane$RootLayout +javax/swing/JScrollBar +javax/swing/JScrollBar$ModelListener +javax/swing/JScrollPane +javax/swing/JScrollPane$ScrollBar +javax/swing/JSeparator +javax/swing/JSplitPane +javax/swing/JTextArea +javax/swing/JTextField +javax/swing/JTextField$NotifyAction +javax/swing/JTextField$ScrollRepainter +javax/swing/JToggleButton +javax/swing/JToggleButton$ToggleButtonModel +javax/swing/JToolBar +javax/swing/JToolBar$DefaultToolBarLayout +javax/swing/JToolBar$Separator +javax/swing/JViewport +javax/swing/JViewport$ViewListener +javax/swing/JWindow +javax/swing/KeyStroke +javax/swing/KeyboardManager +javax/swing/KeyboardManager$ComponentKeyStrokePair +javax/swing/LayoutComparator +javax/swing/LayoutFocusTraversalPolicy +javax/swing/ListCellRenderer +javax/swing/ListModel +javax/swing/ListSelectionModel +javax/swing/LookAndFeel +javax/swing/MenuElement +javax/swing/MenuSelectionManager +javax/swing/MultiUIDefaults +javax/swing/MutableComboBoxModel +javax/swing/PopupFactory +javax/swing/RepaintManager +javax/swing/RepaintManager$2 +javax/swing/RepaintManager$3 +javax/swing/RepaintManager$DisplayChangedHandler +javax/swing/RepaintManager$PaintManager +javax/swing/RepaintManager$ProcessingRunnable +javax/swing/RootPaneContainer +javax/swing/ScrollPaneConstants +javax/swing/ScrollPaneLayout +javax/swing/ScrollPaneLayout$UIResource +javax/swing/Scrollable +javax/swing/SingleSelectionModel +javax/swing/SizeRequirements +javax/swing/SortingFocusTraversalPolicy +javax/swing/SwingConstants +javax/swing/SwingContainerOrderFocusTraversalPolicy +javax/swing/SwingDefaultFocusTraversalPolicy +javax/swing/SwingHeavyWeight +javax/swing/SwingPaintEventDispatcher +javax/swing/SwingUtilities +javax/swing/SwingUtilities$SharedOwnerFrame javax/swing/Timer javax/swing/Timer$DoPostEvent javax/swing/TimerQueue javax/swing/TimerQueue$1 +javax/swing/TimerQueue$DelayedTimer javax/swing/ToolTipManager -java/awt/event/MouseAdapter +javax/swing/ToolTipManager$AccessibilityKeyListener +javax/swing/ToolTipManager$MoveBeforeEnterListener javax/swing/ToolTipManager$insideTimerAction javax/swing/ToolTipManager$outsideTimerAction javax/swing/ToolTipManager$stillInsideTimerAction -javax/swing/ToolTipManager$Actions -sun/swing/UIAction -javax/swing/Action -javax/swing/ToolTipManager$MoveBeforeEnterListener -java/awt/event/MouseMotionAdapter -java/util/Hashtable$ValueCollection -javax/swing/event/CaretListener -javax/swing/JToolBar -javax/swing/JSplitPane -javax/swing/border/Border -javax/swing/JToggleButton -javax/swing/border/EmptyBorder +javax/swing/TransferHandler +javax/swing/TransferHandler$DropHandler +javax/swing/TransferHandler$HasGetTransferHandler +javax/swing/TransferHandler$SwingDropTarget +javax/swing/TransferHandler$TransferAction +javax/swing/TransferHandler$TransferAction$1 +javax/swing/TransferHandler$TransferAction$2 +javax/swing/TransferHandler$TransferSupport +javax/swing/UIDefaults +javax/swing/UIDefaults$ActiveValue +javax/swing/UIDefaults$LazyInputMap +javax/swing/UIDefaults$LazyValue +javax/swing/UIDefaults$TextAndMnemonicHashMap +javax/swing/UIManager +javax/swing/UIManager$1 +javax/swing/UIManager$2 +javax/swing/UIManager$LAFState +javax/swing/UIManager$LookAndFeelInfo +javax/swing/ViewportLayout +javax/swing/WindowConstants javax/swing/border/AbstractBorder -javax/swing/DefaultButtonModel -javax/swing/ButtonModel -javax/swing/AbstractButton$Handler -javax/swing/event/ChangeListener -java/awt/event/ItemListener -javax/swing/plaf/metal/MetalButtonUI -javax/swing/plaf/basic/BasicButtonUI -javax/swing/plaf/ButtonUI -javax/swing/plaf/metal/MetalBorders -javax/swing/plaf/BorderUIResource$CompoundBorderUIResource +javax/swing/border/BevelBorder +javax/swing/border/Border javax/swing/border/CompoundBorder -javax/swing/plaf/metal/MetalBorders$ButtonBorder -javax/swing/plaf/basic/BasicBorders$MarginBorder -javax/swing/plaf/basic/BasicButtonListener -java/awt/AWTEventMulticaster -java/awt/event/WindowFocusListener -java/awt/event/WindowStateListener -java/awt/event/AdjustmentListener -java/awt/event/TextListener +javax/swing/border/EmptyBorder +javax/swing/border/EtchedBorder +javax/swing/border/LineBorder +javax/swing/border/MatteBorder +javax/swing/event/AncestorEvent javax/swing/event/AncestorListener -java/beans/VetoableChangeListener -javax/swing/ButtonGroup -javax/swing/JToggleButton$ToggleButtonModel -javax/swing/plaf/metal/MetalToggleButtonUI -javax/swing/plaf/basic/BasicToggleButtonUI -javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder -java/awt/CardLayout -javax/swing/Box -javax/swing/plaf/metal/MetalBorders$TextFieldBorder -javax/swing/plaf/metal/MetalBorders$Flush3DBorder -javax/swing/BoxLayout -javax/swing/JMenuBar -javax/swing/DefaultSingleSelectionModel -javax/swing/SingleSelectionModel -javax/swing/plaf/basic/BasicMenuBarUI -javax/swing/plaf/MenuBarUI -javax/swing/plaf/basic/DefaultMenuLayout -javax/swing/plaf/metal/MetalBorders$MenuBarBorder -javax/swing/plaf/basic/BasicMenuBarUI$Handler -javax/swing/KeyboardManager -javax/swing/event/MenuEvent -javax/swing/JMenu$MenuChangeListener -javax/swing/JMenuItem$MenuItemFocusListener -javax/swing/plaf/basic/BasicMenuUI -javax/swing/plaf/basic/BasicMenuItemUI -javax/swing/plaf/MenuItemUI -javax/swing/plaf/metal/MetalBorders$MenuItemBorder -javax/swing/plaf/metal/MetalIconFactory -javax/swing/plaf/metal/MetalIconFactory$MenuArrowIcon -javax/swing/plaf/basic/BasicMenuUI$Handler -javax/swing/event/MenuKeyListener -javax/swing/plaf/basic/BasicMenuItemUI$Handler -javax/swing/event/MenuDragMouseListener -javax/swing/event/MouseInputListener +javax/swing/event/CaretEvent +javax/swing/event/CaretListener javax/swing/event/ChangeEvent -java/awt/event/ContainerEvent -javax/swing/plaf/metal/MetalIconFactory$MenuItemArrowIcon -javax/swing/JPopupMenu -javax/swing/plaf/basic/BasicPopupMenuUI -javax/swing/plaf/PopupMenuUI -javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper -java/awt/event/AWTEventListenerProxy -java/awt/Toolkit$SelectiveAWTEventListener -java/awt/Toolkit$ToolkitEventMulticaster -javax/swing/plaf/basic/BasicLookAndFeel$1 -javax/swing/plaf/metal/MetalBorders$PopupMenuBorder -javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener +javax/swing/event/ChangeListener +javax/swing/event/DocumentEvent +javax/swing/event/DocumentEvent$ElementChange +javax/swing/event/DocumentEvent$EventType +javax/swing/event/DocumentListener +javax/swing/event/EventListenerList +javax/swing/event/ListDataListener +javax/swing/event/ListSelectionListener +javax/swing/event/MenuDragMouseListener +javax/swing/event/MenuEvent +javax/swing/event/MenuKeyListener +javax/swing/event/MenuListener +javax/swing/event/MouseInputAdapter +javax/swing/event/MouseInputListener javax/swing/event/PopupMenuListener +javax/swing/event/UndoableEditEvent +javax/swing/event/UndoableEditListener +javax/swing/plaf/ActionMapUIResource +javax/swing/plaf/BorderUIResource +javax/swing/plaf/BorderUIResource$EmptyBorderUIResource +javax/swing/plaf/BorderUIResource$LineBorderUIResource +javax/swing/plaf/ButtonUI +javax/swing/plaf/ColorUIResource +javax/swing/plaf/ComboBoxUI +javax/swing/plaf/ComponentInputMapUIResource +javax/swing/plaf/ComponentUI +javax/swing/plaf/DimensionUIResource +javax/swing/plaf/FontUIResource +javax/swing/plaf/IconUIResource +javax/swing/plaf/InputMapUIResource +javax/swing/plaf/InsetsUIResource +javax/swing/plaf/LabelUI +javax/swing/plaf/ListUI +javax/swing/plaf/MenuBarUI +javax/swing/plaf/MenuItemUI +javax/swing/plaf/PanelUI +javax/swing/plaf/PopupMenuUI +javax/swing/plaf/RootPaneUI +javax/swing/plaf/ScrollBarUI +javax/swing/plaf/ScrollPaneUI +javax/swing/plaf/SeparatorUI +javax/swing/plaf/TextUI +javax/swing/plaf/ToolBarUI +javax/swing/plaf/UIResource +javax/swing/plaf/ViewportUI +javax/swing/plaf/basic/BasicBorders$ButtonBorder +javax/swing/plaf/basic/BasicBorders$MarginBorder +javax/swing/plaf/basic/BasicBorders$RadioButtonBorder +javax/swing/plaf/basic/BasicBorders$RolloverButtonBorder +javax/swing/plaf/basic/BasicBorders$RolloverMarginBorder +javax/swing/plaf/basic/BasicButtonListener +javax/swing/plaf/basic/BasicButtonUI +javax/swing/plaf/basic/BasicComboBoxEditor +javax/swing/plaf/basic/BasicComboBoxEditor$BorderlessTextField +javax/swing/plaf/basic/BasicComboBoxEditor$UIResource +javax/swing/plaf/basic/BasicComboBoxUI +javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager +javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager +javax/swing/plaf/basic/BasicComboBoxUI$FocusHandler +javax/swing/plaf/basic/BasicComboBoxUI$Handler +javax/swing/plaf/basic/BasicComboPopup +javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass +javax/swing/plaf/basic/BasicComboPopup$Handler +javax/swing/plaf/basic/BasicGraphicsUtils +javax/swing/plaf/basic/BasicHTML +javax/swing/plaf/basic/BasicIconFactory +javax/swing/plaf/basic/BasicIconFactory$MenuItemArrowIcon +javax/swing/plaf/basic/BasicIconFactory$MenuItemCheckIcon +javax/swing/plaf/basic/BasicLabelUI +javax/swing/plaf/basic/BasicListUI +javax/swing/plaf/basic/BasicListUI$FocusHandler +javax/swing/plaf/basic/BasicListUI$Handler +javax/swing/plaf/basic/BasicListUI$ListTransferHandler +javax/swing/plaf/basic/BasicListUI$MouseInputHandler +javax/swing/plaf/basic/BasicListUI$PropertyChangeHandler +javax/swing/plaf/basic/BasicLookAndFeel +javax/swing/plaf/basic/BasicLookAndFeel$1 +javax/swing/plaf/basic/BasicLookAndFeel$2 +javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper +javax/swing/plaf/basic/BasicMenuBarUI +javax/swing/plaf/basic/BasicMenuBarUI$Handler +javax/swing/plaf/basic/BasicMenuItemUI +javax/swing/plaf/basic/BasicMenuItemUI$Handler +javax/swing/plaf/basic/BasicMenuUI +javax/swing/plaf/basic/BasicMenuUI$ChangeHandler +javax/swing/plaf/basic/BasicMenuUI$Handler +javax/swing/plaf/basic/BasicMenuUI$MouseInputHandler +javax/swing/plaf/basic/BasicPanelUI +javax/swing/plaf/basic/BasicPopupMenuUI javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener -javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber -javax/swing/MenuSelectionManager +javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper$1 -java/awt/event/FocusAdapter -javax/swing/JMenu$WinListener -java/awt/event/WindowAdapter -javax/swing/JPopupMenu$Separator -javax/swing/JSeparator -javax/swing/plaf/metal/MetalPopupMenuSeparatorUI -javax/swing/plaf/metal/MetalSeparatorUI -javax/swing/plaf/basic/BasicSeparatorUI -javax/swing/plaf/SeparatorUI -javax/swing/JComboBox -javax/swing/event/ListDataListener -javax/swing/event/CaretEvent -javax/swing/text/TabExpander -javax/swing/JScrollBar -java/awt/Adjustable -javax/swing/event/MouseInputAdapter -javax/swing/JScrollBar$ModelListener -javax/swing/DefaultBoundedRangeModel -javax/swing/BoundedRangeModel -javax/swing/plaf/metal/MetalScrollBarUI -javax/swing/plaf/basic/BasicScrollBarUI -javax/swing/plaf/ScrollBarUI -javax/swing/plaf/metal/MetalBumps -javax/swing/plaf/metal/MetalScrollButton -javax/swing/plaf/basic/BasicArrowButton -javax/swing/plaf/basic/BasicScrollBarUI$TrackListener -javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener -javax/swing/plaf/basic/BasicScrollBarUI$ModelListener -javax/swing/plaf/metal/MetalScrollBarUI$ScrollBarListener -javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler -javax/swing/plaf/basic/BasicScrollBarUI$Handler -javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener -javax/swing/CellRendererPane -java/util/HashMap$EntryIterator -javax/swing/border/MatteBorder -sun/font/StandardGlyphVector -java/awt/font/GlyphVector -sun/font/StandardGlyphVector$GlyphStrike -sun/font/CoreMetrics -sun/font/FontLineMetrics -java/awt/font/LineMetrics -javax/swing/ComboBoxModel -javax/swing/ListModel -javax/swing/ListCellRenderer -javax/swing/DefaultComboBoxModel -javax/swing/MutableComboBoxModel -javax/swing/AbstractListModel -javax/swing/JComboBox$1 -javax/swing/AncestorNotifier -javax/swing/plaf/metal/MetalComboBoxUI -javax/swing/plaf/basic/BasicComboBoxUI -javax/swing/plaf/ComboBoxUI -javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager -javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager -javax/swing/plaf/basic/BasicComboPopup -javax/swing/plaf/basic/ComboPopup -javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass -javax/swing/border/LineBorder -javax/swing/plaf/basic/BasicComboPopup$1 -javax/swing/JList -javax/swing/DropMode -javax/swing/DefaultListSelectionModel -javax/swing/ListSelectionModel -javax/swing/plaf/basic/BasicListUI -javax/swing/plaf/ListUI -javax/swing/plaf/basic/BasicListUI$ListTransferHandler -javax/swing/TransferHandler -javax/swing/TransferHandler$TransferAction -javax/swing/DefaultListCellRenderer$UIResource -javax/swing/DefaultListCellRenderer -javax/swing/TransferHandler$SwingDropTarget -java/awt/dnd/DropTargetContext -javax/swing/TransferHandler$DropHandler -javax/swing/TransferHandler$TransferSupport -javax/swing/plaf/basic/BasicListUI$Handler -javax/swing/event/ListSelectionListener -javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag -javax/swing/plaf/basic/BasicComboPopup$Handler -javax/swing/JScrollPane -javax/swing/ScrollPaneConstants -javax/swing/ScrollPaneLayout$UIResource -javax/swing/ScrollPaneLayout -javax/swing/JViewport -javax/swing/ViewportLayout -javax/swing/plaf/basic/BasicViewportUI -javax/swing/plaf/ViewportUI -javax/swing/JScrollPane$ScrollBar -javax/swing/JViewport$ViewListener -java/awt/event/ComponentAdapter -javax/swing/plaf/metal/MetalScrollPaneUI +javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber +javax/swing/plaf/basic/BasicRootPaneUI +javax/swing/plaf/basic/BasicRootPaneUI$RootPaneInputMap javax/swing/plaf/basic/BasicScrollPaneUI -javax/swing/plaf/ScrollPaneUI -javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder javax/swing/plaf/basic/BasicScrollPaneUI$Handler -javax/swing/plaf/metal/MetalScrollPaneUI$1 -javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource -javax/swing/plaf/basic/BasicComboBoxRenderer -javax/swing/plaf/metal/MetalComboBoxEditor$UIResource -javax/swing/plaf/metal/MetalComboBoxEditor -javax/swing/plaf/basic/BasicComboBoxEditor -javax/swing/ComboBoxEditor -javax/swing/plaf/basic/BasicComboBoxEditor$BorderlessTextField -javax/swing/JTextField$NotifyAction -javax/swing/text/TextAction -javax/swing/AbstractAction -javax/swing/text/JTextComponent$MutableCaretEvent -javax/swing/plaf/metal/MetalTextFieldUI +javax/swing/plaf/basic/BasicScrollPaneUI$MouseWheelHandler +javax/swing/plaf/basic/BasicSeparatorUI +javax/swing/plaf/basic/BasicTextAreaUI javax/swing/plaf/basic/BasicTextFieldUI javax/swing/plaf/basic/BasicTextUI -javax/swing/text/ViewFactory -javax/swing/plaf/TextUI javax/swing/plaf/basic/BasicTextUI$BasicCursor +javax/swing/plaf/basic/BasicTextUI$DragListener +javax/swing/plaf/basic/BasicTextUI$FocusAction +javax/swing/plaf/basic/BasicTextUI$RootView +javax/swing/plaf/basic/BasicTextUI$TextActionWrapper +javax/swing/plaf/basic/BasicTextUI$TextTransferHandler +javax/swing/plaf/basic/BasicTextUI$TextTransferHandler$TextTransferable +javax/swing/plaf/basic/BasicTextUI$UpdateHandler +javax/swing/plaf/basic/BasicToolBarSeparatorUI +javax/swing/plaf/basic/BasicToolBarUI +javax/swing/plaf/basic/BasicToolBarUI$Handler +javax/swing/plaf/basic/BasicTransferable +javax/swing/plaf/basic/BasicViewportUI +javax/swing/plaf/basic/ComboPopup +javax/swing/plaf/basic/DefaultMenuLayout +javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag +javax/swing/plaf/basic/LazyActionMap +javax/swing/plaf/metal/DefaultMetalTheme +javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate +javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1 +javax/swing/plaf/metal/MetalLookAndFeel +javax/swing/plaf/metal/MetalTheme +javax/swing/plaf/synth/SynthConstants +javax/swing/plaf/synth/SynthUI +javax/swing/text/AbstractDocument +javax/swing/text/AbstractDocument$1 +javax/swing/text/AbstractDocument$AbstractElement +javax/swing/text/AbstractDocument$AttributeContext +javax/swing/text/AbstractDocument$BidiElement +javax/swing/text/AbstractDocument$BidiRootElement +javax/swing/text/AbstractDocument$BranchElement +javax/swing/text/AbstractDocument$Content +javax/swing/text/AbstractDocument$DefaultDocumentEvent +javax/swing/text/AbstractDocument$ElementEdit +javax/swing/text/AbstractDocument$InsertStringResult +javax/swing/text/AbstractDocument$LeafElement +javax/swing/text/AttributeSet +javax/swing/text/AttributeSet$CharacterAttribute +javax/swing/text/AttributeSet$ColorAttribute +javax/swing/text/AttributeSet$FontAttribute +javax/swing/text/AttributeSet$ParagraphAttribute +javax/swing/text/Caret +javax/swing/text/DefaultCaret +javax/swing/text/DefaultCaret$1 +javax/swing/text/DefaultCaret$Handler javax/swing/text/DefaultEditorKit -javax/swing/text/EditorKit -javax/swing/text/DefaultEditorKit$InsertContentAction -javax/swing/text/DefaultEditorKit$DeletePrevCharAction -javax/swing/text/DefaultEditorKit$DeleteNextCharAction -javax/swing/text/DefaultEditorKit$ReadOnlyAction -javax/swing/text/DefaultEditorKit$DeleteWordAction -javax/swing/text/DefaultEditorKit$WritableAction -javax/swing/text/DefaultEditorKit$CutAction -javax/swing/text/DefaultEditorKit$CopyAction -javax/swing/text/DefaultEditorKit$PasteAction -javax/swing/text/DefaultEditorKit$VerticalPageAction -javax/swing/text/DefaultEditorKit$PageAction -javax/swing/text/DefaultEditorKit$InsertBreakAction javax/swing/text/DefaultEditorKit$BeepAction -javax/swing/text/DefaultEditorKit$NextVisualPositionAction -javax/swing/text/DefaultEditorKit$BeginWordAction -javax/swing/text/DefaultEditorKit$EndWordAction -javax/swing/text/DefaultEditorKit$PreviousWordAction -javax/swing/text/DefaultEditorKit$NextWordAction -javax/swing/text/DefaultEditorKit$BeginLineAction -javax/swing/text/DefaultEditorKit$EndLineAction -javax/swing/text/DefaultEditorKit$BeginParagraphAction -javax/swing/text/DefaultEditorKit$EndParagraphAction javax/swing/text/DefaultEditorKit$BeginAction -javax/swing/text/DefaultEditorKit$EndAction +javax/swing/text/DefaultEditorKit$BeginLineAction +javax/swing/text/DefaultEditorKit$BeginParagraphAction +javax/swing/text/DefaultEditorKit$BeginWordAction +javax/swing/text/DefaultEditorKit$CopyAction +javax/swing/text/DefaultEditorKit$CutAction javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction +javax/swing/text/DefaultEditorKit$DeleteNextCharAction +javax/swing/text/DefaultEditorKit$DeletePrevCharAction +javax/swing/text/DefaultEditorKit$DeleteWordAction +javax/swing/text/DefaultEditorKit$DumpModelAction +javax/swing/text/DefaultEditorKit$EndAction +javax/swing/text/DefaultEditorKit$EndLineAction +javax/swing/text/DefaultEditorKit$EndParagraphAction +javax/swing/text/DefaultEditorKit$EndWordAction +javax/swing/text/DefaultEditorKit$InsertBreakAction +javax/swing/text/DefaultEditorKit$InsertContentAction javax/swing/text/DefaultEditorKit$InsertTabAction -javax/swing/text/DefaultEditorKit$SelectWordAction +javax/swing/text/DefaultEditorKit$NextVisualPositionAction +javax/swing/text/DefaultEditorKit$NextWordAction +javax/swing/text/DefaultEditorKit$PageAction +javax/swing/text/DefaultEditorKit$PasteAction +javax/swing/text/DefaultEditorKit$PreviousWordAction +javax/swing/text/DefaultEditorKit$ReadOnlyAction +javax/swing/text/DefaultEditorKit$SelectAllAction javax/swing/text/DefaultEditorKit$SelectLineAction javax/swing/text/DefaultEditorKit$SelectParagraphAction -javax/swing/text/DefaultEditorKit$SelectAllAction -javax/swing/text/DefaultEditorKit$UnselectAction +javax/swing/text/DefaultEditorKit$SelectWordAction javax/swing/text/DefaultEditorKit$ToggleComponentOrientationAction -javax/swing/text/DefaultEditorKit$DumpModelAction -javax/swing/plaf/basic/BasicTextUI$TextTransferHandler -javax/swing/text/Position$Bias -javax/swing/plaf/basic/BasicTextUI$RootView -javax/swing/text/View -javax/swing/plaf/basic/BasicTextUI$UpdateHandler -javax/swing/event/DocumentListener -javax/swing/plaf/basic/BasicTextUI$DragListener -javax/swing/plaf/basic/BasicComboBoxEditor$UIResource -javax/swing/plaf/basic/BasicTextUI$BasicCaret -javax/swing/text/DefaultCaret -javax/swing/text/Caret -javax/swing/text/DefaultCaret$Handler -java/awt/datatransfer/ClipboardOwner -javax/swing/plaf/basic/BasicTextUI$BasicHighlighter +javax/swing/text/DefaultEditorKit$UnselectAction +javax/swing/text/DefaultEditorKit$VerticalPageAction +javax/swing/text/DefaultEditorKit$WritableAction javax/swing/text/DefaultHighlighter -javax/swing/text/LayeredHighlighter +javax/swing/text/DefaultHighlighter$DefaultHighlightPainter +javax/swing/text/DefaultHighlighter$HighlightInfo +javax/swing/text/DefaultHighlighter$LayeredHighlightInfo +javax/swing/text/DefaultHighlighter$SafeDamager +javax/swing/text/Document +javax/swing/text/EditorKit +javax/swing/text/Element +javax/swing/text/FieldView +javax/swing/text/GapContent +javax/swing/text/GapContent$InsertUndo +javax/swing/text/GapContent$MarkData +javax/swing/text/GapContent$MarkVector +javax/swing/text/GapContent$StickyPosition +javax/swing/text/GapVector javax/swing/text/Highlighter javax/swing/text/Highlighter$Highlight -javax/swing/text/DefaultHighlighter$DefaultHighlightPainter -javax/swing/text/LayeredHighlighter$LayerPainter javax/swing/text/Highlighter$HighlightPainter -javax/swing/text/DefaultHighlighter$SafeDamager -javax/swing/text/FieldView -javax/swing/text/PlainView +javax/swing/text/JTextComponent +javax/swing/text/JTextComponent$1 javax/swing/text/JTextComponent$DefaultKeymap -javax/swing/text/Keymap -javax/swing/text/JTextComponent$KeymapWrapper javax/swing/text/JTextComponent$KeymapActionMap -javax/swing/plaf/basic/BasicTextUI$FocusAction -javax/swing/plaf/basic/BasicTextUI$TextActionWrapper -javax/swing/JTextArea -javax/swing/JEditorPane -javax/swing/JTextField$ScrollRepainter -javax/swing/plaf/metal/MetalComboBoxEditor$1 -javax/swing/plaf/metal/MetalComboBoxEditor$EditorBorder -javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener -javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler -javax/swing/plaf/basic/BasicComboBoxUI$Handler -javax/swing/plaf/metal/MetalComboBoxButton -javax/swing/plaf/metal/MetalComboBoxIcon -javax/swing/plaf/metal/MetalComboBoxButton$1 -javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager -javax/swing/JComboBox$KeySelectionManager -javax/swing/JToolBar$DefaultToolBarLayout -javax/swing/plaf/metal/MetalToolBarUI -javax/swing/plaf/basic/BasicToolBarUI -javax/swing/plaf/ToolBarUI -javax/swing/plaf/metal/MetalBorders$ToolBarBorder -javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue$1 -javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder -javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder -javax/swing/plaf/basic/BasicBorders$RadioButtonBorder -javax/swing/plaf/basic/BasicBorders$ButtonBorder -javax/swing/plaf/basic/BasicBorders$RolloverMarginBorder -javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener -javax/swing/plaf/basic/BasicToolBarUI$DockingListener -javax/swing/plaf/basic/BasicToolBarUI$Handler -javax/swing/border/EtchedBorder -javax/swing/JToolBar$Separator -javax/swing/plaf/basic/BasicToolBarSeparatorUI -sun/awt/color/CMM -java/applet/Applet -java/awt/Panel -com/sun/awt/AWTUtilities -javax/swing/KeyboardManager$ComponentKeyStrokePair -sun/awt/EmbeddedFrame -sun/awt/im/InputMethodContext -java/awt/im/spi/InputMethodContext -sun/awt/im/InputContext -sun/awt/im/InputMethodManager -sun/awt/im/ExecutableInputMethodManager -sun/awt/X11/XInputMethodDescriptor -sun/awt/X11InputMethodDescriptor -java/awt/im/spi/InputMethodDescriptor -sun/awt/im/InputMethodLocator -sun/awt/im/ExecutableInputMethodManager$2 -sun/misc/Service -sun/misc/Service$LazyIterator -java/util/TreeSet -java/util/NavigableSet -java/util/SortedSet -javax/swing/SizeRequirements -javax/swing/plaf/basic/BasicGraphicsUtils -java/awt/event/AdjustmentEvent -java/awt/MenuBar -sun/awt/X11/XComponentPeer$2 -java/awt/SequencedEvent -java/beans/PropertyVetoException -java/awt/DefaultKeyboardFocusManager$TypeAheadMarker -java/awt/KeyboardFocusManager$HeavyweightFocusRequest -java/awt/KeyboardFocusManager$LightweightFocusRequest -sun/awt/KeyboardFocusManagerPeerImpl -sun/awt/SunToolkit$7 -java/awt/Window$1DisposeAction -java/awt/LightweightDispatcher$2 -sun/awt/X11/XReparentEvent -sun/awt/X11/XWindowAttributes -javax/swing/SystemEventQueueUtilities$ComponentWorkRequest -sun/awt/X11/XFocusChangeEvent -sun/awt/X11/XComponentPeer$1 -sun/awt/X11/XUnmapEvent -java/io/StringWriter -javax/swing/JWindow -java/io/UnsupportedEncodingException -java/net/UnknownHostException -java/nio/channels/SocketChannel -java/nio/channels/spi/AbstractSelectableChannel -java/nio/channels/SelectableChannel -java/net/SocketImplFactory -javax/swing/UnsupportedLookAndFeelException -java/lang/UnsatisfiedLinkError -javax/swing/Box$Filler -javax/swing/JComponent$2 -sun/net/www/MimeTable -java/net/FileNameMap -sun/net/www/MimeTable$1 -sun/net/www/MimeTable$2 -sun/net/www/MimeEntry -java/net/URLConnection$1 -java/text/SimpleDateFormat -java/text/DateFormat -java/text/DateFormat$Field -java/util/Calendar -java/util/GregorianCalendar -sun/util/resources/CalendarData -sun/util/resources/CalendarData_en -java/text/DateFormatSymbols -java/text/spi/DateFormatSymbolsProvider -java/text/DontCareFieldPosition -java/text/DontCareFieldPosition$1 -java/text/Format$FieldDelegate -javax/swing/plaf/BorderUIResource -javax/swing/BorderFactory -javax/swing/border/BevelBorder -javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon -javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 -java/util/zip/ZipInputStream -java/io/PushbackInputStream -java/util/zip/CRC32 -java/util/zip/Checksum -java/lang/Thread$State -javax/swing/SwingUtilities$SharedOwnerFrame -javax/swing/JTable -javax/swing/event/TableModelListener -javax/swing/event/TableColumnModelListener -javax/swing/event/CellEditorListener -javax/swing/event/RowSorterListener -javax/swing/BufferStrategyPaintManager$BufferInfo -java/awt/Component$BltSubRegionBufferStrategy -sun/awt/SubRegionShowable -java/awt/Component$BltBufferStrategy -sun/awt/image/SunVolatileImage -sun/awt/image/BufferedImageGraphicsConfig -sun/print/PrinterGraphicsConfig -sun/java2d/x11/X11VolatileSurfaceManager -sun/awt/image/VolatileSurfaceManager -java/awt/print/PrinterGraphics -java/awt/PrintGraphics -java/awt/GraphicsCallback$PaintCallback -java/awt/GraphicsCallback -sun/awt/SunGraphicsCallback -javax/swing/JRadioButton -java/lang/ClassFormatError -javax/swing/JTabbedPane -javax/swing/JTabbedPane$ModelListener -javax/swing/plaf/metal/MetalTabbedPaneUI -javax/swing/plaf/basic/BasicTabbedPaneUI -javax/swing/plaf/TabbedPaneUI -javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$Handler -sun/swing/ImageIconUIResource -javax/swing/GrayFilter -java/awt/image/RGBImageFilter -java/awt/image/ImageFilter -java/awt/image/FilteredImageSource -org/w3c/dom/Node -org/xml/sax/SAXException -javax/xml/parsers/ParserConfigurationException -org/xml/sax/EntityResolver -java/security/NoSuchAlgorithmException -java/security/GeneralSecurityException -java/util/zip/GZIPInputStream -java/util/zip/DeflaterOutputStream -org/xml/sax/InputSource -javax/xml/parsers/DocumentBuilderFactory -javax/xml/parsers/FactoryFinder -javax/xml/parsers/SecuritySupport -javax/xml/parsers/SecuritySupport$2 -javax/xml/parsers/SecuritySupport$5 -javax/xml/parsers/SecuritySupport$1 -javax/xml/parsers/SecuritySupport$4 -javax/xml/parsers/DocumentBuilder -org/w3c/dom/Document -org/xml/sax/helpers/DefaultHandler -org/xml/sax/DTDHandler -org/xml/sax/ContentHandler -org/xml/sax/ErrorHandler -org/xml/sax/SAXNotSupportedException -org/xml/sax/Locator -org/xml/sax/SAXNotRecognizedException -org/xml/sax/SAXParseException -org/w3c/dom/NodeList -org/w3c/dom/events/EventTarget -org/w3c/dom/traversal/DocumentTraversal -org/w3c/dom/events/DocumentEvent -org/w3c/dom/ranges/DocumentRange -org/w3c/dom/Entity -org/w3c/dom/Element -org/w3c/dom/CharacterData -org/w3c/dom/CDATASection -org/w3c/dom/Text -org/xml/sax/AttributeList -org/w3c/dom/DOMException -org/w3c/dom/Notation -org/w3c/dom/DocumentType -org/w3c/dom/Attr -org/w3c/dom/EntityReference -org/w3c/dom/ProcessingInstruction -org/w3c/dom/Comment -org/w3c/dom/DocumentFragment -org/w3c/dom/events/Event -org/w3c/dom/events/MutationEvent -org/w3c/dom/traversal/TreeWalker -org/w3c/dom/ranges/Range -org/w3c/dom/traversal/NodeIterator -org/w3c/dom/events/EventException -org/w3c/dom/NamedNodeMap -java/lang/StringIndexOutOfBoundsException -java/awt/GridLayout -javax/swing/plaf/metal/MetalRadioButtonUI -javax/swing/plaf/basic/BasicRadioButtonUI -javax/swing/plaf/basic/BasicBorders -javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon -java/awt/event/ItemEvent -java/awt/CardLayout$Card -javax/swing/JCheckBox -javax/swing/event/ListSelectionEvent -javax/swing/plaf/metal/MetalCheckBoxUI -javax/swing/plaf/metal/MetalIconFactory$CheckBoxIcon -java/lang/ExceptionInInitializerError -com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI -javax/swing/JProgressBar -javax/swing/JProgressBar$ModelListener -javax/swing/plaf/metal/MetalProgressBarUI -javax/swing/plaf/basic/BasicProgressBarUI -javax/swing/plaf/ProgressBarUI -javax/swing/plaf/BorderUIResource$LineBorderUIResource -javax/swing/plaf/basic/BasicProgressBarUI$Handler -javax/swing/tree/TreeModel -javax/swing/table/TableCellRenderer -javax/swing/table/JTableHeader -javax/swing/event/TreeExpansionListener -javax/swing/table/AbstractTableModel -javax/swing/table/TableModel -javax/swing/table/DefaultTableCellRenderer -javax/swing/JTree -javax/swing/tree/TreeSelectionModel -javax/swing/tree/DefaultTreeCellRenderer -javax/swing/tree/TreeCellRenderer -javax/swing/table/TableCellEditor -javax/swing/CellEditor -javax/swing/JToolTip -javax/swing/table/TableColumn -javax/swing/table/DefaultTableColumnModel -javax/swing/table/TableColumnModel -javax/swing/table/DefaultTableModel -javax/swing/event/TableModelEvent -sun/swing/table/DefaultTableCellHeaderRenderer -javax/swing/plaf/basic/BasicTableHeaderUI -javax/swing/plaf/TableHeaderUI -javax/swing/plaf/basic/BasicTableHeaderUI$1 -javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler -javax/swing/DefaultCellEditor -javax/swing/tree/TreeCellEditor -javax/swing/AbstractCellEditor -javax/swing/plaf/basic/BasicTableUI -javax/swing/plaf/TableUI -javax/swing/plaf/basic/BasicTableUI$TableTransferHandler -javax/swing/plaf/basic/BasicTableUI$Handler -javax/swing/tree/DefaultTreeSelectionModel -javax/swing/tree/TreePath -javax/swing/plaf/metal/MetalTreeUI -javax/swing/plaf/basic/BasicTreeUI -javax/swing/plaf/TreeUI -javax/swing/plaf/basic/BasicTreeUI$Actions -javax/swing/plaf/basic/BasicTreeUI$TreeTransferHandler -javax/swing/plaf/metal/MetalTreeUI$LineListener -javax/swing/plaf/basic/BasicTreeUI$Handler -javax/swing/event/TreeModelListener -javax/swing/event/TreeSelectionListener -javax/swing/event/SwingPropertyChangeSupport -javax/swing/tree/VariableHeightLayoutCache -javax/swing/tree/AbstractLayoutCache -javax/swing/tree/RowMapper -javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler -javax/swing/tree/AbstractLayoutCache$NodeDimensions -javax/swing/JTree$TreeModelHandler -javax/swing/tree/VariableHeightLayoutCache$TreeStateNode -javax/swing/tree/DefaultMutableTreeNode -javax/swing/tree/MutableTreeNode -javax/swing/tree/DefaultMutableTreeNode$1 -javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration -javax/swing/event/TableColumnModelEvent -java/text/ParseException -java/text/NumberFormat$Field -javax/swing/event/UndoableEditListener -javax/swing/filechooser/FileFilter -javax/swing/tree/DefaultTreeModel -javax/swing/tree/DefaultTreeCellEditor -javax/swing/tree/DefaultTreeCellEditor$1 -javax/swing/tree/DefaultTreeCellEditor$DefaultTextField -javax/swing/DefaultCellEditor$1 -javax/swing/DefaultCellEditor$EditorDelegate -javax/swing/tree/DefaultTreeCellEditor$EditorContainer -javax/swing/JTree$TreeSelectionRedirector -javax/swing/event/TreeModelEvent -javax/swing/plaf/metal/MetalSplitPaneUI -javax/swing/plaf/basic/BasicSplitPaneUI -javax/swing/plaf/SplitPaneUI -javax/swing/plaf/basic/BasicSplitPaneDivider -javax/swing/plaf/basic/BasicBorders$SplitPaneBorder -javax/swing/plaf/metal/MetalSplitPaneDivider -javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout -javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler -javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder -javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager -javax/swing/plaf/basic/BasicSplitPaneUI$1 -javax/swing/plaf/basic/BasicSplitPaneUI$Handler -javax/swing/plaf/metal/MetalSplitPaneDivider$1 -javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchActionHandler -javax/swing/plaf/metal/MetalSplitPaneDivider$2 -javax/swing/border/TitledBorder -javax/swing/plaf/basic/BasicTextAreaUI -java/util/Collections$UnmodifiableCollection$1 -java/io/InterruptedIOException -java/net/NoRouteToHostException -java/net/BindException -javax/swing/tree/PathPlaceHolder -javax/swing/event/TreeSelectionEvent -javax/swing/JList$3 -javax/swing/JList$ListSelectionHandler -javax/swing/JSlider -javax/swing/JSlider$ModelListener -javax/swing/plaf/metal/MetalSliderUI -javax/swing/plaf/basic/BasicSliderUI -javax/swing/plaf/SliderUI -javax/swing/plaf/basic/BasicSliderUI$Actions -javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon -javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon -javax/swing/plaf/basic/BasicSliderUI$TrackListener -javax/swing/plaf/basic/BasicSliderUI$Handler -javax/swing/plaf/basic/BasicSliderUI$ScrollListener -javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener -javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler -sun/java2d/HeadlessGraphicsEnvironment -java/util/Hashtable$KeySet -java/awt/FontFormatException -sun/java2d/SunGraphicsEnvironment$2 -sun/font/Type1Font$1 -java/nio/channels/FileChannel$MapMode -sun/nio/ch/FileChannelImpl$Unmapper -sun/nio/ch/Util$3 -java/nio/DirectByteBufferR -java/nio/charset/Charset$3 -sun/nio/cs/ext/ExtendedCharsets -sun/nio/cs/AbstractCharsetProvider -sun/nio/cs/ext/SJIS -sun/nio/cs/ext/SJIS$Decoder -sun/nio/cs/ext/DelegatableDecoder -sun/nio/cs/ext/JIS_X_0208_Decoder -sun/nio/cs/ext/DoubleByteDecoder -sun/nio/cs/ext/JIS_X_0201$Decoder -sun/nio/cs/SingleByteDecoder -java/lang/CharacterData00 -javax/swing/DefaultListModel -javax/swing/event/ListDataEvent -javax/sound/sampled/DataLine -javax/sound/sampled/Line -javax/sound/sampled/Line$Info -javax/sound/sampled/DataLine$Info -javax/sound/sampled/Control$Type -javax/sound/sampled/FloatControl$Type -javax/sound/sampled/LineUnavailableException -javax/sound/sampled/UnsupportedAudioFileException -javax/swing/JRadioButtonMenuItem -javax/swing/JMenuItem$AccessibleJMenuItem -javax/swing/AbstractButton$AccessibleAbstractButton -javax/accessibility/AccessibleAction -javax/accessibility/AccessibleValue -javax/accessibility/AccessibleText -javax/accessibility/AccessibleExtendedComponent -javax/accessibility/AccessibleComponent -javax/swing/JComponent$AccessibleJComponent -java/awt/Container$AccessibleAWTContainer -java/awt/Component$AccessibleAWTComponent -javax/accessibility/AccessibleRelationSet -javax/accessibility/AccessibleState -javax/accessibility/AccessibleBundle -javax/swing/plaf/basic/BasicCheckBoxMenuItemUI -javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon -javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem -javax/swing/plaf/basic/BasicRadioButtonMenuItemUI -javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon -sun/awt/image/ImageDecoder$1 -javax/swing/JTabbedPane$Page -java/net/DatagramSocket -java/net/MulticastSocket -java/net/DatagramPacket -sun/net/InetAddressCachePolicy -sun/net/InetAddressCachePolicy$1 -sun/net/InetAddressCachePolicy$2 -java/net/InetAddress$CacheEntry -java/net/PlainDatagramSocketImpl -java/net/DatagramSocketImpl -java/net/NetworkInterface -java/net/InterfaceAddress -java/text/Collator -java/text/spi/CollatorProvider -sun/text/resources/CollationData -sun/text/resources/CollationData_en -sun/util/EmptyListResourceBundle -java/text/RuleBasedCollator -java/text/CollationRules -java/text/RBCollationTables -java/text/RBTableBuilder -java/text/RBCollationTables$BuildAPI -sun/text/IntHashtable -sun/text/UCompactIntArray -sun/text/normalizer/NormalizerImpl -sun/text/normalizer/ICUData -sun/text/normalizer/NormalizerDataReader -sun/text/normalizer/ICUBinary$Authenticate -sun/text/normalizer/ICUBinary -sun/text/normalizer/NormalizerImpl$FCDTrieImpl -sun/text/normalizer/Trie$DataManipulate -sun/text/normalizer/NormalizerImpl$NormTrieImpl -sun/text/normalizer/NormalizerImpl$AuxTrieImpl -sun/text/normalizer/IntTrie -sun/text/normalizer/Trie -sun/text/normalizer/CharTrie -sun/text/normalizer/CharTrie$FriendAgent -sun/text/normalizer/UnicodeSet -sun/text/normalizer/UnicodeMatcher -sun/text/normalizer/NormalizerImpl$DecomposeArgs -java/text/MergeCollation -java/text/PatternEntry$Parser -java/text/PatternEntry -java/text/EntryPair -sun/text/ComposedCharIter -sun/text/normalizer/UTF16 -sun/net/www/protocol/http/Handler -java/io/ObjectInputStream$BlockDataInputStream -java/io/ObjectInputStream$PeekInputStream -java/io/ObjectInputStream$HandleTable -java/io/ObjectInputStream$ValidationList -java/io/Bits -java/io/ObjectStreamClass$Caches -java/io/ObjectStreamClass$WeakClassKey -java/io/ObjectStreamClass$EntryFuture -java/io/ObjectStreamClass$2 -sun/reflect/SerializationConstructorAccessorImpl -java/io/ObjectStreamClass$FieldReflectorKey -java/io/ObjectStreamClass$FieldReflector -java/io/ObjectStreamClass$1 -java/io/DataOutputStream -java/io/ObjectStreamClass$MemberSignature -java/io/ObjectStreamClass$3 -java/io/ObjectStreamClass$4 -java/io/ObjectStreamClass$5 -java/security/MessageDigest -java/security/MessageDigestSpi -sun/security/jca/GetInstance -sun/security/jca/Providers -sun/security/jca/ProviderList -sun/security/jca/ProviderConfig -sun/security/jca/ProviderList$3 -sun/security/jca/ProviderList$1 -sun/security/jca/ProviderList$2 -sun/security/jca/ProviderConfig$1 -sun/security/jca/ProviderConfig$3 -java/security/Provider$Service -java/security/Provider$UString -sun/security/provider/SHA -sun/security/provider/DigestBase -sun/security/jca/GetInstance$Instance -java/security/MessageDigest$Delegate -sun/security/provider/ByteArrayAccess -java/io/ObjectStreamClass$ClassDataSlot -java/io/ObjectInputStream$CallbackContext -sun/reflect/UnsafeQualifiedStaticLongFieldAccessorImpl -java/security/SignatureException -java/security/InvalidKeyException -java/security/KeyException -java/security/Signature -java/security/SignatureSpi -java/io/ObjectOutputStream$BlockDataOutputStream -sun/security/provider/DSAPublicKey -java/security/interfaces/DSAPublicKey -java/security/interfaces/DSAKey -java/security/PublicKey -java/security/Key -sun/security/x509/X509Key -java/io/ObjectOutputStream$HandleTable -java/io/ObjectOutputStream$ReplaceTable -sun/security/x509/AlgorithmId -sun/security/util/DerEncoder -sun/security/util/BitArray -sun/security/util/DerOutputStream -sun/security/util/DerValue -java/math/BigInteger -java/security/interfaces/DSAParams -sun/security/util/DerInputStream -sun/security/util/DerInputBuffer -sun/security/util/ObjectIdentifier -java/security/AlgorithmParameters -java/security/AlgorithmParametersSpi -sun/security/provider/DSAParameters -sun/security/util/ByteArrayLexOrder -sun/security/util/ByteArrayTagOrder -sun/security/util/DerIndefLenConverter -java/io/InvalidClassException -java/io/ObjectStreamException -java/io/ObjectInputStream$GetFieldImpl -java/io/ObjectInputStream$GetField -sun/security/jca/ServiceId -sun/security/jca/ProviderList$ServiceList -sun/security/jca/ProviderList$ServiceList$1 -java/security/Signature$Delegate -java/security/interfaces/DSAPrivateKey -java/security/PrivateKey -sun/security/provider/DSA$SHA1withDSA -sun/security/provider/DSA -java/security/spec/DSAParameterSpec -java/security/spec/AlgorithmParameterSpec -java/math/MutableBigInteger -java/math/SignedMutableBigInteger -java/awt/EventQueue$1AWTInvocationLock -javax/swing/SystemEventQueueUtilities$RunnableCanvas -javax/swing/SystemEventQueueUtilities$RunnableCanvasGraphics -java/awt/Component$FlipBufferStrategy -java/awt/SentEvent -sun/awt/X11/XDestroyWindowEvent -sun/awt/X11/XDropTargetRegistry -sun/awt/X11/XEmbeddedFramePeer -sun/awt/X11/XDragAndDropProtocols -sun/awt/X11/XDropTargetContextPeer -sun/awt/dnd/SunDropTargetContextPeer -java/awt/dnd/peer/DropTargetContextPeer -sun/awt/X11/XDropTargetContextPeer$XDropTargetProtocolListenerImpl -sun/awt/X11/XDropTargetProtocolListener -sun/awt/X11/XDnDDragSourceProtocol -sun/awt/X11/XDragSourceProtocol -sun/awt/X11/MotifDnDDragSourceProtocol -sun/awt/X11/XDnDDropTargetProtocol -sun/awt/X11/XDropTargetProtocol -sun/awt/X11/MotifDnDDropTargetProtocol -sun/awt/X11/XDnDConstants -sun/awt/X11/MotifDnDConstants -javax/swing/JTable$2 -javax/swing/JTable$Resizable3 -javax/swing/JTable$Resizable2 -javax/swing/JTable$5 -javax/swing/event/AncestorEvent -sun/font/FontDesignMetrics$MetricsKey -java/awt/geom/Line2D$Float -java/awt/geom/Line2D -com/sun/java/swing/plaf/gtk/GTKLookAndFeel -javax/swing/plaf/synth/SynthLookAndFeel -javax/swing/plaf/synth/DefaultSynthStyleFactory -javax/swing/plaf/synth/SynthStyleFactory -sun/swing/BakedArrayList -javax/swing/plaf/synth/SynthLookAndFeel$Handler -javax/swing/plaf/synth/SynthDefaultLookup -com/sun/java/swing/plaf/gtk/GTKEngine -com/sun/java/swing/plaf/gtk/GTKDefaultEngine -com/sun/java/swing/plaf/gtk/GTKEngine$Settings -com/sun/java/swing/plaf/gtk/GTKStyleFactory -com/sun/java/swing/plaf/gtk/PangoFonts -sun/font/FontManager$FontConfigInfo -com/sun/java/swing/plaf/gtk/GTKLookAndFeel$WeakPCL -javax/swing/plaf/synth/Region -javax/swing/plaf/synth/SynthLookAndFeel$AATextListener -com/sun/java/swing/plaf/gtk/GTKNativeEngine -com/sun/java/swing/plaf/gtk/GTKNativeEngine$WidgetType -com/sun/java/swing/plaf/gtk/GTKRegion -com/sun/java/swing/plaf/gtk/GTKDefaultStyle -com/sun/java/swing/plaf/gtk/GTKStyle -com/sun/java/swing/plaf/gtk/GTKConstants -javax/swing/plaf/synth/SynthStyle -javax/swing/plaf/synth/SynthGraphicsUtils -com/sun/java/swing/plaf/gtk/GTKGraphicsUtils -com/sun/java/swing/plaf/gtk/GTKStyle$GTKStockIcon -sun/swing/plaf/synth/SynthIcon -com/sun/java/swing/plaf/gtk/GTKColorType -javax/swing/plaf/synth/ColorType -com/sun/java/swing/plaf/gtk/resources/gtk -com/sun/swing/internal/plaf/synth/resources/synth -com/sun/java/swing/plaf/gtk/GTKStyle$GTKLazyValue -com/sun/java/swing/plaf/gtk/GTKLookAndFeel$1FontLazyValue -com/sun/java/swing/plaf/gtk/GTKLookAndFeel$2 -com/sun/java/swing/plaf/gtk/GTKLookAndFeel$3 -javax/swing/plaf/synth/SynthPanelUI -javax/swing/plaf/synth/SynthConstants -javax/swing/plaf/synth/SynthContext -javax/swing/plaf/synth/SynthBorder -javax/swing/plaf/synth/SynthRootPaneUI -javax/swing/plaf/synth/SynthLabelUI -javax/swing/plaf/synth/SynthButtonUI -javax/swing/plaf/synth/SynthToggleButtonUI -javax/swing/plaf/basic/BasicBorders$FieldBorder -javax/swing/plaf/synth/SynthMenuBarUI -javax/swing/plaf/synth/DefaultMenuLayout -javax/swing/plaf/synth/SynthMenuUI -javax/swing/plaf/synth/SynthUI -com/sun/java/swing/plaf/gtk/GTKIconFactory -com/sun/java/swing/plaf/gtk/GTKIconFactory$MenuArrowIcon -com/sun/java/swing/plaf/gtk/GTKIconFactory$DelegatingIcon -com/sun/java/swing/plaf/gtk/GTKConstants$ArrowType -javax/swing/plaf/basic/BasicIconFactory -javax/swing/plaf/basic/BasicIconFactory$MenuItemCheckIcon -javax/swing/plaf/synth/SynthMenuItemUI -javax/swing/plaf/synth/SynthPopupMenuUI -javax/swing/plaf/synth/SynthSeparatorUI -javax/swing/plaf/synth/SynthScrollBarUI -javax/swing/plaf/synth/SynthArrowButton -javax/swing/plaf/synth/SynthArrowButton$SynthArrowButtonUI -javax/swing/plaf/synth/SynthComboBoxUI -javax/swing/plaf/synth/SynthComboPopup -javax/swing/plaf/synth/SynthListUI -javax/swing/plaf/synth/SynthListUI$SynthListCellRenderer -javax/swing/plaf/synth/SynthViewportUI -javax/swing/plaf/synth/SynthScrollPaneUI -javax/swing/plaf/synth/SynthScrollPaneUI$ViewportBorder -javax/swing/plaf/synth/SynthComboBoxUI$SynthComboBoxRenderer -javax/swing/plaf/synth/SynthComboBoxUI$SynthComboBoxEditor -javax/swing/plaf/synth/SynthTextFieldUI -javax/swing/plaf/synth/SynthToolBarUI -javax/swing/plaf/synth/SynthToolBarUI$SynthToolBarLayoutManager -com/sun/java/swing/plaf/gtk/GTKIconFactory$ToolBarHandleIcon -com/sun/java/swing/plaf/gtk/GTKConstants$Orientation -sun/awt/X11/XTranslateCoordinates -com/sun/java/swing/plaf/gtk/GTKPainter -javax/swing/plaf/synth/SynthPainter -javax/swing/plaf/synth/SynthPainter$1 -com/sun/java/swing/plaf/gtk/GTKConstants$PositionType -com/sun/java/swing/plaf/gtk/GTKConstants$ShadowType -java/io/ObjectInputStream$HandleTable$HandleList -sun/java2d/pipe/ShapeSpanIterator -sun/java2d/pipe/SpanIterator -sun/dc/path/PathConsumer -sun/dc/pr/PathStroker -sun/dc/pr/PathDasher -java/awt/geom/LineIterator -java/awt/geom/PathIterator -sun/applet/Main -sun/applet/AppletMessageHandler -sun/applet/resources/MsgAppletViewer -sun/applet/AppletSecurity -sun/awt/AWTSecurityManager -java/lang/SecurityManager -java/security/DomainCombiner -sun/applet/AppletSecurity$1 -java/lang/SecurityManager$1 -java/security/SecurityPermission -java/util/PropertyPermission -sun/applet/AppletViewer -java/applet/AppletContext -java/awt/print/Printable -sun/security/util/SecurityConstants -java/awt/AWTPermission -java/net/NetPermission -java/net/SocketPermission -javax/security/auth/AuthPermission -java/lang/Thread$1 -java/util/logging/LogManager$5 -java/util/logging/LogManager$6 -sun/applet/StdAppletViewerFactory -sun/applet/AppletViewerFactory -sun/applet/AppletViewer$UserActionListener -sun/applet/AppletViewerPanel -sun/applet/AppletPanel -java/applet/AppletStub -sun/misc/MessageUtils -sun/applet/AppletPanel$10 -java/security/Policy$1 -sun/security/provider/PolicyFile$1 -sun/security/provider/PolicyInfo -sun/security/provider/PolicyFile$3 -sun/security/util/PropertyExpander -sun/security/provider/PolicyParser -sun/security/util/PolicyUtil -sun/security/provider/PolicyParser$GrantEntry -sun/security/provider/PolicyParser$PermissionEntry -sun/security/provider/PolicyFile$PolicyEntry -sun/security/provider/PolicyFile$6 -sun/security/provider/PolicyFile$7 -sun/security/provider/SelfPermission -java/net/SocketPermissionCollection -java/util/PropertyPermissionCollection -sun/applet/AppletPanel$9 -sun/applet/AppletClassLoader -sun/applet/AppletClassLoader$4 -sun/applet/AppletThreadGroup -sun/applet/AppContextCreator -sun/applet/AppletPanel$1 -sun/awt/X11/XMenuBarPeer -java/awt/peer/MenuBarPeer -java/awt/peer/MenuComponentPeer -sun/awt/X11/XBaseMenuWindow -sun/awt/X11/XMenuPeer -java/awt/peer/MenuPeer -java/awt/peer/MenuItemPeer -sun/awt/X11/XMenuItemPeer -java/awt/MenuShortcut -sun/awt/X11/XMenuWindow -sun/awt/X11/XMenuBarPeer$1 -sun/awt/X11/XMenuItemPeer$TextMetrics +javax/swing/text/JTextComponent$KeymapWrapper +javax/swing/text/JTextComponent$MutableCaretEvent +javax/swing/text/Keymap +javax/swing/text/LayeredHighlighter +javax/swing/text/LayeredHighlighter$LayerPainter +javax/swing/text/MutableAttributeSet +javax/swing/text/PlainDocument +javax/swing/text/PlainView +javax/swing/text/Position +javax/swing/text/Position$Bias +javax/swing/text/Segment +javax/swing/text/SegmentCache +javax/swing/text/SegmentCache$CachedSegment +javax/swing/text/SimpleAttributeSet +javax/swing/text/SimpleAttributeSet$EmptyAttributeSet +javax/swing/text/Style +javax/swing/text/StyleConstants +javax/swing/text/StyleConstants$CharacterConstants +javax/swing/text/StyleConstants$ColorConstants +javax/swing/text/StyleConstants$FontConstants +javax/swing/text/StyleConstants$ParagraphConstants +javax/swing/text/StyleContext +javax/swing/text/StyleContext$FontKey +javax/swing/text/StyleContext$KeyEnumeration +javax/swing/text/StyleContext$NamedStyle +javax/swing/text/StyleContext$SmallAttributeSet +javax/swing/text/TabExpander +javax/swing/text/TextAction +javax/swing/text/Utilities +javax/swing/text/View +javax/swing/text/ViewFactory +javax/swing/tree/TreeNode +javax/swing/undo/AbstractUndoableEdit +javax/swing/undo/CompoundEdit +javax/swing/undo/UndoableEdit +sun/awt/AWTAccessor +sun/awt/AWTAccessor$AWTEventAccessor +sun/awt/AWTAccessor$ClientPropertyKeyAccessor +sun/awt/AWTAccessor$ComponentAccessor +sun/awt/AWTAccessor$ContainerAccessor +sun/awt/AWTAccessor$CursorAccessor +sun/awt/AWTAccessor$DefaultKeyboardFocusManagerAccessor +sun/awt/AWTAccessor$EventQueueAccessor +sun/awt/AWTAccessor$FrameAccessor +sun/awt/AWTAccessor$InputEventAccessor +sun/awt/AWTAccessor$KeyEventAccessor +sun/awt/AWTAccessor$KeyboardFocusManagerAccessor +sun/awt/AWTAccessor$ToolkitAccessor +sun/awt/AWTAccessor$WindowAccessor +sun/awt/AWTAutoShutdown +sun/awt/AppContext +sun/awt/AppContext$1 +sun/awt/AppContext$2 sun/awt/AppContext$3 -sun/awt/MostRecentThreadAppContext -sun/awt/X11/XMenuBarPeer$MappingData -sun/awt/X11/XBaseMenuWindow$MappingData -sun/applet/AppletViewer$1 -sun/applet/AppletViewer$1AppletEventListener -sun/applet/AppletListener -sun/applet/AppletEventMulticaster -sun/misc/Queue -sun/misc/QueueElement -sun/applet/AppletEvent -sun/applet/AppletClassLoader$1 -sun/awt/X11/XBaseMenuWindow$3 -java/awt/DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent +sun/awt/AppContext$6 +sun/awt/AppContext$State +sun/awt/CGraphicsConfig +sun/awt/CGraphicsDevice +sun/awt/CGraphicsEnvironment +sun/awt/CGraphicsEnvironment$1 +sun/awt/CGraphicsEnvironment$2 sun/awt/CausedFocusEvent -sun/awt/X11/XWindow$1 -java/net/URLClassLoader$4 -sun/applet/AppletClassLoader$2 -javax/swing/JApplet -java/lang/ClassLoader$1 -sun/security/provider/PolicyFile$5 -java/security/PermissionsEnumerator -java/util/Collections$1 -sun/applet/AppletPanel$11 -sun/applet/AppletPanel$8 -sun/applet/AppletPanel$2 -sun/applet/AppletPanel$3 -sun/applet/AppletPanel$6 -javax/swing/BufferStrategyPaintManager$1 -# f3ac8b467e7f8c49 +sun/awt/CausedFocusEvent$Cause +sun/awt/ComponentFactory +sun/awt/ConstrainableGraphics +sun/awt/DisplayChangedListener +sun/awt/EmbeddedFrame +sun/awt/EventQueueDelegate +sun/awt/EventQueueItem +sun/awt/FontConfiguration +sun/awt/FontDescriptor +sun/awt/FullScreenCapable +sun/awt/HeadlessToolkit +sun/awt/InputMethodSupport +sun/awt/KeyboardFocusManagerPeerImpl +sun/awt/KeyboardFocusManagerPeerProvider +sun/awt/LightweightFrame +sun/awt/ModalExclude +sun/awt/ModalityEvent +sun/awt/ModalityListener +sun/awt/MostRecentKeyValue +sun/awt/Mutex +sun/awt/NullComponentPeer +sun/awt/OSInfo +sun/awt/OSInfo$1 +sun/awt/OSInfo$OSType +sun/awt/OSInfo$WindowsVersion +sun/awt/PaintEventDispatcher +sun/awt/PeerEvent +sun/awt/PostEventQueue +sun/awt/RepaintArea +sun/awt/RequestFocusController +sun/awt/SunDisplayChanger +sun/awt/SunGraphicsCallback +sun/awt/SunHints +sun/awt/SunHints$Key +sun/awt/SunHints$LCDContrastKey +sun/awt/SunHints$Value +sun/awt/SunToolkit +sun/awt/SunToolkit$1 +sun/awt/SunToolkit$ModalityListenerList +sun/awt/TimedWindowEvent +sun/awt/WindowClosingListener +sun/awt/WindowClosingSupport +sun/awt/datatransfer/DataTransferer +sun/awt/datatransfer/DataTransferer$1 +sun/awt/datatransfer/DataTransferer$CharsetComparator +sun/awt/datatransfer/DataTransferer$IndexOrderComparator +sun/awt/datatransfer/DataTransferer$IndexedComparator +sun/awt/datatransfer/DataTransferer$RMI +sun/awt/datatransfer/DataTransferer$StandardEncodingsHolder +sun/awt/datatransfer/SunClipboard +sun/awt/datatransfer/ToolkitThreadBlockedHandler +sun/awt/datatransfer/TransferableProxy +sun/awt/dnd/SunDragSourceContextPeer +sun/awt/dnd/SunDropTargetEvent +sun/awt/event/IgnorePaintEvent +sun/awt/im/CompositionAreaHandler +sun/awt/im/ExecutableInputMethodManager +sun/awt/im/ExecutableInputMethodManager$3 +sun/awt/im/InputContext +sun/awt/im/InputMethodAdapter +sun/awt/im/InputMethodContext +sun/awt/im/InputMethodLocator +sun/awt/im/InputMethodManager +sun/awt/im/InputMethodWindow +sun/awt/image/BufImgSurfaceData +sun/awt/image/BufImgSurfaceData$ICMColorData +sun/awt/image/BufImgSurfaceManager +sun/awt/image/BufferedImageGraphicsConfig +sun/awt/image/ByteComponentRaster +sun/awt/image/ByteInterleavedRaster +sun/awt/image/BytePackedRaster +sun/awt/image/FetcherInfo +sun/awt/image/GifFrame +sun/awt/image/GifImageDecoder +sun/awt/image/ImageConsumerQueue +sun/awt/image/ImageDecoder +sun/awt/image/ImageFetchable +sun/awt/image/ImageFetcher +sun/awt/image/ImageFetcher$1 +sun/awt/image/ImageRepresentation +sun/awt/image/ImageWatched +sun/awt/image/ImageWatched$Link +sun/awt/image/ImageWatched$WeakLink +sun/awt/image/InputStreamImageSource +sun/awt/image/IntegerComponentRaster +sun/awt/image/IntegerInterleavedRaster +sun/awt/image/NativeLibLoader +sun/awt/image/NativeLibLoader$1 +sun/awt/image/OffScreenImage +sun/awt/image/OffScreenImageSource +sun/awt/image/PNGFilterInputStream +sun/awt/image/PNGImageDecoder +sun/awt/image/PixelConverter +sun/awt/image/PixelConverter$Argb +sun/awt/image/PixelConverter$ArgbBm +sun/awt/image/PixelConverter$ArgbPre +sun/awt/image/PixelConverter$Bgrx +sun/awt/image/PixelConverter$ByteGray +sun/awt/image/PixelConverter$Rgba +sun/awt/image/PixelConverter$RgbaPre +sun/awt/image/PixelConverter$Rgbx +sun/awt/image/PixelConverter$Ushort4444Argb +sun/awt/image/PixelConverter$Ushort555Rgb +sun/awt/image/PixelConverter$Ushort555Rgbx +sun/awt/image/PixelConverter$Ushort565Rgb +sun/awt/image/PixelConverter$UshortGray +sun/awt/image/PixelConverter$Xbgr +sun/awt/image/PixelConverter$Xrgb +sun/awt/image/SunVolatileImage +sun/awt/image/SunWritableRaster +sun/awt/image/SunWritableRaster$DataStealer +sun/awt/image/SurfaceManager +sun/awt/image/SurfaceManager$FlushableCacheData +sun/awt/image/SurfaceManager$ImageAccessor +sun/awt/image/SurfaceManager$ProxiedGraphicsConfig +sun/awt/image/ToolkitImage +sun/awt/image/URLImageSource +sun/awt/image/VolatileSurfaceManager +sun/awt/resources/awt +sun/awt/resources/awtosx +sun/awt/util/IdentityArrayList +sun/awt/util/IdentityLinkedList +sun/awt/util/IdentityLinkedList$Entry +sun/awt/util/IdentityLinkedList$ListItr +sun/dc/DuctusRenderingEngine +sun/font/AttributeValues +sun/font/CCharToGlyphMapper +sun/font/CCharToGlyphMapper$Cache +sun/font/CFont +sun/font/CFontConfiguration +sun/font/CFontManager +sun/font/CFontManager$4 +sun/font/CStrike +sun/font/CStrike$GlyphAdvanceCache +sun/font/CStrike$GlyphInfoCache +sun/font/CStrikeDisposer +sun/font/CharToGlyphMapper +sun/font/CompositeFont +sun/font/CompositeFontDescriptor +sun/font/CoreMetrics +sun/font/EAttribute +sun/font/FileFont +sun/font/Font2D +sun/font/Font2DHandle +sun/font/FontAccess +sun/font/FontDesignMetrics +sun/font/FontDesignMetrics$KeyReference +sun/font/FontDesignMetrics$MetricsKey +sun/font/FontFamily +sun/font/FontLineMetrics +sun/font/FontManager +sun/font/FontManagerFactory +sun/font/FontManagerFactory$1 +sun/font/FontManagerForSGE +sun/font/FontManagerNativeLibrary +sun/font/FontManagerNativeLibrary$1 +sun/font/FontStrike +sun/font/FontStrikeDesc +sun/font/FontStrikeDisposer +sun/font/FontUtilities +sun/font/FontUtilities$1 +sun/font/GlyphList +sun/font/PhysicalFont +sun/font/PhysicalStrike +sun/font/StandardGlyphVector +sun/font/StandardGlyphVector$GlyphStrike +sun/font/StrikeCache +sun/font/StrikeCache$1 +sun/font/StrikeCache$DisposableStrike +sun/font/StrikeCache$SoftDisposerRef +sun/font/StrikeMetrics +sun/font/SunFontManager +sun/font/SunFontManager$1 +sun/font/SunFontManager$11 +sun/font/SunFontManager$2 +sun/font/SunFontManager$3 +sun/font/SunFontManager$FontRegistrationInfo +sun/font/SunFontManager$T1Filter +sun/font/SunFontManager$TTFilter +sun/font/TrueTypeFont +sun/font/TrueTypeFont$1 +sun/font/TrueTypeFont$DirectoryEntry +sun/font/TrueTypeFont$TTDisposerRecord +sun/font/Type1Font +sun/java2d/DefaultDisposerRecord +sun/java2d/DestSurfaceProvider +sun/java2d/Disposer +sun/java2d/Disposer$1 +sun/java2d/Disposer$2 +sun/java2d/Disposer$PollDisposable +sun/java2d/DisposerRecord +sun/java2d/DisposerTarget +sun/java2d/FontSupport +sun/java2d/InvalidPipeException +sun/java2d/MacosxSurfaceManagerFactory +sun/java2d/NullSurfaceData +sun/java2d/StateTrackable +sun/java2d/StateTrackable$State +sun/java2d/StateTrackableDelegate +sun/java2d/StateTrackableDelegate$1 +sun/java2d/StateTrackableDelegate$2 +sun/java2d/StateTracker +sun/java2d/StateTracker$1 +sun/java2d/StateTracker$2 +sun/java2d/SunGraphics2D +sun/java2d/SunGraphicsEnvironment +sun/java2d/SunGraphicsEnvironment$1 +sun/java2d/Surface +sun/java2d/SurfaceData +sun/java2d/SurfaceData$PixelToPgramLoopConverter +sun/java2d/SurfaceData$PixelToShapeLoopConverter +sun/java2d/SurfaceDataProxy +sun/java2d/SurfaceDataProxy$1 +sun/java2d/SurfaceManagerFactory +sun/java2d/cmm/CMSManager +sun/java2d/cmm/ProfileActivator +sun/java2d/cmm/ProfileDeferralInfo +sun/java2d/cmm/ProfileDeferralMgr +sun/java2d/loops/Blit +sun/java2d/loops/BlitBg +sun/java2d/loops/CompositeType +sun/java2d/loops/CustomComponent +sun/java2d/loops/DrawGlyphList +sun/java2d/loops/DrawGlyphListAA +sun/java2d/loops/DrawGlyphListLCD +sun/java2d/loops/DrawLine +sun/java2d/loops/DrawParallelogram +sun/java2d/loops/DrawPath +sun/java2d/loops/DrawPolygons +sun/java2d/loops/DrawRect +sun/java2d/loops/FillParallelogram +sun/java2d/loops/FillPath +sun/java2d/loops/FillRect +sun/java2d/loops/FillSpans +sun/java2d/loops/FontInfo +sun/java2d/loops/GeneralRenderer +sun/java2d/loops/GraphicsPrimitive +sun/java2d/loops/GraphicsPrimitiveMgr +sun/java2d/loops/GraphicsPrimitiveMgr$1 +sun/java2d/loops/GraphicsPrimitiveMgr$2 +sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec +sun/java2d/loops/GraphicsPrimitiveProxy +sun/java2d/loops/MaskBlit +sun/java2d/loops/MaskFill +sun/java2d/loops/ProcessPath$DrawHandler +sun/java2d/loops/RenderCache +sun/java2d/loops/RenderCache$Entry +sun/java2d/loops/RenderLoops +sun/java2d/loops/ScaledBlit +sun/java2d/loops/SurfaceType +sun/java2d/loops/TransformBlit +sun/java2d/loops/TransformHelper +sun/java2d/loops/XORComposite +sun/java2d/opengl/CGLGraphicsConfig +sun/java2d/opengl/CGLGraphicsConfig$1 +sun/java2d/opengl/CGLGraphicsConfig$CGLGCDisposerRecord +sun/java2d/opengl/CGLGraphicsConfig$CGLImageCaps +sun/java2d/opengl/CGLLayer +sun/java2d/opengl/CGLSurfaceData +sun/java2d/opengl/CGLSurfaceData$CGLLayerSurfaceData +sun/java2d/opengl/CGLSurfaceData$CGLOffScreenSurfaceData +sun/java2d/opengl/CGLVolatileSurfaceManager +sun/java2d/opengl/OGLAnyCompositeBlit +sun/java2d/opengl/OGLBlitLoops +sun/java2d/opengl/OGLContext +sun/java2d/opengl/OGLContext$OGLContextCaps +sun/java2d/opengl/OGLDrawImage +sun/java2d/opengl/OGLGeneralBlit +sun/java2d/opengl/OGLGraphicsConfig +sun/java2d/opengl/OGLMaskBlit +sun/java2d/opengl/OGLMaskFill +sun/java2d/opengl/OGLRTTSurfaceToSurfaceBlit +sun/java2d/opengl/OGLRTTSurfaceToSurfaceScale +sun/java2d/opengl/OGLRTTSurfaceToSurfaceTransform +sun/java2d/opengl/OGLRenderQueue +sun/java2d/opengl/OGLRenderQueue$1 +sun/java2d/opengl/OGLRenderQueue$QueueFlusher +sun/java2d/opengl/OGLRenderer +sun/java2d/opengl/OGLSurfaceData +sun/java2d/opengl/OGLSurfaceData$1 +sun/java2d/opengl/OGLSurfaceDataProxy +sun/java2d/opengl/OGLSurfaceToSurfaceBlit +sun/java2d/opengl/OGLSurfaceToSurfaceScale +sun/java2d/opengl/OGLSurfaceToSurfaceTransform +sun/java2d/opengl/OGLSurfaceToSwBlit +sun/java2d/opengl/OGLSwToSurfaceBlit +sun/java2d/opengl/OGLSwToSurfaceScale +sun/java2d/opengl/OGLSwToSurfaceTransform +sun/java2d/opengl/OGLSwToTextureBlit +sun/java2d/opengl/OGLTextRenderer +sun/java2d/opengl/OGLTextureToSurfaceBlit +sun/java2d/opengl/OGLTextureToSurfaceScale +sun/java2d/opengl/OGLTextureToSurfaceTransform +sun/java2d/pipe/AAShapePipe +sun/java2d/pipe/AATextRenderer +sun/java2d/pipe/AlphaColorPipe +sun/java2d/pipe/AlphaPaintPipe +sun/java2d/pipe/BufferedContext +sun/java2d/pipe/BufferedMaskBlit +sun/java2d/pipe/BufferedMaskFill +sun/java2d/pipe/BufferedPaints +sun/java2d/pipe/BufferedRenderPipe +sun/java2d/pipe/BufferedRenderPipe$AAParallelogramPipe +sun/java2d/pipe/BufferedRenderPipe$BufferedDrawHandler +sun/java2d/pipe/BufferedTextPipe +sun/java2d/pipe/CompositePipe +sun/java2d/pipe/DrawImage +sun/java2d/pipe/DrawImagePipe +sun/java2d/pipe/GeneralCompositePipe +sun/java2d/pipe/GlyphListLoopPipe +sun/java2d/pipe/GlyphListPipe +sun/java2d/pipe/LCDTextRenderer +sun/java2d/pipe/LoopBasedPipe +sun/java2d/pipe/LoopPipe +sun/java2d/pipe/NullPipe +sun/java2d/pipe/OutlineTextRenderer +sun/java2d/pipe/ParallelogramPipe +sun/java2d/pipe/PixelDrawPipe +sun/java2d/pipe/PixelFillPipe +sun/java2d/pipe/PixelToParallelogramConverter +sun/java2d/pipe/PixelToShapeConverter +sun/java2d/pipe/Region +sun/java2d/pipe/Region$ImmutableRegion +sun/java2d/pipe/RegionIterator +sun/java2d/pipe/RenderBuffer +sun/java2d/pipe/RenderQueue +sun/java2d/pipe/RenderingEngine +sun/java2d/pipe/RenderingEngine$1 +sun/java2d/pipe/ShapeDrawPipe +sun/java2d/pipe/SolidTextRenderer +sun/java2d/pipe/SpanClipRenderer +sun/java2d/pipe/SpanShapeRenderer +sun/java2d/pipe/SpanShapeRenderer$Composite +sun/java2d/pipe/TextPipe +sun/java2d/pipe/TextRenderer +sun/java2d/pipe/ValidatePipe +sun/java2d/pipe/hw/AccelGraphicsConfig +sun/java2d/pipe/hw/AccelSurface +sun/java2d/pipe/hw/BufferedContextProvider +sun/java2d/pipe/hw/ContextCapabilities +sun/launcher/LauncherHelper +sun/launcher/LauncherHelper$FXHelper +sun/lwawt/LWCanvasPeer +sun/lwawt/LWComponentPeer +sun/lwawt/LWComponentPeer$1 +sun/lwawt/LWComponentPeer$2 +sun/lwawt/LWComponentPeer$3 +sun/lwawt/LWComponentPeer$DelegateContainer +sun/lwawt/LWContainerPeer +sun/lwawt/LWCursorManager +sun/lwawt/LWCursorManager$1 +sun/lwawt/LWGraphicsConfig +sun/lwawt/LWKeyboardFocusManagerPeer +sun/lwawt/LWLabelPeer +sun/lwawt/LWRepaintArea +sun/lwawt/LWToolkit +sun/lwawt/LWWindowPeer +sun/lwawt/LWWindowPeer$PeerType +sun/lwawt/PlatformComponent +sun/lwawt/PlatformEventNotifier +sun/lwawt/PlatformWindow +sun/lwawt/macosx/CClipboard +sun/lwawt/macosx/CCursorManager +sun/lwawt/macosx/CCustomCursor +sun/lwawt/macosx/CDataTransferer +sun/lwawt/macosx/CDropTarget +sun/lwawt/macosx/CFRetainedResource +sun/lwawt/macosx/CImage +sun/lwawt/macosx/CImage$Creator +sun/lwawt/macosx/CInputMethod +sun/lwawt/macosx/CInputMethodDescriptor +sun/lwawt/macosx/CPlatformComponent +sun/lwawt/macosx/CPlatformResponder +sun/lwawt/macosx/CPlatformView +sun/lwawt/macosx/CPlatformWindow +sun/lwawt/macosx/CPlatformWindow$1 +sun/lwawt/macosx/CPlatformWindow$10 +sun/lwawt/macosx/CPlatformWindow$11 +sun/lwawt/macosx/CPlatformWindow$12 +sun/lwawt/macosx/CPlatformWindow$14 +sun/lwawt/macosx/CPlatformWindow$2 +sun/lwawt/macosx/CPlatformWindow$3 +sun/lwawt/macosx/CPlatformWindow$4 +sun/lwawt/macosx/CPlatformWindow$5 +sun/lwawt/macosx/CPlatformWindow$6 +sun/lwawt/macosx/CPlatformWindow$7 +sun/lwawt/macosx/CPlatformWindow$8 +sun/lwawt/macosx/CPlatformWindow$9 +sun/lwawt/macosx/CPrinterDialog +sun/lwawt/macosx/CThreading +sun/lwawt/macosx/CToolkitThreadBlockedHandler +sun/lwawt/macosx/CWrapper$NSWindow +sun/lwawt/macosx/LWCToolkit +sun/lwawt/macosx/LWCToolkit$1 +sun/lwawt/macosx/LWCToolkit$2 +sun/lwawt/macosx/LWCToolkit$5 +sun/lwawt/macosx/LWCToolkit$AppleSpecificColor +sun/lwawt/macosx/NamedCursor +sun/lwawt/macosx/event/NSEvent +sun/misc/ASCIICaseInsensitiveComparator +sun/misc/Cleaner +sun/misc/CompoundEnumeration +sun/misc/ExtensionDependency +sun/misc/FileURLMapper +sun/misc/FloatingDecimal +sun/misc/FloatingDecimal$1 +sun/misc/FloatingDecimal$ASCIIToBinaryConverter +sun/misc/FloatingDecimal$BinaryToASCIIBuffer +sun/misc/FloatingDecimal$BinaryToASCIIConverter +sun/misc/FloatingDecimal$ExceptionalBinaryToASCIIBuffer +sun/misc/FloatingDecimal$PreparedASCIIToBinaryBuffer +sun/misc/IOUtils +sun/misc/JarIndex +sun/misc/JavaAWTAccess +sun/misc/JavaIOFileDescriptorAccess +sun/misc/JavaLangAccess +sun/misc/JavaNetAccess +sun/misc/JavaNioAccess +sun/misc/JavaSecurityAccess +sun/misc/JavaSecurityProtectionDomainAccess +sun/misc/JavaUtilJarAccess +sun/misc/JavaUtilZipFileAccess +sun/misc/Launcher +sun/misc/Launcher$AppClassLoader +sun/misc/Launcher$AppClassLoader$1 +sun/misc/Launcher$BootClassPathHolder +sun/misc/Launcher$BootClassPathHolder$1 +sun/misc/Launcher$ExtClassLoader +sun/misc/Launcher$ExtClassLoader$1 +sun/misc/Launcher$Factory +sun/misc/MetaIndex +sun/misc/NativeSignalHandler +sun/misc/OSEnvironment +sun/misc/Perf +sun/misc/Perf$GetPerfAction +sun/misc/PerfCounter +sun/misc/PerfCounter$CoreCounters +sun/misc/PerformanceLogger +sun/misc/PerformanceLogger$TimeData +sun/misc/PostVMInitHook +sun/misc/Resource +sun/misc/SharedSecrets +sun/misc/Signal +sun/misc/SignalHandler +sun/misc/SoftCache +sun/misc/SoftCache$ValueCell +sun/misc/URLClassPath +sun/misc/URLClassPath$1 +sun/misc/URLClassPath$2 +sun/misc/URLClassPath$3 +sun/misc/URLClassPath$FileLoader +sun/misc/URLClassPath$JarLoader +sun/misc/URLClassPath$JarLoader$1 +sun/misc/URLClassPath$JarLoader$2 +sun/misc/URLClassPath$Loader +sun/misc/Unsafe +sun/misc/VM +sun/misc/Version +sun/net/DefaultProgressMeteringPolicy +sun/net/NetHooks +sun/net/NetHooks$Provider +sun/net/NetProperties +sun/net/NetProperties$1 +sun/net/ProgressMeteringPolicy +sun/net/ProgressMonitor +sun/net/sdp/SdpProvider +sun/net/spi/DefaultProxySelector +sun/net/spi/DefaultProxySelector$1 +sun/net/spi/DefaultProxySelector$3 +sun/net/spi/DefaultProxySelector$NonProxyInfo +sun/net/spi/nameservice/NameService +sun/net/util/IPAddressUtil +sun/net/util/URLUtil +sun/net/www/MessageHeader +sun/net/www/ParseUtil +sun/net/www/URLConnection +sun/net/www/protocol/file/FileURLConnection +sun/net/www/protocol/file/Handler +sun/net/www/protocol/jar/Handler +sun/net/www/protocol/jar/JarFileFactory +sun/net/www/protocol/jar/JarURLConnection +sun/net/www/protocol/jar/JarURLConnection$JarURLInputStream +sun/net/www/protocol/jar/URLJarFile +sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController +sun/net/www/protocol/jar/URLJarFile$URLJarFileEntry +sun/nio/ByteBuffered +sun/nio/ch/DirectBuffer +sun/nio/ch/FileChannelImpl +sun/nio/ch/FileDispatcher +sun/nio/ch/FileDispatcherImpl +sun/nio/ch/IOStatus +sun/nio/ch/IOUtil +sun/nio/ch/IOUtil$1 +sun/nio/ch/Interruptible +sun/nio/ch/NativeDispatcher +sun/nio/ch/NativeThread +sun/nio/ch/NativeThreadSet +sun/nio/ch/Util +sun/nio/ch/Util$1 +sun/nio/ch/Util$BufferCache +sun/nio/cs/ArrayDecoder +sun/nio/cs/ArrayEncoder +sun/nio/cs/FastCharsetProvider +sun/nio/cs/HistoricallyNamedCharset +sun/nio/cs/ISO_8859_1 +sun/nio/cs/ISO_8859_1$Decoder +sun/nio/cs/StandardCharsets +sun/nio/cs/StandardCharsets$Aliases +sun/nio/cs/StandardCharsets$Cache +sun/nio/cs/StandardCharsets$Classes +sun/nio/cs/StreamDecoder +sun/nio/cs/StreamEncoder +sun/nio/cs/US_ASCII +sun/nio/cs/UTF_16 +sun/nio/cs/UTF_16$Decoder +sun/nio/cs/UTF_16BE +sun/nio/cs/UTF_16LE +sun/nio/cs/UTF_8 +sun/nio/cs/UTF_8$Decoder +sun/nio/cs/UTF_8$Encoder +sun/nio/cs/Unicode +sun/nio/cs/UnicodeDecoder +sun/print/PrinterGraphicsConfig +sun/reflect/AccessorGenerator +sun/reflect/BootstrapConstructorAccessorImpl +sun/reflect/ByteVector +sun/reflect/ByteVectorFactory +sun/reflect/ByteVectorImpl +sun/reflect/CallerSensitive +sun/reflect/ClassDefiner +sun/reflect/ClassDefiner$1 +sun/reflect/ClassFileAssembler +sun/reflect/ClassFileConstants +sun/reflect/ConstantPool +sun/reflect/ConstructorAccessor +sun/reflect/ConstructorAccessorImpl +sun/reflect/DelegatingClassLoader +sun/reflect/DelegatingConstructorAccessorImpl +sun/reflect/DelegatingMethodAccessorImpl +sun/reflect/FieldAccessor +sun/reflect/FieldAccessorImpl +sun/reflect/Label +sun/reflect/Label$PatchInfo +sun/reflect/LangReflectAccess +sun/reflect/MagicAccessorImpl +sun/reflect/MethodAccessor +sun/reflect/MethodAccessorGenerator +sun/reflect/MethodAccessorGenerator$1 +sun/reflect/MethodAccessorImpl +sun/reflect/NativeConstructorAccessorImpl +sun/reflect/NativeMethodAccessorImpl +sun/reflect/Reflection +sun/reflect/ReflectionFactory +sun/reflect/ReflectionFactory$1 +sun/reflect/ReflectionFactory$GetReflectionFactoryAction +sun/reflect/SerializationConstructorAccessorImpl +sun/reflect/UTF8 +sun/reflect/UnsafeBooleanFieldAccessorImpl +sun/reflect/UnsafeFieldAccessorFactory +sun/reflect/UnsafeFieldAccessorImpl +sun/reflect/UnsafeObjectFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticLongFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl +sun/reflect/UnsafeStaticFieldAccessorImpl +sun/reflect/annotation/AnnotationType +sun/reflect/generics/repository/AbstractRepository +sun/reflect/generics/repository/ClassRepository +sun/reflect/generics/repository/GenericDeclRepository +sun/reflect/misc/MethodUtil +sun/reflect/misc/MethodUtil$1 +sun/reflect/misc/ReflectUtil +sun/security/action/GetBooleanAction +sun/security/action/GetPropertyAction +sun/security/util/Debug +sun/security/util/ManifestEntryVerifier +sun/swing/DefaultLookup +sun/swing/JLightweightFrame +sun/swing/MenuItemLayoutHelper +sun/swing/StringUIClientPropertyKey +sun/swing/SwingAccessor +sun/swing/SwingAccessor$JTextComponentAccessor +sun/swing/SwingLazyValue +sun/swing/SwingLazyValue$1 +sun/swing/SwingUtilities2 +sun/swing/SwingUtilities2$2 +sun/swing/SwingUtilities2$AATextInfo +sun/swing/SwingUtilities2$LSBCacheEntry +sun/swing/UIAction +sun/swing/UIClientPropertyKey +sun/util/CoreResourceBundleControl +sun/util/PreHashedMap +sun/util/ResourceBundleEnumeration +sun/util/calendar/AbstractCalendar +sun/util/calendar/BaseCalendar +sun/util/calendar/BaseCalendar$Date +sun/util/calendar/CalendarDate +sun/util/calendar/CalendarSystem +sun/util/calendar/CalendarUtils +sun/util/calendar/Gregorian +sun/util/calendar/Gregorian$Date +sun/util/calendar/ZoneInfo +sun/util/calendar/ZoneInfoFile +sun/util/calendar/ZoneInfoFile$1 +sun/util/calendar/ZoneInfoFile$Checksum +sun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule +sun/util/locale/BaseLocale +sun/util/locale/BaseLocale$Cache +sun/util/locale/BaseLocale$Key +sun/util/locale/LocaleObjectCache +sun/util/locale/LocaleObjectCache$CacheEntry +sun/util/locale/LocaleUtils +sun/util/locale/provider/AuxLocaleProviderAdapter +sun/util/locale/provider/AuxLocaleProviderAdapter$NullProvider +sun/util/locale/provider/JRELocaleProviderAdapter +sun/util/locale/provider/JRELocaleProviderAdapter$1 +sun/util/locale/provider/LocaleDataMetaInfo +sun/util/locale/provider/LocaleProviderAdapter +sun/util/locale/provider/LocaleProviderAdapter$1 +sun/util/locale/provider/LocaleProviderAdapter$Type +sun/util/locale/provider/LocaleResources +sun/util/locale/provider/LocaleResources$ResourceReference +sun/util/locale/provider/LocaleServiceProviderPool +sun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter +sun/util/locale/provider/ResourceBundleBasedAdapter +sun/util/locale/provider/SPILocaleProviderAdapter +sun/util/locale/provider/SPILocaleProviderAdapter$1 +sun/util/locale/provider/TimeZoneNameProviderImpl +sun/util/locale/provider/TimeZoneNameUtility$TimeZoneNameGetter +sun/util/logging/LoggingProxy +sun/util/logging/LoggingSupport +sun/util/logging/LoggingSupport$1 +sun/util/logging/LoggingSupport$2 +sun/util/logging/PlatformLogger +sun/util/logging/PlatformLogger$1 +sun/util/logging/PlatformLogger$DefaultLoggerProxy +sun/util/logging/PlatformLogger$JavaLoggerProxy +sun/util/logging/PlatformLogger$Level +sun/util/logging/PlatformLogger$LoggerProxy +sun/util/logging/resources/logging +sun/util/resources/LocaleData +sun/util/resources/LocaleData$1 +sun/util/resources/LocaleData$LocaleDataResourceBundleControl +sun/util/resources/OpenListResourceBundle +sun/util/resources/TimeZoneNames +sun/util/resources/TimeZoneNamesBundle +sun/util/resources/en/TimeZoneNames_en +# 32aa76348b93579f diff --git a/jdk/make/tools/sharing/classlist.solaris b/jdk/make/tools/sharing/classlist.solaris index 8955d32898f..e5175dccb95 100644 --- a/jdk/make/tools/sharing/classlist.solaris +++ b/jdk/make/tools/sharing/classlist.solaris @@ -1,2419 +1,2644 @@ -java/lang/Object -java/lang/String -java/io/Serializable -java/lang/Comparable -java/lang/CharSequence -java/lang/Class -java/lang/reflect/GenericDeclaration -java/lang/reflect/Type -java/lang/reflect/AnnotatedElement -java/lang/Cloneable -java/lang/ClassLoader -java/lang/System -java/lang/Throwable -java/lang/Error -java/lang/ThreadDeath -java/lang/Exception -java/lang/RuntimeException -java/security/ProtectionDomain -java/security/AccessControlContext -java/lang/ClassNotFoundException -java/lang/NoClassDefFoundError -java/lang/LinkageError -java/lang/ClassCastException -java/lang/ArrayStoreException -java/lang/VirtualMachineError -java/lang/OutOfMemoryError -java/lang/StackOverflowError -java/lang/IllegalMonitorStateException -java/lang/ref/Reference -java/lang/ref/SoftReference -java/lang/ref/WeakReference -java/lang/ref/FinalReference -java/lang/ref/PhantomReference -java/lang/ref/Finalizer -java/lang/Thread -java/lang/Runnable -java/lang/ThreadGroup -java/lang/Thread$UncaughtExceptionHandler -java/util/Properties -java/util/Hashtable -java/util/Map -java/util/Dictionary -java/lang/reflect/AccessibleObject -java/lang/reflect/Field -java/lang/reflect/Member -java/lang/reflect/Method -java/lang/reflect/Constructor -sun/reflect/MagicAccessorImpl -sun/reflect/MethodAccessorImpl -sun/reflect/MethodAccessor -sun/reflect/ConstructorAccessorImpl -sun/reflect/ConstructorAccessor -sun/reflect/DelegatingClassLoader -sun/reflect/ConstantPool -sun/reflect/UnsafeStaticFieldAccessorImpl -sun/reflect/UnsafeFieldAccessorImpl -sun/reflect/FieldAccessorImpl -sun/reflect/FieldAccessor -java/util/Vector -java/util/List -java/util/Collection -java/lang/Iterable -java/util/RandomAccess -java/util/AbstractList -java/util/AbstractCollection -java/lang/StringBuffer -java/lang/AbstractStringBuilder -java/lang/Appendable -java/lang/StackTraceElement -java/nio/Buffer -java/lang/Boolean -java/lang/Character -java/lang/Float -java/lang/Number -java/lang/Double -java/lang/Byte -java/lang/Short -java/lang/Integer -java/lang/Long -java/lang/NullPointerException -java/lang/ArithmeticException -java/io/ObjectStreamField -java/lang/String$CaseInsensitiveComparator -java/util/Comparator -java/lang/RuntimePermission -java/security/BasicPermission -java/security/Permission -java/security/Guard -sun/misc/SoftCache -java/util/AbstractMap -java/lang/ref/ReferenceQueue -java/lang/ref/ReferenceQueue$Null -java/lang/ref/ReferenceQueue$Lock -java/util/HashMap -java/lang/annotation/Annotation -java/util/HashMap$Entry -java/util/Map$Entry -java/security/AccessController -java/lang/reflect/ReflectPermission -sun/reflect/ReflectionFactory$GetReflectionFactoryAction -java/security/PrivilegedAction -java/util/Stack -sun/reflect/ReflectionFactory -java/lang/ref/Reference$Lock -java/lang/ref/Reference$ReferenceHandler -java/lang/ref/Finalizer$FinalizerThread -java/util/Enumeration -java/util/Iterator -java/util/Hashtable$Entry -java/nio/charset/Charset -sun/nio/cs/StandardCharsets -sun/nio/cs/FastCharsetProvider -java/nio/charset/spi/CharsetProvider -sun/nio/cs/StandardCharsets$Aliases -sun/util/PreHashedMap -sun/nio/cs/StandardCharsets$Classes -sun/nio/cs/StandardCharsets$Cache -java/lang/ThreadLocal -java/util/concurrent/atomic/AtomicInteger -sun/misc/Unsafe -java/lang/NoSuchMethodError -java/lang/IncompatibleClassChangeError -sun/reflect/Reflection -java/util/Collections -java/util/Collections$EmptySet -java/util/AbstractSet -java/util/Set -java/util/Collections$EmptyList -java/util/Collections$EmptyMap -java/util/Collections$ReverseComparator -java/util/Collections$SynchronizedMap -java/lang/Class$3 -java/lang/reflect/Modifier -java/lang/reflect/ReflectAccess -sun/reflect/LangReflectAccess -java/util/Arrays -java/lang/Math -java/lang/StringBuilder -sun/nio/cs/UTF_8 -sun/nio/cs/Unicode -sun/nio/cs/HistoricallyNamedCharset -java/lang/Class$1 -sun/reflect/ReflectionFactory$1 -sun/reflect/NativeConstructorAccessorImpl -sun/reflect/DelegatingConstructorAccessorImpl -sun/misc/VM -java/lang/StringCoding -java/lang/ThreadLocal$ThreadLocalMap -java/lang/ThreadLocal$ThreadLocalMap$Entry -java/lang/StringCoding$StringDecoder -sun/nio/cs/UTF_8$Decoder -java/nio/charset/CharsetDecoder -java/nio/charset/CodingErrorAction -sun/nio/cs/Surrogate$Generator -sun/nio/cs/Surrogate -java/nio/charset/CoderResult -java/nio/charset/CoderResult$1 -java/nio/charset/CoderResult$Cache -java/nio/charset/CoderResult$2 -java/nio/ByteBuffer -java/nio/HeapByteBuffer -java/nio/Bits -java/nio/ByteOrder -java/nio/CharBuffer -java/lang/Readable -java/nio/HeapCharBuffer -sun/misc/Version -java/io/FileInputStream -java/io/InputStream -java/io/Closeable -java/io/FileDescriptor -java/io/FileOutputStream -java/io/OutputStream -java/io/Flushable -java/io/BufferedInputStream -java/io/FilterInputStream -java/util/concurrent/atomic/AtomicReferenceFieldUpdater -java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl -sun/reflect/misc/ReflectUtil -java/io/PrintStream -java/io/FilterOutputStream -java/io/BufferedOutputStream -java/io/OutputStreamWriter -java/io/Writer -sun/nio/cs/StreamEncoder -sun/security/action/GetPropertyAction -sun/nio/cs/UTF_8$Encoder -java/nio/charset/CharsetEncoder -sun/nio/cs/Surrogate$Parser -java/io/BufferedWriter -java/lang/Runtime -java/io/File -java/io/FileSystem -java/io/UnixFileSystem -java/io/ExpiringCache -java/io/ExpiringCache$1 -java/util/LinkedHashMap -java/util/LinkedHashMap$Entry -sun/misc/SharedSecrets -java/lang/ClassLoader$3 -java/lang/StringCoding$StringEncoder -java/io/ExpiringCache$Entry -java/lang/ClassLoader$NativeLibrary -java/lang/Terminator -java/lang/Terminator$1 -sun/misc/SignalHandler -sun/misc/Signal -sun/misc/NativeSignalHandler -java/io/Console -java/io/Console$1 -sun/misc/JavaIOAccess -java/lang/Shutdown -java/util/ArrayList -java/lang/Shutdown$Lock -java/lang/ApplicationShutdownHooks -java/util/IdentityHashMap -sun/misc/OSEnvironment -java/lang/System$2 -sun/misc/JavaLangAccess -java/lang/Compiler -java/lang/Compiler$1 -sun/misc/Launcher -sun/misc/Launcher$Factory -java/net/URLStreamHandlerFactory -sun/misc/Launcher$ExtClassLoader -java/net/URLClassLoader -java/security/SecureClassLoader -sun/security/util/Debug -java/net/URLClassLoader$7 -sun/misc/JavaNetAccess -java/util/StringTokenizer -sun/misc/Launcher$ExtClassLoader$1 -java/security/PrivilegedExceptionAction -sun/misc/MetaIndex -java/io/BufferedReader -java/io/Reader -java/io/FileReader -java/io/InputStreamReader -sun/nio/cs/StreamDecoder -java/lang/reflect/Array -sun/net/www/ParseUtil -java/util/BitSet -java/io/ObjectStreamClass -java/net/URL -java/util/Locale -java/util/concurrent/ConcurrentHashMap -java/util/concurrent/ConcurrentMap -java/util/concurrent/ConcurrentHashMap$Segment -java/util/concurrent/locks/ReentrantLock -java/util/concurrent/locks/Lock -java/util/concurrent/locks/ReentrantLock$NonfairSync -java/util/concurrent/locks/ReentrantLock$Sync -java/util/concurrent/locks/AbstractQueuedSynchronizer -java/util/concurrent/locks/AbstractOwnableSynchronizer -java/util/concurrent/locks/AbstractQueuedSynchronizer$Node -java/util/concurrent/ConcurrentHashMap$HashEntry -java/lang/CharacterDataLatin1 -java/net/Parts -sun/net/www/protocol/file/Handler -java/net/URLStreamHandler -java/util/HashSet -sun/misc/URLClassPath -sun/net/www/protocol/jar/Handler -sun/misc/Launcher$AppClassLoader -sun/misc/Launcher$AppClassLoader$1 -java/lang/SystemClassLoaderAction -java/net/URLClassLoader$1 -sun/misc/URLClassPath$3 -sun/misc/URLClassPath$JarLoader -sun/misc/URLClassPath$Loader -java/security/PrivilegedActionException -sun/misc/URLClassPath$FileLoader -sun/misc/URLClassPath$FileLoader$1 -sun/misc/Resource -sun/nio/ByteBuffered -java/security/CodeSource -java/security/Permissions -java/security/PermissionCollection -sun/net/www/protocol/file/FileURLConnection -sun/net/www/URLConnection -java/net/URLConnection -java/net/UnknownContentHandler -java/net/ContentHandler -sun/net/www/MessageHeader -java/io/FilePermission -java/io/FilePermission$1 -sun/security/provider/PolicyFile -java/security/Policy -java/security/Policy$UnsupportedEmptyCollection -java/io/FilePermissionCollection -java/security/AllPermission -java/security/UnresolvedPermission -java/security/BasicPermissionCollection -java/security/Principal -java/security/cert/Certificate -java/util/AbstractList$Itr -java/util/IdentityHashMap$KeySet -java/util/IdentityHashMap$KeyIterator -java/util/IdentityHashMap$IdentityHashMapIterator -java/io/DeleteOnExitHook -java/util/LinkedHashSet -java/util/HashMap$KeySet -java/util/LinkedHashMap$KeyIterator -java/util/LinkedHashMap$LinkedHashIterator -java/awt/Frame -java/awt/MenuContainer -java/awt/Window -javax/accessibility/Accessible -java/awt/Container -java/awt/Component -java/awt/image/ImageObserver -java/lang/InterruptedException -java/awt/Label -java/util/logging/Logger -java/util/logging/Handler -java/util/logging/Level -java/util/logging/LogManager -java/util/logging/LogManager$1 -java/beans/PropertyChangeSupport -java/util/logging/LogManager$LogNode -java/util/logging/LoggingPermission -java/util/logging/LogManager$Cleaner -java/util/logging/LogManager$RootLogger -java/util/logging/LogManager$2 -java/util/Properties$LineReader -java/util/Hashtable$Enumerator -java/beans/PropertyChangeEvent -java/util/EventObject -java/awt/Component$AWTTreeLock -sun/awt/NativeLibLoader -sun/security/action/LoadLibraryAction -java/awt/GraphicsEnvironment -java/awt/GraphicsEnvironment$1 -java/lang/ProcessEnvironment -java/lang/ProcessEnvironment$Variable -java/lang/ProcessEnvironment$ExternalData -java/lang/ProcessEnvironment$Value -java/lang/ProcessEnvironment$StringEnvironment -java/util/Collections$UnmodifiableMap -java/awt/Toolkit -java/awt/Toolkit$3 -sun/util/CoreResourceBundleControl -java/util/ResourceBundle$Control -java/util/Arrays$ArrayList -java/util/Collections$UnmodifiableRandomAccessList -java/util/Collections$UnmodifiableList -java/util/Collections$UnmodifiableCollection -java/util/ResourceBundle -java/util/ResourceBundle$1 -java/util/ResourceBundle$RBClassLoader -java/util/ResourceBundle$RBClassLoader$1 -java/util/ResourceBundle$CacheKey -java/util/ResourceBundle$LoaderReference -java/util/ResourceBundle$CacheKeyReference -java/util/ResourceBundle$SingleFormatControl -sun/awt/resources/awt -java/util/ListResourceBundle -java/awt/Toolkit$1 -java/io/FileNotFoundException -java/io/IOException -java/awt/event/KeyEvent -java/awt/event/InputEvent -java/awt/event/ComponentEvent +com/sun/java/swing/SwingUtilities3 +com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI +com/sun/swing/internal/plaf/basic/resources/basic +com/sun/swing/internal/plaf/metal/resources/metal +java/applet/Applet java/awt/AWTEvent -java/awt/event/NativeLibLoader -java/util/WeakHashMap -java/util/WeakHashMap$Entry -java/awt/Component$DummyRequestFocusController -sun/awt/RequestFocusController -java/awt/LayoutManager -java/awt/LightweightDispatcher -java/awt/event/AWTEventListener -java/util/EventListener -java/awt/Dimension -java/awt/geom/Dimension2D -java/util/concurrent/atomic/AtomicBoolean -java/awt/ComponentOrientation -java/awt/Component$2 -java/lang/NoSuchMethodException -sun/awt/AppContext -sun/awt/AppContext$1 -sun/awt/AppContext$2 -sun/awt/MostRecentKeyValue -java/awt/Cursor -sun/awt/X11GraphicsEnvironment -sun/java2d/SunGraphicsEnvironment -sun/java2d/FontSupport -sun/awt/DisplayChangedListener -java/io/FilenameFilter -sun/awt/X11GraphicsEnvironment$1 -sun/awt/SunToolkit -sun/awt/WindowClosingSupport -sun/awt/WindowClosingListener -sun/awt/ComponentFactory -sun/awt/InputMethodSupport -java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject -java/util/concurrent/locks/Condition -sun/awt/AWTAutoShutdown -sun/awt/SunToolkit$6 -java/awt/Dialog$ModalExclusionType -java/lang/Enum -java/awt/Dialog -java/awt/Dialog$ModalityType -java/awt/ModalEventFilter -java/awt/EventFilter -sun/reflect/UnsafeFieldAccessorFactory -sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl -sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl -sun/awt/SunDisplayChanger -sun/java2d/SunGraphicsEnvironment$1 -sun/font/FontManager -sun/font/FileFont -sun/font/PhysicalFont -sun/font/Font2D -sun/font/CompositeFont -java/util/HashMap$Values -java/util/HashMap$ValueIterator -java/util/HashMap$HashIterator -java/awt/Font -java/awt/geom/AffineTransform -sun/font/AttributeValues -sun/font/EAttribute -java/text/AttributedCharacterIterator$Attribute -java/lang/Class$4 -sun/reflect/NativeMethodAccessorImpl -sun/reflect/DelegatingMethodAccessorImpl -java/awt/font/TextAttribute -java/lang/Integer$IntegerCache -sun/font/TrueTypeFont -java/awt/font/FontRenderContext -java/awt/RenderingHints -sun/awt/SunHints -sun/awt/SunHints$Key -java/awt/RenderingHints$Key -sun/awt/SunHints$Value -sun/awt/SunHints$LCDContrastKey -sun/font/Type1Font -java/awt/geom/Point2D$Float -java/awt/geom/Point2D -sun/font/StrikeMetrics -java/awt/geom/Rectangle2D$Float -java/awt/geom/Rectangle2D -java/awt/geom/RectangularShape -java/awt/Shape -java/awt/geom/GeneralPath -java/awt/geom/Path2D$Float -java/awt/geom/Path2D -sun/font/CharToGlyphMapper -sun/font/PhysicalStrike -sun/font/FontStrike -sun/font/GlyphList -sun/font/StrikeCache -sun/java2d/Disposer -sun/java2d/Disposer$1 -sun/font/StrikeCache$1 -sun/awt/motif/MFontConfiguration -sun/awt/FontConfiguration -sun/awt/FontDescriptor -java/io/DataInputStream -java/io/DataInput -java/lang/Short$ShortCache -java/util/HashMap$KeyIterator -sun/font/CompositeFontDescriptor -sun/font/Font2DHandle -sun/font/FontFamily -java/awt/GraphicsDevice -sun/awt/X11GraphicsDevice -sun/awt/X11GraphicsConfig -java/awt/GraphicsConfiguration -java/awt/ImageCapabilities -sun/java2d/x11/X11SurfaceData -sun/java2d/SurfaceData -java/awt/Transparency -sun/java2d/DisposerTarget -sun/java2d/InvalidPipeException -java/lang/IllegalStateException -sun/java2d/NullSurfaceData -sun/java2d/loops/SurfaceType -sun/awt/image/PixelConverter -sun/awt/image/PixelConverter$Xrgb -sun/awt/image/PixelConverter$Argb -sun/awt/image/PixelConverter$ArgbPre -sun/awt/image/PixelConverter$Xbgr -sun/awt/image/PixelConverter$Rgba -sun/awt/image/PixelConverter$RgbaPre -sun/awt/image/PixelConverter$Ushort565Rgb -sun/awt/image/PixelConverter$Ushort555Rgb -sun/awt/image/PixelConverter$Ushort555Rgbx -sun/awt/image/PixelConverter$Ushort4444Argb -sun/awt/image/PixelConverter$ByteGray -sun/awt/image/PixelConverter$UshortGray -sun/awt/image/PixelConverter$Rgbx -sun/awt/image/PixelConverter$Bgrx -sun/awt/image/PixelConverter$ArgbBm -java/awt/image/ColorModel -java/awt/image/DirectColorModel -java/awt/image/PackedColorModel -java/awt/color/ColorSpace -java/awt/color/ICC_Profile -java/awt/color/ICC_ProfileRGB -java/awt/color/ICC_Profile$1 -java/awt/color/ICC_ColorSpace -sun/java2d/pipe/NullPipe -sun/java2d/pipe/PixelDrawPipe -sun/java2d/pipe/PixelFillPipe -sun/java2d/pipe/ShapeDrawPipe -sun/java2d/pipe/TextPipe -sun/java2d/pipe/DrawImagePipe -java/awt/image/IndexColorModel -sun/java2d/pipe/LoopPipe -sun/java2d/pipe/OutlineTextRenderer -sun/java2d/pipe/SolidTextRenderer -sun/java2d/pipe/GlyphListLoopPipe -sun/java2d/pipe/GlyphListPipe -sun/java2d/pipe/AATextRenderer -sun/java2d/pipe/LCDTextRenderer -sun/java2d/pipe/AlphaColorPipe -sun/java2d/pipe/CompositePipe -sun/java2d/pipe/PixelToShapeConverter -sun/java2d/pipe/TextRenderer -sun/java2d/pipe/SpanClipRenderer -sun/java2d/pipe/Region -sun/java2d/pipe/RegionIterator -sun/java2d/pipe/AlphaPaintPipe -sun/java2d/pipe/SpanShapeRenderer$Composite -sun/java2d/pipe/SpanShapeRenderer -sun/java2d/pipe/GeneralCompositePipe -sun/java2d/pipe/DrawImage -sun/java2d/loops/RenderCache -sun/java2d/loops/RenderCache$Entry -sun/java2d/loops/XORComposite -java/awt/Composite -sun/font/X11TextRenderer -sun/java2d/loops/GraphicsPrimitive -sun/java2d/x11/X11PMBlitLoops -sun/java2d/loops/Blit -sun/java2d/loops/GraphicsPrimitiveMgr -sun/java2d/loops/CompositeType -sun/java2d/SunGraphics2D -sun/awt/ConstrainableGraphics -java/awt/Graphics2D -java/awt/Graphics -java/awt/Color -java/awt/Paint -java/awt/AlphaComposite -sun/java2d/loops/BlitBg -sun/java2d/loops/ScaledBlit -sun/java2d/loops/FillRect -sun/java2d/loops/FillSpans -sun/java2d/loops/DrawLine -sun/java2d/loops/DrawRect -sun/java2d/loops/DrawPolygons -sun/java2d/loops/DrawPath -sun/java2d/loops/FillPath -sun/java2d/loops/MaskBlit -sun/java2d/loops/MaskFill -sun/java2d/loops/DrawGlyphList -sun/java2d/loops/DrawGlyphListAA -sun/java2d/loops/DrawGlyphListLCD -sun/java2d/loops/TransformHelper -java/awt/BasicStroke -java/awt/Stroke -sun/misc/PerformanceLogger -sun/misc/PerformanceLogger$TimeData -sun/java2d/pipe/ValidatePipe -sun/java2d/loops/CustomComponent -sun/java2d/loops/GraphicsPrimitiveProxy -sun/java2d/loops/GeneralRenderer -sun/java2d/loops/GraphicsPrimitiveMgr$1 -sun/java2d/loops/GraphicsPrimitiveMgr$2 -sun/java2d/x11/X11PMBlitLoops$DelegateBlitLoop -sun/java2d/x11/X11PMBlitBgLoops -sun/java2d/x11/X11SurfaceData$LazyPipe -sun/awt/X11GraphicsConfig$X11GCDisposerRecord -sun/java2d/DisposerRecord -java/awt/BorderLayout -java/awt/LayoutManager2 -java/awt/Rectangle -java/awt/Toolkit$2 -sun/awt/X11/XToolkit -sun/awt/X11/XConstants -sun/awt/UNIXToolkit -java/util/TreeMap -java/util/NavigableMap -java/util/SortedMap -sun/awt/X11/XlibWrapper -sun/awt/X11/XUtilConstants -sun/awt/X11/XProtocolConstants -sun/awt/X11/XCursorFontConstants -sun/awt/X11/XlibWrapper$1 -sun/awt/X11/XToolkit$4 -sun/awt/X11/XModifierKeymap -sun/awt/X11/XWrapperBase -sun/awt/X11/Native -sun/awt/X11/Native$1 -java/awt/EventQueue -java/util/EmptyStackException -java/lang/reflect/InvocationTargetException -java/awt/EventDispatchThread -java/awt/event/PaintEvent -java/awt/event/MouseEvent -sun/awt/PeerEvent -java/awt/event/InvocationEvent -java/awt/ActiveEvent -sun/awt/X11/XToolkit$1 -sun/awt/X11/XEventDispatcher -sun/awt/SunToolkit$ModalityListenerList -sun/awt/ModalityListener -sun/awt/SunToolkit$1 -java/util/MissingResourceException -java/awt/Queue -sun/awt/PostEventQueue -java/util/LinkedList -java/util/Deque -java/util/Queue -java/util/AbstractSequentialList -sun/awt/X11/AwtScreenData -sun/awt/X11/XWM -sun/awt/X11/MWMConstants -sun/awt/X11/XAtom -java/awt/Insets -sun/awt/X11/XWM$1 -sun/awt/X11/XSetWindowAttributes -sun/awt/X11/XErrorEvent -sun/awt/X11/XNETProtocol -sun/awt/X11/XStateProtocol -sun/awt/X11/XLayerProtocol -sun/awt/X11/XProtocol -java/lang/Long$LongCache -sun/awt/X11/WindowPropertyGetter -sun/awt/X11/UnsafeXDisposerRecord -sun/awt/X11/XPropertyCache -sun/awt/X11/XWINProtocol -sun/awt/X11/XAtomList -sun/awt/X11/XToolkit$3 -java/awt/Window$WindowDisposerRecord -sun/awt/X11/XAnyEvent -java/awt/KeyboardFocusManager -java/awt/KeyEventDispatcher -java/awt/KeyEventPostProcessor +java/awt/AWTEvent$1 +java/awt/AWTEventMulticaster java/awt/AWTKeyStroke java/awt/AWTKeyStroke$1 -java/awt/DefaultKeyboardFocusManager -java/awt/DefaultFocusTraversalPolicy +java/awt/ActiveEvent +java/awt/Adjustable +java/awt/AlphaComposite +java/awt/BasicStroke +java/awt/BorderLayout +java/awt/BufferCapabilities +java/awt/Canvas +java/awt/CardLayout +java/awt/CardLayout$Card +java/awt/Color +java/awt/Component +java/awt/Component$1 +java/awt/Component$3 +java/awt/Component$AWTTreeLock +java/awt/Component$AccessibleAWTComponent +java/awt/Component$BaselineResizeBehavior +java/awt/Component$BltBufferStrategy +java/awt/Component$BltSubRegionBufferStrategy +java/awt/Component$DummyRequestFocusController +java/awt/Component$FlipBufferStrategy +java/awt/ComponentOrientation +java/awt/Composite +java/awt/Conditional +java/awt/Container +java/awt/Container$1 +java/awt/Container$AccessibleAWTContainer java/awt/ContainerOrderFocusTraversalPolicy +java/awt/Cursor +java/awt/Cursor$1 +java/awt/DefaultFocusTraversalPolicy +java/awt/DefaultKeyboardFocusManager +java/awt/DefaultKeyboardFocusManager$1 +java/awt/DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent +java/awt/DefaultKeyboardFocusManager$TypeAheadMarker +java/awt/Dialog +java/awt/Dialog$ModalExclusionType +java/awt/Dialog$ModalityType +java/awt/Dimension +java/awt/Event +java/awt/EventDispatchThread +java/awt/EventDispatchThread$1 +java/awt/EventDispatchThread$HierarchyEventFilter +java/awt/EventFilter +java/awt/EventFilter$FilterAction +java/awt/EventQueue +java/awt/EventQueue$1 +java/awt/EventQueue$1AWTInvocationLock +java/awt/EventQueue$2 +java/awt/EventQueue$3 +java/awt/EventQueue$4 +java/awt/EventQueue$5 +java/awt/FlowLayout java/awt/FocusTraversalPolicy -java/util/Collections$UnmodifiableSet -sun/awt/HeadlessToolkit -sun/awt/X11/XKeyboardFocusManagerPeer -java/awt/peer/KeyboardFocusManagerPeer -sun/awt/X11/XKeyboardFocusManagerPeer$1 -sun/awt/X11/XFramePeer -java/awt/peer/FramePeer -java/awt/peer/WindowPeer -java/awt/peer/ContainerPeer -java/awt/peer/ComponentPeer -sun/awt/X11/XDecoratedPeer -sun/awt/X11/XWindowPeer -sun/awt/X11/XPanelPeer -java/awt/peer/PanelPeer -sun/awt/X11/XCanvasPeer -java/awt/peer/CanvasPeer -sun/awt/X11/XComponentPeer -java/awt/dnd/peer/DropTargetPeer -sun/awt/X11/XWindow -sun/awt/X11ComponentPeer -sun/awt/X11/XBaseWindow -sun/awt/X11/XCreateWindowParams -sun/awt/X11/XBaseWindow$InitialiseState -sun/awt/X11/XBaseWindow$StateLock -sun/awt/X11/AwtGraphicsConfigData -sun/awt/X11/XVisualInfo -java/awt/SystemColor -sun/awt/X11/MotifColorUtilities -java/util/concurrent/locks/LockSupport -sun/nio/ch/Interruptible -java/lang/StringIndexOutOfBoundsException -java/lang/IndexOutOfBoundsException -java/lang/StrictMath -sun/awt/X11/XRepaintArea -sun/awt/RepaintArea -sun/awt/X11/XWindowAttributesData -sun/awt/X11/WindowDimensions +java/awt/Font +java/awt/Font$FontAccessImpl +java/awt/FontFormatException +java/awt/FontMetrics +java/awt/Frame +java/awt/Frame$1 +java/awt/Graphics +java/awt/Graphics2D +java/awt/GraphicsCallback +java/awt/GraphicsCallback$PaintCallback +java/awt/GraphicsConfiguration +java/awt/GraphicsDevice +java/awt/GraphicsEnvironment +java/awt/GraphicsEnvironment$1 +java/awt/GridLayout +java/awt/Image +java/awt/Image$1 +java/awt/ImageCapabilities +java/awt/ImageMediaEntry +java/awt/Insets +java/awt/ItemSelectable +java/awt/KeyEventDispatcher +java/awt/KeyEventPostProcessor +java/awt/KeyboardFocusManager +java/awt/KeyboardFocusManager$1 +java/awt/KeyboardFocusManager$3 +java/awt/KeyboardFocusManager$HeavyweightFocusRequest +java/awt/KeyboardFocusManager$LightweightFocusRequest +java/awt/Label +java/awt/LayoutManager +java/awt/LayoutManager2 +java/awt/LightweightDispatcher +java/awt/LightweightDispatcher$2 +java/awt/MediaEntry +java/awt/MediaTracker +java/awt/MenuBar +java/awt/MenuComponent +java/awt/MenuContainer +java/awt/ModalEventFilter +java/awt/Paint +java/awt/Panel java/awt/Point -java/util/TreeMap$Entry -sun/awt/X11/XRootWindow -sun/nio/cs/ISO_8859_1 -sun/nio/cs/ISO_8859_1$Encoder -sun/nio/cs/ISO_8859_1$Decoder -sun/awt/X11/XPropertyEvent -sun/awt/X11/XDropTargetEventProcessor -sun/awt/X11/XDragSourceContextPeer -sun/awt/X11/XDragSourceProtocolListener -sun/awt/dnd/SunDragSourceContextPeer -java/awt/dnd/peer/DragSourceContextPeer -sun/awt/X11/XAwtState -sun/awt/X11/XBaseWindow$1 -sun/java2d/x11/X11SurfaceData$X11WindowSurfaceData -sun/java2d/loops/RenderLoops -sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec -sun/java2d/DefaultDisposerRecord -sun/java2d/x11/X11Renderer -sun/awt/X11/XGlobalCursorManager -sun/awt/GlobalCursorManager -java/awt/Cursor$CursorDisposer -java/awt/AWTException -java/awt/HeadlessException -java/lang/UnsupportedOperationException -sun/reflect/UnsafeLongFieldAccessorImpl -sun/reflect/UnsafeIntegerFieldAccessorImpl -sun/awt/X11/XClientMessageEvent -sun/awt/X11/XIconInfo -sun/awt/X11/XAWTIcon32_java_icon16_png -sun/awt/X11/XAWTIcon32_java_icon24_png -sun/awt/X11/XAWTIcon32_java_icon32_png -sun/awt/X11/XAWTIcon32_java_icon48_png -sun/awt/X11/XSizeHints -sun/awt/X11/XContentWindow -sun/awt/X11/XFocusProxyWindow -sun/awt/X11/XWMHints -java/util/LinkedList$ListItr -java/util/ListIterator -sun/awt/SunToolkit$2 -java/awt/image/BufferStrategy +java/awt/PrintGraphics +java/awt/Queue +java/awt/Rectangle +java/awt/RenderingHints +java/awt/RenderingHints$Key +java/awt/SentEvent +java/awt/SequencedEvent +java/awt/SequencedEvent$1 +java/awt/Shape +java/awt/SplashScreen +java/awt/Stroke +java/awt/SystemColor +java/awt/Toolkit +java/awt/Toolkit$1 +java/awt/Toolkit$2 +java/awt/Toolkit$3 +java/awt/Toolkit$4 +java/awt/Toolkit$5 +java/awt/Toolkit$DesktopPropertyChangeSupport +java/awt/Toolkit$DesktopPropertyChangeSupport$1 +java/awt/Toolkit$SelectiveAWTEventListener +java/awt/Toolkit$ToolkitEventMulticaster +java/awt/Transparency +java/awt/TrayIcon +java/awt/VKCollection +java/awt/Window +java/awt/Window$1 +java/awt/Window$1DisposeAction +java/awt/Window$Type +java/awt/Window$WindowDisposerRecord +java/awt/color/ColorSpace +java/awt/color/ICC_ColorSpace +java/awt/color/ICC_Profile +java/awt/color/ICC_Profile$1 +java/awt/color/ICC_ProfileRGB +java/awt/datatransfer/Clipboard +java/awt/datatransfer/ClipboardOwner +java/awt/datatransfer/FlavorMap +java/awt/datatransfer/FlavorTable +java/awt/datatransfer/SystemFlavorMap +java/awt/datatransfer/Transferable java/awt/dnd/DropTarget +java/awt/dnd/DropTargetContext java/awt/dnd/DropTargetListener +java/awt/dnd/peer/DragSourceContextPeer +java/awt/dnd/peer/DropTargetContextPeer +java/awt/dnd/peer/DropTargetPeer +java/awt/event/AWTEventListener +java/awt/event/AWTEventListenerProxy +java/awt/event/ActionEvent +java/awt/event/ActionListener +java/awt/event/AdjustmentEvent +java/awt/event/AdjustmentListener +java/awt/event/ComponentAdapter +java/awt/event/ComponentEvent java/awt/event/ComponentListener +java/awt/event/ContainerEvent +java/awt/event/ContainerListener +java/awt/event/FocusAdapter +java/awt/event/FocusEvent java/awt/event/FocusListener -java/awt/event/HierarchyListener java/awt/event/HierarchyBoundsListener +java/awt/event/HierarchyListener +java/awt/event/InputEvent +java/awt/event/InputEvent$1 +java/awt/event/InputMethodEvent +java/awt/event/InputMethodListener +java/awt/event/InvocationEvent +java/awt/event/InvocationEvent$1 +java/awt/event/ItemEvent +java/awt/event/ItemListener +java/awt/event/KeyAdapter +java/awt/event/KeyEvent +java/awt/event/KeyEvent$1 java/awt/event/KeyListener +java/awt/event/MouseAdapter +java/awt/event/MouseEvent java/awt/event/MouseListener +java/awt/event/MouseMotionAdapter java/awt/event/MouseMotionListener java/awt/event/MouseWheelListener -java/awt/event/InputMethodListener -java/awt/event/ContainerListener -javax/accessibility/AccessibleContext -sun/reflect/UnsafeObjectFieldAccessorImpl -java/awt/peer/LightweightPeer -sun/awt/X11/XLabelPeer +java/awt/event/NativeLibLoader +java/awt/event/NativeLibLoader$1 +java/awt/event/PaintEvent +java/awt/event/TextListener +java/awt/event/WindowAdapter +java/awt/event/WindowEvent +java/awt/event/WindowFocusListener +java/awt/event/WindowListener +java/awt/event/WindowStateListener +java/awt/font/FontRenderContext +java/awt/font/GlyphVector +java/awt/font/LineMetrics +java/awt/font/TextAttribute +java/awt/geom/AffineTransform +java/awt/geom/Dimension2D +java/awt/geom/GeneralPath +java/awt/geom/Path2D +java/awt/geom/Path2D$Float +java/awt/geom/Path2D$Float$CopyIterator +java/awt/geom/Path2D$Iterator +java/awt/geom/PathIterator +java/awt/geom/Point2D +java/awt/geom/Point2D$Float +java/awt/geom/RectIterator +java/awt/geom/Rectangle2D +java/awt/geom/Rectangle2D$Float +java/awt/geom/RectangularShape +java/awt/im/InputContext +java/awt/im/InputMethodRequests +java/awt/im/spi/InputMethod +java/awt/im/spi/InputMethodContext +java/awt/im/spi/InputMethodDescriptor +java/awt/image/BufferStrategy +java/awt/image/BufferedImage +java/awt/image/BufferedImage$1 +java/awt/image/ColorModel +java/awt/image/ColorModel$1 +java/awt/image/ComponentSampleModel +java/awt/image/DataBuffer +java/awt/image/DataBuffer$1 +java/awt/image/DataBufferByte +java/awt/image/DataBufferInt +java/awt/image/DirectColorModel +java/awt/image/FilteredImageSource +java/awt/image/ImageConsumer +java/awt/image/ImageFilter +java/awt/image/ImageObserver +java/awt/image/ImageProducer +java/awt/image/IndexColorModel +java/awt/image/PackedColorModel +java/awt/image/PixelInterleavedSampleModel +java/awt/image/RGBImageFilter +java/awt/image/Raster +java/awt/image/RenderedImage +java/awt/image/SampleModel +java/awt/image/SinglePixelPackedSampleModel +java/awt/image/VolatileImage +java/awt/image/WritableRaster +java/awt/image/WritableRenderedImage +java/awt/peer/CanvasPeer +java/awt/peer/ComponentPeer +java/awt/peer/ContainerPeer +java/awt/peer/FramePeer +java/awt/peer/KeyboardFocusManagerPeer java/awt/peer/LabelPeer -sun/awt/X11/XQueryTree -sun/awt/X11/XMapEvent -sun/awt/X11/XConfigureEvent -sun/awt/X11/PropMwmHints -sun/awt/GlobalCursorManager$NativeUpdater -javax/swing/JFrame -javax/swing/WindowConstants -javax/swing/RootPaneContainer -javax/swing/TransferHandler$HasGetTransferHandler -javax/swing/JLabel -javax/swing/SwingConstants -javax/swing/JComponent -javax/swing/JComponent$1 -javax/swing/SwingUtilities -javax/swing/JRootPane -sun/security/action/GetBooleanAction -javax/swing/event/EventListenerList -javax/swing/JPanel -java/awt/FlowLayout -javax/swing/UIManager -javax/swing/UIManager$LookAndFeelInfo -sun/swing/SwingUtilities2 -sun/swing/SwingUtilities2$LSBCacheEntry -javax/swing/UIManager$LAFState -javax/swing/UIDefaults -javax/swing/MultiUIDefaults -javax/swing/UIManager$1 -javax/swing/plaf/metal/MetalLookAndFeel -javax/swing/plaf/basic/BasicLookAndFeel -javax/swing/LookAndFeel -sun/swing/DefaultLookup -javax/swing/plaf/metal/OceanTheme -javax/swing/plaf/metal/DefaultMetalTheme -javax/swing/plaf/metal/MetalTheme -javax/swing/plaf/ColorUIResource -javax/swing/plaf/UIResource -sun/swing/PrintColorUIResource -javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate -javax/swing/plaf/FontUIResource -sun/swing/SwingLazyValue -javax/swing/UIDefaults$LazyValue -javax/swing/UIDefaults$ActiveValue -javax/swing/plaf/InsetsUIResource -sun/swing/SwingUtilities2$2 -javax/swing/plaf/basic/BasicLookAndFeel$2 -javax/swing/plaf/DimensionUIResource -javax/swing/UIDefaults$LazyInputMap -java/lang/Character$CharacterCache -javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue -javax/swing/plaf/metal/MetalLookAndFeel$FontActiveValue -java/awt/print/PrinterJob -sun/swing/SwingUtilities2$AATextInfo -sun/awt/X11/XAWTXSettings -sun/awt/X11/XMSelectionListener -sun/awt/XSettings -sun/awt/X11/XMSelection -sun/awt/X11/XMSelection$1 -sun/awt/X11/XMSelection$3 -sun/awt/XSettings$Update -java/util/HashMap$EntrySet -java/util/HashMap$EntryIterator -javax/swing/plaf/metal/MetalLookAndFeel$AATextListener +java/awt/peer/LightweightPeer +java/awt/peer/PanelPeer +java/awt/peer/SystemTrayPeer +java/awt/peer/WindowPeer +java/awt/print/PrinterGraphics +java/beans/ChangeListenerMap +java/beans/PropertyChangeEvent java/beans/PropertyChangeListener java/beans/PropertyChangeListenerProxy +java/beans/PropertyChangeSupport +java/beans/PropertyChangeSupport$PropertyChangeListenerMap +java/beans/VetoableChangeListener +java/io/Bits +java/io/BufferedInputStream +java/io/BufferedOutputStream +java/io/BufferedReader +java/io/BufferedWriter +java/io/ByteArrayInputStream +java/io/ByteArrayOutputStream +java/io/Closeable +java/io/DataInput +java/io/DataInputStream +java/io/DataOutput +java/io/DataOutputStream +java/io/DefaultFileSystem +java/io/EOFException +java/io/ExpiringCache +java/io/ExpiringCache$1 +java/io/ExpiringCache$Entry +java/io/Externalizable +java/io/File +java/io/File$PathStatus +java/io/FileDescriptor +java/io/FileDescriptor$1 +java/io/FileInputStream +java/io/FileInputStream$1 +java/io/FileNotFoundException +java/io/FileOutputStream +java/io/FileOutputStream$1 +java/io/FilePermission +java/io/FilePermission$1 +java/io/FilePermissionCollection +java/io/FileReader +java/io/FileSystem +java/io/FileWriter +java/io/FilenameFilter +java/io/FilterInputStream +java/io/FilterOutputStream +java/io/FilterReader +java/io/Flushable +java/io/IOException +java/io/InputStream +java/io/InputStreamReader +java/io/InterruptedIOException +java/io/NotSerializableException +java/io/ObjectInput +java/io/ObjectInputStream +java/io/ObjectInputStream$BlockDataInputStream +java/io/ObjectInputStream$GetField +java/io/ObjectInputStream$GetFieldImpl +java/io/ObjectInputStream$HandleTable +java/io/ObjectInputStream$HandleTable$HandleList +java/io/ObjectInputStream$PeekInputStream +java/io/ObjectInputStream$ValidationList +java/io/ObjectOutput +java/io/ObjectOutputStream +java/io/ObjectOutputStream$BlockDataOutputStream +java/io/ObjectOutputStream$HandleTable +java/io/ObjectOutputStream$ReplaceTable +java/io/ObjectStreamClass +java/io/ObjectStreamClass$1 +java/io/ObjectStreamClass$2 +java/io/ObjectStreamClass$3 +java/io/ObjectStreamClass$4 +java/io/ObjectStreamClass$5 +java/io/ObjectStreamClass$Caches +java/io/ObjectStreamClass$ClassDataSlot +java/io/ObjectStreamClass$EntryFuture +java/io/ObjectStreamClass$ExceptionInfo +java/io/ObjectStreamClass$FieldReflector +java/io/ObjectStreamClass$FieldReflectorKey +java/io/ObjectStreamClass$MemberSignature +java/io/ObjectStreamClass$WeakClassKey +java/io/ObjectStreamConstants +java/io/ObjectStreamException +java/io/ObjectStreamField +java/io/OutputStream +java/io/OutputStreamWriter +java/io/PrintStream +java/io/PushbackInputStream +java/io/RandomAccessFile +java/io/RandomAccessFile$1 +java/io/Reader +java/io/SerialCallbackContext +java/io/Serializable +java/io/StreamTokenizer +java/io/StringReader +java/io/StringWriter +java/io/UnixFileSystem +java/io/UnsupportedEncodingException +java/io/Writer +java/lang/AbstractStringBuilder +java/lang/Appendable +java/lang/ApplicationShutdownHooks +java/lang/ApplicationShutdownHooks$1 +java/lang/ArithmeticException +java/lang/ArrayIndexOutOfBoundsException +java/lang/ArrayStoreException +java/lang/AssertionError +java/lang/AutoCloseable +java/lang/Boolean +java/lang/BootstrapMethodError +java/lang/Byte +java/lang/CharSequence +java/lang/Character +java/lang/Character$CharacterCache +java/lang/CharacterData +java/lang/CharacterData00 +java/lang/CharacterDataLatin1 +java/lang/Class +java/lang/Class$1 +java/lang/Class$3 +java/lang/Class$4 +java/lang/Class$AnnotationData +java/lang/Class$Atomic +java/lang/Class$ReflectionData +java/lang/ClassCastException +java/lang/ClassFormatError +java/lang/ClassLoader +java/lang/ClassLoader$2 +java/lang/ClassLoader$3 +java/lang/ClassLoader$NativeLibrary +java/lang/ClassLoader$ParallelLoaders +java/lang/ClassLoaderHelper +java/lang/ClassNotFoundException +java/lang/ClassValue$ClassValueMap +java/lang/CloneNotSupportedException +java/lang/Cloneable +java/lang/Comparable +java/lang/Compiler +java/lang/Compiler$1 +java/lang/Double +java/lang/Enum +java/lang/Error +java/lang/Exception +java/lang/ExceptionInInitializerError +java/lang/Float +java/lang/IllegalAccessError +java/lang/IllegalAccessException +java/lang/IllegalArgumentException +java/lang/IllegalMonitorStateException +java/lang/IllegalStateException +java/lang/IncompatibleClassChangeError +java/lang/IndexOutOfBoundsException +java/lang/InheritableThreadLocal +java/lang/InstantiationException +java/lang/Integer +java/lang/Integer$IntegerCache +java/lang/InternalError +java/lang/InterruptedException +java/lang/Iterable +java/lang/LinkageError +java/lang/Long +java/lang/Long$LongCache +java/lang/Math +java/lang/NoClassDefFoundError +java/lang/NoSuchFieldException +java/lang/NoSuchMethodError +java/lang/NoSuchMethodException +java/lang/NullPointerException +java/lang/Number +java/lang/NumberFormatException +java/lang/Object +java/lang/OutOfMemoryError +java/lang/Package +java/lang/Process +java/lang/ProcessBuilder +java/lang/ProcessEnvironment +java/lang/ProcessEnvironment$ExternalData +java/lang/ProcessEnvironment$StringEnvironment +java/lang/ProcessEnvironment$Value +java/lang/ProcessEnvironment$Variable +java/lang/ProcessImpl +java/lang/Readable +java/lang/ReflectiveOperationException +java/lang/Runnable +java/lang/Runtime +java/lang/RuntimeException +java/lang/RuntimePermission +java/lang/SecurityException +java/lang/SecurityManager +java/lang/Short +java/lang/Short$ShortCache +java/lang/Shutdown +java/lang/Shutdown$Lock +java/lang/StackOverflowError +java/lang/StackTraceElement +java/lang/StrictMath +java/lang/String +java/lang/String$CaseInsensitiveComparator +java/lang/StringBuffer +java/lang/StringBuilder +java/lang/StringCoding +java/lang/StringCoding$StringDecoder +java/lang/StringCoding$StringEncoder +java/lang/StringIndexOutOfBoundsException +java/lang/System +java/lang/System$2 +java/lang/SystemClassLoaderAction +java/lang/Terminator +java/lang/Terminator$1 +java/lang/Thread +java/lang/Thread$State +java/lang/Thread$UncaughtExceptionHandler +java/lang/ThreadDeath +java/lang/ThreadGroup +java/lang/ThreadLocal +java/lang/ThreadLocal$ThreadLocalMap +java/lang/ThreadLocal$ThreadLocalMap$Entry +java/lang/Throwable +java/lang/Throwable$PrintStreamOrWriter +java/lang/Throwable$WrappedPrintStream +java/lang/UNIXProcess +java/lang/UNIXProcess$1 +java/lang/UNIXProcess$2 +java/lang/UNIXProcess$3 +java/lang/UNIXProcess$3$1 +java/lang/UNIXProcess$DeferredCloseInputStream +java/lang/UNIXProcess$LaunchMechanism +java/lang/UnsatisfiedLinkError +java/lang/UnsupportedOperationException +java/lang/VirtualMachineError +java/lang/Void +java/lang/annotation/Annotation +java/lang/invoke/CallSite +java/lang/invoke/ConstantCallSite +java/lang/invoke/DirectMethodHandle +java/lang/invoke/Invokers +java/lang/invoke/LambdaForm +java/lang/invoke/LambdaForm$NamedFunction +java/lang/invoke/MemberName +java/lang/invoke/MemberName$Factory +java/lang/invoke/MethodHandle +java/lang/invoke/MethodHandleImpl +java/lang/invoke/MethodHandleNatives +java/lang/invoke/MethodHandleStatics +java/lang/invoke/MethodHandleStatics$1 +java/lang/invoke/MethodType +java/lang/invoke/MethodType$ConcurrentWeakInternSet +java/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry +java/lang/invoke/MethodTypeForm +java/lang/invoke/MutableCallSite +java/lang/invoke/VolatileCallSite +java/lang/ref/FinalReference +java/lang/ref/Finalizer +java/lang/ref/Finalizer$FinalizerThread +java/lang/ref/PhantomReference +java/lang/ref/Reference +java/lang/ref/Reference$Lock +java/lang/ref/Reference$ReferenceHandler +java/lang/ref/ReferenceQueue +java/lang/ref/ReferenceQueue$Lock +java/lang/ref/ReferenceQueue$Null +java/lang/ref/SoftReference +java/lang/ref/WeakReference +java/lang/reflect/AccessibleObject +java/lang/reflect/AnnotatedElement +java/lang/reflect/Array +java/lang/reflect/Constructor +java/lang/reflect/Executable +java/lang/reflect/Field +java/lang/reflect/GenericDeclaration +java/lang/reflect/InvocationHandler +java/lang/reflect/InvocationTargetException +java/lang/reflect/Member +java/lang/reflect/Method +java/lang/reflect/Modifier +java/lang/reflect/Parameter +java/lang/reflect/Proxy +java/lang/reflect/Proxy$KeyFactory +java/lang/reflect/Proxy$ProxyClassFactory +java/lang/reflect/ReflectAccess +java/lang/reflect/ReflectPermission +java/lang/reflect/Type +java/lang/reflect/WeakCache +java/math/BigInteger +java/math/BigInteger$UnsafeHolder +java/math/MutableBigInteger +java/math/RoundingMode +java/net/AbstractPlainDatagramSocketImpl +java/net/AbstractPlainDatagramSocketImpl$1 +java/net/AbstractPlainSocketImpl +java/net/AbstractPlainSocketImpl$1 +java/net/Authenticator +java/net/BindException +java/net/ConnectException +java/net/DatagramPacket +java/net/DatagramPacket$1 +java/net/DatagramSocket +java/net/DatagramSocket$1 +java/net/DatagramSocketImpl +java/net/DefaultDatagramSocketImplFactory +java/net/DefaultInterface +java/net/FileNameMap +java/net/HttpURLConnection +java/net/Inet4Address +java/net/Inet4AddressImpl +java/net/Inet6Address +java/net/Inet6Address$Inet6AddressHolder +java/net/Inet6AddressImpl +java/net/InetAddress +java/net/InetAddress$1 +java/net/InetAddress$2 +java/net/InetAddress$Cache +java/net/InetAddress$Cache$Type +java/net/InetAddress$CacheEntry +java/net/InetAddress$InetAddressHolder +java/net/InetAddressImpl +java/net/InetAddressImplFactory +java/net/InetSocketAddress +java/net/InetSocketAddress$InetSocketAddressHolder +java/net/InterfaceAddress +java/net/JarURLConnection +java/net/MalformedURLException +java/net/MulticastSocket +java/net/NetworkInterface +java/net/NetworkInterface$1 +java/net/NetworkInterface$2 +java/net/NoRouteToHostException +java/net/Parts +java/net/PlainDatagramSocketImpl +java/net/PlainSocketImpl +java/net/Proxy +java/net/Proxy$Type +java/net/ProxySelector +java/net/ServerSocket +java/net/Socket +java/net/SocketAddress +java/net/SocketException +java/net/SocketImpl +java/net/SocketImplFactory +java/net/SocketOptions +java/net/SocksConsts +java/net/SocksSocketImpl +java/net/SocksSocketImpl$3 +java/net/URI +java/net/URI$Parser +java/net/URL +java/net/URLClassLoader +java/net/URLClassLoader$1 +java/net/URLClassLoader$2 +java/net/URLClassLoader$3 +java/net/URLClassLoader$3$1 +java/net/URLClassLoader$7 +java/net/URLConnection +java/net/URLConnection$1 +java/net/URLStreamHandler +java/net/URLStreamHandlerFactory +java/net/UnknownHostException +java/nio/Bits +java/nio/Bits$1 +java/nio/Buffer +java/nio/BufferUnderflowException +java/nio/ByteBuffer +java/nio/ByteBufferAsIntBufferB +java/nio/ByteBufferAsShortBufferB +java/nio/ByteOrder +java/nio/CharBuffer +java/nio/DirectByteBuffer +java/nio/DirectByteBuffer$Deallocator +java/nio/DirectByteBufferR +java/nio/DirectLongBufferU +java/nio/HeapByteBuffer +java/nio/HeapCharBuffer +java/nio/IntBuffer +java/nio/LongBuffer +java/nio/MappedByteBuffer +java/nio/ShortBuffer +java/nio/channels/ByteChannel +java/nio/channels/Channel +java/nio/channels/FileChannel +java/nio/channels/FileChannel$MapMode +java/nio/channels/GatheringByteChannel +java/nio/channels/InterruptibleChannel +java/nio/channels/NetworkChannel +java/nio/channels/ReadableByteChannel +java/nio/channels/ScatteringByteChannel +java/nio/channels/SeekableByteChannel +java/nio/channels/SelectableChannel +java/nio/channels/SocketChannel +java/nio/channels/WritableByteChannel +java/nio/channels/spi/AbstractInterruptibleChannel +java/nio/channels/spi/AbstractInterruptibleChannel$1 +java/nio/channels/spi/AbstractSelectableChannel +java/nio/charset/Charset +java/nio/charset/Charset$ExtendedProviderHolder +java/nio/charset/Charset$ExtendedProviderHolder$1 +java/nio/charset/CharsetDecoder +java/nio/charset/CharsetEncoder +java/nio/charset/CoderResult +java/nio/charset/CoderResult$1 +java/nio/charset/CoderResult$2 +java/nio/charset/CoderResult$Cache +java/nio/charset/CodingErrorAction +java/nio/charset/StandardCharsets +java/nio/charset/spi/CharsetProvider +java/nio/file/Path +java/nio/file/Watchable +java/nio/file/attribute/FileAttribute +java/security/AccessControlContext +java/security/AccessControlException +java/security/AccessController +java/security/AlgorithmParameters +java/security/AlgorithmParametersSpi +java/security/AllPermission +java/security/AllPermissionCollection +java/security/AuthProvider +java/security/BasicPermission +java/security/BasicPermissionCollection +java/security/CodeSigner +java/security/CodeSource +java/security/DigestException +java/security/GeneralSecurityException +java/security/Guard +java/security/InvalidAlgorithmParameterException +java/security/InvalidKeyException +java/security/InvalidParameterException +java/security/Key +java/security/KeyException +java/security/KeyFactory +java/security/KeyFactorySpi +java/security/MessageDigest +java/security/MessageDigest$Delegate +java/security/MessageDigestSpi +java/security/NoSuchAlgorithmException +java/security/Permission +java/security/PermissionCollection +java/security/Permissions +java/security/Principal +java/security/PrivateKey +java/security/PrivilegedAction +java/security/PrivilegedActionException +java/security/PrivilegedExceptionAction +java/security/ProtectionDomain +java/security/ProtectionDomain$1 +java/security/ProtectionDomain$3 +java/security/ProtectionDomain$Key +java/security/Provider +java/security/Provider$EngineDescription +java/security/Provider$Service +java/security/Provider$ServiceKey +java/security/Provider$UString +java/security/ProviderException +java/security/PublicKey +java/security/SecureClassLoader +java/security/SecureRandomSpi +java/security/Security +java/security/Security$1 +java/security/SecurityPermission +java/security/Signature +java/security/Signature$Delegate +java/security/SignatureException +java/security/SignatureSpi +java/security/UnresolvedPermission +java/security/cert/CertPath +java/security/cert/Certificate +java/security/cert/CertificateFactory +java/security/cert/CertificateFactorySpi +java/security/cert/Extension +java/security/cert/X509Certificate +java/security/cert/X509Extension +java/security/interfaces/DSAKey +java/security/interfaces/DSAParams +java/security/interfaces/DSAPrivateKey +java/security/interfaces/DSAPublicKey +java/security/interfaces/RSAKey +java/security/interfaces/RSAPrivateCrtKey +java/security/interfaces/RSAPrivateKey +java/security/interfaces/RSAPublicKey +java/security/spec/AlgorithmParameterSpec +java/security/spec/DSAParameterSpec +java/security/spec/DSAPublicKeySpec +java/security/spec/EncodedKeySpec +java/security/spec/InvalidKeySpecException +java/security/spec/KeySpec +java/security/spec/PKCS8EncodedKeySpec +java/security/spec/RSAPrivateCrtKeySpec +java/security/spec/RSAPrivateKeySpec +java/security/spec/RSAPublicKeySpec +java/security/spec/X509EncodedKeySpec +java/text/AttributedCharacterIterator$Attribute +java/text/CharacterIterator +java/text/Collator +java/text/DateFormat +java/text/DateFormat$Field +java/text/DateFormatSymbols +java/text/DecimalFormat +java/text/DecimalFormatSymbols +java/text/DigitList +java/text/DontCareFieldPosition +java/text/DontCareFieldPosition$1 +java/text/EntryPair +java/text/FieldPosition +java/text/Format +java/text/Format$Field +java/text/Format$FieldDelegate +java/text/MergeCollation +java/text/MessageFormat +java/text/MessageFormat$Field +java/text/Normalizer +java/text/Normalizer$Form +java/text/NumberFormat +java/text/NumberFormat$Field +java/text/ParseException +java/text/PatternEntry +java/text/PatternEntry$Parser +java/text/RBCollationTables +java/text/RBCollationTables$BuildAPI +java/text/RBTableBuilder +java/text/RuleBasedCollator +java/text/SimpleDateFormat +java/text/spi/BreakIteratorProvider +java/text/spi/CollatorProvider +java/text/spi/DateFormatProvider +java/text/spi/DateFormatSymbolsProvider +java/text/spi/DecimalFormatSymbolsProvider +java/text/spi/NumberFormatProvider +java/util/AbstractCollection +java/util/AbstractList +java/util/AbstractList$Itr +java/util/AbstractList$ListItr +java/util/AbstractMap +java/util/AbstractQueue +java/util/AbstractSequentialList +java/util/AbstractSet +java/util/ArrayDeque +java/util/ArrayList +java/util/ArrayList$1 +java/util/ArrayList$Itr +java/util/ArrayList$ListItr +java/util/ArrayList$SubList +java/util/ArrayList$SubList$1 +java/util/Arrays +java/util/Arrays$ArrayList +java/util/Arrays$LegacyMergeSort +java/util/Base64 +java/util/Base64$Decoder +java/util/Base64$Encoder +java/util/BitSet +java/util/Calendar +java/util/Calendar$Builder +java/util/Collection +java/util/Collections +java/util/Collections$3 +java/util/Collections$EmptyEnumeration +java/util/Collections$EmptyIterator +java/util/Collections$EmptyList +java/util/Collections$EmptyMap +java/util/Collections$EmptySet +java/util/Collections$SetFromMap +java/util/Collections$SynchronizedCollection +java/util/Collections$SynchronizedMap +java/util/Collections$SynchronizedSet +java/util/Collections$SynchronizedSortedSet +java/util/Collections$UnmodifiableCollection +java/util/Collections$UnmodifiableCollection$1 +java/util/Collections$UnmodifiableList +java/util/Collections$UnmodifiableList$1 +java/util/Collections$UnmodifiableMap +java/util/Collections$UnmodifiableRandomAccessList +java/util/Collections$UnmodifiableSet +java/util/ComparableTimSort +java/util/Comparator +java/util/Currency +java/util/Currency$1 +java/util/Currency$CurrencyNameGetter +java/util/Date +java/util/Deque +java/util/Dictionary +java/util/Enumeration +java/util/EventListener java/util/EventListenerProxy -sun/awt/EventListenerAggregate -javax/swing/UIDefaults$ProxyLazyValue +java/util/EventObject +java/util/GregorianCalendar +java/util/HashMap +java/util/HashMap$EntryIterator +java/util/HashMap$EntrySet +java/util/HashMap$HashIterator +java/util/HashMap$KeyIterator +java/util/HashMap$KeySet +java/util/HashMap$Node +java/util/HashMap$TreeNode +java/util/HashMap$ValueIterator +java/util/HashMap$Values +java/util/HashSet +java/util/Hashtable +java/util/Hashtable$Entry +java/util/Hashtable$EntrySet +java/util/Hashtable$Enumerator +java/util/Hashtable$ValueCollection +java/util/IdentityHashMap +java/util/IdentityHashMap$IdentityHashMapIterator +java/util/IdentityHashMap$KeyIterator +java/util/IdentityHashMap$KeySet +java/util/IdentityHashMap$ValueIterator +java/util/IdentityHashMap$Values +java/util/Iterator +java/util/LinkedHashMap +java/util/LinkedHashMap$Entry +java/util/LinkedHashMap$LinkedEntryIterator +java/util/LinkedHashMap$LinkedEntrySet +java/util/LinkedHashMap$LinkedHashIterator +java/util/LinkedHashMap$LinkedKeyIterator +java/util/LinkedHashMap$LinkedKeySet +java/util/LinkedList +java/util/LinkedList$ListItr +java/util/LinkedList$Node +java/util/List +java/util/ListIterator +java/util/ListResourceBundle +java/util/Locale +java/util/Locale$1 +java/util/Locale$Cache +java/util/Locale$Category +java/util/Locale$LocaleKey +java/util/Map +java/util/Map$Entry +java/util/MissingResourceException +java/util/NavigableMap +java/util/NavigableSet +java/util/Objects +java/util/PriorityQueue +java/util/Properties +java/util/Properties$LineReader +java/util/PropertyResourceBundle +java/util/Queue +java/util/Random +java/util/RandomAccess +java/util/ResourceBundle +java/util/ResourceBundle$1 +java/util/ResourceBundle$BundleReference +java/util/ResourceBundle$CacheKey +java/util/ResourceBundle$CacheKeyReference +java/util/ResourceBundle$Control +java/util/ResourceBundle$Control$1 +java/util/ResourceBundle$Control$CandidateListCache +java/util/ResourceBundle$LoaderReference +java/util/ResourceBundle$RBClassLoader +java/util/ResourceBundle$RBClassLoader$1 +java/util/ResourceBundle$SingleFormatControl +java/util/ServiceLoader +java/util/ServiceLoader$1 +java/util/ServiceLoader$LazyIterator +java/util/Set +java/util/SortedMap +java/util/SortedSet +java/util/Stack +java/util/StringTokenizer +java/util/TimSort +java/util/TimeZone +java/util/TimeZone$1 +java/util/TreeMap +java/util/TreeMap$Entry +java/util/TreeSet +java/util/Vector +java/util/Vector$1 +java/util/Vector$Itr +java/util/Vector$ListItr +java/util/WeakHashMap +java/util/WeakHashMap$Entry +java/util/WeakHashMap$KeySet +java/util/concurrent/BlockingQueue +java/util/concurrent/ConcurrentHashMap +java/util/concurrent/ConcurrentHashMap$BaseIterator +java/util/concurrent/ConcurrentHashMap$CollectionView +java/util/concurrent/ConcurrentHashMap$CounterCell +java/util/concurrent/ConcurrentHashMap$EntrySetView +java/util/concurrent/ConcurrentHashMap$ForwardingNode +java/util/concurrent/ConcurrentHashMap$KeyIterator +java/util/concurrent/ConcurrentHashMap$KeySetView +java/util/concurrent/ConcurrentHashMap$Node +java/util/concurrent/ConcurrentHashMap$Segment +java/util/concurrent/ConcurrentHashMap$Traverser +java/util/concurrent/ConcurrentHashMap$ValueIterator +java/util/concurrent/ConcurrentHashMap$ValuesView +java/util/concurrent/ConcurrentMap +java/util/concurrent/ConcurrentNavigableMap +java/util/concurrent/ConcurrentSkipListMap +java/util/concurrent/ConcurrentSkipListMap$EntrySet +java/util/concurrent/ConcurrentSkipListMap$HeadIndex +java/util/concurrent/ConcurrentSkipListMap$Index +java/util/concurrent/ConcurrentSkipListMap$KeySet +java/util/concurrent/ConcurrentSkipListMap$Node +java/util/concurrent/ConcurrentSkipListMap$Values +java/util/concurrent/ConcurrentSkipListSet +java/util/concurrent/CopyOnWriteArrayList +java/util/concurrent/DelayQueue +java/util/concurrent/Delayed +java/util/concurrent/ThreadLocalRandom +java/util/concurrent/TimeUnit +java/util/concurrent/TimeUnit$1 +java/util/concurrent/TimeUnit$2 +java/util/concurrent/TimeUnit$3 +java/util/concurrent/TimeUnit$4 +java/util/concurrent/TimeUnit$5 +java/util/concurrent/TimeUnit$6 +java/util/concurrent/TimeUnit$7 +java/util/concurrent/atomic/AtomicBoolean +java/util/concurrent/atomic/AtomicInteger +java/util/concurrent/atomic/AtomicLong +java/util/concurrent/atomic/AtomicMarkableReference +java/util/concurrent/atomic/AtomicMarkableReference$Pair +java/util/concurrent/atomic/AtomicReferenceFieldUpdater +java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl +java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1 +java/util/concurrent/locks/AbstractOwnableSynchronizer +java/util/concurrent/locks/AbstractQueuedSynchronizer +java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject +java/util/concurrent/locks/AbstractQueuedSynchronizer$Node +java/util/concurrent/locks/Condition +java/util/concurrent/locks/Lock +java/util/concurrent/locks/LockSupport +java/util/concurrent/locks/ReentrantLock +java/util/concurrent/locks/ReentrantLock$NonfairSync +java/util/concurrent/locks/ReentrantLock$Sync +java/util/function/BiFunction +java/util/jar/Attributes +java/util/jar/Attributes$Name +java/util/jar/JarEntry +java/util/jar/JarFile +java/util/jar/JarFile$JarEntryIterator +java/util/jar/JarFile$JarFileEntry +java/util/jar/JarVerifier +java/util/jar/JarVerifier$3 +java/util/jar/JarVerifier$VerifierStream +java/util/jar/JavaUtilJarAccessImpl +java/util/jar/Manifest +java/util/jar/Manifest$FastInputStream +java/util/logging/Handler +java/util/logging/Level +java/util/logging/Level$KnownLevel +java/util/logging/LogManager +java/util/logging/LogManager$1 +java/util/logging/LogManager$2 +java/util/logging/LogManager$3 +java/util/logging/LogManager$5 +java/util/logging/LogManager$Cleaner +java/util/logging/LogManager$LogNode +java/util/logging/LogManager$LoggerContext +java/util/logging/LogManager$LoggerContext$1 +java/util/logging/LogManager$LoggerWeakRef +java/util/logging/LogManager$RootLogger +java/util/logging/LogManager$SystemLoggerContext +java/util/logging/Logger +java/util/logging/Logger$1 +java/util/logging/LoggingPermission +java/util/logging/LoggingProxyImpl +java/util/regex/MatchResult +java/util/regex/Matcher +java/util/regex/Pattern +java/util/regex/Pattern$4 +java/util/regex/Pattern$BnM +java/util/regex/Pattern$GroupHead +java/util/regex/Pattern$LastNode +java/util/regex/Pattern$Node +java/util/regex/Pattern$Slice +java/util/regex/Pattern$SliceNode +java/util/regex/Pattern$Start +java/util/regex/Pattern$TreeInfo +java/util/spi/CalendarDataProvider +java/util/spi/CurrencyNameProvider +java/util/spi/LocaleNameProvider +java/util/spi/LocaleServiceProvider +java/util/spi/ResourceBundleControlProvider +java/util/spi/TimeZoneNameProvider +java/util/zip/CRC32 +java/util/zip/Checksum +java/util/zip/DeflaterOutputStream +java/util/zip/GZIPInputStream +java/util/zip/Inflater +java/util/zip/InflaterInputStream +java/util/zip/ZStreamRef +java/util/zip/ZipCoder +java/util/zip/ZipConstants +java/util/zip/ZipEntry +java/util/zip/ZipFile +java/util/zip/ZipFile$1 +java/util/zip/ZipFile$ZipEntryIterator +java/util/zip/ZipFile$ZipFileInflaterInputStream +java/util/zip/ZipFile$ZipFileInputStream +java/util/zip/ZipInputStream +java/util/zip/ZipUtils +javax/accessibility/Accessible +javax/accessibility/AccessibleAction +javax/accessibility/AccessibleBundle +javax/accessibility/AccessibleComponent +javax/accessibility/AccessibleContext +javax/accessibility/AccessibleExtendedComponent +javax/accessibility/AccessibleRelationSet +javax/accessibility/AccessibleState +javax/accessibility/AccessibleText +javax/accessibility/AccessibleValue +javax/crypto/SecretKey +javax/security/auth/Destroyable +javax/security/auth/login/FailedLoginException +javax/security/auth/login/LoginException +javax/security/auth/x500/X500Principal +javax/sound/sampled/Control$Type +javax/sound/sampled/DataLine +javax/sound/sampled/DataLine$Info +javax/sound/sampled/FloatControl$Type +javax/sound/sampled/Line +javax/sound/sampled/Line$Info +javax/sound/sampled/LineUnavailableException +javax/sound/sampled/UnsupportedAudioFileException +javax/swing/AbstractAction +javax/swing/AbstractButton +javax/swing/AbstractButton$AccessibleAbstractButton +javax/swing/AbstractButton$Handler +javax/swing/AbstractCellEditor +javax/swing/AbstractListModel +javax/swing/Action +javax/swing/ActionMap +javax/swing/AncestorNotifier +javax/swing/ArrayTable +javax/swing/BorderFactory +javax/swing/BoundedRangeModel +javax/swing/Box +javax/swing/Box$Filler +javax/swing/BoxLayout +javax/swing/BufferStrategyPaintManager +javax/swing/BufferStrategyPaintManager$BufferInfo +javax/swing/ButtonGroup +javax/swing/ButtonModel +javax/swing/CellEditor +javax/swing/CellRendererPane +javax/swing/ClientPropertyKey +javax/swing/ClientPropertyKey$1 +javax/swing/ComboBoxEditor +javax/swing/ComboBoxModel +javax/swing/ComponentInputMap +javax/swing/DefaultBoundedRangeModel +javax/swing/DefaultButtonModel +javax/swing/DefaultCellEditor +javax/swing/DefaultCellEditor$1 +javax/swing/DefaultCellEditor$EditorDelegate +javax/swing/DefaultComboBoxModel +javax/swing/DefaultListCellRenderer +javax/swing/DefaultListCellRenderer$UIResource +javax/swing/DefaultListModel +javax/swing/DefaultListSelectionModel +javax/swing/DefaultSingleSelectionModel +javax/swing/DropMode +javax/swing/FocusManager +javax/swing/GrayFilter +javax/swing/Icon +javax/swing/ImageIcon +javax/swing/ImageIcon$1 +javax/swing/ImageIcon$2 +javax/swing/ImageIcon$2$1 +javax/swing/ImageIcon$3 +javax/swing/InputMap +javax/swing/InternalFrameFocusTraversalPolicy +javax/swing/JButton +javax/swing/JCheckBox +javax/swing/JCheckBoxMenuItem +javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem +javax/swing/JComboBox +javax/swing/JComboBox$1 +javax/swing/JComboBox$KeySelectionManager +javax/swing/JComponent +javax/swing/JComponent$1 +javax/swing/JComponent$2 +javax/swing/JComponent$AccessibleJComponent +javax/swing/JDialog +javax/swing/JEditorPane +javax/swing/JFrame +javax/swing/JInternalFrame +javax/swing/JLabel +javax/swing/JLayer +javax/swing/JLayeredPane +javax/swing/JList +javax/swing/JList$3 +javax/swing/JList$ListSelectionHandler +javax/swing/JMenu +javax/swing/JMenu$MenuChangeListener +javax/swing/JMenu$WinListener +javax/swing/JMenuBar +javax/swing/JMenuItem +javax/swing/JMenuItem$AccessibleJMenuItem +javax/swing/JMenuItem$MenuItemFocusListener +javax/swing/JPanel +javax/swing/JPopupMenu +javax/swing/JPopupMenu$Separator +javax/swing/JProgressBar +javax/swing/JProgressBar$ModelListener +javax/swing/JRadioButton +javax/swing/JRadioButtonMenuItem +javax/swing/JRootPane +javax/swing/JRootPane$1 +javax/swing/JRootPane$RootLayout +javax/swing/JScrollBar +javax/swing/JScrollBar$ModelListener +javax/swing/JScrollPane +javax/swing/JScrollPane$ScrollBar +javax/swing/JSeparator +javax/swing/JSlider +javax/swing/JSlider$ModelListener +javax/swing/JSplitPane +javax/swing/JTabbedPane +javax/swing/JTabbedPane$ModelListener +javax/swing/JTabbedPane$Page +javax/swing/JTable +javax/swing/JTable$2 +javax/swing/JTable$5 +javax/swing/JTable$Resizable2 +javax/swing/JTable$Resizable3 +javax/swing/JTextArea +javax/swing/JTextField +javax/swing/JTextField$NotifyAction +javax/swing/JTextField$ScrollRepainter +javax/swing/JToggleButton +javax/swing/JToggleButton$ToggleButtonModel +javax/swing/JToolBar +javax/swing/JToolBar$DefaultToolBarLayout +javax/swing/JToolBar$Separator +javax/swing/JToolTip +javax/swing/JTree +javax/swing/JTree$TreeModelHandler +javax/swing/JTree$TreeSelectionRedirector +javax/swing/JViewport +javax/swing/JViewport$ViewListener +javax/swing/JWindow +javax/swing/KeyStroke +javax/swing/KeyboardManager +javax/swing/KeyboardManager$ComponentKeyStrokePair +javax/swing/LayoutComparator +javax/swing/LayoutFocusTraversalPolicy +javax/swing/ListCellRenderer +javax/swing/ListModel +javax/swing/ListSelectionModel +javax/swing/LookAndFeel +javax/swing/MenuElement +javax/swing/MenuSelectionManager +javax/swing/MultiUIDefaults +javax/swing/MutableComboBoxModel +javax/swing/RepaintManager +javax/swing/RepaintManager$2 +javax/swing/RepaintManager$3 +javax/swing/RepaintManager$DisplayChangedHandler +javax/swing/RepaintManager$PaintManager +javax/swing/RepaintManager$ProcessingRunnable +javax/swing/RootPaneContainer +javax/swing/ScrollPaneConstants +javax/swing/ScrollPaneLayout +javax/swing/ScrollPaneLayout$UIResource +javax/swing/Scrollable +javax/swing/SingleSelectionModel +javax/swing/SizeRequirements +javax/swing/SortingFocusTraversalPolicy +javax/swing/SwingConstants +javax/swing/SwingContainerOrderFocusTraversalPolicy +javax/swing/SwingDefaultFocusTraversalPolicy +javax/swing/SwingPaintEventDispatcher +javax/swing/SwingUtilities +javax/swing/SwingUtilities$SharedOwnerFrame +javax/swing/Timer +javax/swing/Timer$DoPostEvent +javax/swing/TimerQueue +javax/swing/TimerQueue$1 +javax/swing/TimerQueue$DelayedTimer +javax/swing/ToolTipManager +javax/swing/ToolTipManager$AccessibilityKeyListener +javax/swing/ToolTipManager$MoveBeforeEnterListener +javax/swing/ToolTipManager$insideTimerAction +javax/swing/ToolTipManager$outsideTimerAction +javax/swing/ToolTipManager$stillInsideTimerAction +javax/swing/TransferHandler +javax/swing/TransferHandler$DropHandler +javax/swing/TransferHandler$HasGetTransferHandler +javax/swing/TransferHandler$SwingDropTarget +javax/swing/TransferHandler$TransferAction +javax/swing/TransferHandler$TransferSupport +javax/swing/UIDefaults +javax/swing/UIDefaults$ActiveValue +javax/swing/UIDefaults$LazyInputMap +javax/swing/UIDefaults$LazyValue +javax/swing/UIDefaults$TextAndMnemonicHashMap +javax/swing/UIManager +javax/swing/UIManager$1 +javax/swing/UIManager$2 +javax/swing/UIManager$LAFState +javax/swing/UIManager$LookAndFeelInfo +javax/swing/UnsupportedLookAndFeelException +javax/swing/ViewportLayout +javax/swing/WindowConstants +javax/swing/border/AbstractBorder +javax/swing/border/BevelBorder +javax/swing/border/Border +javax/swing/border/CompoundBorder +javax/swing/border/EmptyBorder +javax/swing/border/EtchedBorder +javax/swing/border/LineBorder +javax/swing/border/MatteBorder +javax/swing/border/TitledBorder +javax/swing/event/AncestorEvent +javax/swing/event/AncestorListener +javax/swing/event/CaretEvent +javax/swing/event/CaretListener +javax/swing/event/CellEditorListener +javax/swing/event/ChangeEvent +javax/swing/event/ChangeListener +javax/swing/event/DocumentEvent +javax/swing/event/DocumentEvent$ElementChange +javax/swing/event/DocumentEvent$EventType +javax/swing/event/DocumentListener +javax/swing/event/EventListenerList +javax/swing/event/ListDataEvent +javax/swing/event/ListDataListener +javax/swing/event/ListSelectionEvent +javax/swing/event/ListSelectionListener +javax/swing/event/MenuDragMouseListener +javax/swing/event/MenuEvent +javax/swing/event/MenuKeyListener +javax/swing/event/MenuListener +javax/swing/event/MouseInputAdapter +javax/swing/event/MouseInputListener +javax/swing/event/PopupMenuListener +javax/swing/event/RowSorterListener +javax/swing/event/SwingPropertyChangeSupport +javax/swing/event/TableColumnModelEvent +javax/swing/event/TableColumnModelListener +javax/swing/event/TableModelEvent +javax/swing/event/TableModelListener +javax/swing/event/TreeExpansionListener +javax/swing/event/TreeModelEvent +javax/swing/event/TreeModelListener +javax/swing/event/TreeSelectionEvent +javax/swing/event/TreeSelectionListener +javax/swing/event/UndoableEditEvent +javax/swing/event/UndoableEditListener +javax/swing/filechooser/FileFilter +javax/swing/plaf/ActionMapUIResource +javax/swing/plaf/BorderUIResource +javax/swing/plaf/BorderUIResource$CompoundBorderUIResource +javax/swing/plaf/BorderUIResource$EmptyBorderUIResource +javax/swing/plaf/BorderUIResource$LineBorderUIResource +javax/swing/plaf/ButtonUI +javax/swing/plaf/ColorUIResource +javax/swing/plaf/ComboBoxUI +javax/swing/plaf/ComponentInputMapUIResource +javax/swing/plaf/ComponentUI +javax/swing/plaf/DimensionUIResource +javax/swing/plaf/FontUIResource +javax/swing/plaf/InputMapUIResource +javax/swing/plaf/InsetsUIResource +javax/swing/plaf/LabelUI +javax/swing/plaf/ListUI +javax/swing/plaf/MenuBarUI +javax/swing/plaf/MenuItemUI +javax/swing/plaf/PanelUI +javax/swing/plaf/PopupMenuUI +javax/swing/plaf/ProgressBarUI +javax/swing/plaf/RootPaneUI +javax/swing/plaf/ScrollBarUI +javax/swing/plaf/ScrollPaneUI +javax/swing/plaf/SeparatorUI +javax/swing/plaf/SliderUI +javax/swing/plaf/SplitPaneUI +javax/swing/plaf/TabbedPaneUI +javax/swing/plaf/TableHeaderUI +javax/swing/plaf/TableUI +javax/swing/plaf/TextUI +javax/swing/plaf/ToolBarUI +javax/swing/plaf/TreeUI +javax/swing/plaf/UIResource +javax/swing/plaf/ViewportUI +javax/swing/plaf/basic/BasicArrowButton +javax/swing/plaf/basic/BasicBorders +javax/swing/plaf/basic/BasicBorders$ButtonBorder +javax/swing/plaf/basic/BasicBorders$MarginBorder +javax/swing/plaf/basic/BasicBorders$RadioButtonBorder +javax/swing/plaf/basic/BasicBorders$RolloverMarginBorder +javax/swing/plaf/basic/BasicBorders$SplitPaneBorder +javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder +javax/swing/plaf/basic/BasicButtonListener +javax/swing/plaf/basic/BasicButtonUI +javax/swing/plaf/basic/BasicCheckBoxMenuItemUI +javax/swing/plaf/basic/BasicComboBoxEditor +javax/swing/plaf/basic/BasicComboBoxEditor$BorderlessTextField +javax/swing/plaf/basic/BasicComboBoxEditor$UIResource +javax/swing/plaf/basic/BasicComboBoxRenderer +javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource +javax/swing/plaf/basic/BasicComboBoxUI +javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager +javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager +javax/swing/plaf/basic/BasicComboBoxUI$Handler +javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler +javax/swing/plaf/basic/BasicComboPopup +javax/swing/plaf/basic/BasicComboPopup$1 +javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass +javax/swing/plaf/basic/BasicComboPopup$Handler +javax/swing/plaf/basic/BasicGraphicsUtils +javax/swing/plaf/basic/BasicHTML +javax/swing/plaf/basic/BasicLabelUI +javax/swing/plaf/basic/BasicListUI +javax/swing/plaf/basic/BasicListUI$Handler +javax/swing/plaf/basic/BasicListUI$ListTransferHandler +javax/swing/plaf/basic/BasicLookAndFeel +javax/swing/plaf/basic/BasicLookAndFeel$1 +javax/swing/plaf/basic/BasicLookAndFeel$2 +javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper +javax/swing/plaf/basic/BasicMenuBarUI +javax/swing/plaf/basic/BasicMenuBarUI$Handler +javax/swing/plaf/basic/BasicMenuItemUI +javax/swing/plaf/basic/BasicMenuItemUI$Handler +javax/swing/plaf/basic/BasicMenuUI +javax/swing/plaf/basic/BasicMenuUI$Handler +javax/swing/plaf/basic/BasicPanelUI +javax/swing/plaf/basic/BasicPopupMenuUI +javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener +javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener +javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper +javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper$1 +javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber +javax/swing/plaf/basic/BasicProgressBarUI +javax/swing/plaf/basic/BasicProgressBarUI$Handler +javax/swing/plaf/basic/BasicRadioButtonMenuItemUI +javax/swing/plaf/basic/BasicRadioButtonUI +javax/swing/plaf/basic/BasicRootPaneUI +javax/swing/plaf/basic/BasicRootPaneUI$RootPaneInputMap +javax/swing/plaf/basic/BasicScrollBarUI +javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener +javax/swing/plaf/basic/BasicScrollBarUI$Handler +javax/swing/plaf/basic/BasicScrollBarUI$ModelListener +javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler +javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener +javax/swing/plaf/basic/BasicScrollBarUI$TrackListener +javax/swing/plaf/basic/BasicScrollPaneUI +javax/swing/plaf/basic/BasicScrollPaneUI$Handler +javax/swing/plaf/basic/BasicSeparatorUI +javax/swing/plaf/basic/BasicSliderUI +javax/swing/plaf/basic/BasicSliderUI$Actions +javax/swing/plaf/basic/BasicSliderUI$Handler +javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler +javax/swing/plaf/basic/BasicSliderUI$ScrollListener +javax/swing/plaf/basic/BasicSliderUI$TrackListener +javax/swing/plaf/basic/BasicSplitPaneDivider +javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout +javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler +javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchActionHandler +javax/swing/plaf/basic/BasicSplitPaneUI +javax/swing/plaf/basic/BasicSplitPaneUI$1 +javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager +javax/swing/plaf/basic/BasicSplitPaneUI$Handler +javax/swing/plaf/basic/BasicTabbedPaneUI +javax/swing/plaf/basic/BasicTabbedPaneUI$Handler +javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout +javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout +javax/swing/plaf/basic/BasicTableHeaderUI +javax/swing/plaf/basic/BasicTableHeaderUI$1 +javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler +javax/swing/plaf/basic/BasicTableUI +javax/swing/plaf/basic/BasicTableUI$Handler +javax/swing/plaf/basic/BasicTableUI$TableTransferHandler +javax/swing/plaf/basic/BasicTextAreaUI +javax/swing/plaf/basic/BasicTextFieldUI +javax/swing/plaf/basic/BasicTextUI +javax/swing/plaf/basic/BasicTextUI$BasicCaret +javax/swing/plaf/basic/BasicTextUI$BasicCursor +javax/swing/plaf/basic/BasicTextUI$BasicHighlighter +javax/swing/plaf/basic/BasicTextUI$DragListener +javax/swing/plaf/basic/BasicTextUI$FocusAction +javax/swing/plaf/basic/BasicTextUI$RootView +javax/swing/plaf/basic/BasicTextUI$TextActionWrapper +javax/swing/plaf/basic/BasicTextUI$TextTransferHandler +javax/swing/plaf/basic/BasicTextUI$UpdateHandler +javax/swing/plaf/basic/BasicToggleButtonUI +javax/swing/plaf/basic/BasicToolBarSeparatorUI +javax/swing/plaf/basic/BasicToolBarUI +javax/swing/plaf/basic/BasicToolBarUI$DockingListener +javax/swing/plaf/basic/BasicToolBarUI$Handler +javax/swing/plaf/basic/BasicTreeUI +javax/swing/plaf/basic/BasicTreeUI$Actions +javax/swing/plaf/basic/BasicTreeUI$Handler +javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler +javax/swing/plaf/basic/BasicTreeUI$TreeTransferHandler +javax/swing/plaf/basic/BasicViewportUI +javax/swing/plaf/basic/ComboPopup +javax/swing/plaf/basic/DefaultMenuLayout +javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag +javax/swing/plaf/basic/LazyActionMap +javax/swing/plaf/metal/DefaultMetalTheme +javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate +javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1 +javax/swing/plaf/metal/MetalBorders +javax/swing/plaf/metal/MetalBorders$ButtonBorder +javax/swing/plaf/metal/MetalBorders$Flush3DBorder +javax/swing/plaf/metal/MetalBorders$MenuBarBorder +javax/swing/plaf/metal/MetalBorders$MenuItemBorder +javax/swing/plaf/metal/MetalBorders$PopupMenuBorder +javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder +javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder +javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder +javax/swing/plaf/metal/MetalBorders$TextFieldBorder +javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder +javax/swing/plaf/metal/MetalBorders$ToolBarBorder +javax/swing/plaf/metal/MetalBumps +javax/swing/plaf/metal/MetalButtonUI +javax/swing/plaf/metal/MetalCheckBoxUI +javax/swing/plaf/metal/MetalComboBoxButton +javax/swing/plaf/metal/MetalComboBoxButton$1 +javax/swing/plaf/metal/MetalComboBoxEditor +javax/swing/plaf/metal/MetalComboBoxEditor$1 +javax/swing/plaf/metal/MetalComboBoxEditor$EditorBorder +javax/swing/plaf/metal/MetalComboBoxEditor$UIResource +javax/swing/plaf/metal/MetalComboBoxIcon +javax/swing/plaf/metal/MetalComboBoxUI +javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager +javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener +javax/swing/plaf/metal/MetalIconFactory +javax/swing/plaf/metal/MetalIconFactory$CheckBoxIcon +javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon +javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 +javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon +javax/swing/plaf/metal/MetalIconFactory$MenuArrowIcon +javax/swing/plaf/metal/MetalIconFactory$MenuItemArrowIcon +javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon +javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon +javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon +javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon +javax/swing/plaf/metal/MetalLabelUI +javax/swing/plaf/metal/MetalLookAndFeel +javax/swing/plaf/metal/MetalLookAndFeel$AATextListener +javax/swing/plaf/metal/MetalLookAndFeel$FontActiveValue +javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue +javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue$1 +javax/swing/plaf/metal/MetalPopupMenuSeparatorUI +javax/swing/plaf/metal/MetalProgressBarUI +javax/swing/plaf/metal/MetalRadioButtonUI +javax/swing/plaf/metal/MetalRootPaneUI +javax/swing/plaf/metal/MetalScrollBarUI +javax/swing/plaf/metal/MetalScrollBarUI$ScrollBarListener +javax/swing/plaf/metal/MetalScrollButton +javax/swing/plaf/metal/MetalScrollPaneUI +javax/swing/plaf/metal/MetalScrollPaneUI$1 +javax/swing/plaf/metal/MetalSeparatorUI +javax/swing/plaf/metal/MetalSliderUI +javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener +javax/swing/plaf/metal/MetalSplitPaneDivider +javax/swing/plaf/metal/MetalSplitPaneDivider$1 +javax/swing/plaf/metal/MetalSplitPaneDivider$2 +javax/swing/plaf/metal/MetalSplitPaneUI +javax/swing/plaf/metal/MetalTabbedPaneUI +javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout +javax/swing/plaf/metal/MetalTextFieldUI +javax/swing/plaf/metal/MetalTheme +javax/swing/plaf/metal/MetalToggleButtonUI +javax/swing/plaf/metal/MetalToolBarUI +javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener +javax/swing/plaf/metal/MetalTreeUI +javax/swing/plaf/metal/MetalTreeUI$LineListener +javax/swing/plaf/metal/OceanTheme javax/swing/plaf/metal/OceanTheme$1 javax/swing/plaf/metal/OceanTheme$2 javax/swing/plaf/metal/OceanTheme$3 javax/swing/plaf/metal/OceanTheme$4 javax/swing/plaf/metal/OceanTheme$5 javax/swing/plaf/metal/OceanTheme$6 -javax/swing/RepaintManager -javax/swing/RepaintManager$DisplayChangedHandler -javax/swing/SwingPaintEventDispatcher -sun/awt/PaintEventDispatcher -javax/swing/UIManager$2 -java/awt/PopupMenu -java/awt/Menu -java/awt/MenuItem -java/awt/MenuComponent -java/io/ObjectOutputStream -java/io/ObjectOutput -java/io/DataOutput -java/io/ObjectStreamConstants -java/io/PrintWriter -java/io/ObjectInputStream -java/io/ObjectInput -java/awt/Event -java/awt/im/InputContext -java/awt/event/MouseWheelEvent -java/awt/BufferCapabilities -sun/awt/CausedFocusEvent$Cause -java/awt/PointerInfo -java/awt/Component$BaselineResizeBehavior -java/awt/FontMetrics -java/awt/Image -java/awt/image/ImageProducer -java/awt/image/VolatileImage -java/awt/im/InputMethodRequests -java/awt/event/FocusEvent -java/awt/event/InputMethodEvent -java/awt/event/HierarchyEvent -javax/accessibility/AccessibleStateSet -com/sun/swing/internal/plaf/metal/resources/metal -sun/util/ResourceBundleEnumeration -com/sun/swing/internal/plaf/basic/resources/basic -javax/swing/plaf/basic/BasicPanelUI -javax/swing/plaf/PanelUI -javax/swing/plaf/ComponentUI -sun/reflect/misc/MethodUtil -sun/reflect/misc/MethodUtil$1 -sun/misc/Launcher$1 -sun/misc/URLClassPath$JarLoader$1 -sun/misc/FileURLMapper -java/util/jar/JarFile -java/util/zip/ZipFile -java/util/zip/ZipConstants -java/util/jar/JavaUtilJarAccessImpl -sun/misc/JavaUtilJarAccess -sun/misc/JarIndex -java/util/zip/ZipEntry -java/util/jar/JarFile$JarFileEntry -java/util/jar/JarEntry -sun/misc/URLClassPath$JarLoader$2 -sun/net/www/protocol/jar/JarURLConnection -java/net/JarURLConnection -sun/net/www/protocol/jar/JarFileFactory -sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController -java/net/HttpURLConnection -sun/net/www/protocol/jar/URLJarFile -sun/net/www/protocol/jar/URLJarFile$URLJarFileEntry -sun/net/www/protocol/jar/JarURLConnection$JarURLInputStream -java/util/zip/ZipFile$ZipFileInputStream -java/security/AllPermissionCollection -java/lang/IllegalAccessException -javax/swing/JPasswordField -javax/swing/JTextField -javax/swing/text/JTextComponent -javax/swing/Scrollable -javax/swing/JLayeredPane -javax/swing/JRootPane$1 -javax/swing/ArrayTable -javax/swing/JInternalFrame -javax/swing/JRootPane$RootLayout -javax/swing/BufferStrategyPaintManager -javax/swing/RepaintManager$PaintManager -javax/swing/plaf/metal/MetalRootPaneUI -javax/swing/plaf/basic/BasicRootPaneUI -javax/swing/plaf/RootPaneUI -javax/swing/plaf/basic/BasicRootPaneUI$RootPaneInputMap -javax/swing/plaf/ComponentInputMapUIResource -javax/swing/ComponentInputMap -javax/swing/InputMap -javax/swing/plaf/InputMapUIResource -javax/swing/KeyStroke -java/awt/VKCollection -sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl -javax/swing/plaf/basic/LazyActionMap -javax/swing/plaf/ActionMapUIResource -javax/swing/ActionMap -javax/swing/LayoutFocusTraversalPolicy -javax/swing/SortingFocusTraversalPolicy -javax/swing/InternalFrameFocusTraversalPolicy -javax/swing/SwingContainerOrderFocusTraversalPolicy -javax/swing/SwingDefaultFocusTraversalPolicy -javax/swing/LayoutComparator -javax/swing/plaf/metal/MetalLabelUI -javax/swing/plaf/basic/BasicLabelUI -javax/swing/plaf/LabelUI -javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1 -javax/swing/plaf/basic/BasicHTML -sun/awt/NullComponentPeer -java/awt/event/WindowEvent -java/awt/EventQueue$1 -java/awt/EventDispatchThread$1 -java/awt/Conditional -java/awt/EventDispatchThread$HierarchyEventFilter -java/awt/EventFilter$FilterAction -sun/awt/dnd/SunDropTargetEvent -java/awt/event/ActionEvent -sun/awt/X11/XReparentEvent -sun/awt/X11/XWindowAttributes -sun/awt/EventQueueItem -sun/awt/SunToolkit$3 -java/applet/Applet -java/awt/Panel -com/sun/awt/AWTUtilities -sun/awt/X11/XExposeEvent -java/util/jar/Manifest -java/io/ByteArrayInputStream -java/util/jar/Attributes -java/util/jar/Manifest$FastInputStream -java/util/jar/Attributes$Name -sun/misc/ASCIICaseInsensitiveComparator -java/util/jar/JarVerifier -java/io/ByteArrayOutputStream -sun/misc/ExtensionDependency -java/lang/Package -sun/security/util/ManifestEntryVerifier -java/security/Provider -java/security/Provider$ServiceKey -java/security/Provider$EngineDescription -java/security/Security -java/security/Security$1 -sun/misc/FloatingDecimal -sun/misc/FloatingDecimal$1 -java/util/regex/Pattern -java/util/regex/Pattern$Node -java/util/regex/Pattern$LastNode -java/util/regex/Pattern$GroupHead -java/util/regex/Pattern$GroupTail -java/util/regex/Pattern$BitClass -java/util/regex/Pattern$BmpCharProperty -java/util/regex/Pattern$CharProperty -java/util/regex/Pattern$Ques -java/util/regex/Pattern$BranchConn -java/util/regex/Pattern$Branch -java/util/regex/Pattern$5 -java/util/regex/Pattern$CharPropertyNames -java/util/regex/Pattern$CharPropertyNames$1 -java/util/regex/Pattern$CharPropertyNames$CharPropertyFactory -java/util/regex/Pattern$CharPropertyNames$2 -java/util/regex/Pattern$CharPropertyNames$5 -java/util/regex/Pattern$CharPropertyNames$3 -java/util/regex/Pattern$CharPropertyNames$6 -java/util/regex/Pattern$CharPropertyNames$CloneableProperty -java/util/regex/Pattern$CharPropertyNames$4 -java/util/regex/Pattern$CharPropertyNames$7 -java/util/regex/Pattern$CharPropertyNames$8 -java/util/regex/Pattern$CharPropertyNames$9 -java/util/regex/Pattern$CharPropertyNames$10 -java/util/regex/Pattern$CharPropertyNames$11 -java/util/regex/Pattern$CharPropertyNames$12 -java/util/regex/Pattern$CharPropertyNames$13 -java/util/regex/Pattern$CharPropertyNames$14 -java/util/regex/Pattern$CharPropertyNames$15 -java/util/regex/Pattern$CharPropertyNames$16 -java/util/regex/Pattern$CharPropertyNames$17 -java/util/regex/Pattern$CharPropertyNames$18 -java/util/regex/Pattern$CharPropertyNames$19 -java/util/regex/Pattern$CharPropertyNames$20 -java/util/regex/Pattern$CharPropertyNames$21 -java/util/regex/Pattern$Ctype -java/util/regex/Pattern$Curly -java/util/regex/Pattern$6 -java/util/regex/Pattern$Slice -java/util/regex/Pattern$Begin -java/util/regex/Pattern$First -java/util/regex/Pattern$Start -java/util/regex/Pattern$TreeInfo -sun/security/provider/NativePRNG -java/security/SecureRandomSpi -sun/security/provider/NativePRNG$1 -sun/security/provider/NativePRNG$RandomIO -sun/misc/BASE64Decoder -sun/misc/CharacterDecoder -sun/security/util/SignatureFileVerifier -java/awt/event/KeyAdapter -java/lang/NumberFormatException -java/lang/IllegalArgumentException -java/io/FileWriter -java/net/Authenticator -java/net/MalformedURLException -javax/swing/text/Element -javax/swing/text/Document -javax/swing/text/PlainDocument +javax/swing/plaf/synth/SynthConstants +javax/swing/plaf/synth/SynthUI +javax/swing/table/AbstractTableModel +javax/swing/table/DefaultTableCellRenderer +javax/swing/table/DefaultTableColumnModel +javax/swing/table/DefaultTableModel +javax/swing/table/JTableHeader +javax/swing/table/TableCellEditor +javax/swing/table/TableCellRenderer +javax/swing/table/TableColumn +javax/swing/table/TableColumnModel +javax/swing/table/TableModel javax/swing/text/AbstractDocument -javax/swing/text/GapContent -javax/swing/text/AbstractDocument$Content -javax/swing/text/GapVector -javax/swing/text/GapContent$MarkVector -javax/swing/text/GapContent$MarkData -javax/swing/text/StyleContext +javax/swing/text/AbstractDocument$1 +javax/swing/text/AbstractDocument$AbstractElement javax/swing/text/AbstractDocument$AttributeContext -javax/swing/text/StyleConstants -javax/swing/text/StyleConstants$CharacterConstants -javax/swing/text/AttributeSet$CharacterAttribute -javax/swing/text/StyleConstants$FontConstants -javax/swing/text/AttributeSet$FontAttribute -javax/swing/text/StyleConstants$ColorConstants -javax/swing/text/AttributeSet$ColorAttribute -javax/swing/text/StyleConstants$ParagraphConstants -javax/swing/text/AttributeSet$ParagraphAttribute -javax/swing/text/StyleContext$FontKey -javax/swing/text/SimpleAttributeSet -javax/swing/text/MutableAttributeSet -javax/swing/text/AttributeSet -javax/swing/text/SimpleAttributeSet$EmptyAttributeSet -javax/swing/text/StyleContext$NamedStyle -javax/swing/text/Style -javax/swing/text/StyleContext$SmallAttributeSet +javax/swing/text/AbstractDocument$BidiElement javax/swing/text/AbstractDocument$BidiRootElement javax/swing/text/AbstractDocument$BranchElement -javax/swing/text/AbstractDocument$AbstractElement -javax/swing/tree/TreeNode -javax/swing/text/AbstractDocument$1 -javax/swing/text/AbstractDocument$BidiElement -javax/swing/text/AbstractDocument$LeafElement -javax/swing/text/GapContent$StickyPosition -javax/swing/text/Position -javax/swing/text/StyleContext$KeyEnumeration -javax/swing/text/GapContent$InsertUndo -javax/swing/undo/AbstractUndoableEdit -javax/swing/undo/UndoableEdit +javax/swing/text/AbstractDocument$Content javax/swing/text/AbstractDocument$DefaultDocumentEvent -javax/swing/event/DocumentEvent -javax/swing/undo/CompoundEdit -javax/swing/event/DocumentEvent$EventType -javax/swing/text/Segment -java/text/CharacterIterator -javax/swing/text/Utilities -javax/swing/text/SegmentCache -javax/swing/text/SegmentCache$CachedSegment -javax/swing/event/UndoableEditEvent javax/swing/text/AbstractDocument$ElementEdit -javax/swing/event/DocumentEvent$ElementChange -java/net/Socket -java/net/InetAddress -java/net/InetAddress$Cache -java/net/InetAddress$Cache$Type -java/net/InetAddressImplFactory -java/net/Inet6AddressImpl -java/net/InetAddressImpl -java/net/InetAddress$1 -sun/net/spi/nameservice/NameService -sun/net/util/IPAddressUtil -java/util/regex/Matcher -java/util/regex/MatchResult -java/util/RandomAccessSubList -java/util/SubList -java/util/SubList$1 -java/util/AbstractList$ListItr -java/net/Inet4Address -java/net/InetSocketAddress -java/net/SocketAddress -java/net/Inet4AddressImpl -java/net/SocksSocketImpl -java/net/SocksConsts -java/net/PlainSocketImpl -java/net/SocketImpl -java/net/SocketOptions -java/net/SocketException -java/net/SocksSocketImpl$5 -java/net/ProxySelector -sun/net/spi/DefaultProxySelector -sun/net/spi/DefaultProxySelector$1 -sun/net/NetProperties -sun/net/NetProperties$1 -sun/net/spi/DefaultProxySelector$NonProxyInfo -java/util/regex/ASCII -java/util/regex/Pattern$GroupCurly -java/net/Inet6Address -java/net/URI -java/net/URI$Parser -java/net/Proxy -java/net/Proxy$Type -java/net/ConnectException -javax/swing/JMenu -javax/swing/MenuElement -javax/swing/JMenuItem -javax/swing/AbstractButton -java/awt/ItemSelectable -javax/swing/event/MenuListener -javax/swing/JCheckBoxMenuItem -javax/swing/Icon -javax/swing/JButton -java/awt/event/WindowListener -java/net/URLClassLoader$2 -javax/swing/ImageIcon -javax/swing/ImageIcon$1 -java/awt/MediaTracker -sun/misc/SoftCache$ValueCell -sun/awt/image/URLImageSource -sun/awt/image/InputStreamImageSource -sun/awt/image/ImageFetchable -sun/awt/image/ToolkitImage -java/awt/Image$1 -sun/awt/image/SurfaceManager$ImageAccessor -sun/awt/image/SurfaceManager -sun/awt/image/NativeLibLoader -java/awt/ImageMediaEntry -java/awt/MediaEntry -sun/awt/image/ImageRepresentation -java/awt/image/ImageConsumer -sun/awt/image/ImageWatched -sun/awt/image/ImageWatched$Link -sun/awt/image/ImageWatched$WeakLink -sun/awt/image/ImageConsumerQueue -sun/awt/image/ImageFetcher -sun/awt/image/FetcherInfo -sun/awt/image/ImageFetcher$1 -sun/awt/image/GifImageDecoder -sun/awt/image/ImageDecoder -sun/awt/image/GifFrame -java/awt/image/Raster -java/awt/image/DataBufferByte -java/awt/image/DataBuffer -java/awt/image/PixelInterleavedSampleModel -java/awt/image/ComponentSampleModel -java/awt/image/SampleModel -sun/awt/image/ByteInterleavedRaster -sun/awt/image/ByteComponentRaster -sun/awt/image/SunWritableRaster -java/awt/image/WritableRaster -java/awt/image/BufferedImage -java/awt/image/WritableRenderedImage -java/awt/image/RenderedImage -sun/awt/image/IntegerComponentRaster -sun/awt/image/BytePackedRaster -java/awt/Canvas -sun/font/FontDesignMetrics -sun/font/FontStrikeDesc -sun/font/CompositeStrike -sun/font/FontStrikeDisposer -sun/font/StrikeCache$SoftDisposerRef -sun/font/StrikeCache$DisposableStrike -sun/font/TrueTypeFont$TTDisposerRecord -sun/font/TrueTypeFont$1 -java/io/RandomAccessFile -sun/nio/ch/FileChannelImpl -java/nio/channels/FileChannel -java/nio/channels/ByteChannel -java/nio/channels/ReadableByteChannel -java/nio/channels/Channel -java/nio/channels/WritableByteChannel -java/nio/channels/GatheringByteChannel -java/nio/channels/ScatteringByteChannel -java/nio/channels/spi/AbstractInterruptibleChannel -java/nio/channels/InterruptibleChannel -sun/nio/ch/Util -sun/nio/ch/IOUtil -sun/nio/ch/FileDispatcher -sun/nio/ch/NativeDispatcher -sun/nio/ch/Reflect -java/nio/MappedByteBuffer -sun/nio/ch/Reflect$1 -sun/nio/ch/NativeThreadSet -java/nio/channels/spi/AbstractInterruptibleChannel$1 -sun/nio/ch/NativeThread -sun/nio/ch/IOStatus -sun/nio/ch/DirectBuffer -java/nio/DirectByteBuffer -java/nio/DirectByteBuffer$Deallocator -sun/misc/Cleaner -java/nio/ByteBufferAsIntBufferB -java/nio/IntBuffer -sun/font/TrueTypeFont$DirectoryEntry -java/nio/ByteBufferAsShortBufferB -java/nio/ShortBuffer -sun/nio/cs/UTF_16 -sun/nio/cs/UTF_16$Decoder -sun/nio/cs/UnicodeDecoder -sun/font/FileFontStrike -sun/font/TrueTypeGlyphMapper -sun/font/CMap -sun/font/CMap$NullCMapClass -sun/font/CMap$CMapFormat4 -java/nio/ByteBufferAsCharBufferB -sun/font/CMap$CMapFormat12 -java/awt/FontFormatException -sun/java2d/HeadlessGraphicsEnvironment -java/nio/charset/Charset$3 -sun/nio/cs/AbstractCharsetProvider -sun/font/NativeFont -java/lang/CharacterData00 -sun/font/CMap$CMapFormat2 -sun/font/FontDesignMetrics$KeyReference -sun/awt/image/PNGImageDecoder -sun/awt/image/PNGFilterInputStream -java/util/zip/InflaterInputStream -java/util/zip/Inflater -sun/reflect/UnsafeBooleanFieldAccessorImpl -sun/awt/event/IgnorePaintEvent -java/awt/image/DataBufferInt -java/awt/image/SinglePixelPackedSampleModel -sun/awt/image/IntegerInterleavedRaster -sun/awt/image/OffScreenImage -sun/awt/image/BufImgSurfaceData -sun/java2d/opengl/GLXGraphicsConfig -sun/java2d/opengl/OGLGraphicsConfig -sun/java2d/x11/X11SurfaceData$X11PixmapSurfaceData -sun/awt/image/WritableRasterNative -sun/awt/image/DataBufferNative -sun/java2d/SurfaceManagerFactory -sun/java2d/opengl/GLXSurfaceData -sun/java2d/opengl/OGLSurfaceData -sun/font/CompositeGlyphMapper -sun/java2d/loops/FontInfo -java/util/Date -sun/util/calendar/CalendarSystem -sun/util/calendar/Gregorian -sun/util/calendar/BaseCalendar -sun/util/calendar/AbstractCalendar -java/util/TimeZone -java/lang/InheritableThreadLocal -sun/util/calendar/ZoneInfo -sun/util/calendar/ZoneInfoFile -sun/util/calendar/ZoneInfoFile$1 -java/util/TimeZone$1 -sun/util/calendar/Gregorian$Date -sun/util/calendar/BaseCalendar$Date -sun/util/calendar/CalendarDate -sun/util/calendar/CalendarUtils -java/util/TimeZone$DisplayNames -sun/util/TimeZoneNameUtility -sun/util/resources/LocaleData -sun/util/resources/LocaleData$1 -sun/util/resources/LocaleData$LocaleDataResourceBundleControl -sun/util/LocaleDataMetaInfo -sun/util/resources/TimeZoneNames -sun/util/resources/TimeZoneNamesBundle -sun/util/resources/OpenListResourceBundle -java/util/ResourceBundle$BundleReference -sun/util/resources/TimeZoneNames_en -java/util/spi/TimeZoneNameProvider -java/util/spi/LocaleServiceProvider -sun/util/LocaleServiceProviderPool -sun/util/LocaleServiceProviderPool$1 -java/util/ServiceLoader -java/util/ServiceLoader$LazyIterator -java/util/ServiceLoader$1 -java/util/LinkedHashMap$EntryIterator -sun/misc/URLClassPath$2 -java/lang/ClassLoader$2 -sun/misc/URLClassPath$1 -java/net/URLClassLoader$3 -sun/misc/CompoundEnumeration -java/net/URLClassLoader$3$1 -java/lang/ProcessBuilder -java/lang/ProcessImpl -java/lang/UNIXProcess -java/lang/Process -java/lang/UNIXProcess$1 -java/lang/UNIXProcess$DeferredCloseInputStream -java/lang/UNIXProcess$2 -java/lang/UNIXProcess$2$1 -java/net/ServerSocket -java/util/Random -java/util/concurrent/atomic/AtomicLong -java/lang/InternalError -java/io/StringReader -java/lang/SecurityException -java/io/FilterReader -java/lang/reflect/Proxy -java/lang/reflect/InvocationHandler -java/lang/NoSuchFieldException -java/lang/InstantiationException -java/lang/ArrayIndexOutOfBoundsException -javax/swing/JDialog -sun/awt/X11/XClipboard -sun/awt/datatransfer/SunClipboard -java/awt/datatransfer/Clipboard -java/awt/datatransfer/SystemFlavorMap -java/awt/datatransfer/FlavorMap -java/awt/datatransfer/FlavorTable -java/awt/datatransfer/SystemFlavorMap$1 -sun/net/ProgressMonitor -sun/net/DefaultProgressMeteringPolicy -sun/net/ProgressMeteringPolicy -java/awt/datatransfer/SystemFlavorMap$2 -java/awt/datatransfer/MimeType -java/io/Externalizable -java/awt/datatransfer/MimeTypeParameterList -sun/awt/datatransfer/DataTransferer -java/util/Collections$SynchronizedSet -java/util/Collections$SynchronizedCollection -java/awt/datatransfer/DataFlavor -java/awt/datatransfer/DataFlavor$1 -sun/awt/datatransfer/DataTransferer$CharsetComparator -sun/awt/datatransfer/DataTransferer$IndexedComparator -sun/nio/cs/UTF_16LE -sun/nio/cs/UTF_16BE -sun/nio/cs/US_ASCII -sun/awt/datatransfer/DataTransferer$DataFlavorComparator -java/rmi/Remote -sun/awt/datatransfer/DataTransferer$1 -sun/awt/X11/XDataTransferer -sun/awt/datatransfer/ToolkitThreadBlockedHandler -javax/imageio/ImageTypeSpecifier -sun/awt/X11/XSelection -sun/security/action/GetIntegerAction -sun/awt/X11/XSelection$IncrementalTransferHandler -sun/awt/X11/XSelection$SelectionEventHandler -java/awt/datatransfer/Transferable -java/io/EOFException -java/util/Vector$1 -java/util/zip/ZipFile$1 -java/util/zip/ZipFile$2 -java/util/jar/JarFile$1 -java/util/PropertyResourceBundle -java/util/ResourceBundle$Control$1 -java/util/Hashtable$EntrySet -java/lang/IllegalAccessError -java/text/MessageFormat -java/text/Format -java/text/FieldPosition -java/text/MessageFormat$Field -java/text/Format$Field -java/lang/CloneNotSupportedException -sun/reflect/MethodAccessorGenerator -sun/reflect/AccessorGenerator -sun/reflect/ClassFileConstants -java/lang/Void -sun/reflect/ByteVectorFactory -sun/reflect/ByteVectorImpl -sun/reflect/ByteVector -sun/reflect/ClassFileAssembler -sun/reflect/UTF8 -sun/reflect/Label -sun/reflect/Label$PatchInfo -sun/reflect/MethodAccessorGenerator$1 -sun/reflect/ClassDefiner -sun/reflect/ClassDefiner$1 -sun/reflect/BootstrapConstructorAccessorImpl -java/awt/event/ActionListener -javax/swing/Timer -javax/swing/Timer$DoPostEvent -javax/swing/TimerQueue -javax/swing/TimerQueue$1 -javax/swing/ToolTipManager -java/awt/event/MouseAdapter -javax/swing/ToolTipManager$insideTimerAction -javax/swing/ToolTipManager$outsideTimerAction -javax/swing/ToolTipManager$stillInsideTimerAction -sun/swing/UIAction -javax/swing/Action -javax/swing/ToolTipManager$MoveBeforeEnterListener -java/awt/event/MouseMotionAdapter -java/util/Hashtable$ValueCollection -javax/swing/event/CaretListener -javax/swing/JToolBar -javax/swing/JSplitPane -javax/swing/border/Border -javax/swing/JToggleButton -javax/swing/border/EmptyBorder -javax/swing/border/AbstractBorder -javax/swing/DefaultButtonModel -javax/swing/ButtonModel -javax/swing/AbstractButton$Handler -javax/swing/event/ChangeListener -java/awt/event/ItemListener -javax/swing/plaf/metal/MetalButtonUI -javax/swing/plaf/basic/BasicButtonUI -javax/swing/plaf/ButtonUI -javax/swing/plaf/metal/MetalBorders -javax/swing/plaf/BorderUIResource$CompoundBorderUIResource -javax/swing/border/CompoundBorder -javax/swing/plaf/metal/MetalBorders$ButtonBorder -javax/swing/plaf/basic/BasicBorders$MarginBorder -javax/swing/plaf/basic/BasicButtonListener -java/awt/AWTEventMulticaster -java/awt/event/WindowFocusListener -java/awt/event/WindowStateListener -java/awt/event/AdjustmentListener -java/awt/event/TextListener -javax/swing/event/AncestorListener -java/beans/VetoableChangeListener -javax/swing/ButtonGroup -javax/swing/JToggleButton$ToggleButtonModel -javax/swing/plaf/metal/MetalToggleButtonUI -javax/swing/plaf/basic/BasicToggleButtonUI -javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder -java/awt/CardLayout -javax/swing/Box -javax/swing/plaf/metal/MetalBorders$TextFieldBorder -javax/swing/plaf/metal/MetalBorders$Flush3DBorder -javax/swing/BoxLayout -javax/swing/JMenuBar -javax/swing/DefaultSingleSelectionModel -javax/swing/SingleSelectionModel -javax/swing/plaf/basic/BasicMenuBarUI -javax/swing/plaf/MenuBarUI -javax/swing/plaf/basic/DefaultMenuLayout -javax/swing/plaf/metal/MetalBorders$MenuBarBorder -javax/swing/plaf/basic/BasicMenuBarUI$Handler -javax/swing/KeyboardManager -javax/swing/event/MenuEvent -javax/swing/JMenu$MenuChangeListener -javax/swing/JMenuItem$MenuItemFocusListener -javax/swing/plaf/basic/BasicMenuUI -javax/swing/plaf/basic/BasicMenuItemUI -javax/swing/plaf/MenuItemUI -javax/swing/plaf/metal/MetalBorders$MenuItemBorder -javax/swing/plaf/metal/MetalIconFactory -javax/swing/plaf/metal/MetalIconFactory$MenuArrowIcon -javax/swing/plaf/basic/BasicMenuUI$Handler -javax/swing/event/MenuKeyListener -javax/swing/plaf/basic/BasicMenuItemUI$Handler -javax/swing/event/MenuDragMouseListener -javax/swing/event/MouseInputListener -javax/swing/event/ChangeEvent -java/awt/event/ContainerEvent -javax/swing/plaf/metal/MetalIconFactory$MenuItemArrowIcon -javax/swing/JPopupMenu -javax/swing/plaf/basic/BasicPopupMenuUI -javax/swing/plaf/PopupMenuUI -javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper -java/awt/event/AWTEventListenerProxy -java/awt/Toolkit$SelectiveAWTEventListener -java/awt/Toolkit$ToolkitEventMulticaster -javax/swing/plaf/basic/BasicLookAndFeel$1 -javax/swing/plaf/metal/MetalBorders$PopupMenuBorder -javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener -javax/swing/event/PopupMenuListener -javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener -javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber -javax/swing/MenuSelectionManager -javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper -javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper$1 -java/awt/event/FocusAdapter -javax/swing/JMenu$WinListener -java/awt/event/WindowAdapter -javax/swing/JPopupMenu$Separator -javax/swing/JSeparator -javax/swing/plaf/metal/MetalPopupMenuSeparatorUI -javax/swing/plaf/metal/MetalSeparatorUI -javax/swing/plaf/basic/BasicSeparatorUI -javax/swing/plaf/SeparatorUI -javax/swing/JComboBox -javax/swing/event/ListDataListener -javax/swing/event/CaretEvent -javax/swing/text/TabExpander -javax/swing/JScrollBar -java/awt/Adjustable -javax/swing/event/MouseInputAdapter -javax/swing/JScrollBar$ModelListener -javax/swing/DefaultBoundedRangeModel -javax/swing/BoundedRangeModel -javax/swing/plaf/metal/MetalScrollBarUI -javax/swing/plaf/basic/BasicScrollBarUI -javax/swing/plaf/ScrollBarUI -javax/swing/plaf/metal/MetalBumps -javax/swing/plaf/metal/MetalScrollButton -javax/swing/plaf/basic/BasicArrowButton -javax/swing/plaf/basic/BasicScrollBarUI$TrackListener -javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener -javax/swing/plaf/basic/BasicScrollBarUI$ModelListener -javax/swing/plaf/metal/MetalScrollBarUI$ScrollBarListener -javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler -javax/swing/plaf/basic/BasicScrollBarUI$Handler -javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener -javax/swing/CellRendererPane -javax/swing/border/MatteBorder -sun/font/StandardGlyphVector -java/awt/font/GlyphVector -sun/font/StandardGlyphVector$GlyphStrike -sun/font/CoreMetrics -sun/font/FontLineMetrics -java/awt/font/LineMetrics -javax/swing/ComboBoxModel -javax/swing/ListModel -javax/swing/ListCellRenderer -javax/swing/DefaultComboBoxModel -javax/swing/MutableComboBoxModel -javax/swing/AbstractListModel -javax/swing/JComboBox$1 -javax/swing/AncestorNotifier -javax/swing/plaf/metal/MetalComboBoxUI -javax/swing/plaf/basic/BasicComboBoxUI -javax/swing/plaf/ComboBoxUI -javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager -javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager -javax/swing/plaf/basic/BasicComboPopup -javax/swing/plaf/basic/ComboPopup -javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass -javax/swing/border/LineBorder -javax/swing/plaf/basic/BasicComboPopup$1 -javax/swing/JList -javax/swing/DropMode -javax/swing/DefaultListSelectionModel -javax/swing/ListSelectionModel -javax/swing/plaf/basic/BasicListUI -javax/swing/plaf/ListUI -javax/swing/plaf/basic/BasicListUI$ListTransferHandler -javax/swing/TransferHandler -javax/swing/TransferHandler$TransferAction -javax/swing/DefaultListCellRenderer$UIResource -javax/swing/DefaultListCellRenderer -javax/swing/TransferHandler$SwingDropTarget -java/awt/dnd/DropTargetContext -javax/swing/TransferHandler$DropHandler -javax/swing/TransferHandler$TransferSupport -javax/swing/plaf/basic/BasicListUI$Handler -javax/swing/event/ListSelectionListener -javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag -javax/swing/plaf/basic/BasicComboPopup$Handler -javax/swing/JScrollPane -javax/swing/ScrollPaneConstants -javax/swing/ScrollPaneLayout$UIResource -javax/swing/ScrollPaneLayout -javax/swing/JViewport -javax/swing/ViewportLayout -javax/swing/plaf/basic/BasicViewportUI -javax/swing/plaf/ViewportUI -javax/swing/JScrollPane$ScrollBar -javax/swing/JViewport$ViewListener -java/awt/event/ComponentAdapter -javax/swing/plaf/metal/MetalScrollPaneUI -javax/swing/plaf/basic/BasicScrollPaneUI -javax/swing/plaf/ScrollPaneUI -javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder -javax/swing/plaf/basic/BasicScrollPaneUI$Handler -javax/swing/plaf/metal/MetalScrollPaneUI$1 -javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource -javax/swing/plaf/basic/BasicComboBoxRenderer -javax/swing/plaf/metal/MetalComboBoxEditor$UIResource -javax/swing/plaf/metal/MetalComboBoxEditor -javax/swing/plaf/basic/BasicComboBoxEditor -javax/swing/ComboBoxEditor -javax/swing/plaf/basic/BasicComboBoxEditor$BorderlessTextField -javax/swing/JTextField$NotifyAction -javax/swing/text/TextAction -javax/swing/AbstractAction -javax/swing/text/JTextComponent$MutableCaretEvent -javax/swing/plaf/metal/MetalTextFieldUI -javax/swing/plaf/basic/BasicTextFieldUI -javax/swing/plaf/basic/BasicTextUI -javax/swing/text/ViewFactory -javax/swing/plaf/TextUI -javax/swing/plaf/basic/BasicTextUI$BasicCursor +javax/swing/text/AbstractDocument$InsertStringResult +javax/swing/text/AbstractDocument$LeafElement +javax/swing/text/AttributeSet +javax/swing/text/AttributeSet$CharacterAttribute +javax/swing/text/AttributeSet$ColorAttribute +javax/swing/text/AttributeSet$FontAttribute +javax/swing/text/AttributeSet$ParagraphAttribute +javax/swing/text/Caret +javax/swing/text/DefaultCaret +javax/swing/text/DefaultCaret$Handler javax/swing/text/DefaultEditorKit -javax/swing/text/EditorKit -javax/swing/text/DefaultEditorKit$InsertContentAction -javax/swing/text/DefaultEditorKit$DeletePrevCharAction -javax/swing/text/DefaultEditorKit$DeleteNextCharAction -javax/swing/text/DefaultEditorKit$ReadOnlyAction -javax/swing/text/DefaultEditorKit$DeleteWordAction -javax/swing/text/DefaultEditorKit$WritableAction -javax/swing/text/DefaultEditorKit$CutAction -javax/swing/text/DefaultEditorKit$CopyAction -javax/swing/text/DefaultEditorKit$PasteAction -javax/swing/text/DefaultEditorKit$VerticalPageAction -javax/swing/text/DefaultEditorKit$PageAction -javax/swing/text/DefaultEditorKit$InsertBreakAction javax/swing/text/DefaultEditorKit$BeepAction -javax/swing/text/DefaultEditorKit$NextVisualPositionAction -javax/swing/text/DefaultEditorKit$BeginWordAction -javax/swing/text/DefaultEditorKit$EndWordAction -javax/swing/text/DefaultEditorKit$PreviousWordAction -javax/swing/text/DefaultEditorKit$NextWordAction -javax/swing/text/DefaultEditorKit$BeginLineAction -javax/swing/text/DefaultEditorKit$EndLineAction -javax/swing/text/DefaultEditorKit$BeginParagraphAction -javax/swing/text/DefaultEditorKit$EndParagraphAction javax/swing/text/DefaultEditorKit$BeginAction -javax/swing/text/DefaultEditorKit$EndAction +javax/swing/text/DefaultEditorKit$BeginLineAction +javax/swing/text/DefaultEditorKit$BeginParagraphAction +javax/swing/text/DefaultEditorKit$BeginWordAction +javax/swing/text/DefaultEditorKit$CopyAction +javax/swing/text/DefaultEditorKit$CutAction javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction +javax/swing/text/DefaultEditorKit$DeleteNextCharAction +javax/swing/text/DefaultEditorKit$DeletePrevCharAction +javax/swing/text/DefaultEditorKit$DeleteWordAction +javax/swing/text/DefaultEditorKit$DumpModelAction +javax/swing/text/DefaultEditorKit$EndAction +javax/swing/text/DefaultEditorKit$EndLineAction +javax/swing/text/DefaultEditorKit$EndParagraphAction +javax/swing/text/DefaultEditorKit$EndWordAction +javax/swing/text/DefaultEditorKit$InsertBreakAction +javax/swing/text/DefaultEditorKit$InsertContentAction javax/swing/text/DefaultEditorKit$InsertTabAction -javax/swing/text/DefaultEditorKit$SelectWordAction +javax/swing/text/DefaultEditorKit$NextVisualPositionAction +javax/swing/text/DefaultEditorKit$NextWordAction +javax/swing/text/DefaultEditorKit$PageAction +javax/swing/text/DefaultEditorKit$PasteAction +javax/swing/text/DefaultEditorKit$PreviousWordAction +javax/swing/text/DefaultEditorKit$ReadOnlyAction +javax/swing/text/DefaultEditorKit$SelectAllAction javax/swing/text/DefaultEditorKit$SelectLineAction javax/swing/text/DefaultEditorKit$SelectParagraphAction -javax/swing/text/DefaultEditorKit$SelectAllAction -javax/swing/text/DefaultEditorKit$UnselectAction +javax/swing/text/DefaultEditorKit$SelectWordAction javax/swing/text/DefaultEditorKit$ToggleComponentOrientationAction -javax/swing/text/DefaultEditorKit$DumpModelAction -javax/swing/plaf/basic/BasicTextUI$TextTransferHandler -javax/swing/text/Position$Bias -javax/swing/plaf/basic/BasicTextUI$RootView -javax/swing/text/View -javax/swing/plaf/basic/BasicTextUI$UpdateHandler -javax/swing/event/DocumentListener -javax/swing/plaf/basic/BasicTextUI$DragListener -javax/swing/plaf/basic/BasicComboBoxEditor$UIResource -javax/swing/plaf/basic/BasicTextUI$BasicCaret -javax/swing/text/DefaultCaret -javax/swing/text/Caret -javax/swing/text/DefaultCaret$Handler -java/awt/datatransfer/ClipboardOwner -javax/swing/plaf/basic/BasicTextUI$BasicHighlighter +javax/swing/text/DefaultEditorKit$UnselectAction +javax/swing/text/DefaultEditorKit$VerticalPageAction +javax/swing/text/DefaultEditorKit$WritableAction javax/swing/text/DefaultHighlighter -javax/swing/text/LayeredHighlighter +javax/swing/text/DefaultHighlighter$DefaultHighlightPainter +javax/swing/text/DefaultHighlighter$SafeDamager +javax/swing/text/Document +javax/swing/text/EditorKit +javax/swing/text/Element +javax/swing/text/FieldView +javax/swing/text/GapContent +javax/swing/text/GapContent$InsertUndo +javax/swing/text/GapContent$MarkData +javax/swing/text/GapContent$MarkVector +javax/swing/text/GapContent$StickyPosition +javax/swing/text/GapVector javax/swing/text/Highlighter javax/swing/text/Highlighter$Highlight -javax/swing/text/DefaultHighlighter$DefaultHighlightPainter -javax/swing/text/LayeredHighlighter$LayerPainter javax/swing/text/Highlighter$HighlightPainter -javax/swing/text/DefaultHighlighter$SafeDamager -javax/swing/text/FieldView -javax/swing/text/PlainView +javax/swing/text/JTextComponent +javax/swing/text/JTextComponent$1 javax/swing/text/JTextComponent$DefaultKeymap -javax/swing/text/Keymap -javax/swing/text/JTextComponent$KeymapWrapper javax/swing/text/JTextComponent$KeymapActionMap -javax/swing/plaf/basic/BasicTextUI$FocusAction -javax/swing/plaf/basic/BasicTextUI$TextActionWrapper -javax/swing/JTextArea -javax/swing/JEditorPane -javax/swing/JTextField$ScrollRepainter -javax/swing/plaf/metal/MetalComboBoxEditor$1 -javax/swing/plaf/metal/MetalComboBoxEditor$EditorBorder -javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener -javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler -javax/swing/plaf/basic/BasicComboBoxUI$Handler -javax/swing/plaf/metal/MetalComboBoxButton -javax/swing/plaf/metal/MetalComboBoxIcon -javax/swing/plaf/metal/MetalComboBoxButton$1 -javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager -javax/swing/JComboBox$KeySelectionManager -javax/swing/JToolBar$DefaultToolBarLayout -javax/swing/plaf/metal/MetalToolBarUI -javax/swing/plaf/basic/BasicToolBarUI -javax/swing/plaf/ToolBarUI -javax/swing/plaf/metal/MetalBorders$ToolBarBorder -javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue$1 -javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder -javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder -javax/swing/plaf/basic/BasicBorders$RadioButtonBorder -javax/swing/plaf/basic/BasicBorders$ButtonBorder -javax/swing/plaf/basic/BasicBorders$RolloverMarginBorder -javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener -javax/swing/plaf/basic/BasicToolBarUI$DockingListener -javax/swing/plaf/basic/BasicToolBarUI$Handler -javax/swing/border/EtchedBorder -javax/swing/JToolBar$Separator -javax/swing/plaf/basic/BasicToolBarSeparatorUI -sun/font/FontDesignMetrics$MetricsKey -javax/swing/KeyboardManager$ComponentKeyStrokePair -sun/awt/EmbeddedFrame -sun/awt/im/InputMethodContext -java/awt/im/spi/InputMethodContext -sun/awt/im/InputContext -sun/awt/im/InputMethodManager -sun/awt/im/ExecutableInputMethodManager -sun/awt/X11/XInputMethodDescriptor -sun/awt/X11InputMethodDescriptor -java/awt/im/spi/InputMethodDescriptor -sun/awt/im/InputMethodLocator -sun/awt/im/ExecutableInputMethodManager$2 -sun/misc/Service -sun/misc/Service$LazyIterator -java/util/TreeSet -java/util/NavigableSet -java/util/SortedSet -javax/swing/SizeRequirements -javax/swing/plaf/basic/BasicGraphicsUtils -java/awt/event/AdjustmentEvent -java/awt/MenuBar -sun/awt/X11/XComponentPeer$2 -java/awt/SequencedEvent -java/beans/PropertyVetoException -java/awt/DefaultKeyboardFocusManager$TypeAheadMarker -java/awt/KeyboardFocusManager$HeavyweightFocusRequest -java/awt/KeyboardFocusManager$LightweightFocusRequest -sun/awt/X11/XFocusChangeEvent -sun/awt/X11/XComponentPeer$1 -sun/awt/X11/XTranslateCoordinates -sun/awt/KeyboardFocusManagerPeerImpl -sun/awt/SunToolkit$7 -java/awt/Window$1DisposeAction -java/awt/LightweightDispatcher$2 -sun/awt/X11/XUnmapEvent -java/io/StringWriter -javax/swing/JWindow -java/io/UnsupportedEncodingException -java/net/UnknownHostException -java/nio/channels/SocketChannel -java/nio/channels/spi/AbstractSelectableChannel -java/nio/channels/SelectableChannel -java/net/SocketImplFactory -javax/swing/UnsupportedLookAndFeelException -java/lang/UnsatisfiedLinkError -javax/swing/Box$Filler -javax/swing/JComponent$2 -sun/net/www/MimeTable -java/net/FileNameMap -sun/net/www/MimeTable$1 -sun/net/www/MimeEntry -java/net/URLConnection$1 -java/text/SimpleDateFormat -java/text/DateFormat -java/text/DateFormat$Field -java/util/Calendar -java/util/GregorianCalendar -sun/util/resources/CalendarData -sun/util/resources/LocaleNamesBundle -sun/util/resources/CalendarData_en -java/text/DateFormatSymbols -java/text/spi/DateFormatSymbolsProvider -sun/text/resources/FormatData -sun/text/resources/FormatData_en -sun/text/resources/FormatData_en_US -java/text/NumberFormat -java/text/spi/NumberFormatProvider -java/text/DecimalFormatSymbols -java/text/spi/DecimalFormatSymbolsProvider -java/util/Currency -java/util/Currency$1 -java/util/spi/CurrencyNameProvider -sun/util/resources/CurrencyNames -sun/util/resources/CurrencyNames_en_US -java/text/DecimalFormat -java/text/DigitList -java/math/RoundingMode -java/text/DontCareFieldPosition -java/text/DontCareFieldPosition$1 -java/text/Format$FieldDelegate -javax/swing/plaf/BorderUIResource -javax/swing/BorderFactory -javax/swing/border/BevelBorder -javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon -javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 -java/util/zip/ZipInputStream -java/io/PushbackInputStream -java/util/zip/CRC32 -java/util/zip/Checksum -java/lang/Thread$State -javax/swing/SwingUtilities$SharedOwnerFrame -javax/swing/JTable -javax/swing/event/TableModelListener -javax/swing/event/TableColumnModelListener -javax/swing/event/CellEditorListener -javax/swing/event/RowSorterListener -java/awt/GraphicsCallback$PaintCallback -java/awt/GraphicsCallback -sun/awt/SunGraphicsCallback -javax/swing/BufferStrategyPaintManager$BufferInfo -java/awt/Component$BltSubRegionBufferStrategy -sun/awt/SubRegionShowable -java/awt/Component$BltBufferStrategy -sun/awt/image/SunVolatileImage -sun/awt/image/BufferedImageGraphicsConfig -sun/print/PrinterGraphicsConfig -sun/awt/image/VolatileSurfaceManager -javax/swing/JRadioButton -java/lang/ClassFormatError -java/awt/print/PrinterGraphics -java/awt/PrintGraphics -javax/swing/JTabbedPane -javax/swing/JTabbedPane$ModelListener -javax/swing/plaf/metal/MetalTabbedPaneUI -javax/swing/plaf/basic/BasicTabbedPaneUI -javax/swing/plaf/TabbedPaneUI -javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$Handler -sun/swing/ImageIconUIResource -javax/swing/GrayFilter -java/awt/image/RGBImageFilter -java/awt/image/ImageFilter -java/awt/image/FilteredImageSource -org/w3c/dom/Node -org/xml/sax/SAXException -javax/xml/parsers/ParserConfigurationException -org/xml/sax/EntityResolver -java/security/NoSuchAlgorithmException -java/security/GeneralSecurityException -java/util/zip/GZIPInputStream -java/util/zip/DeflaterOutputStream -org/xml/sax/InputSource -javax/xml/parsers/DocumentBuilderFactory -javax/xml/parsers/FactoryFinder -javax/xml/parsers/SecuritySupport -javax/xml/parsers/SecuritySupport$2 -javax/xml/parsers/SecuritySupport$5 -javax/xml/parsers/SecuritySupport$1 -javax/xml/parsers/SecuritySupport$4 -javax/xml/parsers/DocumentBuilder -org/w3c/dom/Document -org/xml/sax/helpers/DefaultHandler -org/xml/sax/DTDHandler -org/xml/sax/ContentHandler -org/xml/sax/ErrorHandler -org/xml/sax/SAXNotSupportedException -org/xml/sax/Locator -org/xml/sax/SAXNotRecognizedException -org/xml/sax/SAXParseException -org/w3c/dom/NodeList -org/w3c/dom/events/EventTarget -org/w3c/dom/traversal/DocumentTraversal -org/w3c/dom/events/DocumentEvent -org/w3c/dom/ranges/DocumentRange -org/w3c/dom/Entity -org/w3c/dom/Element -org/w3c/dom/CharacterData -org/w3c/dom/CDATASection -org/w3c/dom/Text -org/xml/sax/AttributeList -org/w3c/dom/DOMException -org/w3c/dom/Notation -org/w3c/dom/DocumentType -org/w3c/dom/Attr -org/w3c/dom/EntityReference -org/w3c/dom/ProcessingInstruction -org/w3c/dom/Comment -org/w3c/dom/DocumentFragment -org/w3c/dom/events/Event -org/w3c/dom/events/MutationEvent -org/w3c/dom/traversal/TreeWalker -org/w3c/dom/ranges/Range -org/w3c/dom/traversal/NodeIterator -org/w3c/dom/events/EventException -org/w3c/dom/NamedNodeMap -java/awt/GridLayout -javax/swing/plaf/metal/MetalRadioButtonUI -javax/swing/plaf/basic/BasicRadioButtonUI -javax/swing/plaf/basic/BasicBorders -javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon -java/awt/event/ItemEvent -java/awt/CardLayout$Card -javax/swing/JCheckBox -javax/swing/event/ListSelectionEvent -javax/swing/plaf/metal/MetalCheckBoxUI -javax/swing/plaf/metal/MetalIconFactory$CheckBoxIcon -java/lang/ExceptionInInitializerError -com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI -javax/swing/JProgressBar -javax/swing/JProgressBar$ModelListener -javax/swing/plaf/metal/MetalProgressBarUI -javax/swing/plaf/basic/BasicProgressBarUI -javax/swing/plaf/ProgressBarUI -javax/swing/plaf/BorderUIResource$LineBorderUIResource -javax/swing/plaf/basic/BasicProgressBarUI$Handler -javax/swing/tree/TreeModel -javax/swing/table/TableCellRenderer -javax/swing/table/JTableHeader -javax/swing/event/TreeExpansionListener -javax/swing/table/AbstractTableModel -javax/swing/table/TableModel -javax/swing/table/DefaultTableCellRenderer -javax/swing/JTree -javax/swing/tree/TreeSelectionModel -javax/swing/tree/DefaultTreeCellRenderer -javax/swing/tree/TreeCellRenderer -javax/swing/table/TableCellEditor -javax/swing/CellEditor -javax/swing/JToolTip -javax/swing/table/TableColumn -javax/swing/table/DefaultTableColumnModel -javax/swing/table/TableColumnModel -javax/swing/table/DefaultTableModel -javax/swing/event/TableModelEvent -sun/swing/table/DefaultTableCellHeaderRenderer -javax/swing/plaf/basic/BasicTableHeaderUI -javax/swing/plaf/TableHeaderUI -javax/swing/plaf/basic/BasicTableHeaderUI$1 -javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler -javax/swing/DefaultCellEditor -javax/swing/tree/TreeCellEditor -javax/swing/AbstractCellEditor -javax/swing/plaf/basic/BasicTableUI -javax/swing/plaf/TableUI -javax/swing/plaf/basic/BasicTableUI$TableTransferHandler -javax/swing/plaf/basic/BasicTableUI$Handler -javax/swing/tree/DefaultTreeSelectionModel -javax/swing/tree/TreePath -javax/swing/plaf/metal/MetalTreeUI -javax/swing/plaf/basic/BasicTreeUI -javax/swing/plaf/TreeUI -javax/swing/plaf/basic/BasicTreeUI$Actions -javax/swing/plaf/basic/BasicTreeUI$TreeTransferHandler -javax/swing/plaf/metal/MetalTreeUI$LineListener -javax/swing/plaf/basic/BasicTreeUI$Handler -javax/swing/event/TreeModelListener -javax/swing/event/TreeSelectionListener -javax/swing/event/SwingPropertyChangeSupport -javax/swing/tree/VariableHeightLayoutCache +javax/swing/text/JTextComponent$KeymapWrapper +javax/swing/text/JTextComponent$MutableCaretEvent +javax/swing/text/Keymap +javax/swing/text/LayeredHighlighter +javax/swing/text/LayeredHighlighter$LayerPainter +javax/swing/text/MutableAttributeSet +javax/swing/text/PlainDocument +javax/swing/text/PlainView +javax/swing/text/Position +javax/swing/text/Position$Bias +javax/swing/text/Segment +javax/swing/text/SegmentCache +javax/swing/text/SegmentCache$CachedSegment +javax/swing/text/SimpleAttributeSet +javax/swing/text/SimpleAttributeSet$EmptyAttributeSet +javax/swing/text/Style +javax/swing/text/StyleConstants +javax/swing/text/StyleConstants$CharacterConstants +javax/swing/text/StyleConstants$ColorConstants +javax/swing/text/StyleConstants$FontConstants +javax/swing/text/StyleConstants$ParagraphConstants +javax/swing/text/StyleContext +javax/swing/text/StyleContext$FontKey +javax/swing/text/StyleContext$KeyEnumeration +javax/swing/text/StyleContext$NamedStyle +javax/swing/text/StyleContext$SmallAttributeSet +javax/swing/text/TabExpander +javax/swing/text/TextAction +javax/swing/text/Utilities +javax/swing/text/View +javax/swing/text/ViewFactory javax/swing/tree/AbstractLayoutCache -javax/swing/tree/RowMapper -javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler javax/swing/tree/AbstractLayoutCache$NodeDimensions -javax/swing/JTree$TreeModelHandler -javax/swing/tree/VariableHeightLayoutCache$TreeStateNode javax/swing/tree/DefaultMutableTreeNode -javax/swing/tree/MutableTreeNode javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration -javax/swing/event/TableColumnModelEvent -java/text/ParseException -java/text/NumberFormat$Field -javax/swing/event/UndoableEditListener -javax/swing/filechooser/FileFilter -javax/swing/tree/DefaultTreeModel javax/swing/tree/DefaultTreeCellEditor javax/swing/tree/DefaultTreeCellEditor$1 javax/swing/tree/DefaultTreeCellEditor$DefaultTextField -javax/swing/DefaultCellEditor$1 -javax/swing/DefaultCellEditor$EditorDelegate javax/swing/tree/DefaultTreeCellEditor$EditorContainer -javax/swing/JTree$TreeSelectionRedirector -javax/swing/event/TreeModelEvent -javax/swing/plaf/metal/MetalSplitPaneUI -javax/swing/plaf/basic/BasicSplitPaneUI -javax/swing/plaf/SplitPaneUI -javax/swing/plaf/basic/BasicSplitPaneDivider -javax/swing/plaf/basic/BasicBorders$SplitPaneBorder -javax/swing/plaf/metal/MetalSplitPaneDivider -javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout -javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler -javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder -javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager -javax/swing/plaf/basic/BasicSplitPaneUI$1 -javax/swing/plaf/basic/BasicSplitPaneUI$Handler -javax/swing/plaf/metal/MetalSplitPaneDivider$1 -javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchActionHandler -javax/swing/plaf/metal/MetalSplitPaneDivider$2 -javax/swing/border/TitledBorder -javax/swing/plaf/basic/BasicTextAreaUI -java/util/Collections$UnmodifiableCollection$1 -java/io/InterruptedIOException -java/net/NoRouteToHostException -java/net/BindException +javax/swing/tree/DefaultTreeCellRenderer +javax/swing/tree/DefaultTreeModel +javax/swing/tree/DefaultTreeSelectionModel +javax/swing/tree/MutableTreeNode javax/swing/tree/PathPlaceHolder -javax/swing/event/TreeSelectionEvent -javax/swing/JList$3 -javax/swing/JList$ListSelectionHandler -javax/swing/JSlider -javax/swing/JSlider$ModelListener -javax/swing/plaf/metal/MetalSliderUI -javax/swing/plaf/basic/BasicSliderUI -javax/swing/plaf/SliderUI -javax/swing/plaf/basic/BasicSliderUI$Actions -javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon -javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon -javax/swing/plaf/basic/BasicSliderUI$TrackListener -javax/swing/plaf/basic/BasicSliderUI$Handler -javax/swing/plaf/basic/BasicSliderUI$ScrollListener -javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener -javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler -java/util/Hashtable$KeySet -sun/font/Type1Font$1 -java/nio/channels/FileChannel$MapMode -sun/nio/ch/FileChannelImpl$Unmapper -sun/nio/ch/Util$3 -java/nio/DirectByteBufferR -sun/nio/cs/US_ASCII$Decoder -sun/font/Type1Font$2 -sun/font/Type1GlyphMapper -javax/swing/DefaultListModel -javax/swing/event/ListDataEvent -javax/sound/sampled/DataLine -javax/sound/sampled/Line -javax/sound/sampled/Line$Info -javax/sound/sampled/DataLine$Info -javax/sound/sampled/Control$Type -javax/sound/sampled/FloatControl$Type -javax/sound/sampled/LineUnavailableException -javax/sound/sampled/UnsupportedAudioFileException -javax/swing/JRadioButtonMenuItem -javax/swing/JMenuItem$AccessibleJMenuItem -javax/swing/AbstractButton$AccessibleAbstractButton -javax/accessibility/AccessibleAction -javax/accessibility/AccessibleValue -javax/accessibility/AccessibleText -javax/accessibility/AccessibleExtendedComponent -javax/accessibility/AccessibleComponent -javax/swing/JComponent$AccessibleJComponent -java/awt/Container$AccessibleAWTContainer -java/awt/Component$AccessibleAWTComponent -javax/accessibility/AccessibleRelationSet -javax/accessibility/AccessibleState -javax/accessibility/AccessibleBundle -javax/swing/plaf/basic/BasicCheckBoxMenuItemUI -javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon -javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem -javax/swing/plaf/basic/BasicRadioButtonMenuItemUI -javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon +javax/swing/tree/RowMapper +javax/swing/tree/TreeCellEditor +javax/swing/tree/TreeCellRenderer +javax/swing/tree/TreeModel +javax/swing/tree/TreeNode +javax/swing/tree/TreePath +javax/swing/tree/TreeSelectionModel +javax/swing/tree/VariableHeightLayoutCache +javax/swing/tree/VariableHeightLayoutCache$TreeStateNode +javax/swing/undo/AbstractUndoableEdit +javax/swing/undo/CompoundEdit +javax/swing/undo/UndoableEdit +javax/xml/parsers/DocumentBuilder +javax/xml/parsers/DocumentBuilderFactory +javax/xml/parsers/FactoryFinder +javax/xml/parsers/FactoryFinder$1 +javax/xml/parsers/ParserConfigurationException +javax/xml/parsers/SecuritySupport +javax/xml/parsers/SecuritySupport$2 +javax/xml/parsers/SecuritySupport$5 +org/w3c/dom/Attr +org/w3c/dom/CDATASection +org/w3c/dom/CharacterData +org/w3c/dom/Comment +org/w3c/dom/DOMException +org/w3c/dom/Document +org/w3c/dom/DocumentFragment +org/w3c/dom/DocumentType +org/w3c/dom/Element +org/w3c/dom/Entity +org/w3c/dom/EntityReference +org/w3c/dom/NamedNodeMap +org/w3c/dom/Node +org/w3c/dom/NodeList +org/w3c/dom/Notation +org/w3c/dom/ProcessingInstruction +org/w3c/dom/Text +org/w3c/dom/events/DocumentEvent +org/w3c/dom/events/Event +org/w3c/dom/events/EventException +org/w3c/dom/events/EventTarget +org/w3c/dom/events/MutationEvent +org/w3c/dom/ranges/DocumentRange +org/w3c/dom/ranges/Range +org/w3c/dom/traversal/DocumentTraversal +org/w3c/dom/traversal/NodeIterator +org/w3c/dom/traversal/TreeWalker +org/xml/sax/AttributeList +org/xml/sax/ContentHandler +org/xml/sax/DTDHandler +org/xml/sax/EntityResolver +org/xml/sax/ErrorHandler +org/xml/sax/InputSource +org/xml/sax/Locator +org/xml/sax/SAXException +org/xml/sax/SAXNotRecognizedException +org/xml/sax/SAXNotSupportedException +org/xml/sax/SAXParseException +org/xml/sax/helpers/DefaultHandler +sun/awt/AWTAccessor +sun/awt/AWTAccessor$AWTEventAccessor +sun/awt/AWTAccessor$ClientPropertyKeyAccessor +sun/awt/AWTAccessor$ComponentAccessor +sun/awt/AWTAccessor$ContainerAccessor +sun/awt/AWTAccessor$CursorAccessor +sun/awt/AWTAccessor$DefaultKeyboardFocusManagerAccessor +sun/awt/AWTAccessor$EventQueueAccessor +sun/awt/AWTAccessor$FrameAccessor +sun/awt/AWTAccessor$InputEventAccessor +sun/awt/AWTAccessor$InvocationEventAccessor +sun/awt/AWTAccessor$KeyEventAccessor +sun/awt/AWTAccessor$KeyboardFocusManagerAccessor +sun/awt/AWTAccessor$SequencedEventAccessor +sun/awt/AWTAccessor$ToolkitAccessor +sun/awt/AWTAccessor$WindowAccessor +sun/awt/AWTAutoShutdown +sun/awt/AWTIcon64_java_icon16_png +sun/awt/AWTIcon64_java_icon24_png +sun/awt/AWTIcon64_java_icon32_png +sun/awt/AWTIcon64_java_icon48_png +sun/awt/AppContext +sun/awt/AppContext$1 +sun/awt/AppContext$2 +sun/awt/AppContext$3 +sun/awt/AppContext$6 +sun/awt/AppContext$GetAppContextLock +sun/awt/AppContext$State +sun/awt/CausedFocusEvent +sun/awt/CausedFocusEvent$Cause +sun/awt/ComponentFactory +sun/awt/ConstrainableGraphics +sun/awt/DisplayChangedListener +sun/awt/EmbeddedFrame +sun/awt/EventQueueDelegate +sun/awt/EventQueueItem +sun/awt/FontConfiguration +sun/awt/FontConfiguration$1 +sun/awt/FontDescriptor +sun/awt/GlobalCursorManager +sun/awt/GlobalCursorManager$NativeUpdater +sun/awt/HeadlessToolkit +sun/awt/IconInfo +sun/awt/InputMethodSupport +sun/awt/KeyboardFocusManagerPeerImpl +sun/awt/KeyboardFocusManagerPeerProvider +sun/awt/LightweightFrame +sun/awt/ModalityListener +sun/awt/MostRecentKeyValue +sun/awt/NullComponentPeer +sun/awt/OSInfo +sun/awt/OSInfo$1 +sun/awt/OSInfo$OSType +sun/awt/OSInfo$WindowsVersion +sun/awt/PaintEventDispatcher +sun/awt/PeerEvent +sun/awt/PostEventQueue +sun/awt/RepaintArea +sun/awt/RequestFocusController +sun/awt/SubRegionShowable +sun/awt/SunDisplayChanger +sun/awt/SunGraphicsCallback +sun/awt/SunHints +sun/awt/SunHints$Key +sun/awt/SunHints$LCDContrastKey +sun/awt/SunHints$Value +sun/awt/SunToolkit +sun/awt/SunToolkit$ModalityListenerList +sun/awt/TimedWindowEvent +sun/awt/UNIXToolkit +sun/awt/WindowClosingListener +sun/awt/WindowClosingSupport +sun/awt/X11/AwtGraphicsConfigData +sun/awt/X11/AwtScreenData +sun/awt/X11/MotifColorUtilities +sun/awt/X11/MotifDnDConstants +sun/awt/X11/MotifDnDDragSourceProtocol +sun/awt/X11/MotifDnDDropTargetProtocol +sun/awt/X11/Native +sun/awt/X11/Native$1 +sun/awt/X11/OwnershipListener +sun/awt/X11/PropMwmHints +sun/awt/X11/UnsafeXDisposerRecord +sun/awt/X11/WindowDimensions +sun/awt/X11/WindowPropertyGetter +sun/awt/X11/XAWTXSettings +sun/awt/X11/XAnyEvent +sun/awt/X11/XAtom +sun/awt/X11/XAtomList +sun/awt/X11/XAwtState +sun/awt/X11/XBaseWindow +sun/awt/X11/XBaseWindow$1 +sun/awt/X11/XBaseWindow$InitialiseState +sun/awt/X11/XBaseWindow$StateLock +sun/awt/X11/XCanvasPeer +sun/awt/X11/XClientMessageEvent +sun/awt/X11/XClipboard +sun/awt/X11/XComponentPeer +sun/awt/X11/XComponentPeer$1 +sun/awt/X11/XConfigureEvent +sun/awt/X11/XContentWindow +sun/awt/X11/XCreateWindowParams +sun/awt/X11/XDecoratedPeer +sun/awt/X11/XDnDConstants +sun/awt/X11/XDnDDragSourceProtocol +sun/awt/X11/XDnDDropTargetProtocol +sun/awt/X11/XDragAndDropProtocols +sun/awt/X11/XDragSourceContextPeer +sun/awt/X11/XDragSourceProtocol +sun/awt/X11/XDragSourceProtocolListener +sun/awt/X11/XDropTargetContextPeer +sun/awt/X11/XDropTargetContextPeer$XDropTargetProtocolListenerImpl +sun/awt/X11/XDropTargetEventProcessor +sun/awt/X11/XDropTargetProtocol +sun/awt/X11/XDropTargetProtocolListener +sun/awt/X11/XDropTargetRegistry +sun/awt/X11/XEmbeddedFramePeer +sun/awt/X11/XErrorEvent +sun/awt/X11/XErrorHandler +sun/awt/X11/XErrorHandler$IgnoreBadWindowHandler +sun/awt/X11/XErrorHandler$VerifyChangePropertyHandler +sun/awt/X11/XErrorHandler$XBaseErrorHandler +sun/awt/X11/XErrorHandler$XErrorHandlerWithFlag +sun/awt/X11/XErrorHandler$XShmAttachHandler +sun/awt/X11/XErrorHandlerUtil +sun/awt/X11/XEvent +sun/awt/X11/XEventDispatcher +sun/awt/X11/XExposeEvent +sun/awt/X11/XFocusChangeEvent +sun/awt/X11/XFocusProxyWindow +sun/awt/X11/XFramePeer +sun/awt/X11/XGlobalCursorManager +sun/awt/X11/XInputMethod +sun/awt/X11/XInputMethodDescriptor +sun/awt/X11/XKeyboardFocusManagerPeer +sun/awt/X11/XLabelPeer +sun/awt/X11/XLayerProtocol +sun/awt/X11/XMSelection +sun/awt/X11/XMSelection$1 +sun/awt/X11/XMSelection$3 +sun/awt/X11/XMSelectionListener +sun/awt/X11/XModifierKeymap +sun/awt/X11/XNETProtocol +sun/awt/X11/XPanelPeer +sun/awt/X11/XPropertyCache +sun/awt/X11/XPropertyEvent +sun/awt/X11/XProtocol +sun/awt/X11/XRepaintArea +sun/awt/X11/XReparentEvent +sun/awt/X11/XRootWindow +sun/awt/X11/XSelection +sun/awt/X11/XSelection$IncrementalTransferHandler +sun/awt/X11/XSelection$SelectionEventHandler +sun/awt/X11/XSetWindowAttributes +sun/awt/X11/XSizeHints +sun/awt/X11/XStateProtocol +sun/awt/X11/XSystemTrayPeer +sun/awt/X11/XToolkit +sun/awt/X11/XToolkit$1 +sun/awt/X11/XToolkit$2 +sun/awt/X11/XToolkit$2$1 +sun/awt/X11/XToolkit$3 +sun/awt/X11/XToolkit$4 +sun/awt/X11/XToolkit$5 +sun/awt/X11/XTranslateCoordinates +sun/awt/X11/XUnmapEvent +sun/awt/X11/XVisibilityEvent +sun/awt/X11/XVisualInfo +sun/awt/X11/XWINProtocol +sun/awt/X11/XWM +sun/awt/X11/XWM$1 +sun/awt/X11/XWMHints +sun/awt/X11/XWindow +sun/awt/X11/XWindowAttributes +sun/awt/X11/XWindowAttributesData +sun/awt/X11/XWindowPeer +sun/awt/X11/XWindowPeer$2 +sun/awt/X11/XWindowPeer$4 +sun/awt/X11/XWrapperBase +sun/awt/X11/XlibUtil +sun/awt/X11/XlibWrapper +sun/awt/X11ComponentPeer +sun/awt/X11FontManager +sun/awt/X11GraphicsConfig +sun/awt/X11GraphicsConfig$X11GCDisposerRecord +sun/awt/X11GraphicsDevice +sun/awt/X11GraphicsEnvironment +sun/awt/X11GraphicsEnvironment$1 +sun/awt/X11InputMethod +sun/awt/X11InputMethodDescriptor +sun/awt/XSettings +sun/awt/XSettings$Update +sun/awt/datatransfer/SunClipboard +sun/awt/dnd/SunDragSourceContextPeer +sun/awt/dnd/SunDropTargetContextPeer +sun/awt/dnd/SunDropTargetEvent +sun/awt/event/IgnorePaintEvent +sun/awt/im/ExecutableInputMethodManager +sun/awt/im/ExecutableInputMethodManager$3 +sun/awt/im/InputContext +sun/awt/im/InputMethodAdapter +sun/awt/im/InputMethodContext +sun/awt/im/InputMethodLocator +sun/awt/im/InputMethodManager +sun/awt/image/BufImgSurfaceData +sun/awt/image/BufImgSurfaceData$ICMColorData +sun/awt/image/BufImgSurfaceManager +sun/awt/image/BufferedImageGraphicsConfig +sun/awt/image/ByteComponentRaster +sun/awt/image/ByteInterleavedRaster +sun/awt/image/BytePackedRaster +sun/awt/image/FetcherInfo +sun/awt/image/GifFrame +sun/awt/image/GifImageDecoder +sun/awt/image/ImageConsumerQueue +sun/awt/image/ImageDecoder sun/awt/image/ImageDecoder$1 -javax/swing/JTabbedPane$Page -java/net/DatagramSocket -java/net/MulticastSocket -java/net/DatagramPacket +sun/awt/image/ImageFetchable +sun/awt/image/ImageFetcher +sun/awt/image/ImageFetcher$1 +sun/awt/image/ImageRepresentation +sun/awt/image/ImageWatched +sun/awt/image/ImageWatched$Link +sun/awt/image/ImageWatched$WeakLink +sun/awt/image/InputStreamImageSource +sun/awt/image/IntegerComponentRaster +sun/awt/image/IntegerInterleavedRaster +sun/awt/image/NativeLibLoader +sun/awt/image/NativeLibLoader$1 +sun/awt/image/OffScreenImage +sun/awt/image/PNGFilterInputStream +sun/awt/image/PNGImageDecoder +sun/awt/image/PixelConverter +sun/awt/image/PixelConverter$Argb +sun/awt/image/PixelConverter$ArgbBm +sun/awt/image/PixelConverter$ArgbPre +sun/awt/image/PixelConverter$Bgrx +sun/awt/image/PixelConverter$ByteGray +sun/awt/image/PixelConverter$Rgba +sun/awt/image/PixelConverter$RgbaPre +sun/awt/image/PixelConverter$Rgbx +sun/awt/image/PixelConverter$Ushort4444Argb +sun/awt/image/PixelConverter$Ushort555Rgb +sun/awt/image/PixelConverter$Ushort555Rgbx +sun/awt/image/PixelConverter$Ushort565Rgb +sun/awt/image/PixelConverter$UshortGray +sun/awt/image/PixelConverter$Xbgr +sun/awt/image/PixelConverter$Xrgb +sun/awt/image/SunVolatileImage +sun/awt/image/SunWritableRaster +sun/awt/image/SunWritableRaster$DataStealer +sun/awt/image/SurfaceManager +sun/awt/image/SurfaceManager$FlushableCacheData +sun/awt/image/SurfaceManager$ImageAccessor +sun/awt/image/SurfaceManager$ProxiedGraphicsConfig +sun/awt/image/ToolkitImage +sun/awt/image/URLImageSource +sun/awt/image/VolatileSurfaceManager +sun/awt/motif/MFontConfiguration +sun/awt/resources/awt +sun/awt/util/IdentityArrayList +sun/dc/DuctusRenderingEngine +sun/font/AttributeValues +sun/font/CMap +sun/font/CMap$CMapFormat12 +sun/font/CMap$NullCMapClass +sun/font/CharToGlyphMapper +sun/font/CompositeFont +sun/font/CompositeFontDescriptor +sun/font/CompositeGlyphMapper +sun/font/CompositeStrike +sun/font/CoreMetrics +sun/font/EAttribute +sun/font/FcFontConfiguration +sun/font/FileFont +sun/font/FileFontStrike +sun/font/Font2D +sun/font/Font2DHandle +sun/font/FontAccess +sun/font/FontConfigManager +sun/font/FontConfigManager$FcCompFont +sun/font/FontConfigManager$FontConfigFont +sun/font/FontConfigManager$FontConfigInfo +sun/font/FontDesignMetrics +sun/font/FontDesignMetrics$KeyReference +sun/font/FontDesignMetrics$MetricsKey +sun/font/FontFamily +sun/font/FontLineMetrics +sun/font/FontManager +sun/font/FontManagerFactory +sun/font/FontManagerFactory$1 +sun/font/FontManagerForSGE +sun/font/FontManagerNativeLibrary +sun/font/FontManagerNativeLibrary$1 +sun/font/FontScaler +sun/font/FontStrike +sun/font/FontStrikeDesc +sun/font/FontStrikeDisposer +sun/font/FontUtilities +sun/font/FontUtilities$1 +sun/font/GlyphDisposedListener +sun/font/GlyphList +sun/font/PhysicalFont +sun/font/PhysicalStrike +sun/font/StandardGlyphVector +sun/font/StandardGlyphVector$GlyphStrike +sun/font/StrikeCache +sun/font/StrikeCache$1 +sun/font/StrikeCache$DisposableStrike +sun/font/StrikeCache$SoftDisposerRef +sun/font/StrikeMetrics +sun/font/SunFontManager +sun/font/SunFontManager$1 +sun/font/SunFontManager$11 +sun/font/SunFontManager$13 +sun/font/SunFontManager$2 +sun/font/SunFontManager$3 +sun/font/SunFontManager$FontRegistrationInfo +sun/font/SunFontManager$T1Filter +sun/font/SunFontManager$TTFilter +sun/font/T2KFontScaler +sun/font/T2KFontScaler$1 +sun/font/TrueTypeFont +sun/font/TrueTypeFont$1 +sun/font/TrueTypeFont$DirectoryEntry +sun/font/TrueTypeFont$TTDisposerRecord +sun/font/TrueTypeGlyphMapper +sun/font/Type1Font +sun/font/Type1Font$1 +sun/font/XRGlyphCache +sun/font/XRGlyphCacheEntry +sun/font/XRTextRenderer +sun/java2d/BackBufferCapsProvider +sun/java2d/DefaultDisposerRecord +sun/java2d/DestSurfaceProvider +sun/java2d/Disposer +sun/java2d/Disposer$1 +sun/java2d/Disposer$2 +sun/java2d/Disposer$PollDisposable +sun/java2d/DisposerRecord +sun/java2d/DisposerTarget +sun/java2d/FontSupport +sun/java2d/InvalidPipeException +sun/java2d/NullSurfaceData +sun/java2d/StateTrackable +sun/java2d/StateTrackable$State +sun/java2d/StateTrackableDelegate +sun/java2d/StateTrackableDelegate$1 +sun/java2d/StateTrackableDelegate$2 +sun/java2d/StateTracker +sun/java2d/StateTracker$1 +sun/java2d/StateTracker$2 +sun/java2d/SunGraphics2D +sun/java2d/SunGraphicsEnvironment +sun/java2d/SunGraphicsEnvironment$1 +sun/java2d/Surface +sun/java2d/SurfaceData +sun/java2d/SurfaceData$PixelToPgramLoopConverter +sun/java2d/SurfaceData$PixelToShapeLoopConverter +sun/java2d/SurfaceDataProxy +sun/java2d/SurfaceDataProxy$1 +sun/java2d/SurfaceManagerFactory +sun/java2d/UnixSurfaceManagerFactory +sun/java2d/cmm/CMSManager +sun/java2d/cmm/ProfileActivator +sun/java2d/cmm/ProfileDeferralInfo +sun/java2d/cmm/ProfileDeferralMgr +sun/java2d/jules/JulesPathBuf +sun/java2d/jules/JulesPathBuf$1 +sun/java2d/loops/Blit +sun/java2d/loops/BlitBg +sun/java2d/loops/CompositeType +sun/java2d/loops/CustomComponent +sun/java2d/loops/DrawGlyphList +sun/java2d/loops/DrawGlyphListAA +sun/java2d/loops/DrawGlyphListLCD +sun/java2d/loops/DrawLine +sun/java2d/loops/DrawParallelogram +sun/java2d/loops/DrawPath +sun/java2d/loops/DrawPolygons +sun/java2d/loops/DrawRect +sun/java2d/loops/FillParallelogram +sun/java2d/loops/FillPath +sun/java2d/loops/FillRect +sun/java2d/loops/FillSpans +sun/java2d/loops/FontInfo +sun/java2d/loops/GeneralRenderer +sun/java2d/loops/GraphicsPrimitive +sun/java2d/loops/GraphicsPrimitiveMgr +sun/java2d/loops/GraphicsPrimitiveMgr$1 +sun/java2d/loops/GraphicsPrimitiveMgr$2 +sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec +sun/java2d/loops/GraphicsPrimitiveProxy +sun/java2d/loops/MaskBlit +sun/java2d/loops/MaskFill +sun/java2d/loops/ProcessPath +sun/java2d/loops/ProcessPath$1 +sun/java2d/loops/ProcessPath$ActiveEdgeList +sun/java2d/loops/ProcessPath$DrawHandler +sun/java2d/loops/ProcessPath$Edge +sun/java2d/loops/ProcessPath$EndSubPathHandler +sun/java2d/loops/ProcessPath$FillData +sun/java2d/loops/ProcessPath$FillProcessHandler +sun/java2d/loops/ProcessPath$Point +sun/java2d/loops/ProcessPath$ProcessHandler +sun/java2d/loops/RenderCache +sun/java2d/loops/RenderCache$Entry +sun/java2d/loops/RenderLoops +sun/java2d/loops/ScaledBlit +sun/java2d/loops/SurfaceType +sun/java2d/loops/TransformBlit +sun/java2d/loops/TransformHelper +sun/java2d/loops/XORComposite +sun/java2d/opengl/GLXGraphicsConfig +sun/java2d/opengl/OGLGraphicsConfig +sun/java2d/pipe/AAShapePipe +sun/java2d/pipe/AATextRenderer +sun/java2d/pipe/AlphaColorPipe +sun/java2d/pipe/AlphaPaintPipe +sun/java2d/pipe/CompositePipe +sun/java2d/pipe/DrawImage +sun/java2d/pipe/DrawImagePipe +sun/java2d/pipe/GeneralCompositePipe +sun/java2d/pipe/GlyphListLoopPipe +sun/java2d/pipe/GlyphListPipe +sun/java2d/pipe/LCDTextRenderer +sun/java2d/pipe/LoopBasedPipe +sun/java2d/pipe/LoopPipe +sun/java2d/pipe/NullPipe +sun/java2d/pipe/OutlineTextRenderer +sun/java2d/pipe/ParallelogramPipe +sun/java2d/pipe/PixelDrawPipe +sun/java2d/pipe/PixelFillPipe +sun/java2d/pipe/PixelToParallelogramConverter +sun/java2d/pipe/PixelToShapeConverter +sun/java2d/pipe/Region +sun/java2d/pipe/Region$ImmutableRegion +sun/java2d/pipe/RegionIterator +sun/java2d/pipe/RenderingEngine +sun/java2d/pipe/RenderingEngine$1 +sun/java2d/pipe/ShapeDrawPipe +sun/java2d/pipe/SolidTextRenderer +sun/java2d/pipe/SpanClipRenderer +sun/java2d/pipe/SpanShapeRenderer +sun/java2d/pipe/SpanShapeRenderer$Composite +sun/java2d/pipe/TextPipe +sun/java2d/pipe/TextRenderer +sun/java2d/pipe/ValidatePipe +sun/java2d/pipe/hw/AccelGraphicsConfig +sun/java2d/pipe/hw/BufferedContextProvider +sun/java2d/x11/X11SurfaceData +sun/java2d/x11/X11SurfaceData$LazyPipe +sun/java2d/x11/XSurfaceData +sun/java2d/xr/DirtyRegion +sun/java2d/xr/GrowableEltArray +sun/java2d/xr/GrowableIntArray +sun/java2d/xr/GrowableRectArray +sun/java2d/xr/MaskTile +sun/java2d/xr/MaskTileManager +sun/java2d/xr/MutableInteger +sun/java2d/xr/XRBackend +sun/java2d/xr/XRBackendNative +sun/java2d/xr/XRColor +sun/java2d/xr/XRCompositeManager +sun/java2d/xr/XRCompositeManager$1 +sun/java2d/xr/XRDrawImage +sun/java2d/xr/XRDrawLine +sun/java2d/xr/XRGraphicsConfig +sun/java2d/xr/XRMaskBlit +sun/java2d/xr/XRMaskFill +sun/java2d/xr/XRMaskImage +sun/java2d/xr/XRPMBlit +sun/java2d/xr/XRPMBlitLoops +sun/java2d/xr/XRPMScaledBlit +sun/java2d/xr/XRPMTransformedBlit +sun/java2d/xr/XRPaints +sun/java2d/xr/XRPaints$XRGradient +sun/java2d/xr/XRPaints$XRLinearGradient +sun/java2d/xr/XRPaints$XRRadialGradient +sun/java2d/xr/XRPaints$XRTexture +sun/java2d/xr/XRRenderer +sun/java2d/xr/XRRenderer$XRDrawHandler +sun/java2d/xr/XRSolidSrcPict +sun/java2d/xr/XRSurfaceData +sun/java2d/xr/XRSurfaceData$XRInternalSurfaceData +sun/java2d/xr/XRSurfaceData$XRPixmapSurfaceData +sun/java2d/xr/XRSurfaceData$XRWindowSurfaceData +sun/java2d/xr/XRSurfaceDataProxy +sun/java2d/xr/XRUtils +sun/java2d/xr/XRVolatileSurfaceManager +sun/java2d/xr/XrSwToPMBlit +sun/java2d/xr/XrSwToPMScaledBlit +sun/java2d/xr/XrSwToPMTransformedBlit +sun/launcher/LauncherHelper +sun/launcher/LauncherHelper$FXHelper +sun/misc/ASCIICaseInsensitiveComparator +sun/misc/Cleaner +sun/misc/CompoundEnumeration +sun/misc/ExtensionDependency +sun/misc/FDBigInteger +sun/misc/FileURLMapper +sun/misc/FloatingDecimal +sun/misc/FloatingDecimal$1 +sun/misc/FloatingDecimal$ASCIIToBinaryBuffer +sun/misc/FloatingDecimal$ASCIIToBinaryConverter +sun/misc/FloatingDecimal$BinaryToASCIIBuffer +sun/misc/FloatingDecimal$BinaryToASCIIConverter +sun/misc/FloatingDecimal$ExceptionalBinaryToASCIIBuffer +sun/misc/FloatingDecimal$PreparedASCIIToBinaryBuffer +sun/misc/IOUtils +sun/misc/JarIndex +sun/misc/JavaAWTAccess +sun/misc/JavaIOFileDescriptorAccess +sun/misc/JavaLangAccess +sun/misc/JavaNetAccess +sun/misc/JavaNioAccess +sun/misc/JavaSecurityAccess +sun/misc/JavaSecurityProtectionDomainAccess +sun/misc/JavaUtilJarAccess +sun/misc/JavaUtilZipFileAccess +sun/misc/Launcher +sun/misc/Launcher$AppClassLoader +sun/misc/Launcher$AppClassLoader$1 +sun/misc/Launcher$BootClassPathHolder +sun/misc/Launcher$BootClassPathHolder$1 +sun/misc/Launcher$ExtClassLoader +sun/misc/Launcher$ExtClassLoader$1 +sun/misc/Launcher$Factory +sun/misc/MetaIndex +sun/misc/NativeSignalHandler +sun/misc/OSEnvironment +sun/misc/Perf +sun/misc/Perf$GetPerfAction +sun/misc/PerfCounter +sun/misc/PerfCounter$CoreCounters +sun/misc/PerformanceLogger +sun/misc/PerformanceLogger$TimeData +sun/misc/PostVMInitHook +sun/misc/Resource +sun/misc/SharedSecrets +sun/misc/Signal +sun/misc/SignalHandler +sun/misc/SoftCache +sun/misc/SoftCache$ValueCell +sun/misc/URLClassPath +sun/misc/URLClassPath$1 +sun/misc/URLClassPath$2 +sun/misc/URLClassPath$3 +sun/misc/URLClassPath$FileLoader +sun/misc/URLClassPath$JarLoader +sun/misc/URLClassPath$JarLoader$1 +sun/misc/URLClassPath$JarLoader$2 +sun/misc/URLClassPath$Loader +sun/misc/Unsafe +sun/misc/VM +sun/misc/Version +sun/net/DefaultProgressMeteringPolicy sun/net/InetAddressCachePolicy sun/net/InetAddressCachePolicy$1 sun/net/InetAddressCachePolicy$2 -java/net/InetAddress$CacheEntry -java/net/PlainDatagramSocketImpl -java/net/DatagramSocketImpl -java/net/NetworkInterface -java/net/InterfaceAddress -java/text/Collator -java/text/spi/CollatorProvider -sun/text/resources/CollationData -sun/text/resources/CollationData_en -sun/util/EmptyListResourceBundle -java/text/RuleBasedCollator -java/text/CollationRules -java/text/RBCollationTables -java/text/RBTableBuilder -java/text/RBCollationTables$BuildAPI -sun/text/IntHashtable -sun/text/UCompactIntArray -sun/text/normalizer/NormalizerImpl -sun/text/normalizer/ICUData -sun/text/normalizer/NormalizerDataReader -sun/text/normalizer/ICUBinary$Authenticate -sun/text/normalizer/ICUBinary -sun/text/normalizer/NormalizerImpl$FCDTrieImpl -sun/text/normalizer/Trie$DataManipulate -sun/text/normalizer/NormalizerImpl$NormTrieImpl -sun/text/normalizer/NormalizerImpl$AuxTrieImpl -sun/text/normalizer/IntTrie -sun/text/normalizer/Trie -sun/text/normalizer/CharTrie -sun/text/normalizer/CharTrie$FriendAgent -sun/text/normalizer/UnicodeSet -sun/text/normalizer/UnicodeMatcher -sun/text/normalizer/NormalizerImpl$DecomposeArgs -java/text/MergeCollation -java/text/PatternEntry$Parser -java/text/PatternEntry -java/text/EntryPair -sun/text/ComposedCharIter -sun/text/normalizer/UTF16 +sun/net/NetHooks +sun/net/NetHooks$Provider +sun/net/NetProperties +sun/net/NetProperties$1 +sun/net/ProgressMeteringPolicy +sun/net/ProgressMonitor +sun/net/ResourceManager +sun/net/sdp/SdpProvider +sun/net/spi/DefaultProxySelector +sun/net/spi/DefaultProxySelector$1 +sun/net/spi/DefaultProxySelector$3 +sun/net/spi/DefaultProxySelector$NonProxyInfo +sun/net/spi/nameservice/NameService +sun/net/util/IPAddressUtil +sun/net/util/URLUtil +sun/net/www/MessageHeader +sun/net/www/MimeEntry +sun/net/www/MimeTable +sun/net/www/MimeTable$1 +sun/net/www/MimeTable$DefaultInstanceHolder +sun/net/www/MimeTable$DefaultInstanceHolder$1 +sun/net/www/ParseUtil +sun/net/www/URLConnection +sun/net/www/protocol/file/FileURLConnection +sun/net/www/protocol/file/Handler sun/net/www/protocol/http/Handler -java/io/ObjectInputStream$BlockDataInputStream -java/io/ObjectInputStream$PeekInputStream -java/io/ObjectInputStream$HandleTable -java/io/ObjectInputStream$HandleTable$HandleList -java/io/ObjectInputStream$ValidationList -java/io/Bits -java/io/ObjectStreamClass$Caches -java/io/ObjectStreamClass$WeakClassKey -java/io/ObjectStreamClass$EntryFuture -java/io/ObjectStreamClass$2 +sun/net/www/protocol/jar/Handler +sun/net/www/protocol/jar/JarFileFactory +sun/net/www/protocol/jar/JarURLConnection +sun/net/www/protocol/jar/JarURLConnection$JarURLInputStream +sun/net/www/protocol/jar/URLJarFile +sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController +sun/net/www/protocol/jar/URLJarFile$URLJarFileEntry +sun/nio/ByteBuffered +sun/nio/ch/DirectBuffer +sun/nio/ch/FileChannelImpl +sun/nio/ch/FileChannelImpl$Unmapper +sun/nio/ch/FileDispatcher +sun/nio/ch/FileDispatcherImpl +sun/nio/ch/IOStatus +sun/nio/ch/IOUtil +sun/nio/ch/IOUtil$1 +sun/nio/ch/Interruptible +sun/nio/ch/NativeDispatcher +sun/nio/ch/NativeThread +sun/nio/ch/NativeThreadSet +sun/nio/ch/Util +sun/nio/ch/Util$1 +sun/nio/ch/Util$4 +sun/nio/ch/Util$BufferCache +sun/nio/cs/AbstractCharsetProvider +sun/nio/cs/ArrayDecoder +sun/nio/cs/ArrayEncoder +sun/nio/cs/FastCharsetProvider +sun/nio/cs/HistoricallyNamedCharset +sun/nio/cs/ISO_8859_1 +sun/nio/cs/ISO_8859_1$Decoder +sun/nio/cs/ISO_8859_1$Encoder +sun/nio/cs/StandardCharsets +sun/nio/cs/StandardCharsets$Aliases +sun/nio/cs/StandardCharsets$Cache +sun/nio/cs/StandardCharsets$Classes +sun/nio/cs/StreamDecoder +sun/nio/cs/StreamEncoder +sun/nio/cs/Surrogate +sun/nio/cs/Surrogate$Parser +sun/nio/cs/US_ASCII +sun/nio/cs/US_ASCII$Decoder +sun/nio/cs/UTF_16 +sun/nio/cs/UTF_16$Decoder +sun/nio/cs/UTF_16BE +sun/nio/cs/UTF_16LE +sun/nio/cs/UTF_8 +sun/nio/cs/UTF_8$Decoder +sun/nio/cs/UTF_8$Encoder +sun/nio/cs/Unicode +sun/nio/cs/UnicodeDecoder +sun/nio/cs/ext/DelegatableDecoder +sun/nio/cs/ext/DoubleByte +sun/nio/cs/ext/DoubleByte$Decoder +sun/nio/cs/ext/EUC_KR +sun/nio/cs/ext/ExtendedCharsets +sun/print/PrinterGraphicsConfig +sun/reflect/AccessorGenerator +sun/reflect/BootstrapConstructorAccessorImpl +sun/reflect/ByteVector +sun/reflect/ByteVectorFactory +sun/reflect/ByteVectorImpl +sun/reflect/CallerSensitive +sun/reflect/ClassDefiner +sun/reflect/ClassDefiner$1 +sun/reflect/ClassFileAssembler +sun/reflect/ClassFileConstants +sun/reflect/ConstantPool +sun/reflect/ConstructorAccessor +sun/reflect/ConstructorAccessorImpl +sun/reflect/DelegatingClassLoader +sun/reflect/DelegatingConstructorAccessorImpl +sun/reflect/DelegatingMethodAccessorImpl +sun/reflect/FieldAccessor +sun/reflect/FieldAccessorImpl +sun/reflect/Label +sun/reflect/Label$PatchInfo +sun/reflect/LangReflectAccess +sun/reflect/MagicAccessorImpl +sun/reflect/MethodAccessor +sun/reflect/MethodAccessorGenerator +sun/reflect/MethodAccessorGenerator$1 +sun/reflect/MethodAccessorImpl +sun/reflect/NativeConstructorAccessorImpl +sun/reflect/NativeMethodAccessorImpl +sun/reflect/Reflection +sun/reflect/ReflectionFactory +sun/reflect/ReflectionFactory$1 +sun/reflect/ReflectionFactory$GetReflectionFactoryAction sun/reflect/SerializationConstructorAccessorImpl -java/io/ObjectStreamClass$FieldReflectorKey -java/io/ObjectStreamClass$FieldReflector -java/io/ObjectStreamClass$1 -java/io/DataOutputStream -java/io/ObjectStreamClass$MemberSignature -java/io/ObjectStreamClass$3 -java/io/ObjectStreamClass$4 -java/io/ObjectStreamClass$5 -java/security/MessageDigest -java/security/MessageDigestSpi +sun/reflect/UTF8 +sun/reflect/UnsafeFieldAccessorFactory +sun/reflect/UnsafeFieldAccessorImpl +sun/reflect/UnsafeObjectFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticLongFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl +sun/reflect/UnsafeStaticFieldAccessorImpl +sun/reflect/annotation/AnnotationType +sun/reflect/generics/repository/AbstractRepository +sun/reflect/generics/repository/ClassRepository +sun/reflect/generics/repository/GenericDeclRepository +sun/reflect/misc/MethodUtil +sun/reflect/misc/MethodUtil$1 +sun/reflect/misc/ReflectUtil +sun/security/action/GetBooleanAction +sun/security/action/GetIntegerAction +sun/security/action/GetPropertyAction +sun/security/action/PutAllAction sun/security/jca/GetInstance -sun/security/jca/Providers -sun/security/jca/ProviderList +sun/security/jca/GetInstance$Instance sun/security/jca/ProviderConfig -sun/security/jca/ProviderList$3 +sun/security/jca/ProviderConfig$1 +sun/security/jca/ProviderConfig$2 +sun/security/jca/ProviderConfig$3 +sun/security/jca/ProviderList sun/security/jca/ProviderList$1 sun/security/jca/ProviderList$2 -sun/security/jca/ProviderConfig$2 -sun/security/util/PropertyExpander -sun/security/jca/ProviderConfig$1 -sun/security/jca/ProviderConfig$3 -sun/security/util/ManifestDigester -sun/security/util/ManifestDigester$Position -sun/security/util/ManifestDigester$Entry -sun/security/pkcs/PKCS7 -sun/security/util/DerInputStream -sun/security/util/DerIndefLenConverter -sun/security/util/DerInputBuffer -sun/security/pkcs/ContentInfo -sun/security/util/ObjectIdentifier -sun/security/util/DerValue -sun/security/util/DerOutputStream -sun/security/util/DerEncoder -sun/security/util/ByteArrayLexOrder -sun/security/util/ByteArrayTagOrder -java/math/BigInteger -sun/security/x509/AlgorithmId -java/security/cert/CertificateFactory -java/security/cert/CertificateFactorySpi -java/security/Provider$Service -java/security/Provider$UString -sun/security/provider/X509Factory -sun/security/util/Cache -sun/security/util/MemoryCache -sun/security/jca/GetInstance$Instance -java/security/cert/X509Certificate -java/security/cert/X509Extension -sun/security/util/Cache$EqualByteArray -sun/security/x509/X509CertImpl -sun/security/x509/X509CertInfo -sun/security/x509/CertAttrSet -sun/security/x509/CertificateVersion -sun/security/x509/CertificateSerialNumber -sun/security/x509/SerialNumber -sun/security/x509/CertificateAlgorithmId -sun/security/x509/CertificateIssuerName -sun/security/x509/X500Name -sun/security/x509/GeneralNameInterface -sun/security/x509/X500Name$1 -javax/security/auth/x500/X500Principal -sun/security/x509/RDN -sun/security/x509/AVA -sun/security/x509/CertificateValidity -sun/security/x509/CertificateSubjectName -sun/security/x509/CertificateX509Key -sun/security/x509/X509Key -java/security/PublicKey -java/security/Key -sun/security/util/BitArray -java/security/spec/X509EncodedKeySpec -java/security/spec/EncodedKeySpec -java/security/spec/KeySpec -java/security/KeyFactory +sun/security/jca/ProviderList$3 sun/security/jca/ProviderList$ServiceList sun/security/jca/ProviderList$ServiceList$1 -sun/security/rsa/RSAKeyFactory -java/security/KeyFactorySpi -java/security/spec/RSAPublicKeySpec -java/security/spec/RSAPrivateKeySpec -java/security/spec/RSAPrivateCrtKeySpec -java/security/spec/PKCS8EncodedKeySpec -sun/security/rsa/RSAPublicKeyImpl -java/security/interfaces/RSAPublicKey -java/security/interfaces/RSAKey -sun/security/rsa/RSAPrivateCrtKeyImpl -java/security/interfaces/RSAPrivateCrtKey -java/security/interfaces/RSAPrivateKey -java/security/PrivateKey +sun/security/jca/Providers +sun/security/jca/ServiceId +sun/security/pkcs/ContentInfo +sun/security/pkcs/PKCS7 sun/security/pkcs/PKCS8Key +sun/security/pkcs/PKCS9Attribute +sun/security/pkcs/SignerInfo +sun/security/provider/ByteArrayAccess +sun/security/provider/DSAKeyFactory +sun/security/provider/DSAParameters +sun/security/provider/DSAPublicKey +sun/security/provider/DSAPublicKeyImpl +sun/security/provider/DigestBase +sun/security/provider/NativePRNG +sun/security/provider/NativePRNG$1 +sun/security/provider/NativePRNG$2 +sun/security/provider/NativePRNG$Blocking +sun/security/provider/NativePRNG$NonBlocking +sun/security/provider/NativePRNG$RandomIO +sun/security/provider/NativePRNG$Variant +sun/security/provider/SHA2 +sun/security/provider/SHA2$SHA256 +sun/security/provider/Sun +sun/security/provider/SunEntries +sun/security/provider/SunEntries$1 +sun/security/provider/X509Factory +sun/security/provider/certpath/X509CertPath +sun/security/rsa/RSACore +sun/security/rsa/RSAKeyFactory +sun/security/rsa/RSAPadding +sun/security/rsa/RSAPrivateCrtKeyImpl +sun/security/rsa/RSAPrivateKeyImpl +sun/security/rsa/RSAPublicKeyImpl +sun/security/rsa/RSASignature +sun/security/rsa/RSASignature$SHA256withRSA +sun/security/rsa/SunRsaSign +sun/security/rsa/SunRsaSignEntries +sun/security/util/BitArray +sun/security/util/ByteArrayLexOrder +sun/security/util/ByteArrayTagOrder +sun/security/util/Cache +sun/security/util/Cache$EqualByteArray +sun/security/util/Debug +sun/security/util/DerEncoder +sun/security/util/DerIndefLenConverter +sun/security/util/DerInputBuffer +sun/security/util/DerInputStream +sun/security/util/DerOutputStream +sun/security/util/DerValue +sun/security/util/Length +sun/security/util/ManifestDigester +sun/security/util/ManifestDigester$Entry +sun/security/util/ManifestDigester$Position +sun/security/util/ManifestEntryVerifier +sun/security/util/ManifestEntryVerifier$SunProviderHolder +sun/security/util/MemoryCache +sun/security/util/MemoryCache$CacheEntry +sun/security/util/MemoryCache$HardCacheEntry +sun/security/util/MemoryCache$SoftCacheEntry +sun/security/util/ObjectIdentifier +sun/security/util/PropertyExpander +sun/security/util/SignatureFileVerifier +sun/security/x509/AVA +sun/security/x509/AVAKeyword +sun/security/x509/AlgorithmId +sun/security/x509/AuthorityKeyIdentifierExtension +sun/security/x509/BasicConstraintsExtension +sun/security/x509/CertAttrSet +sun/security/x509/CertificateAlgorithmId sun/security/x509/CertificateExtensions +sun/security/x509/CertificateSerialNumber +sun/security/x509/CertificateValidity +sun/security/x509/CertificateVersion +sun/security/x509/CertificateX509Key sun/security/x509/Extension -sun/security/x509/OIDMap -sun/security/x509/PKIXExtensions -sun/security/x509/OIDMap$OIDInfo +sun/security/x509/GeneralName +sun/security/x509/GeneralNameInterface +sun/security/x509/GeneralNames +sun/security/x509/KeyIdentifier +sun/security/x509/KeyUsageExtension sun/security/x509/NetscapeCertTypeExtension sun/security/x509/NetscapeCertTypeExtension$MapEntry -sun/security/x509/KeyUsageExtension -sun/security/x509/SubjectKeyIdentifierExtension -sun/security/x509/KeyIdentifier -sun/security/x509/AuthorityKeyIdentifierExtension -sun/security/x509/GeneralNames -sun/security/x509/SubjectAlternativeNameExtension -sun/security/x509/GeneralName +sun/security/x509/OIDMap +sun/security/x509/OIDMap$OIDInfo +sun/security/x509/PKIXExtensions +sun/security/x509/RDN sun/security/x509/RFC822Name +sun/security/x509/SerialNumber +sun/security/x509/SubjectAlternativeNameExtension +sun/security/x509/SubjectKeyIdentifierExtension +sun/security/x509/X500Name +sun/security/x509/X500Name$1 sun/security/x509/X509AttributeName -sun/security/util/MemoryCache$SoftCacheEntry -sun/security/util/MemoryCache$CacheEntry -java/security/AlgorithmParameters -java/security/AlgorithmParametersSpi -sun/security/provider/DSAParameters -sun/security/provider/DSAKeyFactory -java/security/spec/DSAPublicKeySpec -sun/security/provider/DSAPublicKeyImpl -sun/security/provider/DSAPublicKey -java/security/interfaces/DSAPublicKey -java/security/interfaces/DSAKey -sun/security/x509/BasicConstraintsExtension -sun/security/pkcs/SignerInfo -java/security/Signature -java/security/SignatureSpi -sun/security/jca/ServiceId -java/security/Signature$Delegate -sun/security/x509/AVAKeyword -sun/security/pkcs/PKCS9Attribute -java/text/Normalizer$Form -java/text/Normalizer +sun/security/x509/X509CertImpl +sun/security/x509/X509CertInfo +sun/security/x509/X509Key +sun/swing/DefaultLookup +sun/swing/ImageIconUIResource +sun/swing/JLightweightFrame +sun/swing/MenuItemLayoutHelper +sun/swing/MenuItemLayoutHelper$ColumnAlignment +sun/swing/MenuItemLayoutHelper$LayoutResult +sun/swing/MenuItemLayoutHelper$RectSize +sun/swing/PrintColorUIResource +sun/swing/StringUIClientPropertyKey +sun/swing/SwingAccessor +sun/swing/SwingAccessor$JTextComponentAccessor +sun/swing/SwingLazyValue +sun/swing/SwingLazyValue$1 +sun/swing/SwingUtilities2 +sun/swing/SwingUtilities2$2 +sun/swing/SwingUtilities2$AATextInfo +sun/swing/SwingUtilities2$LSBCacheEntry +sun/swing/UIAction +sun/swing/UIClientPropertyKey +sun/swing/table/DefaultTableCellHeaderRenderer +sun/swing/table/DefaultTableCellHeaderRenderer$EmptyIcon +sun/text/ComposedCharIter +sun/text/IntHashtable +sun/text/UCompactIntArray +sun/text/normalizer/CharTrie +sun/text/normalizer/CharTrie$FriendAgent +sun/text/normalizer/ICUBinary +sun/text/normalizer/ICUBinary$Authenticate +sun/text/normalizer/ICUData +sun/text/normalizer/IntTrie sun/text/normalizer/NormalizerBase -sun/text/normalizer/NormalizerBase$Mode -sun/text/normalizer/NormalizerBase$NFDMode -sun/text/normalizer/NormalizerBase$NFKDMode -sun/text/normalizer/NormalizerBase$NFCMode -sun/text/normalizer/NormalizerBase$NFKCMode -sun/text/normalizer/NormalizerBase$QuickCheckResult sun/text/normalizer/NormalizerBase$1 -sun/security/rsa/RSASignature$SHA1withRSA -sun/security/rsa/RSASignature -sun/security/provider/SHA -sun/security/provider/DigestBase -java/security/MessageDigest$Delegate -sun/security/rsa/RSACore -sun/security/rsa/RSAPadding -sun/security/provider/ByteArrayAccess -java/math/MutableBigInteger -sun/security/provider/certpath/X509CertPath -java/security/cert/CertPath -java/security/CodeSigner -sun/misc/CEStreamExhausted -java/util/jar/JarVerifier$VerifierStream -java/security/AuthProvider -java/security/SecurityPermission -javax/security/auth/login/LoginException -javax/security/auth/login/FailedLoginException -java/security/ProviderException -java/io/StreamTokenizer -java/lang/AssertionError -java/io/NotSerializableException -java/io/ObjectStreamException -java/security/InvalidParameterException -java/io/ObjectStreamClass$ClassDataSlot -sun/reflect/UnsafeQualifiedStaticLongFieldAccessorImpl -java/io/ObjectOutputStream$BlockDataOutputStream -java/io/ObjectOutputStream$HandleTable -java/io/ObjectOutputStream$ReplaceTable -java/security/SignatureException -java/security/InvalidKeyException -java/security/KeyException -java/security/interfaces/DSAParams -java/io/InvalidClassException -java/io/ObjectInputStream$GetFieldImpl -java/io/ObjectInputStream$GetField -java/security/interfaces/DSAPrivateKey -java/security/spec/InvalidKeySpecException -java/security/spec/DSAParameterSpec -java/security/spec/AlgorithmParameterSpec -sun/security/util/MemoryCache$HardCacheEntry -java/awt/EventQueue$1AWTInvocationLock -java/awt/Component$FlipBufferStrategy -java/awt/SentEvent -sun/awt/X11/XDestroyWindowEvent -sun/awt/X11/XDropTargetRegistry -sun/awt/X11/XEmbeddedFramePeer -sun/awt/X11/XDragAndDropProtocols -sun/awt/X11/XDropTargetContextPeer -sun/awt/dnd/SunDropTargetContextPeer -java/awt/dnd/peer/DropTargetContextPeer -sun/awt/X11/XDropTargetContextPeer$XDropTargetProtocolListenerImpl -sun/awt/X11/XDropTargetProtocolListener -sun/awt/X11/XDnDDragSourceProtocol -sun/awt/X11/XDragSourceProtocol -sun/awt/X11/MotifDnDDragSourceProtocol -sun/awt/X11/XDnDDropTargetProtocol -sun/awt/X11/XDropTargetProtocol -sun/awt/X11/MotifDnDDropTargetProtocol -sun/awt/X11/XDnDConstants -sun/awt/X11/MotifDnDConstants -javax/swing/JTable$2 -javax/swing/JTable$Resizable3 -javax/swing/JTable$Resizable2 -javax/swing/JTable$5 -javax/swing/event/AncestorEvent -com/sun/java/swing/plaf/gtk/GTKLookAndFeel -javax/swing/plaf/synth/SynthLookAndFeel -javax/swing/plaf/synth/DefaultSynthStyleFactory -javax/swing/plaf/synth/SynthStyleFactory -sun/swing/BakedArrayList -javax/swing/plaf/synth/SynthLookAndFeel$Handler -javax/swing/plaf/synth/SynthDefaultLookup -com/sun/java/swing/plaf/gtk/GTKEngine -javax/swing/plaf/synth/Region -com/sun/java/swing/plaf/gtk/GTKRegion -sun/swing/ImageCache -com/sun/java/swing/plaf/gtk/GTKEngine$Settings -com/sun/java/swing/plaf/gtk/GTKStyleFactory -com/sun/java/swing/plaf/gtk/PangoFonts -com/sun/java/swing/plaf/gtk/GTKLookAndFeel$WeakPCL -javax/swing/plaf/synth/SynthLookAndFeel$AATextListener -com/sun/java/swing/plaf/gtk/GTKStyle -com/sun/java/swing/plaf/gtk/GTKConstants -javax/swing/plaf/synth/SynthStyle -javax/swing/plaf/synth/SynthGraphicsUtils -com/sun/java/swing/plaf/gtk/GTKGraphicsUtils -com/sun/java/swing/plaf/gtk/GTKStyle$GTKStockIcon -sun/swing/plaf/synth/SynthIcon -com/sun/java/swing/plaf/gtk/GTKColorType -javax/swing/plaf/synth/ColorType -com/sun/java/swing/plaf/gtk/GTKConstants$StateType -com/sun/java/swing/plaf/gtk/resources/gtk -com/sun/swing/internal/plaf/synth/resources/synth -com/sun/java/swing/plaf/gtk/GTKStyle$GTKLazyValue -com/sun/java/swing/plaf/gtk/GTKLookAndFeel$1FontLazyValue -com/sun/java/swing/plaf/gtk/GTKLookAndFeel$2 -com/sun/java/swing/plaf/gtk/GTKLookAndFeel$3 -javax/swing/plaf/synth/SynthPanelUI -javax/swing/plaf/synth/SynthConstants -javax/swing/plaf/synth/SynthContext -javax/swing/plaf/synth/SynthBorder -javax/swing/plaf/synth/SynthRootPaneUI -javax/swing/plaf/synth/SynthLabelUI -sun/java2d/x11/X11VolatileSurfaceManager -javax/swing/plaf/synth/SynthButtonUI -javax/swing/plaf/synth/SynthToggleButtonUI -javax/swing/plaf/basic/BasicBorders$FieldBorder -javax/swing/plaf/synth/SynthMenuBarUI -javax/swing/plaf/synth/SynthMenuUI -javax/swing/plaf/synth/SynthUI -com/sun/java/swing/plaf/gtk/GTKIconFactory -com/sun/java/swing/plaf/gtk/GTKIconFactory$MenuArrowIcon -com/sun/java/swing/plaf/gtk/GTKIconFactory$DelegatingIcon -com/sun/java/swing/plaf/gtk/GTKConstants$ArrowType -javax/swing/plaf/basic/BasicIconFactory -javax/swing/plaf/basic/BasicIconFactory$MenuItemCheckIcon -javax/swing/plaf/synth/SynthMenuItemUI -javax/swing/plaf/synth/SynthPopupMenuUI -javax/swing/plaf/synth/SynthSeparatorUI -javax/swing/plaf/synth/SynthScrollBarUI -javax/swing/plaf/synth/SynthArrowButton -javax/swing/plaf/synth/SynthArrowButton$SynthArrowButtonUI -javax/swing/plaf/synth/SynthComboBoxUI -javax/swing/plaf/synth/SynthComboPopup -javax/swing/plaf/synth/SynthListUI -javax/swing/plaf/synth/SynthListUI$SynthListCellRenderer -javax/swing/plaf/synth/SynthViewportUI -javax/swing/plaf/synth/SynthScrollPaneUI -javax/swing/plaf/synth/SynthScrollPaneUI$ViewportBorder -javax/swing/plaf/synth/SynthComboBoxUI$SynthComboBoxRenderer -javax/swing/plaf/synth/SynthComboBoxUI$SynthComboBoxEditor -javax/swing/plaf/synth/SynthTextFieldUI -javax/swing/plaf/synth/SynthToolBarUI -javax/swing/plaf/synth/SynthToolBarUI$SynthToolBarLayoutManager -com/sun/java/swing/plaf/gtk/GTKIconFactory$ToolBarHandleIcon -com/sun/java/swing/plaf/gtk/GTKConstants$Orientation -com/sun/java/swing/plaf/gtk/GTKPainter -javax/swing/plaf/synth/SynthPainter -javax/swing/plaf/synth/SynthPainter$1 -com/sun/java/swing/plaf/gtk/GTKConstants$PositionType -com/sun/java/swing/plaf/gtk/GTKConstants$ShadowType -sun/applet/Main -sun/applet/AppletMessageHandler -sun/applet/resources/MsgAppletViewer -sun/applet/AppletSecurity -sun/awt/AWTSecurityManager -java/lang/SecurityManager -java/security/DomainCombiner -sun/applet/AppletSecurity$1 -java/lang/SecurityManager$1 -java/util/PropertyPermission -sun/applet/AppletViewer -java/applet/AppletContext -java/awt/print/Printable -sun/security/util/SecurityConstants -java/awt/AWTPermission -java/net/NetPermission -java/net/SocketPermission -javax/security/auth/AuthPermission -java/lang/Thread$1 -java/util/logging/LogManager$5 -sun/applet/StdAppletViewerFactory -sun/applet/AppletViewerFactory -sun/applet/AppletViewer$UserActionListener -sun/applet/AppletViewerPanel -sun/applet/AppletPanel -java/applet/AppletStub -sun/misc/MessageUtils -sun/applet/AppletPanel$10 -java/security/Policy$1 -sun/security/provider/PolicyFile$1 -sun/security/provider/PolicyFile$3 -sun/security/provider/PolicyParser -sun/security/util/PolicyUtil -sun/security/provider/PolicyParser$GrantEntry -sun/security/provider/PolicyParser$PermissionEntry -sun/security/provider/PolicyFile$PolicyEntry -sun/security/provider/PolicyFile$6 -sun/security/provider/PolicyFile$7 -java/net/SocketPermissionCollection -java/util/PropertyPermissionCollection -sun/applet/AppletPanel$9 -sun/applet/AppletClassLoader -sun/applet/AppletThreadGroup -sun/applet/AppContextCreator -sun/applet/AppletPanel$1 -sun/awt/X11/XMenuBarPeer -java/awt/peer/MenuBarPeer -java/awt/peer/MenuComponentPeer -sun/awt/X11/XBaseMenuWindow -sun/awt/X11/XMenuPeer -java/awt/peer/MenuPeer -java/awt/peer/MenuItemPeer -sun/awt/X11/XMenuItemPeer -java/awt/MenuShortcut -sun/awt/X11/XMenuWindow -sun/awt/AppContext$3 -sun/awt/X11/XMenuItemPeer$TextMetrics -sun/awt/X11/XMenuBarPeer$MappingData -sun/awt/X11/XBaseMenuWindow$MappingData -sun/applet/AppletViewer$1 -sun/applet/AppletViewer$1AppletEventListener -sun/applet/AppletListener -sun/applet/AppletEventMulticaster -sun/awt/X11/XBaseMenuWindow$3 -java/awt/DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent -sun/awt/CausedFocusEvent -sun/awt/X11/XWindow$1 -sun/misc/Queue -sun/misc/QueueElement -sun/applet/AppletEvent -sun/applet/AppletClassLoader$1 -java/net/URLClassLoader$4 -sun/applet/AppletClassLoader$2 -javax/swing/JApplet -java/lang/ClassLoader$1 -sun/security/provider/PolicyFile$5 -java/security/PermissionsEnumerator -java/util/Collections$1 -sun/applet/AppletPanel$11 -sun/applet/AppletPanel$8 -sun/applet/AppletPanel$2 -sun/applet/AppletPanel$3 -sun/applet/AppletPanel$6 -javax/swing/BufferStrategyPaintManager$1 -# 8662ff6d6adccb91 +sun/text/normalizer/NormalizerBase$Mode +sun/text/normalizer/NormalizerBase$NFCMode +sun/text/normalizer/NormalizerBase$NFDMode +sun/text/normalizer/NormalizerBase$NFKCMode +sun/text/normalizer/NormalizerBase$NFKDMode +sun/text/normalizer/NormalizerBase$QuickCheckResult +sun/text/normalizer/NormalizerDataReader +sun/text/normalizer/NormalizerImpl +sun/text/normalizer/NormalizerImpl$AuxTrieImpl +sun/text/normalizer/NormalizerImpl$DecomposeArgs +sun/text/normalizer/NormalizerImpl$FCDTrieImpl +sun/text/normalizer/NormalizerImpl$NormTrieImpl +sun/text/normalizer/Trie +sun/text/normalizer/Trie$DataManipulate +sun/text/normalizer/UTF16 +sun/text/normalizer/UnicodeMatcher +sun/text/normalizer/UnicodeSet +sun/text/resources/CollationData +sun/text/resources/FormatData +sun/text/resources/en/FormatData_en +sun/text/resources/en/FormatData_en_US +sun/util/CoreResourceBundleControl +sun/util/PreHashedMap +sun/util/ResourceBundleEnumeration +sun/util/calendar/AbstractCalendar +sun/util/calendar/BaseCalendar +sun/util/calendar/BaseCalendar$Date +sun/util/calendar/CalendarDate +sun/util/calendar/CalendarSystem +sun/util/calendar/CalendarUtils +sun/util/calendar/Gregorian +sun/util/calendar/Gregorian$Date +sun/util/calendar/ZoneInfo +sun/util/calendar/ZoneInfoFile +sun/util/calendar/ZoneInfoFile$1 +sun/util/calendar/ZoneInfoFile$Checksum +sun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule +sun/util/locale/BaseLocale +sun/util/locale/BaseLocale$Cache +sun/util/locale/BaseLocale$Key +sun/util/locale/LanguageTag +sun/util/locale/LocaleObjectCache +sun/util/locale/LocaleObjectCache$CacheEntry +sun/util/locale/LocaleUtils +sun/util/locale/provider/AuxLocaleProviderAdapter +sun/util/locale/provider/AuxLocaleProviderAdapter$NullProvider +sun/util/locale/provider/AvailableLanguageTags +sun/util/locale/provider/CalendarDataProviderImpl +sun/util/locale/provider/CalendarDataUtility +sun/util/locale/provider/CalendarDataUtility$CalendarWeekParameterGetter +sun/util/locale/provider/CalendarProviderImpl +sun/util/locale/provider/CollatorProviderImpl +sun/util/locale/provider/CurrencyNameProviderImpl +sun/util/locale/provider/DateFormatSymbolsProviderImpl +sun/util/locale/provider/DecimalFormatSymbolsProviderImpl +sun/util/locale/provider/JRELocaleProviderAdapter +sun/util/locale/provider/JRELocaleProviderAdapter$1 +sun/util/locale/provider/LocaleDataMetaInfo +sun/util/locale/provider/LocaleProviderAdapter +sun/util/locale/provider/LocaleProviderAdapter$1 +sun/util/locale/provider/LocaleProviderAdapter$Type +sun/util/locale/provider/LocaleResources +sun/util/locale/provider/LocaleResources$ResourceReference +sun/util/locale/provider/LocaleServiceProviderPool +sun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter +sun/util/locale/provider/NumberFormatProviderImpl +sun/util/locale/provider/ResourceBundleBasedAdapter +sun/util/locale/provider/SPILocaleProviderAdapter +sun/util/locale/provider/SPILocaleProviderAdapter$1 +sun/util/locale/provider/TimeZoneNameProviderImpl +sun/util/locale/provider/TimeZoneNameUtility +sun/util/locale/provider/TimeZoneNameUtility$TimeZoneNameGetter +sun/util/logging/LoggingProxy +sun/util/logging/LoggingSupport +sun/util/logging/LoggingSupport$1 +sun/util/logging/LoggingSupport$2 +sun/util/logging/PlatformLogger +sun/util/logging/PlatformLogger$1 +sun/util/logging/PlatformLogger$DefaultLoggerProxy +sun/util/logging/PlatformLogger$JavaLoggerProxy +sun/util/logging/PlatformLogger$Level +sun/util/logging/PlatformLogger$LoggerProxy +sun/util/logging/resources/logging +sun/util/resources/CalendarData +sun/util/resources/CurrencyNames +sun/util/resources/LocaleData +sun/util/resources/LocaleData$1 +sun/util/resources/LocaleData$LocaleDataResourceBundleControl +sun/util/resources/LocaleNamesBundle +sun/util/resources/OpenListResourceBundle +sun/util/resources/ParallelListResourceBundle +sun/util/resources/ParallelListResourceBundle$KeySet +sun/util/resources/TimeZoneNames +sun/util/resources/TimeZoneNamesBundle +sun/util/resources/en/CalendarData_en +sun/util/resources/en/CurrencyNames_en_US +sun/util/resources/en/TimeZoneNames_en +sun/util/spi/CalendarProvider +# fcfd7386dfd2b3ad diff --git a/jdk/make/tools/sharing/classlist.windows b/jdk/make/tools/sharing/classlist.windows index 1bf64407f92..debed79c4a4 100644 --- a/jdk/make/tools/sharing/classlist.windows +++ b/jdk/make/tools/sharing/classlist.windows @@ -1,2203 +1,2378 @@ -java/lang/Object -java/lang/String -java/io/Serializable -java/lang/Comparable -java/lang/CharSequence -java/lang/Class -java/lang/reflect/GenericDeclaration -java/lang/reflect/Type -java/lang/reflect/AnnotatedElement -java/lang/Cloneable -java/lang/ClassLoader -java/lang/System -java/lang/Throwable -java/lang/Error -java/lang/ThreadDeath -java/lang/Exception -java/lang/RuntimeException -java/security/ProtectionDomain -java/security/AccessControlContext -java/lang/ClassNotFoundException -java/lang/NoClassDefFoundError -java/lang/LinkageError -java/lang/ClassCastException -java/lang/ArrayStoreException -java/lang/VirtualMachineError -java/lang/OutOfMemoryError -java/lang/StackOverflowError -java/lang/IllegalMonitorStateException -java/lang/ref/Reference -java/lang/ref/SoftReference -java/lang/ref/WeakReference -java/lang/ref/FinalReference -java/lang/ref/PhantomReference -java/lang/ref/Finalizer -java/lang/Thread -java/lang/Runnable -java/lang/ThreadGroup -java/lang/Thread$UncaughtExceptionHandler -java/util/Properties -java/util/Hashtable -java/util/Map -java/util/Dictionary -java/lang/reflect/AccessibleObject -java/lang/reflect/Field -java/lang/reflect/Member -java/lang/reflect/Method -java/lang/reflect/Constructor -sun/reflect/MagicAccessorImpl -sun/reflect/MethodAccessorImpl -sun/reflect/MethodAccessor -sun/reflect/ConstructorAccessorImpl -sun/reflect/ConstructorAccessor -sun/reflect/DelegatingClassLoader -sun/reflect/ConstantPool -sun/reflect/UnsafeStaticFieldAccessorImpl -sun/reflect/UnsafeFieldAccessorImpl -sun/reflect/FieldAccessorImpl -sun/reflect/FieldAccessor -java/util/Vector -java/util/List -java/util/Collection -java/lang/Iterable -java/util/RandomAccess -java/util/AbstractList -java/util/AbstractCollection -java/lang/StringBuffer -java/lang/AbstractStringBuilder -java/lang/Appendable -java/lang/StackTraceElement -java/nio/Buffer -java/lang/Boolean -java/lang/Character -java/lang/Float -java/lang/Number -java/lang/Double -java/lang/Byte -java/lang/Short -java/lang/Integer -java/lang/Long -java/lang/NullPointerException -java/lang/ArithmeticException -java/io/ObjectStreamField -java/lang/String$CaseInsensitiveComparator -java/util/Comparator -java/lang/RuntimePermission -java/security/BasicPermission -java/security/Permission -java/security/Guard -sun/misc/SoftCache -java/util/AbstractMap -java/lang/ref/ReferenceQueue -java/lang/ref/ReferenceQueue$Null -java/lang/ref/ReferenceQueue$Lock -java/util/HashMap -java/lang/annotation/Annotation -java/util/HashMap$Entry -java/util/Map$Entry -java/security/AccessController -java/lang/reflect/ReflectPermission -sun/reflect/ReflectionFactory$GetReflectionFactoryAction -java/security/PrivilegedAction -java/util/Stack -sun/reflect/ReflectionFactory -java/lang/ref/Reference$Lock -java/lang/ref/Reference$ReferenceHandler -java/lang/ref/Finalizer$FinalizerThread -java/util/Enumeration -java/util/Iterator -java/util/Hashtable$Entry -sun/misc/Version -java/io/FileInputStream -java/io/InputStream -java/io/Closeable -java/io/FileDescriptor -java/io/FileOutputStream -java/io/OutputStream -java/io/Flushable -java/io/BufferedInputStream -java/io/FilterInputStream -java/util/concurrent/atomic/AtomicReferenceFieldUpdater -java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl -sun/misc/Unsafe -java/lang/NoSuchMethodError -java/lang/IncompatibleClassChangeError -sun/reflect/Reflection -java/util/Collections -java/util/Collections$EmptySet -java/util/AbstractSet -java/util/Set -java/util/Collections$EmptyList -java/util/Collections$EmptyMap -java/util/Collections$ReverseComparator -java/util/Collections$SynchronizedMap -java/lang/Class$3 -java/lang/reflect/Modifier -java/lang/reflect/ReflectAccess -sun/reflect/LangReflectAccess -sun/reflect/misc/ReflectUtil -java/io/PrintStream -java/io/FilterOutputStream -java/io/BufferedOutputStream -java/io/OutputStreamWriter -java/io/Writer -sun/nio/cs/StreamEncoder -java/nio/charset/Charset -sun/nio/cs/StandardCharsets -sun/nio/cs/FastCharsetProvider -java/nio/charset/spi/CharsetProvider -sun/nio/cs/StandardCharsets$Aliases -sun/util/PreHashedMap -sun/nio/cs/StandardCharsets$Classes -sun/nio/cs/StandardCharsets$Cache -java/lang/ThreadLocal -java/util/concurrent/atomic/AtomicInteger -sun/security/action/GetPropertyAction -java/util/Arrays -java/lang/Math -java/lang/StringBuilder -sun/nio/cs/MS1252 -sun/nio/cs/HistoricallyNamedCharset -java/lang/Class$1 -sun/reflect/ReflectionFactory$1 -sun/reflect/NativeConstructorAccessorImpl -sun/reflect/DelegatingConstructorAccessorImpl -sun/misc/VM -sun/nio/cs/SingleByteEncoder -java/nio/charset/CharsetEncoder -java/nio/charset/CodingErrorAction -sun/nio/cs/SingleByteDecoder -java/nio/charset/CharsetDecoder -java/nio/ByteBuffer -java/nio/HeapByteBuffer -java/nio/Bits -java/lang/Runtime -java/nio/ByteOrder -java/nio/CharBuffer -java/lang/Readable -java/nio/HeapCharBuffer -java/nio/charset/CoderResult -java/nio/charset/CoderResult$1 -java/nio/charset/CoderResult$Cache -java/nio/charset/CoderResult$2 -sun/nio/cs/Surrogate$Parser -sun/nio/cs/Surrogate -java/io/BufferedWriter -java/io/File -java/io/FileSystem -java/io/WinNTFileSystem -java/io/Win32FileSystem -java/io/ExpiringCache -java/io/ExpiringCache$1 -java/util/LinkedHashMap -java/util/LinkedHashMap$Entry -sun/misc/SharedSecrets -java/lang/ClassLoader$3 -java/io/ExpiringCache$Entry -java/lang/ClassLoader$NativeLibrary -java/lang/Terminator -java/lang/Terminator$1 -sun/misc/SignalHandler -sun/misc/Signal -sun/misc/NativeSignalHandler -java/io/Console -java/io/Console$1 -sun/misc/JavaIOAccess -java/lang/Shutdown -java/util/ArrayList -java/lang/Shutdown$Lock -java/lang/ApplicationShutdownHooks -java/util/IdentityHashMap -sun/misc/OSEnvironment -sun/io/Win32ErrorMode -java/lang/System$2 -sun/misc/JavaLangAccess -java/lang/Compiler -java/lang/Compiler$1 -sun/misc/Launcher -sun/misc/Launcher$Factory -java/net/URLStreamHandlerFactory -sun/misc/Launcher$ExtClassLoader -java/net/URLClassLoader -java/security/SecureClassLoader -sun/security/util/Debug -java/net/URLClassLoader$7 -sun/misc/JavaNetAccess -java/util/StringTokenizer -sun/misc/Launcher$ExtClassLoader$1 -java/security/PrivilegedExceptionAction -sun/misc/MetaIndex -java/io/BufferedReader -java/io/Reader -java/io/FileReader -java/io/InputStreamReader -sun/nio/cs/StreamDecoder -java/lang/reflect/Array -java/util/Locale -java/util/concurrent/ConcurrentHashMap -java/util/concurrent/ConcurrentMap -java/util/concurrent/ConcurrentHashMap$Segment -java/util/concurrent/locks/ReentrantLock -java/util/concurrent/locks/Lock -java/util/concurrent/locks/ReentrantLock$NonfairSync -java/util/concurrent/locks/ReentrantLock$Sync -java/util/concurrent/locks/AbstractQueuedSynchronizer -java/util/concurrent/locks/AbstractOwnableSynchronizer -java/util/concurrent/locks/AbstractQueuedSynchronizer$Node -java/util/concurrent/ConcurrentHashMap$HashEntry -java/lang/CharacterDataLatin1 -java/io/ObjectStreamClass -sun/net/www/ParseUtil -java/util/BitSet -java/net/URL -java/net/Parts -sun/net/www/protocol/file/Handler -java/net/URLStreamHandler -java/util/HashSet -sun/misc/URLClassPath -sun/net/www/protocol/jar/Handler -sun/misc/Launcher$AppClassLoader -sun/misc/Launcher$AppClassLoader$1 -java/lang/SystemClassLoaderAction -java/lang/StringCoding -java/lang/ThreadLocal$ThreadLocalMap -java/lang/ThreadLocal$ThreadLocalMap$Entry -java/lang/StringCoding$StringDecoder -java/net/URLClassLoader$1 -sun/misc/URLClassPath$3 -sun/misc/URLClassPath$JarLoader -sun/misc/URLClassPath$Loader -java/security/PrivilegedActionException -sun/misc/URLClassPath$FileLoader -sun/misc/URLClassPath$FileLoader$1 -sun/misc/Resource -sun/nio/ByteBuffered -java/security/CodeSource -java/security/Permissions -java/security/PermissionCollection -sun/net/www/protocol/file/FileURLConnection -sun/net/www/URLConnection -java/net/URLConnection -java/net/UnknownContentHandler -java/net/ContentHandler -sun/net/www/MessageHeader -java/io/FilePermission -java/io/FilePermission$1 -sun/security/provider/PolicyFile -java/security/Policy -java/security/Policy$UnsupportedEmptyCollection -java/io/FilePermissionCollection -java/security/AllPermission -java/security/UnresolvedPermission -java/security/BasicPermissionCollection -java/security/Principal -java/security/cert/Certificate -java/util/AbstractList$Itr -java/util/IdentityHashMap$KeySet -java/util/IdentityHashMap$KeyIterator -java/util/IdentityHashMap$IdentityHashMapIterator -java/io/DeleteOnExitHook -java/util/LinkedHashSet -java/util/HashMap$KeySet -java/util/LinkedHashMap$KeyIterator -java/util/LinkedHashMap$LinkedHashIterator -java/awt/Frame -java/awt/MenuContainer -java/awt/Window -javax/accessibility/Accessible -java/awt/Container -java/awt/Component -java/awt/image/ImageObserver -java/lang/InterruptedException -java/awt/Label -java/util/logging/Logger -java/util/logging/Handler -java/util/logging/Level -java/util/logging/LogManager -java/util/logging/LogManager$1 -java/beans/PropertyChangeSupport -java/util/logging/LogManager$LogNode -java/util/logging/LoggingPermission -java/util/logging/LogManager$Cleaner -java/util/logging/LogManager$RootLogger -java/util/logging/LogManager$2 -java/util/Properties$LineReader -java/util/Hashtable$Enumerator -java/beans/PropertyChangeEvent -java/util/EventObject -java/awt/Component$AWTTreeLock -sun/awt/NativeLibLoader -sun/security/action/LoadLibraryAction -java/awt/Toolkit -java/awt/Toolkit$3 -sun/util/CoreResourceBundleControl -java/util/ResourceBundle$Control -java/util/Arrays$ArrayList -java/util/Collections$UnmodifiableRandomAccessList -java/util/Collections$UnmodifiableList -java/util/Collections$UnmodifiableCollection -java/util/ResourceBundle -java/util/ResourceBundle$1 -java/util/ResourceBundle$RBClassLoader -java/util/ResourceBundle$RBClassLoader$1 -java/util/ResourceBundle$CacheKey -java/util/ResourceBundle$LoaderReference -java/util/ResourceBundle$CacheKeyReference -java/util/ResourceBundle$SingleFormatControl -sun/awt/resources/awt -java/util/ListResourceBundle -java/awt/Toolkit$1 -java/io/FileNotFoundException -java/io/IOException -java/awt/GraphicsEnvironment -java/awt/GraphicsEnvironment$1 -java/awt/Insets -sun/awt/windows/WComponentPeer -java/awt/peer/ComponentPeer -java/awt/dnd/peer/DropTargetPeer -sun/awt/DisplayChangedListener -java/util/EventListener -sun/awt/windows/WObjectPeer -java/awt/Font -java/awt/geom/AffineTransform -sun/font/AttributeValues -sun/font/EAttribute -java/lang/Enum -java/text/AttributedCharacterIterator$Attribute -java/lang/Class$4 -sun/reflect/NativeMethodAccessorImpl -sun/reflect/DelegatingMethodAccessorImpl -java/awt/font/TextAttribute -java/lang/Integer$IntegerCache -java/util/WeakHashMap -java/util/WeakHashMap$Entry +com/sun/java/swing/SwingUtilities3 +com/sun/java/swing/plaf/windows/WindowsPopupWindow +com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI +com/sun/swing/internal/plaf/basic/resources/basic +com/sun/swing/internal/plaf/metal/resources/metal +java/applet/Applet java/awt/AWTEvent -java/awt/Component$DummyRequestFocusController -sun/awt/RequestFocusController -java/awt/LayoutManager -java/awt/LightweightDispatcher -java/awt/event/AWTEventListener -java/awt/Dimension -java/awt/geom/Dimension2D -java/util/concurrent/atomic/AtomicBoolean -java/awt/ComponentOrientation -java/awt/Component$2 -java/lang/NoSuchMethodException -sun/awt/AppContext -sun/awt/AppContext$1 -sun/awt/AppContext$2 -sun/awt/MostRecentKeyValue -java/awt/Cursor -java/awt/Point -java/awt/geom/Point2D -sun/awt/Win32GraphicsEnvironment -sun/java2d/SunGraphicsEnvironment -sun/java2d/FontSupport -java/io/FilenameFilter -sun/awt/windows/WToolkit -sun/awt/SunToolkit -sun/awt/WindowClosingSupport -sun/awt/WindowClosingListener -sun/awt/ComponentFactory -sun/awt/InputMethodSupport -java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject -java/util/concurrent/locks/Condition -sun/awt/AWTAutoShutdown -sun/awt/SunToolkit$6 -java/awt/Dialog$ModalExclusionType -java/awt/Dialog -java/awt/Dialog$ModalityType -java/awt/ModalEventFilter -java/awt/EventFilter -sun/reflect/UnsafeFieldAccessorFactory -sun/awt/windows/WWindowPeer -java/awt/peer/WindowPeer -java/awt/peer/ContainerPeer -sun/awt/windows/WPanelPeer -java/awt/peer/PanelPeer -sun/awt/windows/WCanvasPeer -java/awt/peer/CanvasPeer -java/awt/Color -java/awt/Paint -java/awt/Transparency -java/awt/GraphicsConfiguration -java/awt/image/BufferStrategy -java/awt/dnd/DropTarget -java/awt/dnd/DropTargetListener -java/awt/event/ComponentListener -java/awt/event/FocusListener -java/awt/event/HierarchyListener -java/awt/event/HierarchyBoundsListener -java/awt/event/KeyListener -java/awt/event/MouseListener -java/awt/event/MouseMotionListener -java/awt/event/MouseWheelListener -java/awt/event/InputMethodListener -java/awt/event/ContainerListener -javax/accessibility/AccessibleContext -java/io/ObjectOutputStream -java/io/ObjectOutput -java/io/DataOutput -java/io/ObjectStreamConstants -java/io/ObjectInputStream -java/io/ObjectInput -java/io/DataInput -java/awt/HeadlessException -java/lang/UnsupportedOperationException -java/awt/Rectangle -java/awt/Shape -java/awt/geom/Rectangle2D -java/awt/geom/RectangularShape -java/awt/Image -java/awt/event/KeyEvent -java/awt/event/InputEvent -java/awt/event/ComponentEvent -java/awt/Event -java/awt/im/InputContext -java/awt/event/WindowListener -java/awt/event/WindowStateListener -java/awt/event/WindowFocusListener -java/awt/event/WindowEvent -java/lang/SecurityException -java/beans/PropertyChangeListener -java/awt/event/MouseWheelEvent -java/awt/event/MouseEvent -java/awt/BufferCapabilities -java/awt/AWTException -sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl -sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl -sun/java2d/SurfaceData -sun/java2d/DisposerTarget -sun/java2d/InvalidPipeException -java/lang/IllegalStateException -sun/java2d/NullSurfaceData -sun/java2d/loops/SurfaceType -sun/awt/image/PixelConverter -sun/awt/image/PixelConverter$Xrgb -sun/awt/image/PixelConverter$Argb -sun/awt/image/PixelConverter$ArgbPre -sun/awt/image/PixelConverter$Xbgr -sun/awt/image/PixelConverter$Rgba -sun/awt/image/PixelConverter$RgbaPre -sun/awt/image/PixelConverter$Ushort565Rgb -sun/awt/image/PixelConverter$Ushort555Rgb -sun/awt/image/PixelConverter$Ushort555Rgbx -sun/awt/image/PixelConverter$Ushort4444Argb -sun/awt/image/PixelConverter$ByteGray -sun/awt/image/PixelConverter$UshortGray -sun/awt/image/PixelConverter$Rgbx -sun/awt/image/PixelConverter$Bgrx -sun/awt/image/PixelConverter$ArgbBm -java/awt/image/ColorModel -java/awt/image/DirectColorModel -java/awt/image/PackedColorModel -java/awt/color/ColorSpace -java/awt/color/ICC_Profile -java/awt/color/ICC_ProfileRGB -java/awt/color/ICC_Profile$1 -java/awt/color/ICC_ColorSpace -sun/java2d/pipe/NullPipe -sun/java2d/pipe/PixelDrawPipe -sun/java2d/pipe/PixelFillPipe -sun/java2d/pipe/ShapeDrawPipe -sun/java2d/pipe/TextPipe -sun/java2d/pipe/DrawImagePipe -java/awt/image/IndexColorModel -sun/java2d/pipe/LoopPipe -sun/java2d/pipe/OutlineTextRenderer -sun/java2d/pipe/SolidTextRenderer -sun/java2d/pipe/GlyphListLoopPipe -sun/java2d/pipe/GlyphListPipe -sun/java2d/pipe/AATextRenderer -sun/java2d/pipe/LCDTextRenderer -sun/java2d/pipe/AlphaColorPipe -sun/java2d/pipe/CompositePipe -sun/java2d/pipe/PixelToShapeConverter -sun/java2d/pipe/TextRenderer -sun/java2d/pipe/SpanClipRenderer -sun/java2d/pipe/Region -sun/java2d/pipe/RegionIterator -sun/java2d/pipe/AlphaPaintPipe -sun/java2d/pipe/SpanShapeRenderer$Composite -sun/java2d/pipe/SpanShapeRenderer -sun/java2d/pipe/GeneralCompositePipe -sun/java2d/pipe/DrawImage -sun/java2d/loops/RenderCache -sun/java2d/loops/RenderCache$Entry -sun/awt/image/SunVolatileImage -java/awt/image/VolatileImage -java/awt/ImageCapabilities -java/awt/Image$1 -sun/awt/image/SurfaceManager$ImageAccessor -sun/awt/image/SurfaceManager -sun/awt/image/VolatileSurfaceManager -sun/java2d/windows/WindowsFlags -sun/java2d/windows/WindowsFlags$1 -sun/java2d/loops/Blit -sun/java2d/loops/GraphicsPrimitive -sun/java2d/loops/GraphicsPrimitiveMgr -sun/java2d/loops/CompositeType -sun/java2d/SunGraphics2D -sun/awt/ConstrainableGraphics -java/awt/Graphics2D -java/awt/Graphics -sun/java2d/loops/XORComposite -java/awt/Composite -java/awt/AlphaComposite -java/awt/geom/Path2D -java/awt/geom/Path2D$Float -sun/awt/SunHints -sun/java2d/loops/BlitBg -sun/java2d/loops/ScaledBlit -sun/java2d/loops/FillRect -sun/java2d/loops/FillSpans -sun/java2d/loops/DrawLine -sun/java2d/loops/DrawRect -sun/java2d/loops/DrawPolygons -sun/java2d/loops/DrawPath -sun/java2d/loops/FillPath -sun/java2d/loops/MaskBlit -sun/java2d/loops/MaskFill -sun/java2d/loops/DrawGlyphList -sun/java2d/loops/DrawGlyphListAA -sun/java2d/loops/DrawGlyphListLCD -sun/java2d/loops/TransformHelper -java/awt/BasicStroke -java/awt/Stroke -sun/misc/PerformanceLogger -sun/misc/PerformanceLogger$TimeData -sun/java2d/pipe/ValidatePipe -sun/awt/SunHints$Key -java/awt/RenderingHints$Key -sun/awt/SunHints$Value -sun/awt/SunHints$LCDContrastKey -sun/java2d/loops/CustomComponent -sun/java2d/loops/GraphicsPrimitiveProxy -sun/java2d/loops/GeneralRenderer -sun/java2d/loops/GraphicsPrimitiveMgr$1 -sun/java2d/loops/GraphicsPrimitiveMgr$2 -sun/java2d/windows/GDIBlitLoops -sun/java2d/windows/GDIRenderer -sun/awt/windows/WToolkit$1 -sun/awt/SunDisplayChanger -sun/java2d/SunGraphicsEnvironment$1 -sun/font/FontManager -sun/font/FileFont -sun/font/PhysicalFont -sun/font/Font2D -sun/font/CompositeFont -java/util/HashMap$Values -java/util/HashMap$ValueIterator -java/util/HashMap$HashIterator -sun/font/TrueTypeFont -java/awt/font/FontRenderContext -java/awt/RenderingHints -sun/font/Type1Font -java/awt/geom/Point2D$Float -sun/font/StrikeMetrics -java/awt/geom/Rectangle2D$Float -java/awt/geom/GeneralPath -sun/font/CharToGlyphMapper -sun/font/PhysicalStrike -sun/font/FontStrike -sun/font/GlyphList -sun/font/StrikeCache -sun/java2d/Disposer -sun/java2d/Disposer$1 -sun/font/StrikeCache$1 -sun/awt/windows/WFontConfiguration -sun/awt/FontConfiguration -sun/awt/FontDescriptor -java/io/DataInputStream -java/lang/Short$ShortCache -java/util/HashMap$KeyIterator -sun/font/CompositeFontDescriptor -sun/font/Font2DHandle -sun/font/FontFamily -java/awt/GraphicsDevice -sun/awt/Win32GraphicsDevice -sun/awt/Win32GraphicsConfig -java/awt/BorderLayout -java/awt/LayoutManager2 -java/awt/Toolkit$2 -sun/awt/SunToolkit$ModalityListenerList -sun/awt/ModalityListener -sun/awt/SunToolkit$1 -java/util/MissingResourceException -java/awt/EventQueue -java/awt/Queue -sun/awt/PostEventQueue -sun/awt/windows/WToolkit$ToolkitDisposer -sun/java2d/DisposerRecord -sun/awt/windows/WToolkit$2 -sun/awt/windows/WToolkit$3 -java/awt/Window$WindowDisposerRecord -java/awt/KeyboardFocusManager -java/awt/KeyEventDispatcher -java/awt/KeyEventPostProcessor -java/awt/event/NativeLibLoader +java/awt/AWTEvent$1 +java/awt/AWTEventMulticaster java/awt/AWTKeyStroke java/awt/AWTKeyStroke$1 -java/util/LinkedList -java/util/Deque -java/util/Queue -java/util/AbstractSequentialList -java/awt/DefaultKeyboardFocusManager -java/awt/DefaultFocusTraversalPolicy -java/awt/ContainerOrderFocusTraversalPolicy -java/awt/FocusTraversalPolicy -java/util/Collections$UnmodifiableSet -sun/awt/HeadlessToolkit -sun/awt/KeyboardFocusManagerPeerImpl -java/awt/peer/KeyboardFocusManagerPeer -sun/awt/windows/WFramePeer -java/awt/peer/FramePeer -sun/awt/RepaintArea -sun/awt/EmbeddedFrame -sun/awt/im/InputMethodWindow -sun/awt/windows/WComponentPeer$2 -sun/awt/PaintEventDispatcher -java/awt/event/InvocationEvent java/awt/ActiveEvent -java/awt/MenuComponent -sun/awt/SunToolkit$3 -java/util/EmptyStackException -java/lang/reflect/InvocationTargetException -java/awt/event/PaintEvent -java/awt/EventDispatchThread -sun/awt/PeerEvent -java/awt/EventQueue$1 -sun/java2d/loops/RenderLoops -java/awt/EventDispatchThread$1 -java/awt/Conditional -java/awt/EventDispatchThread$HierarchyEventFilter -java/awt/EventFilter$FilterAction -sun/awt/dnd/SunDragSourceContextPeer -java/awt/dnd/peer/DragSourceContextPeer -java/awt/event/InputMethodEvent -java/awt/event/ActionEvent -sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec -sun/awt/windows/WFileDialogPeer -java/awt/peer/FileDialogPeer -java/awt/peer/DialogPeer -sun/awt/windows/WPrintDialogPeer -sun/java2d/DefaultDisposerRecord -sun/awt/windows/WColor -sun/awt/windows/WFontPeer -sun/awt/PlatformFont -java/awt/peer/FontPeer -sun/awt/FontConfiguration$1 -sun/awt/windows/WingDings -sun/awt/windows/WingDings$Encoder -sun/awt/Symbol -sun/awt/Symbol$Encoder -sun/awt/im/InputMethodManager -sun/awt/im/ExecutableInputMethodManager -sun/awt/windows/WInputMethodDescriptor -java/awt/im/spi/InputMethodDescriptor -sun/awt/im/InputMethodLocator -sun/awt/im/ExecutableInputMethodManager$2 -sun/misc/Service -sun/misc/Service$LazyIterator -java/util/TreeSet -java/util/NavigableSet -java/util/SortedSet -java/util/TreeMap -java/util/NavigableMap -java/util/SortedMap -sun/misc/Launcher$1 -sun/misc/URLClassPath$2 -java/lang/ClassLoader$2 -sun/misc/URLClassPath$1 -java/net/URLClassLoader$3 -sun/misc/CompoundEnumeration -sun/misc/URLClassPath$JarLoader$1 -sun/misc/FileURLMapper -java/net/URLClassLoader$3$1 -sun/awt/SunToolkit$2 -sun/reflect/UnsafeObjectFieldAccessorImpl -java/awt/peer/LightweightPeer -sun/awt/windows/WLabelPeer -java/awt/peer/LabelPeer -java/awt/PopupMenu -java/awt/Menu -java/awt/MenuItem -java/io/PrintWriter -sun/awt/CausedFocusEvent$Cause -java/awt/PointerInfo +java/awt/Adjustable +java/awt/AlphaComposite +java/awt/BasicStroke +java/awt/BorderLayout +java/awt/BufferCapabilities +java/awt/Canvas +java/awt/CardLayout +java/awt/CardLayout$Card +java/awt/Color +java/awt/Component +java/awt/Component$1 +java/awt/Component$3 +java/awt/Component$AWTTreeLock +java/awt/Component$AccessibleAWTComponent java/awt/Component$BaselineResizeBehavior -java/awt/FontMetrics -java/awt/image/ImageProducer -java/awt/im/InputMethodRequests -java/awt/event/FocusEvent -java/awt/event/HierarchyEvent -javax/accessibility/AccessibleStateSet -java/awt/SequencedEvent -sun/awt/PlatformFont$PlatformFontCache -sun/awt/windows/WGlobalCursorManager -sun/awt/GlobalCursorManager -sun/awt/GlobalCursorManager$NativeUpdater -sun/nio/cs/UTF_16LE -sun/nio/cs/Unicode -sun/nio/cs/UTF_16LE$Encoder -sun/nio/cs/UnicodeEncoder -sun/nio/cs/UTF_16LE$Decoder -sun/nio/cs/UnicodeDecoder -sun/awt/event/IgnorePaintEvent -sun/awt/dnd/SunDropTargetEvent +java/awt/Component$BltBufferStrategy +java/awt/Component$BltSubRegionBufferStrategy +java/awt/Component$DummyRequestFocusController +java/awt/Component$FlipBufferStrategy +java/awt/ComponentOrientation +java/awt/Composite +java/awt/Conditional +java/awt/Container +java/awt/Container$1 +java/awt/Container$AccessibleAWTContainer +java/awt/ContainerOrderFocusTraversalPolicy +java/awt/Cursor +java/awt/Cursor$1 +java/awt/Cursor$CursorDisposer +java/awt/DefaultFocusTraversalPolicy +java/awt/DefaultKeyboardFocusManager +java/awt/DefaultKeyboardFocusManager$1 java/awt/DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent -java/awt/SentEvent -java/awt/KeyboardFocusManager$HeavyweightFocusRequest -java/util/LinkedList$ListItr -java/util/ListIterator java/awt/DefaultKeyboardFocusManager$TypeAheadMarker +java/awt/Dialog +java/awt/Dialog$ModalExclusionType +java/awt/Dialog$ModalityType +java/awt/Dimension +java/awt/Event +java/awt/EventDispatchThread +java/awt/EventDispatchThread$1 +java/awt/EventDispatchThread$HierarchyEventFilter +java/awt/EventFilter +java/awt/EventFilter$FilterAction +java/awt/EventQueue +java/awt/EventQueue$1 +java/awt/EventQueue$1AWTInvocationLock +java/awt/EventQueue$2 +java/awt/EventQueue$3 +java/awt/EventQueue$4 +java/awt/EventQueue$5 +java/awt/FlowLayout +java/awt/FocusTraversalPolicy +java/awt/Font +java/awt/Font$FontAccessImpl +java/awt/FontMetrics +java/awt/Frame +java/awt/Frame$1 +java/awt/Graphics +java/awt/Graphics2D +java/awt/GraphicsCallback +java/awt/GraphicsCallback$PaintCallback +java/awt/GraphicsConfiguration +java/awt/GraphicsDevice +java/awt/GraphicsEnvironment +java/awt/GraphicsEnvironment$1 +java/awt/GridLayout +java/awt/Image +java/awt/Image$1 +java/awt/ImageCapabilities +java/awt/ImageMediaEntry +java/awt/Insets +java/awt/ItemSelectable +java/awt/KeyEventDispatcher +java/awt/KeyEventPostProcessor +java/awt/KeyboardFocusManager +java/awt/KeyboardFocusManager$1 +java/awt/KeyboardFocusManager$3 +java/awt/KeyboardFocusManager$HeavyweightFocusRequest java/awt/KeyboardFocusManager$LightweightFocusRequest -javax/swing/JFrame -javax/swing/WindowConstants -javax/swing/RootPaneContainer -javax/swing/TransferHandler$HasGetTransferHandler -javax/swing/JLabel -javax/swing/SwingConstants +java/awt/Label +java/awt/LayoutManager +java/awt/LayoutManager2 +java/awt/LightweightDispatcher +java/awt/LightweightDispatcher$2 +java/awt/MediaEntry +java/awt/MediaTracker +java/awt/MenuBar +java/awt/MenuComponent +java/awt/MenuContainer +java/awt/ModalEventFilter +java/awt/Paint +java/awt/Panel +java/awt/Point +java/awt/PrintGraphics +java/awt/Queue +java/awt/Rectangle +java/awt/RenderingHints +java/awt/RenderingHints$Key +java/awt/SentEvent +java/awt/SequencedEvent +java/awt/SequencedEvent$1 +java/awt/Shape +java/awt/SplashScreen +java/awt/Stroke +java/awt/Toolkit +java/awt/Toolkit$1 +java/awt/Toolkit$2 +java/awt/Toolkit$3 +java/awt/Toolkit$4 +java/awt/Toolkit$5 +java/awt/Toolkit$DesktopPropertyChangeSupport +java/awt/Toolkit$DesktopPropertyChangeSupport$1 +java/awt/Toolkit$SelectiveAWTEventListener +java/awt/Toolkit$ToolkitEventMulticaster +java/awt/Transparency +java/awt/TrayIcon +java/awt/VKCollection +java/awt/Window +java/awt/Window$1 +java/awt/Window$1DisposeAction +java/awt/Window$Type +java/awt/Window$WindowDisposerRecord +java/awt/color/ColorSpace +java/awt/color/ICC_ColorSpace +java/awt/color/ICC_Profile +java/awt/color/ICC_Profile$1 +java/awt/color/ICC_ProfileRGB +java/awt/datatransfer/ClipboardOwner +java/awt/datatransfer/FlavorMap +java/awt/datatransfer/FlavorTable +java/awt/datatransfer/SystemFlavorMap +java/awt/dnd/DropTarget +java/awt/dnd/DropTargetContext +java/awt/dnd/DropTargetListener +java/awt/dnd/peer/DragSourceContextPeer +java/awt/dnd/peer/DropTargetPeer +java/awt/event/AWTEventListener +java/awt/event/AWTEventListenerProxy +java/awt/event/ActionEvent +java/awt/event/ActionListener +java/awt/event/AdjustmentEvent +java/awt/event/AdjustmentListener +java/awt/event/ComponentAdapter +java/awt/event/ComponentEvent +java/awt/event/ComponentListener +java/awt/event/ContainerEvent +java/awt/event/ContainerListener +java/awt/event/FocusAdapter +java/awt/event/FocusEvent +java/awt/event/FocusListener +java/awt/event/HierarchyBoundsListener +java/awt/event/HierarchyListener +java/awt/event/InputEvent +java/awt/event/InputEvent$1 +java/awt/event/InputMethodEvent +java/awt/event/InputMethodListener +java/awt/event/InvocationEvent +java/awt/event/InvocationEvent$1 +java/awt/event/ItemEvent +java/awt/event/ItemListener +java/awt/event/KeyAdapter +java/awt/event/KeyEvent +java/awt/event/KeyEvent$1 +java/awt/event/KeyListener +java/awt/event/MouseAdapter +java/awt/event/MouseEvent +java/awt/event/MouseListener +java/awt/event/MouseMotionAdapter +java/awt/event/MouseMotionListener +java/awt/event/MouseWheelListener +java/awt/event/NativeLibLoader +java/awt/event/NativeLibLoader$1 +java/awt/event/PaintEvent +java/awt/event/TextListener +java/awt/event/WindowAdapter +java/awt/event/WindowEvent +java/awt/event/WindowFocusListener +java/awt/event/WindowListener +java/awt/event/WindowStateListener +java/awt/font/FontRenderContext +java/awt/font/GlyphVector +java/awt/font/LineMetrics +java/awt/font/TextAttribute +java/awt/geom/AffineTransform +java/awt/geom/Dimension2D +java/awt/geom/GeneralPath +java/awt/geom/Line2D +java/awt/geom/Line2D$Float +java/awt/geom/LineIterator +java/awt/geom/Path2D +java/awt/geom/Path2D$Float +java/awt/geom/PathIterator +java/awt/geom/Point2D +java/awt/geom/Point2D$Float +java/awt/geom/RectIterator +java/awt/geom/Rectangle2D +java/awt/geom/Rectangle2D$Float +java/awt/geom/RectangularShape +java/awt/im/InputContext +java/awt/im/InputMethodRequests +java/awt/im/spi/InputMethod +java/awt/im/spi/InputMethodContext +java/awt/im/spi/InputMethodDescriptor +java/awt/image/BufferStrategy +java/awt/image/BufferedImage +java/awt/image/BufferedImage$1 +java/awt/image/ColorModel +java/awt/image/ColorModel$1 +java/awt/image/ComponentSampleModel +java/awt/image/DataBuffer +java/awt/image/DataBuffer$1 +java/awt/image/DataBufferByte +java/awt/image/DataBufferInt +java/awt/image/DirectColorModel +java/awt/image/FilteredImageSource +java/awt/image/ImageConsumer +java/awt/image/ImageFilter +java/awt/image/ImageObserver +java/awt/image/ImageProducer +java/awt/image/IndexColorModel +java/awt/image/PackedColorModel +java/awt/image/PixelInterleavedSampleModel +java/awt/image/RGBImageFilter +java/awt/image/Raster +java/awt/image/RenderedImage +java/awt/image/SampleModel +java/awt/image/SinglePixelPackedSampleModel +java/awt/image/VolatileImage +java/awt/image/WritableRaster +java/awt/image/WritableRenderedImage +java/awt/peer/CanvasPeer +java/awt/peer/ComponentPeer +java/awt/peer/ContainerPeer +java/awt/peer/FontPeer +java/awt/peer/FramePeer +java/awt/peer/KeyboardFocusManagerPeer +java/awt/peer/LabelPeer +java/awt/peer/LightweightPeer +java/awt/peer/PanelPeer +java/awt/peer/WindowPeer +java/awt/print/PrinterGraphics +java/beans/ChangeListenerMap +java/beans/PropertyChangeEvent +java/beans/PropertyChangeListener +java/beans/PropertyChangeListenerProxy +java/beans/PropertyChangeSupport +java/beans/PropertyChangeSupport$PropertyChangeListenerMap +java/beans/VetoableChangeListener +java/io/Bits +java/io/BufferedInputStream +java/io/BufferedOutputStream +java/io/BufferedReader +java/io/BufferedWriter +java/io/ByteArrayInputStream +java/io/ByteArrayOutputStream +java/io/Closeable +java/io/DataInput +java/io/DataInputStream +java/io/DataOutput +java/io/DataOutputStream +java/io/DefaultFileSystem +java/io/EOFException +java/io/ExpiringCache +java/io/ExpiringCache$1 +java/io/ExpiringCache$Entry +java/io/Externalizable +java/io/File +java/io/File$PathStatus +java/io/FileDescriptor +java/io/FileDescriptor$1 +java/io/FileInputStream +java/io/FileInputStream$1 +java/io/FileNotFoundException +java/io/FileOutputStream +java/io/FileOutputStream$1 +java/io/FilePermission +java/io/FilePermission$1 +java/io/FilePermissionCollection +java/io/FileReader +java/io/FileSystem +java/io/FileWriter +java/io/FilenameFilter +java/io/FilterInputStream +java/io/FilterOutputStream +java/io/FilterReader +java/io/Flushable +java/io/IOException +java/io/InputStream +java/io/InputStreamReader +java/io/InterruptedIOException +java/io/ObjectInput +java/io/ObjectInputStream +java/io/ObjectInputStream$BlockDataInputStream +java/io/ObjectInputStream$GetField +java/io/ObjectInputStream$GetFieldImpl +java/io/ObjectInputStream$HandleTable +java/io/ObjectInputStream$HandleTable$HandleList +java/io/ObjectInputStream$PeekInputStream +java/io/ObjectInputStream$ValidationList +java/io/ObjectOutput +java/io/ObjectOutputStream +java/io/ObjectOutputStream$BlockDataOutputStream +java/io/ObjectOutputStream$HandleTable +java/io/ObjectOutputStream$ReplaceTable +java/io/ObjectStreamClass +java/io/ObjectStreamClass$1 +java/io/ObjectStreamClass$2 +java/io/ObjectStreamClass$3 +java/io/ObjectStreamClass$4 +java/io/ObjectStreamClass$5 +java/io/ObjectStreamClass$Caches +java/io/ObjectStreamClass$ClassDataSlot +java/io/ObjectStreamClass$EntryFuture +java/io/ObjectStreamClass$ExceptionInfo +java/io/ObjectStreamClass$FieldReflector +java/io/ObjectStreamClass$FieldReflectorKey +java/io/ObjectStreamClass$MemberSignature +java/io/ObjectStreamClass$WeakClassKey +java/io/ObjectStreamConstants +java/io/ObjectStreamField +java/io/OutputStream +java/io/OutputStreamWriter +java/io/PrintStream +java/io/PushbackInputStream +java/io/RandomAccessFile +java/io/RandomAccessFile$1 +java/io/Reader +java/io/SerialCallbackContext +java/io/Serializable +java/io/StringReader +java/io/StringWriter +java/io/UnsupportedEncodingException +java/io/WinNTFileSystem +java/io/Writer +java/lang/AbstractStringBuilder +java/lang/Appendable +java/lang/ApplicationShutdownHooks +java/lang/ApplicationShutdownHooks$1 +java/lang/ArithmeticException +java/lang/ArrayIndexOutOfBoundsException +java/lang/ArrayStoreException +java/lang/AutoCloseable +java/lang/Boolean +java/lang/BootstrapMethodError +java/lang/Byte +java/lang/CharSequence +java/lang/Character +java/lang/Character$CharacterCache +java/lang/CharacterData +java/lang/CharacterData00 +java/lang/CharacterDataLatin1 +java/lang/Class +java/lang/Class$1 +java/lang/Class$3 +java/lang/Class$4 +java/lang/Class$AnnotationData +java/lang/Class$Atomic +java/lang/Class$ReflectionData +java/lang/ClassCastException +java/lang/ClassFormatError +java/lang/ClassLoader +java/lang/ClassLoader$2 +java/lang/ClassLoader$3 +java/lang/ClassLoader$NativeLibrary +java/lang/ClassLoader$ParallelLoaders +java/lang/ClassLoaderHelper +java/lang/ClassNotFoundException +java/lang/ClassValue$ClassValueMap +java/lang/CloneNotSupportedException +java/lang/Cloneable +java/lang/Comparable +java/lang/Compiler +java/lang/Compiler$1 +java/lang/Double +java/lang/Enum +java/lang/Error +java/lang/Exception +java/lang/ExceptionInInitializerError +java/lang/Float +java/lang/IllegalAccessError +java/lang/IllegalAccessException +java/lang/IllegalArgumentException +java/lang/IllegalMonitorStateException +java/lang/IllegalStateException +java/lang/IncompatibleClassChangeError +java/lang/IndexOutOfBoundsException +java/lang/InheritableThreadLocal +java/lang/InstantiationException +java/lang/Integer +java/lang/Integer$IntegerCache +java/lang/InternalError +java/lang/InterruptedException +java/lang/Iterable +java/lang/LinkageError +java/lang/Long +java/lang/Long$LongCache +java/lang/Math +java/lang/NoClassDefFoundError +java/lang/NoSuchFieldException +java/lang/NoSuchMethodError +java/lang/NoSuchMethodException +java/lang/NullPointerException +java/lang/Number +java/lang/NumberFormatException +java/lang/Object +java/lang/OutOfMemoryError +java/lang/Package +java/lang/ProcessEnvironment +java/lang/ProcessEnvironment$CheckedEntry +java/lang/ProcessEnvironment$CheckedEntrySet +java/lang/ProcessEnvironment$CheckedEntrySet$1 +java/lang/ProcessEnvironment$EntryComparator +java/lang/ProcessEnvironment$NameComparator +java/lang/Readable +java/lang/ReflectiveOperationException +java/lang/Runnable +java/lang/Runtime +java/lang/RuntimeException +java/lang/RuntimePermission +java/lang/SecurityException +java/lang/SecurityManager +java/lang/Short +java/lang/Short$ShortCache +java/lang/Shutdown +java/lang/Shutdown$Lock +java/lang/StackOverflowError +java/lang/StackTraceElement +java/lang/StrictMath +java/lang/String +java/lang/String$CaseInsensitiveComparator +java/lang/StringBuffer +java/lang/StringBuilder +java/lang/StringCoding +java/lang/StringCoding$StringDecoder +java/lang/StringCoding$StringEncoder +java/lang/StringIndexOutOfBoundsException +java/lang/System +java/lang/System$2 +java/lang/SystemClassLoaderAction +java/lang/Terminator +java/lang/Terminator$1 +java/lang/Thread +java/lang/Thread$State +java/lang/Thread$UncaughtExceptionHandler +java/lang/ThreadDeath +java/lang/ThreadGroup +java/lang/ThreadLocal +java/lang/ThreadLocal$ThreadLocalMap +java/lang/ThreadLocal$ThreadLocalMap$Entry +java/lang/Throwable +java/lang/Throwable$PrintStreamOrWriter +java/lang/Throwable$WrappedPrintStream +java/lang/UnsatisfiedLinkError +java/lang/UnsupportedOperationException +java/lang/VirtualMachineError +java/lang/Void +java/lang/annotation/Annotation +java/lang/invoke/CallSite +java/lang/invoke/ConstantCallSite +java/lang/invoke/DirectMethodHandle +java/lang/invoke/Invokers +java/lang/invoke/LambdaForm +java/lang/invoke/LambdaForm$NamedFunction +java/lang/invoke/MemberName +java/lang/invoke/MemberName$Factory +java/lang/invoke/MethodHandle +java/lang/invoke/MethodHandleImpl +java/lang/invoke/MethodHandleNatives +java/lang/invoke/MethodHandleStatics +java/lang/invoke/MethodHandleStatics$1 +java/lang/invoke/MethodType +java/lang/invoke/MethodType$ConcurrentWeakInternSet +java/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry +java/lang/invoke/MethodTypeForm +java/lang/invoke/MutableCallSite +java/lang/invoke/VolatileCallSite +java/lang/ref/FinalReference +java/lang/ref/Finalizer +java/lang/ref/Finalizer$FinalizerThread +java/lang/ref/PhantomReference +java/lang/ref/Reference +java/lang/ref/Reference$Lock +java/lang/ref/Reference$ReferenceHandler +java/lang/ref/ReferenceQueue +java/lang/ref/ReferenceQueue$Lock +java/lang/ref/ReferenceQueue$Null +java/lang/ref/SoftReference +java/lang/ref/WeakReference +java/lang/reflect/AccessibleObject +java/lang/reflect/AnnotatedElement +java/lang/reflect/Array +java/lang/reflect/Constructor +java/lang/reflect/Executable +java/lang/reflect/Field +java/lang/reflect/GenericDeclaration +java/lang/reflect/InvocationHandler +java/lang/reflect/InvocationTargetException +java/lang/reflect/Member +java/lang/reflect/Method +java/lang/reflect/Modifier +java/lang/reflect/Parameter +java/lang/reflect/Proxy +java/lang/reflect/Proxy$KeyFactory +java/lang/reflect/Proxy$ProxyClassFactory +java/lang/reflect/ReflectAccess +java/lang/reflect/ReflectPermission +java/lang/reflect/Type +java/lang/reflect/WeakCache +java/math/BigInteger +java/math/BigInteger$UnsafeHolder +java/math/MutableBigInteger +java/math/RoundingMode +java/math/SignedMutableBigInteger +java/net/AbstractPlainDatagramSocketImpl +java/net/AbstractPlainDatagramSocketImpl$1 +java/net/AbstractPlainSocketImpl +java/net/AbstractPlainSocketImpl$1 +java/net/Authenticator +java/net/BindException +java/net/ConnectException +java/net/DatagramPacket +java/net/DatagramPacket$1 +java/net/DatagramSocket +java/net/DatagramSocket$1 +java/net/DatagramSocketImpl +java/net/DefaultDatagramSocketImplFactory$1 +java/net/DefaultInterface +java/net/DualStackPlainDatagramSocketImpl +java/net/DualStackPlainSocketImpl +java/net/FileNameMap +java/net/HttpURLConnection +java/net/Inet4Address +java/net/Inet4AddressImpl +java/net/Inet6Address +java/net/Inet6Address$Inet6AddressHolder +java/net/Inet6AddressImpl +java/net/InetAddress +java/net/InetAddress$1 +java/net/InetAddress$2 +java/net/InetAddress$Cache +java/net/InetAddress$Cache$Type +java/net/InetAddress$CacheEntry +java/net/InetAddress$InetAddressHolder +java/net/InetAddressImpl +java/net/InetAddressImplFactory +java/net/InetSocketAddress +java/net/InetSocketAddress$InetSocketAddressHolder +java/net/InterfaceAddress +java/net/JarURLConnection +java/net/MalformedURLException +java/net/MulticastSocket +java/net/NetworkInterface +java/net/NetworkInterface$1 +java/net/NoRouteToHostException +java/net/Parts +java/net/PlainSocketImpl +java/net/PlainSocketImpl$1 +java/net/Proxy +java/net/Proxy$Type +java/net/ProxySelector +java/net/ServerSocket +java/net/Socket +java/net/SocketAddress +java/net/SocketException +java/net/SocketImpl +java/net/SocketImplFactory +java/net/SocketOptions +java/net/SocketTimeoutException +java/net/SocksConsts +java/net/SocksSocketImpl +java/net/SocksSocketImpl$3 +java/net/TwoStacksPlainDatagramSocketImpl +java/net/URI +java/net/URI$Parser +java/net/URL +java/net/URLClassLoader +java/net/URLClassLoader$1 +java/net/URLClassLoader$2 +java/net/URLClassLoader$3 +java/net/URLClassLoader$3$1 +java/net/URLClassLoader$7 +java/net/URLConnection +java/net/URLConnection$1 +java/net/URLStreamHandler +java/net/URLStreamHandlerFactory +java/net/UnknownHostException +java/nio/Bits +java/nio/Bits$1 +java/nio/Buffer +java/nio/ByteBuffer +java/nio/ByteBufferAsCharBufferB +java/nio/ByteBufferAsIntBufferB +java/nio/ByteBufferAsShortBufferB +java/nio/ByteOrder +java/nio/CharBuffer +java/nio/DirectByteBuffer +java/nio/DirectByteBuffer$Deallocator +java/nio/DirectLongBufferU +java/nio/HeapByteBuffer +java/nio/HeapCharBuffer +java/nio/IntBuffer +java/nio/LongBuffer +java/nio/MappedByteBuffer +java/nio/ShortBuffer +java/nio/channels/ByteChannel +java/nio/channels/Channel +java/nio/channels/FileChannel +java/nio/channels/GatheringByteChannel +java/nio/channels/InterruptibleChannel +java/nio/channels/NetworkChannel +java/nio/channels/ReadableByteChannel +java/nio/channels/ScatteringByteChannel +java/nio/channels/SeekableByteChannel +java/nio/channels/SelectableChannel +java/nio/channels/SocketChannel +java/nio/channels/WritableByteChannel +java/nio/channels/spi/AbstractInterruptibleChannel +java/nio/channels/spi/AbstractInterruptibleChannel$1 +java/nio/channels/spi/AbstractSelectableChannel +java/nio/charset/Charset +java/nio/charset/CharsetDecoder +java/nio/charset/CharsetEncoder +java/nio/charset/CoderResult +java/nio/charset/CoderResult$1 +java/nio/charset/CoderResult$2 +java/nio/charset/CoderResult$Cache +java/nio/charset/CodingErrorAction +java/nio/charset/StandardCharsets +java/nio/charset/spi/CharsetProvider +java/nio/file/Path +java/nio/file/Watchable +java/nio/file/attribute/FileAttribute +java/security/AccessControlContext +java/security/AccessController +java/security/AlgorithmParameters +java/security/AlgorithmParametersSpi +java/security/AllPermission +java/security/AllPermissionCollection +java/security/BasicPermission +java/security/BasicPermissionCollection +java/security/CodeSigner +java/security/CodeSource +java/security/GeneralSecurityException +java/security/Guard +java/security/InvalidKeyException +java/security/Key +java/security/KeyException +java/security/MessageDigest +java/security/MessageDigest$Delegate +java/security/MessageDigestSpi +java/security/NoSuchAlgorithmException +java/security/Permission +java/security/PermissionCollection +java/security/Permissions +java/security/Principal +java/security/PrivateKey +java/security/PrivilegedAction +java/security/PrivilegedActionException +java/security/PrivilegedExceptionAction +java/security/ProtectionDomain +java/security/ProtectionDomain$1 +java/security/ProtectionDomain$3 +java/security/ProtectionDomain$Key +java/security/Provider +java/security/Provider$EngineDescription +java/security/Provider$Service +java/security/Provider$ServiceKey +java/security/Provider$UString +java/security/PublicKey +java/security/SecureClassLoader +java/security/Security +java/security/Security$1 +java/security/Signature +java/security/Signature$Delegate +java/security/SignatureException +java/security/SignatureSpi +java/security/UnresolvedPermission +java/security/cert/Certificate +java/security/interfaces/DSAKey +java/security/interfaces/DSAParams +java/security/interfaces/DSAPrivateKey +java/security/interfaces/DSAPublicKey +java/security/spec/AlgorithmParameterSpec +java/security/spec/DSAParameterSpec +java/text/AttributedCharacterIterator$Attribute +java/text/CharacterIterator +java/text/Collator +java/text/DateFormat +java/text/DateFormat$Field +java/text/DateFormatSymbols +java/text/DecimalFormat +java/text/DecimalFormatSymbols +java/text/DigitList +java/text/DontCareFieldPosition +java/text/DontCareFieldPosition$1 +java/text/EntryPair +java/text/FieldPosition +java/text/Format +java/text/Format$Field +java/text/Format$FieldDelegate +java/text/MergeCollation +java/text/MessageFormat +java/text/MessageFormat$Field +java/text/NumberFormat +java/text/NumberFormat$Field +java/text/ParseException +java/text/PatternEntry +java/text/PatternEntry$Parser +java/text/RBCollationTables +java/text/RBCollationTables$BuildAPI +java/text/RuleBasedCollator +java/text/SimpleDateFormat +java/text/spi/BreakIteratorProvider +java/text/spi/CollatorProvider +java/text/spi/DateFormatProvider +java/text/spi/DateFormatSymbolsProvider +java/text/spi/DecimalFormatSymbolsProvider +java/text/spi/NumberFormatProvider +java/util/AbstractCollection +java/util/AbstractList +java/util/AbstractList$Itr +java/util/AbstractList$ListItr +java/util/AbstractMap +java/util/AbstractQueue +java/util/AbstractSequentialList +java/util/AbstractSet +java/util/ArrayDeque +java/util/ArrayList +java/util/ArrayList$Itr +java/util/ArrayList$ListItr +java/util/ArrayList$SubList +java/util/ArrayList$SubList$1 +java/util/Arrays +java/util/Arrays$ArrayList +java/util/Arrays$LegacyMergeSort +java/util/BitSet +java/util/Calendar +java/util/Calendar$Builder +java/util/Collection +java/util/Collections +java/util/Collections$3 +java/util/Collections$EmptyEnumeration +java/util/Collections$EmptyIterator +java/util/Collections$EmptyList +java/util/Collections$EmptyMap +java/util/Collections$EmptySet +java/util/Collections$SetFromMap +java/util/Collections$SynchronizedCollection +java/util/Collections$SynchronizedMap +java/util/Collections$SynchronizedSet +java/util/Collections$UnmodifiableCollection +java/util/Collections$UnmodifiableCollection$1 +java/util/Collections$UnmodifiableList +java/util/Collections$UnmodifiableList$1 +java/util/Collections$UnmodifiableMap +java/util/Collections$UnmodifiableRandomAccessList +java/util/Collections$UnmodifiableSet +java/util/ComparableTimSort +java/util/Comparator +java/util/Currency +java/util/Currency$1 +java/util/Currency$CurrencyNameGetter +java/util/Date +java/util/Deque +java/util/Dictionary +java/util/Enumeration +java/util/EventListener +java/util/EventListenerProxy +java/util/EventObject +java/util/GregorianCalendar +java/util/HashMap +java/util/HashMap$EntryIterator +java/util/HashMap$EntrySet +java/util/HashMap$HashIterator +java/util/HashMap$KeyIterator +java/util/HashMap$KeySet +java/util/HashMap$Node +java/util/HashMap$TreeNode +java/util/HashMap$ValueIterator +java/util/HashMap$Values +java/util/HashSet +java/util/Hashtable +java/util/Hashtable$Entry +java/util/Hashtable$EntrySet +java/util/Hashtable$Enumerator +java/util/Hashtable$ValueCollection +java/util/IdentityHashMap +java/util/IdentityHashMap$IdentityHashMapIterator +java/util/IdentityHashMap$KeyIterator +java/util/IdentityHashMap$KeySet +java/util/IdentityHashMap$ValueIterator +java/util/IdentityHashMap$Values +java/util/Iterator +java/util/LinkedHashMap +java/util/LinkedHashMap$Entry +java/util/LinkedHashMap$LinkedEntryIterator +java/util/LinkedHashMap$LinkedEntrySet +java/util/LinkedHashMap$LinkedHashIterator +java/util/LinkedHashMap$LinkedKeyIterator +java/util/LinkedHashMap$LinkedKeySet +java/util/LinkedList +java/util/LinkedList$ListItr +java/util/LinkedList$Node +java/util/List +java/util/ListIterator +java/util/ListResourceBundle +java/util/Locale +java/util/Locale$1 +java/util/Locale$Cache +java/util/Locale$Category +java/util/Locale$LocaleKey +java/util/Map +java/util/Map$Entry +java/util/MissingResourceException +java/util/NavigableMap +java/util/Objects +java/util/PriorityQueue +java/util/Properties +java/util/Properties$LineReader +java/util/PropertyResourceBundle +java/util/Queue +java/util/Random +java/util/RandomAccess +java/util/ResourceBundle +java/util/ResourceBundle$1 +java/util/ResourceBundle$BundleReference +java/util/ResourceBundle$CacheKey +java/util/ResourceBundle$CacheKeyReference +java/util/ResourceBundle$Control +java/util/ResourceBundle$Control$1 +java/util/ResourceBundle$Control$CandidateListCache +java/util/ResourceBundle$LoaderReference +java/util/ResourceBundle$RBClassLoader +java/util/ResourceBundle$RBClassLoader$1 +java/util/ResourceBundle$SingleFormatControl +java/util/ServiceLoader +java/util/ServiceLoader$1 +java/util/ServiceLoader$LazyIterator +java/util/Set +java/util/SortedMap +java/util/Stack +java/util/StringTokenizer +java/util/TimSort +java/util/TimeZone +java/util/TimeZone$1 +java/util/TreeMap +java/util/TreeMap$Entry +java/util/Vector +java/util/Vector$1 +java/util/Vector$Itr +java/util/Vector$ListItr +java/util/WeakHashMap +java/util/WeakHashMap$Entry +java/util/WeakHashMap$KeySet +java/util/concurrent/BlockingQueue +java/util/concurrent/ConcurrentHashMap +java/util/concurrent/ConcurrentHashMap$BaseIterator +java/util/concurrent/ConcurrentHashMap$CollectionView +java/util/concurrent/ConcurrentHashMap$CounterCell +java/util/concurrent/ConcurrentHashMap$EntrySetView +java/util/concurrent/ConcurrentHashMap$ForwardingNode +java/util/concurrent/ConcurrentHashMap$KeyIterator +java/util/concurrent/ConcurrentHashMap$KeySetView +java/util/concurrent/ConcurrentHashMap$Node +java/util/concurrent/ConcurrentHashMap$Segment +java/util/concurrent/ConcurrentHashMap$Traverser +java/util/concurrent/ConcurrentHashMap$ValueIterator +java/util/concurrent/ConcurrentHashMap$ValuesView +java/util/concurrent/ConcurrentMap +java/util/concurrent/CopyOnWriteArrayList +java/util/concurrent/DelayQueue +java/util/concurrent/Delayed +java/util/concurrent/TimeUnit +java/util/concurrent/TimeUnit$1 +java/util/concurrent/TimeUnit$2 +java/util/concurrent/TimeUnit$3 +java/util/concurrent/TimeUnit$4 +java/util/concurrent/TimeUnit$5 +java/util/concurrent/TimeUnit$6 +java/util/concurrent/TimeUnit$7 +java/util/concurrent/atomic/AtomicBoolean +java/util/concurrent/atomic/AtomicInteger +java/util/concurrent/atomic/AtomicLong +java/util/concurrent/atomic/AtomicMarkableReference +java/util/concurrent/atomic/AtomicMarkableReference$Pair +java/util/concurrent/atomic/AtomicReferenceFieldUpdater +java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl +java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1 +java/util/concurrent/locks/AbstractOwnableSynchronizer +java/util/concurrent/locks/AbstractQueuedSynchronizer +java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject +java/util/concurrent/locks/AbstractQueuedSynchronizer$Node +java/util/concurrent/locks/Condition +java/util/concurrent/locks/Lock +java/util/concurrent/locks/LockSupport +java/util/concurrent/locks/ReadWriteLock +java/util/concurrent/locks/ReentrantLock +java/util/concurrent/locks/ReentrantLock$NonfairSync +java/util/concurrent/locks/ReentrantLock$Sync +java/util/concurrent/locks/ReentrantReadWriteLock +java/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync +java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock +java/util/concurrent/locks/ReentrantReadWriteLock$Sync +java/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter +java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock +java/util/function/BiFunction +java/util/jar/Attributes +java/util/jar/Attributes$Name +java/util/jar/JarEntry +java/util/jar/JarFile +java/util/jar/JarFile$JarEntryIterator +java/util/jar/JarFile$JarFileEntry +java/util/jar/JarVerifier +java/util/jar/JarVerifier$3 +java/util/jar/JavaUtilJarAccessImpl +java/util/jar/Manifest +java/util/jar/Manifest$FastInputStream +java/util/logging/Handler +java/util/logging/Level +java/util/logging/Level$KnownLevel +java/util/logging/LogManager +java/util/logging/LogManager$1 +java/util/logging/LogManager$2 +java/util/logging/LogManager$3 +java/util/logging/LogManager$5 +java/util/logging/LogManager$Cleaner +java/util/logging/LogManager$LogNode +java/util/logging/LogManager$LoggerContext +java/util/logging/LogManager$LoggerContext$1 +java/util/logging/LogManager$LoggerWeakRef +java/util/logging/LogManager$RootLogger +java/util/logging/LogManager$SystemLoggerContext +java/util/logging/Logger +java/util/logging/Logger$1 +java/util/logging/LoggingPermission +java/util/logging/LoggingProxyImpl +java/util/spi/CalendarDataProvider +java/util/spi/CurrencyNameProvider +java/util/spi/LocaleNameProvider +java/util/spi/LocaleServiceProvider +java/util/spi/ResourceBundleControlProvider +java/util/spi/TimeZoneNameProvider +java/util/zip/CRC32 +java/util/zip/Checksum +java/util/zip/DeflaterOutputStream +java/util/zip/GZIPInputStream +java/util/zip/Inflater +java/util/zip/InflaterInputStream +java/util/zip/ZStreamRef +java/util/zip/ZipCoder +java/util/zip/ZipConstants +java/util/zip/ZipEntry +java/util/zip/ZipFile +java/util/zip/ZipFile$1 +java/util/zip/ZipFile$ZipEntryIterator +java/util/zip/ZipFile$ZipFileInflaterInputStream +java/util/zip/ZipFile$ZipFileInputStream +java/util/zip/ZipInputStream +java/util/zip/ZipUtils +javax/accessibility/Accessible +javax/accessibility/AccessibleAction +javax/accessibility/AccessibleBundle +javax/accessibility/AccessibleComponent +javax/accessibility/AccessibleContext +javax/accessibility/AccessibleExtendedComponent +javax/accessibility/AccessibleRelationSet +javax/accessibility/AccessibleState +javax/accessibility/AccessibleText +javax/accessibility/AccessibleValue +javax/security/auth/Destroyable +javax/sound/sampled/Control$Type +javax/sound/sampled/DataLine +javax/sound/sampled/DataLine$Info +javax/sound/sampled/FloatControl$Type +javax/sound/sampled/Line +javax/sound/sampled/Line$Info +javax/sound/sampled/LineUnavailableException +javax/sound/sampled/UnsupportedAudioFileException +javax/swing/AbstractAction +javax/swing/AbstractButton +javax/swing/AbstractButton$AccessibleAbstractButton +javax/swing/AbstractButton$Handler +javax/swing/AbstractCellEditor +javax/swing/AbstractListModel +javax/swing/Action +javax/swing/ActionMap +javax/swing/AncestorNotifier +javax/swing/ArrayTable +javax/swing/BorderFactory +javax/swing/BoundedRangeModel +javax/swing/Box +javax/swing/Box$Filler +javax/swing/BoxLayout +javax/swing/BufferStrategyPaintManager +javax/swing/BufferStrategyPaintManager$BufferInfo +javax/swing/ButtonGroup +javax/swing/ButtonModel +javax/swing/CellEditor +javax/swing/CellRendererPane +javax/swing/ClientPropertyKey +javax/swing/ClientPropertyKey$1 +javax/swing/ComboBoxEditor +javax/swing/ComboBoxModel +javax/swing/ComponentInputMap +javax/swing/DefaultBoundedRangeModel +javax/swing/DefaultButtonModel +javax/swing/DefaultCellEditor +javax/swing/DefaultCellEditor$1 +javax/swing/DefaultCellEditor$EditorDelegate +javax/swing/DefaultComboBoxModel +javax/swing/DefaultListCellRenderer +javax/swing/DefaultListCellRenderer$UIResource +javax/swing/DefaultListModel +javax/swing/DefaultListSelectionModel +javax/swing/DefaultSingleSelectionModel +javax/swing/DropMode +javax/swing/FocusManager +javax/swing/GrayFilter +javax/swing/Icon +javax/swing/ImageIcon +javax/swing/ImageIcon$1 +javax/swing/ImageIcon$2 +javax/swing/ImageIcon$2$1 +javax/swing/ImageIcon$3 +javax/swing/InputMap +javax/swing/InternalFrameFocusTraversalPolicy +javax/swing/JButton +javax/swing/JCheckBox +javax/swing/JCheckBoxMenuItem +javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem +javax/swing/JComboBox +javax/swing/JComboBox$1 +javax/swing/JComboBox$KeySelectionManager javax/swing/JComponent javax/swing/JComponent$1 -javax/swing/SwingUtilities -javax/swing/JRootPane -sun/security/action/GetBooleanAction -javax/swing/event/EventListenerList +javax/swing/JComponent$2 +javax/swing/JComponent$AccessibleJComponent +javax/swing/JDialog +javax/swing/JEditorPane +javax/swing/JFrame +javax/swing/JInternalFrame +javax/swing/JLabel +javax/swing/JLayer +javax/swing/JLayeredPane +javax/swing/JList +javax/swing/JList$3 +javax/swing/JList$ListSelectionHandler +javax/swing/JMenu +javax/swing/JMenu$MenuChangeListener +javax/swing/JMenu$WinListener +javax/swing/JMenuBar +javax/swing/JMenuItem +javax/swing/JMenuItem$AccessibleJMenuItem +javax/swing/JMenuItem$MenuItemFocusListener javax/swing/JPanel -java/awt/FlowLayout -javax/swing/UIManager -javax/swing/UIManager$LookAndFeelInfo -sun/awt/windows/WDesktopProperties -sun/awt/windows/WDesktopProperties$WinPlaySound -sun/awt/shell/Win32ShellFolderManager2 -sun/awt/shell/ShellFolderManager -sun/swing/SwingUtilities2 -sun/swing/SwingUtilities2$LSBCacheEntry -javax/swing/UIManager$LAFState -javax/swing/UIDefaults -javax/swing/MultiUIDefaults -javax/swing/UIManager$1 -javax/swing/plaf/metal/MetalLookAndFeel -javax/swing/plaf/basic/BasicLookAndFeel +javax/swing/JPopupMenu +javax/swing/JPopupMenu$Separator +javax/swing/JProgressBar +javax/swing/JProgressBar$ModelListener +javax/swing/JRadioButton +javax/swing/JRadioButtonMenuItem +javax/swing/JRootPane +javax/swing/JRootPane$1 +javax/swing/JRootPane$RootLayout +javax/swing/JScrollBar +javax/swing/JScrollBar$ModelListener +javax/swing/JScrollPane +javax/swing/JScrollPane$ScrollBar +javax/swing/JSeparator +javax/swing/JSlider +javax/swing/JSlider$ModelListener +javax/swing/JSplitPane +javax/swing/JTabbedPane +javax/swing/JTabbedPane$ModelListener +javax/swing/JTabbedPane$Page +javax/swing/JTable +javax/swing/JTable$2 +javax/swing/JTable$5 +javax/swing/JTable$Resizable2 +javax/swing/JTable$Resizable3 +javax/swing/JTextArea +javax/swing/JTextField +javax/swing/JTextField$NotifyAction +javax/swing/JTextField$ScrollRepainter +javax/swing/JToggleButton +javax/swing/JToggleButton$ToggleButtonModel +javax/swing/JToolBar +javax/swing/JToolBar$DefaultToolBarLayout +javax/swing/JToolBar$Separator +javax/swing/JToolTip +javax/swing/JTree +javax/swing/JTree$TreeModelHandler +javax/swing/JTree$TreeSelectionRedirector +javax/swing/JViewport +javax/swing/JViewport$ViewListener +javax/swing/JWindow +javax/swing/KeyStroke +javax/swing/KeyboardManager +javax/swing/KeyboardManager$ComponentKeyStrokePair +javax/swing/LayoutComparator +javax/swing/LayoutFocusTraversalPolicy +javax/swing/ListCellRenderer +javax/swing/ListModel +javax/swing/ListSelectionModel javax/swing/LookAndFeel -sun/swing/DefaultLookup -javax/swing/plaf/metal/OceanTheme -javax/swing/plaf/metal/DefaultMetalTheme -javax/swing/plaf/metal/MetalTheme -javax/swing/plaf/ColorUIResource -javax/swing/plaf/UIResource -sun/swing/PrintColorUIResource -javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate -javax/swing/plaf/FontUIResource -sun/swing/SwingLazyValue -javax/swing/UIDefaults$LazyValue +javax/swing/MenuElement +javax/swing/MenuSelectionManager +javax/swing/MultiUIDefaults +javax/swing/MutableComboBoxModel +javax/swing/Popup$HeavyWeightWindow +javax/swing/RepaintManager +javax/swing/RepaintManager$1 +javax/swing/RepaintManager$1$1 +javax/swing/RepaintManager$2 +javax/swing/RepaintManager$3 +javax/swing/RepaintManager$DisplayChangedHandler +javax/swing/RepaintManager$PaintManager +javax/swing/RepaintManager$ProcessingRunnable +javax/swing/RootPaneContainer +javax/swing/ScrollPaneConstants +javax/swing/ScrollPaneLayout +javax/swing/ScrollPaneLayout$UIResource +javax/swing/Scrollable +javax/swing/SingleSelectionModel +javax/swing/SizeRequirements +javax/swing/SortingFocusTraversalPolicy +javax/swing/SwingConstants +javax/swing/SwingContainerOrderFocusTraversalPolicy +javax/swing/SwingDefaultFocusTraversalPolicy +javax/swing/SwingPaintEventDispatcher +javax/swing/SwingUtilities +javax/swing/SwingUtilities$SharedOwnerFrame +javax/swing/Timer +javax/swing/Timer$DoPostEvent +javax/swing/TimerQueue +javax/swing/TimerQueue$1 +javax/swing/TimerQueue$DelayedTimer +javax/swing/ToolTipManager +javax/swing/ToolTipManager$AccessibilityKeyListener +javax/swing/ToolTipManager$MoveBeforeEnterListener +javax/swing/ToolTipManager$insideTimerAction +javax/swing/ToolTipManager$outsideTimerAction +javax/swing/ToolTipManager$stillInsideTimerAction +javax/swing/TransferHandler +javax/swing/TransferHandler$DropHandler +javax/swing/TransferHandler$HasGetTransferHandler +javax/swing/TransferHandler$SwingDropTarget +javax/swing/TransferHandler$TransferAction +javax/swing/TransferHandler$TransferSupport +javax/swing/UIDefaults javax/swing/UIDefaults$ActiveValue -javax/swing/plaf/InsetsUIResource -sun/swing/SwingUtilities2$2 -javax/swing/plaf/basic/BasicLookAndFeel$2 -javax/swing/plaf/DimensionUIResource javax/swing/UIDefaults$LazyInputMap -java/lang/Character$CharacterCache -javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue -javax/swing/plaf/metal/MetalLookAndFeel$FontActiveValue -sun/swing/SwingUtilities2$AATextInfo -java/util/HashMap$EntrySet -java/util/HashMap$EntryIterator +javax/swing/UIDefaults$LazyValue +javax/swing/UIDefaults$TextAndMnemonicHashMap +javax/swing/UIManager +javax/swing/UIManager$1 +javax/swing/UIManager$2 +javax/swing/UIManager$LAFState +javax/swing/UIManager$LookAndFeelInfo +javax/swing/UnsupportedLookAndFeelException +javax/swing/ViewportLayout +javax/swing/WindowConstants +javax/swing/border/AbstractBorder +javax/swing/border/BevelBorder +javax/swing/border/Border +javax/swing/border/CompoundBorder +javax/swing/border/EmptyBorder +javax/swing/border/EtchedBorder +javax/swing/border/LineBorder +javax/swing/border/MatteBorder +javax/swing/border/TitledBorder +javax/swing/event/AncestorListener +javax/swing/event/CaretEvent +javax/swing/event/CaretListener +javax/swing/event/CellEditorListener +javax/swing/event/ChangeEvent +javax/swing/event/ChangeListener +javax/swing/event/DocumentEvent +javax/swing/event/DocumentEvent$ElementChange +javax/swing/event/DocumentEvent$EventType +javax/swing/event/DocumentListener +javax/swing/event/EventListenerList +javax/swing/event/ListDataEvent +javax/swing/event/ListDataListener +javax/swing/event/ListSelectionEvent +javax/swing/event/ListSelectionListener +javax/swing/event/MenuDragMouseListener +javax/swing/event/MenuEvent +javax/swing/event/MenuKeyListener +javax/swing/event/MenuListener +javax/swing/event/MouseInputAdapter +javax/swing/event/MouseInputListener +javax/swing/event/PopupMenuListener +javax/swing/event/RowSorterListener +javax/swing/event/SwingPropertyChangeSupport +javax/swing/event/TableColumnModelEvent +javax/swing/event/TableColumnModelListener +javax/swing/event/TableModelEvent +javax/swing/event/TableModelListener +javax/swing/event/TreeExpansionListener +javax/swing/event/TreeModelEvent +javax/swing/event/TreeModelListener +javax/swing/event/TreeSelectionEvent +javax/swing/event/TreeSelectionListener +javax/swing/event/UndoableEditEvent +javax/swing/event/UndoableEditListener +javax/swing/filechooser/FileFilter +javax/swing/filechooser/FileSystemView +javax/swing/filechooser/FileSystemView$1 +javax/swing/filechooser/WindowsFileSystemView +javax/swing/plaf/ActionMapUIResource +javax/swing/plaf/BorderUIResource +javax/swing/plaf/BorderUIResource$CompoundBorderUIResource +javax/swing/plaf/BorderUIResource$EmptyBorderUIResource +javax/swing/plaf/BorderUIResource$LineBorderUIResource +javax/swing/plaf/ButtonUI +javax/swing/plaf/ColorUIResource +javax/swing/plaf/ComboBoxUI +javax/swing/plaf/ComponentInputMapUIResource +javax/swing/plaf/ComponentUI +javax/swing/plaf/DimensionUIResource +javax/swing/plaf/FontUIResource +javax/swing/plaf/InputMapUIResource +javax/swing/plaf/InsetsUIResource +javax/swing/plaf/LabelUI +javax/swing/plaf/ListUI +javax/swing/plaf/MenuBarUI +javax/swing/plaf/MenuItemUI +javax/swing/plaf/PanelUI +javax/swing/plaf/PopupMenuUI +javax/swing/plaf/ProgressBarUI +javax/swing/plaf/RootPaneUI +javax/swing/plaf/ScrollBarUI +javax/swing/plaf/ScrollPaneUI +javax/swing/plaf/SeparatorUI +javax/swing/plaf/SliderUI +javax/swing/plaf/SplitPaneUI +javax/swing/plaf/TabbedPaneUI +javax/swing/plaf/TableHeaderUI +javax/swing/plaf/TableUI +javax/swing/plaf/TextUI +javax/swing/plaf/ToolBarUI +javax/swing/plaf/TreeUI +javax/swing/plaf/UIResource +javax/swing/plaf/ViewportUI +javax/swing/plaf/basic/BasicArrowButton +javax/swing/plaf/basic/BasicBorders +javax/swing/plaf/basic/BasicBorders$ButtonBorder +javax/swing/plaf/basic/BasicBorders$MarginBorder +javax/swing/plaf/basic/BasicBorders$RadioButtonBorder +javax/swing/plaf/basic/BasicBorders$RolloverMarginBorder +javax/swing/plaf/basic/BasicBorders$SplitPaneBorder +javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder +javax/swing/plaf/basic/BasicButtonListener +javax/swing/plaf/basic/BasicButtonUI +javax/swing/plaf/basic/BasicCheckBoxMenuItemUI +javax/swing/plaf/basic/BasicComboBoxEditor +javax/swing/plaf/basic/BasicComboBoxEditor$BorderlessTextField +javax/swing/plaf/basic/BasicComboBoxEditor$UIResource +javax/swing/plaf/basic/BasicComboBoxRenderer +javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource +javax/swing/plaf/basic/BasicComboBoxUI +javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager +javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager +javax/swing/plaf/basic/BasicComboBoxUI$Handler +javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler +javax/swing/plaf/basic/BasicComboPopup +javax/swing/plaf/basic/BasicComboPopup$1 +javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass +javax/swing/plaf/basic/BasicComboPopup$Handler +javax/swing/plaf/basic/BasicGraphicsUtils +javax/swing/plaf/basic/BasicHTML +javax/swing/plaf/basic/BasicLabelUI +javax/swing/plaf/basic/BasicListUI +javax/swing/plaf/basic/BasicListUI$Handler +javax/swing/plaf/basic/BasicListUI$ListTransferHandler +javax/swing/plaf/basic/BasicLookAndFeel +javax/swing/plaf/basic/BasicLookAndFeel$1 +javax/swing/plaf/basic/BasicLookAndFeel$2 +javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper +javax/swing/plaf/basic/BasicMenuBarUI +javax/swing/plaf/basic/BasicMenuBarUI$Handler +javax/swing/plaf/basic/BasicMenuItemUI +javax/swing/plaf/basic/BasicMenuItemUI$Handler +javax/swing/plaf/basic/BasicMenuUI +javax/swing/plaf/basic/BasicMenuUI$Handler +javax/swing/plaf/basic/BasicPanelUI +javax/swing/plaf/basic/BasicPopupMenuUI +javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener +javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener +javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper +javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper$1 +javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber +javax/swing/plaf/basic/BasicProgressBarUI +javax/swing/plaf/basic/BasicProgressBarUI$Handler +javax/swing/plaf/basic/BasicRadioButtonMenuItemUI +javax/swing/plaf/basic/BasicRadioButtonUI +javax/swing/plaf/basic/BasicRootPaneUI +javax/swing/plaf/basic/BasicRootPaneUI$RootPaneInputMap +javax/swing/plaf/basic/BasicScrollBarUI +javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener +javax/swing/plaf/basic/BasicScrollBarUI$Handler +javax/swing/plaf/basic/BasicScrollBarUI$ModelListener +javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler +javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener +javax/swing/plaf/basic/BasicScrollBarUI$TrackListener +javax/swing/plaf/basic/BasicScrollPaneUI +javax/swing/plaf/basic/BasicScrollPaneUI$Handler +javax/swing/plaf/basic/BasicSeparatorUI +javax/swing/plaf/basic/BasicSliderUI +javax/swing/plaf/basic/BasicSliderUI$Actions +javax/swing/plaf/basic/BasicSliderUI$Handler +javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler +javax/swing/plaf/basic/BasicSliderUI$ScrollListener +javax/swing/plaf/basic/BasicSliderUI$TrackListener +javax/swing/plaf/basic/BasicSplitPaneDivider +javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout +javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler +javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchActionHandler +javax/swing/plaf/basic/BasicSplitPaneUI +javax/swing/plaf/basic/BasicSplitPaneUI$1 +javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager +javax/swing/plaf/basic/BasicSplitPaneUI$Handler +javax/swing/plaf/basic/BasicTabbedPaneUI +javax/swing/plaf/basic/BasicTabbedPaneUI$Handler +javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout +javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout +javax/swing/plaf/basic/BasicTableHeaderUI +javax/swing/plaf/basic/BasicTableHeaderUI$1 +javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler +javax/swing/plaf/basic/BasicTableUI +javax/swing/plaf/basic/BasicTableUI$Handler +javax/swing/plaf/basic/BasicTableUI$TableTransferHandler +javax/swing/plaf/basic/BasicTextAreaUI +javax/swing/plaf/basic/BasicTextFieldUI +javax/swing/plaf/basic/BasicTextUI +javax/swing/plaf/basic/BasicTextUI$BasicCaret +javax/swing/plaf/basic/BasicTextUI$BasicCursor +javax/swing/plaf/basic/BasicTextUI$BasicHighlighter +javax/swing/plaf/basic/BasicTextUI$DragListener +javax/swing/plaf/basic/BasicTextUI$FocusAction +javax/swing/plaf/basic/BasicTextUI$RootView +javax/swing/plaf/basic/BasicTextUI$TextActionWrapper +javax/swing/plaf/basic/BasicTextUI$TextTransferHandler +javax/swing/plaf/basic/BasicTextUI$UpdateHandler +javax/swing/plaf/basic/BasicToggleButtonUI +javax/swing/plaf/basic/BasicToolBarSeparatorUI +javax/swing/plaf/basic/BasicToolBarUI +javax/swing/plaf/basic/BasicToolBarUI$DockingListener +javax/swing/plaf/basic/BasicToolBarUI$Handler +javax/swing/plaf/basic/BasicTreeUI +javax/swing/plaf/basic/BasicTreeUI$Actions +javax/swing/plaf/basic/BasicTreeUI$Handler +javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler +javax/swing/plaf/basic/BasicTreeUI$TreeTransferHandler +javax/swing/plaf/basic/BasicViewportUI +javax/swing/plaf/basic/ComboPopup +javax/swing/plaf/basic/DefaultMenuLayout +javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag +javax/swing/plaf/basic/LazyActionMap +javax/swing/plaf/metal/BumpBuffer +javax/swing/plaf/metal/DefaultMetalTheme +javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate +javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1 +javax/swing/plaf/metal/MetalBorders +javax/swing/plaf/metal/MetalBorders$ButtonBorder +javax/swing/plaf/metal/MetalBorders$Flush3DBorder +javax/swing/plaf/metal/MetalBorders$MenuBarBorder +javax/swing/plaf/metal/MetalBorders$MenuItemBorder +javax/swing/plaf/metal/MetalBorders$PopupMenuBorder +javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder +javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder +javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder +javax/swing/plaf/metal/MetalBorders$TextFieldBorder +javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder +javax/swing/plaf/metal/MetalBorders$ToolBarBorder +javax/swing/plaf/metal/MetalBumps +javax/swing/plaf/metal/MetalButtonUI +javax/swing/plaf/metal/MetalCheckBoxUI +javax/swing/plaf/metal/MetalComboBoxButton +javax/swing/plaf/metal/MetalComboBoxButton$1 +javax/swing/plaf/metal/MetalComboBoxEditor +javax/swing/plaf/metal/MetalComboBoxEditor$1 +javax/swing/plaf/metal/MetalComboBoxEditor$EditorBorder +javax/swing/plaf/metal/MetalComboBoxEditor$UIResource +javax/swing/plaf/metal/MetalComboBoxIcon +javax/swing/plaf/metal/MetalComboBoxUI +javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager +javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener +javax/swing/plaf/metal/MetalIconFactory +javax/swing/plaf/metal/MetalIconFactory$CheckBoxIcon +javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon +javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 +javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon +javax/swing/plaf/metal/MetalIconFactory$MenuArrowIcon +javax/swing/plaf/metal/MetalIconFactory$MenuItemArrowIcon +javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon +javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon +javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon +javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon +javax/swing/plaf/metal/MetalLabelUI +javax/swing/plaf/metal/MetalLookAndFeel javax/swing/plaf/metal/MetalLookAndFeel$AATextListener -java/beans/PropertyChangeListenerProxy -java/util/EventListenerProxy -sun/awt/EventListenerAggregate -javax/swing/UIDefaults$ProxyLazyValue +javax/swing/plaf/metal/MetalLookAndFeel$FontActiveValue +javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue +javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue$1 +javax/swing/plaf/metal/MetalPopupMenuSeparatorUI +javax/swing/plaf/metal/MetalProgressBarUI +javax/swing/plaf/metal/MetalRadioButtonUI +javax/swing/plaf/metal/MetalRootPaneUI +javax/swing/plaf/metal/MetalScrollBarUI +javax/swing/plaf/metal/MetalScrollBarUI$ScrollBarListener +javax/swing/plaf/metal/MetalScrollButton +javax/swing/plaf/metal/MetalScrollPaneUI +javax/swing/plaf/metal/MetalScrollPaneUI$1 +javax/swing/plaf/metal/MetalSeparatorUI +javax/swing/plaf/metal/MetalSliderUI +javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener +javax/swing/plaf/metal/MetalSplitPaneDivider +javax/swing/plaf/metal/MetalSplitPaneDivider$1 +javax/swing/plaf/metal/MetalSplitPaneDivider$2 +javax/swing/plaf/metal/MetalSplitPaneUI +javax/swing/plaf/metal/MetalTabbedPaneUI +javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout +javax/swing/plaf/metal/MetalTextFieldUI +javax/swing/plaf/metal/MetalTheme +javax/swing/plaf/metal/MetalToggleButtonUI +javax/swing/plaf/metal/MetalToolBarUI +javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener +javax/swing/plaf/metal/MetalTreeUI +javax/swing/plaf/metal/MetalTreeUI$LineListener +javax/swing/plaf/metal/MetalUtils +javax/swing/plaf/metal/OceanTheme javax/swing/plaf/metal/OceanTheme$1 javax/swing/plaf/metal/OceanTheme$2 javax/swing/plaf/metal/OceanTheme$3 javax/swing/plaf/metal/OceanTheme$4 javax/swing/plaf/metal/OceanTheme$5 javax/swing/plaf/metal/OceanTheme$6 -javax/swing/FocusManager -javax/swing/LayoutFocusTraversalPolicy -javax/swing/SortingFocusTraversalPolicy -javax/swing/InternalFrameFocusTraversalPolicy -javax/swing/SwingContainerOrderFocusTraversalPolicy -javax/swing/SwingDefaultFocusTraversalPolicy -javax/swing/LayoutComparator -javax/swing/RepaintManager -javax/swing/RepaintManager$DisplayChangedHandler -javax/swing/SwingPaintEventDispatcher -javax/swing/UIManager$2 -com/sun/swing/internal/plaf/metal/resources/metal -sun/util/ResourceBundleEnumeration -com/sun/swing/internal/plaf/basic/resources/basic -javax/swing/plaf/basic/BasicPanelUI -javax/swing/plaf/PanelUI -javax/swing/plaf/ComponentUI -sun/reflect/misc/MethodUtil -sun/reflect/misc/MethodUtil$1 -java/util/jar/JarFile -java/util/zip/ZipFile -java/util/zip/ZipConstants -java/util/jar/JavaUtilJarAccessImpl -sun/misc/JavaUtilJarAccess -sun/misc/JarIndex -java/util/zip/ZipEntry -java/util/jar/JarFile$JarFileEntry -java/util/jar/JarEntry -sun/misc/URLClassPath$JarLoader$2 -sun/net/www/protocol/jar/JarURLConnection -java/net/JarURLConnection -sun/net/www/protocol/jar/JarFileFactory -sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController -java/net/HttpURLConnection -sun/net/www/protocol/jar/URLJarFile -sun/net/www/protocol/jar/URLJarFile$URLJarFileEntry -sun/net/www/protocol/jar/JarURLConnection$JarURLInputStream -java/util/zip/ZipFile$ZipFileInputStream -java/security/AllPermissionCollection -java/lang/IllegalAccessException -javax/swing/JPasswordField -javax/swing/JTextField -javax/swing/text/JTextComponent -javax/swing/Scrollable -javax/swing/JLayeredPane -javax/swing/JRootPane$1 -javax/swing/ArrayTable -javax/swing/JInternalFrame -javax/swing/JRootPane$RootLayout -javax/swing/BufferStrategyPaintManager -javax/swing/RepaintManager$PaintManager -javax/swing/plaf/metal/MetalRootPaneUI -javax/swing/plaf/basic/BasicRootPaneUI -javax/swing/plaf/RootPaneUI -javax/swing/plaf/basic/BasicRootPaneUI$RootPaneInputMap -javax/swing/plaf/ComponentInputMapUIResource -javax/swing/ComponentInputMap -javax/swing/InputMap -javax/swing/plaf/InputMapUIResource -javax/swing/KeyStroke -java/awt/VKCollection -sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl -javax/swing/plaf/basic/LazyActionMap -javax/swing/plaf/ActionMapUIResource -javax/swing/ActionMap -javax/swing/plaf/metal/MetalLabelUI -javax/swing/plaf/basic/BasicLabelUI -javax/swing/plaf/LabelUI -javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1 -java/util/Hashtable$ValueCollection -java/util/Collections$SynchronizedCollection -javax/swing/plaf/basic/BasicHTML -sun/awt/AppContext$PostShutdownEventRunnable -sun/awt/AWTAutoShutdown$1 -sun/awt/NullComponentPeer -java/awt/GraphicsCallback$PaintCallback -java/awt/GraphicsCallback -sun/awt/SunGraphicsCallback -java/util/jar/Manifest -java/io/ByteArrayInputStream -java/util/jar/Attributes -java/util/jar/Manifest$FastInputStream -sun/nio/cs/UTF_8 -sun/nio/cs/UTF_8$Decoder -sun/nio/cs/Surrogate$Generator -java/util/jar/Attributes$Name -sun/misc/ASCIICaseInsensitiveComparator -java/util/jar/JarVerifier -java/io/ByteArrayOutputStream -sun/misc/ExtensionDependency -java/lang/Package -sun/security/util/ManifestEntryVerifier -java/security/Provider -java/security/Provider$ServiceKey -java/security/Provider$EngineDescription -java/security/Security -java/security/Security$1 -sun/misc/FloatingDecimal -sun/misc/FloatingDecimal$1 -java/util/regex/Pattern -java/util/regex/Pattern$Node -java/util/regex/Pattern$LastNode -java/util/regex/Pattern$GroupHead -java/util/regex/Pattern$GroupTail -java/util/regex/Pattern$BitClass -java/util/regex/Pattern$BmpCharProperty -java/util/regex/Pattern$CharProperty -java/util/regex/Pattern$Ques -java/util/regex/Pattern$BranchConn -java/util/regex/Pattern$Branch -java/util/regex/Pattern$5 -java/util/regex/Pattern$CharPropertyNames -java/util/regex/Pattern$CharPropertyNames$1 -java/util/regex/Pattern$CharPropertyNames$CharPropertyFactory -java/util/regex/Pattern$CharPropertyNames$2 -java/util/regex/Pattern$CharPropertyNames$5 -java/util/regex/Pattern$CharPropertyNames$3 -java/util/regex/Pattern$CharPropertyNames$6 -java/util/regex/Pattern$CharPropertyNames$CloneableProperty -java/util/regex/Pattern$CharPropertyNames$4 -java/util/regex/Pattern$CharPropertyNames$7 -java/util/regex/Pattern$CharPropertyNames$8 -java/util/regex/Pattern$CharPropertyNames$9 -java/util/regex/Pattern$CharPropertyNames$10 -java/util/regex/Pattern$CharPropertyNames$11 -java/util/regex/Pattern$CharPropertyNames$12 -java/util/regex/Pattern$CharPropertyNames$13 -java/util/regex/Pattern$CharPropertyNames$14 -java/util/regex/Pattern$CharPropertyNames$15 -java/util/regex/Pattern$CharPropertyNames$16 -java/util/regex/Pattern$CharPropertyNames$17 -java/util/regex/Pattern$CharPropertyNames$18 -java/util/regex/Pattern$CharPropertyNames$19 -java/util/regex/Pattern$CharPropertyNames$20 -java/util/regex/Pattern$CharPropertyNames$21 -java/util/regex/Pattern$Ctype -java/util/regex/Pattern$Curly -java/util/regex/Pattern$6 -java/util/regex/Pattern$Slice -java/util/regex/Pattern$Begin -java/util/regex/Pattern$First -java/util/regex/Pattern$Start -java/util/regex/Pattern$TreeInfo -java/lang/StrictMath -sun/security/provider/NativePRNG -sun/misc/BASE64Decoder -sun/misc/CharacterDecoder -sun/security/util/SignatureFileVerifier -java/awt/event/KeyAdapter -java/lang/NumberFormatException -java/lang/IllegalArgumentException -java/io/FileWriter -java/net/Authenticator -java/net/MalformedURLException -javax/swing/text/Element -javax/swing/text/Document -javax/swing/text/PlainDocument +javax/swing/plaf/synth/SynthConstants +javax/swing/plaf/synth/SynthUI +javax/swing/table/AbstractTableModel +javax/swing/table/DefaultTableCellRenderer +javax/swing/table/DefaultTableColumnModel +javax/swing/table/DefaultTableModel +javax/swing/table/JTableHeader +javax/swing/table/TableCellEditor +javax/swing/table/TableCellRenderer +javax/swing/table/TableColumn +javax/swing/table/TableColumnModel +javax/swing/table/TableModel javax/swing/text/AbstractDocument -javax/swing/text/GapContent -javax/swing/text/AbstractDocument$Content -javax/swing/text/GapVector -javax/swing/text/GapContent$MarkVector -javax/swing/text/GapContent$MarkData -javax/swing/text/StyleContext +javax/swing/text/AbstractDocument$1 +javax/swing/text/AbstractDocument$AbstractElement javax/swing/text/AbstractDocument$AttributeContext -javax/swing/text/StyleConstants -javax/swing/text/StyleConstants$CharacterConstants -javax/swing/text/AttributeSet$CharacterAttribute -javax/swing/text/StyleConstants$FontConstants -javax/swing/text/AttributeSet$FontAttribute -javax/swing/text/StyleConstants$ColorConstants -javax/swing/text/AttributeSet$ColorAttribute -javax/swing/text/StyleConstants$ParagraphConstants -javax/swing/text/AttributeSet$ParagraphAttribute -javax/swing/text/StyleContext$FontKey -javax/swing/text/SimpleAttributeSet -javax/swing/text/MutableAttributeSet -javax/swing/text/AttributeSet -javax/swing/text/SimpleAttributeSet$EmptyAttributeSet -javax/swing/text/StyleContext$NamedStyle -javax/swing/text/Style -javax/swing/text/StyleContext$SmallAttributeSet +javax/swing/text/AbstractDocument$BidiElement javax/swing/text/AbstractDocument$BidiRootElement javax/swing/text/AbstractDocument$BranchElement -javax/swing/text/AbstractDocument$AbstractElement -javax/swing/tree/TreeNode -javax/swing/text/AbstractDocument$1 -javax/swing/text/AbstractDocument$BidiElement -javax/swing/text/AbstractDocument$LeafElement -javax/swing/text/GapContent$StickyPosition -javax/swing/text/Position -javax/swing/text/StyleContext$KeyEnumeration -javax/swing/text/GapContent$InsertUndo -javax/swing/undo/AbstractUndoableEdit -javax/swing/undo/UndoableEdit +javax/swing/text/AbstractDocument$Content javax/swing/text/AbstractDocument$DefaultDocumentEvent -javax/swing/event/DocumentEvent -javax/swing/undo/CompoundEdit -javax/swing/event/DocumentEvent$EventType -javax/swing/text/Segment -java/text/CharacterIterator -javax/swing/text/Utilities -javax/swing/text/SegmentCache -javax/swing/text/SegmentCache$CachedSegment -javax/swing/event/UndoableEditEvent javax/swing/text/AbstractDocument$ElementEdit -javax/swing/event/DocumentEvent$ElementChange -javax/swing/JMenu -javax/swing/MenuElement -javax/swing/JMenuItem -javax/swing/AbstractButton -java/awt/ItemSelectable -javax/swing/event/MenuListener -javax/swing/JCheckBoxMenuItem -javax/swing/Icon -javax/swing/JButton -java/net/URLClassLoader$2 -javax/swing/ImageIcon -javax/swing/ImageIcon$1 -java/awt/MediaTracker -sun/misc/SoftCache$ValueCell -sun/awt/image/URLImageSource -sun/awt/image/InputStreamImageSource -sun/awt/image/ImageFetchable -sun/awt/image/ToolkitImage -sun/awt/image/NativeLibLoader -java/awt/ImageMediaEntry -java/awt/MediaEntry -sun/awt/image/ImageRepresentation -java/awt/image/ImageConsumer -sun/awt/image/ImageWatched -sun/awt/image/ImageWatched$Link -sun/awt/image/ImageWatched$WeakLink -sun/awt/image/ImageConsumerQueue -sun/awt/image/ImageFetcher -sun/awt/image/FetcherInfo -sun/awt/image/ImageFetcher$1 -sun/awt/image/GifImageDecoder -sun/awt/image/ImageDecoder -sun/awt/image/GifFrame -java/awt/image/Raster -java/awt/image/DataBufferByte -java/awt/image/DataBuffer -java/awt/image/PixelInterleavedSampleModel -java/awt/image/ComponentSampleModel -java/awt/image/SampleModel -sun/awt/image/ByteInterleavedRaster -sun/awt/image/ByteComponentRaster -sun/awt/image/SunWritableRaster -java/awt/image/WritableRaster -java/awt/image/BufferedImage -java/awt/image/WritableRenderedImage -java/awt/image/RenderedImage -sun/awt/image/IntegerComponentRaster -sun/awt/image/BytePackedRaster -java/awt/Canvas -sun/font/FontDesignMetrics -sun/font/FontStrikeDesc -sun/font/CompositeStrike -sun/font/FontStrikeDisposer -sun/font/StrikeCache$SoftDisposerRef -sun/font/StrikeCache$DisposableStrike -sun/font/TrueTypeFont$TTDisposerRecord -sun/font/TrueTypeFont$1 -java/io/RandomAccessFile -sun/nio/ch/FileChannelImpl -java/nio/channels/FileChannel -java/nio/channels/ByteChannel -java/nio/channels/ReadableByteChannel -java/nio/channels/Channel -java/nio/channels/WritableByteChannel -java/nio/channels/GatheringByteChannel -java/nio/channels/ScatteringByteChannel -java/nio/channels/spi/AbstractInterruptibleChannel -java/nio/channels/InterruptibleChannel -sun/nio/ch/Util -sun/nio/ch/IOUtil -sun/nio/ch/FileDispatcher -sun/nio/ch/NativeDispatcher -sun/nio/ch/Reflect -java/nio/MappedByteBuffer -sun/nio/ch/Reflect$1 -sun/nio/ch/NativeThreadSet -java/nio/channels/spi/AbstractInterruptibleChannel$1 -sun/nio/ch/Interruptible -sun/nio/ch/NativeThread -sun/nio/ch/IOStatus -sun/nio/ch/DirectBuffer -java/nio/DirectByteBuffer -java/nio/DirectByteBuffer$Deallocator -sun/misc/Cleaner -java/nio/ByteBufferAsIntBufferB -java/nio/IntBuffer -sun/font/TrueTypeFont$DirectoryEntry -java/nio/ByteBufferAsShortBufferB -java/nio/ShortBuffer -sun/nio/cs/UTF_16 -sun/nio/cs/UTF_16$Decoder -sun/font/FileFontStrike -sun/font/TrueTypeGlyphMapper -sun/font/CMap -sun/font/CMap$NullCMapClass -sun/font/CMap$CMapFormat4 -java/nio/ByteBufferAsCharBufferB -sun/font/FontDesignMetrics$KeyReference -sun/awt/image/PNGImageDecoder -sun/awt/image/PNGFilterInputStream -java/util/zip/InflaterInputStream -java/util/zip/Inflater -javax/swing/Popup$HeavyWeightWindow -sun/awt/ModalExclude -javax/swing/JWindow -com/sun/java/swing/plaf/windows/WindowsPopupWindow -java/awt/Cursor$CursorDisposer -java/awt/AWTEvent$1 -sun/reflect/UnsafeBooleanFieldAccessorImpl -java/awt/image/DataBufferInt -java/awt/image/SinglePixelPackedSampleModel -sun/awt/image/IntegerInterleavedRaster -java/util/Date -sun/util/calendar/CalendarSystem -sun/awt/image/OffScreenImage -sun/java2d/SurfaceManagerFactory -sun/util/calendar/Gregorian -sun/util/calendar/BaseCalendar -sun/util/calendar/AbstractCalendar -java/util/TimeZone -java/lang/InheritableThreadLocal -sun/awt/image/BufImgSurfaceData -sun/font/CompositeGlyphMapper -sun/util/calendar/ZoneInfo -sun/util/calendar/ZoneInfoFile -sun/util/calendar/ZoneInfoFile$1 -sun/java2d/loops/FontInfo -java/util/TimeZone$1 -sun/util/calendar/Gregorian$Date -sun/util/calendar/BaseCalendar$Date -sun/util/calendar/CalendarDate -sun/util/calendar/CalendarUtils -java/util/TimeZone$DisplayNames -sun/util/TimeZoneNameUtility -sun/util/resources/LocaleData -sun/util/resources/LocaleData$1 -sun/util/resources/LocaleData$LocaleDataResourceBundleControl -sun/util/LocaleDataMetaInfo -sun/util/resources/TimeZoneNames -sun/util/resources/TimeZoneNamesBundle -sun/util/resources/OpenListResourceBundle -java/util/ResourceBundle$BundleReference -sun/util/resources/TimeZoneNames_en -java/util/spi/TimeZoneNameProvider -java/util/spi/LocaleServiceProvider -sun/util/LocaleServiceProviderPool -sun/util/LocaleServiceProviderPool$1 -java/util/ServiceLoader -java/util/ServiceLoader$LazyIterator -java/util/ServiceLoader$1 -java/util/LinkedHashMap$EntryIterator -java/net/ServerSocket -java/net/InetAddress -java/net/InetAddress$Cache -java/net/InetAddress$Cache$Type -java/net/InetAddressImplFactory -java/net/Inet4AddressImpl -java/net/InetAddressImpl -java/net/InetAddress$1 -sun/net/spi/nameservice/NameService -sun/net/util/IPAddressUtil -java/util/regex/Matcher -java/util/regex/MatchResult -java/util/RandomAccessSubList -java/util/SubList -java/util/SubList$1 -java/util/AbstractList$ListItr -java/net/Inet4Address -java/net/SocksSocketImpl -java/net/SocksConsts -java/net/PlainSocketImpl -java/net/SocketImpl -java/net/SocketOptions -java/net/InetSocketAddress -java/net/SocketAddress -java/util/Random -java/util/concurrent/atomic/AtomicLong -java/lang/InternalError -java/io/StringReader -java/io/FilterReader -java/lang/reflect/Proxy -java/lang/reflect/InvocationHandler -java/lang/NoSuchFieldException -java/lang/InstantiationException -java/lang/ArrayIndexOutOfBoundsException -java/lang/IndexOutOfBoundsException -javax/swing/JDialog -java/io/EOFException -java/util/Vector$1 -javax/swing/filechooser/FileSystemView -javax/swing/filechooser/FileSystemView$1 -javax/swing/event/SwingPropertyChangeSupport -javax/swing/filechooser/WindowsFileSystemView -java/util/zip/ZipFile$1 -java/util/zip/ZipFile$2 -java/util/jar/JarFile$1 -java/util/PropertyResourceBundle -java/util/ResourceBundle$Control$1 -java/util/Hashtable$EntrySet -java/util/Collections$SynchronizedSet -java/lang/IllegalAccessError -java/text/MessageFormat -java/text/Format -java/text/FieldPosition -java/text/MessageFormat$Field -java/text/Format$Field -java/lang/CloneNotSupportedException -sun/reflect/MethodAccessorGenerator -sun/reflect/AccessorGenerator -sun/reflect/ClassFileConstants -java/lang/Void -sun/reflect/ByteVectorFactory -sun/reflect/ByteVectorImpl -sun/reflect/ByteVector -sun/reflect/ClassFileAssembler -sun/reflect/UTF8 -sun/reflect/Label -sun/reflect/Label$PatchInfo -sun/reflect/MethodAccessorGenerator$1 -sun/reflect/ClassDefiner -sun/reflect/ClassDefiner$1 -sun/reflect/BootstrapConstructorAccessorImpl -java/awt/event/ActionListener -javax/swing/Timer -javax/swing/Timer$DoPostEvent -javax/swing/TimerQueue -javax/swing/TimerQueue$1 -javax/swing/ToolTipManager -java/awt/event/MouseAdapter -javax/swing/ToolTipManager$insideTimerAction -javax/swing/ToolTipManager$outsideTimerAction -javax/swing/ToolTipManager$stillInsideTimerAction -sun/swing/UIAction -javax/swing/Action -javax/swing/ToolTipManager$MoveBeforeEnterListener -java/awt/event/MouseMotionAdapter -javax/swing/event/CaretListener -javax/swing/JToolBar -javax/swing/JSplitPane -javax/swing/border/Border -javax/swing/JToggleButton -javax/swing/border/EmptyBorder -javax/swing/border/AbstractBorder -javax/swing/DefaultButtonModel -javax/swing/ButtonModel -javax/swing/AbstractButton$Handler -javax/swing/event/ChangeListener -java/awt/event/ItemListener -javax/swing/plaf/metal/MetalButtonUI -javax/swing/plaf/basic/BasicButtonUI -javax/swing/plaf/ButtonUI -javax/swing/plaf/metal/MetalBorders -javax/swing/plaf/BorderUIResource$CompoundBorderUIResource -javax/swing/border/CompoundBorder -javax/swing/plaf/metal/MetalBorders$ButtonBorder -javax/swing/plaf/basic/BasicBorders$MarginBorder -javax/swing/plaf/basic/BasicButtonListener -java/awt/AWTEventMulticaster -java/awt/event/AdjustmentListener -java/awt/event/TextListener -javax/swing/event/AncestorListener -java/beans/VetoableChangeListener -javax/swing/ButtonGroup -javax/swing/JToggleButton$ToggleButtonModel -javax/swing/plaf/metal/MetalToggleButtonUI -javax/swing/plaf/basic/BasicToggleButtonUI -javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder -java/awt/CardLayout -javax/swing/Box -javax/swing/plaf/metal/MetalBorders$TextFieldBorder -javax/swing/plaf/metal/MetalBorders$Flush3DBorder -javax/swing/BoxLayout -javax/swing/JMenuBar -javax/swing/DefaultSingleSelectionModel -javax/swing/SingleSelectionModel -javax/swing/plaf/basic/BasicMenuBarUI -javax/swing/plaf/MenuBarUI -javax/swing/plaf/basic/DefaultMenuLayout -javax/swing/plaf/metal/MetalBorders$MenuBarBorder -javax/swing/plaf/basic/BasicMenuBarUI$Handler -javax/swing/KeyboardManager -javax/swing/event/MenuEvent -javax/swing/JMenu$MenuChangeListener -javax/swing/JMenuItem$MenuItemFocusListener -javax/swing/plaf/basic/BasicMenuUI -javax/swing/plaf/basic/BasicMenuItemUI -javax/swing/plaf/MenuItemUI -javax/swing/plaf/metal/MetalBorders$MenuItemBorder -javax/swing/plaf/metal/MetalIconFactory -javax/swing/plaf/metal/MetalIconFactory$MenuArrowIcon -javax/swing/plaf/basic/BasicMenuUI$Handler -javax/swing/event/MenuKeyListener -javax/swing/plaf/basic/BasicMenuItemUI$Handler -javax/swing/event/MenuDragMouseListener -javax/swing/event/MouseInputListener -javax/swing/event/ChangeEvent -java/awt/event/ContainerEvent -javax/swing/plaf/metal/MetalIconFactory$MenuItemArrowIcon -javax/swing/JPopupMenu -javax/swing/plaf/basic/BasicPopupMenuUI -javax/swing/plaf/PopupMenuUI -javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper -java/awt/event/AWTEventListenerProxy -java/awt/Toolkit$SelectiveAWTEventListener -java/awt/Toolkit$ToolkitEventMulticaster -javax/swing/plaf/basic/BasicLookAndFeel$1 -javax/swing/plaf/metal/MetalBorders$PopupMenuBorder -javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener -javax/swing/event/PopupMenuListener -javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener -javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber -javax/swing/MenuSelectionManager -javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper -javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper$1 -java/awt/event/FocusAdapter -javax/swing/JMenu$WinListener -java/awt/event/WindowAdapter -javax/swing/JPopupMenu$Separator -javax/swing/JSeparator -javax/swing/plaf/metal/MetalPopupMenuSeparatorUI -javax/swing/plaf/metal/MetalSeparatorUI -javax/swing/plaf/basic/BasicSeparatorUI -javax/swing/plaf/SeparatorUI -javax/swing/JComboBox -javax/swing/event/ListDataListener -javax/swing/event/CaretEvent -javax/swing/text/TabExpander -javax/swing/JScrollBar -java/awt/Adjustable -javax/swing/event/MouseInputAdapter -javax/swing/JScrollBar$ModelListener -javax/swing/DefaultBoundedRangeModel -javax/swing/BoundedRangeModel -javax/swing/plaf/metal/MetalScrollBarUI -javax/swing/plaf/basic/BasicScrollBarUI -javax/swing/plaf/ScrollBarUI -javax/swing/plaf/metal/MetalBumps -javax/swing/plaf/metal/MetalScrollButton -javax/swing/plaf/basic/BasicArrowButton -javax/swing/plaf/basic/BasicScrollBarUI$TrackListener -javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener -javax/swing/plaf/basic/BasicScrollBarUI$ModelListener -javax/swing/plaf/metal/MetalScrollBarUI$ScrollBarListener -javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler -javax/swing/plaf/basic/BasicScrollBarUI$Handler -javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener -javax/swing/CellRendererPane -javax/swing/border/MatteBorder -sun/font/StandardGlyphVector -java/awt/font/GlyphVector -sun/font/StandardGlyphVector$GlyphStrike -sun/font/CoreMetrics -sun/font/FontLineMetrics -java/awt/font/LineMetrics -javax/swing/ComboBoxModel -javax/swing/ListModel -javax/swing/ListCellRenderer -javax/swing/DefaultComboBoxModel -javax/swing/MutableComboBoxModel -javax/swing/AbstractListModel -javax/swing/JComboBox$1 -javax/swing/AncestorNotifier -javax/swing/plaf/metal/MetalComboBoxUI -javax/swing/plaf/basic/BasicComboBoxUI -javax/swing/plaf/ComboBoxUI -javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager -javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager -javax/swing/plaf/basic/BasicComboPopup -javax/swing/plaf/basic/ComboPopup -javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass -javax/swing/border/LineBorder -javax/swing/plaf/basic/BasicComboPopup$1 -javax/swing/JList -javax/swing/DropMode -javax/swing/DefaultListSelectionModel -javax/swing/ListSelectionModel -javax/swing/plaf/basic/BasicListUI -javax/swing/plaf/ListUI -javax/swing/plaf/basic/BasicListUI$ListTransferHandler -javax/swing/TransferHandler -javax/swing/TransferHandler$TransferAction -javax/swing/DefaultListCellRenderer$UIResource -javax/swing/DefaultListCellRenderer -javax/swing/TransferHandler$SwingDropTarget -java/awt/dnd/DropTargetContext -java/awt/datatransfer/SystemFlavorMap -java/awt/datatransfer/FlavorMap -java/awt/datatransfer/FlavorTable -java/awt/datatransfer/SystemFlavorMap$1 -java/net/URI -java/net/URI$Parser -sun/net/ProgressMonitor -sun/net/DefaultProgressMeteringPolicy -sun/net/ProgressMeteringPolicy -sun/nio/cs/ISO_8859_1 -sun/nio/cs/ISO_8859_1$Decoder -java/awt/datatransfer/SystemFlavorMap$2 -java/awt/datatransfer/MimeType -java/io/Externalizable -java/awt/datatransfer/MimeTypeParameterList -sun/awt/datatransfer/DataTransferer -java/awt/datatransfer/DataFlavor -java/awt/datatransfer/DataFlavor$1 -sun/awt/datatransfer/DataTransferer$CharsetComparator -sun/awt/datatransfer/DataTransferer$IndexedComparator -sun/nio/cs/UTF_16BE -sun/nio/cs/US_ASCII -java/util/Collections$UnmodifiableMap -sun/awt/datatransfer/DataTransferer$DataFlavorComparator -java/rmi/Remote -sun/awt/datatransfer/DataTransferer$1 -sun/awt/windows/WDataTransferer -java/lang/Long$LongCache -java/awt/datatransfer/Transferable -sun/awt/datatransfer/ToolkitThreadBlockedHandler -sun/awt/windows/WToolkitThreadBlockedHandler -sun/awt/Mutex -javax/swing/TransferHandler$DropHandler -javax/swing/TransferHandler$TransferSupport -javax/swing/plaf/basic/BasicListUI$Handler -javax/swing/event/ListSelectionListener -javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag -javax/swing/plaf/basic/BasicComboPopup$Handler -javax/swing/JScrollPane -javax/swing/ScrollPaneConstants -javax/swing/ScrollPaneLayout$UIResource -javax/swing/ScrollPaneLayout -javax/swing/JViewport -javax/swing/ViewportLayout -javax/swing/plaf/basic/BasicViewportUI -javax/swing/plaf/ViewportUI -javax/swing/JScrollPane$ScrollBar -javax/swing/JViewport$ViewListener -java/awt/event/ComponentAdapter -javax/swing/plaf/metal/MetalScrollPaneUI -javax/swing/plaf/basic/BasicScrollPaneUI -javax/swing/plaf/ScrollPaneUI -javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder -javax/swing/plaf/basic/BasicScrollPaneUI$Handler -javax/swing/plaf/metal/MetalScrollPaneUI$1 -javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource -javax/swing/plaf/basic/BasicComboBoxRenderer -javax/swing/plaf/metal/MetalComboBoxEditor$UIResource -javax/swing/plaf/metal/MetalComboBoxEditor -javax/swing/plaf/basic/BasicComboBoxEditor -javax/swing/ComboBoxEditor -javax/swing/plaf/basic/BasicComboBoxEditor$BorderlessTextField -javax/swing/JTextField$NotifyAction -javax/swing/text/TextAction -javax/swing/AbstractAction -javax/swing/text/JTextComponent$MutableCaretEvent -javax/swing/plaf/metal/MetalTextFieldUI -javax/swing/plaf/basic/BasicTextFieldUI -javax/swing/plaf/basic/BasicTextUI -javax/swing/text/ViewFactory -javax/swing/plaf/TextUI -javax/swing/plaf/basic/BasicTextUI$BasicCursor +javax/swing/text/AbstractDocument$InsertStringResult +javax/swing/text/AbstractDocument$LeafElement +javax/swing/text/AttributeSet +javax/swing/text/AttributeSet$CharacterAttribute +javax/swing/text/AttributeSet$ColorAttribute +javax/swing/text/AttributeSet$FontAttribute +javax/swing/text/AttributeSet$ParagraphAttribute +javax/swing/text/Caret +javax/swing/text/DefaultCaret +javax/swing/text/DefaultCaret$Handler javax/swing/text/DefaultEditorKit -javax/swing/text/EditorKit -javax/swing/text/DefaultEditorKit$InsertContentAction -javax/swing/text/DefaultEditorKit$DeletePrevCharAction -javax/swing/text/DefaultEditorKit$DeleteNextCharAction -javax/swing/text/DefaultEditorKit$ReadOnlyAction -javax/swing/text/DefaultEditorKit$DeleteWordAction -javax/swing/text/DefaultEditorKit$WritableAction -javax/swing/text/DefaultEditorKit$CutAction -javax/swing/text/DefaultEditorKit$CopyAction -javax/swing/text/DefaultEditorKit$PasteAction -javax/swing/text/DefaultEditorKit$VerticalPageAction -javax/swing/text/DefaultEditorKit$PageAction -javax/swing/text/DefaultEditorKit$InsertBreakAction javax/swing/text/DefaultEditorKit$BeepAction -javax/swing/text/DefaultEditorKit$NextVisualPositionAction -javax/swing/text/DefaultEditorKit$BeginWordAction -javax/swing/text/DefaultEditorKit$EndWordAction -javax/swing/text/DefaultEditorKit$PreviousWordAction -javax/swing/text/DefaultEditorKit$NextWordAction -javax/swing/text/DefaultEditorKit$BeginLineAction -javax/swing/text/DefaultEditorKit$EndLineAction -javax/swing/text/DefaultEditorKit$BeginParagraphAction -javax/swing/text/DefaultEditorKit$EndParagraphAction javax/swing/text/DefaultEditorKit$BeginAction -javax/swing/text/DefaultEditorKit$EndAction +javax/swing/text/DefaultEditorKit$BeginLineAction +javax/swing/text/DefaultEditorKit$BeginParagraphAction +javax/swing/text/DefaultEditorKit$BeginWordAction +javax/swing/text/DefaultEditorKit$CopyAction +javax/swing/text/DefaultEditorKit$CutAction javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction +javax/swing/text/DefaultEditorKit$DeleteNextCharAction +javax/swing/text/DefaultEditorKit$DeletePrevCharAction +javax/swing/text/DefaultEditorKit$DeleteWordAction +javax/swing/text/DefaultEditorKit$DumpModelAction +javax/swing/text/DefaultEditorKit$EndAction +javax/swing/text/DefaultEditorKit$EndLineAction +javax/swing/text/DefaultEditorKit$EndParagraphAction +javax/swing/text/DefaultEditorKit$EndWordAction +javax/swing/text/DefaultEditorKit$InsertBreakAction +javax/swing/text/DefaultEditorKit$InsertContentAction javax/swing/text/DefaultEditorKit$InsertTabAction -javax/swing/text/DefaultEditorKit$SelectWordAction +javax/swing/text/DefaultEditorKit$NextVisualPositionAction +javax/swing/text/DefaultEditorKit$NextWordAction +javax/swing/text/DefaultEditorKit$PageAction +javax/swing/text/DefaultEditorKit$PasteAction +javax/swing/text/DefaultEditorKit$PreviousWordAction +javax/swing/text/DefaultEditorKit$ReadOnlyAction +javax/swing/text/DefaultEditorKit$SelectAllAction javax/swing/text/DefaultEditorKit$SelectLineAction javax/swing/text/DefaultEditorKit$SelectParagraphAction -javax/swing/text/DefaultEditorKit$SelectAllAction -javax/swing/text/DefaultEditorKit$UnselectAction +javax/swing/text/DefaultEditorKit$SelectWordAction javax/swing/text/DefaultEditorKit$ToggleComponentOrientationAction -javax/swing/text/DefaultEditorKit$DumpModelAction -javax/swing/plaf/basic/BasicTextUI$TextTransferHandler -javax/swing/text/Position$Bias -javax/swing/plaf/basic/BasicTextUI$RootView -javax/swing/text/View -javax/swing/plaf/basic/BasicTextUI$UpdateHandler -javax/swing/event/DocumentListener -javax/swing/plaf/basic/BasicTextUI$DragListener -javax/swing/plaf/basic/BasicComboBoxEditor$UIResource -javax/swing/plaf/basic/BasicTextUI$BasicCaret -javax/swing/text/DefaultCaret -javax/swing/text/Caret -javax/swing/text/DefaultCaret$Handler -java/awt/datatransfer/ClipboardOwner -javax/swing/plaf/basic/BasicTextUI$BasicHighlighter +javax/swing/text/DefaultEditorKit$UnselectAction +javax/swing/text/DefaultEditorKit$VerticalPageAction +javax/swing/text/DefaultEditorKit$WritableAction javax/swing/text/DefaultHighlighter -javax/swing/text/LayeredHighlighter +javax/swing/text/DefaultHighlighter$DefaultHighlightPainter +javax/swing/text/DefaultHighlighter$SafeDamager +javax/swing/text/Document +javax/swing/text/EditorKit +javax/swing/text/Element +javax/swing/text/FieldView +javax/swing/text/GapContent +javax/swing/text/GapContent$InsertUndo +javax/swing/text/GapContent$MarkData +javax/swing/text/GapContent$MarkVector +javax/swing/text/GapContent$StickyPosition +javax/swing/text/GapVector javax/swing/text/Highlighter javax/swing/text/Highlighter$Highlight -javax/swing/text/DefaultHighlighter$DefaultHighlightPainter -javax/swing/text/LayeredHighlighter$LayerPainter javax/swing/text/Highlighter$HighlightPainter -javax/swing/text/DefaultHighlighter$SafeDamager -javax/swing/text/FieldView -javax/swing/text/PlainView +javax/swing/text/JTextComponent +javax/swing/text/JTextComponent$1 javax/swing/text/JTextComponent$DefaultKeymap -javax/swing/text/Keymap -javax/swing/text/JTextComponent$KeymapWrapper javax/swing/text/JTextComponent$KeymapActionMap -javax/swing/plaf/basic/BasicTextUI$FocusAction -javax/swing/plaf/basic/BasicTextUI$TextActionWrapper -javax/swing/JTextArea -javax/swing/JEditorPane -javax/swing/JTextField$ScrollRepainter -javax/swing/plaf/metal/MetalComboBoxEditor$1 -javax/swing/plaf/metal/MetalComboBoxEditor$EditorBorder -javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener -javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler -javax/swing/plaf/basic/BasicComboBoxUI$Handler -javax/swing/plaf/metal/MetalComboBoxButton -javax/swing/plaf/metal/MetalComboBoxIcon -javax/swing/plaf/metal/MetalComboBoxButton$1 -javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager -javax/swing/JComboBox$KeySelectionManager -javax/swing/JToolBar$DefaultToolBarLayout -javax/swing/plaf/metal/MetalToolBarUI -javax/swing/plaf/basic/BasicToolBarUI -javax/swing/plaf/ToolBarUI -javax/swing/plaf/metal/MetalBorders$ToolBarBorder -javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue$1 -javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder -javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder -javax/swing/plaf/basic/BasicBorders$RadioButtonBorder -javax/swing/plaf/basic/BasicBorders$ButtonBorder -javax/swing/plaf/basic/BasicBorders$RolloverMarginBorder -javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener -javax/swing/plaf/basic/BasicToolBarUI$DockingListener -javax/swing/plaf/basic/BasicToolBarUI$Handler -javax/swing/border/EtchedBorder -javax/swing/JToolBar$Separator -javax/swing/plaf/basic/BasicToolBarSeparatorUI -sun/font/FontDesignMetrics$MetricsKey -java/applet/Applet -java/awt/Panel -com/sun/awt/AWTUtilities -javax/swing/KeyboardManager$ComponentKeyStrokePair -sun/awt/im/InputMethodContext -java/awt/im/spi/InputMethodContext -sun/awt/im/InputContext -sun/awt/windows/WInputMethod -sun/awt/im/InputMethodAdapter -java/awt/im/spi/InputMethod -javax/swing/SizeRequirements -javax/swing/plaf/basic/BasicGraphicsUtils -java/awt/event/AdjustmentEvent -java/awt/MenuBar -java/awt/Window$1DisposeAction -java/io/StringWriter -java/io/UnsupportedEncodingException -java/lang/StringCoding$StringEncoder -java/net/UnknownHostException -java/net/Socket -java/nio/channels/SocketChannel -java/nio/channels/spi/AbstractSelectableChannel -java/nio/channels/SelectableChannel -java/net/SocketException -java/net/SocketImplFactory -java/net/Proxy -java/net/SocksSocketImpl$5 -java/net/ProxySelector -sun/net/spi/DefaultProxySelector -sun/net/spi/DefaultProxySelector$1 -sun/net/NetProperties -sun/net/NetProperties$1 -sun/net/spi/DefaultProxySelector$NonProxyInfo -java/util/regex/ASCII -java/util/regex/Pattern$GroupCurly -java/net/Inet6Address -java/net/Proxy$Type -java/net/SocketTimeoutException -java/io/InterruptedIOException -javax/swing/UnsupportedLookAndFeelException -java/lang/UnsatisfiedLinkError -javax/swing/Box$Filler -javax/swing/JComponent$2 -sun/net/www/MimeTable -java/net/FileNameMap -sun/net/www/MimeTable$1 -sun/net/www/MimeEntry -java/net/URLConnection$1 -java/text/SimpleDateFormat -java/text/DateFormat -java/text/DateFormat$Field -java/util/Calendar -java/util/GregorianCalendar -sun/util/resources/CalendarData -sun/util/resources/LocaleNamesBundle -sun/util/resources/CalendarData_en -java/text/DateFormatSymbols -java/text/spi/DateFormatSymbolsProvider -sun/text/resources/FormatData -sun/text/resources/FormatData_en -sun/text/resources/FormatData_en_US -java/text/NumberFormat -java/text/spi/NumberFormatProvider -java/text/DecimalFormatSymbols -java/text/spi/DecimalFormatSymbolsProvider -java/util/Currency -java/util/Currency$1 -java/util/spi/CurrencyNameProvider -sun/util/resources/CurrencyNames -sun/util/resources/CurrencyNames_en_US -java/text/DecimalFormat -java/text/DigitList -java/math/RoundingMode -java/text/DontCareFieldPosition -java/text/DontCareFieldPosition$1 -java/text/Format$FieldDelegate -javax/swing/plaf/BorderUIResource -javax/swing/BorderFactory -javax/swing/border/BevelBorder -javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon -javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 -java/util/zip/ZipInputStream -java/io/PushbackInputStream -java/util/zip/CRC32 -java/util/zip/Checksum -java/awt/TrayIcon -java/lang/Thread$State -javax/swing/SwingUtilities$SharedOwnerFrame -javax/swing/JTable -javax/swing/event/TableModelListener -javax/swing/event/TableColumnModelListener -javax/swing/event/CellEditorListener -javax/swing/event/RowSorterListener -java/awt/Component$BltSubRegionBufferStrategy -sun/awt/SubRegionShowable -java/awt/Component$BltBufferStrategy -sun/print/PrinterGraphicsConfig -javax/swing/JRadioButton -java/lang/ClassFormatError -sun/java2d/opengl/OGLGraphicsConfig -java/awt/print/PrinterGraphics -java/awt/PrintGraphics -javax/swing/JTabbedPane -javax/swing/JTabbedPane$ModelListener -javax/swing/plaf/metal/MetalTabbedPaneUI -javax/swing/plaf/basic/BasicTabbedPaneUI -javax/swing/plaf/TabbedPaneUI -javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$Handler -sun/swing/ImageIconUIResource -javax/swing/GrayFilter -java/awt/image/RGBImageFilter -java/awt/image/ImageFilter -java/awt/image/FilteredImageSource -org/w3c/dom/Node -org/xml/sax/SAXException -javax/xml/parsers/ParserConfigurationException -org/xml/sax/EntityResolver -java/security/NoSuchAlgorithmException -java/security/GeneralSecurityException -java/util/zip/GZIPInputStream -java/util/zip/DeflaterOutputStream -org/xml/sax/InputSource -javax/xml/parsers/DocumentBuilderFactory -javax/xml/parsers/FactoryFinder -javax/xml/parsers/SecuritySupport -javax/xml/parsers/SecuritySupport$2 -javax/xml/parsers/SecuritySupport$5 -javax/xml/parsers/SecuritySupport$1 -javax/xml/parsers/SecuritySupport$4 -javax/xml/parsers/DocumentBuilder -org/w3c/dom/Document -org/xml/sax/helpers/DefaultHandler -org/xml/sax/DTDHandler -org/xml/sax/ContentHandler -org/xml/sax/ErrorHandler -org/xml/sax/SAXNotSupportedException -org/xml/sax/Locator -org/xml/sax/SAXNotRecognizedException -org/xml/sax/SAXParseException -org/w3c/dom/NodeList -org/w3c/dom/events/EventTarget -org/w3c/dom/traversal/DocumentTraversal -org/w3c/dom/events/DocumentEvent -org/w3c/dom/ranges/DocumentRange -org/w3c/dom/Entity -org/w3c/dom/Element -org/w3c/dom/CharacterData -org/w3c/dom/CDATASection -org/w3c/dom/Text -org/xml/sax/AttributeList -org/w3c/dom/DOMException -org/w3c/dom/Notation -org/w3c/dom/DocumentType -org/w3c/dom/Attr -org/w3c/dom/EntityReference -org/w3c/dom/ProcessingInstruction -org/w3c/dom/Comment -org/w3c/dom/DocumentFragment -org/w3c/dom/events/Event -org/w3c/dom/events/MutationEvent -org/w3c/dom/traversal/TreeWalker -org/w3c/dom/ranges/Range -org/w3c/dom/traversal/NodeIterator -org/w3c/dom/events/EventException -org/w3c/dom/NamedNodeMap -java/lang/StringIndexOutOfBoundsException -java/awt/GridLayout -javax/swing/plaf/metal/MetalRadioButtonUI -javax/swing/plaf/basic/BasicRadioButtonUI -javax/swing/plaf/basic/BasicBorders -javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon -java/awt/event/ItemEvent -java/awt/CardLayout$Card -javax/swing/JCheckBox -javax/swing/event/ListSelectionEvent -javax/swing/plaf/metal/MetalCheckBoxUI -javax/swing/plaf/metal/MetalIconFactory$CheckBoxIcon -java/lang/ExceptionInInitializerError -com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI -javax/swing/JProgressBar -javax/swing/JProgressBar$ModelListener -javax/swing/plaf/metal/MetalProgressBarUI -javax/swing/plaf/basic/BasicProgressBarUI -javax/swing/plaf/ProgressBarUI -javax/swing/plaf/BorderUIResource$LineBorderUIResource -javax/swing/plaf/basic/BasicProgressBarUI$Handler -javax/swing/tree/TreeModel -javax/swing/table/TableCellRenderer -javax/swing/table/JTableHeader -javax/swing/event/TreeExpansionListener -javax/swing/table/AbstractTableModel -javax/swing/table/TableModel -javax/swing/table/DefaultTableCellRenderer -javax/swing/JTree -javax/swing/tree/TreeSelectionModel -javax/swing/tree/DefaultTreeCellRenderer -javax/swing/tree/TreeCellRenderer -javax/swing/table/TableCellEditor -javax/swing/CellEditor -javax/swing/JToolTip -javax/swing/table/TableColumn -javax/swing/table/DefaultTableColumnModel -javax/swing/table/TableColumnModel -javax/swing/table/DefaultTableModel -javax/swing/event/TableModelEvent -sun/swing/table/DefaultTableCellHeaderRenderer -javax/swing/plaf/basic/BasicTableHeaderUI -javax/swing/plaf/TableHeaderUI -javax/swing/plaf/basic/BasicTableHeaderUI$1 -javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler -javax/swing/DefaultCellEditor -javax/swing/tree/TreeCellEditor -javax/swing/AbstractCellEditor -javax/swing/plaf/basic/BasicTableUI -javax/swing/plaf/TableUI -javax/swing/plaf/basic/BasicTableUI$TableTransferHandler -javax/swing/plaf/basic/BasicTableUI$Handler -javax/swing/tree/DefaultTreeSelectionModel -javax/swing/tree/TreePath -javax/swing/plaf/metal/MetalTreeUI -javax/swing/plaf/basic/BasicTreeUI -javax/swing/plaf/TreeUI -javax/swing/plaf/basic/BasicTreeUI$Actions -javax/swing/plaf/basic/BasicTreeUI$TreeTransferHandler -javax/swing/plaf/metal/MetalTreeUI$LineListener -javax/swing/plaf/basic/BasicTreeUI$Handler -javax/swing/event/TreeModelListener -javax/swing/event/TreeSelectionListener -javax/swing/tree/VariableHeightLayoutCache +javax/swing/text/JTextComponent$KeymapWrapper +javax/swing/text/JTextComponent$MutableCaretEvent +javax/swing/text/Keymap +javax/swing/text/LayeredHighlighter +javax/swing/text/LayeredHighlighter$LayerPainter +javax/swing/text/MutableAttributeSet +javax/swing/text/PlainDocument +javax/swing/text/PlainView +javax/swing/text/Position +javax/swing/text/Position$Bias +javax/swing/text/Segment +javax/swing/text/SegmentCache +javax/swing/text/SegmentCache$CachedSegment +javax/swing/text/SimpleAttributeSet +javax/swing/text/SimpleAttributeSet$EmptyAttributeSet +javax/swing/text/Style +javax/swing/text/StyleConstants +javax/swing/text/StyleConstants$CharacterConstants +javax/swing/text/StyleConstants$ColorConstants +javax/swing/text/StyleConstants$FontConstants +javax/swing/text/StyleConstants$ParagraphConstants +javax/swing/text/StyleContext +javax/swing/text/StyleContext$FontKey +javax/swing/text/StyleContext$KeyEnumeration +javax/swing/text/StyleContext$NamedStyle +javax/swing/text/StyleContext$SmallAttributeSet +javax/swing/text/TabExpander +javax/swing/text/TextAction +javax/swing/text/Utilities +javax/swing/text/View +javax/swing/text/ViewFactory javax/swing/tree/AbstractLayoutCache -javax/swing/tree/RowMapper -javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler javax/swing/tree/AbstractLayoutCache$NodeDimensions -javax/swing/JTree$TreeModelHandler -javax/swing/tree/VariableHeightLayoutCache$TreeStateNode javax/swing/tree/DefaultMutableTreeNode -javax/swing/tree/MutableTreeNode javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration -javax/swing/event/TableColumnModelEvent -java/text/ParseException -java/text/NumberFormat$Field -javax/swing/event/UndoableEditListener -javax/swing/filechooser/FileFilter -javax/swing/tree/DefaultTreeModel javax/swing/tree/DefaultTreeCellEditor javax/swing/tree/DefaultTreeCellEditor$1 javax/swing/tree/DefaultTreeCellEditor$DefaultTextField -javax/swing/DefaultCellEditor$1 -javax/swing/DefaultCellEditor$EditorDelegate javax/swing/tree/DefaultTreeCellEditor$EditorContainer -javax/swing/JTree$TreeSelectionRedirector -javax/swing/event/TreeModelEvent -javax/swing/plaf/metal/MetalSplitPaneUI -javax/swing/plaf/basic/BasicSplitPaneUI -javax/swing/plaf/SplitPaneUI -javax/swing/plaf/basic/BasicSplitPaneDivider -javax/swing/plaf/basic/BasicBorders$SplitPaneBorder -javax/swing/plaf/metal/MetalSplitPaneDivider -javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout -javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler -javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder -javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager -javax/swing/plaf/basic/BasicSplitPaneUI$1 -javax/swing/plaf/basic/BasicSplitPaneUI$Handler -javax/swing/plaf/metal/MetalSplitPaneDivider$1 -javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchActionHandler -javax/swing/plaf/metal/MetalSplitPaneDivider$2 -javax/swing/border/TitledBorder -javax/swing/plaf/basic/BasicTextAreaUI -java/util/Collections$UnmodifiableCollection$1 -java/net/NoRouteToHostException -java/net/BindException +javax/swing/tree/DefaultTreeCellRenderer +javax/swing/tree/DefaultTreeModel +javax/swing/tree/DefaultTreeSelectionModel +javax/swing/tree/MutableTreeNode javax/swing/tree/PathPlaceHolder -javax/swing/event/TreeSelectionEvent -javax/swing/JList$3 -javax/swing/JList$ListSelectionHandler -javax/swing/JSlider -javax/swing/JSlider$ModelListener -javax/swing/plaf/metal/MetalSliderUI -javax/swing/plaf/basic/BasicSliderUI -javax/swing/plaf/SliderUI -javax/swing/plaf/basic/BasicSliderUI$Actions -javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon -javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon -javax/swing/plaf/basic/BasicSliderUI$TrackListener -javax/swing/plaf/basic/BasicSliderUI$Handler -javax/swing/plaf/basic/BasicSliderUI$ScrollListener -javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener -javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler -sun/java2d/HeadlessGraphicsEnvironment -java/util/Hashtable$KeySet -javax/swing/DefaultListModel -javax/swing/event/ListDataEvent -javax/sound/sampled/DataLine -javax/sound/sampled/Line -javax/sound/sampled/Line$Info -javax/sound/sampled/DataLine$Info -javax/sound/sampled/Control$Type -javax/sound/sampled/FloatControl$Type -javax/sound/sampled/LineUnavailableException -javax/sound/sampled/UnsupportedAudioFileException -javax/swing/JRadioButtonMenuItem -javax/swing/JMenuItem$AccessibleJMenuItem -javax/swing/AbstractButton$AccessibleAbstractButton -javax/accessibility/AccessibleAction -javax/accessibility/AccessibleValue -javax/accessibility/AccessibleText -javax/accessibility/AccessibleExtendedComponent -javax/accessibility/AccessibleComponent -javax/swing/JComponent$AccessibleJComponent -java/awt/Container$AccessibleAWTContainer -java/awt/Component$AccessibleAWTComponent -javax/accessibility/AccessibleRelationSet -javax/accessibility/AccessibleState -javax/accessibility/AccessibleBundle -javax/swing/plaf/basic/BasicCheckBoxMenuItemUI -javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon -javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem -javax/swing/plaf/basic/BasicRadioButtonMenuItemUI -javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon +javax/swing/tree/RowMapper +javax/swing/tree/TreeCellEditor +javax/swing/tree/TreeCellRenderer +javax/swing/tree/TreeModel +javax/swing/tree/TreeNode +javax/swing/tree/TreePath +javax/swing/tree/TreeSelectionModel +javax/swing/tree/VariableHeightLayoutCache +javax/swing/tree/VariableHeightLayoutCache$TreeStateNode +javax/swing/undo/AbstractUndoableEdit +javax/swing/undo/CompoundEdit +javax/swing/undo/UndoableEdit +javax/xml/parsers/DocumentBuilder +javax/xml/parsers/DocumentBuilderFactory +javax/xml/parsers/FactoryFinder +javax/xml/parsers/FactoryFinder$1 +javax/xml/parsers/ParserConfigurationException +javax/xml/parsers/SecuritySupport +javax/xml/parsers/SecuritySupport$2 +javax/xml/parsers/SecuritySupport$5 +org/w3c/dom/Attr +org/w3c/dom/CDATASection +org/w3c/dom/CharacterData +org/w3c/dom/Comment +org/w3c/dom/DOMException +org/w3c/dom/Document +org/w3c/dom/DocumentFragment +org/w3c/dom/DocumentType +org/w3c/dom/Element +org/w3c/dom/Entity +org/w3c/dom/EntityReference +org/w3c/dom/NamedNodeMap +org/w3c/dom/Node +org/w3c/dom/NodeList +org/w3c/dom/Notation +org/w3c/dom/ProcessingInstruction +org/w3c/dom/Text +org/w3c/dom/events/DocumentEvent +org/w3c/dom/events/Event +org/w3c/dom/events/EventException +org/w3c/dom/events/EventTarget +org/w3c/dom/events/MutationEvent +org/w3c/dom/ranges/DocumentRange +org/w3c/dom/ranges/Range +org/w3c/dom/traversal/DocumentTraversal +org/w3c/dom/traversal/NodeIterator +org/w3c/dom/traversal/TreeWalker +org/xml/sax/AttributeList +org/xml/sax/ContentHandler +org/xml/sax/DTDHandler +org/xml/sax/EntityResolver +org/xml/sax/ErrorHandler +org/xml/sax/InputSource +org/xml/sax/Locator +org/xml/sax/SAXException +org/xml/sax/SAXNotRecognizedException +org/xml/sax/SAXNotSupportedException +org/xml/sax/SAXParseException +org/xml/sax/helpers/DefaultHandler +sun/awt/AWTAccessor +sun/awt/AWTAccessor$AWTEventAccessor +sun/awt/AWTAccessor$ClientPropertyKeyAccessor +sun/awt/AWTAccessor$ComponentAccessor +sun/awt/AWTAccessor$ContainerAccessor +sun/awt/AWTAccessor$CursorAccessor +sun/awt/AWTAccessor$DefaultKeyboardFocusManagerAccessor +sun/awt/AWTAccessor$EventQueueAccessor +sun/awt/AWTAccessor$FrameAccessor +sun/awt/AWTAccessor$InputEventAccessor +sun/awt/AWTAccessor$InvocationEventAccessor +sun/awt/AWTAccessor$KeyEventAccessor +sun/awt/AWTAccessor$KeyboardFocusManagerAccessor +sun/awt/AWTAccessor$SequencedEventAccessor +sun/awt/AWTAccessor$ToolkitAccessor +sun/awt/AWTAccessor$WindowAccessor +sun/awt/AWTAutoShutdown +sun/awt/AWTAutoShutdown$1 +sun/awt/AppContext +sun/awt/AppContext$1 +sun/awt/AppContext$2 +sun/awt/AppContext$3 +sun/awt/AppContext$6 +sun/awt/AppContext$GetAppContextLock +sun/awt/AppContext$PostShutdownEventRunnable +sun/awt/AppContext$State +sun/awt/CausedFocusEvent +sun/awt/CausedFocusEvent$Cause +sun/awt/ComponentFactory +sun/awt/ConstrainableGraphics +sun/awt/DisplayChangedListener +sun/awt/EmbeddedFrame +sun/awt/EventQueueDelegate +sun/awt/EventQueueItem +sun/awt/ExtendedKeyCodes +sun/awt/FontConfiguration +sun/awt/FontConfiguration$2 +sun/awt/FontDescriptor +sun/awt/GlobalCursorManager +sun/awt/GlobalCursorManager$NativeUpdater +sun/awt/HeadlessToolkit +sun/awt/InputMethodSupport +sun/awt/KeyboardFocusManagerPeerImpl +sun/awt/KeyboardFocusManagerPeerProvider +sun/awt/LightweightFrame +sun/awt/ModalExclude +sun/awt/ModalityListener +sun/awt/MostRecentKeyValue +sun/awt/NativeLibLoader +sun/awt/NativeLibLoader$1 +sun/awt/NullComponentPeer +sun/awt/OSInfo +sun/awt/OSInfo$1 +sun/awt/OSInfo$OSType +sun/awt/OSInfo$WindowsVersion +sun/awt/PaintEventDispatcher +sun/awt/PeerEvent +sun/awt/PlatformFont +sun/awt/PostEventQueue +sun/awt/RepaintArea +sun/awt/RequestFocusController +sun/awt/SubRegionShowable +sun/awt/SunDisplayChanger +sun/awt/SunGraphicsCallback +sun/awt/SunHints +sun/awt/SunHints$Key +sun/awt/SunHints$LCDContrastKey +sun/awt/SunHints$Value +sun/awt/SunToolkit +sun/awt/SunToolkit$ModalityListenerList +sun/awt/Symbol +sun/awt/Symbol$Encoder +sun/awt/TimedWindowEvent +sun/awt/Win32FontManager +sun/awt/Win32FontManager$1 +sun/awt/Win32FontManager$2 +sun/awt/Win32GraphicsConfig +sun/awt/Win32GraphicsDevice +sun/awt/Win32GraphicsEnvironment +sun/awt/WindowClosingListener +sun/awt/WindowClosingSupport +sun/awt/dnd/SunDragSourceContextPeer +sun/awt/dnd/SunDropTargetEvent +sun/awt/event/IgnorePaintEvent +sun/awt/geom/PathConsumer2D +sun/awt/im/ExecutableInputMethodManager +sun/awt/im/ExecutableInputMethodManager$3 +sun/awt/im/InputContext +sun/awt/im/InputMethodAdapter +sun/awt/im/InputMethodContext +sun/awt/im/InputMethodLocator +sun/awt/im/InputMethodManager +sun/awt/im/InputMethodWindow +sun/awt/image/BufImgSurfaceData +sun/awt/image/BufImgSurfaceData$ICMColorData +sun/awt/image/BufImgSurfaceManager +sun/awt/image/BufImgVolatileSurfaceManager +sun/awt/image/BufferedImageDevice +sun/awt/image/BufferedImageGraphicsConfig +sun/awt/image/ByteComponentRaster +sun/awt/image/ByteInterleavedRaster +sun/awt/image/BytePackedRaster +sun/awt/image/FetcherInfo +sun/awt/image/GifFrame +sun/awt/image/GifImageDecoder +sun/awt/image/ImageConsumerQueue +sun/awt/image/ImageDecoder sun/awt/image/ImageDecoder$1 -javax/swing/JTabbedPane$Page -java/net/DatagramSocket -java/net/MulticastSocket -java/net/DatagramPacket +sun/awt/image/ImageFetchable +sun/awt/image/ImageFetcher +sun/awt/image/ImageFetcher$1 +sun/awt/image/ImageRepresentation +sun/awt/image/ImageWatched +sun/awt/image/ImageWatched$Link +sun/awt/image/ImageWatched$WeakLink +sun/awt/image/InputStreamImageSource +sun/awt/image/IntegerComponentRaster +sun/awt/image/IntegerInterleavedRaster +sun/awt/image/NativeLibLoader +sun/awt/image/NativeLibLoader$1 +sun/awt/image/OffScreenImage +sun/awt/image/PNGFilterInputStream +sun/awt/image/PNGImageDecoder +sun/awt/image/PixelConverter +sun/awt/image/PixelConverter$Argb +sun/awt/image/PixelConverter$ArgbBm +sun/awt/image/PixelConverter$ArgbPre +sun/awt/image/PixelConverter$Bgrx +sun/awt/image/PixelConverter$ByteGray +sun/awt/image/PixelConverter$Rgba +sun/awt/image/PixelConverter$RgbaPre +sun/awt/image/PixelConverter$Rgbx +sun/awt/image/PixelConverter$Ushort4444Argb +sun/awt/image/PixelConverter$Ushort555Rgb +sun/awt/image/PixelConverter$Ushort555Rgbx +sun/awt/image/PixelConverter$Ushort565Rgb +sun/awt/image/PixelConverter$UshortGray +sun/awt/image/PixelConverter$Xbgr +sun/awt/image/PixelConverter$Xrgb +sun/awt/image/SunVolatileImage +sun/awt/image/SunWritableRaster +sun/awt/image/SunWritableRaster$DataStealer +sun/awt/image/SurfaceManager +sun/awt/image/SurfaceManager$FlushableCacheData +sun/awt/image/SurfaceManager$ImageAccessor +sun/awt/image/SurfaceManager$ProxiedGraphicsConfig +sun/awt/image/ToolkitImage +sun/awt/image/URLImageSource +sun/awt/image/VolatileSurfaceManager +sun/awt/resources/awt +sun/awt/util/IdentityArrayList +sun/awt/windows/ThemeReader +sun/awt/windows/WCanvasPeer +sun/awt/windows/WColor +sun/awt/windows/WComponentPeer +sun/awt/windows/WComponentPeer$2 +sun/awt/windows/WDesktopProperties +sun/awt/windows/WDesktopProperties$WinPlaySound +sun/awt/windows/WFontConfiguration +sun/awt/windows/WFontPeer +sun/awt/windows/WFramePeer +sun/awt/windows/WGlobalCursorManager +sun/awt/windows/WInputMethod +sun/awt/windows/WInputMethodDescriptor +sun/awt/windows/WKeyboardFocusManagerPeer +sun/awt/windows/WLabelPeer +sun/awt/windows/WObjectPeer +sun/awt/windows/WPanelPeer +sun/awt/windows/WToolkit +sun/awt/windows/WToolkit$1 +sun/awt/windows/WToolkit$2 +sun/awt/windows/WToolkit$3 +sun/awt/windows/WToolkit$3$1 +sun/awt/windows/WToolkit$ToolkitDisposer +sun/awt/windows/WWindowPeer +sun/awt/windows/WWindowPeer$ActiveWindowListener +sun/awt/windows/WWindowPeer$GuiDisposedListener +sun/awt/windows/WingDings +sun/awt/windows/WingDings$Encoder +sun/dc/DuctusRenderingEngine +sun/dc/path/PathConsumer +sun/dc/pr/PathDasher +sun/dc/pr/PathDasher$1 +sun/dc/pr/PathStroker +sun/dc/pr/PathStroker$1 +sun/font/AttributeValues +sun/font/CMap +sun/font/CMap$CMapFormat4 +sun/font/CMap$NullCMapClass +sun/font/CharToGlyphMapper +sun/font/CompositeFont +sun/font/CompositeFontDescriptor +sun/font/CompositeGlyphMapper +sun/font/CompositeStrike +sun/font/CoreMetrics +sun/font/EAttribute +sun/font/FileFont +sun/font/FileFontStrike +sun/font/Font2D +sun/font/Font2DHandle +sun/font/FontAccess +sun/font/FontDesignMetrics +sun/font/FontDesignMetrics$KeyReference +sun/font/FontDesignMetrics$MetricsKey +sun/font/FontFamily +sun/font/FontLineMetrics +sun/font/FontManager +sun/font/FontManagerFactory +sun/font/FontManagerFactory$1 +sun/font/FontManagerForSGE +sun/font/FontManagerNativeLibrary +sun/font/FontManagerNativeLibrary$1 +sun/font/FontScaler +sun/font/FontStrike +sun/font/FontStrikeDesc +sun/font/FontStrikeDisposer +sun/font/FontUtilities +sun/font/FontUtilities$1 +sun/font/GlyphList +sun/font/PhysicalFont +sun/font/PhysicalStrike +sun/font/StandardGlyphVector +sun/font/StandardGlyphVector$GlyphStrike +sun/font/StrikeCache +sun/font/StrikeCache$1 +sun/font/StrikeCache$DisposableStrike +sun/font/StrikeCache$SoftDisposerRef +sun/font/StrikeMetrics +sun/font/SunFontManager +sun/font/SunFontManager$1 +sun/font/SunFontManager$11 +sun/font/SunFontManager$12 +sun/font/SunFontManager$2 +sun/font/SunFontManager$3 +sun/font/SunFontManager$FamilyDescription +sun/font/SunFontManager$FontRegistrationInfo +sun/font/SunFontManager$T1Filter +sun/font/SunFontManager$TTFilter +sun/font/T2KFontScaler +sun/font/T2KFontScaler$1 +sun/font/TrueTypeFont +sun/font/TrueTypeFont$1 +sun/font/TrueTypeFont$DirectoryEntry +sun/font/TrueTypeFont$TTDisposerRecord +sun/font/TrueTypeGlyphMapper +sun/font/Type1Font +sun/io/Win32ErrorMode +sun/java2d/DefaultDisposerRecord +sun/java2d/DestSurfaceProvider +sun/java2d/Disposer +sun/java2d/Disposer$1 +sun/java2d/Disposer$2 +sun/java2d/Disposer$PollDisposable +sun/java2d/DisposerRecord +sun/java2d/DisposerTarget +sun/java2d/FontSupport +sun/java2d/InvalidPipeException +sun/java2d/NullSurfaceData +sun/java2d/ScreenUpdateManager +sun/java2d/StateTrackable +sun/java2d/StateTrackable$State +sun/java2d/StateTrackableDelegate +sun/java2d/StateTrackableDelegate$2 +sun/java2d/StateTracker +sun/java2d/StateTracker$1 +sun/java2d/StateTracker$2 +sun/java2d/SunGraphics2D +sun/java2d/SunGraphicsEnvironment +sun/java2d/SunGraphicsEnvironment$1 +sun/java2d/Surface +sun/java2d/SurfaceData +sun/java2d/SurfaceData$PixelToPgramLoopConverter +sun/java2d/SurfaceData$PixelToShapeLoopConverter +sun/java2d/SurfaceDataProxy +sun/java2d/SurfaceDataProxy$1 +sun/java2d/SurfaceManagerFactory +sun/java2d/WindowsSurfaceManagerFactory +sun/java2d/cmm/ProfileActivator +sun/java2d/cmm/ProfileDeferralInfo +sun/java2d/cmm/ProfileDeferralMgr +sun/java2d/d3d/D3DContext$D3DContextCaps +sun/java2d/d3d/D3DGraphicsConfig +sun/java2d/d3d/D3DGraphicsDevice +sun/java2d/d3d/D3DGraphicsDevice$1 +sun/java2d/d3d/D3DGraphicsDevice$1Result +sun/java2d/d3d/D3DRenderQueue +sun/java2d/d3d/D3DRenderQueue$1 +sun/java2d/d3d/D3DScreenUpdateManager +sun/java2d/d3d/D3DScreenUpdateManager$1 +sun/java2d/d3d/D3DScreenUpdateManager$1$1 +sun/java2d/d3d/D3DSurfaceData +sun/java2d/d3d/D3DSurfaceData$D3DWindowSurfaceData +sun/java2d/loops/Blit +sun/java2d/loops/BlitBg +sun/java2d/loops/CompositeType +sun/java2d/loops/CustomComponent +sun/java2d/loops/DrawGlyphList +sun/java2d/loops/DrawGlyphListAA +sun/java2d/loops/DrawGlyphListLCD +sun/java2d/loops/DrawLine +sun/java2d/loops/DrawParallelogram +sun/java2d/loops/DrawPath +sun/java2d/loops/DrawPolygons +sun/java2d/loops/DrawRect +sun/java2d/loops/FillParallelogram +sun/java2d/loops/FillPath +sun/java2d/loops/FillRect +sun/java2d/loops/FillSpans +sun/java2d/loops/FontInfo +sun/java2d/loops/GeneralRenderer +sun/java2d/loops/GraphicsPrimitive +sun/java2d/loops/GraphicsPrimitiveMgr +sun/java2d/loops/GraphicsPrimitiveMgr$1 +sun/java2d/loops/GraphicsPrimitiveMgr$2 +sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec +sun/java2d/loops/GraphicsPrimitiveProxy +sun/java2d/loops/MaskBlit +sun/java2d/loops/MaskFill +sun/java2d/loops/RenderCache +sun/java2d/loops/RenderCache$Entry +sun/java2d/loops/RenderLoops +sun/java2d/loops/ScaledBlit +sun/java2d/loops/SurfaceType +sun/java2d/loops/TransformHelper +sun/java2d/loops/XORComposite +sun/java2d/opengl/OGLGraphicsConfig +sun/java2d/opengl/WGLGraphicsConfig +sun/java2d/pipe/AAShapePipe +sun/java2d/pipe/AATextRenderer +sun/java2d/pipe/AlphaColorPipe +sun/java2d/pipe/AlphaPaintPipe +sun/java2d/pipe/CompositePipe +sun/java2d/pipe/DrawImage +sun/java2d/pipe/DrawImagePipe +sun/java2d/pipe/GeneralCompositePipe +sun/java2d/pipe/GlyphListLoopPipe +sun/java2d/pipe/GlyphListPipe +sun/java2d/pipe/LCDTextRenderer +sun/java2d/pipe/LoopBasedPipe +sun/java2d/pipe/LoopPipe +sun/java2d/pipe/NullPipe +sun/java2d/pipe/OutlineTextRenderer +sun/java2d/pipe/ParallelogramPipe +sun/java2d/pipe/PixelDrawPipe +sun/java2d/pipe/PixelFillPipe +sun/java2d/pipe/PixelToParallelogramConverter +sun/java2d/pipe/PixelToShapeConverter +sun/java2d/pipe/Region +sun/java2d/pipe/Region$ImmutableRegion +sun/java2d/pipe/RegionIterator +sun/java2d/pipe/RenderBuffer +sun/java2d/pipe/RenderQueue +sun/java2d/pipe/RenderingEngine +sun/java2d/pipe/RenderingEngine$1 +sun/java2d/pipe/ShapeDrawPipe +sun/java2d/pipe/ShapeSpanIterator +sun/java2d/pipe/SolidTextRenderer +sun/java2d/pipe/SpanClipRenderer +sun/java2d/pipe/SpanIterator +sun/java2d/pipe/SpanShapeRenderer +sun/java2d/pipe/SpanShapeRenderer$Composite +sun/java2d/pipe/TextPipe +sun/java2d/pipe/TextRenderer +sun/java2d/pipe/ValidatePipe +sun/java2d/pipe/hw/AccelGraphicsConfig +sun/java2d/pipe/hw/AccelSurface +sun/java2d/pipe/hw/BufferedContextProvider +sun/java2d/pipe/hw/ContextCapabilities +sun/java2d/windows/GDIBlitLoops +sun/java2d/windows/GDIRenderer +sun/java2d/windows/GDIWindowSurfaceData +sun/java2d/windows/WindowsFlags +sun/java2d/windows/WindowsFlags$1 +sun/launcher/LauncherHelper +sun/launcher/LauncherHelper$FXHelper +sun/misc/ASCIICaseInsensitiveComparator +sun/misc/Cleaner +sun/misc/CompoundEnumeration +sun/misc/ExtensionDependency +sun/misc/FDBigInteger +sun/misc/FileURLMapper +sun/misc/FloatingDecimal +sun/misc/FloatingDecimal$1 +sun/misc/FloatingDecimal$ASCIIToBinaryBuffer +sun/misc/FloatingDecimal$ASCIIToBinaryConverter +sun/misc/FloatingDecimal$BinaryToASCIIBuffer +sun/misc/FloatingDecimal$BinaryToASCIIConverter +sun/misc/FloatingDecimal$ExceptionalBinaryToASCIIBuffer +sun/misc/FloatingDecimal$PreparedASCIIToBinaryBuffer +sun/misc/IOUtils +sun/misc/JarIndex +sun/misc/JavaAWTAccess +sun/misc/JavaIOFileDescriptorAccess +sun/misc/JavaLangAccess +sun/misc/JavaNetAccess +sun/misc/JavaNioAccess +sun/misc/JavaSecurityAccess +sun/misc/JavaSecurityProtectionDomainAccess +sun/misc/JavaUtilJarAccess +sun/misc/JavaUtilZipFileAccess +sun/misc/Launcher +sun/misc/Launcher$AppClassLoader +sun/misc/Launcher$AppClassLoader$1 +sun/misc/Launcher$BootClassPathHolder +sun/misc/Launcher$BootClassPathHolder$1 +sun/misc/Launcher$ExtClassLoader +sun/misc/Launcher$ExtClassLoader$1 +sun/misc/Launcher$Factory +sun/misc/MetaIndex +sun/misc/NativeSignalHandler +sun/misc/OSEnvironment +sun/misc/Perf +sun/misc/Perf$GetPerfAction +sun/misc/PerfCounter +sun/misc/PerfCounter$CoreCounters +sun/misc/PerfCounter$WindowsClientCounters +sun/misc/PerformanceLogger +sun/misc/PerformanceLogger$TimeData +sun/misc/PostVMInitHook +sun/misc/Resource +sun/misc/SharedSecrets +sun/misc/Signal +sun/misc/SignalHandler +sun/misc/SoftCache +sun/misc/SoftCache$ValueCell +sun/misc/URLClassPath +sun/misc/URLClassPath$1 +sun/misc/URLClassPath$2 +sun/misc/URLClassPath$3 +sun/misc/URLClassPath$FileLoader +sun/misc/URLClassPath$JarLoader +sun/misc/URLClassPath$JarLoader$1 +sun/misc/URLClassPath$JarLoader$2 +sun/misc/URLClassPath$Loader +sun/misc/Unsafe +sun/misc/VM +sun/misc/Version +sun/net/DefaultProgressMeteringPolicy +sun/net/InetAddressCachePolicy sun/net/InetAddressCachePolicy$1 -sun/security/action/GetIntegerAction sun/net/InetAddressCachePolicy$2 -java/net/InetAddress$CacheEntry -java/net/DatagramSocketImpl -java/text/Collator -java/text/spi/CollatorProvider -sun/text/resources/CollationData -sun/text/resources/CollationData_en -sun/util/EmptyListResourceBundle -java/text/RuleBasedCollator -java/text/CollationRules -java/text/RBCollationTables -java/text/RBTableBuilder -java/text/RBCollationTables$BuildAPI -sun/text/IntHashtable -sun/text/UCompactIntArray -sun/text/normalizer/NormalizerImpl -sun/text/normalizer/ICUData -sun/text/normalizer/NormalizerDataReader -sun/text/normalizer/ICUBinary$Authenticate -sun/text/normalizer/ICUBinary -sun/text/normalizer/NormalizerImpl$FCDTrieImpl -sun/text/normalizer/Trie$DataManipulate -sun/text/normalizer/NormalizerImpl$NormTrieImpl -sun/text/normalizer/NormalizerImpl$AuxTrieImpl -sun/text/normalizer/IntTrie -sun/text/normalizer/Trie -sun/text/normalizer/CharTrie -sun/text/normalizer/CharTrie$FriendAgent -sun/text/normalizer/UnicodeSet -sun/text/normalizer/UnicodeMatcher -sun/text/normalizer/NormalizerImpl$DecomposeArgs -java/text/MergeCollation -java/text/PatternEntry$Parser -java/text/PatternEntry -java/text/EntryPair -sun/text/ComposedCharIter -sun/text/normalizer/UTF16 +sun/net/NetHooks +sun/net/NetProperties +sun/net/NetProperties$1 +sun/net/ProgressMeteringPolicy +sun/net/ProgressMonitor +sun/net/ResourceManager +sun/net/spi/DefaultProxySelector +sun/net/spi/DefaultProxySelector$1 +sun/net/spi/DefaultProxySelector$3 +sun/net/spi/DefaultProxySelector$NonProxyInfo +sun/net/spi/nameservice/NameService +sun/net/util/IPAddressUtil +sun/net/util/URLUtil +sun/net/www/MessageHeader +sun/net/www/MimeEntry +sun/net/www/MimeTable +sun/net/www/MimeTable$1 +sun/net/www/MimeTable$DefaultInstanceHolder +sun/net/www/MimeTable$DefaultInstanceHolder$1 +sun/net/www/ParseUtil +sun/net/www/URLConnection +sun/net/www/protocol/file/FileURLConnection +sun/net/www/protocol/file/Handler sun/net/www/protocol/http/Handler -java/security/SignatureException -java/security/InvalidKeyException -java/security/KeyException -java/security/Signature -java/security/SignatureSpi -java/io/ObjectInputStream$BlockDataInputStream -java/io/ObjectInputStream$PeekInputStream -java/io/ObjectInputStream$HandleTable -java/io/ObjectInputStream$HandleTable$HandleList -java/io/ObjectInputStream$ValidationList -sun/security/provider/DSAPublicKey -java/security/interfaces/DSAPublicKey -java/security/interfaces/DSAKey -java/security/PublicKey -java/security/Key -sun/security/x509/X509Key -java/io/ObjectStreamClass$Caches -java/io/ObjectStreamClass$WeakClassKey -java/io/ObjectStreamClass$EntryFuture -java/io/ObjectStreamClass$2 -sun/security/x509/AlgorithmId -sun/security/util/DerEncoder -sun/security/util/BitArray +sun/net/www/protocol/jar/Handler +sun/net/www/protocol/jar/JarFileFactory +sun/net/www/protocol/jar/JarURLConnection +sun/net/www/protocol/jar/JarURLConnection$JarURLInputStream +sun/net/www/protocol/jar/URLJarFile +sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController +sun/net/www/protocol/jar/URLJarFile$URLJarFileEntry +sun/nio/ByteBuffered +sun/nio/ch/DirectBuffer +sun/nio/ch/FileChannelImpl +sun/nio/ch/FileDispatcher +sun/nio/ch/FileDispatcherImpl +sun/nio/ch/IOStatus +sun/nio/ch/IOUtil +sun/nio/ch/IOUtil$1 +sun/nio/ch/Interruptible +sun/nio/ch/NativeDispatcher +sun/nio/ch/NativeThread +sun/nio/ch/NativeThreadSet +sun/nio/ch/Util +sun/nio/ch/Util$1 +sun/nio/ch/Util$BufferCache +sun/nio/cs/ArrayDecoder +sun/nio/cs/ArrayEncoder +sun/nio/cs/FastCharsetProvider +sun/nio/cs/HistoricallyNamedCharset +sun/nio/cs/ISO_8859_1 +sun/nio/cs/MS1252 +sun/nio/cs/SingleByte +sun/nio/cs/SingleByte$Decoder +sun/nio/cs/SingleByte$Encoder +sun/nio/cs/StandardCharsets +sun/nio/cs/StandardCharsets$Aliases +sun/nio/cs/StandardCharsets$Cache +sun/nio/cs/StandardCharsets$Classes +sun/nio/cs/StreamDecoder +sun/nio/cs/StreamEncoder +sun/nio/cs/Surrogate +sun/nio/cs/Surrogate$Parser +sun/nio/cs/US_ASCII +sun/nio/cs/UTF_16 +sun/nio/cs/UTF_16$Decoder +sun/nio/cs/UTF_16BE +sun/nio/cs/UTF_16LE +sun/nio/cs/UTF_16LE$Decoder +sun/nio/cs/UTF_16LE$Encoder +sun/nio/cs/UTF_8 +sun/nio/cs/UTF_8$Decoder +sun/nio/cs/UTF_8$Encoder +sun/nio/cs/Unicode +sun/nio/cs/UnicodeDecoder +sun/nio/cs/UnicodeEncoder +sun/print/PrinterGraphicsConfig +sun/reflect/AccessorGenerator +sun/reflect/BootstrapConstructorAccessorImpl +sun/reflect/ByteVector +sun/reflect/ByteVectorFactory +sun/reflect/ByteVectorImpl +sun/reflect/CallerSensitive +sun/reflect/ClassDefiner +sun/reflect/ClassDefiner$1 +sun/reflect/ClassFileAssembler +sun/reflect/ClassFileConstants +sun/reflect/ConstantPool +sun/reflect/ConstructorAccessor +sun/reflect/ConstructorAccessorImpl +sun/reflect/DelegatingClassLoader +sun/reflect/DelegatingConstructorAccessorImpl +sun/reflect/DelegatingMethodAccessorImpl +sun/reflect/FieldAccessor +sun/reflect/FieldAccessorImpl +sun/reflect/Label +sun/reflect/Label$PatchInfo +sun/reflect/LangReflectAccess +sun/reflect/MagicAccessorImpl +sun/reflect/MethodAccessor +sun/reflect/MethodAccessorGenerator +sun/reflect/MethodAccessorGenerator$1 +sun/reflect/MethodAccessorImpl +sun/reflect/NativeConstructorAccessorImpl +sun/reflect/NativeMethodAccessorImpl +sun/reflect/Reflection +sun/reflect/ReflectionFactory +sun/reflect/ReflectionFactory$1 +sun/reflect/ReflectionFactory$GetReflectionFactoryAction +sun/reflect/SerializationConstructorAccessorImpl +sun/reflect/UTF8 +sun/reflect/UnsafeFieldAccessorFactory +sun/reflect/UnsafeFieldAccessorImpl +sun/reflect/UnsafeObjectFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl sun/reflect/UnsafeQualifiedStaticLongFieldAccessorImpl -sun/security/util/DerOutputStream -sun/security/util/DerValue -java/io/ObjectStreamClass$FieldReflectorKey -java/io/ObjectStreamClass$FieldReflector -java/io/ObjectStreamClass$1 -java/io/DataOutputStream -java/io/ObjectStreamClass$MemberSignature -java/math/BigInteger -java/security/interfaces/DSAParams -java/io/ObjectStreamClass$ClassDataSlot -java/io/ObjectStreamClass$4 -java/io/ObjectStreamClass$5 -java/security/MessageDigest -java/security/MessageDigestSpi +sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl +sun/reflect/UnsafeStaticFieldAccessorImpl +sun/reflect/annotation/AnnotationType +sun/reflect/generics/repository/AbstractRepository +sun/reflect/generics/repository/ClassRepository +sun/reflect/generics/repository/GenericDeclRepository +sun/reflect/misc/MethodUtil +sun/reflect/misc/MethodUtil$1 +sun/reflect/misc/ReflectUtil +sun/security/action/GetBooleanAction +sun/security/action/GetIntegerAction +sun/security/action/GetPropertyAction sun/security/jca/GetInstance -sun/security/util/DerInputStream -sun/security/jca/Providers -sun/security/jca/ProviderList -sun/security/jca/ProviderConfig -sun/security/jca/ProviderList$3 -sun/security/jca/ProviderList$1 -sun/security/util/DerInputBuffer -sun/security/jca/ProviderList$2 -sun/security/jca/ProviderConfig$1 -sun/security/util/ObjectIdentifier -sun/security/jca/ProviderConfig$3 -java/security/Provider$Service -java/security/Provider$UString -java/security/AlgorithmParameters -java/security/AlgorithmParametersSpi -sun/security/provider/DSAParameters -sun/security/provider/SHA -sun/security/provider/DigestBase sun/security/jca/GetInstance$Instance -sun/security/util/ByteArrayLexOrder -sun/security/util/ByteArrayTagOrder -java/security/MessageDigest$Delegate -sun/security/provider/ByteArrayAccess -sun/security/util/DerIndefLenConverter -java/io/InvalidClassException -java/io/ObjectStreamException -java/io/ObjectInputStream$GetFieldImpl -java/io/ObjectInputStream$GetField -java/io/ObjectOutputStream$ReplaceTable -sun/security/jca/ServiceId +sun/security/jca/ProviderConfig +sun/security/jca/ProviderConfig$2 +sun/security/jca/ProviderList +sun/security/jca/ProviderList$1 +sun/security/jca/ProviderList$2 +sun/security/jca/ProviderList$3 sun/security/jca/ProviderList$ServiceList sun/security/jca/ProviderList$ServiceList$1 -java/security/Signature$Delegate -java/security/interfaces/DSAPrivateKey -sun/security/provider/DSA$SHA1withDSA +sun/security/jca/Providers +sun/security/jca/ServiceId +sun/security/provider/ByteArrayAccess sun/security/provider/DSA -java/security/spec/DSAParameterSpec -java/math/MutableBigInteger -java/math/SignedMutableBigInteger -java/awt/EventQueue$1AWTInvocationLock -java/awt/LightweightDispatcher$2 -java/awt/Component$FlipBufferStrategy -javax/swing/JTable$2 -javax/swing/JTable$Resizable3 -javax/swing/JTable$Resizable2 -javax/swing/JTable$5 -javax/swing/event/AncestorEvent -com/sun/java/swing/plaf/windows/WindowsLookAndFeel -com/sun/java/swing/plaf/windows/XPStyle -com/sun/java/swing/plaf/windows/XPStyle$SkinPainter -sun/swing/CachedPainter -sun/swing/ImageCache -com/sun/java/swing/plaf/windows/WindowsRootPaneUI -com/sun/java/swing/plaf/windows/WindowsRootPaneUI$AltProcessor -java/awt/SystemColor -com/sun/java/swing/plaf/windows/WindowsTreeUI$ExpandedIcon -com/sun/java/swing/plaf/windows/WindowsTreeUI$CollapsedIcon -com/sun/java/swing/plaf/windows/DesktopProperty -com/sun/java/swing/plaf/windows/WindowsLookAndFeel$XPColorValue -com/sun/java/swing/plaf/windows/WindowsLookAndFeel$XPValue -com/sun/java/swing/plaf/windows/TMSchema$Part -com/sun/java/swing/plaf/windows/TMSchema$Control -com/sun/java/swing/plaf/windows/TMSchema$Prop -com/sun/java/swing/plaf/windows/WindowsLookAndFeel$XPColorValue$XPColorValueKey -com/sun/java/swing/plaf/windows/XPStyle$Skin -com/sun/java/swing/plaf/windows/WindowsLookAndFeel$WindowsFontProperty -com/sun/java/swing/plaf/windows/WindowsLookAndFeel$FontDesktopProperty -com/sun/java/swing/plaf/windows/WindowsLookAndFeel$TriggerDesktopProperty -com/sun/java/swing/plaf/windows/DesktopProperty$WeakPCL -com/sun/java/swing/plaf/windows/WindowsClassicLookAndFeel -com/sun/java/swing/plaf/windows/TMSchema$State -com/sun/java/swing/plaf/windows/WindowsLookAndFeel$LazyWindowsIcon -com/sun/java/swing/plaf/windows/WindowsLookAndFeel$XPBorderValue -com/sun/java/swing/plaf/windows/WindowsIconFactory -com/sun/java/swing/plaf/windows/WindowsIconFactory$FrameButtonIcon -com/sun/java/swing/plaf/windows/WindowsLookAndFeel$XPDLUValue -com/sun/java/swing/plaf/windows/WindowsLookAndFeel$ActiveWindowsIcon -sun/swing/SwingUtilities2$2$1 -sun/awt/image/ByteArrayImageSource -com/sun/java/swing/plaf/windows/resources/windows -com/sun/java/swing/plaf/windows/WindowsLabelUI -com/sun/java/swing/plaf/windows/WindowsButtonUI -sun/awt/windows/ThemeReader -java/util/EnumMap -com/sun/java/swing/plaf/windows/TMSchema$TypeEnum -com/sun/java/swing/plaf/windows/XPStyle$XPEmptyBorder -com/sun/java/swing/plaf/windows/WindowsToggleButtonUI -com/sun/java/swing/plaf/windows/XPStyle$XPFillBorder -com/sun/java/swing/plaf/windows/WindowsMenuBarUI -javax/swing/plaf/basic/BasicBorders$MenuBarBorder -com/sun/java/swing/plaf/windows/WindowsMenuBarUI$TakeFocus -javax/swing/plaf/basic/BasicMenuBarUI$Actions -com/sun/java/swing/plaf/windows/WindowsMenuUI -com/sun/java/swing/plaf/windows/WindowsIconFactory$MenuArrowIcon -javax/swing/plaf/basic/BasicIconFactory -javax/swing/plaf/basic/BasicIconFactory$MenuItemCheckIcon -com/sun/java/swing/plaf/windows/WindowsMenuUI$WindowsMouseInputHandler -javax/swing/plaf/basic/BasicMenuUI$MouseInputHandler -com/sun/java/swing/plaf/windows/WindowsMenuItemUI -com/sun/java/swing/plaf/windows/WindowsIconFactory$MenuItemArrowIcon -com/sun/java/swing/plaf/windows/WindowsIconFactory$MenuItemCheckIcon -com/sun/java/swing/plaf/windows/WindowsPopupMenuUI -javax/swing/Popup -com/sun/java/swing/plaf/windows/WindowsPopupMenuUI$MnemonicListener -com/sun/java/swing/plaf/windows/WindowsPopupMenuSeparatorUI -javax/swing/plaf/basic/BasicPopupMenuSeparatorUI -com/sun/java/swing/plaf/windows/WindowsScrollBarUI -com/sun/java/swing/plaf/windows/WindowsScrollBarUI$Grid -com/sun/java/swing/plaf/windows/WindowsScrollBarUI$WindowsArrowButton -com/sun/java/swing/plaf/windows/WindowsComboBoxUI -com/sun/java/swing/plaf/windows/WindowsComboBoxUI$1 -com/sun/java/swing/plaf/windows/WindowsComboBoxUI$2 -com/sun/java/swing/plaf/windows/XPStyle$XPStatefulFillBorder -com/sun/java/swing/plaf/windows/WindowsComboBoxUI$WindowsComboBoxEditor -com/sun/java/swing/plaf/windows/WindowsTextFieldUI -com/sun/java/swing/plaf/windows/WindowsTextFieldUI$WindowsFieldCaret -com/sun/java/swing/plaf/windows/WindowsComboBoxUI$XPComboBoxButton -com/sun/java/swing/plaf/windows/XPStyle$GlyphButton -com/sun/java/swing/plaf/windows/WindowsComboBoxUI$3 -com/sun/java/swing/plaf/windows/WindowsToolBarUI -com/sun/java/swing/plaf/windows/WindowsBorders -com/sun/java/swing/plaf/windows/WindowsBorders$ToolBarBorder -com/sun/java/swing/plaf/windows/WindowsToolBarSeparatorUI -com/sun/java/swing/plaf/windows/WindowsGraphicsUtils -sun/awt/image/BufferedImageGraphicsConfig -sun/reflect/SerializationConstructorAccessorImpl -java/io/ObjectStreamClass$3 -java/io/ObjectOutputStream$BlockDataOutputStream -java/io/ObjectOutputStream$HandleTable -java/security/PrivateKey -java/security/spec/AlgorithmParameterSpec -sun/applet/Main -sun/applet/AppletMessageHandler -sun/applet/resources/MsgAppletViewer -sun/applet/AppletSecurity -sun/awt/AWTSecurityManager -java/lang/SecurityManager -java/security/DomainCombiner -sun/applet/AppletSecurity$1 -java/lang/SecurityManager$1 -sun/net/InetAddressCachePolicy -java/security/SecurityPermission -java/util/PropertyPermission -sun/applet/AppletViewer -java/applet/AppletContext -java/awt/print/Printable -sun/security/util/SecurityConstants -java/awt/AWTPermission -java/net/NetPermission -java/net/SocketPermission -javax/security/auth/AuthPermission -java/lang/Thread$1 -java/util/logging/LogManager$5 -sun/applet/StdAppletViewerFactory -sun/applet/AppletViewerFactory -sun/applet/AppletViewer$UserActionListener -sun/applet/AppletViewerPanel -sun/applet/AppletPanel -java/applet/AppletStub -sun/misc/MessageUtils -sun/applet/AppletPanel$10 -java/security/Policy$1 -sun/security/provider/PolicyFile$1 -sun/security/provider/PolicyFile$3 -sun/security/util/PropertyExpander -sun/security/provider/PolicyParser -sun/security/util/PolicyUtil -java/io/StreamTokenizer -sun/security/provider/PolicyParser$GrantEntry -sun/security/provider/PolicyParser$PermissionEntry -sun/security/provider/PolicyFile$PolicyEntry -sun/security/provider/PolicyParser$ParsingException -sun/security/provider/PolicyFile$6 -sun/security/provider/PolicyFile$7 -java/net/SocketPermissionCollection -java/util/PropertyPermissionCollection -sun/applet/AppletPanel$9 -sun/applet/AppletClassLoader -sun/applet/AppletThreadGroup -sun/applet/AppContextCreator -sun/applet/AppletPanel$1 -sun/awt/AppContext$3 -sun/awt/windows/WMenuBarPeer -java/awt/peer/MenuBarPeer -java/awt/peer/MenuComponentPeer -sun/awt/windows/WMenuPeer -java/awt/peer/MenuPeer -java/awt/peer/MenuItemPeer -sun/awt/windows/WMenuItemPeer -sun/awt/windows/WMenuItemPeer$2 -sun/awt/windows/awtLocalization -sun/awt/windows/WFontMetrics -sun/applet/AppletViewer$1 -sun/applet/AppletViewer$1AppletEventListener -sun/applet/AppletListener -sun/applet/AppletEventMulticaster -sun/awt/CausedFocusEvent -sun/misc/Queue -sun/misc/QueueElement -sun/applet/AppletEvent -sun/applet/AppletClassLoader$1 -java/net/URLClassLoader$4 -sun/applet/AppletClassLoader$2 -javax/swing/JApplet -java/lang/ClassLoader$1 -sun/security/provider/PolicyFile$5 -java/security/PermissionsEnumerator -java/util/Collections$1 -sun/applet/AppletPanel$11 -javax/swing/SwingHeavyWeight -sun/applet/AppletPanel$8 -sun/applet/AppletPanel$2 -sun/applet/AppletPanel$3 -sun/applet/AppletPanel$6 -java/beans/PropertyVetoException -javax/swing/BufferStrategyPaintManager$BufferInfo -javax/swing/BufferStrategyPaintManager$1 -sun/java2d/opengl/WGLGraphicsConfig -# dabe0c65d3c79925 +sun/security/provider/DSA$LegacyDSA +sun/security/provider/DSA$SHA1withDSA +sun/security/provider/DSAParameters +sun/security/provider/DSAPublicKey +sun/security/provider/DigestBase +sun/security/provider/NativePRNG +sun/security/provider/NativePRNG$Blocking +sun/security/provider/NativePRNG$NonBlocking +sun/security/provider/SHA +sun/security/provider/Sun +sun/security/provider/SunEntries +sun/security/provider/SunEntries$1 +sun/security/util/ByteArrayLexOrder +sun/security/util/ByteArrayTagOrder +sun/security/util/Debug +sun/security/util/DerEncoder +sun/security/util/DerIndefLenConverter +sun/security/util/DerInputBuffer +sun/security/util/DerInputStream +sun/security/util/DerOutputStream +sun/security/util/DerValue +sun/security/util/ManifestEntryVerifier +sun/security/util/ObjectIdentifier +sun/security/util/SignatureFileVerifier +sun/security/x509/AlgorithmId +sun/security/x509/X509Key +sun/swing/DefaultLookup +sun/swing/ImageIconUIResource +sun/swing/JLightweightFrame +sun/swing/MenuItemLayoutHelper +sun/swing/MenuItemLayoutHelper$ColumnAlignment +sun/swing/MenuItemLayoutHelper$LayoutResult +sun/swing/MenuItemLayoutHelper$RectSize +sun/swing/PrintColorUIResource +sun/swing/StringUIClientPropertyKey +sun/swing/SwingAccessor +sun/swing/SwingAccessor$JTextComponentAccessor +sun/swing/SwingLazyValue +sun/swing/SwingLazyValue$1 +sun/swing/SwingUtilities2 +sun/swing/SwingUtilities2$2 +sun/swing/SwingUtilities2$AATextInfo +sun/swing/SwingUtilities2$LSBCacheEntry +sun/swing/UIAction +sun/swing/UIClientPropertyKey +sun/swing/table/DefaultTableCellHeaderRenderer +sun/swing/table/DefaultTableCellHeaderRenderer$EmptyIcon +sun/text/ComposedCharIter +sun/text/IntHashtable +sun/text/UCompactIntArray +sun/text/normalizer/CharTrie +sun/text/normalizer/CharTrie$FriendAgent +sun/text/normalizer/ICUBinary +sun/text/normalizer/ICUBinary$Authenticate +sun/text/normalizer/ICUData +sun/text/normalizer/IntTrie +sun/text/normalizer/NormalizerDataReader +sun/text/normalizer/NormalizerImpl +sun/text/normalizer/NormalizerImpl$AuxTrieImpl +sun/text/normalizer/NormalizerImpl$DecomposeArgs +sun/text/normalizer/NormalizerImpl$FCDTrieImpl +sun/text/normalizer/NormalizerImpl$NormTrieImpl +sun/text/normalizer/Trie +sun/text/normalizer/Trie$DataManipulate +sun/text/normalizer/UTF16 +sun/text/normalizer/UnicodeMatcher +sun/text/normalizer/UnicodeSet +sun/text/resources/CollationData +sun/text/resources/FormatData +sun/text/resources/en/FormatData_en +sun/text/resources/en/FormatData_en_US +sun/util/CoreResourceBundleControl +sun/util/PreHashedMap +sun/util/ResourceBundleEnumeration +sun/util/calendar/AbstractCalendar +sun/util/calendar/BaseCalendar +sun/util/calendar/BaseCalendar$Date +sun/util/calendar/CalendarDate +sun/util/calendar/CalendarSystem +sun/util/calendar/CalendarUtils +sun/util/calendar/Gregorian +sun/util/calendar/Gregorian$Date +sun/util/calendar/ZoneInfo +sun/util/calendar/ZoneInfoFile +sun/util/calendar/ZoneInfoFile$1 +sun/util/calendar/ZoneInfoFile$Checksum +sun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule +sun/util/locale/BaseLocale +sun/util/locale/BaseLocale$Cache +sun/util/locale/BaseLocale$Key +sun/util/locale/InternalLocaleBuilder +sun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar +sun/util/locale/LanguageTag +sun/util/locale/LocaleObjectCache +sun/util/locale/LocaleObjectCache$CacheEntry +sun/util/locale/LocaleUtils +sun/util/locale/ParseStatus +sun/util/locale/StringTokenIterator +sun/util/locale/provider/AuxLocaleProviderAdapter +sun/util/locale/provider/AuxLocaleProviderAdapter$NullProvider +sun/util/locale/provider/AvailableLanguageTags +sun/util/locale/provider/CalendarDataProviderImpl +sun/util/locale/provider/CalendarDataUtility +sun/util/locale/provider/CalendarDataUtility$CalendarWeekParameterGetter +sun/util/locale/provider/CalendarProviderImpl +sun/util/locale/provider/CollatorProviderImpl +sun/util/locale/provider/CurrencyNameProviderImpl +sun/util/locale/provider/DateFormatSymbolsProviderImpl +sun/util/locale/provider/DecimalFormatSymbolsProviderImpl +sun/util/locale/provider/JRELocaleProviderAdapter +sun/util/locale/provider/JRELocaleProviderAdapter$1 +sun/util/locale/provider/LocaleDataMetaInfo +sun/util/locale/provider/LocaleProviderAdapter +sun/util/locale/provider/LocaleProviderAdapter$1 +sun/util/locale/provider/LocaleProviderAdapter$Type +sun/util/locale/provider/LocaleResources +sun/util/locale/provider/LocaleResources$ResourceReference +sun/util/locale/provider/LocaleServiceProviderPool +sun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter +sun/util/locale/provider/NumberFormatProviderImpl +sun/util/locale/provider/ResourceBundleBasedAdapter +sun/util/locale/provider/SPILocaleProviderAdapter +sun/util/locale/provider/SPILocaleProviderAdapter$1 +sun/util/locale/provider/TimeZoneNameProviderImpl +sun/util/locale/provider/TimeZoneNameUtility +sun/util/locale/provider/TimeZoneNameUtility$TimeZoneNameGetter +sun/util/logging/LoggingProxy +sun/util/logging/LoggingSupport +sun/util/logging/LoggingSupport$1 +sun/util/logging/LoggingSupport$2 +sun/util/logging/PlatformLogger +sun/util/logging/PlatformLogger$1 +sun/util/logging/PlatformLogger$DefaultLoggerProxy +sun/util/logging/PlatformLogger$JavaLoggerProxy +sun/util/logging/PlatformLogger$Level +sun/util/logging/PlatformLogger$LoggerProxy +sun/util/logging/resources/logging +sun/util/resources/CalendarData +sun/util/resources/CurrencyNames +sun/util/resources/LocaleData +sun/util/resources/LocaleData$1 +sun/util/resources/LocaleData$LocaleDataResourceBundleControl +sun/util/resources/LocaleNamesBundle +sun/util/resources/OpenListResourceBundle +sun/util/resources/ParallelListResourceBundle +sun/util/resources/ParallelListResourceBundle$KeySet +sun/util/resources/TimeZoneNames +sun/util/resources/TimeZoneNamesBundle +sun/util/resources/en/CalendarData_en +sun/util/resources/en/CurrencyNames_en_US +sun/util/resources/en/TimeZoneNames_en +sun/util/spi/CalendarProvider +# 729efa63b41fc759 diff --git a/jdk/makefiles/CompileDemos.gmk b/jdk/makefiles/CompileDemos.gmk index c65b0f898e3..beef573275c 100644 --- a/jdk/makefiles/CompileDemos.gmk +++ b/jdk/makefiles/CompileDemos.gmk @@ -157,8 +157,8 @@ $(JDK_OUTPUTDIR)/demo/jfc/CodePointIM/_the.services: \ BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/jfc/CodePointIM/_the.services -$(eval $(call SetupDemo,MoleculeViewer,applets,,XYZChemModel,,,example*.html XYZApp.java)) -$(eval $(call SetupDemo,WireFrame,applets,,ThreeD,,,example*.html ThreeD.java)) +$(eval $(call SetupDemo,MoleculeViewer,applets,,XYZChemModel,,,example*.html *.java)) +$(eval $(call SetupDemo,WireFrame,applets,,ThreeD,,,example*.html *.java)) $(eval $(call SetupDemo,FileChooserDemo,jfc,,FileChooserDemo,,,README*)) $(eval $(call SetupDemo,Font2DTest,jfc,,Font2DTest,,,*.html *.txt)) $(eval $(call SetupDemo,Metalworks,jfc,,Metalworks,,,README*)) diff --git a/jdk/makefiles/SignJars.gmk b/jdk/makefiles/SignJars.gmk index 4005ab736f3..263d266774d 100644 --- a/jdk/makefiles/SignJars.gmk +++ b/jdk/makefiles/SignJars.gmk @@ -1,5 +1,5 @@ # -# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2012, 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 @@ -48,8 +48,10 @@ include MakeBase.gmk # be built, signed, and then the resulting jar files MUST BE CHECKED # INTO THE CLOSED PART OF THE WORKSPACE*. This separate step *MUST NOT # BE FORGOTTEN*, otherwise a bug fixed in the source code will not be -# reflected in the shipped binaries. The "sign-jars" target in the top -# level Makefile should be used to generate the required files. +# reflected in the shipped binaries. +# +# Please consult with Release Engineering, which is responsible for +# creating the final JCE builds suitable for checkin. # # Default target @@ -58,7 +60,7 @@ all: ifndef OPENJDK README-MAKEFILE_WARNING := \ - "\nPlease read makefiles/SignJars.gmk for further build instructions.\n" + "\nPlease read jdk/makefiles/SignJars.gmk for further build instructions.\n" # # Location for JCE codesigning key. @@ -84,20 +86,34 @@ $(JCE_OUTPUTDIR)/%: $(JDK_OUTPUTDIR)/unsigned/% $@ $(SIGNING_ALIAS) < $(SIGNING_PASSPHRASE) @$(PRINTF) "\nJar codesigning finished.\n" -JAR_LIST := jce.jar \ +JAR_LIST := \ + jce.jar \ local_policy.jar \ sunec.jar \ sunjce_provider.jar \ sunpkcs11.jar \ - US_export_policy.jar + US_export_policy.jar \ + sunmscapi.jar \ + ucrypto.jar \ + # -SIGNED_JARS := $(addprefix $(JCE_OUTPUTDIR)/,$(JAR_LIST)) +UNSIGNED_JARS := $(wildcard $(addprefix $(JDK_OUTPUTDIR)/unsigned/, $(JAR_LIST))) + +ifeq ($(UNSIGNED_JARS), ) + $(error No jars found in $(JDK_OUTPUTDIR)/unsigned/) +endif + +SIGNED_JARS := $(patsubst $(JDK_OUTPUTDIR)/unsigned/%,$(JCE_OUTPUTDIR)/%, $(UNSIGNED_JARS)) $(SIGNED_JARS): check-keystore all: $(SIGNED_JARS) - @$(PRINTF) "\n***The jar files built by the 'jar-sign' target must***" - @$(PRINTF) "\n***still be checked into the closed workspace!***" + @$(PRINTF) "\n*** The jar files built by the 'sign-jars' target are developer ***" + @$(PRINTF) "\n*** builds only and *MUST NOT* be checked into the closed workspace. ***" + @$(PRINTF) "\n*** ***" + @$(PRINTF) "\n*** Please consult with Release Engineering: they will generate ***" + @$(PRINTF) "\n*** the proper binaries for the closed workspace. ***" + @$(PRINTF) "\n" @$(PRINTF) $(README-MAKEFILE_WARNING) endif # !OPENJDK diff --git a/jdk/makefiles/lib/CoreLibraries.gmk b/jdk/makefiles/lib/CoreLibraries.gmk index 86070a07c85..d311f84ccc6 100644 --- a/jdk/makefiles/lib/CoreLibraries.gmk +++ b/jdk/makefiles/lib/CoreLibraries.gmk @@ -116,7 +116,6 @@ BUILD_LIBRARIES += $(BUILD_LIBVERIFY) LIBJAVA_SRC_DIRS := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/lang \ $(JDK_TOPDIR)/src/share/native/java/lang \ - $(JDK_TOPDIR)/src/share/native/java/lang/ref \ $(JDK_TOPDIR)/src/share/native/java/lang/reflect \ $(JDK_TOPDIR)/src/share/native/java/io \ $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/io \ diff --git a/jdk/makefiles/lib/ServiceabilityLibraries.gmk b/jdk/makefiles/lib/ServiceabilityLibraries.gmk index 54662e6bb31..c6a23339af3 100644 --- a/jdk/makefiles/lib/ServiceabilityLibraries.gmk +++ b/jdk/makefiles/lib/ServiceabilityLibraries.gmk @@ -284,19 +284,12 @@ BUILD_LIBRARIES += $(BUILD_LIBINSTRUMENT) ########################################################################################## BUILD_LIBMANAGEMENT_SRC := $(JDK_TOPDIR)/src/share/native/sun/management \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/management \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/com/sun/management + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/management BUILD_LIBMANAGEMENT_EXCLUDES := BUILD_LIBMANAGEMENT_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/management -ifneq ($(OPENJDK_TARGET_OS), windows) - BUILD_LIBMANAGEMENT_EXCLUDES += OperatingSystem_md.c -else - BUILD_LIBMANAGEMENT_EXCLUDES += UnixOperatingSystem_md.c -endif - ifneq ($(OPENJDK_TARGET_OS), solaris) BUILD_LIBMANAGEMENT_EXCLUDES += SolarisOperatingSystem.c endif diff --git a/jdk/makefiles/mapfiles/libjava/mapfile-vers b/jdk/makefiles/mapfiles/libjava/mapfile-vers index 7b4d5472b14..d2d8067395c 100644 --- a/jdk/makefiles/mapfiles/libjava/mapfile-vers +++ b/jdk/makefiles/mapfiles/libjava/mapfile-vers @@ -140,7 +140,6 @@ SUNWprivate_1.1 { Java_java_lang_Double_doubleToRawLongBits; Java_java_lang_reflect_Proxy_defineClass0; Java_java_lang_Shutdown_runAllFinalizers; - Java_java_lang_ref_Finalizer_invokeFinalizeMethod; Java_java_lang_Float_intBitsToFloat; Java_java_lang_Float_floatToRawIntBits; Java_java_lang_StrictMath_IEEEremainder; diff --git a/jdk/makefiles/mapfiles/libjava/reorder-sparc b/jdk/makefiles/mapfiles/libjava/reorder-sparc index 16573052576..4a5cbf45018 100644 --- a/jdk/makefiles/mapfiles/libjava/reorder-sparc +++ b/jdk/makefiles/mapfiles/libjava/reorder-sparc @@ -88,7 +88,6 @@ text: .text%Java_java_lang_Throwable_getStackTraceElement; text: .text%throwFileNotFoundException; text: .text%JNU_NotifyAll; # Test LoadFrame -text: .text%Java_java_lang_ref_Finalizer_invokeFinalizeMethod; text: .text%JNU_CallMethodByName; text: .text%JNU_CallMethodByNameV; text: .text%Java_java_io_UnixFileSystem_createDirectory; diff --git a/jdk/makefiles/mapfiles/libjava/reorder-sparcv9 b/jdk/makefiles/mapfiles/libjava/reorder-sparcv9 index fe80fca8b59..81cbfcb2410 100644 --- a/jdk/makefiles/mapfiles/libjava/reorder-sparcv9 +++ b/jdk/makefiles/mapfiles/libjava/reorder-sparcv9 @@ -78,7 +78,6 @@ text: .text%writeBytes; text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2Ljava_security_AccessControlContext_2; text: .text%JNU_GetEnv; text: .text%Java_java_io_UnixFileSystem_checkAccess; -text: .text%Java_java_lang_ref_Finalizer_invokeFinalizeMethod; text: .text%Java_java_lang_reflect_Array_newArray; text: .text%Java_java_lang_Throwable_getStackTraceDepth; text: .text%Java_java_lang_Throwable_getStackTraceElement; diff --git a/jdk/makefiles/mapfiles/libjava/reorder-x86 b/jdk/makefiles/mapfiles/libjava/reorder-x86 index 839ee50caa8..1c971b80eda 100644 --- a/jdk/makefiles/mapfiles/libjava/reorder-x86 +++ b/jdk/makefiles/mapfiles/libjava/reorder-x86 @@ -78,7 +78,6 @@ text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_Pri text: .text%JNU_GetEnv; text: .text%Java_java_io_UnixFileSystem_checkAccess; text: .text%Java_sun_reflect_NativeMethodAccessorImpl_invoke0; -text: .text%Java_java_lang_ref_Finalizer_invokeFinalizeMethod; text: .text%Java_java_io_FileInputStream_available; text: .text%Java_java_lang_reflect_Array_newArray; text: .text%Java_java_lang_Throwable_getStackTraceDepth; diff --git a/jdk/makefiles/mapfiles/libmanagement/mapfile-vers b/jdk/makefiles/mapfiles/libmanagement/mapfile-vers index 724f7bb7100..218dd3e3e71 100644 --- a/jdk/makefiles/mapfiles/libmanagement/mapfile-vers +++ b/jdk/makefiles/mapfiles/libmanagement/mapfile-vers @@ -27,17 +27,17 @@ SUNWprivate_1.1 { global: - Java_com_sun_management_UnixOperatingSystem_getCommittedVirtualMemorySize; - Java_com_sun_management_UnixOperatingSystem_getFreePhysicalMemorySize; - Java_com_sun_management_UnixOperatingSystem_getFreeSwapSpaceSize; - Java_com_sun_management_UnixOperatingSystem_getMaxFileDescriptorCount; - Java_com_sun_management_UnixOperatingSystem_getOpenFileDescriptorCount; - Java_com_sun_management_UnixOperatingSystem_getProcessCpuLoad; - Java_com_sun_management_UnixOperatingSystem_getProcessCpuTime; - Java_com_sun_management_UnixOperatingSystem_getSystemCpuLoad; - Java_com_sun_management_UnixOperatingSystem_getTotalPhysicalMemorySize; - Java_com_sun_management_UnixOperatingSystem_getTotalSwapSpaceSize; - Java_com_sun_management_UnixOperatingSystem_initialize; + Java_sun_management_OperatingSystemImpl_getCommittedVirtualMemorySize; + Java_sun_management_OperatingSystemImpl_getFreePhysicalMemorySize; + Java_sun_management_OperatingSystemImpl_getFreeSwapSpaceSize; + Java_sun_management_OperatingSystemImpl_getMaxFileDescriptorCount; + Java_sun_management_OperatingSystemImpl_getOpenFileDescriptorCount; + Java_sun_management_OperatingSystemImpl_getProcessCpuLoad; + Java_sun_management_OperatingSystemImpl_getProcessCpuTime; + Java_sun_management_OperatingSystemImpl_getSystemCpuLoad; + Java_sun_management_OperatingSystemImpl_getTotalPhysicalMemorySize; + Java_sun_management_OperatingSystemImpl_getTotalSwapSpaceSize; + Java_sun_management_OperatingSystemImpl_initialize; Java_sun_management_ClassLoadingImpl_setVerboseClass; Java_sun_management_DiagnosticCommandImpl_executeDiagnosticCommand; Java_sun_management_DiagnosticCommandImpl_getDiagnosticCommands; @@ -103,6 +103,7 @@ SUNWprivate_1.1 { Java_sun_management_VMManagementImpl_getSafepointCount; Java_sun_management_VMManagementImpl_getSafepointSyncTime; Java_sun_management_VMManagementImpl_getStartupTime; + Java_sun_management_VMManagementImpl_getUptime0; Java_sun_management_VMManagementImpl_getTotalApplicationNonStoppedTime; Java_sun_management_VMManagementImpl_getTotalClassCount; Java_sun_management_VMManagementImpl_getTotalCompileTime; diff --git a/jdk/src/macosx/classes/com/apple/laf/AquaFileChooserUI.java b/jdk/src/macosx/classes/com/apple/laf/AquaFileChooserUI.java index be4b5b72a32..5669d10b1a4 100644 --- a/jdk/src/macosx/classes/com/apple/laf/AquaFileChooserUI.java +++ b/jdk/src/macosx/classes/com/apple/laf/AquaFileChooserUI.java @@ -227,7 +227,7 @@ public class AquaFileChooserUI extends FileChooserUI { // Exist in basic.properties (though we might want to override) fileDescriptionText = UIManager.getString("FileChooser.fileDescriptionText"); directoryDescriptionText = UIManager.getString("FileChooser.directoryDescriptionText"); - newFolderErrorText = getString("FileChooser.newFolderErrorText", "Error occured during folder creation"); + newFolderErrorText = getString("FileChooser.newFolderErrorText", "Error occurred during folder creation"); saveButtonText = UIManager.getString("FileChooser.saveButtonText"); openButtonText = UIManager.getString("FileChooser.openButtonText"); diff --git a/jdk/src/macosx/classes/com/apple/laf/resources/aqua.properties b/jdk/src/macosx/classes/com/apple/laf/resources/aqua.properties index 17f7a94584a..ac147020ce7 100644 --- a/jdk/src/macosx/classes/com/apple/laf/resources/aqua.properties +++ b/jdk/src/macosx/classes/com/apple/laf/resources/aqua.properties @@ -38,7 +38,7 @@ ############ FILE CHOOSER STRINGS ############# FileChooser.fileDescription.textAndMnemonic=Generic File FileChooser.directoryDescription.textAndMnemonic=Directory -FileChooser.newFolderError.textAndMnemonic=Error occured during folder creation +FileChooser.newFolderError.textAndMnemonic=Error occurred during folder creation FileChooser.newFolderErrorSeparator= : FileChooser.acceptAllFileFilter.textAndMnemonic=All Files FileChooser.cancelButton.textAndMnemonic=Cancel diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/common/StandardMetadataFormatResources.java b/jdk/src/share/classes/com/sun/imageio/plugins/common/StandardMetadataFormatResources.java index 96f099cf222..00bf1ee323e 100644 --- a/jdk/src/share/classes/com/sun/imageio/plugins/common/StandardMetadataFormatResources.java +++ b/jdk/src/share/classes/com/sun/imageio/plugins/common/StandardMetadataFormatResources.java @@ -123,7 +123,7 @@ public class StandardMetadataFormatResources extends ListResourceBundle { "The vertical position, in millimeters, where the image should be rendered on media " }, { "HorizontalPixelOffset", - "The horizonal position, in pixels, where the image should be rendered onto a raster display" }, + "The horizontal position, in pixels, where the image should be rendered onto a raster display" }, { "VerticalPixelOffset", "The vertical position, in pixels, where the image should be rendered onto a raster display" }, diff --git a/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpSubBulkRequestHandler.java b/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpSubBulkRequestHandler.java index 6dc479f242c..aa349526456 100644 --- a/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpSubBulkRequestHandler.java +++ b/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpSubBulkRequestHandler.java @@ -111,7 +111,7 @@ class SnmpSubBulkRequestHandler extends SnmpSubRequestHandler { if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) { SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, SnmpSubRequestHandler.class.getName(), "run", "[" + Thread.currentThread() + - "]:an Snmp error occured during the operation", x); + "]:an Snmp error occurred during the operation", x); } } catch(Exception x) { @@ -119,7 +119,7 @@ class SnmpSubBulkRequestHandler extends SnmpSubRequestHandler { if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) { SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, SnmpSubRequestHandler.class.getName(), "run", "[" + Thread.currentThread() + - "]:a generic error occured during the operation", x); + "]:a generic error occurred during the operation", x); } } if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) { diff --git a/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpSubNextRequestHandler.java b/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpSubNextRequestHandler.java index 3ff95f6a001..99eebaa8c22 100644 --- a/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpSubNextRequestHandler.java +++ b/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpSubNextRequestHandler.java @@ -127,7 +127,7 @@ class SnmpSubNextRequestHandler extends SnmpSubRequestHandler { if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) { SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, SnmpSubRequestHandler.class.getName(), "run", "[" + Thread.currentThread() + - "]:an Snmp error occured during the operation", x); + "]:an Snmp error occurred during the operation", x); } } catch(Exception x) { @@ -135,7 +135,7 @@ class SnmpSubNextRequestHandler extends SnmpSubRequestHandler { if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) { SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, SnmpSubRequestHandler.class.getName(), "run", "[" + Thread.currentThread() + - "]:a generic error occured during the operation", x); + "]:a generic error occurred during the operation", x); } } if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) { diff --git a/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpSubRequestHandler.java b/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpSubRequestHandler.java index 0b981311358..391d528f876 100644 --- a/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpSubRequestHandler.java +++ b/jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpSubRequestHandler.java @@ -231,7 +231,7 @@ class SnmpSubRequestHandler implements SnmpDefinitions, Runnable { if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) { SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, SnmpSubRequestHandler.class.getName(), "run", "[" + Thread.currentThread() + - "]:an Snmp error occured during the operation", x); + "]:an Snmp error occurred during the operation", x); } } catch(Exception x) { @@ -239,7 +239,7 @@ class SnmpSubRequestHandler implements SnmpDefinitions, Runnable { if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) { SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, SnmpSubRequestHandler.class.getName(), "run", "[" + Thread.currentThread() + - "]:a generic error occured during the operation", x); + "]:a generic error occurred during the operation", x); } } if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) { diff --git a/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java b/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java index 7a7f693022d..80109fd6421 100644 --- a/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java +++ b/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java @@ -541,7 +541,7 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern if (rowSetWriter != null) { Class c = rowSetWriter.getClass(); if (c != null) { - Class[] theInterfaces = c.getInterfaces(); + Class[] theInterfaces = c.getInterfaces(); for (int i = 0; i < theInterfaces.length; i++) { if ((theInterfaces[i].getName()).indexOf("TransactionalWriter") > 0) { tXWriter = true; diff --git a/jdk/src/share/classes/com/sun/rowset/internal/BaseRow.java b/jdk/src/share/classes/com/sun/rowset/internal/BaseRow.java index 814e7456f0d..dec4270e9ab 100644 --- a/jdk/src/share/classes/com/sun/rowset/internal/BaseRow.java +++ b/jdk/src/share/classes/com/sun/rowset/internal/BaseRow.java @@ -51,6 +51,11 @@ import java.util.Arrays; */ public abstract class BaseRow implements Serializable, Cloneable { +/** + * Specify the serialVersionUID + */ +private static final long serialVersionUID = 4152013523511412238L; + /** * The array containing the original values for this BaseRow * object. @@ -77,7 +82,7 @@ public abstract class BaseRow implements Serializable, Cloneable { * @param idx the index of the element to return * @return the Object value at the given index into this * row's array of original values - * @throws SQLException if there is an error + * @throws SQLException if there is an error */ public abstract Object getColumnObject(int idx) throws SQLException; @@ -90,7 +95,7 @@ public abstract class BaseRow implements Serializable, Cloneable { * @param idx the index of the element to be set * @param obj the Object to which the element at index * idx to be set - * @throws SQLException if there is an error + * @throws SQLException if there is an error */ public abstract void setColumnObject(int idx, Object obj) throws SQLException; } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/CommandInterpreter.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/CommandInterpreter.java index b0494c282df..1b164209c82 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/CommandInterpreter.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/CommandInterpreter.java @@ -377,7 +377,7 @@ public class CommandInterpreter { env.failure("Attempt to launch main class \"" + clname + "\" failed."); } } else { - env.failure("No main class specifed and no current default defined."); + env.failure("No main class specified and no current default defined."); } } else { clname = t.nextToken(); @@ -428,7 +428,7 @@ public class CommandInterpreter { env.failure("Attempt to attach to port \"" + portName + "\" failed."); } } else { - env.failure("No port specifed and no current default defined."); + env.failure("No port specified and no current default defined."); } } else { portName = t.nextToken(); diff --git a/jdk/src/share/classes/com/sun/tools/script/shell/init.js b/jdk/src/share/classes/com/sun/tools/script/shell/init.js index ae2cdc42d95..ced3ba06367 100644 --- a/jdk/src/share/classes/com/sun/tools/script/shell/init.js +++ b/jdk/src/share/classes/com/sun/tools/script/shell/init.js @@ -806,7 +806,7 @@ function XSLTransform(inp, style, out) { out = arguments[2]; break; default: - println("XSL tranform requires 2 or 3 arguments"); + println("XSL transform requires 2 or 3 arguments"); return; } diff --git a/jdk/src/share/classes/com/sun/tools/script/shell/messages.properties b/jdk/src/share/classes/com/sun/tools/script/shell/messages.properties index 9caf20efd41..4494f73b73b 100644 --- a/jdk/src/share/classes/com/sun/tools/script/shell/messages.properties +++ b/jdk/src/share/classes/com/sun/tools/script/shell/messages.properties @@ -36,7 +36,7 @@ engine.not.found=\ script engine for language {0} can not be found engine.info=\ - Language {0} {1} implemention "{2}" {3} + Language {0} {1} implementation "{2}" {3} encoding.unsupported=\ encoding {0} is not supported diff --git a/jdk/src/share/classes/java/awt/GraphicsDevice.java b/jdk/src/share/classes/java/awt/GraphicsDevice.java index 3c9d4178bd6..d55ccedca2c 100644 --- a/jdk/src/share/classes/java/awt/GraphicsDevice.java +++ b/jdk/src/share/classes/java/awt/GraphicsDevice.java @@ -341,12 +341,11 @@ public abstract class GraphicsDevice { } /** - * Returns the {@code Window} object representing the + * Returns the Window object representing the * full-screen window if the device is in full-screen mode. * - * @return the full-screen window, or {@code null} if the device is - * not in full-screen mode. The {@code Window} object can differ - * from the object previously set by {@code setFullScreenWindow}. + * @return the full-screen window, or null if the device is + * not in full-screen mode. * @see #setFullScreenWindow(Window) * @since 1.4 */ diff --git a/jdk/src/share/classes/java/awt/datatransfer/SystemFlavorMap.java b/jdk/src/share/classes/java/awt/datatransfer/SystemFlavorMap.java index 1258881c1e8..86713ad3c5a 100644 --- a/jdk/src/share/classes/java/awt/datatransfer/SystemFlavorMap.java +++ b/jdk/src/share/classes/java/awt/datatransfer/SystemFlavorMap.java @@ -40,7 +40,6 @@ import java.net.MalformedURLException; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; -import java.util.Iterator; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; @@ -1321,16 +1320,16 @@ public final class SystemFlavorMap implements FlavorMap, FlavorTable { } private List getAllNativesForType(String type) { - List retval = null; + Set retval = null; for (DataFlavor dataFlavor : convertMimeTypeToDataFlavors(type)) { List natives = getFlavorToNative().get(dataFlavor); if (natives != null && !natives.isEmpty()) { if (retval == null) { - retval = new ArrayList<>(); + retval = new LinkedHashSet<>(); } retval.addAll(natives); } } - return retval; + return retval == null ? null : new ArrayList<>(retval); } } diff --git a/jdk/src/share/classes/java/beans/IndexedPropertyDescriptor.java b/jdk/src/share/classes/java/beans/IndexedPropertyDescriptor.java index 866d35ba56c..f38c35774fe 100644 --- a/jdk/src/share/classes/java/beans/IndexedPropertyDescriptor.java +++ b/jdk/src/share/classes/java/beans/IndexedPropertyDescriptor.java @@ -373,12 +373,13 @@ public class IndexedPropertyDescriptor extends PropertyDescriptor { if (params[0] != Integer.TYPE) { throw new IntrospectionException("non int index to indexed write method"); } - if (indexedPropertyType != null && indexedPropertyType != params[1]) { + if (indexedPropertyType == null || params[1].isAssignableFrom(indexedPropertyType)) { + indexedPropertyType = params[1]; + } else if (!indexedPropertyType.isAssignableFrom(params[1])) { throw new IntrospectionException( "type mismatch between indexed read and indexed write methods: " + getName()); } - indexedPropertyType = params[1]; } Class propertyType = getPropertyType(); if (propertyType != null && (!propertyType.isArray() || diff --git a/jdk/src/share/classes/java/beans/Introspector.java b/jdk/src/share/classes/java/beans/Introspector.java index fc8b21856d6..61745dd9efa 100644 --- a/jdk/src/share/classes/java/beans/Introspector.java +++ b/jdk/src/share/classes/java/beans/Introspector.java @@ -684,8 +684,7 @@ public class Introspector { ipd = (IndexedPropertyDescriptor)pd; if (ipd.getIndexedWriteMethod() != null) { if (igpd != null) { - if (igpd.getIndexedPropertyType() - == ipd.getIndexedPropertyType()) { + if (isAssignable(igpd.getIndexedPropertyType(), ipd.getIndexedPropertyType())) { if (ispd != null) { ispd = new IndexedPropertyDescriptor(ispd, ipd); } else { @@ -703,7 +702,7 @@ public class Introspector { } else { if (pd.getWriteMethod() != null) { if (gpd != null) { - if (gpd.getPropertyType() == pd.getPropertyType()) { + if (isAssignable(gpd.getPropertyType(), pd.getPropertyType())) { if (spd != null) { spd = new PropertyDescriptor(spd, pd); } else { @@ -806,6 +805,10 @@ public class Introspector { } } + private static boolean isAssignable(Class current, Class candidate) { + return current == null ? candidate == null : current.isAssignableFrom(candidate); + } + /** * Adds the property descriptor to the indexedproperty descriptor only if the * types are the same. diff --git a/jdk/src/share/classes/java/io/DataInput.java b/jdk/src/share/classes/java/io/DataInput.java index c61aeb58eda..3e0f0ddbd22 100644 --- a/jdk/src/share/classes/java/io/DataInput.java +++ b/jdk/src/share/classes/java/io/DataInput.java @@ -444,7 +444,7 @@ interface DataInput { * a {@code double} value. It does this * by first constructing a {@code long} * value in exactly the manner - * of the {@code readlong} + * of the {@code readLong} * method, then converting this {@code long} * value to a {@code double} in exactly * the manner of the method {@code Double.longBitsToDouble}. diff --git a/jdk/src/share/classes/java/io/ObjectOutputStream.java b/jdk/src/share/classes/java/io/ObjectOutputStream.java index c851b3a641a..612bb4eb16b 100644 --- a/jdk/src/share/classes/java/io/ObjectOutputStream.java +++ b/jdk/src/share/classes/java/io/ObjectOutputStream.java @@ -1248,7 +1248,7 @@ public class ObjectOutputStream handles.assign(unshared ? null : desc); Class cl = desc.forClass(); - Class[] ifaces = cl.getInterfaces(); + Class[] ifaces = cl.getInterfaces(); bout.writeInt(ifaces.length); for (int i = 0; i < ifaces.length; i++) { bout.writeUTF(ifaces[i].getName()); diff --git a/jdk/src/share/classes/java/io/ObjectStreamClass.java b/jdk/src/share/classes/java/io/ObjectStreamClass.java index 04873c8a85d..5667690a749 100644 --- a/jdk/src/share/classes/java/io/ObjectStreamClass.java +++ b/jdk/src/share/classes/java/io/ObjectStreamClass.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 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 @@ -1746,7 +1746,7 @@ public class ObjectStreamClass implements Serializable { dout.writeUTF("()V"); } - Constructor[] cons = cl.getDeclaredConstructors(); + Constructor[] cons = cl.getDeclaredConstructors(); MemberSignature[] consSigs = new MemberSignature[cons.length]; for (int i = 0; i < cons.length; i++) { consSigs[i] = new MemberSignature(cons[i]); diff --git a/jdk/src/share/classes/java/lang/String.java b/jdk/src/share/classes/java/lang/String.java index 9223c0ab54f..e0a73d55752 100644 --- a/jdk/src/share/classes/java/lang/String.java +++ b/jdk/src/share/classes/java/lang/String.java @@ -122,14 +122,9 @@ public final class String /** * Class String is special cased within the Serialization Stream Protocol. * - * A String instance is written initially into an ObjectOutputStream in the - * following format: - *
-     *      {@code TC_STRING} (utf String)
-     * 
- * The String is written by method {@code DataOutput.writeUTF}. - * A new handle is generated to refer to all future references to the - * string instance within the stream. + * A String instance is written into an ObjectOutputStream according to + * + * Object Serialization Specification, Section 6.2, "Stream Elements" */ private static final ObjectStreamField[] serialPersistentFields = new ObjectStreamField[0]; @@ -2242,6 +2237,11 @@ public final class String * expression does not match any part of the input then the resulting array * has just one element, namely this string. * + *

When there is a positive-width match at the beginning of this + * string then an empty leading substring is included at the beginning + * of the resulting array. A zero-width match at the beginning however + * never produces such empty leading substring. + * *

The {@code limit} parameter controls the number of times the * pattern is applied and therefore affects the length of the resulting * array. If the limit n is greater than zero then the pattern diff --git a/jdk/src/share/classes/java/lang/System.java b/jdk/src/share/classes/java/lang/System.java index f68a5401704..69d1d0fe1ef 100644 --- a/jdk/src/share/classes/java/lang/System.java +++ b/jdk/src/share/classes/java/lang/System.java @@ -1263,6 +1263,9 @@ public final class System { public Thread newThreadWithAcc(Runnable target, AccessControlContext acc) { return new Thread(target, acc); } + public void invokeFinalize(Object o) throws Throwable { + o.finalize(); + } }); } } diff --git a/jdk/src/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java b/jdk/src/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java index a85c505c0f8..2fc8618cbc5 100644 --- a/jdk/src/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java +++ b/jdk/src/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 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 @@ -51,7 +51,7 @@ import static jdk.internal.org.objectweb.asm.Opcodes.*; /* package */ final class InnerClassLambdaMetafactory extends AbstractValidatingLambdaMetafactory { private static final Unsafe UNSAFE = Unsafe.getUnsafe(); - private static final int CLASSFILE_VERSION = 51; + private static final int CLASSFILE_VERSION = 52; private static final String METHOD_DESCRIPTOR_VOID = Type.getMethodDescriptor(Type.VOID_TYPE); private static final String JAVA_LANG_OBJECT = "java/lang/Object"; private static final String NAME_CTOR = ""; @@ -465,7 +465,9 @@ import static jdk.internal.org.objectweb.asm.Opcodes.*; convertArgumentTypes(methodType); // Invoke the method we want to forward to - visitMethodInsn(invocationOpcode(), implMethodClassName, implMethodName, implMethodDesc); + visitMethodInsn(invocationOpcode(), implMethodClassName, + implMethodName, implMethodDesc, + implDefiningClass.isInterface()); // Convert the return value (if any) and return it // Note: if adapting from non-void to void, the 'return' diff --git a/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java b/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java index 639b3628fa5..5a3ee424b1a 100644 --- a/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java +++ b/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java @@ -275,7 +275,7 @@ class InvokerBytecodeGenerator { */ private void classFilePrologue() { cw = new ClassWriter(ClassWriter.COMPUTE_MAXS + ClassWriter.COMPUTE_FRAMES); - cw.visit(Opcodes.V1_6, Opcodes.ACC_PUBLIC + Opcodes.ACC_FINAL + Opcodes.ACC_SUPER, className, null, superName, null); + cw.visit(Opcodes.V1_8, Opcodes.ACC_PUBLIC + Opcodes.ACC_FINAL + Opcodes.ACC_SUPER, className, null, superName, null); cw.visitSource(sourceFile, null); String invokerDesc = invokerType.toMethodDescriptorString(); @@ -646,7 +646,8 @@ class InvokerBytecodeGenerator { // invocation if (member.isMethod()) { mtype = member.getMethodType().toMethodDescriptorString(); - mv.visitMethodInsn(refKindOpcode(refKind), cname, mname, mtype); + mv.visitMethodInsn(refKindOpcode(refKind), cname, mname, mtype, + member.getDeclaringClass().isInterface()); } else { mtype = MethodType.toFieldDescriptorString(member.getFieldType()); mv.visitFieldInsn(refKindOpcode(refKind), cname, mname, mtype); diff --git a/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java b/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java index 0d6ed2da06a..eca236ce308 100644 --- a/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java +++ b/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java @@ -744,8 +744,11 @@ import static java.lang.invoke.MethodHandles.Lookup.IMPL_LOOKUP; MethodHandle ginvoker = GuardWithCatch.INVOKES[nargs].bindReceiver(gguard); return makePairwiseConvert(ginvoker, type, 2); } else { + target = target.asType(type.changeReturnType(Object.class)); MethodHandle gtarget = makeSpreadArguments(target, Object[].class, 0, nargs); - catcher = catcher.asType(ctype.changeParameterType(0, Throwable.class)); + MethodType catcherType = ctype.changeParameterType(0, Throwable.class) + .changeReturnType(Object.class); + catcher = catcher.asType(catcherType); MethodHandle gcatcher = makeSpreadArguments(catcher, Object[].class, 1, nargs); GuardWithCatch gguard = new GuardWithCatch(gtarget, exType, gcatcher); if (gtarget == null || gcatcher == null) throw new InternalError(); diff --git a/jdk/src/share/classes/java/lang/invoke/MethodType.java b/jdk/src/share/classes/java/lang/invoke/MethodType.java index cfef437cda6..214ca6ce48c 100644 --- a/jdk/src/share/classes/java/lang/invoke/MethodType.java +++ b/jdk/src/share/classes/java/lang/invoke/MethodType.java @@ -32,6 +32,7 @@ import java.lang.ref.ReferenceQueue; import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.Objects; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.ConcurrentHashMap; import sun.invoke.util.BytecodeDescriptor; @@ -98,13 +99,25 @@ class MethodType implements java.io.Serializable { private @Stable MethodTypeForm form; // erased form, plus cached data about primitives private @Stable MethodType wrapAlt; // alternative wrapped/unwrapped version private @Stable Invokers invokers; // cache of handy higher-order adapters + private @Stable String methodDescriptor; // cache for toMethodDescriptorString /** * Check the given parameters for validity and store them into the final fields. */ - private MethodType(Class rtype, Class[] ptypes) { + private MethodType(Class rtype, Class[] ptypes, boolean trusted) { checkRtype(rtype); checkPtypes(ptypes); + this.rtype = rtype; + // defensively copy the array passed in by the user + this.ptypes = trusted ? ptypes : Arrays.copyOf(ptypes, ptypes.length); + } + + /** + * Construct a temporary unchecked instance of MethodType for use only as a key to the intern table. + * Does not check the given parameters for validity, and must be discarded after it is used as a searching key. + * The parameters are reversed for this constructor, so that is is not accidentally used. + */ + private MethodType(Class[] ptypes, Class rtype) { this.rtype = rtype; this.ptypes = ptypes; } @@ -146,20 +159,21 @@ class MethodType implements java.io.Serializable { /*non-public*/ static final int MAX_MH_INVOKER_ARITY = MAX_MH_ARITY-1; // deduct one more for invoker private static void checkRtype(Class rtype) { - rtype.equals(rtype); // null check + Objects.requireNonNull(rtype); } - private static int checkPtype(Class ptype) { - ptype.getClass(); //NPE + private static void checkPtype(Class ptype) { + Objects.requireNonNull(ptype); if (ptype == void.class) throw newIllegalArgumentException("parameter type cannot be void"); - if (ptype == double.class || ptype == long.class) return 1; - return 0; } /** Return number of extra slots (count of long/double args). */ private static int checkPtypes(Class[] ptypes) { int slots = 0; for (Class ptype : ptypes) { - slots += checkPtype(ptype); + checkPtype(ptype); + if (ptype == double.class || ptype == long.class) { + slots++; + } } checkSlotCount(ptypes.length + slots); return slots; @@ -284,20 +298,16 @@ class MethodType implements java.io.Serializable { */ /*trusted*/ static MethodType makeImpl(Class rtype, Class[] ptypes, boolean trusted) { + MethodType mt = internTable.get(new MethodType(ptypes, rtype)); + if (mt != null) + return mt; if (ptypes.length == 0) { ptypes = NO_PTYPES; trusted = true; } - MethodType mt1 = new MethodType(rtype, ptypes); - MethodType mt0 = internTable.get(mt1); - if (mt0 != null) - return mt0; - if (!trusted) - // defensively copy the array passed in by the user - mt1 = new MethodType(rtype, ptypes.clone()); + mt = new MethodType(rtype, ptypes, trusted); // promote the object to the Real Thing, and reprobe - MethodTypeForm form = MethodTypeForm.findForm(mt1); - mt1.form = form; - return internTable.add(mt1); + mt.form = MethodTypeForm.findForm(mt); + return internTable.add(mt); } private static final MethodType[] objectOnlyTypes = new MethodType[20]; @@ -919,7 +929,12 @@ class MethodType implements java.io.Serializable { * @return the bytecode type descriptor representation */ public String toMethodDescriptorString() { - return BytecodeDescriptor.unparse(this); + String desc = methodDescriptor; + if (desc == null) { + desc = BytecodeDescriptor.unparse(this); + methodDescriptor = desc; + } + return desc; } /*non-public*/ static String toFieldDescriptorString(Class cls) { diff --git a/jdk/src/share/classes/java/lang/invoke/TypeConvertingMethodAdapter.java b/jdk/src/share/classes/java/lang/invoke/TypeConvertingMethodAdapter.java index f65049df036..5d8e1bf82f5 100644 --- a/jdk/src/share/classes/java/lang/invoke/TypeConvertingMethodAdapter.java +++ b/jdk/src/share/classes/java/lang/invoke/TypeConvertingMethodAdapter.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 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 @@ -35,7 +35,7 @@ import static sun.invoke.util.Wrapper.*; class TypeConvertingMethodAdapter extends MethodVisitor { TypeConvertingMethodAdapter(MethodVisitor mv) { - super(Opcodes.ASM4, mv); + super(Opcodes.ASM5, mv); } private static final int NUM_WRAPPERS = Wrapper.values().length; diff --git a/jdk/src/share/classes/java/lang/ref/Finalizer.java b/jdk/src/share/classes/java/lang/ref/Finalizer.java index 2be6466931b..f37b3e79b9c 100644 --- a/jdk/src/share/classes/java/lang/ref/Finalizer.java +++ b/jdk/src/share/classes/java/lang/ref/Finalizer.java @@ -27,17 +27,14 @@ package java.lang.ref; import java.security.PrivilegedAction; import java.security.AccessController; - +import sun.misc.JavaLangAccess; +import sun.misc.SharedSecrets; +import sun.misc.VM; final class Finalizer extends FinalReference { /* Package-private; must be in same package as the Reference class */ - /* A native method that invokes an arbitrary object's finalize method is - required since the finalize method is protected - */ - static native void invokeFinalizeMethod(Object o) throws Throwable; - private static ReferenceQueue queue = new ReferenceQueue<>(); private static Finalizer unfinalized = null; private static final Object lock = new Object(); @@ -90,7 +87,7 @@ final class Finalizer extends FinalReference { /* Package-private; must new Finalizer(finalizee); } - private void runFinalizer() { + private void runFinalizer(JavaLangAccess jla) { synchronized (this) { if (hasBeenFinalized()) return; remove(); @@ -98,7 +95,8 @@ final class Finalizer extends FinalReference { /* Package-private; must try { Object finalizee = this.get(); if (finalizee != null && !(finalizee instanceof java.lang.Enum)) { - invokeFinalizeMethod(finalizee); + jla.invokeFinalize(finalizee); + /* Clear stack slot containing this variable, to decrease the chances of false retention with a conservative GC */ finalizee = null; @@ -141,16 +139,21 @@ final class Finalizer extends FinalReference { /* Package-private; must /* Called by Runtime.runFinalization() */ static void runFinalization() { + if (!VM.isBooted()) { + return; + } + forkSecondaryFinalizer(new Runnable() { private volatile boolean running; public void run() { if (running) return; + final JavaLangAccess jla = SharedSecrets.getJavaLangAccess(); running = true; for (;;) { Finalizer f = (Finalizer)queue.poll(); if (f == null) break; - f.runFinalizer(); + f.runFinalizer(jla); } } }); @@ -158,11 +161,16 @@ final class Finalizer extends FinalReference { /* Package-private; must /* Invoked by java.lang.Shutdown */ static void runAllFinalizers() { + if (!VM.isBooted()) { + return; + } + forkSecondaryFinalizer(new Runnable() { private volatile boolean running; public void run() { if (running) return; + final JavaLangAccess jla = SharedSecrets.getJavaLangAccess(); running = true; for (;;) { Finalizer f; @@ -171,7 +179,7 @@ final class Finalizer extends FinalReference { /* Package-private; must if (f == null) break; unfinalized = f.next; } - f.runFinalizer(); + f.runFinalizer(jla); }}}); } @@ -183,13 +191,25 @@ final class Finalizer extends FinalReference { /* Package-private; must public void run() { if (running) return; + + // Finalizer thread starts before System.initializeSystemClass + // is called. Wait until JavaLangAccess is available + while (!VM.isBooted()) { + // delay until VM completes initialization + try { + VM.awaitBooted(); + } catch (InterruptedException x) { + // ignore and continue + } + } + final JavaLangAccess jla = SharedSecrets.getJavaLangAccess(); running = true; for (;;) { try { Finalizer f = (Finalizer)queue.remove(); - f.runFinalizer(); + f.runFinalizer(jla); } catch (InterruptedException x) { - continue; + // ignore and continue } } } diff --git a/jdk/src/share/classes/java/lang/reflect/Executable.java b/jdk/src/share/classes/java/lang/reflect/Executable.java index d033e7e9300..95665706c2b 100644 --- a/jdk/src/share/classes/java/lang/reflect/Executable.java +++ b/jdk/src/share/classes/java/lang/reflect/Executable.java @@ -240,6 +240,7 @@ public abstract class Executable extends AccessibleObject * declared or implicitly declared or neither) for the executable * represented by this object. * + * @since 1.8 * @return The number of formal parameters for the executable this * object represents */ @@ -290,6 +291,7 @@ public abstract class Executable extends AccessibleObject * have unique names, or names that are legal identifiers in the * Java programming language (JLS 3.8). * + * @since 1.8 * @throws MalformedParametersException if the class file contains * a MethodParameters attribute that is improperly formatted. * @return an array of {@code Parameter} objects representing all diff --git a/jdk/src/share/classes/java/lang/reflect/Proxy.java b/jdk/src/share/classes/java/lang/reflect/Proxy.java index f2e4eda4e62..20e62b642ca 100644 --- a/jdk/src/share/classes/java/lang/reflect/Proxy.java +++ b/jdk/src/share/classes/java/lang/reflect/Proxy.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 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 @@ -494,9 +494,10 @@ public class Proxy implements java.io.Serializable { private final int hash; private final WeakReference>[] refs; + @SuppressWarnings("unchecked") KeyX(Class[] interfaces) { hash = Arrays.hashCode(interfaces); - refs = new WeakReference[interfaces.length]; + refs = (WeakReference>[])new WeakReference[interfaces.length]; for (int i = 0; i < interfaces.length; i++) { refs[i] = new WeakReference<>(interfaces[i]); } diff --git a/jdk/src/share/classes/java/net/HostPortrange.java b/jdk/src/share/classes/java/net/HostPortrange.java index fc5e3d98a20..3c924d8bfc0 100644 --- a/jdk/src/share/classes/java/net/HostPortrange.java +++ b/jdk/src/share/classes/java/net/HostPortrange.java @@ -114,7 +114,7 @@ class HostPortrange { if (hoststr.equals("*")) { hoststr = ""; } else if (hoststr.startsWith("*.")) { - hoststr = hoststr.substring(1).toLowerCase(); // leave the '.' ? + hoststr = toLowerCase(hoststr.substring(1)); } else { throw new IllegalArgumentException("invalid host wildcard specification"); } @@ -147,7 +147,7 @@ class HostPortrange { hoststr = sb.toString(); } else { // regular domain name - hoststr = hoststr.toLowerCase(); + hoststr = toLowerCase(hoststr); } } } @@ -161,6 +161,38 @@ class HostPortrange { } } + static final int CASE_DIFF = 'A' - 'a'; + + /** + * Convert to lower case, and check that all chars are ascii + * alphanumeric, '-' or '.' only. + */ + static String toLowerCase(String s) { + int len = s.length(); + StringBuilder sb = null; + + for (int i=0; i= 'a' && c <= 'z') || (c == '.')) { + if (sb != null) + sb.append(c); + } else if ((c >= '0' && c <= '9') || (c == '-')) { + if (sb != null) + sb.append(c); + } else if (c >= 'A' && c <= 'Z') { + if (sb == null) { + sb = new StringBuilder(len); + sb.append(s, 0, i); + } + sb.append((char)(c - CASE_DIFF)); + } else { + throw new IllegalArgumentException("Invalid characters in hostname"); + } + } + return sb == null ? s : sb.toString(); + } + + public boolean literal() { return literal; } diff --git a/jdk/src/share/classes/java/net/InetAddress.java b/jdk/src/share/classes/java/net/InetAddress.java index 3bb7249d72a..99ec1acb97f 100644 --- a/jdk/src/share/classes/java/net/InetAddress.java +++ b/jdk/src/share/classes/java/net/InetAddress.java @@ -1135,7 +1135,7 @@ class InetAddress implements java.io.Serializable { // see if it is IPv4 address addr = IPAddressUtil.textToNumericFormatV4(host); if (addr == null) { - // see if it is IPv6 address + // This is supposed to be an IPv6 literal // Check if a numeric or string zone id is present int pos; if ((pos=host.indexOf ("%")) != -1) { @@ -1144,7 +1144,9 @@ class InetAddress implements java.io.Serializable { ifname = host.substring (pos+1); } } - addr = IPAddressUtil.textToNumericFormatV6(host); + if ((addr = IPAddressUtil.textToNumericFormatV6(host)) == null && host.contains(":")) { + throw new UnknownHostException(host + ": invalid IPv6 address"); + } } else if (ipv6Expected) { // Means an IPv4 litteral between brackets! throw new UnknownHostException("["+host+"]"); @@ -1162,10 +1164,10 @@ class InetAddress implements java.io.Serializable { } return ret; } - } else if (ipv6Expected) { - // We were expecting an IPv6 Litteral, but got something else - throw new UnknownHostException("["+host+"]"); - } + } else if (ipv6Expected) { + // We were expecting an IPv6 Litteral, but got something else + throw new UnknownHostException("["+host+"]"); + } return getAllByName0(host, reqAddr, true); } diff --git a/jdk/src/share/classes/java/net/URLPermission.java b/jdk/src/share/classes/java/net/URLPermission.java index 7ad56a1c20f..13472a9e5ab 100644 --- a/jdk/src/share/classes/java/net/URLPermission.java +++ b/jdk/src/share/classes/java/net/URLPermission.java @@ -426,7 +426,10 @@ public final class URLPermission extends Permission { this.ssp = url.substring(delim + 1); if (!ssp.startsWith("//")) { - this.authority = new Authority(scheme, ssp.toLowerCase()); + if (!ssp.equals("*")) { + throw new IllegalArgumentException("invalid URL string"); + } + this.authority = new Authority(scheme, "*"); return; } String authpath = ssp.substring(2); diff --git a/jdk/src/share/classes/java/nio/file/TempFileHelper.java b/jdk/src/share/classes/java/nio/file/TempFileHelper.java index 7c348d5c8dd..8d171dee269 100644 --- a/jdk/src/share/classes/java/nio/file/TempFileHelper.java +++ b/jdk/src/share/classes/java/nio/file/TempFileHelper.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 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 @@ -81,7 +81,7 @@ class TempFileHelper { String prefix, String suffix, boolean createDirectory, - FileAttribute[] attrs) + FileAttribute[] attrs) throws IOException { if (prefix == null) @@ -155,7 +155,7 @@ class TempFileHelper { static Path createTempFile(Path dir, String prefix, String suffix, - FileAttribute[] attrs) + FileAttribute[] attrs) throws IOException { return create(dir, prefix, suffix, false, attrs); @@ -167,7 +167,7 @@ class TempFileHelper { */ static Path createTempDirectory(Path dir, String prefix, - FileAttribute[] attrs) + FileAttribute[] attrs) throws IOException { return create(dir, prefix, null, true, attrs); diff --git a/jdk/src/share/classes/java/time/format/DateTimeParseContext.java b/jdk/src/share/classes/java/time/format/DateTimeParseContext.java index 3157747a6f7..026a595896c 100644 --- a/jdk/src/share/classes/java/time/format/DateTimeParseContext.java +++ b/jdk/src/share/classes/java/time/format/DateTimeParseContext.java @@ -369,7 +369,8 @@ final class DateTimeParseContext { Objects.requireNonNull(chrono, "chrono"); currentParsed().chrono = chrono; if (chronoListeners != null && !chronoListeners.isEmpty()) { - Consumer[] tmp = new Consumer[1]; + @SuppressWarnings({"rawtypes", "unchecked"}) + Consumer[] tmp = new Consumer[1]; Consumer[] listeners = chronoListeners.toArray(tmp); chronoListeners.clear(); for (Consumer l : listeners) { diff --git a/jdk/src/share/classes/java/time/format/Parsed.java b/jdk/src/share/classes/java/time/format/Parsed.java index 38eda948f82..71961003e23 100644 --- a/jdk/src/share/classes/java/time/format/Parsed.java +++ b/jdk/src/share/classes/java/time/format/Parsed.java @@ -266,14 +266,14 @@ final class Parsed implements TemporalAccessor { TemporalAccessor resolvedObject = targetField.resolve(fieldValues, this, resolverStyle); if (resolvedObject != null) { if (resolvedObject instanceof ChronoZonedDateTime) { - ChronoZonedDateTime czdt = (ChronoZonedDateTime) resolvedObject; + ChronoZonedDateTime czdt = (ChronoZonedDateTime) resolvedObject; if (zone.equals(czdt.getZone()) == false) { throw new DateTimeException("ChronoZonedDateTime must use the effective parsed zone: " + zone); } resolvedObject = czdt.toLocalDateTime(); } if (resolvedObject instanceof ChronoLocalDateTime) { - ChronoLocalDateTime cldt = (ChronoLocalDateTime) resolvedObject; + ChronoLocalDateTime cldt = (ChronoLocalDateTime) resolvedObject; updateCheckConflict(cldt.toLocalTime(), Period.ZERO); updateCheckConflict(cldt.toLocalDate()); changedCount++; diff --git a/jdk/src/share/classes/java/util/Base64.java b/jdk/src/share/classes/java/util/Base64.java index db281388791..ac5a5d6be92 100644 --- a/jdk/src/share/classes/java/util/Base64.java +++ b/jdk/src/share/classes/java/util/Base64.java @@ -138,7 +138,7 @@ public class Base64 { if (lineLength <= 0) { return Encoder.RFC4648; } - return new Encoder(false, lineSeparator, lineLength >> 2 << 2); + return new Encoder(false, lineSeparator, lineLength >> 2 << 2, true); } /** @@ -192,11 +192,13 @@ public class Base64 { private final byte[] newline; private final int linemax; private final boolean isURL; + private final boolean doPadding; - private Encoder(boolean isURL, byte[] newline, int linemax) { + private Encoder(boolean isURL, byte[] newline, int linemax, boolean doPadding) { this.isURL = isURL; this.newline = newline; this.linemax = linemax; + this.doPadding = doPadding; } /** @@ -228,9 +230,22 @@ public class Base64 { private static final int MIMELINEMAX = 76; private static final byte[] CRLF = new byte[] {'\r', '\n'}; - static final Encoder RFC4648 = new Encoder(false, null, -1); - static final Encoder RFC4648_URLSAFE = new Encoder(true, null, -1); - static final Encoder RFC2045 = new Encoder(false, CRLF, MIMELINEMAX); + static final Encoder RFC4648 = new Encoder(false, null, -1, true); + static final Encoder RFC4648_URLSAFE = new Encoder(true, null, -1, true); + static final Encoder RFC2045 = new Encoder(false, CRLF, MIMELINEMAX, true); + + private final int outLength(int srclen) { + int len = 0; + if (doPadding) { + len = 4 * ((srclen + 2) / 3); + } else { + int n = srclen % 3; + len = 4 * (srclen / 3) + (n == 0 ? 0 : n + 1); + } + if (linemax > 0) // line separators + len += (len - 1) / linemax * newline.length; + return len; + } /** * Encodes all bytes from the specified byte array into a newly-allocated @@ -243,9 +258,7 @@ public class Base64 { * encoded bytes. */ public byte[] encode(byte[] src) { - int len = 4 * ((src.length + 2) / 3); // dst array size - if (linemax > 0) // line separators - len += (len - 1) / linemax * newline.length; + int len = outLength(src.length); // dst array size byte[] dst = new byte[len]; int ret = encode0(src, 0, src.length, dst); if (ret != dst.length) @@ -273,10 +286,7 @@ public class Base64 { * space for encoding all input bytes. */ public int encode(byte[] src, byte[] dst) { - int len = 4 * ((src.length + 2) / 3); // dst array size - if (linemax > 0) { - len += (len - 1) / linemax * newline.length; - } + int len = outLength(src.length); // dst array size if (dst.length < len) throw new IllegalArgumentException( "Output byte array is too small for encoding all input bytes"); @@ -321,9 +331,7 @@ public class Base64 { * @return A newly-allocated byte buffer containing the encoded bytes. */ public ByteBuffer encode(ByteBuffer buffer) { - int len = 4 * ((buffer.remaining() + 2) / 3); - if (linemax > 0) - len += (len - 1) / linemax * newline.length; + int len = outLength(buffer.remaining()); byte[] dst = new byte[len]; int ret = 0; if (buffer.hasArray()) { @@ -415,7 +423,25 @@ public class Base64 { public OutputStream wrap(OutputStream os) { Objects.requireNonNull(os); return new EncOutputStream(os, isURL ? toBase64URL : toBase64, - newline, linemax); + newline, linemax, doPadding); + } + + /** + * Returns an encoder instance that encodes equivalently to this one, + * but without adding any padding character at the end of the encoded + * byte data. + * + *

The encoding scheme of this encoder instance is unaffected by + * this invocation. The returned encoder instance should be used for + * non-padding encoding operation. + * + * @return an equivalent encoder that encodes without adding any + * padding character at the end + */ + public Encoder withoutPadding() { + if (!doPadding) + return this; + return new Encoder(isURL, newline, linemax, false); } private int encodeArray(ByteBuffer src, ByteBuffer dst, int bytesOut) { @@ -476,13 +502,17 @@ public class Base64 { da[dp++] = (byte)base64[b0 >> 2]; if (sp == sl) { da[dp++] = (byte)base64[(b0 << 4) & 0x3f]; - da[dp++] = '='; - da[dp++] = '='; + if (doPadding) { + da[dp++] = '='; + da[dp++] = '='; + } } else { int b1 = sa[sp++] & 0xff; da[dp++] = (byte)base64[(b0 << 4) & 0x3f | (b1 >> 4)]; da[dp++] = (byte)base64[(b1 << 2) & 0x3f]; - da[dp++] = '='; + if (doPadding) { + da[dp++] = '='; + } } } return dp - dp00 + bytesOut; @@ -548,13 +578,17 @@ public class Base64 { dst.put(dp++, (byte)base64[b0 >> 2]); if (sp == src.limit()) { dst.put(dp++, (byte)base64[(b0 << 4) & 0x3f]); - dst.put(dp++, (byte)'='); - dst.put(dp++, (byte)'='); + if (doPadding) { + dst.put(dp++, (byte)'='); + dst.put(dp++, (byte)'='); + } } else { int b1 = src.get(sp++) & 0xff; dst.put(dp++, (byte)base64[(b0 << 4) & 0x3f | (b1 >> 4)]); dst.put(dp++, (byte)base64[(b1 << 2) & 0x3f]); - dst.put(dp++, (byte)'='); + if (doPadding) { + dst.put(dp++, (byte)'='); + } } } return dp - dp00 + bytesOut; @@ -597,13 +631,17 @@ public class Base64 { dst[dp++] = (byte)base64[b0 >> 2]; if (sp == end) { dst[dp++] = (byte)base64[(b0 << 4) & 0x3f]; - dst[dp++] = '='; - dst[dp++] = '='; + if (doPadding) { + dst[dp++] = '='; + dst[dp++] = '='; + } } else { int b1 = src[sp++] & 0xff; dst[dp++] = (byte)base64[(b0 << 4) & 0x3f | (b1 >> 4)]; dst[dp++] = (byte)base64[(b1 << 2) & 0x3f]; - dst[dp++] = '='; + if (doPadding) { + dst[dp++] = '='; + } } } return dp; @@ -1149,14 +1187,16 @@ public class Base64 { private final char[] base64; // byte->base64 mapping private final byte[] newline; // line separator, if needed private final int linemax; + private final boolean doPadding;// whether or not to pad private int linepos = 0; - EncOutputStream(OutputStream os, - char[] base64, byte[] newline, int linemax) { + EncOutputStream(OutputStream os, char[] base64, + byte[] newline, int linemax, boolean doPadding) { super(os); this.base64 = base64; this.newline = newline; this.linemax = linemax; + this.doPadding = doPadding; } @Override @@ -1228,14 +1268,18 @@ public class Base64 { checkNewline(); out.write(base64[b0 >> 2]); out.write(base64[(b0 << 4) & 0x3f]); - out.write('='); - out.write('='); + if (doPadding) { + out.write('='); + out.write('='); + } } else if (leftover == 2) { checkNewline(); out.write(base64[b0 >> 2]); out.write(base64[(b0 << 4) & 0x3f | (b1 >> 4)]); out.write(base64[(b1 << 2) & 0x3f]); - out.write('='); + if (doPadding) { + out.write('='); + } } leftover = 0; out.close(); diff --git a/jdk/src/share/classes/java/util/IdentityHashMap.java b/jdk/src/share/classes/java/util/IdentityHashMap.java index 40808213894..3db40588d77 100644 --- a/jdk/src/share/classes/java/util/IdentityHashMap.java +++ b/jdk/src/share/classes/java/util/IdentityHashMap.java @@ -1243,7 +1243,7 @@ public class IdentityHashMap if (ti >= size) { throw new ConcurrentModificationException(); } - a[ti++] = (T) new AbstractMap.SimpleEntry(unmaskNull(key), tab[si + 1]); + a[ti++] = (T) new AbstractMap.SimpleEntry<>(unmaskNull(key), tab[si + 1]); } } // fewer elements than expected or concurrent modification from other thread detected diff --git a/jdk/src/share/classes/java/util/concurrent/ForkJoinPool.java b/jdk/src/share/classes/java/util/concurrent/ForkJoinPool.java index 749f8b57361..edf17873b60 100644 --- a/jdk/src/share/classes/java/util/concurrent/ForkJoinPool.java +++ b/jdk/src/share/classes/java/util/concurrent/ForkJoinPool.java @@ -1820,7 +1820,7 @@ public class ForkJoinPool extends AbstractExecutorService { } } for (;;) { // help stealer or descend to its stealer - ForkJoinTask[] a; int b; + ForkJoinTask[] a; int b; if (subtask.status < 0) // surround probes with continue restart; // consistency checks if ((b = v.base) - v.top < 0 && (a = v.array) != null) { diff --git a/jdk/src/share/classes/java/util/concurrent/ScheduledThreadPoolExecutor.java b/jdk/src/share/classes/java/util/concurrent/ScheduledThreadPoolExecutor.java index 458828c90ed..24ab59acd29 100644 --- a/jdk/src/share/classes/java/util/concurrent/ScheduledThreadPoolExecutor.java +++ b/jdk/src/share/classes/java/util/concurrent/ScheduledThreadPoolExecutor.java @@ -1253,11 +1253,11 @@ public class ScheduledThreadPoolExecutor * Snapshot iterator that works off copy of underlying q array. */ private class Itr implements Iterator { - final RunnableScheduledFuture[] array; + final RunnableScheduledFuture[] array; int cursor = 0; // index of next element to return int lastRet = -1; // index of last element, or -1 if no such - Itr(RunnableScheduledFuture[] array) { + Itr(RunnableScheduledFuture[] array) { this.array = array; } diff --git a/jdk/src/share/classes/java/util/logging/Logger.java b/jdk/src/share/classes/java/util/logging/Logger.java index efc18c520c0..1976512cac8 100644 --- a/jdk/src/share/classes/java/util/logging/Logger.java +++ b/jdk/src/share/classes/java/util/logging/Logger.java @@ -351,7 +351,7 @@ public class Logger { ? caller.getClassLoader() : null); if (callersClassLoader != null) { - this.callersClassLoaderRef = new WeakReference(callersClassLoader); + this.callersClassLoaderRef = new WeakReference<>(callersClassLoader); } } diff --git a/jdk/src/share/classes/java/util/logging/Logging.java b/jdk/src/share/classes/java/util/logging/Logging.java index e22a82e9d19..740a533063d 100644 --- a/jdk/src/share/classes/java/util/logging/Logging.java +++ b/jdk/src/share/classes/java/util/logging/Logging.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 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 @@ -55,11 +55,11 @@ class Logging implements LoggingMXBean { } public List getLoggerNames() { - Enumeration loggers = logManager.getLoggerNames(); + Enumeration loggers = logManager.getLoggerNames(); ArrayList array = new ArrayList<>(); for (; loggers.hasMoreElements();) { - array.add((String) loggers.nextElement()); + array.add(loggers.nextElement()); } return array; } diff --git a/jdk/src/share/classes/java/util/regex/Pattern.java b/jdk/src/share/classes/java/util/regex/Pattern.java index e9a0c67f79d..b5578b6a918 100644 --- a/jdk/src/share/classes/java/util/regex/Pattern.java +++ b/jdk/src/share/classes/java/util/regex/Pattern.java @@ -1142,10 +1142,15 @@ public final class Pattern * input sequence that is terminated by another subsequence that matches * this pattern or is terminated by the end of the input sequence. The * substrings in the array are in the order in which they occur in the - * input. If this pattern does not match any subsequence of the input then + * input. If this pattern does not match any subsequence of the input then * the resulting array has just one element, namely the input sequence in * string form. * + *

When there is a positive-width match at the beginning of the input + * sequence then an empty leading substring is included at the beginning + * of the resulting array. A zero-width match at the beginning however + * never produces such empty leading substring. + * *

The limit parameter controls the number of times the * pattern is applied and therefore affects the length of the resulting * array. If the limit n is greater than zero then the pattern @@ -1185,7 +1190,6 @@ public final class Pattern * { "b", "", ":and:f" } * * - * * @param input * The character sequence to be split * @@ -1204,6 +1208,11 @@ public final class Pattern // Add segments before each match found while(m.find()) { if (!matchLimited || matchList.size() < limit - 1) { + if (index == 0 && index == m.start() && m.start() == m.end()) { + // no empty leading substring included for zero-width match + // at the beginning of the input char sequence. + continue; + } String match = input.subSequence(index, m.start()).toString(); matchList.add(match); index = m.end(); @@ -5755,13 +5764,18 @@ NEXT: while (i <= last) { * input sequence that is terminated by another subsequence that matches * this pattern or is terminated by the end of the input sequence. The * substrings in the stream are in the order in which they occur in the - * input. Trailing empty strings will be discarded and not encountered in + * input. Trailing empty strings will be discarded and not encountered in * the stream. * *

If this pattern does not match any subsequence of the input then * the resulting stream has just one element, namely the input sequence in * string form. * + *

When there is a positive-width match at the beginning of the input + * sequence then an empty leading substring is included at the beginning + * of the stream. A zero-width match at the beginning however never produces + * such empty leading substring. + * *

If the input sequence is mutable, it must remain constant during the * execution of the terminal stream operation. Otherwise, the result of the * terminal stream operation is undefined. @@ -5817,7 +5831,8 @@ NEXT: while (i <= last) { current = matcher.end(); if (!nextElement.isEmpty()) { return true; - } else { + } else if (current > 0) { // no empty leading substring for zero-width + // match at the beginning of the input emptyElementCount++; } } diff --git a/jdk/src/share/classes/javax/management/AttributeList.java b/jdk/src/share/classes/javax/management/AttributeList.java index 9825d93fc19..2fd3bdb6505 100644 --- a/jdk/src/share/classes/javax/management/AttributeList.java +++ b/jdk/src/share/classes/javax/management/AttributeList.java @@ -178,8 +178,8 @@ public class AttributeList extends ArrayList { /** * Inserts the attribute specified as an element at the position specified. * Elements with an index greater than or equal to the current position are - * shifted up. If the index is out of range (index < 0 || index > - * size()) a RuntimeOperationsException should be raised, wrapping the + * shifted up. If the index is out of range {@literal (index < 0 || index > + * size())} a RuntimeOperationsException should be raised, wrapping the * java.lang.IndexOutOfBoundsException thrown. * * @param object The Attribute object to be inserted. @@ -199,7 +199,7 @@ public class AttributeList extends ArrayList { /** * Sets the element at the position specified to be the attribute specified. * The previous element at that position is discarded. If the index is - * out of range (index < 0 || index > size() a RuntimeOperationsException + * out of range {@literal (index < 0 || index > size())} a RuntimeOperationsException * should be raised, wrapping the java.lang.IndexOutOfBoundsException thrown. * * @param object The value to which the attribute element should be set. @@ -234,7 +234,7 @@ public class AttributeList extends ArrayList { * Inserts all of the elements in the AttributeList specified * into this list, starting at the specified position, in the order in which * they are returned by the Iterator of the {@code AttributeList} specified. - * If the index is out of range (index < 0 || index > size() a + * If the index is out of range {@literal (index < 0 || index > size())} a * RuntimeOperationsException should be raised, wrapping the * java.lang.IndexOutOfBoundsException thrown. * diff --git a/jdk/src/share/classes/javax/management/BooleanValueExp.java b/jdk/src/share/classes/javax/management/BooleanValueExp.java index 8aa399a28df..23842612c2e 100644 --- a/jdk/src/share/classes/javax/management/BooleanValueExp.java +++ b/jdk/src/share/classes/javax/management/BooleanValueExp.java @@ -44,12 +44,12 @@ class BooleanValueExp extends QueryEval implements ValueExp { private boolean val = false; - /** Creates a new BooleanValueExp representing the boolean literal .*/ + /** Creates a new BooleanValueExp representing the boolean literal {@code val}.*/ BooleanValueExp(boolean val) { this.val = val; } - /**Creates a new BooleanValueExp representing the Boolean object .*/ + /**Creates a new BooleanValueExp representing the Boolean object {@code val}.*/ BooleanValueExp(Boolean val) { this.val = val.booleanValue(); } diff --git a/jdk/src/share/classes/javax/management/Descriptor.java b/jdk/src/share/classes/javax/management/Descriptor.java index b07447ad590..0cd325fc1cd 100644 --- a/jdk/src/share/classes/javax/management/Descriptor.java +++ b/jdk/src/share/classes/javax/management/Descriptor.java @@ -96,7 +96,7 @@ import javax.management.openmbean.OpenType; * of the mapped Java type, called opendata(J) in the MXBean type mapping rules.

* - * + *
* * * @@ -330,7 +330,7 @@ import javax.management.openmbean.OpenType; * interest outside Model MBeans, for example. But only Model MBeans have * a predefined behavior for these fields.

* - *
NameTypeUsed inMeaning
+ *
* * * diff --git a/jdk/src/share/classes/javax/management/DescriptorKey.java b/jdk/src/share/classes/javax/management/DescriptorKey.java index 64224999731..5ca8ee9bd51 100644 --- a/jdk/src/share/classes/javax/management/DescriptorKey.java +++ b/jdk/src/share/classes/javax/management/DescriptorKey.java @@ -94,7 +94,7 @@ import java.lang.annotation.*; *

then the resulting {@code Descriptor} will contain the following * fields:

* - *
NameTypeUsed inMeaning
+ *
* * * @@ -143,7 +143,7 @@ import java.lang.annotation.*; * or an array of annotations. The value of the field is derived from * the value of the annotation element as follows:

* - *
NameValue
units"bytes"
descriptionResourceKey"bytes.key"
+ *
* * *
Annotation elementDescriptor field
Primitive value ({@code 5}, {@code false}, etc)Wrapped value ({@code Integer.valueOf(5)}, diff --git a/jdk/src/share/classes/javax/management/ImmutableDescriptor.java b/jdk/src/share/classes/javax/management/ImmutableDescriptor.java index 3eff0c25e0b..b2af95e52e7 100644 --- a/jdk/src/share/classes/javax/management/ImmutableDescriptor.java +++ b/jdk/src/share/classes/javax/management/ImmutableDescriptor.java @@ -344,7 +344,7 @@ public class ImmutableDescriptor implements Descriptor { * the given object is also a Descriptor, and if the two Descriptors have * the same field names (possibly differing in case) and the same * associated values. The respective values for a field in the two - * Descriptors are equal if the following conditions hold:

+ * Descriptors are equal if the following conditions hold: * *
    *
  • If one value is null then the other must be too.
  • diff --git a/jdk/src/share/classes/javax/management/JMX.java b/jdk/src/share/classes/javax/management/JMX.java index fe5d9093ac2..ffa53cfe2c9 100644 --- a/jdk/src/share/classes/javax/management/JMX.java +++ b/jdk/src/share/classes/javax/management/JMX.java @@ -217,8 +217,7 @@ public class JMX { } /** - *

    Make a proxy for an MXBean in a local or remote - * MBean Server.

    + * Make a proxy for an MXBean in a local or remote MBean Server. * *

    If you have an MBean Server {@code mbs} containing an * MXBean with {@link ObjectName} {@code name}, and if the @@ -253,7 +252,7 @@ public class JMX { *

  • {@code proxy.setSimpleAttribute("whatever")} will result * in a call to {@code mbs.}{@link * MBeanServerConnection#setAttribute setAttribute}(name, - * new Attribute("SimpleAttribute", "whatever")).

    + * new Attribute("SimpleAttribute", "whatever")).

    * *

    Because {@code String} is a simple type, in the * sense of {@link javax.management.openmbean.SimpleType}, it diff --git a/jdk/src/share/classes/javax/management/MBeanFeatureInfo.java b/jdk/src/share/classes/javax/management/MBeanFeatureInfo.java index ec8e8b622b8..5acd054affe 100644 --- a/jdk/src/share/classes/javax/management/MBeanFeatureInfo.java +++ b/jdk/src/share/classes/javax/management/MBeanFeatureInfo.java @@ -162,7 +162,7 @@ public class MBeanFeatureInfo implements Serializable, DescriptorRead { * Serializes an {@link MBeanFeatureInfo} to an {@link ObjectOutputStream}. * @serialData * For compatibility reasons, an object of this class is serialized as follows. - *

      + *

      * The method {@link ObjectOutputStream#defaultWriteObject defaultWriteObject()} * is called first to serialize the object except the field {@code descriptor} * which is declared as transient. The field {@code descriptor} is serialized @@ -180,7 +180,7 @@ public class MBeanFeatureInfo implements Serializable, DescriptorRead { * {@link ObjectOutputStream#writeObject writeObject(Object obj)} is called * to serialize directly the field {@code descriptor}. *

    - *
+ * * @since 1.6 */ private void writeObject(ObjectOutputStream out) throws IOException { @@ -206,7 +206,7 @@ public class MBeanFeatureInfo implements Serializable, DescriptorRead { * Deserializes an {@link MBeanFeatureInfo} from an {@link ObjectInputStream}. * @serialData * For compatibility reasons, an object of this class is deserialized as follows. - *
    + *

    * The method {@link ObjectInputStream#defaultReadObject defaultReadObject()} * is called first to deserialize the object except the field * {@code descriptor}, which is not serialized in the default way. Then the method @@ -228,7 +228,7 @@ public class MBeanFeatureInfo implements Serializable, DescriptorRead { * to {@link ImmutableDescriptor#EMPTY_DESCRIPTOR EMPTY_DESCRIPTOR} *

  • Any other value. A {@link StreamCorruptedException} is thrown.
  • *
- * + * * @since 1.6 */ private void readObject(ObjectInputStream in) diff --git a/jdk/src/share/classes/javax/management/MBeanInfo.java b/jdk/src/share/classes/javax/management/MBeanInfo.java index f4a9581c520..d10dd1cca28 100644 --- a/jdk/src/share/classes/javax/management/MBeanInfo.java +++ b/jdk/src/share/classes/javax/management/MBeanInfo.java @@ -619,7 +619,7 @@ public class MBeanInfo implements Cloneable, Serializable, DescriptorRead { * Serializes an {@link MBeanInfo} to an {@link ObjectOutputStream}. * @serialData * For compatibility reasons, an object of this class is serialized as follows. - *
    + *

    * The method {@link ObjectOutputStream#defaultWriteObject defaultWriteObject()} * is called first to serialize the object except the field {@code descriptor} * which is declared as transient. The field {@code descriptor} is serialized @@ -637,7 +637,7 @@ public class MBeanInfo implements Cloneable, Serializable, DescriptorRead { * {@link ObjectOutputStream#writeObject writeObject(Object obj)} is called * to serialize the field {@code descriptor} directly. *

- * + * * @since 1.6 */ private void writeObject(ObjectOutputStream out) throws IOException { @@ -661,7 +661,7 @@ public class MBeanInfo implements Cloneable, Serializable, DescriptorRead { * Deserializes an {@link MBeanInfo} from an {@link ObjectInputStream}. * @serialData * For compatibility reasons, an object of this class is deserialized as follows. - *
    + *

    * The method {@link ObjectInputStream#defaultReadObject defaultReadObject()} * is called first to deserialize the object except the field * {@code descriptor}, which is not serialized in the default way. Then the method @@ -683,7 +683,7 @@ public class MBeanInfo implements Cloneable, Serializable, DescriptorRead { * {@link ImmutableDescriptor#EMPTY_DESCRIPTOR EMPTY_DESCRIPTOR}. *

  • Any other value. A {@link StreamCorruptedException} is thrown.
  • *
- * + * * @since 1.6 */ diff --git a/jdk/src/share/classes/javax/management/MBeanServer.java b/jdk/src/share/classes/javax/management/MBeanServer.java index 901be1076e1..909e31da5f5 100644 --- a/jdk/src/share/classes/javax/management/MBeanServer.java +++ b/jdk/src/share/classes/javax/management/MBeanServer.java @@ -244,7 +244,6 @@ import javax.management.loading.ClassLoaderRepository; * the caller's permissions must imply {@link * MBeanPermission#MBeanPermission(String,String,ObjectName,String) * MBeanPermission(className, null, name, "unregisterMBean")}.

- *

* * * diff --git a/jdk/src/share/classes/javax/management/MBeanServerConnection.java b/jdk/src/share/classes/javax/management/MBeanServerConnection.java index dc3c3f4b35d..505a44e4a6e 100644 --- a/jdk/src/share/classes/javax/management/MBeanServerConnection.java +++ b/jdk/src/share/classes/javax/management/MBeanServerConnection.java @@ -627,7 +627,7 @@ public interface MBeanServerConnection { * for that attribute, although this is not guaranteed to work. (For * example, the values of two attributes may have been rejected because * they were inconsistent with each other. Setting one of them alone might - * be allowed.)

+ * be allowed.) * *

Here is an example of calling this method and checking that it * succeeded in setting all the requested attributes:

diff --git a/jdk/src/share/classes/javax/management/MBeanServerNotification.java b/jdk/src/share/classes/javax/management/MBeanServerNotification.java index 61d57e6dc58..aec2f1870d5 100644 --- a/jdk/src/share/classes/javax/management/MBeanServerNotification.java +++ b/jdk/src/share/classes/javax/management/MBeanServerNotification.java @@ -86,7 +86,7 @@ package javax.management; * be set to an array of ObjectNames containing the names of all MBeans * being registered or unregistered. * - *

+ * *

* MBeans which emit these group registration/unregistration notifications will * declare them in their {@link MBeanInfo#getNotifications() diff --git a/jdk/src/share/classes/javax/management/MXBean.java b/jdk/src/share/classes/javax/management/MXBean.java index e4c920651bc..85db37b241a 100644 --- a/jdk/src/share/classes/javax/management/MXBean.java +++ b/jdk/src/share/classes/javax/management/MXBean.java @@ -79,7 +79,7 @@ import javax.management.openmbean.TabularType; public interface MisleadingMXBean {} -

MXBean specification

+

MXBean specification

The MXBean concept provides a simple way to code an MBean that only references a predefined set of types, the ones defined @@ -93,7 +93,7 @@ import javax.management.openmbean.TabularType; Standard MBean concept. Here is how a managed object might be represented as a Standard MBean, and as an MXBean:

- +
@@ -133,7 +133,7 @@ public interface MemoryPoolMXBean {

So, we might define MemoryUsage like this:

-
Standard MBeanMXBean
+
@@ -195,7 +195,7 @@ public class MemoryUsage {

This becomes clearer if we compare what the clients of the two models might look like:

-
Standard MBeanMXBean
+
@@ -232,7 +232,7 @@ String name = (String) managed objects when you know the model beforehand, regardless of whether you are using Standard MBeans or MXBeans:

-
Standard MBeanMXBean
+
@@ -265,7 +265,7 @@ long used = usage.getUsed();

Implementing the MemoryPool object works similarly for both Standard MBeans and MXBeans.

-
Standard MBeanMXBean
+
@@ -292,7 +292,7 @@ public class MemoryPool

Registering the MBean in the MBean Server works in the same way in both cases:

-
Standard MBeanMXBean
+
@@ -478,13 +478,13 @@ public class MemoryPool

The following table summarizes the type mapping rules.

-
Standard MBeanMXBean
+
- + @@ -785,7 +785,7 @@ public interface ModuleMXBean { then the item in the {@code CompositeType} is called {@code name} - and has type {@code SimpleType.BOOLEAN}.

+ and has type {@code SimpleType.BOOLEAN}.

Notice that the first character (or code point) is converted to lower case. This follows the Java Beans convention, which for diff --git a/jdk/src/share/classes/javax/management/NumericValueExp.java b/jdk/src/share/classes/javax/management/NumericValueExp.java index 96090352231..2feb1f3467b 100644 --- a/jdk/src/share/classes/javax/management/NumericValueExp.java +++ b/jdk/src/share/classes/javax/management/NumericValueExp.java @@ -112,7 +112,7 @@ class NumericValueExp extends QueryEval implements ValueExp { public NumericValueExp() { } - /** Creates a new NumericValue representing the numeric literal .*/ + /** Creates a new NumericValue representing the numeric literal @{code val}.*/ NumericValueExp(Number val) { this.val = val; diff --git a/jdk/src/share/classes/javax/management/ObjectName.java b/jdk/src/share/classes/javax/management/ObjectName.java index 32b06ccdb5e..c1942f0eba9 100644 --- a/jdk/src/share/classes/javax/management/ObjectName.java +++ b/jdk/src/share/classes/javax/management/ObjectName.java @@ -195,7 +195,7 @@ import java.util.Map; * represents an ObjectName with two keys. The name of each key * contains six characters, of which the first and last are spaces. * The value associated with the key " key1 " - * also begins and ends with a space.

+ * also begins and ends with a space. * *

In addition to the restrictions on characters spelt out above, * no part of an ObjectName may contain a newline character @@ -665,7 +665,7 @@ public class ObjectName implements Comparable, QueryExp { * Construct an ObjectName from a domain and a Hashtable. * * @param domain Domain of the ObjectName. - * @param props Map containing couples key -> value. + * @param props Map containing couples key {@literal ->} value. * * @exception MalformedObjectNameException The domain * contains an illegal character, or one of the keys or values in @@ -1549,7 +1549,7 @@ public class ObjectName implements Comparable, QueryExp { *

  • a comma and an * asterisk (,*) for an ObjectName that is a property * list pattern with at least one key. - *

    + * * * @return The canonical form of the name. */ diff --git a/jdk/src/share/classes/javax/management/PersistentMBean.java b/jdk/src/share/classes/javax/management/PersistentMBean.java index 0f16202511f..63334096612 100644 --- a/jdk/src/share/classes/javax/management/PersistentMBean.java +++ b/jdk/src/share/classes/javax/management/PersistentMBean.java @@ -70,17 +70,19 @@ public interface PersistentMBean { *

    * Persistence policy from the MBean and attribute descriptor is used to guide execution * of this method. The MBean should be stored if 'persistPolicy' field is: - *

      != "never"
    +     * 
    {@literal  != "never"
          *   = "always"
          *   = "onTimer" and now > 'lastPersistTime' + 'persistPeriod'
          *   = "NoMoreOftenThan" and now > 'lastPersistTime' + 'persistPeriod'
          *   = "onUnregister"
    -     * 

    + * }

    + *

    * Do not store the MBean if 'persistPolicy' field is: + *

    {@literal
          *    = "never"
          *    = "onUpdate"
          *    = "onTimer" && now < 'lastPersistTime' + 'persistPeriod'
    -     * 

    + * }
    * * @exception MBeanException Wraps another exception or persistence is not supported * @exception RuntimeOperationsException Wraps exceptions from the persistence mechanism diff --git a/jdk/src/share/classes/javax/management/Query.java b/jdk/src/share/classes/javax/management/Query.java index 267f6aa1dae..2a1b33e5868 100644 --- a/jdk/src/share/classes/javax/management/Query.java +++ b/jdk/src/share/classes/javax/management/Query.java @@ -127,9 +127,9 @@ package javax.management; * @param q2 Another query expression. * * @return The conjunction of the two arguments. The returned object - * will be serialized as an instance of the non-public class {@link + * will be serialized as an instance of the non-public class * - * javax.management.AndQueryExp}. + * javax.management.AndQueryExp. */ public static QueryExp and(QueryExp q1, QueryExp q2) { return new AndQueryExp(q1, q2); @@ -143,9 +143,9 @@ package javax.management; * @param q2 Another query expression. * * @return The disjunction of the two arguments. The returned object - * will be serialized as an instance of the non-public class {@link + * will be serialized as an instance of the non-public class * - * javax.management.OrQueryExp}. + * javax.management.OrQueryExp. */ public static QueryExp or(QueryExp q1, QueryExp q2) { return new OrQueryExp(q1, q2); @@ -160,9 +160,9 @@ package javax.management; * * @return A "greater than" constraint on the arguments. The * returned object will be serialized as an instance of the - * non-public class {@link - * javax.management.BinaryRelQueryExp} with a {@code relOp} equal + * non-public class + * + * javax.management.BinaryRelQueryExp with a {@code relOp} equal * to {@link #GT}. */ public static QueryExp gt(ValueExp v1, ValueExp v2) { @@ -178,9 +178,9 @@ package javax.management; * * @return A "greater than or equal to" constraint on the * arguments. The returned object will be serialized as an - * instance of the non-public class {@link - * javax.management.BinaryRelQueryExp} with a {@code relOp} equal + * instance of the non-public class + * + * javax.management.BinaryRelQueryExp with a {@code relOp} equal * to {@link #GE}. */ public static QueryExp geq(ValueExp v1, ValueExp v2) { @@ -196,9 +196,9 @@ package javax.management; * * @return A "less than or equal to" constraint on the arguments. * The returned object will be serialized as an instance of the - * non-public class {@link - * javax.management.BinaryRelQueryExp} with a {@code relOp} equal + * non-public class + * + * javax.management.BinaryRelQueryExp with a {@code relOp} equal * to {@link #LE}. */ public static QueryExp leq(ValueExp v1, ValueExp v2) { @@ -214,9 +214,9 @@ package javax.management; * * @return A "less than" constraint on the arguments. The * returned object will be serialized as an instance of the - * non-public class {@link - * javax.management.BinaryRelQueryExp} with a {@code relOp} equal + * non-public class + * + * javax.management.BinaryRelQueryExp with a {@code relOp} equal * to {@link #LT}. */ public static QueryExp lt(ValueExp v1, ValueExp v2) { @@ -232,9 +232,9 @@ package javax.management; * * @return A "equal to" constraint on the arguments. The * returned object will be serialized as an instance of the - * non-public class {@link - * javax.management.BinaryRelQueryExp} with a {@code relOp} equal + * non-public class + * + * javax.management.BinaryRelQueryExp with a {@code relOp} equal * to {@link #EQ}. */ public static QueryExp eq(ValueExp v1, ValueExp v2) { @@ -251,9 +251,9 @@ package javax.management; * * @return The constraint that v1 lies between v2 and v3. The * returned object will be serialized as an instance of the - * non-public class {@link - * javax.management.BetweenQueryExp}. + * non-public class + * + * javax.management.BetweenQueryExp. */ public static QueryExp between(ValueExp v1, ValueExp v2, ValueExp v3) { return new BetweenQueryExp(v1, v2, v3); @@ -279,9 +279,9 @@ package javax.management; * * @return A query expression that represents the matching * constraint on the string argument. The returned object will - * be serialized as an instance of the non-public class {@link - * javax.management.MatchQueryExp}. + * be serialized as an instance of the non-public class + * + * javax.management.MatchQueryExp. */ public static QueryExp match(AttributeValueExp a, StringValueExp s) { return new MatchQueryExp(a, s); @@ -319,9 +319,9 @@ package javax.management; * * @return An attribute expression for the attribute named name. * The returned object will be serialized as an instance of the - * non-public class {@link - * javax.management.QualifiedAttributeValueExp}. + * non-public class + * + * javax.management.QualifiedAttributeValueExp. */ public static AttributeValueExp attr(String className, String name) { return new QualifiedAttributeValueExp(className, name); @@ -338,9 +338,8 @@ package javax.management; * * @return A class attribute expression. The returned object * will be serialized as an instance of the non-public class - * {@link - * javax.management.ClassAttributeValueExp}. + * + * javax.management.ClassAttributeValueExp. */ public static AttributeValueExp classattr() { return new ClassAttributeValueExp(); @@ -352,9 +351,9 @@ package javax.management; * @param queryExp The constraint to negate. * * @return A negated constraint. The returned object will be - * serialized as an instance of the non-public class {@link - * javax.management.NotQueryExp}. + * serialized as an instance of the non-public class + * + * javax.management.NotQueryExp. */ public static QueryExp not(QueryExp queryExp) { return new NotQueryExp(queryExp); @@ -368,9 +367,9 @@ package javax.management; * * @return A QueryExp that represents the constraint. The * returned object will be serialized as an instance of the - * non-public class {@link - * javax.management.InQueryExp}. + * non-public class + * + * javax.management.InQueryExp. */ public static QueryExp in(ValueExp val, ValueExp valueList[]) { return new InQueryExp(val, valueList); @@ -395,9 +394,9 @@ package javax.management; * * @return A ValueExp object containing the argument. The * returned object will be serialized as an instance of the - * non-public class {@link - * javax.management.NumericValueExp}. + * non-public class + * + * javax.management.NumericValueExp. */ public static ValueExp value(Number val) { return new NumericValueExp(val); @@ -411,9 +410,9 @@ package javax.management; * * @return A ValueExp object containing the argument. The * returned object will be serialized as an instance of the - * non-public class {@link - * javax.management.NumericValueExp}. + * non-public class + * + * javax.management.NumericValueExp. */ public static ValueExp value(int val) { return new NumericValueExp((long) val); @@ -427,9 +426,9 @@ package javax.management; * * @return A ValueExp object containing the argument. The * returned object will be serialized as an instance of the - * non-public class {@link - * javax.management.NumericValueExp}. + * non-public class + * + * javax.management.NumericValueExp. */ public static ValueExp value(long val) { return new NumericValueExp(val); @@ -443,9 +442,9 @@ package javax.management; * * @return A ValueExp object containing the argument. The * returned object will be serialized as an instance of the - * non-public class {@link - * javax.management.NumericValueExp}. + * non-public class + * + * javax.management.NumericValueExp. */ public static ValueExp value(float val) { return new NumericValueExp((double) val); @@ -459,9 +458,9 @@ package javax.management; * * @return A ValueExp object containing the argument. The * returned object will be serialized as an instance of the - * non-public class {@link - * javax.management.NumericValueExp}. + * non-public class + * + * javax.management.NumericValueExp. */ public static ValueExp value(double val) { return new NumericValueExp(val); @@ -475,9 +474,9 @@ package javax.management; * * @return A ValueExp object containing the argument. The * returned object will be serialized as an instance of the - * non-public class {@link - * javax.management.BooleanValueExp}. + * non-public class + * + * javax.management.BooleanValueExp. */ public static ValueExp value(boolean val) { return new BooleanValueExp(val); @@ -492,9 +491,9 @@ package javax.management; * * @return A ValueExp representing the sum or concatenation of * the two arguments. The returned object will be serialized as - * an instance of the non-public class {@link - * javax.management.BinaryOpValueExp} with an {@code op} equal to + * an instance of the non-public class + * + * javax.management.BinaryOpValueExp with an {@code op} equal to * {@link #PLUS}. */ public static ValueExp plus(ValueExp value1, ValueExp value2) { @@ -510,9 +509,9 @@ package javax.management; * * @return A ValueExp representing the product. The returned * object will be serialized as an instance of the non-public - * class {@link - * javax.management.BinaryOpValueExp} with an {@code op} equal to + * class + * + * javax.management.BinaryOpValueExp with an {@code op} equal to * {@link #TIMES}. */ public static ValueExp times(ValueExp value1,ValueExp value2) { @@ -528,9 +527,9 @@ package javax.management; * * @return A ValueExp representing the difference between two * arguments. The returned object will be serialized as an - * instance of the non-public class {@link - * javax.management.BinaryOpValueExp} with an {@code op} equal to + * instance of the non-public class + * + * javax.management.BinaryOpValueExp with an {@code op} equal to * {@link #MINUS}. */ public static ValueExp minus(ValueExp value1, ValueExp value2) { @@ -546,9 +545,9 @@ package javax.management; * * @return A ValueExp representing the quotient of two arguments. * The returned object will be serialized as an instance of the - * non-public class {@link - * javax.management.BinaryOpValueExp} with an {@code op} equal to + * non-public class + * + * javax.management.BinaryOpValueExp with an {@code op} equal to * {@link #DIV}. */ public static ValueExp div(ValueExp value1, ValueExp value2) { @@ -566,9 +565,9 @@ package javax.management; * * @return The constraint that a matches s. The returned object * will be serialized as an instance of the non-public class - * {@link - * javax.management.MatchQueryExp}. + * + * + * javax.management.MatchQueryExp. */ public static QueryExp initialSubString(AttributeValueExp a, StringValueExp s) { return new MatchQueryExp(a, @@ -585,9 +584,9 @@ package javax.management; * * @return The constraint that a matches s. The returned object * will be serialized as an instance of the non-public class - * {@link - * javax.management.MatchQueryExp}. + * + * + * javax.management.MatchQueryExp. */ public static QueryExp anySubString(AttributeValueExp a, StringValueExp s) { return new MatchQueryExp(a, @@ -605,9 +604,9 @@ package javax.management; * * @return The constraint that a matches s. The returned object * will be serialized as an instance of the non-public class - * {@link - * javax.management.MatchQueryExp}. + * + * + * javax.management.MatchQueryExp. */ public static QueryExp finalSubString(AttributeValueExp a, StringValueExp s) { return new MatchQueryExp(a, @@ -630,9 +629,9 @@ package javax.management; * of the class of which selected MBeans should be instances. * @return a query expression that represents an inheritance * constraint on an MBean class. The returned object will be - * serialized as an instance of the non-public class {@link - * javax.management.InstanceOfQueryExp}. + * serialized as an instance of the non-public class + * + * javax.management.InstanceOfQueryExp. * @since 1.6 */ public static QueryExp isInstanceOf(StringValueExp classNameValue) { diff --git a/jdk/src/share/classes/javax/management/loading/MLet.java b/jdk/src/share/classes/javax/management/loading/MLet.java index b1dc72aa64a..ab50507d6af 100644 --- a/jdk/src/share/classes/javax/management/loading/MLet.java +++ b/jdk/src/share/classes/javax/management/loading/MLet.java @@ -145,17 +145,17 @@ import javax.management.ServiceNotFoundException; * This optional attribute specifies a list of one or more parameters for the * MBean to be instantiated. This list describes the parameters to be passed the MBean's constructor. * Use the following syntax to specify each item in - * arglist: + * arglist: *
    - *

    *

    <ARG TYPE=argumentType VALUE=value>
    - *

    - *

    where:
    + *
    where: *
      *
    • argumentType is the type of the argument that will be passed as parameter to the MBean's constructor.
    + *
    *
    *

    The arguments' type in the argument list should be a Java primitive type or a Java basic type * (java.lang.Boolean, java.lang.Byte, java.lang.Short, java.lang.Long, java.lang.Integer, java.lang.Float, java.lang.Double, java.lang.String). + * * * * When an m-let text file is loaded, an diff --git a/jdk/src/share/classes/javax/management/loading/MLetParser.java b/jdk/src/share/classes/javax/management/loading/MLetParser.java index 88fb37a3de4..bc3af8c9c25 100644 --- a/jdk/src/share/classes/javax/management/loading/MLetParser.java +++ b/jdk/src/share/classes/javax/management/loading/MLetParser.java @@ -149,7 +149,7 @@ class MLetParser { } /** - * Scan an html file for tags + * Scan an html file for {@literal } tags. */ public List parse(URL url) throws IOException { String mth = "parse"; diff --git a/jdk/src/share/classes/javax/management/modelmbean/DescriptorSupport.java b/jdk/src/share/classes/javax/management/modelmbean/DescriptorSupport.java index 4ba4d4cdde2..1f7ad27e43d 100644 --- a/jdk/src/share/classes/javax/management/modelmbean/DescriptorSupport.java +++ b/jdk/src/share/classes/javax/management/modelmbean/DescriptorSupport.java @@ -799,7 +799,7 @@ public class DescriptorSupport * the given object is also a Descriptor, and if the two Descriptors have * the same field names (possibly differing in case) and the same * associated values. The respective values for a field in the two - * Descriptors are equal if the following conditions hold:

    + * Descriptors are equal if the following conditions hold: * *
      *
    • If one value is null then the other must be too.
    • @@ -871,7 +871,6 @@ public class DescriptorSupport * done on the "export" field. *

      * Otherwise this implementation returns false if: - *

      *

        *
      • name and descriptorType fieldNames are not defined, or * null, or empty, or not String @@ -879,14 +878,14 @@ public class DescriptorSupport * are null or not String *
      • persistPeriod, currencyTimeLimit, lastUpdatedTimeStamp, * lastReturnedTimeStamp if defined, are null, or not a Numeric - * String or not a Numeric Value >= -1 + * String or not a Numeric Value {@literal >= -1} *
      • log fieldName, if defined, is null, or not a Boolean or * not a String with value "t", "f", "true", "false". These String * values must not be case sensitive. *
      • visibility fieldName, if defined, is null, or not a - * Numeric String or a not Numeric Value >= 1 and <= 4 + * Numeric String or a not Numeric Value {@literal >= 1 and <= 4} *
      • severity fieldName, if defined, is null, or not a Numeric - * String or not a Numeric Value >= 0 and <= 6
        + * String or not a Numeric Value {@literal >= 0 and <= 6}
        *
      • persistPolicy fieldName, if defined, is null, or not one of * the following strings:
        * "OnUpdate", "OnTimer", "NoMoreOftenThan", "OnUnregister", "Always", @@ -1270,8 +1269,8 @@ public class DescriptorSupport } /** - * Returns a human readable string representing the - * descriptor. The string will be in the format of + * Returns a human readable string representing the + * descriptor. The string will be in the format of * "fieldName=fieldValue,fieldName2=fieldValue2,..."
        * * If there are no fields in the descriptor, then an empty String diff --git a/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanAttributeInfo.java b/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanAttributeInfo.java index 90d710a6c76..a4fd41245b5 100644 --- a/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanAttributeInfo.java +++ b/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanAttributeInfo.java @@ -57,7 +57,7 @@ import javax.management.RuntimeOperationsException; * Note that when the Type in this table is Number, a String that is the decimal * representation of a Long can also be used.

        * - *
  • Java type J opentype(J) opendata(J)
    {@code int}, {@code boolean}, etc
    (the 8 primitive Java types)
    + *
    * * * diff --git a/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanConstructorInfo.java b/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanConstructorInfo.java index 635553fc89c..1f308e53f11 100644 --- a/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanConstructorInfo.java +++ b/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanConstructorInfo.java @@ -58,7 +58,7 @@ import javax.management.RuntimeOperationsException; * Note that when the Type in this table is Number, a String that is the decimal * representation of a Long can also be used.

    * - *
    NameTypeMeaning
    nameStringAttribute name.
    + *
    * * * diff --git a/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanInfo.java b/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanInfo.java index 95ce0eb3721..5d9fb01edda 100644 --- a/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanInfo.java +++ b/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanInfo.java @@ -165,7 +165,7 @@ public interface ModelMBeanInfo * following. Note that when the Type in this table is Number, a String * that is the decimal representation of a Long can also be used.

    * - *
    NameTypeMeaning
    nameStringConstructor name.
    + *
    * * * diff --git a/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanNotificationBroadcaster.java b/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanNotificationBroadcaster.java index 0dacebfddc7..0d1aa06b58c 100644 --- a/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanNotificationBroadcaster.java +++ b/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanNotificationBroadcaster.java @@ -127,7 +127,6 @@ public interface ModelMBeanNotificationBroadcaster extends NotificationBroadcast *

    * @param oldValue The original value for the Attribute * @param newValue The current value for the Attribute - *

    *

              * The constructed attributeChangeNotification will be:
              *   type        "jmx.attribute.change"
    diff --git a/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanNotificationInfo.java b/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanNotificationInfo.java
    index 31d9199da18..538205a50ea 100644
    --- a/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanNotificationInfo.java
    +++ b/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanNotificationInfo.java
    @@ -56,7 +56,7 @@ import javax.management.RuntimeOperationsException;
      * Note that when the Type in this table is Number, a String that is the decimal
      * representation of a Long can also be used.

    * - *
    NameTypeMeaning
    nameStringMBean name.
    + *
    * * * diff --git a/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanOperationInfo.java b/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanOperationInfo.java index 2d8e624ad84..08e5b24b4ea 100644 --- a/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanOperationInfo.java +++ b/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanOperationInfo.java @@ -59,7 +59,7 @@ import javax.management.RuntimeOperationsException; * Note that when the Type in this table is Number, a String that is the decimal * representation of a Long can also be used.

    * - *
    NameTypeMeaning
    nameStringNotification name.
    + *
    * * * diff --git a/jdk/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java b/jdk/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java index 0afd70f9423..d19aa48fde6 100644 --- a/jdk/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java +++ b/jdk/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java @@ -360,7 +360,7 @@ public class RequiredModelMBean MODELMBEAN_LOGGER.logp(Level.FINER, RequiredModelMBean.class.getName(), "setManagedResource(Object,String)", - "Managed Resouce Type is not supported: " + mr_type); + "Managed Resource Type is not supported: " + mr_type); } throw new InvalidTargetObjectTypeException(mr_type); } @@ -369,7 +369,7 @@ public class RequiredModelMBean MODELMBEAN_LOGGER.logp(Level.FINER, RequiredModelMBean.class.getName(), "setManagedResource(Object,String)", - "Managed Resouce is valid"); + "Managed Resource is valid"); } managedResource = mr; @@ -421,19 +421,19 @@ public class RequiredModelMBean * is used to guide execution of this method. The MBean should be * stored if 'persistPolicy' field is:

    * - *
      != "never"
    +     * 
    {@literal  != "never"
          *   = "always"
          *   = "onTimer" and now > 'lastPersistTime' + 'persistPeriod'
          *   = "NoMoreOftenThan" and now > 'lastPersistTime' + 'persistPeriod'
          *   = "onUnregister"
    -     * 
    + * }
    * *

    Do not store the MBean if 'persistPolicy' field is:

    - *
    +     * 
    {@literal
          *    = "never"
          *    = "onUpdate"
          *    = "onTimer" && now < 'lastPersistTime' + 'persistPeriod'
    -     * 
    + * }
    * * @exception MBeanException Wraps another exception, or * persistence is not supported @@ -469,11 +469,14 @@ public class RequiredModelMBean *
  • >0 Represents the number of seconds that the * 'value' field is valid. * The 'value' field is no longer valid when - * 'lastUpdatedTimeStamp' + 'currencyTimeLimit' > Now.
  • + * 'lastUpdatedTimeStamp' + 'currencyTimeLimit' > Now. + *
      + *
    • When 'value' is valid, 'valid' is returned.
    • + *
    • When 'value' is no longer valid then null is returned and + * 'value' and 'lastUpdatedTimeStamp' fields are cleared.
    • + *
    + * * - *
  • When 'value' is valid, 'valid' is returned.
  • - *
  • When 'value' is no longer valid then null is returned and - * 'value' and 'lastUpdatedTimeStamp' fields are cleared.
  • * **/ private Object resolveForCacheValue(Descriptor descr) @@ -1842,17 +1845,17 @@ public class RequiredModelMBean *
  • != "never"
  • *
  • = "always"
  • *
  • = "onUpdate"
  • - *
  • = "onTimer" and now > 'lastPersistTime' + 'persistPeriod'
  • - *
  • = "NoMoreOftenThan" and now > 'lastPersistTime' + - * 'persistPeriod'
  • + *
  • {@literal = "onTimer" and now > 'lastPersistTime' + 'persistPeriod'}
  • + *
  • {@literal = "NoMoreOftenThan" and now > 'lastPersistTime' + + * 'persistPeriod'}
  • * * Do not store the MBean if 'persistPolicy' field is: *
      *
    • = "never"
    • - *
    • = "onTimer" && now < 'lastPersistTime' + 'persistPeriod'
    • + *
    • = {@literal = "onTimer" && now < 'lastPersistTime' + 'persistPeriod'}
    • *
    • = "onUnregister"
    • - *
    • = "NoMoreOftenThan" and now < 'lastPersistTime' + - * 'persistPeriod'
    • + *
    • = {@literal = "NoMoreOftenThan" and now < 'lastPersistTime' + + * 'persistPeriod'}
    • *
    * *

    The ModelMBeanInfo of the Model MBean is stored in a file. diff --git a/jdk/src/share/classes/javax/management/monitor/Monitor.java b/jdk/src/share/classes/javax/management/monitor/Monitor.java index 2746f104463..f80b1f76b29 100644 --- a/jdk/src/share/classes/javax/management/monitor/Monitor.java +++ b/jdk/src/share/classes/javax/management/monitor/Monitor.java @@ -1609,7 +1609,7 @@ public abstract class Monitor * the thread instantiating this DaemonThreadFactory. Each new * thread is created as a daemon thread with priority * Thread.NORM_PRIORITY. New threads have names accessible via - * Thread.getName() of "JMX Monitor Pool [Thread-M]", + * Thread.getName() of "{@literal JMX Monitor Pool [Thread-M]}", * where M is the sequence number of the thread created by this * factory. */ diff --git a/jdk/src/share/classes/javax/management/openmbean/ArrayType.java b/jdk/src/share/classes/javax/management/openmbean/ArrayType.java index 55d173c2da9..afd2b6a24a9 100644 --- a/jdk/src/share/classes/javax/management/openmbean/ArrayType.java +++ b/jdk/src/share/classes/javax/management/openmbean/ArrayType.java @@ -33,7 +33,7 @@ import java.lang.reflect.Array; * all open data values which are n-dimensional arrays of open data values. *

    * Examples of valid {@code ArrayType} instances are: - *

    + * 
    {@code
      * // 2-dimension array of java.lang.String
      * ArrayType a1 = new ArrayType(2, SimpleType.STRING);
      *
    @@ -90,7 +90,7 @@ import java.lang.reflect.Array;
      *
      * // 3-dimension array of java.lang.String
      * ArrayType a19 = new ArrayType(1, a18);
    - * 
    + * }
    * * * @since 1.5 @@ -241,23 +241,23 @@ public class ArrayType extends OpenType { * *

    * As an example, the following piece of code: - *

    +     * 
    {@code
          * ArrayType t = new ArrayType(3, SimpleType.STRING);
          * System.out.println("array class name       = " + t.getClassName());
          * System.out.println("element class name     = " + t.getElementOpenType().getClassName());
          * System.out.println("array type name        = " + t.getTypeName());
          * System.out.println("array type description = " + t.getDescription());
    -     * 
    + * }
    * would produce the following output: - *
    +     * 
    {@code
          * array class name       = [[[Ljava.lang.String;
          * element class name     = java.lang.String
          * array type name        = [[[Ljava.lang.String;
          * array type description = 3-dimension array of java.lang.String
    -     * 
    + * }
    * And the following piece of code which is equivalent to the one listed * above would also produce the same output: - *
    +     * 
    {@code
          * ArrayType t1 = new ArrayType(1, SimpleType.STRING);
          * ArrayType t2 = new ArrayType(1, t1);
          * ArrayType t3 = new ArrayType(1, t2);
    @@ -265,7 +265,7 @@ public class ArrayType extends OpenType {
          * System.out.println("element class name     = " + t3.getElementOpenType().getClassName());
          * System.out.println("array type name        = " + t3.getTypeName());
          * System.out.println("array type description = " + t3.getDescription());
    -     * 
    + * }
    * * @param dimension the dimension of arrays described by this ArrayType instance; * must be greater than or equal to 1. @@ -334,20 +334,20 @@ public class ArrayType extends OpenType { * *

    * As an example, the following piece of code: - *

    +     * 
    {@code
          * ArrayType t = new ArrayType(SimpleType.INTEGER, true);
          * System.out.println("array class name       = " + t.getClassName());
          * System.out.println("element class name     = " + t.getElementOpenType().getClassName());
          * System.out.println("array type name        = " + t.getTypeName());
          * System.out.println("array type description = " + t.getDescription());
    -     * 
    + * }
    * would produce the following output: - *
    +     * 
    {@code
          * array class name       = [I
          * element class name     = java.lang.Integer
          * array type name        = [I
          * array type description = 1-dimension array of int
    -     * 
    + * }
    * * @param elementType the {@code SimpleType} of the element values * contained in the arrays described by this @@ -533,7 +533,7 @@ public class ArrayType extends OpenType { *
  • if this ArrayType instance describes an array of * classes implementing the {@code TabularData} interface or the * {@code CompositeData} interface, obj is assignable to - * such a declared array, and each element contained in obj + * such a declared array, and each element contained in {obj * is either null or a valid value for the element's open type specified * by this ArrayType instance.
  • * @@ -776,7 +776,7 @@ public class ArrayType extends OpenType { * object or two equal but not identical objects. *

    * As an example, the following piece of code: - *

    +     * 
    {@code
          * ArrayType t1 = ArrayType.getArrayType(SimpleType.STRING);
          * ArrayType t2 = ArrayType.getArrayType(t1);
          * ArrayType t3 = ArrayType.getArrayType(t2);
    @@ -784,14 +784,14 @@ public class ArrayType extends OpenType {
          * System.out.println("element class name     = " + t3.getElementOpenType().getClassName());
          * System.out.println("array type name        = " + t3.getTypeName());
          * System.out.println("array type description = " + t3.getDescription());
    -     * 
    + * }
    * would produce the following output: - *
    +     * 
    {@code
          * array class name       = [[[Ljava.lang.String;
          * element class name     = java.lang.String
          * array type name        = [[[Ljava.lang.String;
          * array type description = 3-dimension array of java.lang.String
    -     * 
    + * }
    * * @param elementType the open type of element values contained * in the arrays described by this ArrayType @@ -819,20 +819,20 @@ public class ArrayType extends OpenType { * same object or two equal but not identical objects. *

    * As an example, the following piece of code: - *

    +     * 
    {@code
          * ArrayType t = ArrayType.getPrimitiveArrayType(int[][][].class);
          * System.out.println("array class name       = " + t.getClassName());
          * System.out.println("element class name     = " + t.getElementOpenType().getClassName());
          * System.out.println("array type name        = " + t.getTypeName());
          * System.out.println("array type description = " + t.getDescription());
    -     * 
    + * }
    * would produce the following output: - *
    +     * 
    {@code
          * array class name       = [[[I
          * element class name     = java.lang.Integer
          * array type name        = [[[I
          * array type description = 3-dimension array of int
    -     * 
    + * }
    * * @param arrayClass a primitive array class such as {@code int[].class}, * {@code boolean[][].class}, etc. The {@link diff --git a/jdk/src/share/classes/javax/management/openmbean/CompositeDataInvocationHandler.java b/jdk/src/share/classes/javax/management/openmbean/CompositeDataInvocationHandler.java index 6b420500552..2d9e23884ec 100644 --- a/jdk/src/share/classes/javax/management/openmbean/CompositeDataInvocationHandler.java +++ b/jdk/src/share/classes/javax/management/openmbean/CompositeDataInvocationHandler.java @@ -80,7 +80,7 @@ import java.lang.reflect.Proxy; - A call to {@code nn.getNumber()} will then return 5.

    + A call to {@code nn.getNumber()} will then return 5.

    If the first letter of the property defined by a getter is a capital, then this handler will look first for an item in the diff --git a/jdk/src/share/classes/javax/management/openmbean/CompositeType.java b/jdk/src/share/classes/javax/management/openmbean/CompositeType.java index 74e58fa39aa..93540af6109 100644 --- a/jdk/src/share/classes/javax/management/openmbean/CompositeType.java +++ b/jdk/src/share/classes/javax/management/openmbean/CompositeType.java @@ -40,7 +40,7 @@ import java.util.Iterator; /** * The CompositeType class is the open type class - * whose instances describe the types of {@link CompositeData CompositeData} values. + * whose instances describe the types of {@link CompositeData CompositeData} values. * * * @since 1.5 diff --git a/jdk/src/share/classes/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java b/jdk/src/share/classes/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java index 116ca6d9eca..550a50715c2 100644 --- a/jdk/src/share/classes/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java +++ b/jdk/src/share/classes/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java @@ -138,8 +138,8 @@ public class OpenMBeanAttributeInfoSupport * *

    The {@code descriptor} can contain entries that will define * the values returned by certain methods of this class, as - * explained in the {@link - * package description}. + * explained in the + * package description. * * @param name cannot be a null or empty string. * @@ -162,8 +162,7 @@ public class OpenMBeanAttributeInfoSupport * @throws IllegalArgumentException if {@code name} or {@code * description} are null or empty string, or {@code openType} is * null, or the descriptor entries are invalid as described in the - * {@link package - * description}. + * package description. * * @since 1.6 */ diff --git a/jdk/src/share/classes/javax/management/openmbean/OpenMBeanParameterInfoSupport.java b/jdk/src/share/classes/javax/management/openmbean/OpenMBeanParameterInfoSupport.java index 4ef8f75b56b..56ad0cf3ae6 100644 --- a/jdk/src/share/classes/javax/management/openmbean/OpenMBeanParameterInfoSupport.java +++ b/jdk/src/share/classes/javax/management/openmbean/OpenMBeanParameterInfoSupport.java @@ -111,16 +111,16 @@ public class OpenMBeanParameterInfoSupport } /** - *

    Constructs an {@code OpenMBeanParameterInfoSupport} instance, + * Constructs an {@code OpenMBeanParameterInfoSupport} instance, * which describes the parameter used in one or more operations or * constructors of a class of open MBeans, with the specified * {@code name}, {@code openType}, {@code description}, - * and {@code descriptor}.

    + * and {@code descriptor}. * *

    The {@code descriptor} can contain entries that will define * the values returned by certain methods of this class, as - * explained in the {@link - * package description}. + * explained in the + * package description. * * @param name cannot be a null or empty string. * @@ -134,8 +134,8 @@ public class OpenMBeanParameterInfoSupport * @throws IllegalArgumentException if {@code name} or {@code * description} are null or empty string, or {@code openType} is * null, or the descriptor entries are invalid as described in the - * {@link package - * description}. + * package + * description. * * @since 1.6 */ diff --git a/jdk/src/share/classes/javax/management/openmbean/SimpleType.java b/jdk/src/share/classes/javax/management/openmbean/SimpleType.java index 8672426c5a9..ea26ae56267 100644 --- a/jdk/src/share/classes/javax/management/openmbean/SimpleType.java +++ b/jdk/src/share/classes/javax/management/openmbean/SimpleType.java @@ -45,8 +45,8 @@ import javax.management.ObjectName; /** * The SimpleType class is the open type class whose instances describe * all open data values which are neither arrays, - * nor {@link CompositeData CompositeData} values, - * nor {@link TabularData TabularData} values. + * nor {@link CompositeData CompositeData} values, + * nor {@link TabularData TabularData} values. * It predefines all its possible instances as static fields, and has no public constructor. *

    * Given a SimpleType instance describing values whose Java class name is className, diff --git a/jdk/src/share/classes/javax/management/openmbean/TabularType.java b/jdk/src/share/classes/javax/management/openmbean/TabularType.java index a1bcc71295d..9eca49196bc 100644 --- a/jdk/src/share/classes/javax/management/openmbean/TabularType.java +++ b/jdk/src/share/classes/javax/management/openmbean/TabularType.java @@ -40,7 +40,7 @@ import java.util.List; /** * The TabularType class is the open type class - * whose instances describe the types of {@link TabularData TabularData} values. + * whose instances describe the types of {@link TabularData TabularData} values. * * @since 1.5 */ @@ -89,8 +89,8 @@ public class TabularType extends OpenType { * cannot be null or empty. Each element should be an item name defined in rowType * (no null or empty string allowed). * It is important to note that the order of the item names in indexNames - * is used by the methods {@link TabularData#get(java.lang.Object[]) get} and - * {@link TabularData#remove(java.lang.Object[]) remove} of class + * is used by the methods {@link TabularData#get(java.lang.Object[]) get} and + * {@link TabularData#remove(java.lang.Object[]) remove} of class * TabularData to match their array of values parameter to items. *
      * @throws IllegalArgumentException if rowType is null, diff --git a/jdk/src/share/classes/javax/management/relation/Relation.java b/jdk/src/share/classes/javax/management/relation/Relation.java index 7a77f7bccb0..3ef3ce777b6 100644 --- a/jdk/src/share/classes/javax/management/relation/Relation.java +++ b/jdk/src/share/classes/javax/management/relation/Relation.java @@ -236,7 +236,7 @@ public interface Relation { * Retrieves MBeans referenced in the various roles of the relation. * * @return a HashMap mapping: - *

    ObjectName -> ArrayList of String (role names) + *

    ObjectName {@literal ->} ArrayList of String (role names) */ public Map> getReferencedMBeans(); diff --git a/jdk/src/share/classes/javax/management/relation/RelationService.java b/jdk/src/share/classes/javax/management/relation/RelationService.java index 6ea329a6d13..2585d11d0be 100644 --- a/jdk/src/share/classes/javax/management/relation/RelationService.java +++ b/jdk/src/share/classes/javax/management/relation/RelationService.java @@ -2306,8 +2306,7 @@ public class RelationService extends NotificationBroadcasterSupport * @param relationId relation id * * @return a HashMap mapping: - *

    ObjectName -> ArrayList of String (role - * names) + *

    ObjectName {@literal ->} ArrayList of String (role names) * * @exception IllegalArgumentException if null parameter * @exception RelationNotFoundException if no relation for given diff --git a/jdk/src/share/classes/javax/management/relation/RelationServiceMBean.java b/jdk/src/share/classes/javax/management/relation/RelationServiceMBean.java index 48dde4be3f4..a8753042d3e 100644 --- a/jdk/src/share/classes/javax/management/relation/RelationServiceMBean.java +++ b/jdk/src/share/classes/javax/management/relation/RelationServiceMBean.java @@ -770,7 +770,7 @@ public interface RelationServiceMBean { * @param relationId relation id * * @return a HashMap mapping: - *

    ObjectName -> ArrayList of String (role + *

    ObjectName {@literal ->} ArrayList of String (role * names) * * @exception IllegalArgumentException if null parameter diff --git a/jdk/src/share/classes/javax/management/relation/RelationSupport.java b/jdk/src/share/classes/javax/management/relation/RelationSupport.java index c5ebd4e8272..be18fd2312c 100644 --- a/jdk/src/share/classes/javax/management/relation/RelationSupport.java +++ b/jdk/src/share/classes/javax/management/relation/RelationSupport.java @@ -590,7 +590,7 @@ public class RelationSupport * Retrieves MBeans referenced in the various roles of the relation. * * @return a HashMap mapping: - *

    ObjectName -> ArrayList of String (role names) + *

    ObjectName {@literal ->} ArrayList of String (role names) */ public Map> getReferencedMBeans() { diff --git a/jdk/src/share/classes/javax/management/remote/JMXConnectionNotification.java b/jdk/src/share/classes/javax/management/remote/JMXConnectionNotification.java index fa0fb0e6809..401d592ddbb 100644 --- a/jdk/src/share/classes/javax/management/remote/JMXConnectionNotification.java +++ b/jdk/src/share/classes/javax/management/remote/JMXConnectionNotification.java @@ -40,7 +40,7 @@ import javax.management.ObjectName; * *

    The notification type is one of the following:

    * - *
    NameTypeMeaning
    nameStringOperation name.
    + *
    * * * diff --git a/jdk/src/share/classes/javax/management/remote/JMXConnector.java b/jdk/src/share/classes/javax/management/remote/JMXConnector.java index c036640bec3..81502d8a29a 100644 --- a/jdk/src/share/classes/javax/management/remote/JMXConnector.java +++ b/jdk/src/share/classes/javax/management/remote/JMXConnector.java @@ -76,7 +76,7 @@ public interface JMXConnector extends Closeable { *

    If connect has already been called successfully * on this object, calling it again has no effect. If, however, * {@link #close} was called after connect, the new - * connect will throw an IOException.

    + * connect will throw an IOException. * *

    Otherwise, either connect has never been called * on this object, or it has been called but produced an diff --git a/jdk/src/share/classes/javax/management/remote/JMXConnectorProvider.java b/jdk/src/share/classes/javax/management/remote/JMXConnectorProvider.java index 18d74c27186..4d982aa671c 100644 --- a/jdk/src/share/classes/javax/management/remote/JMXConnectorProvider.java +++ b/jdk/src/share/classes/javax/management/remote/JMXConnectorProvider.java @@ -50,7 +50,7 @@ public interface JMXConnectorProvider { * @param environment a read-only Map containing named attributes * to determine how the connection is made. Keys in this map must * be Strings. The appropriate type of each associated value - * depends on the attribute.

    + * depends on the attribute. * * @return a JMXConnector representing the new * connector client. Each successful call to this method produces diff --git a/jdk/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java b/jdk/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java index 294308d64a3..4d0a3d428e3 100644 --- a/jdk/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java +++ b/jdk/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java @@ -1613,7 +1613,7 @@ public class RMIConnectionImpl implements RMIConnection, Unreferenced { /** * Construct a new IOException with a nested exception. - * The nested exception is set only if JDK >= 1.4 + * The nested exception is set only if JDK {@literal >= 1.4} */ private static IOException newIOException(String message, Throwable cause) { diff --git a/jdk/src/share/classes/javax/management/remote/rmi/RMIConnector.java b/jdk/src/share/classes/javax/management/remote/rmi/RMIConnector.java index a3365662bf1..9d71ed9e63b 100644 --- a/jdk/src/share/classes/javax/management/remote/rmi/RMIConnector.java +++ b/jdk/src/share/classes/javax/management/remote/rmi/RMIConnector.java @@ -1688,17 +1688,17 @@ public class RMIConnector implements JMXConnector, Serializable, JMXAddressable * this method will attempt to connect the stub to an ORB as * follows: *
      - *

      This method looks in the provided environment for + *

    • This method looks in the provided environment for * the "java.naming.corba.orb" property. If it is found, the * referenced object (an {@link org.omg.CORBA.ORB ORB}) is used to * connect the stub. Otherwise, a new org.omg.CORBA.ORB is created * by calling {@link * org.omg.CORBA.ORB#init(String[], Properties) - * org.omg.CORBA.ORB.init((String[])null,(Properties)null)} - *

      The new created ORB is kept in a static + * org.omg.CORBA.ORB.init((String[])null,(Properties)null)}

    • + *
    • The new created ORB is kept in a static * {@link WeakReference} and can be reused for connecting other * stubs. However, no reference is ever kept on the ORB provided - * in the environment map, if any. + * in the environment map, if any.
    • *
    * @param rmiServer A RMI Server Stub. * @param environment An environment map, possibly containing an ORB. diff --git a/jdk/src/share/classes/javax/management/remote/rmi/RMIConnectorServer.java b/jdk/src/share/classes/javax/management/remote/rmi/RMIConnectorServer.java index faa949cca38..9db8bd9b467 100644 --- a/jdk/src/share/classes/javax/management/remote/rmi/RMIConnectorServer.java +++ b/jdk/src/share/classes/javax/management/remote/rmi/RMIConnectorServer.java @@ -820,7 +820,7 @@ public class RMIConnectorServer extends JMXConnectorServer { /** * Construct a new IOException with a nested exception. - * The nested exception is set only if JDK >= 1.4 + * The nested exception is set only if JDK {@literal >= 1.4} */ private static IOException newIOException(String message, Throwable cause) { diff --git a/jdk/src/share/classes/javax/management/remote/rmi/RMIServerImpl.java b/jdk/src/share/classes/javax/management/remote/rmi/RMIServerImpl.java index 2226f6c8162..e3e10d4ea2f 100644 --- a/jdk/src/share/classes/javax/management/remote/rmi/RMIServerImpl.java +++ b/jdk/src/share/classes/javax/management/remote/rmi/RMIServerImpl.java @@ -117,7 +117,7 @@ public abstract class RMIServerImpl implements Closeable, RMIServer { * server.

    * * @return the default ClassLoader used by this - * connector server.

    + * connector server. * * @see #setDefaultClassLoader */ diff --git a/jdk/src/share/classes/javax/swing/AbstractButton.java b/jdk/src/share/classes/javax/swing/AbstractButton.java index 5157b16ee71..6f75be948e9 100644 --- a/jdk/src/share/classes/javax/swing/AbstractButton.java +++ b/jdk/src/share/classes/javax/swing/AbstractButton.java @@ -1381,7 +1381,7 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl * If true and the button has a border, * the border is painted. The default value for the * borderPainted property is true. - *

    + *

    * Some look and feels might not support * the borderPainted property, * in which case they ignore this. @@ -1476,7 +1476,7 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl * This function may cause the component's opaque property to change. *

    * The exact behavior of calling this function varies on a - * component-by-component and L&F-by-L&F basis. + * component-by-component and L&F-by-L&F basis. * * @param b if true, the content should be filled; if false * the content area is not filled @@ -1702,7 +1702,7 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl * @see #getMultiClickThreshhold * @param threshhold the amount of time required between mouse * press events to generate corresponding action events - * @exception IllegalArgumentException if threshhold < 0 + * @exception IllegalArgumentException if threshhold < 0 * @since 1.4 */ public void setMultiClickThreshhold(long threshhold) { @@ -1787,7 +1787,7 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl /** - * Returns the L&F object that renders this component. + * Returns the L&F object that renders this component. * @return the ButtonUI object * @see #setUI */ @@ -1797,8 +1797,8 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl /** - * Sets the L&F object that renders this component. - * @param ui the ButtonUI L&F object + * Sets the L&F object that renders this component. + * @param ui the ButtonUI L&F object * @see #getUI * @beaninfo * bound: true @@ -2722,7 +2722,7 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl * * @param part the AccessibleText.CHARACTER, AccessibleText.WORD, * or AccessibleText.SENTENCE to retrieve - * @param index an index within the text >= 0 + * @param index an index within the text >= 0 * @return the letter, word, or sentence, * null for an invalid index or part * @since 1.3 @@ -2769,7 +2769,7 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl * * @param part the AccessibleText.CHARACTER, AccessibleText.WORD, * or AccessibleText.SENTENCE to retrieve - * @param index an index within the text >= 0 + * @param index an index within the text >= 0 * @return the letter, word, or sentence, null for an invalid * index or part * @since 1.3 @@ -2833,7 +2833,7 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl * * @param part the AccessibleText.CHARACTER, AccessibleText.WORD, * or AccessibleText.SENTENCE to retrieve - * @param index an index within the text >= 0 + * @param index an index within the text >= 0 * @return the letter, word, or sentence, null for an invalid index * or part * @since 1.3 diff --git a/jdk/src/share/classes/javax/swing/Action.java b/jdk/src/share/classes/javax/swing/Action.java index 307f40a74db..7223d819681 100644 --- a/jdk/src/share/classes/javax/swing/Action.java +++ b/jdk/src/share/classes/javax/swing/Action.java @@ -69,7 +69,7 @@ import java.beans.*; * are desired, and use simple ActionListeners elsewhere. *

    * - *

    Swing Components Supporting Action

    + *

    Swing Components Supporting Action

    *

    * Many of Swing's components have an Action property. When * an Action is set on a component, the following things @@ -95,8 +95,7 @@ import java.beans.*; * button's corresponding property being set to null. *

    *

    Type
    + * summary="Supported Action properties"> * *
    Component Property * Components diff --git a/jdk/src/share/classes/javax/swing/Box.java b/jdk/src/share/classes/javax/swing/Box.java index 2f4c6e4c76f..1a3ace74129 100644 --- a/jdk/src/share/classes/javax/swing/Box.java +++ b/jdk/src/share/classes/javax/swing/Box.java @@ -155,7 +155,7 @@ public class Box extends JComponent implements Accessible { * in which case it takes its share of available space, * just like any other component that has no maximum height. * - * @param width the width of the invisible component, in pixels >= 0 + * @param width the width of the invisible component, in pixels >= 0 * @return the component * @see #createVerticalStrut * @see #createGlue @@ -179,7 +179,7 @@ public class Box extends JComponent implements Accessible { * in which case it takes its share of available space, * just like any other component that has no maximum width. * - * @param height the height of the invisible component, in pixels >= 0 + * @param height the height of the invisible component, in pixels >= 0 * @return the component * @see #createHorizontalStrut * @see #createGlue diff --git a/jdk/src/share/classes/javax/swing/BoxLayout.java b/jdk/src/share/classes/javax/swing/BoxLayout.java index f510553063e..09968fb0b35 100644 --- a/jdk/src/share/classes/javax/swing/BoxLayout.java +++ b/jdk/src/share/classes/javax/swing/BoxLayout.java @@ -287,7 +287,7 @@ public class BoxLayout implements LayoutManager2, Serializable { * in the specified target container. * * @param target the container that needs to be laid out - * @return the dimensions >= 0 && <= Integer.MAX_VALUE + * @return the dimensions >= 0 && <= Integer.MAX_VALUE * @exception AWTError if the target isn't the container specified to the * BoxLayout constructor * @see Container @@ -313,7 +313,7 @@ public class BoxLayout implements LayoutManager2, Serializable { * contained in the specified target container. * * @param target the container that needs to be laid out - * @return the dimensions >= 0 && <= Integer.MAX_VALUE + * @return the dimensions >= 0 && <= Integer.MAX_VALUE * @exception AWTError if the target isn't the container specified to the * BoxLayout constructor * @see #preferredLayoutSize @@ -338,7 +338,7 @@ public class BoxLayout implements LayoutManager2, Serializable { * to lay out the components it contains. * * @param target the container that needs to be laid out - * @return the dimensions >= 0 && <= Integer.MAX_VALUE + * @return the dimensions >= 0 && <= Integer.MAX_VALUE * @exception AWTError if the target isn't the container specified to the * BoxLayout constructor * @see #preferredLayoutSize @@ -365,7 +365,7 @@ public class BoxLayout implements LayoutManager2, Serializable { * to place the children along the X axis will be returned. * * @param target the container - * @return the alignment >= 0.0f && <= 1.0f + * @return the alignment >= 0.0f && <= 1.0f * @exception AWTError if the target isn't the container specified to the * BoxLayout constructor */ @@ -382,7 +382,7 @@ public class BoxLayout implements LayoutManager2, Serializable { * to place the children along the Y axis will be returned. * * @param target the container - * @return the alignment >= 0.0f && <= 1.0f + * @return the alignment >= 0.0f && <= 1.0f * @exception AWTError if the target isn't the container specified to the * BoxLayout constructor */ diff --git a/jdk/src/share/classes/javax/swing/CellRendererPane.java b/jdk/src/share/classes/javax/swing/CellRendererPane.java index 6a9f17b058a..3e43b80d9ea 100644 --- a/jdk/src/share/classes/javax/swing/CellRendererPane.java +++ b/jdk/src/share/classes/javax/swing/CellRendererPane.java @@ -96,7 +96,7 @@ public class CellRendererPane extends Container implements Accessible /** * If the specified component is already a child of this then we don't * bother doing anything - stacking order doesn't matter for cell - * renderer components (CellRendererPane doesn't paint anyway).< + * renderer components (CellRendererPane doesn't paint anyway). */ protected void addImpl(Component x, Object constraints, int index) { if (x.getParent() == this) { diff --git a/jdk/src/share/classes/javax/swing/DefaultListSelectionModel.java b/jdk/src/share/classes/javax/swing/DefaultListSelectionModel.java index 26f06c63a2c..388a5a59a81 100644 --- a/jdk/src/share/classes/javax/swing/DefaultListSelectionModel.java +++ b/jdk/src/share/classes/javax/swing/DefaultListSelectionModel.java @@ -637,7 +637,7 @@ public class DefaultListSelectionModel implements ListSelectionModel, Cloneable, * Remove the indices in the interval index0,index1 (inclusive) from * the selection model. This is typically called to sync the selection * model width a corresponding change in the data model. Note - * that (as always) index0 need not be <= index1. + * that (as always) index0 need not be <= index1. */ public void removeIndexInterval(int index0, int index1) { diff --git a/jdk/src/share/classes/javax/swing/DesktopManager.java b/jdk/src/share/classes/javax/swing/DesktopManager.java index 2f141e49350..e0a2a434a45 100644 --- a/jdk/src/share/classes/javax/swing/DesktopManager.java +++ b/jdk/src/share/classes/javax/swing/DesktopManager.java @@ -26,13 +26,13 @@ package javax.swing; /** DesktopManager objects are owned by a JDesktopPane object. They are responsible - * for implementing L&F specific behaviors for the JDesktopPane. JInternalFrame + * for implementing L&F specific behaviors for the JDesktopPane. JInternalFrame * implementations should delegate specific behaviors to the DesktopManager. For * instance, if a JInternalFrame was asked to iconify, it should try: *
       *    getDesktopPane().getDesktopManager().iconifyFrame(frame);
       * 
    - * This delegation allows each L&F to provide custom behaviors for desktop-specific + * This delegation allows each L&F to provide custom behaviors for desktop-specific * actions. (For example, how and where the internal frame's icon would appear.) *

    This class provides a policy for the various JInternalFrame methods, it is not * meant to be called directly rather the various JInternalFrame methods will call diff --git a/jdk/src/share/classes/javax/swing/GroupLayout.java b/jdk/src/share/classes/javax/swing/GroupLayout.java index 9b0d4df485b..e3be1ddfdd5 100644 --- a/jdk/src/share/classes/javax/swing/GroupLayout.java +++ b/jdk/src/share/classes/javax/swing/GroupLayout.java @@ -80,7 +80,7 @@ import static javax.swing.SwingConstants.VERTICAL; * axis. The sequential group contains three components. A parallel group * was used along the vertical axis. *

    - * + * Sequential group along the horizontal axis in three components *

    * To reinforce that each axis is treated independently the diagram shows * the range of each group and element along each axis. The @@ -102,7 +102,7 @@ import static javax.swing.SwingConstants.VERTICAL; * the vertical axis. *

    *

    - * + * Sequential group along the vertical axis in three components *

    * As {@code c1} is the largest of the three components, the parallel * group is sized to {@code c1}. As {@code c2} and {@code c3} are smaller @@ -116,7 +116,7 @@ import static javax.swing.SwingConstants.VERTICAL; * The following diagram shows a sequential group along both the horizontal * and vertical axis. *

    - * + * Sequential group along both the horizontal and vertical axis in three components *

    * {@code GroupLayout} provides the ability to insert gaps between * {@code Component}s. The size of the gap is determined by an @@ -173,7 +173,7 @@ import static javax.swing.SwingConstants.VERTICAL; *

    * When run the following is produced. *

    - * + * Produced horizontal/vertical form *

    * This layout consists of the following. *

    • The horizontal axis consists of a sequential group containing two diff --git a/jdk/src/share/classes/javax/swing/JComponent.java b/jdk/src/share/classes/javax/swing/JComponent.java index 598916da412..3f4d3f25606 100644 --- a/jdk/src/share/classes/javax/swing/JComponent.java +++ b/jdk/src/share/classes/javax/swing/JComponent.java @@ -4906,12 +4906,12 @@ public abstract class JComponent extends Container implements Serializable, /** * Returns {@code true} if a paint triggered on a child component should cause * painting to originate from this Component, or one of its ancestors. - *

      + *

      * Calling {@link #repaint} or {@link #paintImmediately(int, int, int, int)} * on a Swing component will result in calling * the {@link JComponent#paintImmediately(int, int, int, int)} method of * the first ancestor which {@code isPaintingOrigin()} returns {@code true}, if there are any. - *

      + *

      * {@code JComponent} subclasses that need to be painted when any of their * children are repainted should override this method to return {@code true}. * diff --git a/jdk/src/share/classes/javax/swing/JEditorPane.java b/jdk/src/share/classes/javax/swing/JEditorPane.java index f4c5893068c..a104d1c0858 100644 --- a/jdk/src/share/classes/javax/swing/JEditorPane.java +++ b/jdk/src/share/classes/javax/swing/JEditorPane.java @@ -103,7 +103,7 @@ import javax.accessibility.*; * fragment is a possible hyperlink listener implementation, that treats * HTML frame events specially, and simply displays any other activated * hyperlinks. - *

      + * 
       
            class Hyperactive implements HyperlinkListener {
        
      @@ -125,7 +125,7 @@ import javax.accessibility.*;
                }
            }
       
      - * 
      + *
      *

      * For information on customizing how text/html is rendered please see * {@link #W3C_LENGTH_UNITS} and {@link #HONOR_DISPLAY_PROPERTIES} diff --git a/jdk/src/share/classes/javax/swing/JFileChooser.java b/jdk/src/share/classes/javax/swing/JFileChooser.java index 218f6ae7310..012c6753300 100644 --- a/jdk/src/share/classes/javax/swing/JFileChooser.java +++ b/jdk/src/share/classes/javax/swing/JFileChooser.java @@ -67,7 +67,7 @@ import java.lang.ref.WeakReference; *

        *    JFileChooser chooser = new JFileChooser();
        *    FileNameExtensionFilter filter = new FileNameExtensionFilter(
      - *        "JPG & GIF Images", "jpg", "gif");
      + *        "JPG & GIF Images", "jpg", "gif");
        *    chooser.setFileFilter(filter);
        *    int returnVal = chooser.showOpenDialog(parent);
        *    if(returnVal == JFileChooser.APPROVE_OPTION) {
      @@ -634,7 +634,7 @@ public class JFileChooser extends JComponent implements Accessible {
           /**
            * Pops up an "Open File" file chooser dialog. Note that the
            * text that appears in the approve button is determined by
      -     * the L&F.
      +     * the L&F.
            *
            * @param    parent  the parent component of the dialog,
            *                  can be null;
      @@ -659,7 +659,7 @@ public class JFileChooser extends JComponent implements Accessible {
           /**
            * Pops up a "Save File" file chooser dialog. Note that the
            * text that appears in the approve button is determined by
      -     * the L&F.
      +     * the L&F.
            *
            * @param    parent  the parent component of the dialog,
            *                  can be null;
      @@ -861,7 +861,7 @@ public class JFileChooser extends JComponent implements Accessible {
            * @beaninfo
            *   preferred: true
            *       bound: true
      -     * description: Sets whether the approve & cancel buttons are shown.
      +     * description: Sets whether the approve & cancel buttons are shown.
            *
            * @see #getControlButtonsAreShown
            * @see #CONTROL_BUTTONS_ARE_SHOWN_CHANGED_PROPERTY
      @@ -1841,7 +1841,7 @@ public class JFileChooser extends JComponent implements Accessible {
           }
       
           /**
      -     * Returns a string that specifies the name of the L&F class
      +     * Returns a string that specifies the name of the L&F class
            * that renders this component.
            *
            * @return the string "FileChooserUI"
      @@ -1849,16 +1849,16 @@ public class JFileChooser extends JComponent implements Accessible {
            * @see UIDefaults#getUI
            * @beaninfo
            *        expert: true
      -     *   description: A string that specifies the name of the L&F class.
      +     *   description: A string that specifies the name of the L&F class.
            */
           public String getUIClassID() {
               return uiClassID;
           }
       
           /**
      -     * Gets the UI object which implements the L&F for this component.
      +     * Gets the UI object which implements the L&F for this component.
            *
      -     * @return the FileChooserUI object that implements the FileChooserUI L&F
      +     * @return the FileChooserUI object that implements the FileChooserUI L&F
            */
           public FileChooserUI getUI() {
               return (FileChooserUI) ui;
      diff --git a/jdk/src/share/classes/javax/swing/JLabel.java b/jdk/src/share/classes/javax/swing/JLabel.java
      index be900a4697d..c6e28d92eaa 100644
      --- a/jdk/src/share/classes/javax/swing/JLabel.java
      +++ b/jdk/src/share/classes/javax/swing/JLabel.java
      @@ -237,7 +237,7 @@ public class JLabel extends JComponent implements SwingConstants, Accessible
       
       
           /**
      -     * Returns the L&F object that renders this component.
      +     * Returns the L&F object that renders this component.
            *
            * @return LabelUI object
            */
      @@ -247,9 +247,9 @@ public class JLabel extends JComponent implements SwingConstants, Accessible
       
       
           /**
      -     * Sets the L&F object that renders this component.
      +     * Sets the L&F object that renders this component.
            *
      -     * @param ui  the LabelUI L&F object
      +     * @param ui  the LabelUI L&F object
            * @see UIDefaults#getUI
            * @beaninfo
            *        bound: true
      @@ -277,7 +277,7 @@ public class JLabel extends JComponent implements SwingConstants, Accessible
       
       
           /**
      -     * Returns a string that specifies the name of the l&f class
      +     * Returns a string that specifies the name of the l&f class
            * that renders this component.
            *
            * @return String "LabelUI"
      @@ -545,8 +545,8 @@ public class JLabel extends JComponent implements SwingConstants, Accessible
            *
            * @since 1.4
            * @param index Index into the String to underline
      -     * @exception IllegalArgumentException will be thrown if index= length of the text, or < -1
      +     * @exception IllegalArgumentException will be thrown if index
      +     *            is >= length of the text, or < -1
            *
            * @beaninfo
            *        bound: true
      @@ -1251,7 +1251,7 @@ public class JLabel extends JComponent implements SwingConstants, Accessible
                *
                * @param part the AccessibleText.CHARACTER, AccessibleText.WORD,
                * or AccessibleText.SENTENCE to retrieve
      -         * @param index an index within the text >= 0
      +         * @param index an index within the text >= 0
                * @return the letter, word, or sentence,
                *   null for an invalid index or part
                * @since 1.3
      @@ -1298,7 +1298,7 @@ public class JLabel extends JComponent implements SwingConstants, Accessible
                *
                * @param part the AccessibleText.CHARACTER, AccessibleText.WORD,
                * or AccessibleText.SENTENCE to retrieve
      -         * @param index an index within the text >= 0
      +         * @param index an index within the text >= 0
                * @return the letter, word, or sentence, null for an invalid
                *  index or part
                * @since 1.3
      @@ -1362,7 +1362,7 @@ public class JLabel extends JComponent implements SwingConstants, Accessible
                *
                * @param part the AccessibleText.CHARACTER, AccessibleText.WORD,
                *   or AccessibleText.SENTENCE to retrieve
      -         * @param index an index within the text >= 0
      +         * @param index an index within the text >= 0
                * @return the letter, word, or sentence, null for an invalid index
                *  or part
                * @since 1.3
      diff --git a/jdk/src/share/classes/javax/swing/JList.java b/jdk/src/share/classes/javax/swing/JList.java
      index 9b016251a7e..e62bc80135b 100644
      --- a/jdk/src/share/classes/javax/swing/JList.java
      +++ b/jdk/src/share/classes/javax/swing/JList.java
      @@ -146,7 +146,7 @@ import static sun.swing.SwingUtilities2.Section.*;
        * Responsibility for listening to selection changes in order to keep the list's
        * visual representation up to date lies with the list's {@code ListUI}.
        * 

      - * + * * Painting of cells in a {@code JList} is handled by a delegate called a * cell renderer, installed on the list as the {@code cellRenderer} property. * The renderer provides a {@code java.awt.Component} that is used @@ -202,7 +202,7 @@ import static sun.swing.SwingUtilities2.Section.*; * To avoid these calculations, you can set a {@code fixedCellWidth} and * {@code fixedCellHeight} on the list, or have these values calculated * automatically based on a single prototype value: - * + * *

        * {@code
        * JList bigDataList = new JList(bigData);
      @@ -1512,7 +1512,7 @@ public class JList extends JComponent implements Scrollable, Accessible
            * tooltip text on the cell level, by using {@code setToolTipText} on your
            * cell renderer component.
            * 

      - * Note: For JList to properly display the + * Note: For JList to properly display the * tooltips of its renderers in this manner, JList must be a * registered component with the ToolTipManager. This registration * is done automatically in the constructor. However, if at a later point diff --git a/jdk/src/share/classes/javax/swing/JMenu.java b/jdk/src/share/classes/javax/swing/JMenu.java index 60aa661ff70..7493ede1ab8 100644 --- a/jdk/src/share/classes/javax/swing/JMenu.java +++ b/jdk/src/share/classes/javax/swing/JMenu.java @@ -225,7 +225,7 @@ public class JMenu extends JMenuItem implements Accessible,MenuElement /** - * Returns the name of the L&F class that renders this component. + * Returns the name of the L&F class that renders this component. * * @return the string "MenuUI" * @see JComponent#getUIClassID @@ -490,7 +490,7 @@ public class JMenu extends JMenuItem implements Accessible,MenuElement /** * Returns the suggested delay, in milliseconds, before submenus * are popped up or down. - * Each look and feel (L&F) may determine its own policy for + * Each look and feel (L&F) may determine its own policy for * observing the delay property. * In most cases, the delay is not observed for top level menus * or while dragging. The default for delay is 0. @@ -506,7 +506,7 @@ public class JMenu extends JMenuItem implements Accessible,MenuElement /** * Sets the suggested delay before the menu's PopupMenu - * is popped up or down. Each look and feel (L&F) may determine + * is popped up or down. Each look and feel (L&F) may determine * it's own policy for observing the delay property. In most cases, * the delay is not observed for top level menus or while dragging. * This method is a property of the look and feel code and is used @@ -676,7 +676,7 @@ public class JMenu extends JMenuItem implements Accessible,MenuElement * @param pos an integer specifying the position at which to add the * new menu item * @exception IllegalArgumentException when the value of - * pos < 0 + * pos < 0 */ public void insert(String s, int pos) { if (pos < 0) { @@ -695,7 +695,7 @@ public class JMenu extends JMenuItem implements Accessible,MenuElement * new JMenuitem * @return the new menu item * @exception IllegalArgumentException if the value of - * pos < 0 + * pos < 0 */ public JMenuItem insert(JMenuItem mi, int pos) { if (pos < 0) { @@ -714,7 +714,7 @@ public class JMenu extends JMenuItem implements Accessible,MenuElement * @param pos an integer specifying the position at which to add the * new menu item * @exception IllegalArgumentException if the value of - * pos < 0 + * pos < 0 */ public JMenuItem insert(Action a, int pos) { if (pos < 0) { @@ -735,7 +735,7 @@ public class JMenu extends JMenuItem implements Accessible,MenuElement * @param index an integer specifying the position at which to * insert the menu separator * @exception IllegalArgumentException if the value of - * index < 0 + * index < 0 */ public void insertSeparator(int index) { if (index < 0) { @@ -754,7 +754,7 @@ public class JMenu extends JMenuItem implements Accessible,MenuElement * * @param pos an integer specifying the position * @exception IllegalArgumentException if the value of - * pos < 0 + * pos < 0 * @return the menu item at the specified position; or null * if the item as the specified position is not a menu item */ @@ -811,7 +811,7 @@ public class JMenu extends JMenuItem implements Accessible,MenuElement * * @param pos the position of the item to be removed * @exception IllegalArgumentException if the value of - * pos < 0, or if pos + * pos < 0, or if pos * is greater than the number of menu items */ public void remove(int pos) { diff --git a/jdk/src/share/classes/javax/swing/JMenuBar.java b/jdk/src/share/classes/javax/swing/JMenuBar.java index 8e6683d6f17..f00d4207485 100644 --- a/jdk/src/share/classes/javax/swing/JMenuBar.java +++ b/jdk/src/share/classes/javax/swing/JMenuBar.java @@ -130,9 +130,9 @@ public class JMenuBar extends JComponent implements Accessible,MenuElement } /** - * Sets the L&F object that renders this component. + * Sets the L&F object that renders this component. * - * @param ui the new MenuBarUI L&F object + * @param ui the new MenuBarUI L&F object * @see UIDefaults#getUI * @beaninfo * bound: true @@ -155,7 +155,7 @@ public class JMenuBar extends JComponent implements Accessible,MenuElement /** - * Returns the name of the L&F class that renders this component. + * Returns the name of the L&F class that renders this component. * * @return the string "MenuBarUI" * @see JComponent#getUIClassID diff --git a/jdk/src/share/classes/javax/swing/JTextField.java b/jdk/src/share/classes/javax/swing/JTextField.java index 0e5e9aa4915..d4bc1aa0f6b 100644 --- a/jdk/src/share/classes/javax/swing/JTextField.java +++ b/jdk/src/share/classes/javax/swing/JTextField.java @@ -367,7 +367,7 @@ public class JTextField extends JTextComponent implements SwingConstants { /** * Returns the number of columns in this TextField. * - * @return the number of columns >= 0 + * @return the number of columns >= 0 */ public int getColumns() { return columns; @@ -377,7 +377,7 @@ public class JTextField extends JTextComponent implements SwingConstants { * Sets the number of columns in this TextField, * and then invalidate the layout. * - * @param columns the number of columns >= 0 + * @param columns the number of columns >= 0 * @exception IllegalArgumentException if columns * is less than 0 * @beaninfo @@ -402,7 +402,7 @@ public class JTextField extends JTextComponent implements SwingConstants { * character m for the font used. This method can be * redefined to be some alternative amount * - * @return the column width >= 1 + * @return the column width >= 1 */ protected int getColumnWidth() { if (columnWidth == 0) { @@ -744,7 +744,7 @@ public class JTextField extends JTextComponent implements SwingConstants { /** * Gets the scroll offset, in pixels. * - * @return the offset >= 0 + * @return the offset >= 0 */ public int getScrollOffset() { return visibility.getValue(); @@ -753,7 +753,7 @@ public class JTextField extends JTextComponent implements SwingConstants { /** * Sets the scroll offset, in pixels. * - * @param scrollOffset the offset >= 0 + * @param scrollOffset the offset >= 0 */ public void setScrollOffset(int scrollOffset) { visibility.setValue(scrollOffset); diff --git a/jdk/src/share/classes/javax/swing/KeyboardManager.java b/jdk/src/share/classes/javax/swing/KeyboardManager.java index 3ce79226a5f..afbd93e734e 100644 --- a/jdk/src/share/classes/javax/swing/KeyboardManager.java +++ b/jdk/src/share/classes/javax/swing/KeyboardManager.java @@ -208,7 +208,7 @@ class KeyboardManager { public boolean fireKeyboardAction(KeyEvent e, boolean pressed, Container topAncestor) { if (e.isConsumed()) { - System.out.println("Aquired pre-used event!"); + System.out.println("Acquired pre-used event!"); Thread.dumpStack(); } diff --git a/jdk/src/share/classes/javax/swing/SortingFocusTraversalPolicy.java b/jdk/src/share/classes/javax/swing/SortingFocusTraversalPolicy.java index cbdfc015a19..45b3766c33e 100644 --- a/jdk/src/share/classes/javax/swing/SortingFocusTraversalPolicy.java +++ b/jdk/src/share/classes/javax/swing/SortingFocusTraversalPolicy.java @@ -116,7 +116,7 @@ public class SortingFocusTraversalPolicy index = Collections.binarySearch(cycle, aComponent, comparator); } catch (ClassCastException e) { if (log.isLoggable(PlatformLogger.Level.FINE)) { - log.fine("### During the binary search for " + aComponent + " the exception occured: ", e); + log.fine("### During the binary search for " + aComponent + " the exception occurred: ", e); } return -1; } diff --git a/jdk/src/share/classes/javax/swing/text/AbstractDocument.java b/jdk/src/share/classes/javax/swing/text/AbstractDocument.java index 5ccd80d95e5..71e9d5d8c60 100644 --- a/jdk/src/share/classes/javax/swing/text/AbstractDocument.java +++ b/jdk/src/share/classes/javax/swing/text/AbstractDocument.java @@ -1367,7 +1367,7 @@ public abstract class AbstractDocument implements Document, Serializable { currWriter = Thread.currentThread(); numWriters = 1; } catch (InterruptedException e) { - throw new Error("Interrupted attempt to aquire write lock"); + throw new Error("Interrupted attempt to acquire write lock"); } } @@ -1409,7 +1409,7 @@ public abstract class AbstractDocument implements Document, Serializable { } numReaders += 1; } catch (InterruptedException e) { - throw new Error("Interrupted attempt to aquire read lock"); + throw new Error("Interrupted attempt to acquire read lock"); } } diff --git a/jdk/src/share/classes/javax/swing/tree/DefaultMutableTreeNode.java b/jdk/src/share/classes/javax/swing/tree/DefaultMutableTreeNode.java index 5e776a0cd81..17840426075 100644 --- a/jdk/src/share/classes/javax/swing/tree/DefaultMutableTreeNode.java +++ b/jdk/src/share/classes/javax/swing/tree/DefaultMutableTreeNode.java @@ -26,6 +26,7 @@ package javax.swing.tree; // ISSUE: this class depends on nothing in AWT -- move to java.util? +import java.beans.Transient; import java.io.*; import java.util.*; @@ -215,6 +216,7 @@ public class DefaultMutableTreeNode implements Cloneable, * * @param newParent this node's new parent */ + @Transient public void setParent(MutableTreeNode newParent) { parent = newParent; } diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/ByteVector.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/ByteVector.java index 0d3472bcac1..89eb6d4b640 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/ByteVector.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/ByteVector.java @@ -233,11 +233,14 @@ public class ByteVector { * automatically enlarged if necessary. * * @param s - * a String. + * a String whose UTF8 encoded length must be less than 65536. * @return this byte vector. */ public ByteVector putUTF8(final String s) { int charLength = s.length(); + if (charLength > 65535) { + throw new IllegalArgumentException(); + } int len = length; if (len + 2 + charLength > data.length) { enlarge(2 + charLength); @@ -267,6 +270,9 @@ public class ByteVector { byteLength += 2; } } + if (byteLength > 65535) { + throw new IllegalArgumentException(); + } data[length] = (byte) (byteLength >>> 8); data[length + 1] = (byte) byteLength; if (length + 2 + byteLength > data.length) { diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/ClassReader.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/ClassReader.java index 8cbc2d2c199..4f842157ac3 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/ClassReader.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/ClassReader.java @@ -1266,7 +1266,7 @@ public class ClassReader { u += 2; // generates the first (implicit) stack map frame - if (FRAMES && (stackMap != 0 || unzip)) { + if (FRAMES && stackMap != 0) { /* * for the first explicit frame the offset is not offset_delta + 1 * but only offset_delta; setting the implicit frame offset to -1 @@ -1283,8 +1283,6 @@ public class ClassReader { if (unzip) { getImplicitFrame(context); } - } - if (FRAMES && stackMap != 0) { /* * Finds labels for UNINITIALIZED frame types. Instead of decoding * each element of the stack map table, we look for 3 consecutive @@ -1322,17 +1320,19 @@ public class ClassReader { } } - // visits the frame(s) for this offset, if any + // visits the frame for this offset, if any while (FRAMES && frame != null && (frame.offset == offset || frame.offset == -1)) { // if there is a frame for this offset, makes the visitor visit // it, and reads the next frame if there is one. - if (!zip || unzip) { - mv.visitFrame(Opcodes.F_NEW, frame.localCount, frame.local, - frame.stackCount, frame.stack); - } else if (frame.offset != -1) { - mv.visitFrame(frame.mode, frame.localDiff, frame.local, - frame.stackCount, frame.stack); + if (frame.offset != -1) { + if (!zip || unzip) { + mv.visitFrame(Opcodes.F_NEW, frame.localCount, + frame.local, frame.stackCount, frame.stack); + } else { + mv.visitFrame(frame.mode, frame.localDiff, frame.local, + frame.stackCount, frame.stack); + } } if (frameCount > 0) { stackMap = readFrame(stackMap, zip, unzip, frame); @@ -1434,6 +1434,7 @@ public class ClassReader { case ClassWriter.FIELDORMETH_INSN: case ClassWriter.ITFMETH_INSN: { int cpIndex = items[readUnsignedShort(u + 1)]; + boolean itf = b[cpIndex - 1] == ClassWriter.IMETH; String iowner = readClass(cpIndex, c); cpIndex = items[readUnsignedShort(cpIndex + 2)]; String iname = readUTF8(cpIndex, c); @@ -1441,7 +1442,7 @@ public class ClassReader { if (opcode < Opcodes.INVOKEVIRTUAL) { mv.visitFieldInsn(opcode, iowner, iname, idesc); } else { - mv.visitMethodInsn(opcode, iowner, iname, idesc); + mv.visitMethodInsn(opcode, iowner, iname, idesc, itf); } if (opcode == Opcodes.INVOKEINTERFACE) { u += 5; diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/ClassWriter.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/ClassWriter.java index d5d8fa48903..ab9dcd0dce4 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/ClassWriter.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/ClassWriter.java @@ -516,12 +516,12 @@ public class ClassWriter extends ClassVisitor { * true if the maximum stack size and number of local variables * must be automatically computed. */ - private final boolean computeMaxs; + private boolean computeMaxs; /** * true if the stack map frames must be recomputed from scratch. */ - private final boolean computeFrames; + private boolean computeFrames; /** * true if the stack map tables of this class are invalid. The @@ -988,9 +988,22 @@ public class ClassWriter extends ClassVisitor { attrs.put(this, null, 0, -1, -1, out); } if (invalidFrames) { - ClassWriter cw = new ClassWriter(COMPUTE_FRAMES); - new ClassReader(out.data).accept(cw, ClassReader.SKIP_FRAMES); - return cw.toByteArray(); + anns = null; + ianns = null; + attrs = null; + innerClassesCount = 0; + innerClasses = null; + bootstrapMethodsCount = 0; + bootstrapMethods = null; + firstField = null; + lastField = null; + firstMethod = null; + lastMethod = null; + computeMaxs = false; + computeFrames = true; + invalidFrames = false; + new ClassReader(out.data).accept(this, ClassReader.SKIP_FRAMES); + return toByteArray(); } return out.data; } diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/Handle.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/Handle.java index f262f9a09a0..e8b2859b05d 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/Handle.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/Handle.java @@ -78,7 +78,8 @@ public final class Handle { final int tag; /** - * The internal name of the field or method designed by this handle. + * The internal name of the class that owns the field or method designated + * by this handle. */ final String owner; @@ -105,8 +106,8 @@ public final class Handle { * {@link Opcodes#H_NEWINVOKESPECIAL} or * {@link Opcodes#H_INVOKEINTERFACE}. * @param owner - * the internal name of the field or method designed by this - * handle. + * the internal name of the class that owns the field or method + * designated by this handle. * @param name * the name of the field or method designated by this handle. * @param desc @@ -135,9 +136,11 @@ public final class Handle { } /** - * Returns the internal name of the field or method designed by this handle. + * Returns the internal name of the class that owns the field or method + * designated by this handle. * - * @return the internal name of the field or method designed by this handle. + * @return the internal name of the class that owns the field or method + * designated by this handle. */ public String getOwner() { return owner; diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/MethodVisitor.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/MethodVisitor.java index f21519e962c..0bb1a05b805 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/MethodVisitor.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/MethodVisitor.java @@ -68,11 +68,11 @@ package jdk.internal.org.objectweb.asm; * visitTryCatchBlock | visitTryCatchBlockAnnotation | * visitLocalVariable | visitLocalVariableAnnotation | * visitLineNumber )* visitMaxs ] visitEnd. In - * addition, the visitXInsn and visitLabel - * methods must be called in the sequential order of the bytecode instructions - * of the visited code, visitInsnAnnotation must be called after - * the annotated instruction, visitTryCatchBlock must be called - * before the labels passed as arguments have been visited, + * addition, the visitXInsn and visitLabel methods must + * be called in the sequential order of the bytecode instructions of the visited + * code, visitInsnAnnotation must be called after the annotated + * instruction, visitTryCatchBlock must be called before the + * labels passed as arguments have been visited, * visitTryCatchBlockAnnotation must be called after the * corresponding try catch block has been visited, and the * visitLocalVariable, visitLocalVariableAnnotation and @@ -274,13 +274,9 @@ public abstract class MethodVisitor { * compressed form (all frames must use the same format, i.e. you must not * mix expanded and compressed frames within a single method): *

        - *
      • In expanded form, all frames must have the F_NEW type, and a first - * frame corresponding to the method signature must be explicitly visited - * before the first instruction.
      • + *
      • In expanded form, all frames must have the F_NEW type.
      • *
      • In compressed form, frames are basically "deltas" from the state of - * the previous frame (the first frame, corresponding to the method's - * parameters and access flags, is implicit in this form, and must not be - * visited): + * the previous frame: *
          *
        • {@link Opcodes#F_SAME} representing frame with exactly the same * locals as the previous frame and with the empty stack.
        • @@ -296,8 +292,14 @@ public abstract class MethodVisitor { * same as the locals in the previous frame, except that the last 1-3 locals * are absent and with the empty stack (nLocals is 1, 2 or 3). *
        • {@link Opcodes#F_FULL} representing complete frame data.
        • - *
      • *
      + *
    • + *
    + *
    + * In both cases the first frame, corresponding to the method's parameters + * and access flags, is implicit and must not be visited. Also, it is + * illegal to visit two or more frames for the same code location (i.e., at + * least one instruction must be visited between two calls to visitFrame). * * @param type * the type of this stack map frame. Must be @@ -466,13 +468,52 @@ public abstract class MethodVisitor { * @param desc * the method's descriptor (see {@link Type Type}). */ + @Deprecated public void visitMethodInsn(int opcode, String owner, String name, String desc) { + if (api >= Opcodes.ASM5) { + boolean itf = opcode == Opcodes.INVOKEINTERFACE; + visitMethodInsn(opcode, owner, name, desc, itf); + return; + } if (mv != null) { mv.visitMethodInsn(opcode, owner, name, desc); } } + /** + * Visits a method instruction. A method instruction is an instruction that + * invokes a method. + * + * @param opcode + * the opcode of the type instruction to be visited. This opcode + * is either INVOKEVIRTUAL, INVOKESPECIAL, INVOKESTATIC or + * INVOKEINTERFACE. + * @param owner + * the internal name of the method's owner class (see + * {@link Type#getInternalName() getInternalName}). + * @param name + * the method's name. + * @param desc + * the method's descriptor (see {@link Type Type}). + * @param itf + * if the method's owner class is an interface. + */ + public void visitMethodInsn(int opcode, String owner, String name, + String desc, boolean itf) { + if (api < Opcodes.ASM5) { + if (itf != (opcode == Opcodes.INVOKEINTERFACE)) { + throw new IllegalArgumentException( + "INVOKESPECIAL/STATIC on interfaces require ASM 5"); + } + visitMethodInsn(opcode, owner, name, desc); + return; + } + if (mv != null) { + mv.visitMethodInsn(opcode, owner, name, desc, itf); + } + } + /** * Visits an invokedynamic instruction. * diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/MethodWriter.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/MethodWriter.java index f59abfa7a3a..81a82804d6e 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/MethodWriter.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/MethodWriter.java @@ -71,7 +71,7 @@ class MethodWriter extends MethodVisitor { /** * Pseudo access flag used to denote constructors. */ - static final int ACC_CONSTRUCTOR = 262144; + static final int ACC_CONSTRUCTOR = 0x80000; /** * Frame has exactly the same locals as the previous stack map frame and @@ -297,11 +297,6 @@ class MethodWriter extends MethodVisitor { */ private int[] previousFrame; - /** - * Index of the next element to be added in {@link #frame}. - */ - private int frameIndex; - /** * The current stack map frame. The first element contains the offset of the * instruction to which the frame corresponds, the second element is the @@ -496,6 +491,9 @@ class MethodWriter extends MethodVisitor { cw.lastMethod = this; this.cw = cw; this.access = access; + if ("".equals(name)) { + this.access |= ACC_CONSTRUCTOR; + } this.name = cw.newUTF8(name); this.desc = cw.newUTF8(desc); this.descriptor = desc; @@ -511,9 +509,6 @@ class MethodWriter extends MethodVisitor { } this.compute = computeFrames ? FRAMES : (computeMaxs ? MAXS : NOTHING); if (computeMaxs || computeFrames) { - if (computeFrames && "".equals(name)) { - this.access |= ACC_CONSTRUCTOR; - } // updates maxLocals int size = Type.getArgumentsAndReturnSizes(descriptor) >> 2; if ((access & Opcodes.ACC_STATIC) != 0) { @@ -649,8 +644,11 @@ class MethodWriter extends MethodVisitor { } if (type == Opcodes.F_NEW) { + if (previousFrame == null) { + visitImplicitFirstFrame(); + } currentLocals = nLocal; - startFrame(code.length, nLocal, nStack); + int frameIndex = startFrame(code.length, nLocal, nStack); for (int i = 0; i < nLocal; ++i) { if (local[i] instanceof String) { frame[frameIndex++] = Frame.OBJECT @@ -914,9 +912,8 @@ class MethodWriter extends MethodVisitor { @Override public void visitMethodInsn(final int opcode, final String owner, - final String name, final String desc) { + final String name, final String desc, final boolean itf) { lastCodeOffset = code.length; - boolean itf = opcode == Opcodes.INVOKEINTERFACE; Item i = cw.newMethodItem(owner, name, desc, itf); int argSize = i.intVal; // Label currentBlock = this.currentBlock; @@ -954,7 +951,7 @@ class MethodWriter extends MethodVisitor { } } // adds the instruction to the bytecode of the method - if (itf) { + if (opcode == Opcodes.INVOKEINTERFACE) { if (argSize == 0) { argSize = Type.getArgumentsAndReturnSizes(desc); i.intVal = argSize; @@ -1528,8 +1525,8 @@ class MethodWriter extends MethodVisitor { } code.data[end] = (byte) Opcodes.ATHROW; // emits a frame for this unreachable block - startFrame(start, 0, 1); - frame[frameIndex++] = Frame.OBJECT + int frameIndex = startFrame(start, 0, 1); + frame[frameIndex] = Frame.OBJECT | cw.addType("java/lang/Throwable"); endFrame(); // removes the start-end range from the exception @@ -1756,7 +1753,7 @@ class MethodWriter extends MethodVisitor { } } // visits the frame and its content - startFrame(f.owner.position, nLocal, nStack); + int frameIndex = startFrame(f.owner.position, nLocal, nStack); for (i = 0; nLocal > 0; ++i, --nLocal) { t = locals[i]; frame[frameIndex++] = t; @@ -1774,6 +1771,67 @@ class MethodWriter extends MethodVisitor { endFrame(); } + /** + * Visit the implicit first frame of this method. + */ + private void visitImplicitFirstFrame() { + // There can be at most descriptor.length() + 1 locals + int frameIndex = startFrame(0, descriptor.length() + 1, 0); + if ((access & Opcodes.ACC_STATIC) == 0) { + if ((access & ACC_CONSTRUCTOR) == 0) { + frame[frameIndex++] = Frame.OBJECT | cw.addType(cw.thisName); + } else { + frame[frameIndex++] = 6; // Opcodes.UNINITIALIZED_THIS; + } + } + int i = 1; + loop: while (true) { + int j = i; + switch (descriptor.charAt(i++)) { + case 'Z': + case 'C': + case 'B': + case 'S': + case 'I': + frame[frameIndex++] = 1; // Opcodes.INTEGER; + break; + case 'F': + frame[frameIndex++] = 2; // Opcodes.FLOAT; + break; + case 'J': + frame[frameIndex++] = 4; // Opcodes.LONG; + break; + case 'D': + frame[frameIndex++] = 3; // Opcodes.DOUBLE; + break; + case '[': + while (descriptor.charAt(i) == '[') { + ++i; + } + if (descriptor.charAt(i) == 'L') { + ++i; + while (descriptor.charAt(i) != ';') { + ++i; + } + } + frame[frameIndex++] = Frame.OBJECT + | cw.addType(descriptor.substring(j, ++i)); + break; + case 'L': + while (descriptor.charAt(i) != ';') { + ++i; + } + frame[frameIndex++] = Frame.OBJECT + | cw.addType(descriptor.substring(j + 1, i++)); + break; + default: + break loop; + } + } + frame[1] = frameIndex - 3; + endFrame(); + } + /** * Starts the visit of a stack map frame. * @@ -1783,8 +1841,9 @@ class MethodWriter extends MethodVisitor { * the number of local variables in the frame. * @param nStack * the number of stack elements in the frame. + * @return the index of the next element to be written in this frame. */ - private void startFrame(final int offset, final int nLocal, final int nStack) { + private int startFrame(final int offset, final int nLocal, final int nStack) { int n = 3 + nLocal + nStack; if (frame == null || frame.length < n) { frame = new int[n]; @@ -1792,7 +1851,7 @@ class MethodWriter extends MethodVisitor { frame[0] = offset; frame[1] = nLocal; frame[2] = nStack; - frameIndex = 3; + return 3; } /** @@ -2110,7 +2169,8 @@ class MethodWriter extends MethodVisitor { */ final void put(final ByteVector out) { final int FACTOR = ClassWriter.TO_ACC_SYNTHETIC; - int mask = Opcodes.ACC_DEPRECATED | ClassWriter.ACC_SYNTHETIC_ATTRIBUTE + int mask = ACC_CONSTRUCTOR | Opcodes.ACC_DEPRECATED + | ClassWriter.ACC_SYNTHETIC_ATTRIBUTE | ((access & ClassWriter.ACC_SYNTHETIC_ATTRIBUTE) / FACTOR); out.putShort(access & ~mask).putShort(name).putShort(desc); if (classReaderOffset != 0) { diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/AdviceAdapter.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/AdviceAdapter.java index c7d51d45b91..c07917784df 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/AdviceAdapter.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/AdviceAdapter.java @@ -442,10 +442,31 @@ public abstract class AdviceAdapter extends GeneratorAdapter implements Opcodes } } + @Deprecated @Override public void visitMethodInsn(final int opcode, final String owner, final String name, final String desc) { - mv.visitMethodInsn(opcode, owner, name, desc); + if (api >= Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, + opcode == Opcodes.INVOKEINTERFACE); + } + + @Override + public void visitMethodInsn(final int opcode, final String owner, + final String name, final String desc, final boolean itf) { + if (api < Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc, itf); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, itf); + } + + private void doVisitMethodInsn(int opcode, final String owner, + final String name, final String desc, final boolean itf) { + mv.visitMethodInsn(opcode, owner, name, desc, itf); if (constructor) { Type[] types = Type.getArgumentTypes(desc); for (int i = 0; i < types.length; i++) { diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/AnalyzerAdapter.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/AnalyzerAdapter.java index 1371250da0a..e914d45134e 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/AnalyzerAdapter.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/AnalyzerAdapter.java @@ -165,10 +165,15 @@ public class AnalyzerAdapter extends MethodVisitor { * @param mv * the method visitor to which this adapter delegates calls. May * be null. + * @throws IllegalStateException + * If a subclass calls this constructor. */ public AnalyzerAdapter(final String owner, final int access, final String name, final String desc, final MethodVisitor mv) { this(Opcodes.ASM5, owner, access, name, desc, mv); + if (getClass() != AnalyzerAdapter.class) { + throw new IllegalStateException(); + } } /** @@ -331,11 +336,32 @@ public class AnalyzerAdapter extends MethodVisitor { execute(opcode, 0, desc); } + @Deprecated @Override public void visitMethodInsn(final int opcode, final String owner, final String name, final String desc) { + if (api >= Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, + opcode == Opcodes.INVOKEINTERFACE); + } + + @Override + public void visitMethodInsn(final int opcode, final String owner, + final String name, final String desc, final boolean itf) { + if (api < Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc, itf); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, itf); + } + + private void doVisitMethodInsn(int opcode, final String owner, + final String name, final String desc, final boolean itf) { if (mv != null) { - mv.visitMethodInsn(opcode, owner, name, desc); + mv.visitMethodInsn(opcode, owner, name, desc, itf); } if (this.locals == null) { labels = null; diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/CodeSizeEvaluator.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/CodeSizeEvaluator.java index a04a643d18b..0a41b2b8af6 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/CodeSizeEvaluator.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/CodeSizeEvaluator.java @@ -149,9 +149,30 @@ public class CodeSizeEvaluator extends MethodVisitor implements Opcodes { } } + @Deprecated @Override public void visitMethodInsn(final int opcode, final String owner, final String name, final String desc) { + if (api >= Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, + opcode == Opcodes.INVOKEINTERFACE); + } + + @Override + public void visitMethodInsn(final int opcode, final String owner, + final String name, final String desc, final boolean itf) { + if (api < Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc, itf); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, itf); + } + + private void doVisitMethodInsn(int opcode, final String owner, + final String name, final String desc, final boolean itf) { if (opcode == INVOKEINTERFACE) { minSize += 5; maxSize += 5; @@ -160,7 +181,7 @@ public class CodeSizeEvaluator extends MethodVisitor implements Opcodes { maxSize += 3; } if (mv != null) { - mv.visitMethodInsn(opcode, owner, name, desc); + mv.visitMethodInsn(opcode, owner, name, desc, itf); } } diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/GeneratorAdapter.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/GeneratorAdapter.java index 7e30acbbe72..786a5b5365a 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/GeneratorAdapter.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/GeneratorAdapter.java @@ -284,10 +284,15 @@ public class GeneratorAdapter extends LocalVariablesSorter { * the method's name. * @param desc * the method's descriptor (see {@link Type Type}). + * @throws IllegalStateException + * If a subclass calls this constructor. */ public GeneratorAdapter(final MethodVisitor mv, final int access, final String name, final String desc) { this(Opcodes.ASM5, mv, access, name, desc); + if (getClass() != GeneratorAdapter.class) { + throw new IllegalStateException(); + } } /** @@ -1400,11 +1405,11 @@ public class GeneratorAdapter extends LocalVariablesSorter { * the method to be invoked. */ private void invokeInsn(final int opcode, final Type type, - final Method method) { + final Method method, final boolean itf) { String owner = type.getSort() == Type.ARRAY ? type.getDescriptor() : type.getInternalName(); mv.visitMethodInsn(opcode, owner, method.getName(), - method.getDescriptor()); + method.getDescriptor(), itf); } /** @@ -1416,7 +1421,7 @@ public class GeneratorAdapter extends LocalVariablesSorter { * the method to be invoked. */ public void invokeVirtual(final Type owner, final Method method) { - invokeInsn(Opcodes.INVOKEVIRTUAL, owner, method); + invokeInsn(Opcodes.INVOKEVIRTUAL, owner, method, false); } /** @@ -1428,7 +1433,7 @@ public class GeneratorAdapter extends LocalVariablesSorter { * the constructor to be invoked. */ public void invokeConstructor(final Type type, final Method method) { - invokeInsn(Opcodes.INVOKESPECIAL, type, method); + invokeInsn(Opcodes.INVOKESPECIAL, type, method, false); } /** @@ -1440,7 +1445,7 @@ public class GeneratorAdapter extends LocalVariablesSorter { * the method to be invoked. */ public void invokeStatic(final Type owner, final Method method) { - invokeInsn(Opcodes.INVOKESTATIC, owner, method); + invokeInsn(Opcodes.INVOKESTATIC, owner, method, false); } /** @@ -1452,7 +1457,7 @@ public class GeneratorAdapter extends LocalVariablesSorter { * the method to be invoked. */ public void invokeInterface(final Type owner, final Method method) { - invokeInsn(Opcodes.INVOKEINTERFACE, owner, method); + invokeInsn(Opcodes.INVOKEINTERFACE, owner, method, true); } /** diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/InstructionAdapter.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/InstructionAdapter.java index 912b622db13..4ece2dba90d 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/InstructionAdapter.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/InstructionAdapter.java @@ -82,9 +82,14 @@ public class InstructionAdapter extends MethodVisitor { * * @param mv * the method visitor to which this adapter delegates calls. + * @throws IllegalStateException + * If a subclass calls this constructor. */ public InstructionAdapter(final MethodVisitor mv) { this(Opcodes.ASM5, mv); + if (getClass() != InstructionAdapter.class) { + throw new IllegalStateException(); + } } /** @@ -536,18 +541,39 @@ public class InstructionAdapter extends MethodVisitor { } } + @Deprecated @Override public void visitMethodInsn(final int opcode, final String owner, final String name, final String desc) { + if (api >= Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, + opcode == Opcodes.INVOKEINTERFACE); + } + + @Override + public void visitMethodInsn(final int opcode, final String owner, + final String name, final String desc, final boolean itf) { + if (api < Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc, itf); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, itf); + } + + private void doVisitMethodInsn(int opcode, final String owner, + final String name, final String desc, final boolean itf) { switch (opcode) { case Opcodes.INVOKESPECIAL: - invokespecial(owner, name, desc); + invokespecial(owner, name, desc, itf); break; case Opcodes.INVOKEVIRTUAL: - invokevirtual(owner, name, desc); + invokevirtual(owner, name, desc, itf); break; case Opcodes.INVOKESTATIC: - invokestatic(owner, name, desc); + invokestatic(owner, name, desc, itf); break; case Opcodes.INVOKEINTERFACE: invokeinterface(owner, name, desc); @@ -1014,24 +1040,78 @@ public class InstructionAdapter extends MethodVisitor { mv.visitFieldInsn(Opcodes.PUTFIELD, owner, name, desc); } + @Deprecated public void invokevirtual(final String owner, final String name, final String desc) { + if (api >= Opcodes.ASM5) { + invokevirtual(owner, name, desc, false); + return; + } mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, owner, name, desc); } + public void invokevirtual(final String owner, final String name, + final String desc, final boolean itf) { + if (api < Opcodes.ASM5) { + if (itf) { + throw new IllegalArgumentException( + "INVOKEVIRTUAL on interfaces require ASM 5"); + } + invokevirtual(owner, name, desc); + return; + } + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, owner, name, desc, itf); + } + + @Deprecated public void invokespecial(final String owner, final String name, final String desc) { - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, owner, name, desc); + if (api >= Opcodes.ASM5) { + invokespecial(owner, name, desc, false); + return; + } + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, owner, name, desc, false); + } + + public void invokespecial(final String owner, final String name, + final String desc, final boolean itf) { + if (api < Opcodes.ASM5) { + if (itf) { + throw new IllegalArgumentException( + "INVOKESPECIAL on interfaces require ASM 5"); + } + invokespecial(owner, name, desc); + return; + } + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, owner, name, desc, itf); + } + + @Deprecated + public void invokestatic(final String owner, final String name, + final String desc) { + if (api < Opcodes.ASM5) { + invokestatic(owner, name, desc, false); + return; + } + mv.visitMethodInsn(Opcodes.INVOKESTATIC, owner, name, desc, false); } public void invokestatic(final String owner, final String name, - final String desc) { - mv.visitMethodInsn(Opcodes.INVOKESTATIC, owner, name, desc); + final String desc, final boolean itf) { + if (api < Opcodes.ASM5) { + if (itf) { + throw new IllegalArgumentException( + "INVOKESTATIC on interfaces require ASM 5"); + } + invokestatic(owner, name, desc); + return; + } + mv.visitMethodInsn(Opcodes.INVOKESTATIC, owner, name, desc, itf); } public void invokeinterface(final String owner, final String name, final String desc) { - mv.visitMethodInsn(Opcodes.INVOKEINTERFACE, owner, name, desc); + mv.visitMethodInsn(Opcodes.INVOKEINTERFACE, owner, name, desc, true); } public void invokedynamic(String name, String desc, Handle bsm, diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/JSRInlinerAdapter.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/JSRInlinerAdapter.java index 1a255b7096f..e0514114e51 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/JSRInlinerAdapter.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/JSRInlinerAdapter.java @@ -136,11 +136,16 @@ public class JSRInlinerAdapter extends MethodNode implements Opcodes { * the internal names of the method's exception classes (see * {@link Type#getInternalName() getInternalName}). May be * null. + * @throws IllegalStateException + * If a subclass calls this constructor. */ public JSRInlinerAdapter(final MethodVisitor mv, final int access, final String name, final String desc, final String signature, final String[] exceptions) { this(Opcodes.ASM5, mv, access, name, desc, signature, exceptions); + if (getClass() != JSRInlinerAdapter.class) { + throw new IllegalStateException(); + } } /** @@ -381,6 +386,17 @@ public class JSRInlinerAdapter extends MethodNode implements Opcodes { // Use tail recursion here in the form of an outer while loop to // avoid our stack growing needlessly: index++; + + // We implicitly assumed above that execution can always fall + // through to the next instruction after a JSR. But a subroutine may + // never return, in which case the code after the JSR is unreachable + // and can be anything. In particular, it can seem to fall off the + // end of the method, so we must handle this case here (we could + // instead detect whether execution can return or not from a JSR, + // but this is more complicated). + if (index >= instructions.size()) { + return; + } } } diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/LocalVariablesSorter.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/LocalVariablesSorter.java index 0353c499382..5d02c53768d 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/LocalVariablesSorter.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/LocalVariablesSorter.java @@ -120,10 +120,15 @@ public class LocalVariablesSorter extends MethodVisitor { * the method's descriptor (see {@link Type Type}). * @param mv * the method visitor to which this adapter delegates calls. + * @throws IllegalStateException + * If a subclass calls this constructor. */ public LocalVariablesSorter(final int access, final String desc, final MethodVisitor mv) { this(Opcodes.ASM5, access, desc, mv); + if (getClass() != LocalVariablesSorter.class) { + throw new IllegalStateException(); + } } /** @@ -323,6 +328,7 @@ public class LocalVariablesSorter extends MethodVisitor { int local = newLocalMapping(type); setLocalType(local, type); setFrameLocal(local, t); + changed = true; return local; } diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/RemappingMethodAdapter.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/RemappingMethodAdapter.java index 319d9dedc7e..d5493a1b1b5 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/RemappingMethodAdapter.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/RemappingMethodAdapter.java @@ -148,12 +148,41 @@ public class RemappingMethodAdapter extends LocalVariablesSorter { remapper.mapDesc(desc)); } + @Deprecated @Override - public void visitMethodInsn(int opcode, String owner, String name, - String desc) { - super.visitMethodInsn(opcode, remapper.mapType(owner), - remapper.mapMethodName(owner, name, desc), - remapper.mapMethodDesc(desc)); + public void visitMethodInsn(final int opcode, final String owner, + final String name, final String desc) { + if (api >= Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, + opcode == Opcodes.INVOKEINTERFACE); + } + + @Override + public void visitMethodInsn(final int opcode, final String owner, + final String name, final String desc, final boolean itf) { + if (api < Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc, itf); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, itf); + } + + private void doVisitMethodInsn(int opcode, String owner, String name, + String desc, boolean itf) { + // Calling super.visitMethodInsn requires to call the correct version + // depending on this.api (otherwise infinite loops can occur). To + // simplify and to make it easier to automatically remove the backward + // compatibility code, we inline the code of the overridden method here. + // IMPORTANT: THIS ASSUMES THAT visitMethodInsn IS NOT OVERRIDDEN IN + // LocalVariableSorter. + if (mv != null) { + mv.visitMethodInsn(opcode, remapper.mapType(owner), + remapper.mapMethodName(owner, name, desc), + remapper.mapMethodDesc(desc), itf); + } } @Override diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/RemappingSignatureAdapter.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/RemappingSignatureAdapter.java index 458ee69b1ff..3b8ab02a3f1 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/RemappingSignatureAdapter.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/RemappingSignatureAdapter.java @@ -95,10 +95,12 @@ public class RemappingSignatureAdapter extends SignatureVisitor { @Override public void visitInnerClassType(String name) { + String remappedOuter = remapper.mapType(className) + '$'; className = className + '$' + name; String remappedName = remapper.mapType(className); - v.visitInnerClassType(remappedName.substring(remappedName - .lastIndexOf('$') + 1)); + int index = remappedName.startsWith(remappedOuter) ? remappedOuter + .length() : remappedName.lastIndexOf('$') + 1; + v.visitInnerClassType(remappedName.substring(index)); } @Override diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/SerialVersionUIDAdder.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/SerialVersionUIDAdder.java index 4050d0ce402..de8915125ff 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/SerialVersionUIDAdder.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/SerialVersionUIDAdder.java @@ -195,9 +195,14 @@ public class SerialVersionUIDAdder extends ClassVisitor { * @param cv * a {@link ClassVisitor} to which this visitor will delegate * calls. + * @throws IllegalStateException + * If a subclass calls this constructor. */ public SerialVersionUIDAdder(final ClassVisitor cv) { this(Opcodes.ASM5, cv); + if (getClass() != SerialVersionUIDAdder.class) { + throw new IllegalStateException(); + } } /** @@ -218,7 +223,7 @@ public class SerialVersionUIDAdder extends ClassVisitor { } // ------------------------------------------------------------------------ - // Overriden methods + // Overridden methods // ------------------------------------------------------------------------ /* @@ -234,7 +239,7 @@ public class SerialVersionUIDAdder extends ClassVisitor { if (computeSVUID) { this.name = name; this.access = access; - this.interfaces = interfaces; + this.interfaces = Arrays.copyOf(interfaces, interfaces.length); } super.visit(version, access, name, signature, superName, interfaces); diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/StaticInitMerger.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/StaticInitMerger.java index 3514d090787..2f2f3b6ddcb 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/StaticInitMerger.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/StaticInitMerger.java @@ -107,7 +107,8 @@ public class StaticInitMerger extends ClassVisitor { if (clinit == null) { clinit = cv.visitMethod(a, name, desc, null, null); } - clinit.visitMethodInsn(Opcodes.INVOKESTATIC, this.name, n, desc); + clinit.visitMethodInsn(Opcodes.INVOKESTATIC, this.name, n, desc, + false); } else { mv = cv.visitMethod(access, name, desc, signature, exceptions); } diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/TryCatchBlockSorter.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/TryCatchBlockSorter.java index 0b2be355877..39c2bf37904 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/TryCatchBlockSorter.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/commons/TryCatchBlockSorter.java @@ -66,7 +66,6 @@ import jdk.internal.org.objectweb.asm.MethodVisitor; import jdk.internal.org.objectweb.asm.Opcodes; import jdk.internal.org.objectweb.asm.tree.MethodNode; import jdk.internal.org.objectweb.asm.tree.TryCatchBlockNode; -import jdk.internal.org.objectweb.asm.tree.TypeAnnotationNode; /** * A {@link MethodVisitor} adapter to sort the exception handlers. The handlers diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/AnnotationNode.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/AnnotationNode.java index 57b88f1b11f..b67ea38591a 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/AnnotationNode.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/AnnotationNode.java @@ -96,9 +96,14 @@ public class AnnotationNode extends AnnotationVisitor { * * @param desc * the class descriptor of the annotation class. + * @throws IllegalStateException + * If a subclass calls this constructor. */ public AnnotationNode(final String desc) { this(Opcodes.ASM5, desc); + if (getClass() != AnnotationNode.class) { + throw new IllegalStateException(); + } } /** diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/ClassNode.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/ClassNode.java index cb70518aa93..39334641754 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/ClassNode.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/ClassNode.java @@ -216,9 +216,15 @@ public class ClassNode extends ClassVisitor { * Constructs a new {@link ClassNode}. Subclasses must not use this * constructor. Instead, they must use the {@link #ClassNode(int)} * version. + * + * @throws IllegalStateException + * If a subclass calls this constructor. */ public ClassNode() { this(Opcodes.ASM5); + if (getClass() != ClassNode.class) { + throw new IllegalStateException(); + } } /** diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/FieldNode.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/FieldNode.java index a155d2c1b80..cc79a5815cb 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/FieldNode.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/FieldNode.java @@ -168,16 +168,20 @@ public class FieldNode extends FieldVisitor { * null if the field does not have an initial value, * must be an {@link Integer}, a {@link Float}, a {@link Long}, a * {@link Double} or a {@link String}. + * @throws IllegalStateException + * If a subclass calls this constructor. */ public FieldNode(final int access, final String name, final String desc, final String signature, final Object value) { this(Opcodes.ASM5, access, name, desc, signature, value); + if (getClass() != FieldNode.class) { + throw new IllegalStateException(); + } } /** * Constructs a new {@link FieldNode}. Subclasses must not use this - * constructor. Instead, they must use the - * {@link #FieldNode(int, int, String, String, String, Object)} version. + * constructor. * * @param api * the ASM API version implemented by this visitor. Must be one diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/MethodInsnNode.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/MethodInsnNode.java index 6f6d5dc4453..2f61df3b517 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/MethodInsnNode.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/MethodInsnNode.java @@ -61,6 +61,7 @@ package jdk.internal.org.objectweb.asm.tree; import java.util.Map; import jdk.internal.org.objectweb.asm.MethodVisitor; +import jdk.internal.org.objectweb.asm.Opcodes; /** * A node that represents a method instruction. A method instruction is an @@ -86,6 +87,11 @@ public class MethodInsnNode extends AbstractInsnNode { */ public String desc; + /** + * If the method's owner class if an interface. + */ + public boolean itf; + /** * Constructs a new {@link MethodInsnNode}. * @@ -102,12 +108,37 @@ public class MethodInsnNode extends AbstractInsnNode { * @param desc * the method's descriptor (see {@link jdk.internal.org.objectweb.asm.Type}). */ + @Deprecated public MethodInsnNode(final int opcode, final String owner, final String name, final String desc) { + this(opcode, owner, name, desc, opcode == Opcodes.INVOKEINTERFACE); + } + + /** + * Constructs a new {@link MethodInsnNode}. + * + * @param opcode + * the opcode of the type instruction to be constructed. This + * opcode must be INVOKEVIRTUAL, INVOKESPECIAL, INVOKESTATIC or + * INVOKEINTERFACE. + * @param owner + * the internal name of the method's owner class (see + * {@link jdk.internal.org.objectweb.asm.Type#getInternalName() + * getInternalName}). + * @param name + * the method's name. + * @param desc + * the method's descriptor (see {@link jdk.internal.org.objectweb.asm.Type}). + * @param itf + * if the method's owner class is an interface. + */ + public MethodInsnNode(final int opcode, final String owner, + final String name, final String desc, final boolean itf) { super(opcode); this.owner = owner; this.name = name; this.desc = desc; + this.itf = itf; } /** @@ -128,11 +159,11 @@ public class MethodInsnNode extends AbstractInsnNode { @Override public void accept(final MethodVisitor mv) { - mv.visitMethodInsn(opcode, owner, name, desc); + mv.visitMethodInsn(opcode, owner, name, desc, itf); } @Override public AbstractInsnNode clone(final Map labels) { - return new MethodInsnNode(opcode, owner, name, desc); + return new MethodInsnNode(opcode, owner, name, desc, itf); } } diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/MethodNode.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/MethodNode.java index 072d549265c..dfd58a0fe1f 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/MethodNode.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/MethodNode.java @@ -71,7 +71,6 @@ import jdk.internal.org.objectweb.asm.MethodVisitor; import jdk.internal.org.objectweb.asm.Opcodes; import jdk.internal.org.objectweb.asm.Type; import jdk.internal.org.objectweb.asm.TypePath; -import jdk.internal.org.objectweb.asm.TypeReference; /** * A node that represents a method. @@ -245,9 +244,15 @@ public class MethodNode extends MethodVisitor { * Constructs an uninitialized {@link MethodNode}. Subclasses must not * use this constructor. Instead, they must use the * {@link #MethodNode(int)} version. + * + * @throws IllegalStateException + * If a subclass calls this constructor. */ public MethodNode() { this(Opcodes.ASM5); + if (getClass() != MethodNode.class) { + throw new IllegalStateException(); + } } /** @@ -281,10 +286,15 @@ public class MethodNode extends MethodVisitor { * the internal names of the method's exception classes (see * {@link Type#getInternalName() getInternalName}). May be * null. + * @throws IllegalStateException + * If a subclass calls this constructor. */ public MethodNode(final int access, final String name, final String desc, final String signature, final String[] exceptions) { this(Opcodes.ASM5, access, name, desc, signature, exceptions); + if (getClass() != MethodNode.class) { + throw new IllegalStateException(); + } } /** @@ -461,12 +471,27 @@ public class MethodNode extends MethodVisitor { instructions.add(new FieldInsnNode(opcode, owner, name, desc)); } + @Deprecated @Override - public void visitMethodInsn(final int opcode, final String owner, - final String name, final String desc) { + public void visitMethodInsn(int opcode, String owner, String name, + String desc) { + if (api >= Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc); + return; + } instructions.add(new MethodInsnNode(opcode, owner, name, desc)); } + @Override + public void visitMethodInsn(int opcode, String owner, String name, + String desc, boolean itf) { + if (api < Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc, itf); + return; + } + instructions.add(new MethodInsnNode(opcode, owner, name, desc, itf)); + } + @Override public void visitInvokeDynamicInsn(String name, String desc, Handle bsm, Object... bsmArgs) { @@ -696,6 +721,12 @@ public class MethodNode extends MethodVisitor { && insn.invisibleTypeAnnotations.size() > 0) { throw new RuntimeException(); } + if (insn instanceof MethodInsnNode) { + boolean itf = ((MethodInsnNode) insn).itf; + if (itf != (insn.opcode == Opcodes.INVOKEINTERFACE)) { + throw new RuntimeException(); + } + } } if (visibleLocalVariableAnnotations != null && visibleLocalVariableAnnotations.size() > 0) { @@ -705,7 +736,6 @@ public class MethodNode extends MethodVisitor { && invisibleLocalVariableAnnotations.size() > 0) { throw new RuntimeException(); } - } } diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/TypeAnnotationNode.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/TypeAnnotationNode.java index c9e21d8c5be..641dca1c17d 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/TypeAnnotationNode.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/TypeAnnotationNode.java @@ -94,10 +94,15 @@ public class TypeAnnotationNode extends AnnotationNode { * null if the annotation targets 'typeRef' as a whole. * @param desc * the class descriptor of the annotation class. + * @throws IllegalStateException + * If a subclass calls this constructor. */ public TypeAnnotationNode(final int typeRef, final TypePath typePath, final String desc) { this(Opcodes.ASM5, typeRef, typePath, desc); + if (getClass() != TypeAnnotationNode.class) { + throw new IllegalStateException(); + } } /** diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/analysis/Frame.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/analysis/Frame.java index 2d9434fc22e..f6b8db3ddfb 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/analysis/Frame.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/tree/analysis/Frame.java @@ -162,6 +162,15 @@ public class Frame { return locals; } + /** + * Returns the maximum stack size of this frame. + * + * @return the maximum stack size of this frame. + */ + public int getMaxStackSize() { + return values.length - locals; + } + /** * Returns the value of the given local variable. * diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/util/ASMifier.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/util/ASMifier.java index 6b6bd4dc6bb..a9487e16f5e 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/util/ASMifier.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/util/ASMifier.java @@ -113,9 +113,15 @@ public class ASMifier extends Printer { * Constructs a new {@link ASMifier}. Subclasses must not use this * constructor. Instead, they must use the * {@link #ASMifier(int, String, int)} version. + * + * @throws IllegalStateException + * If a subclass calls this constructor. */ public ASMifier() { this(Opcodes.ASM5, "cw", 0); + if (getClass() != ASMifier.class) { + throw new IllegalStateException(); + } } /** @@ -483,8 +489,9 @@ public class ASMifier extends Printer { @Override public void visitParameter(String parameterName, int access) { buf.setLength(0); - buf.append(name).append(".visitParameter(").append(parameterName) - .append(", "); + buf.append(name).append(".visitParameter("); + appendString(buf, parameterName); + buf.append(", "); appendAccess(access); text.add(buf.append(");\n").toString()); } @@ -639,9 +646,30 @@ public class ASMifier extends Printer { text.add(buf.toString()); } + @Deprecated @Override public void visitMethodInsn(final int opcode, final String owner, final String name, final String desc) { + if (api >= Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, + opcode == Opcodes.INVOKEINTERFACE); + } + + @Override + public void visitMethodInsn(final int opcode, final String owner, + final String name, final String desc, final boolean itf) { + if (api < Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc, itf); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, itf); + } + + private void doVisitMethodInsn(final int opcode, final String owner, + final String name, final String desc, final boolean itf) { buf.setLength(0); buf.append(this.name).append(".visitMethodInsn(") .append(OPCODES[opcode]).append(", "); @@ -650,6 +678,8 @@ public class ASMifier extends Printer { appendConstant(name); buf.append(", "); appendConstant(desc); + buf.append(", "); + buf.append(itf ? "true" : "false"); buf.append(");\n"); text.add(buf.toString()); } @@ -1076,6 +1106,13 @@ public class ASMifier extends Printer { buf.append("ACC_DEPRECATED"); first = false; } + if ((access & Opcodes.ACC_MANDATED) != 0) { + if (!first) { + buf.append(" + "); + } + buf.append("ACC_MANDATED"); + first = false; + } if (first) { buf.append('0'); } diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/util/CheckClassAdapter.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/util/CheckClassAdapter.java index ad29ab964a7..5105db7f9c2 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/util/CheckClassAdapter.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/util/CheckClassAdapter.java @@ -246,7 +246,7 @@ public class CheckClassAdapter extends ClassVisitor { List interfaces = new ArrayList(); for (Iterator i = cn.interfaces.iterator(); i.hasNext();) { - interfaces.add(Type.getObjectType(i.next().toString())); + interfaces.add(Type.getObjectType(i.next())); } for (int i = 0; i < methods.size(); ++i) { @@ -359,9 +359,14 @@ public class CheckClassAdapter extends ClassVisitor { * false to not perform any data flow check (see * {@link CheckMethodAdapter}). This option requires valid * maxLocals and maxStack values. + * @throws IllegalStateException + * If a subclass calls this constructor. */ public CheckClassAdapter(final ClassVisitor cv, final boolean checkDataFlow) { this(Opcodes.ASM5, cv, checkDataFlow); + if (getClass() != CheckClassAdapter.class) { + throw new IllegalStateException(); + } } /** @@ -471,7 +476,15 @@ public class CheckClassAdapter extends ClassVisitor { CheckMethodAdapter.checkInternalName(outerName, "outer class name"); } if (innerName != null) { - CheckMethodAdapter.checkIdentifier(innerName, "inner class name"); + int start = 0; + while (start < innerName.length() + && Character.isDigit(innerName.charAt(start))) { + start++; + } + if (start == 0 || start < innerName.length()) { + CheckMethodAdapter.checkIdentifier(innerName, start, -1, + "inner class name"); + } } checkAccess(access, Opcodes.ACC_PUBLIC + Opcodes.ACC_PRIVATE + Opcodes.ACC_PROTECTED + Opcodes.ACC_STATIC diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/util/CheckFieldAdapter.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/util/CheckFieldAdapter.java index b09559c0d8a..e0857bf06b3 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/util/CheckFieldAdapter.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/util/CheckFieldAdapter.java @@ -79,9 +79,14 @@ public class CheckFieldAdapter extends FieldVisitor { * * @param fv * the field visitor to which this adapter must delegate calls. + * @throws IllegalStateException + * If a subclass calls this constructor. */ public CheckFieldAdapter(final FieldVisitor fv) { this(Opcodes.ASM5, fv); + if (getClass() != CheckFieldAdapter.class) { + throw new IllegalStateException(); + } } /** diff --git a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/util/CheckMethodAdapter.java b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/util/CheckMethodAdapter.java index b59709890f4..0716debae62 100644 --- a/jdk/src/share/classes/jdk/internal/org/objectweb/asm/util/CheckMethodAdapter.java +++ b/jdk/src/share/classes/jdk/internal/org/objectweb/asm/util/CheckMethodAdapter.java @@ -142,11 +142,6 @@ public class CheckMethodAdapter extends MethodVisitor { */ private Set