diff --git a/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp b/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp index 0d7e202779fd2..f036caa0675d2 100644 --- a/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp +++ b/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp @@ -2651,7 +2651,19 @@ void MacroAssembler::compiler_fast_lock_object(ConditionRegister flag, Register // flag == NE indicates failure bind(success); inc_held_monitor_count(temp); +#ifdef ASSERT + // Check that unlocked label is reached with flag == EQ. + Label flag_correct; + beq(flag, flag_correct); + stop("compiler_fast_lock_object: Flag != EQ"); +#endif bind(failure); +#ifdef ASSERT + // Check that slow_path label is reached with flag == NE. + bne(flag, flag_correct); + stop("compiler_fast_lock_object: Flag != NE"); + bind(flag_correct); +#endif } void MacroAssembler::compiler_fast_unlock_object(ConditionRegister flag, Register oop, Register box, @@ -2701,17 +2713,12 @@ void MacroAssembler::compiler_fast_unlock_object(ConditionRegister flag, Registe bind(object_has_monitor); STATIC_ASSERT(markWord::monitor_value <= INT_MAX); addi(current_header, current_header, -(int)markWord::monitor_value); // monitor - ld(temp, in_bytes(ObjectMonitor::owner_offset()), current_header); - - // In case of LM_LIGHTWEIGHT, we may reach here with (temp & ObjectMonitor::ANONYMOUS_OWNER) != 0. - // This is handled like owner thread mismatches: We take the slow path. - cmpd(flag, temp, R16_thread); - bne(flag, failure); ld(displaced_header, in_bytes(ObjectMonitor::recursions_offset()), current_header); - addic_(displaced_header, displaced_header, -1); blt(CCR0, notRecursive); // Not recursive if negative after decrement. + + // Recursive unlock std(displaced_header, in_bytes(ObjectMonitor::recursions_offset()), current_header); if (flag == CCR0) { // Otherwise, flag is already EQ, here. crorc(CCR0, Assembler::equal, CCR0, Assembler::equal); // Set CCR0 EQ @@ -2752,7 +2759,19 @@ void MacroAssembler::compiler_fast_unlock_object(ConditionRegister flag, Registe // flag == NE indicates failure bind(success); dec_held_monitor_count(temp); +#ifdef ASSERT + // Check that unlocked label is reached with flag == EQ. + Label flag_correct; + beq(flag, flag_correct); + stop("compiler_fast_unlock_object: Flag != EQ"); +#endif bind(failure); +#ifdef ASSERT + // Check that slow_path label is reached with flag == NE. + bne(flag, flag_correct); + stop("compiler_fast_unlock_object: Flag != NE"); + bind(flag_correct); +#endif } void MacroAssembler::compiler_fast_lock_lightweight_object(ConditionRegister flag, Register obj, Register box, diff --git a/src/hotspot/os/aix/os_aix.cpp b/src/hotspot/os/aix/os_aix.cpp index 63aa53f0a2350..5022272d1b431 100644 --- a/src/hotspot/os/aix/os_aix.cpp +++ b/src/hotspot/os/aix/os_aix.cpp @@ -1293,7 +1293,7 @@ void os::jvm_path(char *buf, jint buflen) { Dl_info dlinfo; int ret = dladdr(CAST_FROM_FN_PTR(void *, os::jvm_path), &dlinfo); assert(ret != 0, "cannot locate libjvm"); - char* rp = os::Posix::realpath((char *)dlinfo.dli_fname, buf, buflen); + char* rp = os::realpath((char *)dlinfo.dli_fname, buf, buflen); assert(rp != nullptr, "error in realpath(): maybe the 'path' argument is too long?"); if (Arguments::sun_java_launcher_is_altjvm()) { @@ -1324,7 +1324,7 @@ void os::jvm_path(char *buf, jint buflen) { } assert(strstr(p, "/libjvm") == p, "invalid library name"); - rp = os::Posix::realpath(java_home_var, buf, buflen); + rp = os::realpath(java_home_var, buf, buflen); if (rp == nullptr) { return; } @@ -1345,7 +1345,7 @@ void os::jvm_path(char *buf, jint buflen) { snprintf(buf + len, buflen-len, "/hotspot/libjvm.so"); } else { // Go back to path of .so - rp = os::Posix::realpath((char *)dlinfo.dli_fname, buf, buflen); + rp = os::realpath((char *)dlinfo.dli_fname, buf, buflen); if (rp == nullptr) { return; } diff --git a/src/hotspot/os/bsd/os_bsd.cpp b/src/hotspot/os/bsd/os_bsd.cpp index 18818268c1f9a..6b3bf060d6f27 100644 --- a/src/hotspot/os/bsd/os_bsd.cpp +++ b/src/hotspot/os/bsd/os_bsd.cpp @@ -1509,7 +1509,7 @@ void os::jvm_path(char *buf, jint buflen) { assert(ret, "cannot locate libjvm"); char *rp = nullptr; if (ret && dli_fname[0] != '\0') { - rp = os::Posix::realpath(dli_fname, buf, buflen); + rp = os::realpath(dli_fname, buf, buflen); } if (rp == nullptr) { return; @@ -1541,7 +1541,7 @@ void os::jvm_path(char *buf, jint buflen) { p = strrchr(buf, '/'); assert(strstr(p, "/libjvm") == p, "invalid library name"); - rp = os::Posix::realpath(java_home_var, buf, buflen); + rp = os::realpath(java_home_var, buf, buflen); if (rp == nullptr) { return; } @@ -1575,7 +1575,7 @@ void os::jvm_path(char *buf, jint buflen) { snprintf(buf + len, buflen-len, "/libjvm%s", JNI_LIB_SUFFIX); } else { // Fall back to path of current library - rp = os::Posix::realpath(dli_fname, buf, buflen); + rp = os::realpath(dli_fname, buf, buflen); if (rp == nullptr) { return; } diff --git a/src/hotspot/os/linux/os_linux.cpp b/src/hotspot/os/linux/os_linux.cpp index c80663fec3d3a..514268a7400bc 100644 --- a/src/hotspot/os/linux/os_linux.cpp +++ b/src/hotspot/os/linux/os_linux.cpp @@ -2763,7 +2763,7 @@ void os::jvm_path(char *buf, jint buflen) { assert(ret, "cannot locate libjvm"); char *rp = nullptr; if (ret && dli_fname[0] != '\0') { - rp = os::Posix::realpath(dli_fname, buf, buflen); + rp = os::realpath(dli_fname, buf, buflen); } if (rp == nullptr) { return; @@ -2797,7 +2797,7 @@ void os::jvm_path(char *buf, jint buflen) { } assert(strstr(p, "/libjvm") == p, "invalid library name"); - rp = os::Posix::realpath(java_home_var, buf, buflen); + rp = os::realpath(java_home_var, buf, buflen); if (rp == nullptr) { return; } @@ -2818,7 +2818,7 @@ void os::jvm_path(char *buf, jint buflen) { snprintf(buf + len, buflen-len, "/hotspot/libjvm.so"); } else { // Go back to path of .so - rp = os::Posix::realpath(dli_fname, buf, buflen); + rp = os::realpath(dli_fname, buf, buflen); if (rp == nullptr) { return; } diff --git a/src/hotspot/os/linux/os_perf_linux.cpp b/src/hotspot/os/linux/os_perf_linux.cpp index a31a58e55af93..996f83611b048 100644 --- a/src/hotspot/os/linux/os_perf_linux.cpp +++ b/src/hotspot/os/linux/os_perf_linux.cpp @@ -789,7 +789,7 @@ char* SystemProcessInterface::SystemProcesses::ProcessIterator::get_exe_path() { jio_snprintf(buffer, PATH_MAX, "/proc/%s/exe", _entry->d_name); buffer[PATH_MAX - 1] = '\0'; - return os::Posix::realpath(buffer, _exePath, PATH_MAX); + return os::realpath(buffer, _exePath, PATH_MAX); } char* SystemProcessInterface::SystemProcesses::ProcessIterator::allocate_string(const char* str) const { diff --git a/src/hotspot/os/posix/os_posix.cpp b/src/hotspot/os/posix/os_posix.cpp index 78fd2a678886e..75253843593c6 100644 --- a/src/hotspot/os/posix/os_posix.cpp +++ b/src/hotspot/os/posix/os_posix.cpp @@ -1029,10 +1029,10 @@ char* os::Posix::describe_pthread_attr(char* buf, size_t buflen, const pthread_a return buf; } -char* os::Posix::realpath(const char* filename, char* outbuf, size_t outbuflen) { +char* os::realpath(const char* filename, char* outbuf, size_t outbuflen) { if (filename == nullptr || outbuf == nullptr || outbuflen < 1) { - assert(false, "os::Posix::realpath: invalid arguments."); + assert(false, "os::realpath: invalid arguments."); errno = EINVAL; return nullptr; } @@ -1067,7 +1067,6 @@ char* os::Posix::realpath(const char* filename, char* outbuf, size_t outbuflen) } } return result; - } int os::stat(const char *path, struct stat *sbuf) { diff --git a/src/hotspot/os/posix/os_posix.hpp b/src/hotspot/os/posix/os_posix.hpp index d872a6dae899e..cac5b250cdfa0 100644 --- a/src/hotspot/os/posix/os_posix.hpp +++ b/src/hotspot/os/posix/os_posix.hpp @@ -73,13 +73,6 @@ class os::Posix { // to buf with len buflen; buf is returned. static char* describe_pthread_attr(char* buf, size_t buflen, const pthread_attr_t* attr); - // A safe implementation of realpath which will not cause a buffer overflow if the resolved path - // is longer than PATH_MAX. - // On success, returns 'outbuf', which now contains the path. - // On error, it will return null and set errno. The content of 'outbuf' is undefined. - // On truncation error ('outbuf' too small), it will return null and set errno to ENAMETOOLONG. - static char* realpath(const char* filename, char* outbuf, size_t outbuflen); - // Returns true if given uid is root. static bool is_root(uid_t uid); diff --git a/src/hotspot/os/windows/os_windows.cpp b/src/hotspot/os/windows/os_windows.cpp index fe093aee116b6..66a6a92f5e078 100644 --- a/src/hotspot/os/windows/os_windows.cpp +++ b/src/hotspot/os/windows/os_windows.cpp @@ -5397,6 +5397,28 @@ void os::funlockfile(FILE* fp) { _unlock_file(fp); } +char* os::realpath(const char* filename, char* outbuf, size_t outbuflen) { + + if (filename == nullptr || outbuf == nullptr || outbuflen < 1) { + assert(false, "os::realpath: invalid arguments."); + errno = EINVAL; + return nullptr; + } + + char* result = nullptr; + ALLOW_C_FUNCTION(::_fullpath, char* p = ::_fullpath(nullptr, filename, 0);) + if (p != nullptr) { + if (strlen(p) < outbuflen) { + strcpy(outbuf, p); + result = outbuf; + } else { + errno = ENAMETOOLONG; + } + ALLOW_C_FUNCTION(::free, ::free(p);) // *not* os::free + } + return result; +} + // Map a block of memory. char* os::pd_map_memory(int fd, const char* file_name, size_t file_offset, char *addr, size_t bytes, bool read_only, diff --git a/src/hotspot/share/cds/cdsProtectionDomain.cpp b/src/hotspot/share/cds/cdsProtectionDomain.cpp index a4ffeea26dc4a..2eb47ff2788d9 100644 --- a/src/hotspot/share/cds/cdsProtectionDomain.cpp +++ b/src/hotspot/share/cds/cdsProtectionDomain.cpp @@ -199,17 +199,9 @@ Handle CDSProtectionDomain::get_shared_jar_manifest(int shared_path_index, TRAPS Handle CDSProtectionDomain::get_shared_jar_url(int shared_path_index, TRAPS) { Handle url_h; if (shared_jar_url(shared_path_index) == nullptr) { - JavaValue result(T_OBJECT); const char* path = FileMapInfo::shared_path_name(shared_path_index); - Handle path_string = java_lang_String::create_from_str(path, CHECK_(url_h)); - Klass* classLoaders_klass = - vmClasses::jdk_internal_loader_ClassLoaders_klass(); - JavaCalls::call_static(&result, classLoaders_klass, - vmSymbols::toFileURL_name(), - vmSymbols::toFileURL_signature(), - path_string, CHECK_(url_h)); - - atomic_set_shared_jar_url(shared_path_index, result.get_oop()); + oop result_oop = to_file_URL(path, url_h, CHECK_(url_h)); + atomic_set_shared_jar_url(shared_path_index, result_oop); } url_h = Handle(THREAD, shared_jar_url(shared_path_index)); @@ -217,6 +209,17 @@ Handle CDSProtectionDomain::get_shared_jar_url(int shared_path_index, TRAPS) { return url_h; } +oop CDSProtectionDomain::to_file_URL(const char* path, Handle url_h, TRAPS) { + JavaValue result(T_OBJECT); + Handle path_string = java_lang_String::create_from_str(path, CHECK_NULL); + JavaCalls::call_static(&result, + vmClasses::jdk_internal_loader_ClassLoaders_klass(), + vmSymbols::toFileURL_name(), + vmSymbols::toFileURL_signature(), + path_string, CHECK_NULL); + return result.get_oop(); +} + // Get the ProtectionDomain associated with the CodeSource from the classloader. Handle CDSProtectionDomain::get_protection_domain_from_classloader(Handle class_loader, Handle url, TRAPS) { diff --git a/src/hotspot/share/cds/cdsProtectionDomain.hpp b/src/hotspot/share/cds/cdsProtectionDomain.hpp index 0e688fcfa00e8..baab4ab0e728a 100644 --- a/src/hotspot/share/cds/cdsProtectionDomain.hpp +++ b/src/hotspot/share/cds/cdsProtectionDomain.hpp @@ -80,6 +80,7 @@ class CDSProtectionDomain : AllStatic { static Handle create_jar_manifest(const char* man, size_t size, TRAPS); static Handle get_shared_jar_manifest(int shared_path_index, TRAPS); static Handle get_shared_jar_url(int shared_path_index, TRAPS); + static oop to_file_URL(const char* path, Handle url_h, TRAPS); static Handle get_protection_domain_from_classloader(Handle class_loader, Handle url, TRAPS); static Handle get_shared_protection_domain(Handle class_loader, diff --git a/src/hotspot/share/cds/metaspaceShared.cpp b/src/hotspot/share/cds/metaspaceShared.cpp index 6f646e162ecac..efd7a906a46e9 100644 --- a/src/hotspot/share/cds/metaspaceShared.cpp +++ b/src/hotspot/share/cds/metaspaceShared.cpp @@ -751,12 +751,21 @@ void MetaspaceShared::preload_classes(TRAPS) { } } - // Exercise the manifest processing code to ensure classes used by CDS at runtime - // are always archived + // Some classes are used at CDS runtime but are not loaded, and therefore archived, at + // dumptime. We can perform dummmy calls to these classes at dumptime to ensure they + // are archived. + exercise_runtime_cds_code(CHECK); + + log_info(cds)("Loading classes to share: done."); +} + +void MetaspaceShared::exercise_runtime_cds_code(TRAPS) { + // Exercise the manifest processing code const char* dummy = "Manifest-Version: 1.0\n"; CDSProtectionDomain::create_jar_manifest(dummy, strlen(dummy), CHECK); - log_info(cds)("Loading classes to share: done."); + // Exercise FileSystem and URL code + CDSProtectionDomain::to_file_URL("dummy.jar", Handle(), CHECK); } void MetaspaceShared::preload_and_dump_impl(StaticArchiveBuilder& builder, TRAPS) { @@ -799,16 +808,6 @@ void MetaspaceShared::preload_and_dump_impl(StaticArchiveBuilder& builder, TRAPS } #endif - // Dummy call to load classes used at CDS runtime - JavaValue result(T_OBJECT); - Handle path_string = java_lang_String::create_from_str("dummy.jar", CHECK); - JavaCalls::call_static(&result, - vmClasses::jdk_internal_loader_ClassLoaders_klass(), - vmSymbols::toFileURL_name(), - vmSymbols::toFileURL_signature(), - path_string, - CHECK); - VM_PopulateDumpSharedSpace op(builder); VMThread::execute(&op); diff --git a/src/hotspot/share/cds/metaspaceShared.hpp b/src/hotspot/share/cds/metaspaceShared.hpp index f26af21676a83..ecc158cc3efcf 100644 --- a/src/hotspot/share/cds/metaspaceShared.hpp +++ b/src/hotspot/share/cds/metaspaceShared.hpp @@ -75,6 +75,7 @@ class MetaspaceShared : AllStatic { #endif private: + static void exercise_runtime_cds_code(TRAPS) NOT_CDS_RETURN; static void preload_and_dump_impl(StaticArchiveBuilder& builder, TRAPS) NOT_CDS_RETURN; static void preload_classes(TRAPS) NOT_CDS_RETURN; diff --git a/src/hotspot/share/gc/g1/g1HeapRegionManager.cpp b/src/hotspot/share/gc/g1/g1HeapRegionManager.cpp index 2369a0f7812ea..9fb56f7c58fb2 100644 --- a/src/hotspot/share/gc/g1/g1HeapRegionManager.cpp +++ b/src/hotspot/share/gc/g1/g1HeapRegionManager.cpp @@ -66,7 +66,7 @@ G1HeapRegionManager::G1HeapRegionManager() : _bot_mapper(nullptr), _cardtable_mapper(nullptr), _committed_map(), - _allocated_heapregions_length(0), + _next_highest_used_hrm_index(0), _regions(), _heap_mapper(nullptr), _bitmap_mapper(nullptr), _free_list("Free list", new G1MasterFreeRegionListChecker()) @@ -76,7 +76,7 @@ void G1HeapRegionManager::initialize(G1RegionToSpaceMapper* heap_storage, G1RegionToSpaceMapper* bitmap, G1RegionToSpaceMapper* bot, G1RegionToSpaceMapper* cardtable) { - _allocated_heapregions_length = 0; + _next_highest_used_hrm_index = 0; _heap_mapper = heap_storage; @@ -169,7 +169,7 @@ void G1HeapRegionManager::expand(uint start, uint num_regions, WorkerThreads* pr hr = new_heap_region(i); OrderAccess::storestore(); _regions.set_by_index(i, hr); - _allocated_heapregions_length = MAX2(_allocated_heapregions_length, i + 1); + _next_highest_used_hrm_index = MAX2(_next_highest_used_hrm_index, i + 1); } G1HeapRegionPrinter::commit(hr); } @@ -489,7 +489,7 @@ uint G1HeapRegionManager::find_contiguous_allow_expand(uint num_regions) { G1HeapRegion* G1HeapRegionManager::next_region_in_heap(const G1HeapRegion* r) const { guarantee(r != nullptr, "Start region must be a valid region"); guarantee(is_available(r->hrm_index()), "Trying to iterate starting from region %u which is not in the heap", r->hrm_index()); - for (uint i = r->hrm_index() + 1; i < _allocated_heapregions_length; i++) { + for (uint i = r->hrm_index() + 1; i < _next_highest_used_hrm_index; i++) { G1HeapRegion* hr = _regions.get_by_index(i); if (is_available(i)) { return hr; @@ -583,8 +583,8 @@ void G1HeapRegionManager::par_iterate(G1HeapRegionClosure* blk, G1HeapRegionClai uint G1HeapRegionManager::shrink_by(uint num_regions_to_remove) { assert(length() > 0, "the region sequence should not be empty"); - assert(length() <= _allocated_heapregions_length, "invariant"); - assert(_allocated_heapregions_length > 0, "we should have at least one region committed"); + assert(length() <= _next_highest_used_hrm_index, "invariant"); + assert(_next_highest_used_hrm_index > 0, "we should have at least one region committed"); assert(num_regions_to_remove < length(), "We should never remove all regions"); if (num_regions_to_remove == 0) { @@ -592,7 +592,7 @@ uint G1HeapRegionManager::shrink_by(uint num_regions_to_remove) { } uint removed = 0; - uint cur = _allocated_heapregions_length; + uint cur = _next_highest_used_hrm_index; uint idx_last_found = 0; uint num_last_found = 0; @@ -624,7 +624,7 @@ void G1HeapRegionManager::shrink_at(uint index, size_t num_regions) { } uint G1HeapRegionManager::find_empty_from_idx_reverse(uint start_idx, uint* res_idx) const { - guarantee(start_idx <= _allocated_heapregions_length, "checking"); + guarantee(start_idx <= _next_highest_used_hrm_index, "checking"); guarantee(res_idx != nullptr, "checking"); auto is_available_and_empty = [&] (uint index) { @@ -658,12 +658,12 @@ uint G1HeapRegionManager::find_empty_from_idx_reverse(uint start_idx, uint* res_ } void G1HeapRegionManager::verify() { - guarantee(length() <= _allocated_heapregions_length, - "invariant: _length: %u _allocated_length: %u", - length(), _allocated_heapregions_length); - guarantee(_allocated_heapregions_length <= reserved_length(), - "invariant: _allocated_length: %u _max_length: %u", - _allocated_heapregions_length, reserved_length()); + guarantee(length() <= _next_highest_used_hrm_index, + "invariant: _length: %u _next_highest_used_hrm_index: %u", + length(), _next_highest_used_hrm_index); + guarantee(_next_highest_used_hrm_index <= reserved_length(), + "invariant: _next_highest_used_hrm_index: %u _max_length: %u", + _next_highest_used_hrm_index, reserved_length()); guarantee(length() <= max_length(), "invariant: committed regions: %u max_regions: %u", length(), max_length()); @@ -671,7 +671,7 @@ void G1HeapRegionManager::verify() { bool prev_committed = true; uint num_committed = 0; HeapWord* prev_end = heap_bottom(); - for (uint i = 0; i < _allocated_heapregions_length; i++) { + for (uint i = 0; i < _next_highest_used_hrm_index; i++) { if (!is_available(i)) { prev_committed = false; continue; @@ -693,7 +693,7 @@ void G1HeapRegionManager::verify() { prev_committed = true; prev_end = hr->end(); } - for (uint i = _allocated_heapregions_length; i < reserved_length(); i++) { + for (uint i = _next_highest_used_hrm_index; i < reserved_length(); i++) { guarantee(_regions.get_by_index(i) == nullptr, "invariant i: %u", i); } @@ -708,7 +708,7 @@ void G1HeapRegionManager::verify_optional() { #endif // PRODUCT G1HeapRegionClaimer::G1HeapRegionClaimer(uint n_workers) : - _n_workers(n_workers), _n_regions(G1CollectedHeap::heap()->_hrm._allocated_heapregions_length), _claims(nullptr) { + _n_workers(n_workers), _n_regions(G1CollectedHeap::heap()->_hrm._next_highest_used_hrm_index), _claims(nullptr) { uint* new_claims = NEW_C_HEAP_ARRAY(uint, _n_regions, mtGC); memset(new_claims, Unclaimed, sizeof(*_claims) * _n_regions); _claims = new_claims; diff --git a/src/hotspot/share/gc/g1/g1HeapRegionManager.hpp b/src/hotspot/share/gc/g1/g1HeapRegionManager.hpp index 81bca4ce6381c..563140acf5b8f 100644 --- a/src/hotspot/share/gc/g1/g1HeapRegionManager.hpp +++ b/src/hotspot/share/gc/g1/g1HeapRegionManager.hpp @@ -64,8 +64,8 @@ class G1HeapRegionTable : public G1BiasedMappedArray { // // * _num_committed (returned by length()) is the number of currently // committed regions. These may not be contiguous. -// * _allocated_heapregions_length (not exposed outside this class) is the -// number of regions+1 for which we have G1HeapRegions. +// * _next_highest_used_hrm_index (not exposed outside this class) is the +// highest heap region index +1 for which we have G1HeapRegions. // * max_length() returns the maximum number of regions the heap may commit. // * reserved_length() returns the maximum number of regions the heap has reserved. // @@ -81,8 +81,8 @@ class G1HeapRegionManager: public CHeapObj { // can either be active (ready for use) or inactive (ready for uncommit). G1CommittedRegionMap _committed_map; - // Internal only. The highest heap region +1 we allocated a G1HeapRegion instance for. - uint _allocated_heapregions_length; + // Internal only. The highest heap region index +1 we allocated a G1HeapRegion instance for. + uint _next_highest_used_hrm_index; HeapWord* heap_bottom() const { return _regions.bottom_address_mapped(); } HeapWord* heap_end() const {return _regions.end_address_mapped(); } diff --git a/src/hotspot/share/logging/logConfiguration.cpp b/src/hotspot/share/logging/logConfiguration.cpp index 87b195f4fbfdd..dfddfff2f05c0 100644 --- a/src/hotspot/share/logging/logConfiguration.cpp +++ b/src/hotspot/share/logging/logConfiguration.cpp @@ -491,7 +491,7 @@ bool LogConfiguration::parse_log_arguments(const char* outputstr, return false; } - LogDecorators decorators; + LogDecorators decorators = selections.get_default_decorators(); if (!decorators.parse(decoratorstr, errstream)) { return false; } diff --git a/src/hotspot/share/logging/logDecorators.cpp b/src/hotspot/share/logging/logDecorators.cpp index 91677b35d9f95..6c06bd4571627 100644 --- a/src/hotspot/share/logging/logDecorators.cpp +++ b/src/hotspot/share/logging/logDecorators.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, 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 @@ -25,6 +25,8 @@ #include "logging/logDecorators.hpp" #include "runtime/os.hpp" +const LogLevelType AnyLevel = LogLevelType::NotMentioned; + template struct AllBitmask { // Use recursive template deduction to calculate the bitmask of all decorations. @@ -45,6 +47,19 @@ const char* LogDecorators::_name[][2] = { #undef DECORATOR }; +#define UNDECORATED_DEFAULTS \ + UNDECORATED_DEFAULT(AnyLevel, LOG_TAGS(jit, inlining)) + +const LogDecorators::DefaultUndecoratedSelection LogDecorators::default_decorators[] = { +#define UNDECORATED_DEFAULT(level, ...) LogDecorators::DefaultUndecoratedSelection::make(), + UNDECORATED_DEFAULTS +#undef UNDECORATED_DEFAULT +}; + +#undef UNDERCORATED_DEFAULTS + +const size_t LogDecorators::number_of_default_decorators = ARRAY_SIZE(default_decorators); + LogDecorators::Decorator LogDecorators::from_string(const char* str) { for (size_t i = 0; i < Count; i++) { Decorator d = static_cast(i); @@ -57,7 +72,7 @@ LogDecorators::Decorator LogDecorators::from_string(const char* str) { bool LogDecorators::parse(const char* decorator_args, outputStream* errstream) { if (decorator_args == nullptr || strlen(decorator_args) == 0) { - _decorators = DefaultDecoratorsMask; + // No decorators supplied, keep default decorators return true; } @@ -93,3 +108,16 @@ bool LogDecorators::parse(const char* decorator_args, outputStream* errstream) { } return result; } + +bool LogDecorators::has_disabled_default_decorators(const LogSelection& selection, const DefaultUndecoratedSelection* defaults, size_t defaults_count) { + for (size_t i = 0; i < defaults_count; ++i) { + DefaultUndecoratedSelection current_default = defaults[i]; + const bool ignore_level = current_default.selection().level() == AnyLevel; + const bool level_matches = ignore_level || selection.level() == current_default.selection().level(); + if (!level_matches) continue; + if (selection.superset_of(current_default.selection())) { + return true; + } + } + return false; +} diff --git a/src/hotspot/share/logging/logDecorators.hpp b/src/hotspot/share/logging/logDecorators.hpp index b92de0fdb98ce..9e38f429974a1 100644 --- a/src/hotspot/share/logging/logDecorators.hpp +++ b/src/hotspot/share/logging/logDecorators.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, 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 @@ -25,6 +25,7 @@ #define SHARE_LOGGING_LOGDECORATORS_HPP #include "utilities/globalDefinitions.hpp" +#include "logging/logSelection.hpp" class outputStream; @@ -59,6 +60,7 @@ class outputStream; // declared above. For example, logging with 'uptime, level, tags' decorators results in: // [0,943s][info ][logging] message. class LogDecorators { + friend class TestLogDecorators; public: enum Decorator { #define DECORATOR(name, abbr) name##_decorator, @@ -68,24 +70,48 @@ class LogDecorators { Invalid }; + class DefaultUndecoratedSelection { + friend class TestLogDecorators; + LogSelection _selection; + + DefaultUndecoratedSelection() : _selection(LogSelection::Invalid) {} + + DefaultUndecoratedSelection(LogLevelType level, LogTagType t0, LogTagType t1, LogTagType t2, + LogTagType t3, LogTagType t4) : _selection(LogSelection::Invalid) { + LogTagType tag_arr[LogTag::MaxTags] = { t0, t1, t2, t3, t4 }; + _selection = LogSelection(tag_arr, false, level); + } + + public: + template + static DefaultUndecoratedSelection make() { + STATIC_ASSERT(GuardTag == LogTag::__NO_TAG); + return DefaultUndecoratedSelection(Level, T0, T1, T2, T3, T4); + } + + const LogSelection& selection() const { return _selection; } + }; + private: uint _decorators; static const char* _name[][2]; - static const uint DefaultDecoratorsMask = (1 << uptime_decorator) | (1 << level_decorator) | (1 << tags_decorator); + static const uint defaultsMask = (1 << uptime_decorator) | (1 << level_decorator) | (1 << tags_decorator); + static const LogDecorators::DefaultUndecoratedSelection default_decorators[]; + static const size_t number_of_default_decorators; static uint mask(LogDecorators::Decorator decorator) { return 1 << decorator; } - constexpr LogDecorators(uint mask) : _decorators(mask) { - } public: static const LogDecorators None; static const LogDecorators All; - LogDecorators() : _decorators(DefaultDecoratorsMask) { - } + constexpr LogDecorators(uint mask) : _decorators(mask) {} + + LogDecorators() : _decorators(defaultsMask) {} void clear() { _decorators = 0; @@ -99,6 +125,20 @@ class LogDecorators { return _name[decorator][1]; } + template + static uint mask_from_decorators(LogDecorators::Decorator first, Decorators... rest) { + uint bitmask = 0; + LogDecorators::Decorator decorators[1 + sizeof...(rest)] = { first, rest... }; + for (const LogDecorators::Decorator decorator : decorators) { + bitmask |= mask(decorator); + } + return bitmask; + } + + // Check if we have some default decorators for a given LogSelection. If that is the case, + // the output parameter mask will contain the defaults-specified decorators mask + static bool has_disabled_default_decorators(const LogSelection& selection, const DefaultUndecoratedSelection* defaults = default_decorators, size_t defaults_count = number_of_default_decorators); + static LogDecorators::Decorator from_string(const char* str); void combine_with(const LogDecorators &source) { diff --git a/src/hotspot/share/logging/logSelection.cpp b/src/hotspot/share/logging/logSelection.cpp index 1e7ba3a887848..99ecc9f87f272 100644 --- a/src/hotspot/share/logging/logSelection.cpp +++ b/src/hotspot/share/logging/logSelection.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, 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 @@ -69,6 +69,23 @@ bool LogSelection::operator!=(const LogSelection& ref) const { return !operator==(ref); } +bool LogSelection::superset_of(const LogSelection& other) const { + bool match; + for (size_t i = 0; i < other.ntags(); ++i) { + match = false; + for (size_t j = 0; j < _ntags; ++j) { + if (other._tags[i] == _tags[j]) { + match = true; + break; + } + } + + if (!match) return false; + } + + return true; +} + static LogSelection parse_internal(char *str, outputStream* errstream) { // Parse the level, if specified LogLevelType level = LogLevel::Unspecified; diff --git a/src/hotspot/share/logging/logSelection.hpp b/src/hotspot/share/logging/logSelection.hpp index 7f4c1fb8e95e3..4555590295a5d 100644 --- a/src/hotspot/share/logging/logSelection.hpp +++ b/src/hotspot/share/logging/logSelection.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, 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 @@ -54,6 +54,8 @@ class LogSelection : public StackObj { bool operator==(const LogSelection& ref) const; bool operator!=(const LogSelection& ref) const; + bool superset_of(const LogSelection& ref) const; + size_t ntags() const; LogLevelType level() const; size_t tag_sets_selected() const; diff --git a/src/hotspot/share/logging/logSelectionList.cpp b/src/hotspot/share/logging/logSelectionList.cpp index 1eb4cca0c3e50..ac63f20512c2a 100644 --- a/src/hotspot/share/logging/logSelectionList.cpp +++ b/src/hotspot/share/logging/logSelectionList.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, 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 @@ -53,6 +53,14 @@ bool LogSelectionList::verify_selections(outputStream* out) const { return valid; } +LogDecorators LogSelectionList::get_default_decorators() const { + for (size_t i = 0; i < _nselections; ++i) { + if (!LogDecorators::has_disabled_default_decorators(_selections[i])) { + return LogDecorators(); + } + } + return LogDecorators::None; +} bool LogSelectionList::parse(const char* str, outputStream* errstream) { bool success = true; @@ -91,7 +99,7 @@ bool LogSelectionList::parse(const char* str, outputStream* errstream) { LogLevelType LogSelectionList::level_for(const LogTagSet& ts) const { // Return NotMentioned if the given tagset isn't covered by this expression. LogLevelType level = LogLevel::NotMentioned; - for (size_t i= 0; i < _nselections; i++) { + for (size_t i = 0; i < _nselections; i++) { if (_selections[i].selects(ts)) { level = _selections[i].level(); } diff --git a/src/hotspot/share/logging/logSelectionList.hpp b/src/hotspot/share/logging/logSelectionList.hpp index 6bd2c6608bc87..0852348cc1463 100644 --- a/src/hotspot/share/logging/logSelectionList.hpp +++ b/src/hotspot/share/logging/logSelectionList.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, 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 @@ -60,6 +60,8 @@ class LogSelectionList : public StackObj { // Returns false if some invalid selection was found. If given an outputstream, // this function will list all the invalid selections on the stream. bool verify_selections(outputStream* out = nullptr) const; + + LogDecorators get_default_decorators() const; }; #endif // SHARE_LOGGING_LOGSELECTIONLIST_HPP diff --git a/src/hotspot/share/runtime/os.hpp b/src/hotspot/share/runtime/os.hpp index 65071769bc4cb..323b8d2df8dbe 100644 --- a/src/hotspot/share/runtime/os.hpp +++ b/src/hotspot/share/runtime/os.hpp @@ -668,6 +668,13 @@ class os: AllStatic { static void flockfile(FILE* fp); static void funlockfile(FILE* fp); + // A safe implementation of realpath which will not cause a buffer overflow if the resolved path + // is longer than PATH_MAX. + // On success, returns 'outbuf', which now contains the path. + // On error, it will return null and set errno. The content of 'outbuf' is undefined. + // On truncation error ('outbuf' too small), it will return null and set errno to ENAMETOOLONG. + static char* realpath(const char* filename, char* outbuf, size_t outbuflen); + static int compare_file_modified_times(const char* file1, const char* file2); static bool same_files(const char* file1, const char* file2); diff --git a/src/hotspot/share/services/diagnosticCommand.cpp b/src/hotspot/share/services/diagnosticCommand.cpp index 36432ccb232fa..a82ac61acf613 100644 --- a/src/hotspot/share/services/diagnosticCommand.cpp +++ b/src/hotspot/share/services/diagnosticCommand.cpp @@ -1202,12 +1202,10 @@ void SystemDumpMapDCmd::execute(DCmdSource source, TRAPS) { output()->print_cr("(NMT is disabled, will not annotate mappings)."); } MemMapPrinter::print_all_mappings(&fs); -#ifndef _WIN64 // For the readers convenience, resolve path name. char tmp[JVM_MAXPATHLEN]; - const char* absname = os::Posix::realpath(name, tmp, sizeof(tmp)); + const char* absname = os::realpath(name, tmp, sizeof(tmp)); name = absname != nullptr ? absname : name; -#endif output()->print_cr("Memory map dumped to \"%s\".", name); } else { output()->print_cr("Failed to open \"%s\" for writing (%s).", name, os::strerror(errno)); diff --git a/src/hotspot/share/utilities/globalDefinitions.hpp b/src/hotspot/share/utilities/globalDefinitions.hpp index 6d385165b8b1b..25af626c6286b 100644 --- a/src/hotspot/share/utilities/globalDefinitions.hpp +++ b/src/hotspot/share/utilities/globalDefinitions.hpp @@ -210,7 +210,7 @@ FORBID_C_FUNCTION(char* strdup(const char *s), "use os::strdup"); FORBID_C_FUNCTION(char* strndup(const char *s, size_t n), "don't use"); FORBID_C_FUNCTION(int posix_memalign(void **memptr, size_t alignment, size_t size), "don't use"); FORBID_C_FUNCTION(void* aligned_alloc(size_t alignment, size_t size), "don't use"); -FORBID_C_FUNCTION(char* realpath(const char* path, char* resolved_path), "use os::Posix::realpath"); +FORBID_C_FUNCTION(char* realpath(const char* path, char* resolved_path), "use os::realpath"); FORBID_C_FUNCTION(char* get_current_dir_name(void), "use os::get_current_directory()"); FORBID_C_FUNCTION(char* getwd(char *buf), "use os::get_current_directory()"); FORBID_C_FUNCTION(wchar_t* wcsdup(const wchar_t *s), "don't use"); diff --git a/src/java.base/share/classes/java/lang/classfile/AccessFlags.java b/src/java.base/share/classes/java/lang/classfile/AccessFlags.java index 6c6ac75e64896..4abe17c1cf59e 100644 --- a/src/java.base/share/classes/java/lang/classfile/AccessFlags.java +++ b/src/java.base/share/classes/java/lang/classfile/AccessFlags.java @@ -24,9 +24,10 @@ */ package java.lang.classfile; +import java.lang.reflect.AccessFlag; import java.util.Set; + import jdk.internal.classfile.impl.AccessFlagsImpl; -import java.lang.reflect.AccessFlag; import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/Annotation.java b/src/java.base/share/classes/java/lang/classfile/Annotation.java index 009248ffd7856..4f222084cb7ab 100644 --- a/src/java.base/share/classes/java/lang/classfile/Annotation.java +++ b/src/java.base/share/classes/java/lang/classfile/Annotation.java @@ -29,12 +29,11 @@ import java.lang.classfile.attribute.RuntimeVisibleAnnotationsAttribute; import java.lang.classfile.attribute.RuntimeVisibleParameterAnnotationsAttribute; import java.lang.classfile.constantpool.Utf8Entry; -import jdk.internal.classfile.impl.AnnotationImpl; -import jdk.internal.classfile.impl.TemporaryConstantPool; - import java.lang.constant.ClassDesc; import java.util.List; +import jdk.internal.classfile.impl.AnnotationImpl; +import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.Util; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/AnnotationElement.java b/src/java.base/share/classes/java/lang/classfile/AnnotationElement.java index 33bd410e78dce..7c4283c49bf4d 100644 --- a/src/java.base/share/classes/java/lang/classfile/AnnotationElement.java +++ b/src/java.base/share/classes/java/lang/classfile/AnnotationElement.java @@ -24,9 +24,9 @@ */ package java.lang.classfile; +import java.lang.classfile.constantpool.Utf8Entry; import java.lang.constant.ClassDesc; -import java.lang.classfile.constantpool.Utf8Entry; import jdk.internal.classfile.impl.AnnotationImpl; import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/AnnotationValue.java b/src/java.base/share/classes/java/lang/classfile/AnnotationValue.java index fe768e93b1308..e1e91f2c9edb1 100644 --- a/src/java.base/share/classes/java/lang/classfile/AnnotationValue.java +++ b/src/java.base/share/classes/java/lang/classfile/AnnotationValue.java @@ -24,21 +24,14 @@ */ package java.lang.classfile; -import java.lang.classfile.constantpool.AnnotationConstantValueEntry; -import java.lang.classfile.constantpool.DoubleEntry; -import java.lang.classfile.constantpool.DynamicConstantPoolEntry; -import java.lang.classfile.constantpool.FloatEntry; -import java.lang.classfile.constantpool.IntegerEntry; -import java.lang.classfile.constantpool.LongEntry; -import java.lang.classfile.constantpool.Utf8Entry; -import jdk.internal.classfile.impl.AnnotationImpl; -import jdk.internal.classfile.impl.TemporaryConstantPool; - +import java.lang.classfile.constantpool.*; import java.lang.constant.ClassDesc; import java.lang.constant.Constable; import java.util.ArrayList; import java.util.List; +import jdk.internal.classfile.impl.AnnotationImpl; +import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.Util; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/Attribute.java b/src/java.base/share/classes/java/lang/classfile/Attribute.java index b9e3df8d2a2d3..e2f0072d3967f 100644 --- a/src/java.base/share/classes/java/lang/classfile/Attribute.java +++ b/src/java.base/share/classes/java/lang/classfile/Attribute.java @@ -24,43 +24,8 @@ */ package java.lang.classfile; -import java.lang.classfile.attribute.AnnotationDefaultAttribute; -import java.lang.classfile.attribute.BootstrapMethodsAttribute; -import java.lang.classfile.attribute.CharacterRangeTableAttribute; -import java.lang.classfile.attribute.CodeAttribute; -import java.lang.classfile.attribute.CompilationIDAttribute; -import java.lang.classfile.attribute.ConstantValueAttribute; -import java.lang.classfile.attribute.DeprecatedAttribute; -import java.lang.classfile.attribute.EnclosingMethodAttribute; -import java.lang.classfile.attribute.ExceptionsAttribute; -import java.lang.classfile.attribute.InnerClassesAttribute; -import java.lang.classfile.attribute.LineNumberTableAttribute; -import java.lang.classfile.attribute.LocalVariableTableAttribute; -import java.lang.classfile.attribute.LocalVariableTypeTableAttribute; -import java.lang.classfile.attribute.MethodParametersAttribute; -import java.lang.classfile.attribute.ModuleAttribute; -import java.lang.classfile.attribute.ModuleHashesAttribute; -import java.lang.classfile.attribute.ModuleMainClassAttribute; -import java.lang.classfile.attribute.ModulePackagesAttribute; -import java.lang.classfile.attribute.ModuleResolutionAttribute; -import java.lang.classfile.attribute.ModuleTargetAttribute; -import java.lang.classfile.attribute.NestHostAttribute; -import java.lang.classfile.attribute.NestMembersAttribute; -import java.lang.classfile.attribute.PermittedSubclassesAttribute; -import java.lang.classfile.attribute.RecordAttribute; -import java.lang.classfile.attribute.RuntimeInvisibleAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeInvisibleParameterAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeInvisibleTypeAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeVisibleAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeVisibleParameterAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeVisibleTypeAnnotationsAttribute; -import java.lang.classfile.attribute.SignatureAttribute; -import java.lang.classfile.attribute.SourceDebugExtensionAttribute; -import java.lang.classfile.attribute.SourceFileAttribute; -import java.lang.classfile.attribute.SourceIDAttribute; -import java.lang.classfile.attribute.StackMapTableAttribute; -import java.lang.classfile.attribute.SyntheticAttribute; -import java.lang.classfile.attribute.UnknownAttribute; +import java.lang.classfile.attribute.*; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/AttributedElement.java b/src/java.base/share/classes/java/lang/classfile/AttributedElement.java index 0caf231ec2a10..fb1bf817480e0 100644 --- a/src/java.base/share/classes/java/lang/classfile/AttributedElement.java +++ b/src/java.base/share/classes/java/lang/classfile/AttributedElement.java @@ -24,12 +24,12 @@ */ package java.lang.classfile; +import java.lang.classfile.attribute.RecordComponentInfo; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Optional; -import java.lang.classfile.attribute.RecordComponentInfo; import jdk.internal.classfile.impl.AbstractUnboundModel; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/Attributes.java b/src/java.base/share/classes/java/lang/classfile/Attributes.java index 1e91090f8afda..ad63eec75de39 100644 --- a/src/java.base/share/classes/java/lang/classfile/Attributes.java +++ b/src/java.base/share/classes/java/lang/classfile/Attributes.java @@ -26,6 +26,7 @@ import java.lang.classfile.AttributeMapper.AttributeStability; import java.lang.classfile.attribute.*; + import jdk.internal.classfile.impl.AbstractAttributeMapper.*; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/BootstrapMethodEntry.java b/src/java.base/share/classes/java/lang/classfile/BootstrapMethodEntry.java index 5ff3c449fe9ae..964976e0fd5ad 100644 --- a/src/java.base/share/classes/java/lang/classfile/BootstrapMethodEntry.java +++ b/src/java.base/share/classes/java/lang/classfile/BootstrapMethodEntry.java @@ -25,11 +25,11 @@ package java.lang.classfile; -import java.util.List; - import java.lang.classfile.constantpool.ConstantPool; import java.lang.classfile.constantpool.LoadableConstantEntry; import java.lang.classfile.constantpool.MethodHandleEntry; +import java.util.List; + import jdk.internal.classfile.impl.BootstrapMethodEntryImpl; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/BufWriter.java b/src/java.base/share/classes/java/lang/classfile/BufWriter.java index c71b44e7c0286..d60447c138843 100644 --- a/src/java.base/share/classes/java/lang/classfile/BufWriter.java +++ b/src/java.base/share/classes/java/lang/classfile/BufWriter.java @@ -27,6 +27,7 @@ import java.lang.classfile.constantpool.ConstantPool; import java.lang.classfile.constantpool.ConstantPoolBuilder; import java.lang.classfile.constantpool.PoolEntry; + import jdk.internal.classfile.impl.BufWriterImpl; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/ClassBuilder.java b/src/java.base/share/classes/java/lang/classfile/ClassBuilder.java index 905c7355c3406..71f1cc5319458 100644 --- a/src/java.base/share/classes/java/lang/classfile/ClassBuilder.java +++ b/src/java.base/share/classes/java/lang/classfile/ClassBuilder.java @@ -25,22 +25,20 @@ package java.lang.classfile; - +import java.lang.classfile.attribute.CodeAttribute; +import java.lang.classfile.constantpool.ClassEntry; +import java.lang.classfile.constantpool.Utf8Entry; import java.lang.constant.ClassDesc; import java.lang.constant.MethodTypeDesc; +import java.lang.reflect.AccessFlag; import java.util.Arrays; import java.util.List; import java.util.function.Consumer; -import java.lang.classfile.constantpool.ClassEntry; -import java.lang.classfile.constantpool.Utf8Entry; - import jdk.internal.classfile.impl.AccessFlagsImpl; import jdk.internal.classfile.impl.ChainedClassBuilder; import jdk.internal.classfile.impl.DirectClassBuilder; import jdk.internal.classfile.impl.Util; -import java.lang.reflect.AccessFlag; -import java.lang.classfile.attribute.CodeAttribute; import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/ClassElement.java b/src/java.base/share/classes/java/lang/classfile/ClassElement.java index 3852f7d12933a..6c918b7de4aab 100644 --- a/src/java.base/share/classes/java/lang/classfile/ClassElement.java +++ b/src/java.base/share/classes/java/lang/classfile/ClassElement.java @@ -24,30 +24,8 @@ */ package java.lang.classfile; -import java.lang.classfile.attribute.CompilationIDAttribute; -import java.lang.classfile.attribute.DeprecatedAttribute; -import java.lang.classfile.attribute.EnclosingMethodAttribute; -import java.lang.classfile.attribute.InnerClassesAttribute; -import java.lang.classfile.attribute.ModuleAttribute; -import java.lang.classfile.attribute.ModuleHashesAttribute; -import java.lang.classfile.attribute.ModuleMainClassAttribute; -import java.lang.classfile.attribute.ModulePackagesAttribute; -import java.lang.classfile.attribute.ModuleResolutionAttribute; -import java.lang.classfile.attribute.ModuleTargetAttribute; -import java.lang.classfile.attribute.NestHostAttribute; -import java.lang.classfile.attribute.NestMembersAttribute; -import java.lang.classfile.attribute.PermittedSubclassesAttribute; -import java.lang.classfile.attribute.RecordAttribute; -import java.lang.classfile.attribute.RuntimeInvisibleAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeInvisibleTypeAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeVisibleAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeVisibleTypeAnnotationsAttribute; -import java.lang.classfile.attribute.SignatureAttribute; -import java.lang.classfile.attribute.SourceDebugExtensionAttribute; -import java.lang.classfile.attribute.SourceFileAttribute; -import java.lang.classfile.attribute.SourceIDAttribute; -import java.lang.classfile.attribute.SyntheticAttribute; -import java.lang.classfile.attribute.UnknownAttribute; +import java.lang.classfile.attribute.*; + import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/ClassFile.java b/src/java.base/share/classes/java/lang/classfile/ClassFile.java index 284503ee62714..7051228c827b0 100644 --- a/src/java.base/share/classes/java/lang/classfile/ClassFile.java +++ b/src/java.base/share/classes/java/lang/classfile/ClassFile.java @@ -25,27 +25,28 @@ package java.lang.classfile; import java.io.IOException; +import java.lang.classfile.attribute.CharacterRangeInfo; +import java.lang.classfile.attribute.LocalVariableInfo; +import java.lang.classfile.attribute.LocalVariableTypeInfo; +import java.lang.classfile.attribute.ModuleAttribute; +import java.lang.classfile.constantpool.ClassEntry; +import java.lang.classfile.constantpool.ConstantPoolBuilder; +import java.lang.classfile.constantpool.Utf8Entry; +import java.lang.classfile.instruction.ExceptionCatch; import java.lang.constant.ClassDesc; +import java.lang.reflect.AccessFlag; import java.nio.file.Files; import java.nio.file.Path; +import java.util.List; import java.util.function.Consumer; import java.util.function.Function; -import java.lang.classfile.attribute.ModuleAttribute; -import java.lang.classfile.constantpool.ClassEntry; -import java.lang.classfile.constantpool.ConstantPoolBuilder; -import java.lang.classfile.constantpool.Utf8Entry; import jdk.internal.classfile.impl.ClassFileImpl; import jdk.internal.classfile.impl.TemporaryConstantPool; -import java.lang.reflect.AccessFlag; -import java.lang.classfile.attribute.CharacterRangeInfo; -import java.lang.classfile.attribute.LocalVariableInfo; -import java.lang.classfile.attribute.LocalVariableTypeInfo; -import java.lang.classfile.instruction.ExceptionCatch; -import java.util.List; +import jdk.internal.javac.PreviewFeature; + import static java.util.Objects.requireNonNull; import static jdk.internal.constant.ConstantUtils.CD_module_info; -import jdk.internal.javac.PreviewFeature; /** * Represents a context for parsing, transforming, and generating classfiles. diff --git a/src/java.base/share/classes/java/lang/classfile/ClassFileBuilder.java b/src/java.base/share/classes/java/lang/classfile/ClassFileBuilder.java index 56a2088370c6b..8b3f6544fff16 100644 --- a/src/java.base/share/classes/java/lang/classfile/ClassFileBuilder.java +++ b/src/java.base/share/classes/java/lang/classfile/ClassFileBuilder.java @@ -24,11 +24,10 @@ */ package java.lang.classfile; +import java.lang.classfile.constantpool.ConstantPoolBuilder; import java.lang.constant.ClassDesc; import java.util.function.Consumer; -import java.lang.classfile.constantpool.ConstantPoolBuilder; - import jdk.internal.classfile.impl.TransformImpl; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/ClassFileTransform.java b/src/java.base/share/classes/java/lang/classfile/ClassFileTransform.java index 851f4deb03e92..b9c5210881cb9 100644 --- a/src/java.base/share/classes/java/lang/classfile/ClassFileTransform.java +++ b/src/java.base/share/classes/java/lang/classfile/ClassFileTransform.java @@ -24,9 +24,9 @@ */ package java.lang.classfile; +import java.lang.classfile.attribute.RuntimeVisibleAnnotationsAttribute; import java.util.function.Supplier; -import java.lang.classfile.attribute.RuntimeVisibleAnnotationsAttribute; import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/ClassHierarchyResolver.java b/src/java.base/share/classes/java/lang/classfile/ClassHierarchyResolver.java index 3f16ce8402492..c2719e7aae062 100644 --- a/src/java.base/share/classes/java/lang/classfile/ClassHierarchyResolver.java +++ b/src/java.base/share/classes/java/lang/classfile/ClassHierarchyResolver.java @@ -37,12 +37,11 @@ import jdk.internal.classfile.impl.ClassHierarchyImpl.ClassLoadingClassHierarchyResolver; import jdk.internal.classfile.impl.ClassHierarchyImpl.StaticClassHierarchyResolver; import jdk.internal.classfile.impl.Util; +import jdk.internal.javac.PreviewFeature; import static java.lang.constant.ConstantDescs.CD_Object; import static java.util.Objects.requireNonNull; -import jdk.internal.javac.PreviewFeature; - /** * Provides class hierarchy information for generating correct stack maps * during code building. diff --git a/src/java.base/share/classes/java/lang/classfile/ClassModel.java b/src/java.base/share/classes/java/lang/classfile/ClassModel.java index c289f72f560f0..915b662b48838 100644 --- a/src/java.base/share/classes/java/lang/classfile/ClassModel.java +++ b/src/java.base/share/classes/java/lang/classfile/ClassModel.java @@ -25,14 +25,12 @@ package java.lang.classfile; +import java.lang.classfile.constantpool.ClassEntry; +import java.lang.classfile.constantpool.ConstantPool; import java.util.List; import java.util.Optional; -import java.util.function.Consumer; -import java.lang.classfile.constantpool.ClassEntry; -import java.lang.classfile.constantpool.ConstantPool; import jdk.internal.classfile.impl.ClassImpl; -import jdk.internal.classfile.impl.verifier.VerifierImpl; import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/ClassReader.java b/src/java.base/share/classes/java/lang/classfile/ClassReader.java index 735aae444fc0c..58ee2aae5e58e 100644 --- a/src/java.base/share/classes/java/lang/classfile/ClassReader.java +++ b/src/java.base/share/classes/java/lang/classfile/ClassReader.java @@ -29,10 +29,10 @@ import java.lang.classfile.constantpool.ConstantPoolException; import java.lang.classfile.constantpool.PoolEntry; import java.lang.classfile.constantpool.Utf8Entry; -import jdk.internal.classfile.impl.ClassReaderImpl; - import java.util.Optional; import java.util.function.Function; + +import jdk.internal.classfile.impl.ClassReaderImpl; import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/ClassSignature.java b/src/java.base/share/classes/java/lang/classfile/ClassSignature.java index 3b6b15f59f839..5a57144c4abce 100644 --- a/src/java.base/share/classes/java/lang/classfile/ClassSignature.java +++ b/src/java.base/share/classes/java/lang/classfile/ClassSignature.java @@ -25,10 +25,12 @@ package java.lang.classfile; import java.util.List; + import jdk.internal.classfile.impl.SignaturesImpl; -import static java.util.Objects.requireNonNull; import jdk.internal.javac.PreviewFeature; +import static java.util.Objects.requireNonNull; + /** * Models the generic signature of a class file, as defined by JVMS {@jvms 4.7.9}. * diff --git a/src/java.base/share/classes/java/lang/classfile/ClassTransform.java b/src/java.base/share/classes/java/lang/classfile/ClassTransform.java index 230b436b138ad..f512683a9b652 100644 --- a/src/java.base/share/classes/java/lang/classfile/ClassTransform.java +++ b/src/java.base/share/classes/java/lang/classfile/ClassTransform.java @@ -24,11 +24,11 @@ */ package java.lang.classfile; +import java.lang.classfile.attribute.CodeAttribute; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.function.Supplier; -import java.lang.classfile.attribute.CodeAttribute; import jdk.internal.classfile.impl.TransformImpl; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/CodeBuilder.java b/src/java.base/share/classes/java/lang/classfile/CodeBuilder.java index 7b27238bbdfae..11e83550d233d 100644 --- a/src/java.base/share/classes/java/lang/classfile/CodeBuilder.java +++ b/src/java.base/share/classes/java/lang/classfile/CodeBuilder.java @@ -25,6 +25,8 @@ package java.lang.classfile; +import java.lang.classfile.constantpool.*; +import java.lang.classfile.instruction.*; import java.lang.constant.ClassDesc; import java.lang.constant.ConstantDesc; import java.lang.constant.ConstantDescs; @@ -36,60 +38,12 @@ import java.util.Optional; import java.util.function.Consumer; -import java.lang.classfile.constantpool.ClassEntry; -import java.lang.classfile.constantpool.FieldRefEntry; -import java.lang.classfile.constantpool.InterfaceMethodRefEntry; -import java.lang.classfile.constantpool.InvokeDynamicEntry; -import java.lang.classfile.constantpool.LoadableConstantEntry; -import java.lang.classfile.constantpool.MemberRefEntry; -import java.lang.classfile.constantpool.MethodRefEntry; -import java.lang.classfile.constantpool.MethodHandleEntry; -import java.lang.classfile.constantpool.NameAndTypeEntry; -import java.lang.classfile.constantpool.Utf8Entry; -import jdk.internal.classfile.impl.BlockCodeBuilderImpl; -import jdk.internal.classfile.impl.BytecodeHelpers; -import jdk.internal.classfile.impl.CatchBuilderImpl; -import jdk.internal.classfile.impl.ChainedCodeBuilder; -import jdk.internal.classfile.impl.LabelImpl; -import jdk.internal.classfile.impl.NonterminalCodeBuilder; -import jdk.internal.classfile.impl.TerminalCodeBuilder; -import java.lang.classfile.instruction.ArrayLoadInstruction; -import java.lang.classfile.instruction.ArrayStoreInstruction; -import java.lang.classfile.instruction.BranchInstruction; -import java.lang.classfile.instruction.CharacterRange; -import java.lang.classfile.instruction.ConstantInstruction; -import java.lang.classfile.instruction.ConvertInstruction; -import java.lang.classfile.instruction.ExceptionCatch; -import java.lang.classfile.instruction.FieldInstruction; -import java.lang.classfile.instruction.IncrementInstruction; -import java.lang.classfile.instruction.InvokeDynamicInstruction; -import java.lang.classfile.instruction.InvokeInstruction; -import java.lang.classfile.instruction.LineNumber; -import java.lang.classfile.instruction.LoadInstruction; -import java.lang.classfile.instruction.LocalVariable; -import java.lang.classfile.instruction.LocalVariableType; -import java.lang.classfile.instruction.LookupSwitchInstruction; -import java.lang.classfile.instruction.MonitorInstruction; -import java.lang.classfile.instruction.NewMultiArrayInstruction; -import java.lang.classfile.instruction.NewObjectInstruction; -import java.lang.classfile.instruction.NewPrimitiveArrayInstruction; -import java.lang.classfile.instruction.NewReferenceArrayInstruction; -import java.lang.classfile.instruction.NopInstruction; -import java.lang.classfile.instruction.OperatorInstruction; -import java.lang.classfile.instruction.ReturnInstruction; -import java.lang.classfile.instruction.StackInstruction; -import java.lang.classfile.instruction.StoreInstruction; -import java.lang.classfile.instruction.SwitchCase; -import java.lang.classfile.instruction.TableSwitchInstruction; -import java.lang.classfile.instruction.ThrowInstruction; -import java.lang.classfile.instruction.TypeCheckInstruction; +import jdk.internal.classfile.impl.*; +import jdk.internal.javac.PreviewFeature; import static java.util.Objects.requireNonNull; import static jdk.internal.classfile.impl.BytecodeHelpers.handleDescToHandleInfo; -import jdk.internal.classfile.impl.TransformImpl; -import jdk.internal.javac.PreviewFeature; - /** * A builder for code attributes (method bodies). Builders are not created * directly; they are passed to handlers by methods such as {@link diff --git a/src/java.base/share/classes/java/lang/classfile/CodeElement.java b/src/java.base/share/classes/java/lang/classfile/CodeElement.java index cd4fafdd5bb9c..1cec4b8e6045f 100644 --- a/src/java.base/share/classes/java/lang/classfile/CodeElement.java +++ b/src/java.base/share/classes/java/lang/classfile/CodeElement.java @@ -27,6 +27,7 @@ import java.lang.classfile.attribute.RuntimeInvisibleTypeAnnotationsAttribute; import java.lang.classfile.attribute.RuntimeVisibleTypeAnnotationsAttribute; import java.lang.classfile.attribute.StackMapTableAttribute; + import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/CodeModel.java b/src/java.base/share/classes/java/lang/classfile/CodeModel.java index ba816f2080581..759aacc18c94e 100644 --- a/src/java.base/share/classes/java/lang/classfile/CodeModel.java +++ b/src/java.base/share/classes/java/lang/classfile/CodeModel.java @@ -25,13 +25,12 @@ package java.lang.classfile; +import java.lang.classfile.attribute.CodeAttribute; +import java.lang.classfile.instruction.ExceptionCatch; import java.util.List; import java.util.Optional; -import java.lang.classfile.attribute.CodeAttribute; import jdk.internal.classfile.impl.BufferedCodeBuilder; -import jdk.internal.classfile.impl.CodeImpl; -import java.lang.classfile.instruction.ExceptionCatch; import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/CompoundElement.java b/src/java.base/share/classes/java/lang/classfile/CompoundElement.java index 9fcf02204cb13..5dfeac6f00d33 100644 --- a/src/java.base/share/classes/java/lang/classfile/CompoundElement.java +++ b/src/java.base/share/classes/java/lang/classfile/CompoundElement.java @@ -33,6 +33,7 @@ import java.util.function.Consumer; import java.util.stream.Stream; import java.util.stream.StreamSupport; + import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/FieldBuilder.java b/src/java.base/share/classes/java/lang/classfile/FieldBuilder.java index d9a8f6b2fc325..d318364465748 100644 --- a/src/java.base/share/classes/java/lang/classfile/FieldBuilder.java +++ b/src/java.base/share/classes/java/lang/classfile/FieldBuilder.java @@ -26,13 +26,12 @@ package java.lang.classfile; import java.lang.classfile.constantpool.Utf8Entry; +import java.lang.reflect.AccessFlag; +import java.util.function.Consumer; import jdk.internal.classfile.impl.AccessFlagsImpl; import jdk.internal.classfile.impl.ChainedFieldBuilder; import jdk.internal.classfile.impl.TerminalFieldBuilder; -import java.lang.reflect.AccessFlag; - -import java.util.function.Consumer; import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/FieldElement.java b/src/java.base/share/classes/java/lang/classfile/FieldElement.java index c41c9224bd39b..b4af99719818c 100644 --- a/src/java.base/share/classes/java/lang/classfile/FieldElement.java +++ b/src/java.base/share/classes/java/lang/classfile/FieldElement.java @@ -24,15 +24,8 @@ */ package java.lang.classfile; -import java.lang.classfile.attribute.ConstantValueAttribute; -import java.lang.classfile.attribute.DeprecatedAttribute; -import java.lang.classfile.attribute.RuntimeInvisibleAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeInvisibleTypeAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeVisibleAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeVisibleTypeAnnotationsAttribute; -import java.lang.classfile.attribute.SignatureAttribute; -import java.lang.classfile.attribute.SyntheticAttribute; -import java.lang.classfile.attribute.UnknownAttribute; +import java.lang.classfile.attribute.*; + import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/FieldModel.java b/src/java.base/share/classes/java/lang/classfile/FieldModel.java index 006103d5f9cbc..c45f3e88d5dcb 100644 --- a/src/java.base/share/classes/java/lang/classfile/FieldModel.java +++ b/src/java.base/share/classes/java/lang/classfile/FieldModel.java @@ -25,10 +25,10 @@ package java.lang.classfile; +import java.lang.classfile.constantpool.Utf8Entry; import java.lang.constant.ClassDesc; import java.util.Optional; -import java.lang.classfile.constantpool.Utf8Entry; import jdk.internal.classfile.impl.BufferedFieldBuilder; import jdk.internal.classfile.impl.FieldImpl; import jdk.internal.classfile.impl.Util; diff --git a/src/java.base/share/classes/java/lang/classfile/Instruction.java b/src/java.base/share/classes/java/lang/classfile/Instruction.java index 08255d8a5b106..210c1e1b0da7b 100644 --- a/src/java.base/share/classes/java/lang/classfile/Instruction.java +++ b/src/java.base/share/classes/java/lang/classfile/Instruction.java @@ -25,32 +25,9 @@ package java.lang.classfile; +import java.lang.classfile.instruction.*; + import jdk.internal.classfile.impl.AbstractInstruction; -import java.lang.classfile.instruction.ArrayLoadInstruction; -import java.lang.classfile.instruction.ArrayStoreInstruction; -import java.lang.classfile.instruction.BranchInstruction; -import java.lang.classfile.instruction.ConstantInstruction; -import java.lang.classfile.instruction.ConvertInstruction; -import java.lang.classfile.instruction.DiscontinuedInstruction; -import java.lang.classfile.instruction.FieldInstruction; -import java.lang.classfile.instruction.IncrementInstruction; -import java.lang.classfile.instruction.InvokeDynamicInstruction; -import java.lang.classfile.instruction.InvokeInstruction; -import java.lang.classfile.instruction.LoadInstruction; -import java.lang.classfile.instruction.LookupSwitchInstruction; -import java.lang.classfile.instruction.MonitorInstruction; -import java.lang.classfile.instruction.NewMultiArrayInstruction; -import java.lang.classfile.instruction.NewObjectInstruction; -import java.lang.classfile.instruction.NewPrimitiveArrayInstruction; -import java.lang.classfile.instruction.NewReferenceArrayInstruction; -import java.lang.classfile.instruction.NopInstruction; -import java.lang.classfile.instruction.OperatorInstruction; -import java.lang.classfile.instruction.ReturnInstruction; -import java.lang.classfile.instruction.StackInstruction; -import java.lang.classfile.instruction.StoreInstruction; -import java.lang.classfile.instruction.TableSwitchInstruction; -import java.lang.classfile.instruction.ThrowInstruction; -import java.lang.classfile.instruction.TypeCheckInstruction; import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/Interfaces.java b/src/java.base/share/classes/java/lang/classfile/Interfaces.java index 9092334bfb483..ff1dda17de8cd 100644 --- a/src/java.base/share/classes/java/lang/classfile/Interfaces.java +++ b/src/java.base/share/classes/java/lang/classfile/Interfaces.java @@ -24,11 +24,11 @@ */ package java.lang.classfile; +import java.lang.classfile.constantpool.ClassEntry; import java.lang.constant.ClassDesc; import java.util.Arrays; import java.util.List; -import java.lang.classfile.constantpool.ClassEntry; import jdk.internal.classfile.impl.InterfacesImpl; import jdk.internal.classfile.impl.Util; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/MethodBuilder.java b/src/java.base/share/classes/java/lang/classfile/MethodBuilder.java index 7c230760f6934..6607d19b0acbe 100644 --- a/src/java.base/share/classes/java/lang/classfile/MethodBuilder.java +++ b/src/java.base/share/classes/java/lang/classfile/MethodBuilder.java @@ -25,14 +25,13 @@ package java.lang.classfile; -import java.util.function.Consumer; - import java.lang.classfile.constantpool.Utf8Entry; +import java.lang.reflect.AccessFlag; +import java.util.function.Consumer; import jdk.internal.classfile.impl.AccessFlagsImpl; import jdk.internal.classfile.impl.ChainedMethodBuilder; import jdk.internal.classfile.impl.TerminalMethodBuilder; -import java.lang.reflect.AccessFlag; import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/MethodElement.java b/src/java.base/share/classes/java/lang/classfile/MethodElement.java index a744952de7a99..dd23548c36022 100644 --- a/src/java.base/share/classes/java/lang/classfile/MethodElement.java +++ b/src/java.base/share/classes/java/lang/classfile/MethodElement.java @@ -24,19 +24,8 @@ */ package java.lang.classfile; -import java.lang.classfile.attribute.AnnotationDefaultAttribute; -import java.lang.classfile.attribute.DeprecatedAttribute; -import java.lang.classfile.attribute.ExceptionsAttribute; -import java.lang.classfile.attribute.MethodParametersAttribute; -import java.lang.classfile.attribute.RuntimeInvisibleAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeInvisibleParameterAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeInvisibleTypeAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeVisibleAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeVisibleParameterAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeVisibleTypeAnnotationsAttribute; -import java.lang.classfile.attribute.SignatureAttribute; -import java.lang.classfile.attribute.SyntheticAttribute; -import java.lang.classfile.attribute.UnknownAttribute; +import java.lang.classfile.attribute.*; + import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/MethodModel.java b/src/java.base/share/classes/java/lang/classfile/MethodModel.java index bd51f3c97d72e..568036e464d8b 100644 --- a/src/java.base/share/classes/java/lang/classfile/MethodModel.java +++ b/src/java.base/share/classes/java/lang/classfile/MethodModel.java @@ -25,10 +25,10 @@ package java.lang.classfile; +import java.lang.classfile.constantpool.Utf8Entry; import java.lang.constant.MethodTypeDesc; import java.util.Optional; -import java.lang.classfile.constantpool.Utf8Entry; import jdk.internal.classfile.impl.BufferedMethodBuilder; import jdk.internal.classfile.impl.MethodImpl; import jdk.internal.classfile.impl.Util; diff --git a/src/java.base/share/classes/java/lang/classfile/MethodSignature.java b/src/java.base/share/classes/java/lang/classfile/MethodSignature.java index 5e758b64be3f8..7235c368a4591 100644 --- a/src/java.base/share/classes/java/lang/classfile/MethodSignature.java +++ b/src/java.base/share/classes/java/lang/classfile/MethodSignature.java @@ -26,11 +26,13 @@ import java.lang.constant.MethodTypeDesc; import java.util.List; + import jdk.internal.classfile.impl.SignaturesImpl; -import static java.util.Objects.requireNonNull; import jdk.internal.classfile.impl.Util; import jdk.internal.javac.PreviewFeature; +import static java.util.Objects.requireNonNull; + /** * Models the generic signature of a method, as defined by JVMS {@jvms 4.7.9}. * diff --git a/src/java.base/share/classes/java/lang/classfile/PseudoInstruction.java b/src/java.base/share/classes/java/lang/classfile/PseudoInstruction.java index 8a2db569ba0c3..b152756acfd8d 100644 --- a/src/java.base/share/classes/java/lang/classfile/PseudoInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/PseudoInstruction.java @@ -31,6 +31,7 @@ import java.lang.classfile.instruction.LineNumber; import java.lang.classfile.instruction.LocalVariable; import java.lang.classfile.instruction.LocalVariableType; + import jdk.internal.classfile.impl.AbstractPseudoInstruction; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/Signature.java b/src/java.base/share/classes/java/lang/classfile/Signature.java index 739c3f1f3f397..7255a41528c01 100644 --- a/src/java.base/share/classes/java/lang/classfile/Signature.java +++ b/src/java.base/share/classes/java/lang/classfile/Signature.java @@ -25,14 +25,15 @@ package java.lang.classfile; import java.lang.constant.ClassDesc; -import jdk.internal.classfile.impl.SignaturesImpl; - import java.util.List; -import static java.util.Objects.requireNonNull; import java.util.Optional; + +import jdk.internal.classfile.impl.SignaturesImpl; import jdk.internal.classfile.impl.Util; import jdk.internal.javac.PreviewFeature; +import static java.util.Objects.requireNonNull; + /** * Models generic Java type signatures, as defined in JVMS {@jvms 4.7.9.1}. * diff --git a/src/java.base/share/classes/java/lang/classfile/Superclass.java b/src/java.base/share/classes/java/lang/classfile/Superclass.java index 70b18bb14d0e2..a69fac6341a11 100644 --- a/src/java.base/share/classes/java/lang/classfile/Superclass.java +++ b/src/java.base/share/classes/java/lang/classfile/Superclass.java @@ -25,6 +25,7 @@ package java.lang.classfile; import java.lang.classfile.constantpool.ClassEntry; + import jdk.internal.classfile.impl.SuperclassImpl; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/TypeAnnotation.java b/src/java.base/share/classes/java/lang/classfile/TypeAnnotation.java index 139c8eef835dc..38e5ea09a9328 100644 --- a/src/java.base/share/classes/java/lang/classfile/TypeAnnotation.java +++ b/src/java.base/share/classes/java/lang/classfile/TypeAnnotation.java @@ -25,10 +25,10 @@ package java.lang.classfile; -import java.util.List; - import java.lang.classfile.attribute.RuntimeInvisibleTypeAnnotationsAttribute; import java.lang.classfile.attribute.RuntimeVisibleTypeAnnotationsAttribute; +import java.util.List; + import jdk.internal.classfile.impl.TargetInfoImpl; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/TypeKind.java b/src/java.base/share/classes/java/lang/classfile/TypeKind.java index fdd8826f4eafd..bdbea7c8c54a3 100644 --- a/src/java.base/share/classes/java/lang/classfile/TypeKind.java +++ b/src/java.base/share/classes/java/lang/classfile/TypeKind.java @@ -29,6 +29,7 @@ import java.lang.constant.ClassDesc; import java.lang.constant.ConstantDescs; import java.lang.invoke.TypeDescriptor; + import jdk.internal.javac.PreviewFeature; import jdk.internal.vm.annotation.Stable; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/AnnotationDefaultAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/AnnotationDefaultAttribute.java index 018fcd65a34a9..4f147b0d63a47 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/AnnotationDefaultAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/AnnotationDefaultAttribute.java @@ -29,6 +29,7 @@ import java.lang.classfile.Attribute; import java.lang.classfile.MethodElement; import java.lang.classfile.MethodModel; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.javac.PreviewFeature; @@ -66,5 +67,4 @@ public sealed interface AnnotationDefaultAttribute static AnnotationDefaultAttribute of(AnnotationValue annotationDefault) { return new UnboundAttribute.UnboundAnnotationDefaultAttribute(annotationDefault); } - } diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/BootstrapMethodsAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/BootstrapMethodsAttribute.java index 7cc784af1f413..26ef1d3ddafc8 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/BootstrapMethodsAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/BootstrapMethodsAttribute.java @@ -25,11 +25,11 @@ package java.lang.classfile.attribute; -import java.util.List; - import java.lang.classfile.Attribute; import java.lang.classfile.BootstrapMethodEntry; import java.lang.classfile.constantpool.ConstantPool; +import java.util.List; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/CharacterRangeTableAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/CharacterRangeTableAttribute.java index 7a8aac6b91e1a..a4b79be62f057 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/CharacterRangeTableAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/CharacterRangeTableAttribute.java @@ -25,9 +25,9 @@ package java.lang.classfile.attribute; +import java.lang.classfile.Attribute; import java.util.List; -import java.lang.classfile.Attribute; import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/CodeAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/CodeAttribute.java index f0bab0fde110f..3342c2648ed93 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/CodeAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/CodeAttribute.java @@ -28,6 +28,7 @@ import java.lang.classfile.Attribute; import java.lang.classfile.CodeModel; import java.lang.classfile.Label; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/CompilationIDAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/CompilationIDAttribute.java index ab6ab43c5aed4..292b449c628f1 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/CompilationIDAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/CompilationIDAttribute.java @@ -28,6 +28,7 @@ import java.lang.classfile.Attribute; import java.lang.classfile.ClassElement; import java.lang.classfile.constantpool.Utf8Entry; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.UnboundAttribute; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/ConstantValueAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/ConstantValueAttribute.java index 390320c679c8a..cd87464855191 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/ConstantValueAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/ConstantValueAttribute.java @@ -24,10 +24,11 @@ */ package java.lang.classfile.attribute; -import java.lang.constant.ConstantDesc; import java.lang.classfile.Attribute; import java.lang.classfile.FieldElement; import java.lang.classfile.constantpool.ConstantValueEntry; +import java.lang.constant.ConstantDesc; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.UnboundAttribute; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/DeprecatedAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/DeprecatedAttribute.java index f65f01f4e2a88..47c85c4b6c1d6 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/DeprecatedAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/DeprecatedAttribute.java @@ -28,6 +28,7 @@ import java.lang.classfile.ClassElement; import java.lang.classfile.FieldElement; import java.lang.classfile.MethodElement; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/EnclosingMethodAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/EnclosingMethodAttribute.java index 2c91900850120..c760fdee04bbe 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/EnclosingMethodAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/EnclosingMethodAttribute.java @@ -24,15 +24,15 @@ */ package java.lang.classfile.attribute; -import java.lang.constant.ClassDesc; -import java.lang.constant.MethodTypeDesc; -import java.util.Optional; - import java.lang.classfile.Attribute; import java.lang.classfile.ClassElement; import java.lang.classfile.constantpool.ClassEntry; import java.lang.classfile.constantpool.NameAndTypeEntry; import java.lang.classfile.constantpool.Utf8Entry; +import java.lang.constant.ClassDesc; +import java.lang.constant.MethodTypeDesc; +import java.util.Optional; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.UnboundAttribute; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/ExceptionsAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/ExceptionsAttribute.java index e12b9eb9fc3c7..91f07d94de90e 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/ExceptionsAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/ExceptionsAttribute.java @@ -24,13 +24,13 @@ */ package java.lang.classfile.attribute; +import java.lang.classfile.Attribute; +import java.lang.classfile.MethodElement; +import java.lang.classfile.constantpool.ClassEntry; import java.lang.constant.ClassDesc; import java.util.Arrays; import java.util.List; -import java.lang.classfile.Attribute; -import java.lang.classfile.constantpool.ClassEntry; -import java.lang.classfile.MethodElement; import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.classfile.impl.Util; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/InnerClassInfo.java b/src/java.base/share/classes/java/lang/classfile/attribute/InnerClassInfo.java index d6eaee796bae2..fca8cce7faae2 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/InnerClassInfo.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/InnerClassInfo.java @@ -24,13 +24,12 @@ */ package java.lang.classfile.attribute; -import java.lang.constant.ClassDesc; -import java.util.Optional; -import java.util.Set; - import java.lang.classfile.constantpool.ClassEntry; import java.lang.classfile.constantpool.Utf8Entry; +import java.lang.constant.ClassDesc; import java.lang.reflect.AccessFlag; +import java.util.Optional; +import java.util.Set; import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.UnboundAttribute; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/InnerClassesAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/InnerClassesAttribute.java index 0746d20b5b823..3b5d63822c498 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/InnerClassesAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/InnerClassesAttribute.java @@ -25,10 +25,10 @@ package java.lang.classfile.attribute; -import java.util.List; - import java.lang.classfile.Attribute; import java.lang.classfile.ClassElement; +import java.util.List; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/LineNumberTableAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/LineNumberTableAttribute.java index a31f4919688b7..bb636a8113f73 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/LineNumberTableAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/LineNumberTableAttribute.java @@ -24,9 +24,9 @@ */ package java.lang.classfile.attribute; +import java.lang.classfile.Attribute; import java.util.List; -import java.lang.classfile.Attribute; import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableInfo.java b/src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableInfo.java index 0ef8542e05c55..177fc84248316 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableInfo.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableInfo.java @@ -24,8 +24,9 @@ */ package java.lang.classfile.attribute; -import java.lang.constant.ClassDesc; import java.lang.classfile.constantpool.Utf8Entry; +import java.lang.constant.ClassDesc; + import jdk.internal.classfile.impl.BoundLocalVariable; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.classfile.impl.Util; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableTableAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableTableAttribute.java index 745b6d8e8e23f..ad4e732073e35 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableTableAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableTableAttribute.java @@ -25,10 +25,10 @@ package java.lang.classfile.attribute; import java.lang.classfile.Attribute; +import java.util.List; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.UnboundAttribute; - -import java.util.List; import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableTypeInfo.java b/src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableTypeInfo.java index e72c5984a370c..6ba5b409b5b72 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableTypeInfo.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableTypeInfo.java @@ -25,6 +25,7 @@ package java.lang.classfile.attribute; import java.lang.classfile.constantpool.Utf8Entry; + import jdk.internal.classfile.impl.BoundLocalVariableType; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableTypeTableAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableTypeTableAttribute.java index c2475530e6c53..084b72d68381a 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableTypeTableAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableTypeTableAttribute.java @@ -26,10 +26,10 @@ package java.lang.classfile.attribute; import java.lang.classfile.Attribute; +import java.util.List; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.UnboundAttribute; - -import java.util.List; import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/MethodParameterInfo.java b/src/java.base/share/classes/java/lang/classfile/attribute/MethodParameterInfo.java index e42caa74be356..b0961bf147691 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/MethodParameterInfo.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/MethodParameterInfo.java @@ -24,12 +24,12 @@ */ package java.lang.classfile.attribute; +import java.lang.classfile.ClassFile; +import java.lang.classfile.constantpool.Utf8Entry; +import java.lang.reflect.AccessFlag; import java.util.Optional; import java.util.Set; -import java.lang.classfile.constantpool.Utf8Entry; -import java.lang.reflect.AccessFlag; -import java.lang.classfile.ClassFile; import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.classfile.impl.Util; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/MethodParametersAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/MethodParametersAttribute.java index 81530086cdf3b..43a43d25bb733 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/MethodParametersAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/MethodParametersAttribute.java @@ -25,10 +25,10 @@ package java.lang.classfile.attribute; -import java.util.List; - import java.lang.classfile.Attribute; import java.lang.classfile.MethodElement; +import java.util.List; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/ModuleAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/ModuleAttribute.java index ec258611c70a1..7091bbd5c4276 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/ModuleAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/ModuleAttribute.java @@ -24,24 +24,24 @@ */ package java.lang.classfile.attribute; -import java.lang.constant.ClassDesc; -import java.util.Collection; import java.lang.classfile.Attribute; import java.lang.classfile.ClassElement; import java.lang.classfile.constantpool.ClassEntry; import java.lang.classfile.constantpool.ModuleEntry; import java.lang.classfile.constantpool.Utf8Entry; -import jdk.internal.classfile.impl.BoundAttribute; -import jdk.internal.classfile.impl.UnboundAttribute; - +import java.lang.constant.ClassDesc; +import java.lang.constant.ModuleDesc; +import java.lang.constant.PackageDesc; +import java.lang.reflect.AccessFlag; +import java.util.Collection; import java.util.List; import java.util.Optional; import java.util.Set; import java.util.function.Consumer; -import java.lang.reflect.AccessFlag; -import java.lang.constant.ModuleDesc; -import java.lang.constant.PackageDesc; + +import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.ModuleAttributeBuilderImpl; +import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.classfile.impl.Util; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/ModuleExportInfo.java b/src/java.base/share/classes/java/lang/classfile/attribute/ModuleExportInfo.java index 88b446ab200ba..4a534894e9e16 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/ModuleExportInfo.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/ModuleExportInfo.java @@ -24,17 +24,16 @@ */ package java.lang.classfile.attribute; -import java.util.Collection; -import java.util.List; -import java.util.Set; - +import java.lang.classfile.ClassFile; import java.lang.classfile.constantpool.ModuleEntry; import java.lang.classfile.constantpool.PackageEntry; import java.lang.constant.ModuleDesc; import java.lang.constant.PackageDesc; import java.lang.reflect.AccessFlag; +import java.util.Collection; +import java.util.List; +import java.util.Set; -import java.lang.classfile.ClassFile; import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.classfile.impl.Util; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/ModuleHashInfo.java b/src/java.base/share/classes/java/lang/classfile/attribute/ModuleHashInfo.java index 88bb849db6fc2..0c85dd14125f9 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/ModuleHashInfo.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/ModuleHashInfo.java @@ -26,6 +26,7 @@ import java.lang.classfile.constantpool.ModuleEntry; import java.lang.constant.ModuleDesc; + import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/ModuleHashesAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/ModuleHashesAttribute.java index d0ff0f8a1076b..0d2eb7014841c 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/ModuleHashesAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/ModuleHashesAttribute.java @@ -27,10 +27,9 @@ import java.lang.classfile.Attribute; import java.lang.classfile.ClassElement; - +import java.lang.classfile.constantpool.Utf8Entry; import java.util.List; -import java.lang.classfile.constantpool.Utf8Entry; import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.UnboundAttribute; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/ModuleMainClassAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/ModuleMainClassAttribute.java index 91fe3c8f2d79c..67d6e5cc15c71 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/ModuleMainClassAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/ModuleMainClassAttribute.java @@ -25,10 +25,11 @@ package java.lang.classfile.attribute; -import java.lang.constant.ClassDesc; import java.lang.classfile.Attribute; import java.lang.classfile.ClassElement; import java.lang.classfile.constantpool.ClassEntry; +import java.lang.constant.ClassDesc; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.UnboundAttribute; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/ModuleOpenInfo.java b/src/java.base/share/classes/java/lang/classfile/attribute/ModuleOpenInfo.java index 0fac2def865f6..7c5fe948d7807 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/ModuleOpenInfo.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/ModuleOpenInfo.java @@ -24,15 +24,14 @@ */ package java.lang.classfile.attribute; -import java.util.Collection; -import java.util.List; -import java.util.Set; - import java.lang.classfile.constantpool.ModuleEntry; import java.lang.classfile.constantpool.PackageEntry; import java.lang.constant.ModuleDesc; import java.lang.constant.PackageDesc; import java.lang.reflect.AccessFlag; +import java.util.Collection; +import java.util.List; +import java.util.Set; import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.UnboundAttribute; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/ModulePackagesAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/ModulePackagesAttribute.java index 30bc0e9827b5f..f2b34ad107dbe 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/ModulePackagesAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/ModulePackagesAttribute.java @@ -26,13 +26,12 @@ import java.lang.classfile.Attribute; import java.lang.classfile.ClassElement; -import jdk.internal.classfile.impl.BoundAttribute; - +import java.lang.classfile.constantpool.PackageEntry; +import java.lang.constant.PackageDesc; import java.util.Arrays; import java.util.List; -import java.lang.classfile.constantpool.PackageEntry; -import java.lang.constant.PackageDesc; +import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/ModuleProvideInfo.java b/src/java.base/share/classes/java/lang/classfile/attribute/ModuleProvideInfo.java index eabdd735073e7..266c73de04f2b 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/ModuleProvideInfo.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/ModuleProvideInfo.java @@ -24,11 +24,11 @@ */ package java.lang.classfile.attribute; +import java.lang.classfile.constantpool.ClassEntry; import java.lang.constant.ClassDesc; import java.util.Arrays; import java.util.List; -import java.lang.classfile.constantpool.ClassEntry; import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.classfile.impl.Util; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/ModuleRequireInfo.java b/src/java.base/share/classes/java/lang/classfile/attribute/ModuleRequireInfo.java index 9220c9a6ce967..d072d0fead885 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/ModuleRequireInfo.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/ModuleRequireInfo.java @@ -24,14 +24,14 @@ */ package java.lang.classfile.attribute; +import java.lang.classfile.constantpool.ModuleEntry; +import java.lang.classfile.constantpool.Utf8Entry; +import java.lang.constant.ModuleDesc; +import java.lang.reflect.AccessFlag; import java.util.Collection; import java.util.Optional; import java.util.Set; -import java.lang.classfile.constantpool.ModuleEntry; -import java.lang.classfile.constantpool.Utf8Entry; -import java.lang.reflect.AccessFlag; -import java.lang.constant.ModuleDesc; import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.classfile.impl.Util; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/ModuleResolutionAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/ModuleResolutionAttribute.java index fcae1e8aac76c..a6b17fa404152 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/ModuleResolutionAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/ModuleResolutionAttribute.java @@ -27,6 +27,7 @@ import java.lang.classfile.Attribute; import java.lang.classfile.ClassElement; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/ModuleTargetAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/ModuleTargetAttribute.java index 7086336547787..226412eccf34c 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/ModuleTargetAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/ModuleTargetAttribute.java @@ -28,6 +28,7 @@ import java.lang.classfile.Attribute; import java.lang.classfile.ClassElement; import java.lang.classfile.constantpool.Utf8Entry; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.UnboundAttribute; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/NestHostAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/NestHostAttribute.java index 0961601e5d46d..6b69f9cbe080c 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/NestHostAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/NestHostAttribute.java @@ -25,10 +25,11 @@ package java.lang.classfile.attribute; -import java.lang.constant.ClassDesc; import java.lang.classfile.Attribute; import java.lang.classfile.ClassElement; import java.lang.classfile.constantpool.ClassEntry; +import java.lang.constant.ClassDesc; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.UnboundAttribute; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/NestMembersAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/NestMembersAttribute.java index f184df7fff509..8826b4953a598 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/NestMembersAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/NestMembersAttribute.java @@ -24,13 +24,13 @@ */ package java.lang.classfile.attribute; +import java.lang.classfile.Attribute; +import java.lang.classfile.ClassElement; +import java.lang.classfile.constantpool.ClassEntry; import java.lang.constant.ClassDesc; import java.util.Arrays; import java.util.List; -import java.lang.classfile.Attribute; -import java.lang.classfile.ClassElement; -import java.lang.classfile.constantpool.ClassEntry; import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.classfile.impl.Util; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/PermittedSubclassesAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/PermittedSubclassesAttribute.java index 2d86d4d26e0a0..1242bc6e04543 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/PermittedSubclassesAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/PermittedSubclassesAttribute.java @@ -24,13 +24,13 @@ */ package java.lang.classfile.attribute; +import java.lang.classfile.Attribute; +import java.lang.classfile.ClassElement; +import java.lang.classfile.constantpool.ClassEntry; import java.lang.constant.ClassDesc; import java.util.Arrays; import java.util.List; -import java.lang.classfile.Attribute; -import java.lang.classfile.ClassElement; -import java.lang.classfile.constantpool.ClassEntry; import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.classfile.impl.Util; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/RecordAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/RecordAttribute.java index f79538a135cf9..7ef3b6f41b665 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/RecordAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/RecordAttribute.java @@ -25,10 +25,10 @@ package java.lang.classfile.attribute; -import java.util.List; - import java.lang.classfile.Attribute; import java.lang.classfile.ClassElement; +import java.util.List; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/RecordComponentInfo.java b/src/java.base/share/classes/java/lang/classfile/attribute/RecordComponentInfo.java index 5a4c0d87b839a..ef6385653ed53 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/RecordComponentInfo.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/RecordComponentInfo.java @@ -24,12 +24,12 @@ */ package java.lang.classfile.attribute; -import java.lang.constant.ClassDesc; -import java.util.List; - import java.lang.classfile.Attribute; import java.lang.classfile.AttributedElement; import java.lang.classfile.constantpool.Utf8Entry; +import java.lang.constant.ClassDesc; +import java.util.List; + import jdk.internal.classfile.impl.BoundRecordComponentInfo; import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.UnboundAttribute; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/RuntimeInvisibleAnnotationsAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/RuntimeInvisibleAnnotationsAttribute.java index b467e8504fe06..05635af4beb4f 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/RuntimeInvisibleAnnotationsAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/RuntimeInvisibleAnnotationsAttribute.java @@ -25,11 +25,15 @@ package java.lang.classfile.attribute; -import java.lang.classfile.*; +import java.lang.classfile.Annotation; +import java.lang.classfile.Attribute; +import java.lang.classfile.ClassElement; +import java.lang.classfile.FieldElement; +import java.lang.classfile.MethodElement; +import java.util.List; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.UnboundAttribute; - -import java.util.List; import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/RuntimeInvisibleParameterAnnotationsAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/RuntimeInvisibleParameterAnnotationsAttribute.java index af495788afa45..edb82c49900ff 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/RuntimeInvisibleParameterAnnotationsAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/RuntimeInvisibleParameterAnnotationsAttribute.java @@ -25,12 +25,12 @@ package java.lang.classfile.attribute; -import java.util.List; - import java.lang.classfile.Annotation; import java.lang.classfile.Attribute; import java.lang.classfile.MethodElement; import java.lang.classfile.MethodModel; +import java.util.List; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/RuntimeInvisibleTypeAnnotationsAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/RuntimeInvisibleTypeAnnotationsAttribute.java index 46dd2167541d9..df3a035d62099 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/RuntimeInvisibleTypeAnnotationsAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/RuntimeInvisibleTypeAnnotationsAttribute.java @@ -25,14 +25,14 @@ package java.lang.classfile.attribute; -import java.util.List; - import java.lang.classfile.Attribute; import java.lang.classfile.ClassElement; import java.lang.classfile.CodeElement; import java.lang.classfile.FieldElement; import java.lang.classfile.MethodElement; import java.lang.classfile.TypeAnnotation; +import java.util.List; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/RuntimeVisibleAnnotationsAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/RuntimeVisibleAnnotationsAttribute.java index 4454dac62a95f..6909518881807 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/RuntimeVisibleAnnotationsAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/RuntimeVisibleAnnotationsAttribute.java @@ -25,11 +25,15 @@ package java.lang.classfile.attribute; -import java.lang.classfile.*; +import java.lang.classfile.Annotation; +import java.lang.classfile.Attribute; +import java.lang.classfile.ClassElement; +import java.lang.classfile.FieldElement; +import java.lang.classfile.MethodElement; +import java.util.List; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.UnboundAttribute; - -import java.util.List; import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/RuntimeVisibleParameterAnnotationsAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/RuntimeVisibleParameterAnnotationsAttribute.java index 59f648199ca49..ef58d21f14ac4 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/RuntimeVisibleParameterAnnotationsAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/RuntimeVisibleParameterAnnotationsAttribute.java @@ -25,12 +25,12 @@ package java.lang.classfile.attribute; -import java.util.List; - import java.lang.classfile.Annotation; import java.lang.classfile.Attribute; import java.lang.classfile.MethodElement; import java.lang.classfile.MethodModel; +import java.util.List; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/RuntimeVisibleTypeAnnotationsAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/RuntimeVisibleTypeAnnotationsAttribute.java index 8bdf322803d83..20dc89d700cdd 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/RuntimeVisibleTypeAnnotationsAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/RuntimeVisibleTypeAnnotationsAttribute.java @@ -25,14 +25,14 @@ package java.lang.classfile.attribute; -import java.util.List; - import java.lang.classfile.Attribute; import java.lang.classfile.ClassElement; import java.lang.classfile.CodeElement; import java.lang.classfile.FieldElement; import java.lang.classfile.MethodElement; import java.lang.classfile.TypeAnnotation; +import java.util.List; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/SignatureAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/SignatureAttribute.java index 783b068c4e64c..ca4cc62852a5f 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/SignatureAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/SignatureAttribute.java @@ -25,15 +25,10 @@ package java.lang.classfile.attribute; -import java.lang.classfile.Attribute; -import java.lang.classfile.ClassElement; -import java.lang.classfile.ClassSignature; -import java.lang.classfile.FieldElement; -import java.lang.classfile.MethodElement; +import java.lang.classfile.*; import java.lang.classfile.constantpool.Utf8Entry; + import jdk.internal.classfile.impl.BoundAttribute; -import java.lang.classfile.MethodSignature; -import java.lang.classfile.Signature; import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/SourceDebugExtensionAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/SourceDebugExtensionAttribute.java index 719fb2d1171c1..e181b7fb14a2e 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/SourceDebugExtensionAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/SourceDebugExtensionAttribute.java @@ -27,6 +27,7 @@ import java.lang.classfile.Attribute; import java.lang.classfile.ClassElement; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/SourceFileAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/SourceFileAttribute.java index abfa4eb05ffc9..d6c40058e7b74 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/SourceFileAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/SourceFileAttribute.java @@ -29,6 +29,7 @@ import java.lang.classfile.ClassElement; import java.lang.classfile.ClassModel; import java.lang.classfile.constantpool.Utf8Entry; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.UnboundAttribute; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/SourceIDAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/SourceIDAttribute.java index a99a0bf49678c..69ff3bf57fd44 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/SourceIDAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/SourceIDAttribute.java @@ -29,6 +29,7 @@ import java.lang.classfile.ClassElement; import java.lang.classfile.ClassModel; import java.lang.classfile.constantpool.Utf8Entry; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.UnboundAttribute; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/StackMapFrameInfo.java b/src/java.base/share/classes/java/lang/classfile/attribute/StackMapFrameInfo.java index 3415c89174ae9..d041a73c58a1c 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/StackMapFrameInfo.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/StackMapFrameInfo.java @@ -25,11 +25,11 @@ package java.lang.classfile.attribute; +import java.lang.classfile.Label; +import java.lang.classfile.constantpool.ClassEntry; import java.lang.constant.ClassDesc; import java.util.List; -import java.lang.classfile.Label; -import java.lang.classfile.constantpool.ClassEntry; import jdk.internal.classfile.impl.StackMapDecoder; import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/StackMapTableAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/StackMapTableAttribute.java index 74dd567060eab..a8aef4795d78d 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/StackMapTableAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/StackMapTableAttribute.java @@ -25,10 +25,10 @@ package java.lang.classfile.attribute; -import java.util.List; - import java.lang.classfile.Attribute; import java.lang.classfile.CodeElement; +import java.util.List; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/SyntheticAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/SyntheticAttribute.java index d1b7b8f0384dc..e5b5da7fbfe2e 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/SyntheticAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/SyntheticAttribute.java @@ -29,6 +29,7 @@ import java.lang.classfile.ClassElement; import java.lang.classfile.FieldElement; import java.lang.classfile.MethodElement; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.UnboundAttribute; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/attribute/UnknownAttribute.java b/src/java.base/share/classes/java/lang/classfile/attribute/UnknownAttribute.java index 4e66836fbdce1..5c1369e13080f 100644 --- a/src/java.base/share/classes/java/lang/classfile/attribute/UnknownAttribute.java +++ b/src/java.base/share/classes/java/lang/classfile/attribute/UnknownAttribute.java @@ -29,6 +29,7 @@ import java.lang.classfile.ClassElement; import java.lang.classfile.FieldElement; import java.lang.classfile.MethodElement; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/components/ClassPrinter.java b/src/java.base/share/classes/java/lang/classfile/components/ClassPrinter.java index c2e93a955ed45..85768cbe6a457 100644 --- a/src/java.base/share/classes/java/lang/classfile/components/ClassPrinter.java +++ b/src/java.base/share/classes/java/lang/classfile/components/ClassPrinter.java @@ -24,16 +24,16 @@ */ package java.lang.classfile.components; +import java.lang.classfile.ClassModel; +import java.lang.classfile.CodeModel; +import java.lang.classfile.CompoundElement; +import java.lang.classfile.FieldModel; +import java.lang.classfile.MethodModel; import java.lang.constant.ConstantDesc; import java.util.List; import java.util.Map; import java.util.function.Consumer; import java.util.stream.Stream; -import java.lang.classfile.ClassModel; -import java.lang.classfile.FieldModel; -import java.lang.classfile.MethodModel; -import java.lang.classfile.CodeModel; -import java.lang.classfile.CompoundElement; import jdk.internal.classfile.impl.ClassPrinterImpl; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/components/ClassRemapper.java b/src/java.base/share/classes/java/lang/classfile/components/ClassRemapper.java index bcda36355870a..4f7bd3199d59d 100644 --- a/src/java.base/share/classes/java/lang/classfile/components/ClassRemapper.java +++ b/src/java.base/share/classes/java/lang/classfile/components/ClassRemapper.java @@ -24,15 +24,16 @@ */ package java.lang.classfile.components; -import java.lang.constant.ClassDesc; -import java.util.Map; -import java.util.function.Function; +import java.lang.classfile.ClassFile; import java.lang.classfile.ClassModel; import java.lang.classfile.ClassTransform; -import java.lang.classfile.ClassFile; import java.lang.classfile.CodeTransform; import java.lang.classfile.FieldTransform; import java.lang.classfile.MethodTransform; +import java.lang.constant.ClassDesc; +import java.util.Map; +import java.util.function.Function; + import jdk.internal.classfile.impl.ClassRemapperImpl; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/components/CodeLocalsShifter.java b/src/java.base/share/classes/java/lang/classfile/components/CodeLocalsShifter.java index fa75e9f002b5e..4983872246102 100644 --- a/src/java.base/share/classes/java/lang/classfile/components/CodeLocalsShifter.java +++ b/src/java.base/share/classes/java/lang/classfile/components/CodeLocalsShifter.java @@ -24,11 +24,12 @@ */ package java.lang.classfile.components; -import java.lang.constant.MethodTypeDesc; -import java.lang.reflect.AccessFlag; import java.lang.classfile.AccessFlags; import java.lang.classfile.CodeTransform; import java.lang.classfile.TypeKind; +import java.lang.constant.MethodTypeDesc; +import java.lang.reflect.AccessFlag; + import jdk.internal.classfile.impl.CodeLocalsShifterImpl; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/components/CodeRelabeler.java b/src/java.base/share/classes/java/lang/classfile/components/CodeRelabeler.java index 6ec3f9f792b72..247d712e4f382 100644 --- a/src/java.base/share/classes/java/lang/classfile/components/CodeRelabeler.java +++ b/src/java.base/share/classes/java/lang/classfile/components/CodeRelabeler.java @@ -24,12 +24,13 @@ */ package java.lang.classfile.components; -import java.util.IdentityHashMap; -import java.util.Map; -import java.util.function.BiFunction; import java.lang.classfile.CodeBuilder; import java.lang.classfile.CodeTransform; import java.lang.classfile.Label; +import java.util.IdentityHashMap; +import java.util.Map; +import java.util.function.BiFunction; + import jdk.internal.classfile.impl.CodeRelabelerImpl; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/components/CodeStackTracker.java b/src/java.base/share/classes/java/lang/classfile/components/CodeStackTracker.java index 1b711cfad0ec3..1ee0b0948e112 100644 --- a/src/java.base/share/classes/java/lang/classfile/components/CodeStackTracker.java +++ b/src/java.base/share/classes/java/lang/classfile/components/CodeStackTracker.java @@ -24,11 +24,12 @@ */ package java.lang.classfile.components; -import java.util.Collection; -import java.util.Optional; import java.lang.classfile.CodeTransform; import java.lang.classfile.Label; import java.lang.classfile.TypeKind; +import java.util.Collection; +import java.util.Optional; + import jdk.internal.classfile.impl.CodeStackTrackerImpl; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/components/snippet-files/PackageSnippets.java b/src/java.base/share/classes/java/lang/classfile/components/snippet-files/PackageSnippets.java index 2e7fb121a373b..87c2146a7acae 100644 --- a/src/java.base/share/classes/java/lang/classfile/components/snippet-files/PackageSnippets.java +++ b/src/java.base/share/classes/java/lang/classfile/components/snippet-files/PackageSnippets.java @@ -24,32 +24,22 @@ */ package java.lang.classfile.components.snippets; +import java.lang.classfile.*; +import java.lang.classfile.components.ClassPrinter; +import java.lang.classfile.components.ClassRemapper; +import java.lang.classfile.components.CodeLocalsShifter; +import java.lang.classfile.components.CodeRelabeler; +import java.lang.classfile.instruction.InvokeInstruction; +import java.lang.classfile.instruction.ReturnInstruction; +import java.lang.classfile.instruction.StoreInstruction; import java.lang.constant.ClassDesc; import java.lang.constant.ConstantDesc; - import java.lang.constant.ConstantDescs; import java.lang.reflect.AccessFlag; import java.util.ArrayDeque; import java.util.Map; import java.util.function.Predicate; import java.util.stream.Collectors; -import java.lang.classfile.ClassFile; -import java.lang.classfile.ClassModel; -import java.lang.classfile.ClassTransform; -import java.lang.classfile.CodeModel; -import java.lang.classfile.CodeTransform; -import java.lang.classfile.FieldModel; -import java.lang.classfile.MethodModel; -import java.lang.classfile.TypeKind; -import java.lang.classfile.instruction.InvokeInstruction; - -import java.lang.classfile.MethodTransform; -import java.lang.classfile.components.ClassPrinter; -import java.lang.classfile.components.ClassRemapper; -import java.lang.classfile.components.CodeLocalsShifter; -import java.lang.classfile.components.CodeRelabeler; -import java.lang.classfile.instruction.ReturnInstruction; -import java.lang.classfile.instruction.StoreInstruction; class PackageSnippets { diff --git a/src/java.base/share/classes/java/lang/classfile/constantpool/AnnotationConstantValueEntry.java b/src/java.base/share/classes/java/lang/classfile/constantpool/AnnotationConstantValueEntry.java index d405f68570ebe..6365fc3636a40 100644 --- a/src/java.base/share/classes/java/lang/classfile/constantpool/AnnotationConstantValueEntry.java +++ b/src/java.base/share/classes/java/lang/classfile/constantpool/AnnotationConstantValueEntry.java @@ -26,6 +26,7 @@ import java.lang.classfile.AnnotationValue; import java.lang.constant.ConstantDesc; + import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/constantpool/ClassEntry.java b/src/java.base/share/classes/java/lang/classfile/constantpool/ClassEntry.java index db2135c84f5d9..9e5f1f5204927 100644 --- a/src/java.base/share/classes/java/lang/classfile/constantpool/ClassEntry.java +++ b/src/java.base/share/classes/java/lang/classfile/constantpool/ClassEntry.java @@ -26,6 +26,7 @@ import java.lang.constant.ClassDesc; import java.lang.constant.ConstantDesc; + import jdk.internal.classfile.impl.AbstractPoolEntry; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/constantpool/ConstantDynamicEntry.java b/src/java.base/share/classes/java/lang/classfile/constantpool/ConstantDynamicEntry.java index 507ff906274cb..7c55a09f3f4c8 100644 --- a/src/java.base/share/classes/java/lang/classfile/constantpool/ConstantDynamicEntry.java +++ b/src/java.base/share/classes/java/lang/classfile/constantpool/ConstantDynamicEntry.java @@ -25,13 +25,12 @@ package java.lang.classfile.constantpool; import java.lang.classfile.TypeKind; -import jdk.internal.classfile.impl.Util; - import java.lang.constant.ClassDesc; import java.lang.constant.ConstantDesc; import java.lang.constant.DynamicConstantDesc; import jdk.internal.classfile.impl.AbstractPoolEntry; +import jdk.internal.classfile.impl.Util; import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/constantpool/ConstantPool.java b/src/java.base/share/classes/java/lang/classfile/constantpool/ConstantPool.java index ef6f75955b29e..0225f6ec77d8c 100644 --- a/src/java.base/share/classes/java/lang/classfile/constantpool/ConstantPool.java +++ b/src/java.base/share/classes/java/lang/classfile/constantpool/ConstantPool.java @@ -25,10 +25,11 @@ package java.lang.classfile.constantpool; -import java.util.Iterator; -import java.util.NoSuchElementException; import java.lang.classfile.BootstrapMethodEntry; import java.lang.classfile.ClassReader; +import java.util.Iterator; +import java.util.NoSuchElementException; + import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/constantpool/ConstantPoolBuilder.java b/src/java.base/share/classes/java/lang/classfile/constantpool/ConstantPoolBuilder.java index 12c9789133bb4..0ce4a6868c86a 100644 --- a/src/java.base/share/classes/java/lang/classfile/constantpool/ConstantPoolBuilder.java +++ b/src/java.base/share/classes/java/lang/classfile/constantpool/ConstantPoolBuilder.java @@ -24,26 +24,19 @@ */ package java.lang.classfile.constantpool; -import java.lang.constant.ClassDesc; -import java.lang.constant.ConstantDesc; -import java.lang.constant.DirectMethodHandleDesc; -import java.lang.constant.DynamicCallSiteDesc; -import java.lang.constant.DynamicConstantDesc; -import java.lang.constant.MethodTypeDesc; -import java.util.List; - import java.lang.classfile.BootstrapMethodEntry; import java.lang.classfile.ClassBuilder; import java.lang.classfile.ClassModel; -import jdk.internal.classfile.impl.ClassReaderImpl; -import java.lang.constant.ModuleDesc; -import java.lang.constant.PackageDesc; +import java.lang.constant.*; +import java.util.List; + import jdk.internal.classfile.impl.AbstractPoolEntry.ClassEntryImpl; -import jdk.internal.classfile.impl.AbstractPoolEntry.NameAndTypeEntryImpl; +import jdk.internal.classfile.impl.ClassReaderImpl; import jdk.internal.classfile.impl.SplitConstantPool; import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.Util; import jdk.internal.javac.PreviewFeature; + import static java.util.Objects.requireNonNull; /** diff --git a/src/java.base/share/classes/java/lang/classfile/constantpool/ConstantValueEntry.java b/src/java.base/share/classes/java/lang/classfile/constantpool/ConstantValueEntry.java index 720e3fd5d5cc4..924d0aca71080 100644 --- a/src/java.base/share/classes/java/lang/classfile/constantpool/ConstantValueEntry.java +++ b/src/java.base/share/classes/java/lang/classfile/constantpool/ConstantValueEntry.java @@ -26,6 +26,7 @@ import java.lang.classfile.Attributes; import java.lang.constant.ConstantDesc; + import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/constantpool/DoubleEntry.java b/src/java.base/share/classes/java/lang/classfile/constantpool/DoubleEntry.java index 391dcf021eb4b..8dd4ba1ffd934 100644 --- a/src/java.base/share/classes/java/lang/classfile/constantpool/DoubleEntry.java +++ b/src/java.base/share/classes/java/lang/classfile/constantpool/DoubleEntry.java @@ -25,6 +25,7 @@ package java.lang.classfile.constantpool; import java.lang.classfile.TypeKind; + import jdk.internal.classfile.impl.AbstractPoolEntry; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/constantpool/DynamicConstantPoolEntry.java b/src/java.base/share/classes/java/lang/classfile/constantpool/DynamicConstantPoolEntry.java index 41ed4b298047f..ac7630494100c 100644 --- a/src/java.base/share/classes/java/lang/classfile/constantpool/DynamicConstantPoolEntry.java +++ b/src/java.base/share/classes/java/lang/classfile/constantpool/DynamicConstantPoolEntry.java @@ -25,6 +25,7 @@ package java.lang.classfile.constantpool; import java.lang.classfile.BootstrapMethodEntry; + import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/constantpool/FieldRefEntry.java b/src/java.base/share/classes/java/lang/classfile/constantpool/FieldRefEntry.java index 75533770b3524..ab122f410b699 100644 --- a/src/java.base/share/classes/java/lang/classfile/constantpool/FieldRefEntry.java +++ b/src/java.base/share/classes/java/lang/classfile/constantpool/FieldRefEntry.java @@ -24,10 +24,11 @@ */ package java.lang.classfile.constantpool; +import java.lang.constant.ClassDesc; + import jdk.internal.classfile.impl.AbstractPoolEntry; import jdk.internal.classfile.impl.Util; import jdk.internal.javac.PreviewFeature; -import java.lang.constant.ClassDesc; /** * Models a {@code CONSTANT_Fieldref_info} constant in the constant pool of a diff --git a/src/java.base/share/classes/java/lang/classfile/constantpool/FloatEntry.java b/src/java.base/share/classes/java/lang/classfile/constantpool/FloatEntry.java index d84cc903ea5ea..7a91dd111530f 100644 --- a/src/java.base/share/classes/java/lang/classfile/constantpool/FloatEntry.java +++ b/src/java.base/share/classes/java/lang/classfile/constantpool/FloatEntry.java @@ -25,6 +25,7 @@ package java.lang.classfile.constantpool; import java.lang.classfile.TypeKind; + import jdk.internal.classfile.impl.AbstractPoolEntry; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/constantpool/IntegerEntry.java b/src/java.base/share/classes/java/lang/classfile/constantpool/IntegerEntry.java index 807ce188a6acb..7cd21e37db824 100644 --- a/src/java.base/share/classes/java/lang/classfile/constantpool/IntegerEntry.java +++ b/src/java.base/share/classes/java/lang/classfile/constantpool/IntegerEntry.java @@ -25,6 +25,7 @@ package java.lang.classfile.constantpool; import java.lang.classfile.TypeKind; + import jdk.internal.classfile.impl.AbstractPoolEntry; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/constantpool/InterfaceMethodRefEntry.java b/src/java.base/share/classes/java/lang/classfile/constantpool/InterfaceMethodRefEntry.java index b97defdc1e148..8f15053e5b705 100644 --- a/src/java.base/share/classes/java/lang/classfile/constantpool/InterfaceMethodRefEntry.java +++ b/src/java.base/share/classes/java/lang/classfile/constantpool/InterfaceMethodRefEntry.java @@ -24,10 +24,11 @@ */ package java.lang.classfile.constantpool; +import java.lang.constant.MethodTypeDesc; + import jdk.internal.classfile.impl.AbstractPoolEntry; import jdk.internal.classfile.impl.Util; import jdk.internal.javac.PreviewFeature; -import java.lang.constant.MethodTypeDesc; /** * Models a {@code CONSTANT_InterfaceMethodRef_info} constant in the constant pool of a diff --git a/src/java.base/share/classes/java/lang/classfile/constantpool/LoadableConstantEntry.java b/src/java.base/share/classes/java/lang/classfile/constantpool/LoadableConstantEntry.java index 6ae8e68787eaf..c963e2425eac4 100644 --- a/src/java.base/share/classes/java/lang/classfile/constantpool/LoadableConstantEntry.java +++ b/src/java.base/share/classes/java/lang/classfile/constantpool/LoadableConstantEntry.java @@ -24,8 +24,9 @@ */ package java.lang.classfile.constantpool; -import java.lang.constant.ConstantDesc; import java.lang.classfile.TypeKind; +import java.lang.constant.ConstantDesc; + import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/constantpool/LongEntry.java b/src/java.base/share/classes/java/lang/classfile/constantpool/LongEntry.java index 975df03f04343..75e02b1944192 100644 --- a/src/java.base/share/classes/java/lang/classfile/constantpool/LongEntry.java +++ b/src/java.base/share/classes/java/lang/classfile/constantpool/LongEntry.java @@ -25,6 +25,7 @@ package java.lang.classfile.constantpool; import java.lang.classfile.TypeKind; + import jdk.internal.classfile.impl.AbstractPoolEntry; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/constantpool/MethodRefEntry.java b/src/java.base/share/classes/java/lang/classfile/constantpool/MethodRefEntry.java index 3ff8dfdc0f462..ff3f5e5220ccd 100644 --- a/src/java.base/share/classes/java/lang/classfile/constantpool/MethodRefEntry.java +++ b/src/java.base/share/classes/java/lang/classfile/constantpool/MethodRefEntry.java @@ -24,10 +24,11 @@ */ package java.lang.classfile.constantpool; +import java.lang.constant.MethodTypeDesc; + import jdk.internal.classfile.impl.AbstractPoolEntry; import jdk.internal.classfile.impl.Util; import jdk.internal.javac.PreviewFeature; -import java.lang.constant.MethodTypeDesc; /** * Models a {@code CONSTANT_MethodRef_info} constant in the constant pool of a diff --git a/src/java.base/share/classes/java/lang/classfile/constantpool/ModuleEntry.java b/src/java.base/share/classes/java/lang/classfile/constantpool/ModuleEntry.java index cbddf6b90e3a4..db7aa1f76fe1a 100644 --- a/src/java.base/share/classes/java/lang/classfile/constantpool/ModuleEntry.java +++ b/src/java.base/share/classes/java/lang/classfile/constantpool/ModuleEntry.java @@ -24,8 +24,9 @@ */ package java.lang.classfile.constantpool; -import jdk.internal.classfile.impl.AbstractPoolEntry; import java.lang.constant.ModuleDesc; + +import jdk.internal.classfile.impl.AbstractPoolEntry; import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/constantpool/PackageEntry.java b/src/java.base/share/classes/java/lang/classfile/constantpool/PackageEntry.java index 1817aa647d4aa..5725d411028c1 100644 --- a/src/java.base/share/classes/java/lang/classfile/constantpool/PackageEntry.java +++ b/src/java.base/share/classes/java/lang/classfile/constantpool/PackageEntry.java @@ -24,8 +24,9 @@ */ package java.lang.classfile.constantpool; -import jdk.internal.classfile.impl.AbstractPoolEntry; import java.lang.constant.PackageDesc; + +import jdk.internal.classfile.impl.AbstractPoolEntry; import jdk.internal.javac.PreviewFeature; /** diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/ArrayLoadInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/ArrayLoadInstruction.java index e773d2da2ccae..b66627ef212a6 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/ArrayLoadInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/ArrayLoadInstruction.java @@ -29,6 +29,7 @@ import java.lang.classfile.Instruction; import java.lang.classfile.Opcode; import java.lang.classfile.TypeKind; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.classfile.impl.Util; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/ArrayStoreInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/ArrayStoreInstruction.java index 9b9ec6018d1f2..f009cfca36129 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/ArrayStoreInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/ArrayStoreInstruction.java @@ -29,6 +29,7 @@ import java.lang.classfile.Instruction; import java.lang.classfile.Opcode; import java.lang.classfile.TypeKind; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.classfile.impl.Util; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/BranchInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/BranchInstruction.java index 6ee47b7fbc2c1..6b2142fa0e101 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/BranchInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/BranchInstruction.java @@ -29,6 +29,7 @@ import java.lang.classfile.Instruction; import java.lang.classfile.Label; import java.lang.classfile.Opcode; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.classfile.impl.Util; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/CharacterRange.java b/src/java.base/share/classes/java/lang/classfile/instruction/CharacterRange.java index fca3279cd2228..3d04473ab3750 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/CharacterRange.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/CharacterRange.java @@ -31,6 +31,7 @@ import java.lang.classfile.PseudoInstruction; import java.lang.classfile.attribute.CharacterRangeInfo; import java.lang.classfile.attribute.CharacterRangeTableAttribute; + import jdk.internal.classfile.impl.AbstractPseudoInstruction; import jdk.internal.classfile.impl.BoundCharacterRange; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/ConstantInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/ConstantInstruction.java index 6f07805a1e81c..c41793c614e7f 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/ConstantInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/ConstantInstruction.java @@ -24,14 +24,14 @@ */ package java.lang.classfile.instruction; -import java.lang.constant.ConstantDesc; - import java.lang.classfile.CodeElement; import java.lang.classfile.CodeModel; import java.lang.classfile.Instruction; import java.lang.classfile.Opcode; import java.lang.classfile.TypeKind; import java.lang.classfile.constantpool.LoadableConstantEntry; +import java.lang.constant.ConstantDesc; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.classfile.impl.BytecodeHelpers; import jdk.internal.classfile.impl.Util; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/ConvertInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/ConvertInstruction.java index daa7e60248470..ec48c2f46639f 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/ConvertInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/ConvertInstruction.java @@ -29,6 +29,7 @@ import java.lang.classfile.Instruction; import java.lang.classfile.Opcode; import java.lang.classfile.TypeKind; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.classfile.impl.BytecodeHelpers; import jdk.internal.classfile.impl.Util; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/DiscontinuedInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/DiscontinuedInstruction.java index fc87dd274d36e..0e4718a1c77c8 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/DiscontinuedInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/DiscontinuedInstruction.java @@ -29,6 +29,7 @@ import java.lang.classfile.Instruction; import java.lang.classfile.Label; import java.lang.classfile.Opcode; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.classfile.impl.BytecodeHelpers; import jdk.internal.classfile.impl.Util; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/ExceptionCatch.java b/src/java.base/share/classes/java/lang/classfile/instruction/ExceptionCatch.java index 9ed851fff88ed..22b6f632abcf3 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/ExceptionCatch.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/ExceptionCatch.java @@ -24,13 +24,13 @@ */ package java.lang.classfile.instruction; -import java.util.Optional; - import java.lang.classfile.CodeElement; import java.lang.classfile.CodeModel; -import java.lang.classfile.constantpool.ClassEntry; import java.lang.classfile.Label; import java.lang.classfile.PseudoInstruction; +import java.lang.classfile.constantpool.ClassEntry; +import java.util.Optional; + import jdk.internal.classfile.impl.AbstractPseudoInstruction; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/FieldInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/FieldInstruction.java index 43dbcccf75eaa..c8a82fe7dfa89 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/FieldInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/FieldInstruction.java @@ -24,16 +24,16 @@ */ package java.lang.classfile.instruction; -import java.lang.constant.ClassDesc; - import java.lang.classfile.CodeElement; import java.lang.classfile.CodeModel; -import java.lang.classfile.constantpool.ClassEntry; import java.lang.classfile.Instruction; import java.lang.classfile.Opcode; +import java.lang.classfile.constantpool.ClassEntry; import java.lang.classfile.constantpool.FieldRefEntry; import java.lang.classfile.constantpool.NameAndTypeEntry; import java.lang.classfile.constantpool.Utf8Entry; +import java.lang.constant.ClassDesc; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.Util; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/IncrementInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/IncrementInstruction.java index bebb101d7f326..74fd6a4465a1f 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/IncrementInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/IncrementInstruction.java @@ -28,6 +28,7 @@ import java.lang.classfile.CodeModel; import java.lang.classfile.Instruction; import java.lang.classfile.Opcode; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/InvokeDynamicInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/InvokeDynamicInstruction.java index 708b284c0bf57..6df960b88fab8 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/InvokeDynamicInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/InvokeDynamicInstruction.java @@ -24,18 +24,18 @@ */ package java.lang.classfile.instruction; -import java.lang.constant.ConstantDesc; -import java.lang.constant.DirectMethodHandleDesc; -import java.lang.constant.MethodTypeDesc; -import java.util.List; -import java.util.function.Function; - import java.lang.classfile.CodeElement; import java.lang.classfile.CodeModel; import java.lang.classfile.Instruction; import java.lang.classfile.constantpool.InvokeDynamicEntry; import java.lang.classfile.constantpool.LoadableConstantEntry; import java.lang.classfile.constantpool.Utf8Entry; +import java.lang.constant.ConstantDesc; +import java.lang.constant.DirectMethodHandleDesc; +import java.lang.constant.MethodTypeDesc; +import java.util.List; +import java.util.function.Function; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.classfile.impl.Util; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/InvokeInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/InvokeInstruction.java index 74b8dc942a271..41ca5fd1519ef 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/InvokeInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/InvokeInstruction.java @@ -24,18 +24,18 @@ */ package java.lang.classfile.instruction; -import java.lang.constant.MethodTypeDesc; - import java.lang.classfile.CodeElement; import java.lang.classfile.CodeModel; -import java.lang.classfile.constantpool.ClassEntry; import java.lang.classfile.Instruction; import java.lang.classfile.Opcode; +import java.lang.classfile.constantpool.ClassEntry; import java.lang.classfile.constantpool.InterfaceMethodRefEntry; import java.lang.classfile.constantpool.MemberRefEntry; import java.lang.classfile.constantpool.MethodRefEntry; import java.lang.classfile.constantpool.NameAndTypeEntry; import java.lang.classfile.constantpool.Utf8Entry; +import java.lang.constant.MethodTypeDesc; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.Util; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/LabelTarget.java b/src/java.base/share/classes/java/lang/classfile/instruction/LabelTarget.java index 80b3ea4785d90..8682d0ee508e6 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/LabelTarget.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/LabelTarget.java @@ -28,6 +28,7 @@ import java.lang.classfile.CodeModel; import java.lang.classfile.Label; import java.lang.classfile.PseudoInstruction; + import jdk.internal.classfile.impl.LabelImpl; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/LineNumber.java b/src/java.base/share/classes/java/lang/classfile/instruction/LineNumber.java index 3990fe1f5e286..a06e7cfcebac2 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/LineNumber.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/LineNumber.java @@ -29,6 +29,7 @@ import java.lang.classfile.CodeModel; import java.lang.classfile.PseudoInstruction; import java.lang.classfile.attribute.LineNumberTableAttribute; + import jdk.internal.classfile.impl.LineNumberImpl; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/LoadInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/LoadInstruction.java index ea10ba6a0d0fb..ce6463ef92478 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/LoadInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/LoadInstruction.java @@ -29,6 +29,7 @@ import java.lang.classfile.Instruction; import java.lang.classfile.Opcode; import java.lang.classfile.TypeKind; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.classfile.impl.BytecodeHelpers; import jdk.internal.classfile.impl.Util; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/LookupSwitchInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/LookupSwitchInstruction.java index 6ddbbde8cea86..ce6c0cce10999 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/LookupSwitchInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/LookupSwitchInstruction.java @@ -24,12 +24,12 @@ */ package java.lang.classfile.instruction; -import java.util.List; - import java.lang.classfile.CodeElement; import java.lang.classfile.CodeModel; import java.lang.classfile.Instruction; import java.lang.classfile.Label; +import java.util.List; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/MonitorInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/MonitorInstruction.java index d0148b34aee65..9bec7805339d2 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/MonitorInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/MonitorInstruction.java @@ -28,6 +28,7 @@ import java.lang.classfile.CodeModel; import java.lang.classfile.Instruction; import java.lang.classfile.Opcode; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.classfile.impl.Util; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/NewMultiArrayInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/NewMultiArrayInstruction.java index 2c572c607b4f4..f5e0129205cfb 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/NewMultiArrayInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/NewMultiArrayInstruction.java @@ -26,8 +26,9 @@ import java.lang.classfile.CodeElement; import java.lang.classfile.CodeModel; -import java.lang.classfile.constantpool.ClassEntry; import java.lang.classfile.Instruction; +import java.lang.classfile.constantpool.ClassEntry; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.classfile.impl.BytecodeHelpers; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/NewObjectInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/NewObjectInstruction.java index fbfbb0da47b31..e6e8fc64d1763 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/NewObjectInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/NewObjectInstruction.java @@ -26,8 +26,9 @@ import java.lang.classfile.CodeElement; import java.lang.classfile.CodeModel; -import java.lang.classfile.constantpool.ClassEntry; import java.lang.classfile.Instruction; +import java.lang.classfile.constantpool.ClassEntry; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/NewPrimitiveArrayInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/NewPrimitiveArrayInstruction.java index cbc8f2068a8ad..4adc7536c2cfd 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/NewPrimitiveArrayInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/NewPrimitiveArrayInstruction.java @@ -28,6 +28,7 @@ import java.lang.classfile.CodeModel; import java.lang.classfile.Instruction; import java.lang.classfile.TypeKind; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/NewReferenceArrayInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/NewReferenceArrayInstruction.java index 7226850cc34cf..b622f915c464e 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/NewReferenceArrayInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/NewReferenceArrayInstruction.java @@ -26,8 +26,9 @@ import java.lang.classfile.CodeElement; import java.lang.classfile.CodeModel; -import java.lang.classfile.constantpool.ClassEntry; import java.lang.classfile.Instruction; +import java.lang.classfile.constantpool.ClassEntry; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/NopInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/NopInstruction.java index e47d2eb5f2b51..3183ad888161e 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/NopInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/NopInstruction.java @@ -27,6 +27,7 @@ import java.lang.classfile.CodeElement; import java.lang.classfile.CodeModel; import java.lang.classfile.Instruction; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/OperatorInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/OperatorInstruction.java index aeaa4109d7bd6..602f34ec03e0b 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/OperatorInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/OperatorInstruction.java @@ -29,6 +29,7 @@ import java.lang.classfile.Instruction; import java.lang.classfile.Opcode; import java.lang.classfile.TypeKind; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.classfile.impl.Util; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/ReturnInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/ReturnInstruction.java index fbfd22210d3dd..6596404a58282 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/ReturnInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/ReturnInstruction.java @@ -29,6 +29,7 @@ import java.lang.classfile.Instruction; import java.lang.classfile.Opcode; import java.lang.classfile.TypeKind; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.classfile.impl.BytecodeHelpers; import jdk.internal.classfile.impl.Util; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/StackInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/StackInstruction.java index 9b2e0b6904387..17e9496652b90 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/StackInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/StackInstruction.java @@ -28,6 +28,7 @@ import java.lang.classfile.CodeModel; import java.lang.classfile.Instruction; import java.lang.classfile.Opcode; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.classfile.impl.Util; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/StoreInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/StoreInstruction.java index 5bfe13421da35..68bf54e61c28b 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/StoreInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/StoreInstruction.java @@ -29,6 +29,7 @@ import java.lang.classfile.Instruction; import java.lang.classfile.Opcode; import java.lang.classfile.TypeKind; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.classfile.impl.BytecodeHelpers; import jdk.internal.classfile.impl.Util; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/SwitchCase.java b/src/java.base/share/classes/java/lang/classfile/instruction/SwitchCase.java index 0db88fa4b6338..6149945532bf1 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/SwitchCase.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/SwitchCase.java @@ -25,6 +25,7 @@ package java.lang.classfile.instruction; import java.lang.classfile.Label; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/TableSwitchInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/TableSwitchInstruction.java index bdcc2326f4a28..a8bce119db2f8 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/TableSwitchInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/TableSwitchInstruction.java @@ -24,12 +24,12 @@ */ package java.lang.classfile.instruction; -import java.util.List; - import java.lang.classfile.CodeElement; import java.lang.classfile.CodeModel; import java.lang.classfile.Instruction; import java.lang.classfile.Label; +import java.util.List; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/ThrowInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/ThrowInstruction.java index 86c964cb61e12..68d861ba06dbe 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/ThrowInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/ThrowInstruction.java @@ -27,6 +27,7 @@ import java.lang.classfile.CodeElement; import java.lang.classfile.CodeModel; import java.lang.classfile.Instruction; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.javac.PreviewFeature; diff --git a/src/java.base/share/classes/java/lang/classfile/instruction/TypeCheckInstruction.java b/src/java.base/share/classes/java/lang/classfile/instruction/TypeCheckInstruction.java index d93f5244ca962..a4b9818a4bebd 100644 --- a/src/java.base/share/classes/java/lang/classfile/instruction/TypeCheckInstruction.java +++ b/src/java.base/share/classes/java/lang/classfile/instruction/TypeCheckInstruction.java @@ -24,13 +24,13 @@ */ package java.lang.classfile.instruction; -import java.lang.constant.ClassDesc; - import java.lang.classfile.CodeElement; import java.lang.classfile.CodeModel; -import java.lang.classfile.constantpool.ClassEntry; import java.lang.classfile.Instruction; import java.lang.classfile.Opcode; +import java.lang.classfile.constantpool.ClassEntry; +import java.lang.constant.ClassDesc; + import jdk.internal.classfile.impl.AbstractInstruction; import jdk.internal.classfile.impl.TemporaryConstantPool; import jdk.internal.classfile.impl.Util; diff --git a/src/java.base/share/classes/java/lang/classfile/snippet-files/PackageSnippets.java b/src/java.base/share/classes/java/lang/classfile/snippet-files/PackageSnippets.java index 46e057210ac74..c6956d6d23a7f 100644 --- a/src/java.base/share/classes/java/lang/classfile/snippet-files/PackageSnippets.java +++ b/src/java.base/share/classes/java/lang/classfile/snippet-files/PackageSnippets.java @@ -24,43 +24,25 @@ */ package java.lang.classfile.snippets; -import java.lang.classfile.ClassBuilder; +import java.lang.classfile.*; +import java.lang.classfile.components.ClassRemapper; +import java.lang.classfile.components.CodeLocalsShifter; +import java.lang.classfile.components.CodeRelabeler; +import java.lang.classfile.instruction.*; import java.lang.constant.ClassDesc; import java.lang.constant.ConstantDescs; import java.lang.constant.MethodTypeDesc; import java.lang.invoke.MethodHandles; +import java.lang.reflect.AccessFlag; import java.util.ArrayDeque; import java.util.HashSet; -import java.util.Set; - -import java.lang.reflect.AccessFlag; import java.util.Map; +import java.util.Set; import java.util.function.Predicate; import java.util.stream.Collectors; import java.util.stream.Stream; -import java.lang.classfile.ClassElement; -import java.lang.classfile.ClassHierarchyResolver; -import java.lang.classfile.ClassModel; -import java.lang.classfile.ClassTransform; -import java.lang.classfile.ClassFile; -import java.lang.classfile.ClassFileVersion; -import java.lang.classfile.CodeBuilder; -import java.lang.classfile.CodeElement; -import java.lang.classfile.CodeModel; -import java.lang.classfile.CodeTransform; -import java.lang.classfile.FieldModel; -import java.lang.classfile.MethodElement; -import java.lang.classfile.MethodModel; -import java.lang.classfile.Opcode; -import java.lang.classfile.PseudoInstruction; -import java.lang.classfile.TypeKind; -import java.lang.classfile.instruction.*; - import static java.util.stream.Collectors.toSet; -import java.lang.classfile.components.ClassRemapper; -import java.lang.classfile.components.CodeLocalsShifter; -import java.lang.classfile.components.CodeRelabeler; class PackageSnippets { void enumerateFieldsMethods1(byte[] bytes) { diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/AbstractInstruction.java b/src/java.base/share/classes/jdk/internal/classfile/impl/AbstractInstruction.java index 23dad36b1b163..8795894530b17 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/AbstractInstruction.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/AbstractInstruction.java @@ -24,47 +24,16 @@ */ package jdk.internal.classfile.impl; -import java.lang.classfile.constantpool.PoolEntry; -import java.lang.constant.ConstantDesc; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; import java.lang.classfile.Instruction; -import java.lang.classfile.constantpool.ClassEntry; -import java.lang.classfile.instruction.SwitchCase; -import java.lang.classfile.constantpool.FieldRefEntry; -import java.lang.classfile.constantpool.InterfaceMethodRefEntry; -import java.lang.classfile.constantpool.InvokeDynamicEntry; -import java.lang.classfile.constantpool.LoadableConstantEntry; -import java.lang.classfile.constantpool.MemberRefEntry; -import java.lang.classfile.instruction.ArrayLoadInstruction; -import java.lang.classfile.instruction.ArrayStoreInstruction; -import java.lang.classfile.instruction.BranchInstruction; -import java.lang.classfile.instruction.ConstantInstruction; -import java.lang.classfile.instruction.ConvertInstruction; -import java.lang.classfile.instruction.DiscontinuedInstruction; -import java.lang.classfile.instruction.FieldInstruction; -import java.lang.classfile.instruction.IncrementInstruction; -import java.lang.classfile.instruction.InvokeDynamicInstruction; -import java.lang.classfile.instruction.InvokeInstruction; -import java.lang.classfile.instruction.LoadInstruction; -import java.lang.classfile.instruction.LookupSwitchInstruction; -import java.lang.classfile.instruction.MonitorInstruction; -import java.lang.classfile.instruction.NewMultiArrayInstruction; -import java.lang.classfile.instruction.NewObjectInstruction; -import java.lang.classfile.instruction.NewPrimitiveArrayInstruction; -import java.lang.classfile.instruction.NewReferenceArrayInstruction; -import java.lang.classfile.instruction.NopInstruction; -import java.lang.classfile.instruction.OperatorInstruction; -import java.lang.classfile.instruction.ReturnInstruction; -import java.lang.classfile.instruction.StackInstruction; -import java.lang.classfile.instruction.StoreInstruction; -import java.lang.classfile.instruction.TableSwitchInstruction; -import java.lang.classfile.instruction.ThrowInstruction; -import java.lang.classfile.instruction.TypeCheckInstruction; import java.lang.classfile.Label; import java.lang.classfile.Opcode; import java.lang.classfile.TypeKind; +import java.lang.classfile.constantpool.*; +import java.lang.classfile.instruction.*; +import java.lang.constant.ConstantDesc; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import static java.util.Objects.requireNonNull; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPoolEntry.java b/src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPoolEntry.java index 15b5262176441..e2a825498e8ad 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPoolEntry.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPoolEntry.java @@ -24,33 +24,12 @@ */ package jdk.internal.classfile.impl; -import java.lang.classfile.constantpool.ConstantPoolException; +import java.lang.classfile.constantpool.*; import java.lang.constant.*; import java.lang.invoke.TypeDescriptor; import java.nio.charset.StandardCharsets; import java.util.Arrays; -import java.lang.classfile.constantpool.ClassEntry; -import java.lang.classfile.constantpool.ConstantDynamicEntry; -import java.lang.classfile.constantpool.ConstantPool; -import java.lang.classfile.constantpool.ConstantPoolBuilder; -import java.lang.classfile.constantpool.DoubleEntry; -import java.lang.classfile.constantpool.FieldRefEntry; -import java.lang.classfile.constantpool.FloatEntry; -import java.lang.classfile.constantpool.IntegerEntry; -import java.lang.classfile.constantpool.InterfaceMethodRefEntry; -import java.lang.classfile.constantpool.InvokeDynamicEntry; -import java.lang.classfile.constantpool.LongEntry; -import java.lang.classfile.constantpool.MemberRefEntry; -import java.lang.classfile.constantpool.MethodHandleEntry; -import java.lang.classfile.constantpool.MethodRefEntry; -import java.lang.classfile.constantpool.MethodTypeEntry; -import java.lang.classfile.constantpool.ModuleEntry; -import java.lang.classfile.constantpool.NameAndTypeEntry; -import java.lang.classfile.constantpool.PackageEntry; -import java.lang.classfile.constantpool.PoolEntry; -import java.lang.classfile.constantpool.StringEntry; -import java.lang.classfile.constantpool.Utf8Entry; import jdk.internal.access.JavaLangAccess; import jdk.internal.access.SharedSecrets; import jdk.internal.util.ArraysSupport; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPseudoInstruction.java b/src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPseudoInstruction.java index 596379305a9fe..ea3af78a600a0 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPseudoInstruction.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPseudoInstruction.java @@ -24,17 +24,15 @@ */ package jdk.internal.classfile.impl; -import java.util.Optional; - -import java.lang.classfile.BufWriter; +import java.lang.classfile.Label; +import java.lang.classfile.PseudoInstruction; import java.lang.classfile.constantpool.ClassEntry; import java.lang.classfile.constantpool.Utf8Entry; import java.lang.classfile.instruction.CharacterRange; import java.lang.classfile.instruction.ExceptionCatch; import java.lang.classfile.instruction.LocalVariable; import java.lang.classfile.instruction.LocalVariableType; -import java.lang.classfile.Label; -import java.lang.classfile.PseudoInstruction; +import java.util.Optional; import static java.util.Objects.requireNonNull; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/AbstractUnboundModel.java b/src/java.base/share/classes/jdk/internal/classfile/impl/AbstractUnboundModel.java index 9502ff7b246c9..1ff8c0014eaf8 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/AbstractUnboundModel.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/AbstractUnboundModel.java @@ -24,15 +24,14 @@ */ package jdk.internal.classfile.impl; -import java.util.Collections; -import java.util.List; -import java.util.function.Consumer; -import java.util.stream.Stream; - import java.lang.classfile.Attribute; import java.lang.classfile.AttributedElement; import java.lang.classfile.ClassFileElement; import java.lang.classfile.CompoundElement; +import java.util.Collections; +import java.util.List; +import java.util.function.Consumer; +import java.util.stream.Stream; public abstract sealed class AbstractUnboundModel extends AbstractElement diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/AccessFlagsImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/AccessFlagsImpl.java index 537110d2b23f6..ed682bbabb2b6 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/AccessFlagsImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/AccessFlagsImpl.java @@ -24,9 +24,9 @@ */ package jdk.internal.classfile.impl; -import java.util.Set; import java.lang.classfile.AccessFlags; import java.lang.reflect.AccessFlag; +import java.util.Set; public final class AccessFlagsImpl extends AbstractElement implements AccessFlags { diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/AnnotationImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/AnnotationImpl.java index f1c7e6aaf658b..92b33d491cddb 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/AnnotationImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/AnnotationImpl.java @@ -24,9 +24,14 @@ */ package jdk.internal.classfile.impl; -import java.lang.classfile.*; -import java.lang.classfile.constantpool.*; - +import java.lang.classfile.Annotation; +import java.lang.classfile.AnnotationElement; +import java.lang.classfile.AnnotationValue; +import java.lang.classfile.constantpool.DoubleEntry; +import java.lang.classfile.constantpool.FloatEntry; +import java.lang.classfile.constantpool.IntegerEntry; +import java.lang.classfile.constantpool.LongEntry; +import java.lang.classfile.constantpool.Utf8Entry; import java.util.List; import static java.util.Objects.requireNonNull; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/AnnotationReader.java b/src/java.base/share/classes/jdk/internal/classfile/impl/AnnotationReader.java index 9724cff35ad6d..5c4058e6dce4e 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/AnnotationReader.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/AnnotationReader.java @@ -25,22 +25,19 @@ package jdk.internal.classfile.impl; -import java.lang.classfile.Annotation; -import java.lang.classfile.AnnotationElement; -import java.lang.classfile.AnnotationValue; -import java.lang.classfile.BufWriter; -import java.lang.classfile.ClassReader; -import java.lang.classfile.constantpool.*; -import java.lang.classfile.TypeAnnotation; +import java.lang.classfile.*; +import java.lang.classfile.constantpool.DoubleEntry; +import java.lang.classfile.constantpool.FloatEntry; +import java.lang.classfile.constantpool.IntegerEntry; +import java.lang.classfile.constantpool.LongEntry; +import java.lang.classfile.constantpool.Utf8Entry; +import java.util.List; + +import jdk.internal.access.SharedSecrets; import static java.lang.classfile.AnnotationValue.*; import static java.lang.classfile.TypeAnnotation.TargetInfo.*; -import java.util.List; -import java.lang.classfile.Label; -import java.lang.classfile.constantpool.Utf8Entry; -import jdk.internal.access.SharedSecrets; - public final class AnnotationReader { private AnnotationReader() { } diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/AttributeHolder.java b/src/java.base/share/classes/jdk/internal/classfile/impl/AttributeHolder.java index 6060170a8d1c9..fffb963eab3c3 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/AttributeHolder.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/AttributeHolder.java @@ -24,10 +24,9 @@ */ package jdk.internal.classfile.impl; -import java.util.Arrays; - import java.lang.classfile.Attribute; import java.lang.classfile.AttributeMapper; +import java.util.Arrays; public class AttributeHolder { private static final Attribute[] EMPTY_ATTRIBUTE_ARRAY = {}; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/BlockCodeBuilderImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/BlockCodeBuilderImpl.java index 2fdc9f3642624..62d812ce8d41f 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/BlockCodeBuilderImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/BlockCodeBuilderImpl.java @@ -26,12 +26,11 @@ import java.lang.classfile.CodeBuilder; import java.lang.classfile.CodeElement; +import java.lang.classfile.Instruction; import java.lang.classfile.Label; import java.lang.classfile.TypeKind; import java.lang.classfile.instruction.LabelTarget; - import java.util.Objects; -import java.lang.classfile.Instruction; import static java.util.Objects.requireNonNull; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/BootstrapMethodEntryImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/BootstrapMethodEntryImpl.java index 267c11c584578..ed36b5ce172bf 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/BootstrapMethodEntryImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/BootstrapMethodEntryImpl.java @@ -24,12 +24,11 @@ */ package jdk.internal.classfile.impl; -import java.util.List; - -import java.lang.classfile.constantpool.ConstantPool; import java.lang.classfile.BootstrapMethodEntry; +import java.lang.classfile.constantpool.ConstantPool; import java.lang.classfile.constantpool.LoadableConstantEntry; import java.lang.classfile.constantpool.MethodHandleEntry; +import java.util.List; import static jdk.internal.classfile.impl.AbstractPoolEntry.MethodHandleEntryImpl; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/BoundAttribute.java b/src/java.base/share/classes/jdk/internal/classfile/impl/BoundAttribute.java index 36ef2fa55ebef..59a2b03c91ed1 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/BoundAttribute.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/BoundAttribute.java @@ -27,15 +27,7 @@ import java.lang.classfile.*; import java.lang.classfile.attribute.*; -import java.lang.classfile.constantpool.ClassEntry; -import java.lang.classfile.constantpool.ConstantPool; -import java.lang.classfile.constantpool.ConstantValueEntry; -import java.lang.classfile.constantpool.LoadableConstantEntry; -import java.lang.classfile.constantpool.ModuleEntry; -import java.lang.classfile.constantpool.NameAndTypeEntry; -import java.lang.classfile.constantpool.PackageEntry; -import java.lang.classfile.constantpool.PoolEntry; -import java.lang.classfile.constantpool.Utf8Entry; +import java.lang.classfile.constantpool.*; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/BoundLocalVariable.java b/src/java.base/share/classes/jdk/internal/classfile/impl/BoundLocalVariable.java index 3bbcd243cc11e..cb2f9c1f1b7f7 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/BoundLocalVariable.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/BoundLocalVariable.java @@ -25,10 +25,10 @@ package jdk.internal.classfile.impl; -import java.lang.constant.ClassDesc; import java.lang.classfile.attribute.LocalVariableInfo; import java.lang.classfile.constantpool.Utf8Entry; import java.lang.classfile.instruction.LocalVariable; +import java.lang.constant.ClassDesc; public final class BoundLocalVariable extends AbstractBoundLocalVariable diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/BoundRecordComponentInfo.java b/src/java.base/share/classes/jdk/internal/classfile/impl/BoundRecordComponentInfo.java index fd96b245af19b..c246199de50e8 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/BoundRecordComponentInfo.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/BoundRecordComponentInfo.java @@ -24,12 +24,11 @@ */ package jdk.internal.classfile.impl; -import java.util.List; - import java.lang.classfile.Attribute; import java.lang.classfile.ClassReader; import java.lang.classfile.attribute.RecordComponentInfo; import java.lang.classfile.constantpool.Utf8Entry; +import java.util.List; public final class BoundRecordComponentInfo implements RecordComponentInfo { diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/BufWriterImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/BufWriterImpl.java index 91b3b32190b81..db1300a809afc 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/BufWriterImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/BufWriterImpl.java @@ -25,14 +25,12 @@ */ package jdk.internal.classfile.impl; - -import java.util.Arrays; - import java.lang.classfile.BufWriter; import java.lang.classfile.constantpool.ClassEntry; import java.lang.classfile.constantpool.ConstantPool; import java.lang.classfile.constantpool.ConstantPoolBuilder; import java.lang.classfile.constantpool.PoolEntry; +import java.util.Arrays; import jdk.internal.access.JavaLangAccess; import jdk.internal.access.SharedSecrets; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/BufferedCodeBuilder.java b/src/java.base/share/classes/jdk/internal/classfile/impl/BufferedCodeBuilder.java index 4ed458c398309..86991843f57aa 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/BufferedCodeBuilder.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/BufferedCodeBuilder.java @@ -27,12 +27,11 @@ import java.lang.classfile.CodeBuilder; import java.lang.classfile.CodeElement; import java.lang.classfile.CodeModel; -import java.lang.classfile.TypeKind; -import java.lang.classfile.constantpool.ConstantPoolBuilder; import java.lang.classfile.Label; import java.lang.classfile.MethodModel; +import java.lang.classfile.TypeKind; +import java.lang.classfile.constantpool.ConstantPoolBuilder; import java.lang.classfile.instruction.ExceptionCatch; - import java.util.ArrayList; import java.util.List; import java.util.Optional; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/BufferedFieldBuilder.java b/src/java.base/share/classes/jdk/internal/classfile/impl/BufferedFieldBuilder.java index 0578cf85c4cc6..bd42d66dd3e9b 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/BufferedFieldBuilder.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/BufferedFieldBuilder.java @@ -24,16 +24,19 @@ */ package jdk.internal.classfile.impl; +import java.lang.classfile.AccessFlags; +import java.lang.classfile.ClassModel; +import java.lang.classfile.FieldBuilder; +import java.lang.classfile.FieldElement; +import java.lang.classfile.FieldModel; +import java.lang.classfile.constantpool.ConstantPoolBuilder; +import java.lang.classfile.constantpool.Utf8Entry; import java.lang.reflect.AccessFlag; import java.util.ArrayList; import java.util.List; import java.util.Optional; import java.util.function.Consumer; -import java.lang.classfile.*; -import java.lang.classfile.constantpool.ConstantPoolBuilder; -import java.lang.classfile.constantpool.Utf8Entry; - import static java.util.Objects.requireNonNull; public final class BufferedFieldBuilder diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/BufferedMethodBuilder.java b/src/java.base/share/classes/jdk/internal/classfile/impl/BufferedMethodBuilder.java index 8f511218d1e30..747fd876fbf5e 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/BufferedMethodBuilder.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/BufferedMethodBuilder.java @@ -24,6 +24,9 @@ */ package jdk.internal.classfile.impl; +import java.lang.classfile.*; +import java.lang.classfile.constantpool.ConstantPoolBuilder; +import java.lang.classfile.constantpool.Utf8Entry; import java.lang.constant.MethodTypeDesc; import java.lang.reflect.AccessFlag; import java.util.ArrayList; @@ -31,18 +34,6 @@ import java.util.Optional; import java.util.function.Consumer; -import java.lang.classfile.AccessFlags; - -import java.lang.classfile.ClassModel; -import java.lang.classfile.CodeBuilder; -import java.lang.classfile.CodeModel; -import java.lang.classfile.CodeTransform; -import java.lang.classfile.constantpool.ConstantPoolBuilder; -import java.lang.classfile.MethodBuilder; -import java.lang.classfile.MethodElement; -import java.lang.classfile.MethodModel; -import java.lang.classfile.constantpool.Utf8Entry; - import static java.util.Objects.requireNonNull; public final class BufferedMethodBuilder diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/BytecodeHelpers.java b/src/java.base/share/classes/jdk/internal/classfile/impl/BytecodeHelpers.java index fde8905abc183..25daf4e4648ad 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/BytecodeHelpers.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/BytecodeHelpers.java @@ -25,6 +25,10 @@ */ package jdk.internal.classfile.impl; +import java.lang.classfile.BootstrapMethodEntry; +import java.lang.classfile.Opcode; +import java.lang.classfile.TypeKind; +import java.lang.classfile.constantpool.*; import java.lang.constant.ClassDesc; import java.lang.constant.ConstantDesc; import java.lang.constant.ConstantDescs; @@ -35,18 +39,6 @@ import java.util.ArrayList; import java.util.List; -import java.lang.classfile.BootstrapMethodEntry; -import java.lang.classfile.constantpool.ClassEntry; -import java.lang.classfile.constantpool.ConstantDynamicEntry; -import java.lang.classfile.constantpool.ConstantPoolBuilder; -import java.lang.classfile.Opcode; -import java.lang.classfile.TypeKind; -import java.lang.classfile.constantpool.LoadableConstantEntry; -import java.lang.classfile.constantpool.MemberRefEntry; -import java.lang.classfile.constantpool.MethodHandleEntry; -import java.lang.classfile.constantpool.NameAndTypeEntry; -import java.util.Objects; - import static java.util.Objects.requireNonNull; import static jdk.internal.classfile.impl.RawBytecodeHelper.*; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/CatchBuilderImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/CatchBuilderImpl.java index 5d262c397f6ba..abb024cfa204d 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/CatchBuilderImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/CatchBuilderImpl.java @@ -27,7 +27,6 @@ import java.lang.classfile.CodeBuilder; import java.lang.classfile.Label; import java.lang.classfile.Opcode; - import java.lang.constant.ClassDesc; import java.lang.constant.ConstantDesc; import java.util.HashSet; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/ChainedClassBuilder.java b/src/java.base/share/classes/jdk/internal/classfile/impl/ChainedClassBuilder.java index ebf803f5f2725..48d5ceb72d641 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/ChainedClassBuilder.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/ChainedClassBuilder.java @@ -24,12 +24,10 @@ */ package jdk.internal.classfile.impl; -import java.lang.constant.MethodTypeDesc; -import java.util.function.Consumer; - import java.lang.classfile.*; import java.lang.classfile.constantpool.ConstantPoolBuilder; import java.lang.classfile.constantpool.Utf8Entry; +import java.util.function.Consumer; import static java.util.Objects.requireNonNull; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/ChainedCodeBuilder.java b/src/java.base/share/classes/jdk/internal/classfile/impl/ChainedCodeBuilder.java index fa02a346fabd8..9baa9f1212336 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/ChainedCodeBuilder.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/ChainedCodeBuilder.java @@ -26,9 +26,8 @@ import java.lang.classfile.CodeBuilder; import java.lang.classfile.CodeElement; -import java.lang.classfile.TypeKind; import java.lang.classfile.Label; - +import java.lang.classfile.TypeKind; import java.util.function.Consumer; import static java.util.Objects.requireNonNull; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/ChainedFieldBuilder.java b/src/java.base/share/classes/jdk/internal/classfile/impl/ChainedFieldBuilder.java index f9c2b50f414ac..13ca52f18de2f 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/ChainedFieldBuilder.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/ChainedFieldBuilder.java @@ -24,11 +24,10 @@ */ package jdk.internal.classfile.impl; -import java.util.function.Consumer; - import java.lang.classfile.FieldBuilder; import java.lang.classfile.FieldElement; import java.lang.classfile.constantpool.ConstantPoolBuilder; +import java.util.function.Consumer; import static java.util.Objects.requireNonNull; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/ChainedMethodBuilder.java b/src/java.base/share/classes/jdk/internal/classfile/impl/ChainedMethodBuilder.java index 5bab6806b71b4..7bd0fc2ca1b23 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/ChainedMethodBuilder.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/ChainedMethodBuilder.java @@ -24,14 +24,13 @@ */ package jdk.internal.classfile.impl; -import java.util.function.Consumer; - import java.lang.classfile.CodeBuilder; import java.lang.classfile.CodeModel; import java.lang.classfile.CodeTransform; import java.lang.classfile.MethodBuilder; import java.lang.classfile.MethodElement; import java.lang.classfile.constantpool.ConstantPoolBuilder; +import java.util.function.Consumer; import static java.util.Objects.requireNonNull; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/ClassFileImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/ClassFileImpl.java index ed81bcea009b8..3ab5d24f09cf0 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/ClassFileImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/ClassFileImpl.java @@ -25,19 +25,19 @@ package jdk.internal.classfile.impl; -import java.util.List; -import java.util.function.Function; -import java.util.function.Consumer; - import java.lang.classfile.AttributeMapper; -import java.lang.classfile.ClassFile; import java.lang.classfile.ClassBuilder; +import java.lang.classfile.ClassFile; import java.lang.classfile.ClassHierarchyResolver; import java.lang.classfile.ClassModel; import java.lang.classfile.ClassTransform; import java.lang.classfile.constantpool.ClassEntry; import java.lang.classfile.constantpool.ConstantPoolBuilder; import java.lang.classfile.constantpool.Utf8Entry; +import java.util.List; +import java.util.function.Consumer; +import java.util.function.Function; + import jdk.internal.classfile.impl.verifier.VerifierImpl; import static java.util.Objects.requireNonNull; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/ClassHierarchyImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/ClassHierarchyImpl.java index 9c2dd89553865..5be14f42baa1c 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/ClassHierarchyImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/ClassHierarchyImpl.java @@ -30,17 +30,16 @@ import java.io.IOException; import java.io.InputStream; import java.io.UncheckedIOException; +import java.lang.classfile.ClassHierarchyResolver; import java.lang.constant.ClassDesc; import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.function.Function; -import java.lang.classfile.ClassHierarchyResolver; - -import static java.lang.constant.ConstantDescs.CD_Object; -import static java.lang.classfile.ClassFile.*; +import static java.lang.classfile.ClassFile.ACC_INTERFACE; import static java.lang.classfile.constantpool.PoolEntry.*; +import static java.lang.constant.ConstantDescs.CD_Object; import static java.util.Objects.requireNonNull; import static jdk.internal.constant.ConstantUtils.referenceClassDesc; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/ClassImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/ClassImpl.java index c6b9be5c76a99..2e5c2c24651cb 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/ClassImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/ClassImpl.java @@ -24,41 +24,20 @@ */ package jdk.internal.classfile.impl; +import java.lang.classfile.*; +import java.lang.classfile.attribute.*; +import java.lang.classfile.constantpool.ClassEntry; +import java.lang.classfile.constantpool.ConstantPool; +import java.lang.reflect.AccessFlag; import java.util.List; import java.util.Optional; import java.util.function.Consumer; -import java.lang.classfile.constantpool.ClassEntry; -import java.lang.reflect.AccessFlag; -import java.lang.classfile.AccessFlags; -import java.lang.classfile.Attribute; -import java.lang.classfile.Attributes; -import java.lang.classfile.ClassElement; -import java.lang.classfile.ClassModel; -import java.lang.classfile.ClassFile; -import java.lang.classfile.ClassFileVersion; -import java.lang.classfile.CustomAttribute; -import java.lang.classfile.constantpool.ConstantPool; -import java.lang.classfile.FieldModel; -import java.lang.classfile.Interfaces; -import java.lang.classfile.MethodModel; -import java.lang.classfile.Superclass; -import java.lang.classfile.attribute.InnerClassesAttribute; -import java.lang.classfile.attribute.ModuleAttribute; -import java.lang.classfile.attribute.ModuleHashesAttribute; -import java.lang.classfile.attribute.ModuleMainClassAttribute; -import java.lang.classfile.attribute.ModulePackagesAttribute; -import java.lang.classfile.attribute.ModuleResolutionAttribute; -import java.lang.classfile.attribute.ModuleTargetAttribute; -import java.lang.classfile.attribute.RuntimeInvisibleAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeVisibleAnnotationsAttribute; -import java.lang.classfile.attribute.SourceDebugExtensionAttribute; -import java.lang.classfile.attribute.SourceFileAttribute; + import jdk.internal.access.SharedSecrets; public final class ClassImpl extends AbstractElement implements ClassModel { - final ClassReaderImpl reader; private final int attributesPos; private final List methods; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/ClassPrinterImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/ClassPrinterImpl.java index 9c42678428c46..b8fce2fd288c8 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/ClassPrinterImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/ClassPrinterImpl.java @@ -24,45 +24,38 @@ */ package jdk.internal.classfile.impl; +import java.lang.classfile.*; +import java.lang.classfile.AnnotationValue.*; +import java.lang.classfile.attribute.*; +import java.lang.classfile.attribute.StackMapFrameInfo.ObjectVerificationTypeInfo; +import java.lang.classfile.attribute.StackMapFrameInfo.SimpleVerificationTypeInfo; +import java.lang.classfile.attribute.StackMapFrameInfo.UninitializedVerificationTypeInfo; +import java.lang.classfile.attribute.StackMapFrameInfo.VerificationTypeInfo; +import java.lang.classfile.components.ClassPrinter.LeafNode; +import java.lang.classfile.components.ClassPrinter.ListNode; +import java.lang.classfile.components.ClassPrinter.MapNode; +import java.lang.classfile.components.ClassPrinter.Node; +import java.lang.classfile.components.ClassPrinter.Verbosity; +import java.lang.classfile.constantpool.*; +import java.lang.classfile.instruction.*; import java.lang.constant.ConstantDesc; import java.lang.constant.DirectMethodHandleDesc; import java.lang.reflect.AccessFlag; -import java.util.AbstractList; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedHashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.function.BiConsumer; -import java.util.Set; import java.util.function.Consumer; import java.util.stream.IntStream; import java.util.stream.Stream; -import java.lang.classfile.Annotation; - -import java.lang.classfile.AnnotationElement; -import java.lang.classfile.AnnotationValue; -import java.lang.classfile.AnnotationValue.*; -import java.lang.classfile.Attribute; -import java.lang.classfile.ClassModel; -import java.lang.classfile.components.ClassPrinter.*; -import java.lang.classfile.CodeModel; -import java.lang.classfile.Instruction; -import java.lang.classfile.MethodModel; -import java.lang.classfile.TypeAnnotation; -import java.lang.classfile.attribute.*; -import java.lang.classfile.attribute.StackMapFrameInfo.*; -import java.lang.classfile.constantpool.*; -import java.lang.classfile.instruction.*; -import java.lang.classfile.CompoundElement; -import java.lang.classfile.FieldModel; +import static java.lang.classfile.constantpool.PoolEntry.TAG_CLASS; +import static java.lang.classfile.constantpool.PoolEntry.TAG_DOUBLE; +import static java.lang.classfile.constantpool.PoolEntry.TAG_FLOAT; +import static java.lang.classfile.constantpool.PoolEntry.TAG_LONG; +import static java.lang.classfile.constantpool.PoolEntry.TAG_STRING; import static java.lang.classfile.constantpool.PoolEntry.*; import static java.util.Objects.requireNonNull; -import static jdk.internal.classfile.impl.ClassPrinterImpl.Style.*; +import static jdk.internal.classfile.impl.ClassPrinterImpl.Style.BLOCK; +import static jdk.internal.classfile.impl.ClassPrinterImpl.Style.FLOW; public final class ClassPrinterImpl { diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/ClassReaderImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/ClassReaderImpl.java index 0f183ad427f3d..d325100febfea 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/ClassReaderImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/ClassReaderImpl.java @@ -25,6 +25,13 @@ package jdk.internal.classfile.impl; +import java.lang.classfile.*; +import java.lang.classfile.attribute.BootstrapMethodsAttribute; +import java.lang.classfile.constantpool.ClassEntry; +import java.lang.classfile.constantpool.ConstantPoolException; +import java.lang.classfile.constantpool.LoadableConstantEntry; +import java.lang.classfile.constantpool.PoolEntry; +import java.lang.classfile.constantpool.Utf8Entry; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -32,10 +39,6 @@ import java.util.Optional; import java.util.function.Function; -import java.lang.classfile.*; -import java.lang.classfile.attribute.BootstrapMethodsAttribute; -import java.lang.classfile.constantpool.*; - import static java.lang.classfile.constantpool.PoolEntry.*; public final class ClassReaderImpl diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/ClassRemapperImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/ClassRemapperImpl.java index 1d1d028531ecb..cd9faaf2f9a1f 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/ClassRemapperImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/ClassRemapperImpl.java @@ -24,69 +24,13 @@ */ package jdk.internal.classfile.impl; -import java.lang.classfile.Annotation; -import java.lang.classfile.AnnotationElement; -import java.lang.classfile.AnnotationValue; -import java.lang.classfile.ClassBuilder; -import java.lang.classfile.ClassElement; -import java.lang.classfile.ClassSignature; -import java.lang.classfile.CodeBuilder; -import java.lang.classfile.CodeElement; -import java.lang.classfile.CodeModel; -import java.lang.classfile.CodeTransform; -import java.lang.classfile.FieldBuilder; -import java.lang.classfile.FieldElement; -import java.lang.classfile.FieldModel; -import java.lang.classfile.FieldTransform; -import java.lang.classfile.Interfaces; -import java.lang.classfile.MethodBuilder; -import java.lang.classfile.MethodElement; -import java.lang.classfile.MethodModel; -import java.lang.classfile.MethodSignature; -import java.lang.classfile.MethodTransform; -import java.lang.classfile.Signature; -import java.lang.classfile.Superclass; -import java.lang.classfile.TypeAnnotation; -import java.lang.classfile.attribute.AnnotationDefaultAttribute; -import java.lang.classfile.attribute.EnclosingMethodAttribute; -import java.lang.classfile.attribute.ExceptionsAttribute; -import java.lang.classfile.attribute.InnerClassInfo; -import java.lang.classfile.attribute.InnerClassesAttribute; -import java.lang.classfile.attribute.ModuleAttribute; -import java.lang.classfile.attribute.ModuleProvideInfo; -import java.lang.classfile.attribute.NestHostAttribute; -import java.lang.classfile.attribute.NestMembersAttribute; -import java.lang.classfile.attribute.PermittedSubclassesAttribute; -import java.lang.classfile.attribute.RecordAttribute; -import java.lang.classfile.attribute.RecordComponentInfo; -import java.lang.classfile.attribute.RuntimeInvisibleAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeInvisibleParameterAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeInvisibleTypeAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeVisibleAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeVisibleParameterAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeVisibleTypeAnnotationsAttribute; -import java.lang.classfile.attribute.SignatureAttribute; +import java.lang.classfile.*; +import java.lang.classfile.attribute.*; import java.lang.classfile.components.ClassRemapper; import java.lang.classfile.constantpool.Utf8Entry; import java.lang.classfile.instruction.ConstantInstruction.LoadConstantInstruction; -import java.lang.classfile.instruction.ExceptionCatch; -import java.lang.classfile.instruction.FieldInstruction; -import java.lang.classfile.instruction.InvokeDynamicInstruction; -import java.lang.classfile.instruction.InvokeInstruction; -import java.lang.classfile.instruction.LocalVariable; -import java.lang.classfile.instruction.LocalVariableType; -import java.lang.classfile.instruction.NewMultiArrayInstruction; -import java.lang.classfile.instruction.NewObjectInstruction; -import java.lang.classfile.instruction.NewReferenceArrayInstruction; -import java.lang.classfile.instruction.TypeCheckInstruction; - -import java.lang.constant.ClassDesc; -import java.lang.constant.ConstantDesc; -import java.lang.constant.DirectMethodHandleDesc; -import java.lang.constant.DynamicCallSiteDesc; -import java.lang.constant.DynamicConstantDesc; -import java.lang.constant.MethodHandleDesc; -import java.lang.constant.MethodTypeDesc; +import java.lang.classfile.instruction.*; +import java.lang.constant.*; import java.util.List; import java.util.function.Function; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/CodeImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/CodeImpl.java index aa9603b150855..47908b99f447c 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/CodeImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/CodeImpl.java @@ -24,13 +24,6 @@ */ package jdk.internal.classfile.impl; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import java.util.function.Consumer; - import java.lang.classfile.*; import java.lang.classfile.attribute.CodeAttribute; import java.lang.classfile.attribute.RuntimeInvisibleTypeAnnotationsAttribute; @@ -38,6 +31,12 @@ import java.lang.classfile.attribute.StackMapTableAttribute; import java.lang.classfile.constantpool.ClassEntry; import java.lang.classfile.instruction.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.function.Consumer; import static jdk.internal.classfile.impl.RawBytecodeHelper.*; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/CodeLocalsShifterImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/CodeLocalsShifterImpl.java index 9c2554c054c40..7b7d04a8f1d14 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/CodeLocalsShifterImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/CodeLocalsShifterImpl.java @@ -34,7 +34,6 @@ import java.lang.classfile.instruction.LocalVariable; import java.lang.classfile.instruction.LocalVariableType; import java.lang.classfile.instruction.StoreInstruction; - import java.util.Arrays; public final class CodeLocalsShifterImpl implements CodeLocalsShifter { diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/CodeRelabelerImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/CodeRelabelerImpl.java index e60a906e189fc..af0a59978d7c4 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/CodeRelabelerImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/CodeRelabelerImpl.java @@ -28,16 +28,7 @@ import java.lang.classfile.CodeElement; import java.lang.classfile.Label; import java.lang.classfile.components.CodeRelabeler; -import java.lang.classfile.instruction.BranchInstruction; -import java.lang.classfile.instruction.CharacterRange; -import java.lang.classfile.instruction.ExceptionCatch; -import java.lang.classfile.instruction.LabelTarget; -import java.lang.classfile.instruction.LocalVariable; -import java.lang.classfile.instruction.LocalVariableType; -import java.lang.classfile.instruction.LookupSwitchInstruction; -import java.lang.classfile.instruction.SwitchCase; -import java.lang.classfile.instruction.TableSwitchInstruction; - +import java.lang.classfile.instruction.*; import java.util.function.BiFunction; public record CodeRelabelerImpl(BiFunction mapFunction) implements CodeRelabeler { diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/CodeStackTrackerImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/CodeStackTrackerImpl.java index 9288f9fa2a90b..2746caae0043e 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/CodeStackTrackerImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/CodeStackTrackerImpl.java @@ -30,39 +30,8 @@ import java.lang.classfile.Opcode; import java.lang.classfile.TypeKind; import java.lang.classfile.components.CodeStackTracker; -import java.lang.classfile.instruction.ArrayLoadInstruction; -import java.lang.classfile.instruction.ArrayStoreInstruction; -import java.lang.classfile.instruction.BranchInstruction; -import java.lang.classfile.instruction.ConstantInstruction; -import java.lang.classfile.instruction.ConvertInstruction; -import java.lang.classfile.instruction.ExceptionCatch; -import java.lang.classfile.instruction.FieldInstruction; -import java.lang.classfile.instruction.InvokeDynamicInstruction; -import java.lang.classfile.instruction.InvokeInstruction; -import java.lang.classfile.instruction.LabelTarget; -import java.lang.classfile.instruction.LoadInstruction; -import java.lang.classfile.instruction.LookupSwitchInstruction; -import java.lang.classfile.instruction.MonitorInstruction; -import java.lang.classfile.instruction.NewMultiArrayInstruction; -import java.lang.classfile.instruction.NewObjectInstruction; -import java.lang.classfile.instruction.NewPrimitiveArrayInstruction; -import java.lang.classfile.instruction.NewReferenceArrayInstruction; -import java.lang.classfile.instruction.NopInstruction; -import java.lang.classfile.instruction.OperatorInstruction; -import java.lang.classfile.instruction.ReturnInstruction; -import java.lang.classfile.instruction.StackInstruction; -import java.lang.classfile.instruction.StoreInstruction; -import java.lang.classfile.instruction.TableSwitchInstruction; -import java.lang.classfile.instruction.ThrowInstruction; -import java.lang.classfile.instruction.TypeCheckInstruction; - -import java.util.AbstractCollection; -import java.util.Collection; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.NoSuchElementException; -import java.util.Optional; +import java.lang.classfile.instruction.*; +import java.util.*; import java.util.function.Consumer; public final class CodeStackTrackerImpl implements CodeStackTracker { diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/DirectClassBuilder.java b/src/java.base/share/classes/jdk/internal/classfile/impl/DirectClassBuilder.java index d1131d94db769..6dc6251163989 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/DirectClassBuilder.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/DirectClassBuilder.java @@ -26,26 +26,15 @@ package jdk.internal.classfile.impl; +import java.lang.classfile.*; +import java.lang.classfile.constantpool.ClassEntry; +import java.lang.classfile.constantpool.Utf8Entry; import java.lang.constant.ConstantDescs; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.function.Consumer; -import java.lang.classfile.ClassBuilder; -import java.lang.classfile.ClassElement; -import java.lang.classfile.ClassModel; -import java.lang.classfile.ClassFile; -import java.lang.classfile.CustomAttribute; -import java.lang.classfile.constantpool.ClassEntry; -import java.lang.classfile.FieldBuilder; -import java.lang.classfile.FieldModel; -import java.lang.classfile.FieldTransform; -import java.lang.classfile.MethodBuilder; -import java.lang.classfile.MethodModel; -import java.lang.classfile.MethodTransform; -import java.lang.classfile.constantpool.Utf8Entry; - import static java.util.Objects.requireNonNull; public final class DirectClassBuilder diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java b/src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java index c00025e2a7e1e..6536faa8bea2b 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java @@ -25,42 +25,18 @@ */ package jdk.internal.classfile.impl; -import java.lang.constant.ClassDesc; -import java.lang.constant.MethodTypeDesc; -import java.lang.classfile.Attribute; -import java.lang.classfile.Attributes; -import java.lang.classfile.ClassFile; -import java.lang.classfile.CodeBuilder; -import java.lang.classfile.CodeElement; -import java.lang.classfile.CodeModel; -import java.lang.classfile.CustomAttribute; -import java.lang.classfile.Label; -import java.lang.classfile.Opcode; -import java.lang.classfile.TypeKind; +import java.lang.classfile.*; import java.lang.classfile.attribute.CodeAttribute; import java.lang.classfile.attribute.LineNumberTableAttribute; -import java.lang.classfile.constantpool.ClassEntry; -import java.lang.classfile.constantpool.ConstantPoolBuilder; -import java.lang.classfile.constantpool.DoubleEntry; -import java.lang.classfile.constantpool.FieldRefEntry; -import java.lang.classfile.constantpool.InterfaceMethodRefEntry; -import java.lang.classfile.constantpool.InvokeDynamicEntry; -import java.lang.classfile.constantpool.LoadableConstantEntry; -import java.lang.classfile.constantpool.LongEntry; -import java.lang.classfile.constantpool.MemberRefEntry; -import java.lang.classfile.constantpool.MethodRefEntry; +import java.lang.classfile.constantpool.*; import java.lang.classfile.instruction.CharacterRange; import java.lang.classfile.instruction.ExceptionCatch; import java.lang.classfile.instruction.LocalVariable; import java.lang.classfile.instruction.LocalVariableType; import java.lang.classfile.instruction.SwitchCase; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.HashMap; -import java.util.IdentityHashMap; -import java.util.List; -import java.util.Map; +import java.lang.constant.ClassDesc; +import java.lang.constant.MethodTypeDesc; +import java.util.*; import java.util.function.Consumer; import java.util.function.Function; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/DirectFieldBuilder.java b/src/java.base/share/classes/jdk/internal/classfile/impl/DirectFieldBuilder.java index 222ed6b9792d2..1af3724766e06 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/DirectFieldBuilder.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/DirectFieldBuilder.java @@ -25,13 +25,12 @@ package jdk.internal.classfile.impl; -import java.util.function.Consumer; - import java.lang.classfile.CustomAttribute; import java.lang.classfile.FieldBuilder; import java.lang.classfile.FieldElement; import java.lang.classfile.FieldModel; import java.lang.classfile.constantpool.Utf8Entry; +import java.util.function.Consumer; import static java.util.Objects.requireNonNull; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/DirectMethodBuilder.java b/src/java.base/share/classes/jdk/internal/classfile/impl/DirectMethodBuilder.java index cdd5f8155e1c7..938d6c088b7fb 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/DirectMethodBuilder.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/DirectMethodBuilder.java @@ -25,19 +25,11 @@ package jdk.internal.classfile.impl; +import java.lang.classfile.*; +import java.lang.classfile.constantpool.Utf8Entry; import java.lang.constant.MethodTypeDesc; import java.util.function.Consumer; -import java.lang.classfile.ClassFile; -import java.lang.classfile.CodeBuilder; -import java.lang.classfile.CodeModel; -import java.lang.classfile.CodeTransform; -import java.lang.classfile.CustomAttribute; -import java.lang.classfile.MethodBuilder; -import java.lang.classfile.MethodElement; -import java.lang.classfile.MethodModel; -import java.lang.classfile.constantpool.Utf8Entry; - import static java.util.Objects.requireNonNull; public final class DirectMethodBuilder diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/FieldImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/FieldImpl.java index 205e36588b421..a322c08a55a8a 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/FieldImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/FieldImpl.java @@ -24,14 +24,18 @@ */ package jdk.internal.classfile.impl; +import java.lang.classfile.AccessFlags; +import java.lang.classfile.Attribute; +import java.lang.classfile.ClassModel; +import java.lang.classfile.ClassReader; +import java.lang.classfile.FieldElement; +import java.lang.classfile.FieldModel; +import java.lang.classfile.constantpool.Utf8Entry; import java.lang.reflect.AccessFlag; import java.util.List; import java.util.Optional; import java.util.function.Consumer; -import java.lang.classfile.*; -import java.lang.classfile.constantpool.Utf8Entry; - public final class FieldImpl extends AbstractElement implements FieldModel, Util.Writable { diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/InterfacesImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/InterfacesImpl.java index 242ec02c72371..72310b6498234 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/InterfacesImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/InterfacesImpl.java @@ -24,12 +24,11 @@ */ package jdk.internal.classfile.impl; +import java.lang.classfile.Interfaces; +import java.lang.classfile.constantpool.ClassEntry; import java.util.List; import java.util.stream.Collectors; -import java.lang.classfile.constantpool.ClassEntry; -import java.lang.classfile.Interfaces; - public final class InterfacesImpl extends AbstractElement implements Interfaces { diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/MethodImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/MethodImpl.java index 4f7799d1fa7d5..10341f79135c5 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/MethodImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/MethodImpl.java @@ -24,10 +24,9 @@ */ package jdk.internal.classfile.impl; -import java.lang.constant.MethodTypeDesc; import java.lang.classfile.*; import java.lang.classfile.constantpool.Utf8Entry; - +import java.lang.constant.MethodTypeDesc; import java.lang.reflect.AccessFlag; import java.util.List; import java.util.Optional; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/MethodInfo.java b/src/java.base/share/classes/jdk/internal/classfile/impl/MethodInfo.java index ce51144770676..2ecce31cb9114 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/MethodInfo.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/MethodInfo.java @@ -24,8 +24,8 @@ */ package jdk.internal.classfile.impl; -import java.lang.constant.MethodTypeDesc; import java.lang.classfile.constantpool.Utf8Entry; +import java.lang.constant.MethodTypeDesc; import static java.lang.classfile.ClassFile.ACC_STATIC; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/ModuleAttributeBuilderImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/ModuleAttributeBuilderImpl.java index 873b32e4ad649..505bbfd6fea23 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/ModuleAttributeBuilderImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/ModuleAttributeBuilderImpl.java @@ -25,16 +25,22 @@ package jdk.internal.classfile.impl; -import java.lang.classfile.attribute.*; +import java.lang.classfile.attribute.ModuleAttribute; import java.lang.classfile.attribute.ModuleAttribute.ModuleAttributeBuilder; +import java.lang.classfile.attribute.ModuleExportInfo; +import java.lang.classfile.attribute.ModuleOpenInfo; +import java.lang.classfile.attribute.ModuleProvideInfo; +import java.lang.classfile.attribute.ModuleRequireInfo; import java.lang.classfile.constantpool.ClassEntry; import java.lang.classfile.constantpool.ModuleEntry; import java.lang.classfile.constantpool.Utf8Entry; +import java.lang.constant.ClassDesc; import java.lang.constant.ModuleDesc; import java.lang.constant.PackageDesc; - -import java.lang.constant.ClassDesc; -import java.util.*; +import java.util.ArrayList; +import java.util.LinkedHashSet; +import java.util.Objects; +import java.util.Set; public final class ModuleAttributeBuilderImpl implements ModuleAttributeBuilder { diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/SignaturesImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/SignaturesImpl.java index 77f6933a0c214..5486b58f04e3c 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/SignaturesImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/SignaturesImpl.java @@ -24,15 +24,20 @@ */ package jdk.internal.classfile.impl; +import java.lang.classfile.ClassSignature; +import java.lang.classfile.MethodSignature; +import java.lang.classfile.Signature; +import java.lang.classfile.Signature.ArrayTypeSig; +import java.lang.classfile.Signature.ClassTypeSig; +import java.lang.classfile.Signature.RefTypeSig; +import java.lang.classfile.Signature.ThrowableSig; +import java.lang.classfile.Signature.TypeArg; +import java.lang.classfile.Signature.TypeParam; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.Optional; -import java.util.Collections; -import java.lang.classfile.ClassSignature; -import java.lang.classfile.MethodSignature; -import java.lang.classfile.Signature; -import java.lang.classfile.Signature.*; public final class SignaturesImpl { diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/SplitConstantPool.java b/src/java.base/share/classes/jdk/internal/classfile/impl/SplitConstantPool.java index 4c76033885735..d1ae1066d13f8 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/SplitConstantPool.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/SplitConstantPool.java @@ -24,16 +24,15 @@ */ package jdk.internal.classfile.impl; -import java.lang.constant.ClassDesc; -import java.lang.constant.MethodTypeDesc; -import java.util.Arrays; -import java.util.List; - import java.lang.classfile.Attributes; -import java.lang.classfile.ClassReader; import java.lang.classfile.BootstrapMethodEntry; +import java.lang.classfile.ClassReader; import java.lang.classfile.attribute.BootstrapMethodsAttribute; import java.lang.classfile.constantpool.*; +import java.lang.constant.ClassDesc; +import java.lang.constant.MethodTypeDesc; +import java.util.Arrays; +import java.util.List; import jdk.internal.constant.ConstantUtils; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/StackCounter.java b/src/java.base/share/classes/jdk/internal/classfile/impl/StackCounter.java index 843528df84bb0..315aca9c35e32 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/StackCounter.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/StackCounter.java @@ -40,7 +40,7 @@ import java.util.Queue; import java.util.stream.Collectors; -import static java.lang.classfile.ClassFile.*; +import static java.lang.classfile.ClassFile.ACC_STATIC; import static java.lang.classfile.constantpool.PoolEntry.*; import static jdk.internal.classfile.impl.RawBytecodeHelper.*; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/StackMapDecoder.java b/src/java.base/share/classes/jdk/internal/classfile/impl/StackMapDecoder.java index 28b877cd83c70..f8e58ed2242ab 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/StackMapDecoder.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/StackMapDecoder.java @@ -30,7 +30,10 @@ import java.lang.classfile.Label; import java.lang.classfile.MethodModel; import java.lang.classfile.attribute.StackMapFrameInfo; -import java.lang.classfile.attribute.StackMapFrameInfo.*; +import java.lang.classfile.attribute.StackMapFrameInfo.ObjectVerificationTypeInfo; +import java.lang.classfile.attribute.StackMapFrameInfo.SimpleVerificationTypeInfo; +import java.lang.classfile.attribute.StackMapFrameInfo.UninitializedVerificationTypeInfo; +import java.lang.classfile.attribute.StackMapFrameInfo.VerificationTypeInfo; import java.lang.classfile.constantpool.ClassEntry; import java.lang.constant.ConstantDescs; import java.lang.constant.MethodTypeDesc; @@ -40,7 +43,7 @@ import java.util.List; import java.util.Objects; -import static java.lang.classfile.ClassFile.*; +import static java.lang.classfile.ClassFile.ACC_STATIC; import static java.lang.classfile.attribute.StackMapFrameInfo.VerificationTypeInfo.*; import static java.util.Objects.requireNonNull; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java b/src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java index 1af13267c8094..85ee77b172001 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java @@ -28,7 +28,6 @@ import java.lang.classfile.Attribute; import java.lang.classfile.Attributes; -import java.lang.classfile.BufWriter; import java.lang.classfile.Label; import java.lang.classfile.attribute.StackMapTableAttribute; import java.lang.classfile.constantpool.ClassEntry; @@ -43,11 +42,12 @@ import java.util.List; import java.util.Objects; import java.util.stream.Collectors; -import jdk.internal.constant.ReferenceClassDescImpl; + import jdk.internal.constant.PrimitiveClassDescImpl; +import jdk.internal.constant.ReferenceClassDescImpl; import jdk.internal.util.Preconditions; -import static java.lang.classfile.ClassFile.*; +import static java.lang.classfile.ClassFile.ACC_STATIC; import static java.lang.classfile.constantpool.PoolEntry.*; import static java.lang.constant.ConstantDescs.*; import static jdk.internal.classfile.impl.RawBytecodeHelper.*; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/SuperclassImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/SuperclassImpl.java index 2e93c9b9d82ed..b30a1089f2643 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/SuperclassImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/SuperclassImpl.java @@ -24,8 +24,8 @@ */ package jdk.internal.classfile.impl; -import java.lang.classfile.constantpool.ClassEntry; import java.lang.classfile.Superclass; +import java.lang.classfile.constantpool.ClassEntry; import static java.util.Objects.requireNonNull; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/TargetInfoImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/TargetInfoImpl.java index f30597cb3c493..07aa3c8d8c88c 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/TargetInfoImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/TargetInfoImpl.java @@ -24,9 +24,9 @@ */ package jdk.internal.classfile.impl; -import java.util.List; import java.lang.classfile.Label; import java.lang.classfile.TypeAnnotation.*; +import java.util.List; import static java.util.Objects.requireNonNull; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/TemporaryConstantPool.java b/src/java.base/share/classes/jdk/internal/classfile/impl/TemporaryConstantPool.java index 4fee9ba3d9510..83faf9c8802db 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/TemporaryConstantPool.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/TemporaryConstantPool.java @@ -24,30 +24,8 @@ */ package jdk.internal.classfile.impl; -import java.lang.classfile.*; -import java.lang.classfile.constantpool.ClassEntry; -import java.lang.classfile.constantpool.ConstantDynamicEntry; -import java.lang.classfile.constantpool.ConstantPool; -import java.lang.classfile.constantpool.ConstantPoolBuilder; -import java.lang.classfile.constantpool.DoubleEntry; -import java.lang.classfile.constantpool.FieldRefEntry; -import java.lang.classfile.constantpool.FloatEntry; -import java.lang.classfile.constantpool.IntegerEntry; -import java.lang.classfile.constantpool.InterfaceMethodRefEntry; -import java.lang.classfile.constantpool.InvokeDynamicEntry; -import java.lang.classfile.constantpool.LoadableConstantEntry; -import java.lang.classfile.constantpool.LongEntry; -import java.lang.classfile.constantpool.MemberRefEntry; -import java.lang.classfile.constantpool.MethodHandleEntry; -import java.lang.classfile.constantpool.MethodRefEntry; -import java.lang.classfile.constantpool.MethodTypeEntry; -import java.lang.classfile.constantpool.ModuleEntry; -import java.lang.classfile.constantpool.NameAndTypeEntry; -import java.lang.classfile.constantpool.PackageEntry; -import java.lang.classfile.constantpool.PoolEntry; -import java.lang.classfile.constantpool.StringEntry; -import java.lang.classfile.constantpool.Utf8Entry; - +import java.lang.classfile.BootstrapMethodEntry; +import java.lang.classfile.constantpool.*; import java.lang.constant.MethodTypeDesc; import java.util.List; import java.util.Objects; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/TransformImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/TransformImpl.java index 8478b1a51f035..23387fcb098d0 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/TransformImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/TransformImpl.java @@ -24,29 +24,11 @@ */ package jdk.internal.classfile.impl; -import java.lang.classfile.ClassFileBuilder; -import java.lang.classfile.ClassFileTransform; +import java.lang.classfile.*; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.function.Supplier; -import java.lang.classfile.ClassBuilder; -import java.lang.classfile.ClassElement; -import java.lang.classfile.ClassTransform; -import java.lang.classfile.ClassFileElement; -import java.lang.classfile.CodeBuilder; -import java.lang.classfile.CodeElement; -import java.lang.classfile.CodeModel; -import java.lang.classfile.CodeTransform; -import java.lang.classfile.FieldBuilder; -import java.lang.classfile.FieldElement; -import java.lang.classfile.FieldModel; -import java.lang.classfile.FieldTransform; -import java.lang.classfile.MethodBuilder; -import java.lang.classfile.MethodElement; -import java.lang.classfile.MethodModel; -import java.lang.classfile.MethodTransform; - public final class TransformImpl { // ClassTransform diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/UnboundAttribute.java b/src/java.base/share/classes/jdk/internal/classfile/impl/UnboundAttribute.java index a979a31c593c0..dfad66a897c27 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/UnboundAttribute.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/UnboundAttribute.java @@ -24,71 +24,17 @@ */ package jdk.internal.classfile.impl; -import java.util.Collection; -import java.util.List; -import java.util.Optional; - -import java.lang.classfile.Annotation; -import java.lang.classfile.AnnotationValue; -import java.lang.classfile.Attribute; -import java.lang.classfile.AttributeMapper; -import java.lang.classfile.Attributes; -import java.lang.classfile.BootstrapMethodEntry; +import java.lang.classfile.*; +import java.lang.classfile.attribute.*; import java.lang.classfile.constantpool.ClassEntry; -import java.lang.classfile.TypeAnnotation; -import java.lang.classfile.attribute.AnnotationDefaultAttribute; -import java.lang.classfile.attribute.BootstrapMethodsAttribute; -import java.lang.classfile.attribute.CharacterRangeInfo; -import java.lang.classfile.attribute.CharacterRangeTableAttribute; -import java.lang.classfile.attribute.CompilationIDAttribute; -import java.lang.classfile.attribute.ConstantValueAttribute; -import java.lang.classfile.attribute.DeprecatedAttribute; -import java.lang.classfile.attribute.EnclosingMethodAttribute; -import java.lang.classfile.attribute.ExceptionsAttribute; -import java.lang.classfile.attribute.InnerClassInfo; -import java.lang.classfile.attribute.InnerClassesAttribute; -import java.lang.classfile.attribute.LineNumberInfo; -import java.lang.classfile.attribute.LineNumberTableAttribute; -import java.lang.classfile.attribute.LocalVariableInfo; -import java.lang.classfile.attribute.LocalVariableTableAttribute; -import java.lang.classfile.attribute.LocalVariableTypeInfo; -import java.lang.classfile.attribute.LocalVariableTypeTableAttribute; -import java.lang.classfile.attribute.MethodParameterInfo; -import java.lang.classfile.attribute.MethodParametersAttribute; -import java.lang.classfile.attribute.ModuleAttribute; -import java.lang.classfile.attribute.ModuleExportInfo; -import java.lang.classfile.attribute.ModuleHashInfo; -import java.lang.classfile.attribute.ModuleHashesAttribute; -import java.lang.classfile.attribute.ModuleMainClassAttribute; -import java.lang.classfile.attribute.ModuleOpenInfo; -import java.lang.classfile.attribute.ModulePackagesAttribute; -import java.lang.classfile.attribute.ModuleProvideInfo; -import java.lang.classfile.attribute.ModuleRequireInfo; -import java.lang.classfile.attribute.ModuleResolutionAttribute; -import java.lang.classfile.attribute.ModuleTargetAttribute; -import java.lang.classfile.attribute.NestHostAttribute; -import java.lang.classfile.attribute.NestMembersAttribute; -import java.lang.classfile.attribute.PermittedSubclassesAttribute; -import java.lang.classfile.attribute.RecordAttribute; -import java.lang.classfile.attribute.RecordComponentInfo; -import java.lang.classfile.attribute.RuntimeInvisibleAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeInvisibleParameterAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeInvisibleTypeAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeVisibleAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeVisibleParameterAnnotationsAttribute; -import java.lang.classfile.attribute.RuntimeVisibleTypeAnnotationsAttribute; -import java.lang.classfile.attribute.SignatureAttribute; -import java.lang.classfile.attribute.SourceDebugExtensionAttribute; -import java.lang.classfile.attribute.SourceFileAttribute; -import java.lang.classfile.attribute.SourceIDAttribute; -import java.lang.classfile.attribute.StackMapTableAttribute; -import java.lang.classfile.attribute.StackMapFrameInfo; -import java.lang.classfile.attribute.SyntheticAttribute; import java.lang.classfile.constantpool.ConstantValueEntry; import java.lang.classfile.constantpool.ModuleEntry; import java.lang.classfile.constantpool.NameAndTypeEntry; import java.lang.classfile.constantpool.PackageEntry; import java.lang.classfile.constantpool.Utf8Entry; +import java.util.Collection; +import java.util.List; +import java.util.Optional; import jdk.internal.access.SharedSecrets; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/Util.java b/src/java.base/share/classes/jdk/internal/classfile/impl/Util.java index 0c4410bb5ea1c..352019dd9dace 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/Util.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/Util.java @@ -24,40 +24,28 @@ */ package jdk.internal.classfile.impl; -import java.lang.classfile.CodeBuilder; -import java.lang.classfile.CustomAttribute; -import java.lang.classfile.FieldBuilder; -import java.lang.classfile.MethodBuilder; -import java.lang.classfile.PseudoInstruction; +import java.lang.classfile.*; +import java.lang.classfile.attribute.CodeAttribute; +import java.lang.classfile.components.ClassPrinter; +import java.lang.classfile.constantpool.ClassEntry; +import java.lang.classfile.constantpool.ModuleEntry; import java.lang.classfile.constantpool.PoolEntry; import java.lang.classfile.constantpool.Utf8Entry; import java.lang.constant.ClassDesc; import java.lang.constant.MethodTypeDesc; +import java.lang.constant.ModuleDesc; +import java.lang.reflect.AccessFlag; import java.util.AbstractList; import java.util.Collection; import java.util.List; +import java.util.function.Consumer; import java.util.function.Function; -import java.lang.classfile.Attribute; -import java.lang.classfile.AttributeMapper; -import java.lang.classfile.Attributes; -import java.lang.classfile.BufWriter; -import java.lang.classfile.ClassFile; -import java.lang.classfile.Opcode; -import java.lang.classfile.constantpool.ClassEntry; -import java.lang.classfile.constantpool.ModuleEntry; -import java.lang.classfile.constantpool.NameAndTypeEntry; -import java.lang.constant.ModuleDesc; -import java.lang.reflect.AccessFlag; import jdk.internal.access.SharedSecrets; import jdk.internal.vm.annotation.ForceInline; import jdk.internal.vm.annotation.Stable; import static java.lang.classfile.ClassFile.ACC_STATIC; -import java.lang.classfile.attribute.CodeAttribute; -import java.lang.classfile.components.ClassPrinter; -import java.util.function.Consumer; - import static jdk.internal.constant.PrimitiveClassDescImpl.CD_double; import static jdk.internal.constant.PrimitiveClassDescImpl.CD_long; import static jdk.internal.constant.PrimitiveClassDescImpl.CD_void; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/ParserVerifier.java b/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/ParserVerifier.java index ed735b41e0e78..521d74ae1332f 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/ParserVerifier.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/ParserVerifier.java @@ -24,38 +24,27 @@ */ package jdk.internal.classfile.impl.verifier; -import java.lang.classfile.Annotation; -import java.lang.classfile.AnnotationValue; -import java.lang.constant.ClassDesc; -import static java.lang.constant.ConstantDescs.CLASS_INIT_NAME; -import static java.lang.constant.ConstantDescs.INIT_NAME; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.function.Consumer; -import java.util.stream.Collectors; -import java.lang.classfile.Attribute; -import java.lang.classfile.AttributedElement; -import java.lang.classfile.Attributes; -import java.lang.classfile.ClassModel; -import java.lang.classfile.ClassFileElement; -import java.lang.classfile.CodeModel; -import java.lang.classfile.CompoundElement; -import java.lang.classfile.CustomAttribute; -import java.lang.classfile.FieldModel; -import java.lang.classfile.MethodModel; -import java.lang.classfile.TypeAnnotation; -import java.lang.classfile.TypeKind; +import java.lang.classfile.*; import java.lang.classfile.attribute.*; import java.lang.classfile.constantpool.*; +import java.lang.constant.ClassDesc; import java.lang.constant.ConstantDescs; import java.lang.reflect.AccessFlag; +import java.util.ArrayList; import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.function.Consumer; import java.util.function.Function; import java.util.function.ToIntFunction; +import java.util.stream.Collectors; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.Util; +import static java.lang.constant.ConstantDescs.CLASS_INIT_NAME; +import static java.lang.constant.ConstantDescs.INIT_NAME; + /** * ParserVerifier performs selected checks of the class file format according to * {@jvms 4.8 Format Checking} diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationBytecodes.java b/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationBytecodes.java index 5aed968c6aefc..b12ec5101f5e5 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationBytecodes.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationBytecodes.java @@ -24,9 +24,9 @@ */ package jdk.internal.classfile.impl.verifier; -import static jdk.internal.classfile.impl.RawBytecodeHelper.*; - import jdk.internal.classfile.impl.verifier.VerificationSignature.BasicType; + +import static jdk.internal.classfile.impl.RawBytecodeHelper.*; import static jdk.internal.classfile.impl.verifier.VerificationSignature.BasicType.*; /** diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationTable.java b/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationTable.java index db07e0aa45b96..af009297405e5 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationTable.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationTable.java @@ -24,7 +24,9 @@ */ package jdk.internal.classfile.impl.verifier; -import static jdk.internal.classfile.impl.verifier.VerificationType.*; +import static jdk.internal.classfile.impl.verifier.VerificationType.ITEM_Object; +import static jdk.internal.classfile.impl.verifier.VerificationType.ITEM_Uninitialized; +import static jdk.internal.classfile.impl.verifier.VerificationType.ITEM_UninitializedThis; /** * @see hotspot/share/classfile/stackMapTable.hpp diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationType.java b/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationType.java index a2ecda88438a1..ff29d931332f5 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationType.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationType.java @@ -29,10 +29,11 @@ import java.util.IdentityHashMap; import java.util.Map; import java.util.Objects; + import jdk.internal.classfile.impl.ClassHierarchyImpl; import jdk.internal.classfile.impl.Util; + import static jdk.internal.classfile.impl.verifier.VerifierImpl.*; -import static jdk.internal.classfile.impl.verifier.VerificationSignature.BasicType.*; /** * @see hotspot/share/classfile/verificationType.hpp diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationWrapper.java b/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationWrapper.java index d34f579b1f4f3..c76d0789244b0 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationWrapper.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationWrapper.java @@ -25,21 +25,21 @@ */ package jdk.internal.classfile.impl.verifier; -import java.lang.constant.ClassDesc; -import java.util.LinkedList; -import java.util.List; - +import java.lang.classfile.Attributes; +import java.lang.classfile.ClassModel; +import java.lang.classfile.MethodModel; +import java.lang.classfile.attribute.LocalVariableInfo; import java.lang.classfile.constantpool.ClassEntry; +import java.lang.classfile.constantpool.ConstantPool; import java.lang.classfile.constantpool.DynamicConstantPoolEntry; import java.lang.classfile.constantpool.MemberRefEntry; import java.lang.classfile.constantpool.NameAndTypeEntry; +import java.lang.constant.ClassDesc; import java.lang.reflect.AccessFlag; +import java.util.LinkedList; +import java.util.List; import java.util.stream.Collectors; -import java.lang.classfile.ClassModel; -import java.lang.classfile.constantpool.ConstantPool; -import java.lang.classfile.MethodModel; -import java.lang.classfile.attribute.LocalVariableInfo; -import java.lang.classfile.Attributes; + import jdk.internal.classfile.impl.BoundAttribute; import jdk.internal.classfile.impl.CodeImpl; import jdk.internal.classfile.impl.Util; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerifierImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerifierImpl.java index f41647788a175..ed93ff1fc5d67 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerifierImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerifierImpl.java @@ -24,20 +24,23 @@ */ package jdk.internal.classfile.impl.verifier; +import java.lang.classfile.ClassHierarchyResolver; +import java.lang.classfile.ClassModel; +import java.lang.classfile.components.ClassPrinter; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.function.Consumer; -import java.lang.classfile.ClassHierarchyResolver; -import java.lang.classfile.ClassModel; -import java.lang.classfile.components.ClassPrinter; + import jdk.internal.classfile.impl.ClassHierarchyImpl; import jdk.internal.classfile.impl.RawBytecodeHelper; -import static jdk.internal.classfile.impl.RawBytecodeHelper.*; -import jdk.internal.classfile.impl.verifier.VerificationWrapper.ConstantPoolWrapper; -import static jdk.internal.classfile.impl.verifier.VerificationSignature.BasicType.*; import jdk.internal.classfile.impl.verifier.VerificationSignature.BasicType; +import jdk.internal.classfile.impl.verifier.VerificationWrapper.ConstantPoolWrapper; + +import static jdk.internal.classfile.impl.RawBytecodeHelper.*; import static jdk.internal.classfile.impl.verifier.VerificationFrame.FLAG_THIS_UNINIT; +import static jdk.internal.classfile.impl.verifier.VerificationSignature.BasicType.T_BOOLEAN; +import static jdk.internal.classfile.impl.verifier.VerificationSignature.BasicType.T_LONG; /** * VerifierImpl performs selected checks and verifications of the class file diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java index 6abf9f057b043..233629e10bb56 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2024, 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 @@ -2192,7 +2192,7 @@ public void visitCompoundAnnotationProxy(CompoundAnnotationProxy proxy) { Type resolvePossibleProxyType(Type t) { if (t instanceof ProxyType proxyType) { - Assert.check(requestingOwner.owner.kind == MDL); + Assert.check(requestingOwner.owner instanceof ModuleSymbol); ModuleSymbol prevCurrentModule = currentModule; currentModule = (ModuleSymbol) requestingOwner.owner; try { diff --git a/test/hotspot/gtest/logging/test_logDefaultDecorators.cpp b/test/hotspot/gtest/logging/test_logDefaultDecorators.cpp new file mode 100644 index 0000000000000..8ffe97da0dbc5 --- /dev/null +++ b/test/hotspot/gtest/logging/test_logDefaultDecorators.cpp @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2024, 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 "jvm.h" +#include "logging/logDecorators.hpp" +#include "logging/logTag.hpp" +#include "unittest.hpp" + + +class TestLogDecorators : public testing::Test { + using LD = LogDecorators; + + static const size_t defaults_cnt = 3; + LD::DefaultUndecoratedSelection defaults[defaults_cnt] = { + LD::DefaultUndecoratedSelection::make(), + LD::DefaultUndecoratedSelection::make(), + LD::DefaultUndecoratedSelection::make(), + }; + +public: + void test_default_decorators() { + LogTagType tags[LogTag::MaxTags] = { LogTag::__NO_TAG, LogTag::__NO_TAG, LogTag::__NO_TAG, LogTag::__NO_TAG, LogTag::__NO_TAG }; + bool result; + + // If a -Xlog selection matches one of the undecorated defaults, the default decorators will be disabled + tags[0] = LogTagType::_jit; + result = LD::has_disabled_default_decorators(LogSelection(tags, false, LogLevelType::Trace), defaults, defaults_cnt); + EXPECT_TRUE(result); + + + // If a -Xlog selection contains one of the undecorated defaults, the default decorators will be disabled + tags[0] = LogTagType::_jit; + tags[1] = LogTagType::_inlining; + result = LD::has_disabled_default_decorators(LogSelection(tags, false, LogLevelType::Trace), defaults, defaults_cnt); + EXPECT_TRUE(result); + + + // Wildcards are ignored + tags[0] = LogTag::_compilation; + result = LD::has_disabled_default_decorators(LogSelection(tags, true, LogLevelType::Debug), defaults, defaults_cnt); + EXPECT_FALSE(result); + + + // If there is no level match, default decorators are kept + tags[0] = LogTagType::_gc; + result = LD::has_disabled_default_decorators(LogSelection(tags, false, LogLevelType::Info), defaults, defaults_cnt); + EXPECT_FALSE(result); + + + // If NotMentioned is specified, it will match every level and so default decorators will never be added if there is a positive tagset match + tags[0] = LogTagType::_ref; + result = LD::has_disabled_default_decorators(LogSelection(tags, false, LogLevelType::Error), defaults, defaults_cnt); + EXPECT_TRUE(result); + result = LD::has_disabled_default_decorators(LogSelection(tags, false, LogLevelType::Warning), defaults, defaults_cnt); + EXPECT_TRUE(result); + result = LD::has_disabled_default_decorators(LogSelection(tags, false, LogLevelType::Info), defaults, defaults_cnt); + EXPECT_TRUE(result); + result = LD::has_disabled_default_decorators(LogSelection(tags, false, LogLevelType::Debug), defaults, defaults_cnt); + EXPECT_TRUE(result); + result = LD::has_disabled_default_decorators(LogSelection(tags, false, LogLevelType::Trace), defaults, defaults_cnt); + EXPECT_TRUE(result); + } + + void test_mask_from_decorators() { + // Single tags should yield 2^{decorator_value_in_enum} + EXPECT_EQ(LD::mask_from_decorators(LD::time_decorator), (uint)(1 << LD::time_decorator)); + EXPECT_EQ(LD::mask_from_decorators(LD::pid_decorator), (uint)(1 << LD::pid_decorator)); + EXPECT_EQ(LD::mask_from_decorators(LD::tid_decorator), (uint)(1 << LD::tid_decorator)); + EXPECT_EQ(LD::mask_from_decorators(LD::tags_decorator), (uint)(1 << LD::tags_decorator)); + + // Combinations of decorators should fill the mask accordingly to their bitmask positions + uint mask = (1 << LD::time_decorator) | (1 << LD::uptimemillis_decorator) | (1 << LD::tid_decorator); + EXPECT_EQ(LD::mask_from_decorators(LD::time_decorator, LD::uptimemillis_decorator, LD::tid_decorator), mask); + } +}; + +TEST_VM_F(TestLogDecorators, MaskFromDecorators) { + test_mask_from_decorators(); +} + +TEST_VM_F(TestLogDecorators, HasDefaultDecorators) { + test_default_decorators(); +} diff --git a/test/hotspot/gtest/runtime/test_os.cpp b/test/hotspot/gtest/runtime/test_os.cpp index 78e5212ab3709..fe3c634056c2f 100644 --- a/test/hotspot/gtest/runtime/test_os.cpp +++ b/test/hotspot/gtest/runtime/test_os.cpp @@ -405,6 +405,86 @@ TEST_VM(os, jio_snprintf) { test_snprintf(jio_snprintf, false); } +#ifndef MAX_PATH +#define MAX_PATH (2 * K) +#endif + +TEST_VM(os, realpath) { + // POSIX requires that the file exists; Windows tests for a valid drive letter + // but may or may not test if the file exists. */ + static const char* nosuchpath = "/1234567890123456789"; + static const char* tmppath = "/tmp"; + + char buffer[MAX_PATH]; + + // Test a non-existant path, but provide a short buffer. + errno = 0; + const char* returnedBuffer = os::realpath(nosuchpath, buffer, sizeof(nosuchpath) - 2); + // Reports ENOENT on Linux, ENAMETOOLONG on Windows. + EXPECT_TRUE(returnedBuffer == nullptr); +#ifdef _WINDOWS + EXPECT_TRUE(errno == ENAMETOOLONG); +#else + EXPECT_TRUE(errno == ENOENT); +#endif + + // Test a non-existant path, but provide an adequate buffer. + errno = 0; + buffer[0] = 0; + returnedBuffer = os::realpath(nosuchpath, buffer, sizeof(nosuchpath) + 3); + // Reports ENOENT on Linux, may return 0 (and report an error) or buffer on some versions of Windows. +#ifdef _WINDOWS + if (returnedBuffer != nullptr) { + EXPECT_TRUE(returnedBuffer == buffer); + } else { + EXPECT_TRUE(errno != 0); + } +#else + EXPECT_TRUE(returnedBuffer == nullptr); + EXPECT_TRUE(errno == ENOENT); +#endif + + // Test an existing path using a large buffer. + errno = 0; + returnedBuffer = os::realpath(tmppath, buffer, MAX_PATH); + EXPECT_TRUE(returnedBuffer == buffer); + + // Test an existing path using a buffer that is too small on a normal macOS install. + errno = 0; + returnedBuffer = os::realpath(tmppath, buffer, strlen(tmppath) + 3); + // On MacOS, /tmp is a symlink to /private/tmp, so doesn't fit in a small buffer. +#ifndef __APPLE__ + EXPECT_TRUE(returnedBuffer == buffer); +#else + EXPECT_TRUE(returnedBuffer == nullptr); + EXPECT_TRUE(errno == ENAMETOOLONG); +#endif + + // Test an existing path using a buffer that is too small. + errno = 0; + returnedBuffer = os::realpath(tmppath, buffer, strlen(tmppath) - 1); + EXPECT_TRUE(returnedBuffer == nullptr); + EXPECT_TRUE(errno == ENAMETOOLONG); + + // The following tests cause an assert inside os::realpath() in fastdebug mode: +#ifndef ASSERT + errno = 0; + returnedBuffer = os::realpath(nullptr, buffer, sizeof(buffer)); + EXPECT_TRUE(returnedBuffer == nullptr); + EXPECT_TRUE(errno == EINVAL); + + errno = 0; + returnedBuffer = os::realpath(tmppath, nullptr, sizeof(buffer)); + EXPECT_TRUE(returnedBuffer == nullptr); + EXPECT_TRUE(errno == EINVAL); + + errno = 0; + returnedBuffer = os::realpath(tmppath, buffer, 0); + EXPECT_TRUE(returnedBuffer == nullptr); + EXPECT_TRUE(errno == EINVAL); +#endif +} + #ifdef __APPLE__ // Not all macOS versions can use os::reserve_memory (i.e. anon_mmap) API // to reserve executable memory, so before attempting to use it, diff --git a/test/hotspot/jtreg/ProblemList-Xcomp.txt b/test/hotspot/jtreg/ProblemList-Xcomp.txt index 2e9b6da3828ec..1d3342f9b7e8b 100644 --- a/test/hotspot/jtreg/ProblemList-Xcomp.txt +++ b/test/hotspot/jtreg/ProblemList-Xcomp.txt @@ -56,6 +56,4 @@ compiler/cha/TypeProfileFinalMethod.java 8341039 generic-all gc/arguments/TestNewSizeFlags.java 8299116 macosx-aarch64 -runtime/cds/appcds/DumpRuntimeClassesTest.java 8341452 generic-all - runtime/condy/escapeAnalysis/TestEscapeCondy.java 8339694 generic-all diff --git a/test/hotspot/jtreg/runtime/cds/appcds/DumpRuntimeClassesTest.java b/test/hotspot/jtreg/runtime/cds/appcds/DumpRuntimeClassesTest.java index 2e530a8d6ddab..c31d96b1c824d 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/DumpRuntimeClassesTest.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/DumpRuntimeClassesTest.java @@ -27,6 +27,9 @@ * @summary Classes used by CDS at runtime should be in the archived * @bug 8324259 * @requires vm.cds + * @requires vm.compMode != "Xcomp" + * @comment Running this test with -Xcomp may load other classes which + * are not used in other modes * @library /test/lib * @compile test-classes/Hello.java * @run driver DumpRuntimeClassesTest diff --git a/test/hotspot/jtreg/runtime/logging/DefaultLogDecoratorsTest.java b/test/hotspot/jtreg/runtime/logging/DefaultLogDecoratorsTest.java new file mode 100644 index 0000000000000..c237414562226 --- /dev/null +++ b/test/hotspot/jtreg/runtime/logging/DefaultLogDecoratorsTest.java @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2024, 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 + * @requires vm.flagless + * @summary Running -Xlog with tags which have disabled default decorators should not yield decorated logs + * @library /test/lib + * @modules java.base/jdk.internal.misc + * java.management + * @run driver DefaultLogDecoratorsTest + */ + +import jdk.test.lib.process.OutputAnalyzer; +import jdk.test.lib.Platform; +import jdk.test.lib.process.ProcessTools; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.regex.Pattern; +import java.util.List; +import java.util.Arrays; +import java.util.ArrayList; + +public class DefaultLogDecoratorsTest { + private static Pattern DECORATED_LINE = Pattern.compile("(\\[.+\\])+ .*"); + + private static void doTest(boolean shouldHave, String... xlog) throws Exception { + List argsList = new ArrayList(Arrays.asList(xlog)); + argsList.add(InnerClass.class.getName()); + String[] args = argsList.toArray(new String[0]); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(args); + OutputAnalyzer output = new OutputAnalyzer(pb.start()); + output.shouldHaveExitValue(0); + List allLines = Files.readAllLines(Path.of("decorators.log")); + for (String line : allLines) { + if (DECORATED_LINE.matcher(line).find() == !shouldHave) { + throw new RuntimeException("Logging should " + (shouldHave ? "" : "not ") + "contain decorators!"); + } + } + } + + public static void main(String[] args) throws Exception { + // JIT inlining logging, as per defaults, shall have all decorators disabled + doTest(false, "-Xlog:jit+inlining*=trace:decorators.log"); + + // If decorators are specified, the defaults are not taken into account + doTest(true, "-Xlog:jit+inlining*=trace:decorators.log:time"); + + // Even if decorators are only supplied for another tag(s), the defaults are not taken into account + doTest(true, "-Xlog:jit+inlining*=trace:decorators.log", "-Xlog:gc*=info:decorators.log:time"); + + // Defaults are not taken into account also when another tag implicitly imposes the "standard" defaults + doTest(true, "-Xlog:jit+inlining*=trace:decorators.log", "-Xlog:gc*=info:decorators.log"); + + // Other logging shall not be affected by a tag with defaults + doTest(true, "-Xlog:gc*=trace:decorators.log"); + } + + public static class InnerClass { + public static void main(String[] args) throws Exception { + System.out.println("DefaultLogDecorators test"); + } + } +} diff --git a/test/hotspot/jtreg/vmTestbase/gc/gctests/PhantomReference/phantom001/phantom001.java b/test/hotspot/jtreg/vmTestbase/gc/gctests/PhantomReference/phantom001/phantom001.java index d45adbf4efd1a..9f5fc94221ede 100644 --- a/test/hotspot/jtreg/vmTestbase/gc/gctests/PhantomReference/phantom001/phantom001.java +++ b/test/hotspot/jtreg/vmTestbase/gc/gctests/PhantomReference/phantom001/phantom001.java @@ -177,14 +177,15 @@ public void run() { // If referent is finalizable, provoke GCs and wait for finalization. if (type.equals("class")) { progress("Waiting for finalization: " + type); + WhiteBox.getWhiteBox().fullGC(); for (int checks = 0; !finalized && !shouldTerminate(); ++checks) { - // There are scenarios where one WB.fillGC() isn't enough, - // but 10 iterations really ought to be sufficient. + // Wait for up to 10 iterations that the finalizer has been run, + // this ought to be sufficient. Full GCs and other threads might + // starve out the finalizer thread, requiring more waiting. if (checks > 10) { fail("Waiting for finalization: " + type); return; } - WhiteBox.getWhiteBox().fullGC(); // Give some time for finalizer to run. try { Thread.sleep(checks * 100); diff --git a/test/jdk/java/awt/Checkbox/AppearanceIfLargeFont.java b/test/jdk/java/awt/Checkbox/AppearanceIfLargeFont.java new file mode 100644 index 0000000000000..7995b43ed18d5 --- /dev/null +++ b/test/jdk/java/awt/Checkbox/AppearanceIfLargeFont.java @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2006, 2024, 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. + */ + +import java.awt.Button; +import java.awt.CheckboxMenuItem; +import java.awt.Frame; +import java.awt.PopupMenu; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +/* + * @test + * @bug 6401956 + * @summary The right mark of the CheckboxMenu item is broken + * @library /java/awt/regtesthelpers + * @build PassFailJFrame + * @run main/manual AppearanceIfLargeFont + */ + +public class AppearanceIfLargeFont extends Frame { + private static final String INSTRUCTIONS = """ + 1) Make sure that font-size is large. + You could change this using 'Appearance' dialog. + 2) Press button 'Press' + You will see a menu item with check-mark. + 3) If check-mark is correctly painted then the test passed. + Otherwise, test failed. + """; + + public static void main(String[] args) throws Exception { + PassFailJFrame.builder() + .title("AppearanceIfLargeFont") + .instructions(INSTRUCTIONS) + .columns(35) + .testUI(AppearanceIfLargeFont::new) + .build() + .awaitAndCheck(); + } + + public AppearanceIfLargeFont() { + createComponents(); + + setSize(200, 200); + validate(); + } + + void createComponents() { + final Button press = new Button("Press"); + final PopupMenu popup = new PopupMenu(); + press.add(popup); + add(press); + + CheckboxMenuItem item = new CheckboxMenuItem("CheckboxMenuItem", true); + popup.add(item); + + press.addActionListener( + new ActionListener() { + public void actionPerformed(ActionEvent ae) { + popup.show(press, press.getSize().width, 0); + } + } + ); + } +} diff --git a/test/jdk/java/awt/Checkbox/CheckboxMenuItemEventsTest.java b/test/jdk/java/awt/Checkbox/CheckboxMenuItemEventsTest.java new file mode 100644 index 0000000000000..425c24ba7ef42 --- /dev/null +++ b/test/jdk/java/awt/Checkbox/CheckboxMenuItemEventsTest.java @@ -0,0 +1,120 @@ +/* + * Copyright (c) 2003, 2024, 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. + */ + +import java.awt.BorderLayout; +import java.awt.Button; +import java.awt.CheckboxMenuItem; +import java.awt.Frame; +import java.awt.Panel; +import java.awt.PopupMenu; +import java.awt.TextArea; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; + +/* + * @test + * @bug 4814163 5005195 + * @library /java/awt/regtesthelpers + * @build PassFailJFrame + * @summary Tests events fired by CheckboxMenuItem + * @run main/manual CheckboxMenuItemEventsTest +*/ + +public class CheckboxMenuItemEventsTest extends Frame implements ActionListener { + Button trigger; + PopupMenu popup; + TextArea ta; + + class Listener implements ItemListener, ActionListener { + public void itemStateChanged(ItemEvent e) { + ta.append("CORRECT: ItemEvent fired\n"); + } + + public void actionPerformed(ActionEvent e) { + ta.append("ERROR: ActionEvent fired\n"); + } + } + + Listener listener = new Listener(); + + private static final String INSTRUCTIONS = """ + Press button to invoke popup menu + When you press checkbox menu item + Item state should toggle (on/off). + ItemEvent should be displayed in log below. + And ActionEvent should not be displayed + Press PASS if ItemEvents are generated + and ActionEvents are not, FAIL Otherwise. + """; + + public static void main(String[] args) throws Exception { + PassFailJFrame.builder() + .title("CheckboxMenuItemEventsTest") + .instructions(INSTRUCTIONS) + .columns(35) + .testUI(CheckboxMenuItemEventsTest::new) + .build() + .awaitAndCheck(); + } + + public CheckboxMenuItemEventsTest() { + CheckboxMenuItem i1 = new CheckboxMenuItem("CheckBoxMenuItem 1"); + CheckboxMenuItem i2 = new CheckboxMenuItem("CheckBoxMenuItem 2"); + Panel p1 = new Panel(); + Panel p2 = new Panel(); + + setLayout(new BorderLayout()); + ta = new TextArea(); + p2.add(ta); + + trigger = new Button("menu"); + trigger.addActionListener(this); + + popup = new PopupMenu(); + + i1.addItemListener(listener); + i1.addActionListener(listener); + popup.add(i1); + i2.addItemListener(listener); + i2.addActionListener(listener); + popup.add(i2); + + trigger.add(popup); + + p1.add(trigger); + + add(p1, BorderLayout.NORTH); + add(p2, BorderLayout.SOUTH); + + pack(); + validate(); + } + + public void actionPerformed(ActionEvent e) { + if (e.getSource() == (Object) trigger) { + popup.show(trigger, trigger.getSize().width, 0); + } + } +} diff --git a/test/jdk/java/awt/Container/ValidateTest.java b/test/jdk/java/awt/Container/ValidateTest.java new file mode 100644 index 0000000000000..935766094cf75 --- /dev/null +++ b/test/jdk/java/awt/Container/ValidateTest.java @@ -0,0 +1,78 @@ +/* + * Copyright (c) 1998, 2024, 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. + */ + +import java.awt.EventQueue; +import java.awt.Frame; +import java.awt.GridLayout; +import java.awt.Panel; + +/* + * @test + * @bug 4136190 + * @requires (os.family == "windows") + * @summary Recursive validation calls would cause major USER resource leakage + * @key headful + * @run main/timeout=30 ValidateTest + */ + +public class ValidateTest { + static Frame frame; + + public static void main(String args[]) throws Exception { + try { + EventQueue.invokeAndWait(() -> { + createGUI(); + }); + } finally { + EventQueue.invokeAndWait(() -> { + if (frame != null) { + frame.dispose(); + } + }); + } + } + + public static void createGUI() { + frame = new Frame("Test for 4136190 : JVM and win95 resource leakage issues"); + frame.setLayout(new GridLayout(1, 1)); + MyPanel panel = new MyPanel(); + frame.add(panel); + frame.invalidate(); + frame.validate(); + frame.setSize(500, 400); + frame.setVisible(true); + } + + static class MyPanel extends Panel { + int recurseCounter = 0; + + public void validate() { + recurseCounter++; + if (recurseCounter >= 100) { + return; + } + getParent().validate(); + super.validate(); + } + } +} \ No newline at end of file diff --git a/test/jdk/javax/management/remote/mandatory/connection/IIOPURLTest.java b/test/jdk/javax/management/remote/mandatory/connection/IIOPURLTest.java deleted file mode 100644 index cdbf829a9b22e..0000000000000 --- a/test/jdk/javax/management/remote/mandatory/connection/IIOPURLTest.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (c) 2003, 2015, 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 4886799 - * @summary Check that IIOP URLs have /ior/ in the path - * @author Eamonn McManus - * - * @run clean IIOPURLTest - * @run build IIOPURLTest - * @run main IIOPURLTest - */ - -import javax.management.MBeanServer; -import javax.management.MBeanServerConnection; -import javax.management.MBeanServerFactory; -import javax.management.Notification; -import javax.management.NotificationListener; -import javax.management.ObjectName; - -import javax.management.remote.JMXConnector; -import javax.management.remote.JMXConnectorFactory; -import javax.management.remote.JMXConnectorServer; -import javax.management.remote.JMXConnectorServerFactory; -import javax.management.remote.JMXServiceURL; - -public class IIOPURLTest { - - public static void main(String[] args) throws Exception { - JMXServiceURL inputAddr = - new JMXServiceURL("service:jmx:iiop://"); - JMXConnectorServer s; - try { - s = JMXConnectorServerFactory.newJMXConnectorServer(inputAddr, null, null); - } catch (java.net.MalformedURLException x) { - try { - Class.forName("javax.management.remote.rmi._RMIConnectionImpl_Tie"); - throw new RuntimeException("MalformedURLException thrown but iiop appears to be supported"); - } catch (ClassNotFoundException expected) { } - System.out.println("IIOP protocol not supported, test skipped"); - return; - } - MBeanServer mbs = MBeanServerFactory.createMBeanServer(); - mbs.registerMBean(s, new ObjectName("a:b=c")); - s.start(); - JMXServiceURL outputAddr = s.getAddress(); - if (!outputAddr.getURLPath().startsWith("/ior/IOR:")) { - throw new RuntimeException("URL path should start with \"/ior/IOR:\": " + - outputAddr); - } - System.out.println("IIOP URL path looks OK: " + outputAddr); - JMXConnector c = JMXConnectorFactory.connect(outputAddr); - System.out.println("Successfully got default domain: " + - c.getMBeanServerConnection().getDefaultDomain()); - c.close(); - s.stop(); - } -} diff --git a/test/langtools/tools/javac/modules/AnnotationsOnModules.java b/test/langtools/tools/javac/modules/AnnotationsOnModules.java index bfae27d4d21db..909b5294d00d2 100644 --- a/test/langtools/tools/javac/modules/AnnotationsOnModules.java +++ b/test/langtools/tools/javac/modules/AnnotationsOnModules.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, 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 @@ -23,7 +23,7 @@ /* * @test - * @bug 8159602 8170549 8171255 8171322 8254023 + * @bug 8159602 8170549 8171255 8171322 8254023 8341966 * @summary Test annotations on module declaration. * @library /tools/lib * @enablePreview @@ -35,8 +35,10 @@ */ import java.io.File; +import java.io.OutputStream; import java.nio.file.Files; import java.nio.file.Path; +import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List; @@ -55,6 +57,7 @@ import java.lang.classfile.*; import java.lang.classfile.ClassFile; import java.lang.classfile.attribute.*; +import java.lang.reflect.AccessFlag; import toolbox.JavacTask; import toolbox.Task; import toolbox.Task.OutputKind; @@ -726,6 +729,93 @@ public TestCase(String extraDecl, String decl, String use, String expectedAnnota } } + @Test + public void testBrokenModuleInfoClassWithAnnotation(Path base) throws Exception { + Path lib = base.resolve("lib"); + tb.writeJavaFiles(lib, + """ + @Deprecated + module m{} + """); + + Path libClasses = base.resolve("lib-classes"); + Files.createDirectories(libClasses); + + new JavacTask(tb) + .options("--release", "21") + .outdir(libClasses) + .files(findJavaFiles(lib)) + .run() + .writeAll(); + + Path modifiedModuleInfo = libClasses.resolve("module-info.class"); + ClassModel cm1 = ClassFile.of().parse(modifiedModuleInfo); + byte[] newBytes = ClassFile.of().transformClass(cm1, (builder, element) -> { + if (element instanceof ModuleAttribute attr) { + List requires = new ArrayList<>(); + + for (ModuleRequireInfo mri : attr.requires()) { + if (mri.requires().name().equalsString("java.base")) { + requires.add(ModuleRequireInfo.of(mri.requires(), + List.of(AccessFlag.TRANSITIVE), + mri.requiresVersion() + .orElse(null))); + } else { + requires.add(mri); + } + } + + builder.accept(ModuleAttribute.of(attr.moduleName(), + attr.moduleFlagsMask(), + attr.moduleVersion() + .orElseGet(() -> null), + requires, + attr.exports(), + attr.opens(), + attr.uses(), + attr.provides())); + } else { + builder.accept(element); + } + }); + + try (OutputStream out = Files.newOutputStream(modifiedModuleInfo)) { + out.write(newBytes); + } + + Path src = base.resolve("src"); + Path classes = base.resolve("classes"); + + tb.writeJavaFiles(src, + """ + public class C {} + """); + + Files.createDirectories(classes); + + List actualErrors = + new JavacTask(tb) + .options("--module-path", libClasses.toString(), + "--add-modules", "m", + "-XDshould-stop.at=FLOW", + "-XDdev", + "-XDrawDiagnostics") + .outdir(classes) + .files(findJavaFiles(src)) + .run(Task.Expect.FAIL) + .writeAll() + .getOutputLines(OutputKind.DIRECT); + List expectedErrors = List.of( + "- compiler.err.cant.access: m.module-info, (compiler.misc.bad.class.file.header: module-info.class, (compiler.misc.bad.requires.flag: ACC_TRANSITIVE (0x0020))", + "1 error" + ); + + if (!expectedErrors.equals(actualErrors)) { + throw new AssertionError("Unexpected errors, expected: " + expectedErrors + + ", but got: " + actualErrors); + } + } + private static final String OPT_EXPECTED_ANNOTATIONS = "expectedAnnotations"; @SupportedAnnotationTypes("*")