Merge
This commit is contained in:
commit
8f1e5bc574
3
.hgtags
3
.hgtags
@ -471,3 +471,6 @@ e569e83139fdfbecfeb3cd9014d560917787f158 jdk-10+38
|
||||
107413b070b92c88bde6230ceb4a19b579781068 jdk-10+43
|
||||
dfa46cfe56346884a61efdc30dc50f7505d66761 jdk-11+1
|
||||
03ae177c26b016353e5ea1cab6ffd051dfa086ca jdk-11+2
|
||||
663f20fc51091bd7f95d18448850ba091207b7bd jdk-10+44
|
||||
4f96cf952e71cb8a127334494faf28880c26181b jdk-10+45
|
||||
1fd4d6068f54561cfc67d54fc9ca84af7212c4f8 jdk-11+3
|
||||
|
@ -61,7 +61,7 @@ MODULES_SOURCE_PATH := $(call PathList, $(call GetModuleSrcPath) \
|
||||
$(SUPPORT_OUTPUTDIR)/rmic/* $(TOPDIR)/src/*/share/doc/stub)
|
||||
|
||||
# URLs
|
||||
JAVADOC_BASE_URL := http://www.oracle.com/pls/topic/lookup?ctx=javase9&id=homepage
|
||||
JAVADOC_BASE_URL := http://www.oracle.com/pls/topic/lookup?ctx=javase10&id=homepage
|
||||
BUG_SUBMIT_URL := http://bugreport.java.com/bugreport/
|
||||
COPYRIGHT_URL := {@docroot}/../legal/copyright.html
|
||||
LICENSE_URL := http://www.oracle.com/technetwork/java/javase/terms/license/java10speclicense.html
|
||||
|
@ -1127,6 +1127,8 @@ AC_DEFUN_ONCE([BASIC_SETUP_COMPLEX_TOOLS],
|
||||
fi
|
||||
fi
|
||||
BASIC_REQUIRE_PROGS(SETFILE, SetFile)
|
||||
elif test "x$OPENJDK_TARGET_OS" = "xsolaris"; then
|
||||
BASIC_REQUIRE_PROGS(ELFEDIT, elfedit)
|
||||
fi
|
||||
])
|
||||
|
||||
|
@ -710,6 +710,7 @@ CYGPATH:=@CYGPATH@
|
||||
LDD:=@LDD@
|
||||
OTOOL:=@OTOOL@
|
||||
READELF:=@READELF@
|
||||
ELFEDIT:=@ELFEDIT@
|
||||
EXPR:=@EXPR@
|
||||
FILE:=@FILE@
|
||||
DOT:=@DOT@
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -30,7 +30,7 @@
|
||||
ifndef _NATIVE_COMPILATION_GMK
|
||||
_NATIVE_COMPILATION_GMK := 1
|
||||
|
||||
ifeq (,$(_MAKEBASE_GMK))
|
||||
ifeq ($(_MAKEBASE_GMK), )
|
||||
$(error You must include MakeBase.gmk prior to including NativeCompilation.gmk)
|
||||
endif
|
||||
|
||||
@ -231,32 +231,32 @@ define add_native_source
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq (,$$(filter %.c,$2))
|
||||
ifneq ($$(filter %.c, $2), )
|
||||
# Compile as a C file
|
||||
$1_$2_FLAGS=$(CFLAGS_CCACHE) $$($1_$2_USE_PCH_FLAGS) $4 \
|
||||
$1_$2_FLAGS := $(CFLAGS_CCACHE) $$($1_$2_USE_PCH_FLAGS) $4 \
|
||||
$$($1_$(notdir $2)_OPT_CFLAGS) \
|
||||
$$($1_$(notdir $2)_CFLAGS) $$($1_$2_THIS_FILE) -c
|
||||
$1_$2_COMP=$5
|
||||
$1_$2_DEP_FLAG:=$(C_FLAG_DEPS)
|
||||
else ifneq (,$$(filter %.m,$2))
|
||||
$1_$2_COMP := $5
|
||||
$1_$2_DEP_FLAG := $(C_FLAG_DEPS)
|
||||
else ifneq ($$(filter %.m, $2), )
|
||||
# Compile as an Objective-C file
|
||||
$1_$2_FLAGS=-x objective-c $(CFLAGS_CCACHE) $$($1_$2_USE_PCH_FLAGS) $4 \
|
||||
$1_$2_FLAGS := -x objective-c $(CFLAGS_CCACHE) $$($1_$2_USE_PCH_FLAGS) $4 \
|
||||
$$($1_$(notdir $2)_OPT_CFLAGS) \
|
||||
$$($1_$(notdir $2)_CFLAGS) $$($1_$2_THIS_FILE) -c
|
||||
$1_$2_COMP=$5
|
||||
$1_$2_DEP_FLAG:=$(C_FLAG_DEPS)
|
||||
else ifneq (,$$(filter %.s %.S,$2))
|
||||
$1_$2_COMP := $5
|
||||
$1_$2_DEP_FLAG := $(C_FLAG_DEPS)
|
||||
else ifneq ($$(filter %.s %.S, $2), )
|
||||
# Compile as assembler file
|
||||
$1_$2_FLAGS=$8
|
||||
$1_$2_COMP=$(AS)
|
||||
$1_$2_DEP_FLAG:=
|
||||
else ifneq (,$$(filter %.cpp,$2)$$(filter %.cc,$2)$$(filter %.mm,$2))
|
||||
$1_$2_FLAGS := $8
|
||||
$1_$2_COMP := $(AS)
|
||||
$1_$2_DEP_FLAG :=
|
||||
else ifneq ($$(filter %.cpp, $2)$$(filter %.cc, $2)$$(filter %.mm, $2), )
|
||||
# Compile as a C++ or Objective-C++ file
|
||||
$1_$2_FLAGS=$(CFLAGS_CCACHE) $$($1_$2_USE_PCH_FLAGS) $6 \
|
||||
$1_$2_FLAGS := $(CFLAGS_CCACHE) $$($1_$2_USE_PCH_FLAGS) $6 \
|
||||
$$($1_$(notdir $2)_OPT_CXXFLAGS) \
|
||||
$$($1_$(notdir $2)_CXXFLAGS) $$($1_$2_THIS_FILE) -c
|
||||
$1_$2_COMP=$7
|
||||
$1_$2_DEP_FLAG:=$(CXX_FLAG_DEPS)
|
||||
$1_$2_COMP := $7
|
||||
$1_$2_DEP_FLAG := $(CXX_FLAG_DEPS)
|
||||
else
|
||||
$$(error Internal error in NativeCompilation.gmk: no compiler for file $2)
|
||||
endif
|
||||
@ -264,14 +264,14 @@ define add_native_source
|
||||
$1_$2_OBJ := $3/$$(call replace_with_obj_extension, $$(notdir $2))
|
||||
# Only continue if this object file hasn't been processed already. This lets the first found
|
||||
# source file override any other with the same name.
|
||||
ifeq (,$$(findstring $$($1_$2_OBJ),$$($1_OBJS_SO_FAR)))
|
||||
$1_OBJS_SO_FAR+=$$($1_$2_OBJ)
|
||||
ifeq (,$$(filter %.s %.S,$2))
|
||||
ifeq ($$(findstring $$($1_$2_OBJ), $$($1_OBJS_SO_FAR)), )
|
||||
$1_OBJS_SO_FAR += $$($1_$2_OBJ)
|
||||
ifeq ($$(filter %.s %.S, $2), )
|
||||
# And this is the dependency file for this obj file.
|
||||
$1_$2_DEP:=$$(patsubst %$(OBJ_SUFFIX),%.d,$$($1_$2_OBJ))
|
||||
$1_$2_DEP := $$(patsubst %$(OBJ_SUFFIX),%.d,$$($1_$2_OBJ))
|
||||
# The dependency target file lists all dependencies as empty targets
|
||||
# to avoid make error "No rule to make target" for removed files
|
||||
$1_$2_DEP_TARGETS:=$$(patsubst %$(OBJ_SUFFIX),%.d.targets,$$($1_$2_OBJ))
|
||||
$1_$2_DEP_TARGETS := $$(patsubst %$(OBJ_SUFFIX),%.d.targets,$$($1_$2_OBJ))
|
||||
|
||||
# Include previously generated dependency information. (if it exists)
|
||||
-include $$($1_$2_DEP)
|
||||
@ -280,7 +280,7 @@ define add_native_source
|
||||
ifeq ($(TOOLCHAIN_TYPE), microsoft)
|
||||
# To avoid name clashes between pdbs for objects and libs/execs, put
|
||||
# object pdbs in a separate subdir.
|
||||
$1_$2_DEBUG_OUT_FLAGS:=-Fd$$(strip $$(patsubst $$($1_OBJECT_DIR)/%, \
|
||||
$1_$2_DEBUG_OUT_FLAGS := -Fd$$(strip $$(patsubst $$($1_OBJECT_DIR)/%, \
|
||||
$$($1_OBJECT_DIR)/pdb/%, $$(patsubst %$(OBJ_SUFFIX),%.pdb,$$($1_$2_OBJ))))
|
||||
endif
|
||||
endif
|
||||
@ -293,10 +293,10 @@ define add_native_source
|
||||
endif
|
||||
|
||||
$$($1_$2_OBJ) : $2 $$($1_COMPILE_VARDEPS_FILE) $$($1_$2_VARDEPS_FILE) | $$($1_BUILD_INFO)
|
||||
$$(call LogInfo, Compiling $$(notdir $2) (for $$(notdir $$($1_TARGET))))
|
||||
$$(call LogInfo, Compiling $$(notdir $2) (for $$($1_BASENAME)))
|
||||
$$(call MakeDir, $$(@D) $$(@D)/pdb)
|
||||
ifneq ($(TOOLCHAIN_TYPE), microsoft)
|
||||
ifeq ($(TOOLCHAIN_TYPE)$$(filter %.s,$2), solstudio)
|
||||
ifeq ($(TOOLCHAIN_TYPE)$$(filter %.s, $2), solstudio)
|
||||
# The Solaris studio compiler doesn't output the full path to the object file in the
|
||||
# generated deps files. Fixing it with sed. If compiling assembly, don't try this.
|
||||
$$(call ExecuteWithLog, $$@, \
|
||||
@ -308,7 +308,7 @@ define add_native_source
|
||||
endif
|
||||
# Create a dependency target file from the dependency file.
|
||||
# Solution suggested by http://make.mad-scientist.net/papers/advanced-auto-dependency-generation/
|
||||
ifneq ($$($1_$2_DEP),)
|
||||
ifneq ($$($1_$2_DEP), )
|
||||
$(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_$2_DEP) > $$($1_$2_DEP_TARGETS)
|
||||
endif
|
||||
else
|
||||
@ -338,6 +338,9 @@ endef
|
||||
# and the targets generated are listed in a variable by that name.
|
||||
#
|
||||
# Remaining parameters are named arguments. These include:
|
||||
# NAME The base name for the resulting binary, excluding decorations (like *.exe)
|
||||
# TYPE Type of binary (EXECUTABLE, LIBRARY or STATIC_LIBRARY). Default is LIBRARY.
|
||||
# SUFFIX Override the default suffix for the output file
|
||||
# TOOLCHAIN Name of toolchain setup to use. Defaults to TOOLCHAIN_DEFAULT.
|
||||
# SRC one or more directory roots to scan for C/C++ files.
|
||||
# CFLAGS the compiler flags to be used, used both for C and C++.
|
||||
@ -347,8 +350,6 @@ endef
|
||||
# ARFLAGS the archiver flags to be used
|
||||
# OBJECT_DIR the directory where we store the object files
|
||||
# OUTPUT_DIR the directory where the resulting binary is put
|
||||
# LIBRARY the resulting library file
|
||||
# PROGRAM the resulting exec file
|
||||
# INCLUDES only pick source from these directories
|
||||
# EXCLUDES do not pick source from these directories
|
||||
# INCLUDE_FILES only compile exactly these files!
|
||||
@ -385,106 +386,60 @@ endef
|
||||
SetupNativeCompilation = $(NamedParamsMacroTemplate)
|
||||
define SetupNativeCompilationBody
|
||||
|
||||
# If type is unspecified, default to LIBRARY
|
||||
ifeq ($$($1_TYPE), )
|
||||
$1_TYPE := LIBRARY
|
||||
endif
|
||||
|
||||
# If we're doing a static build and producing a library
|
||||
# force it to be a static library and remove the -l libraries
|
||||
ifeq ($(STATIC_BUILD), true)
|
||||
ifneq ($$($1_LIBRARY),)
|
||||
$1_STATIC_LIBRARY := $$($1_LIBRARY)
|
||||
$1_LIBRARY :=
|
||||
ifeq ($$($1_TYPE), LIBRARY)
|
||||
$1_TYPE := STATIC_LIBRARY
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq (,$$($1_BIN))
|
||||
$$(error BIN has been replaced with OBJECT_DIR)
|
||||
endif
|
||||
|
||||
ifneq (,$$($1_LIB))
|
||||
$$(error LIB has been replaced with LIBRARY)
|
||||
endif
|
||||
|
||||
ifneq (,$$($1_EXE))
|
||||
$$(error EXE has been replaced with PROGRAM)
|
||||
endif
|
||||
|
||||
ifneq (,$$($1_LIBRARY))
|
||||
ifeq (,$$($1_OUTPUT_DIR))
|
||||
$$(error LIBRARY requires OUTPUT_DIR)
|
||||
endif
|
||||
|
||||
ifneq ($$($1_LIBRARY),$(basename $$($1_LIBRARY)))
|
||||
$$(error directory of LIBRARY should be specified using OUTPUT_DIR)
|
||||
endif
|
||||
|
||||
ifneq (,$(findstring $(SHARED_LIBRARY_SUFFIX),$$($1_LIBRARY)))
|
||||
$$(error LIBRARY should be specified without SHARED_LIBRARY_SUFFIX: $(SHARED_LIBRARY_SUFFIX))
|
||||
endif
|
||||
|
||||
ifneq (,$(findstring $(LIBRARY_PREFIX),$$($1_LIBRARY)))
|
||||
$$(error LIBRARY should be specified without LIBRARY_PREFIX: $(LIBRARY_PREFIX))
|
||||
endif
|
||||
|
||||
ifeq ($$($1_SUFFIX), )
|
||||
$1_SUFFIX := $(SHARED_LIBRARY_SUFFIX)
|
||||
endif
|
||||
|
||||
$1_BASENAME:=$(LIBRARY_PREFIX)$$($1_LIBRARY)$$($1_SUFFIX)
|
||||
$1_TARGET:=$$($1_OUTPUT_DIR)/$$($1_BASENAME)
|
||||
$1_NOSUFFIX:=$(LIBRARY_PREFIX)$$($1_LIBRARY)
|
||||
endif
|
||||
|
||||
ifneq (,$$($1_STATIC_LIBRARY))
|
||||
ifeq (,$$($1_OUTPUT_DIR))
|
||||
$$(error STATIC_LIBRARY requires OUTPUT_DIR)
|
||||
endif
|
||||
|
||||
ifneq ($$($1_STATIC_LIBRARY),$(basename $$($1_STATIC_LIBRARY)))
|
||||
$$(error directory of STATIC_LIBRARY should be specified using OUTPUT_DIR)
|
||||
endif
|
||||
|
||||
ifneq (,$(findstring $(STATIC_LIBRARY_SUFFIX),$$($1_STATIC_LIBRARY)))
|
||||
$$(error STATIC_LIBRARY should be specified without STATIC_LIBRARY_SUFFIX: $(STATIC_LIBRARY_SUFFIX))
|
||||
endif
|
||||
|
||||
ifneq (,$(findstring $(LIBRARY_PREFIX),$$($1_STATIC_LIBRARY)))
|
||||
$$(error STATIC_LIBRARY should be specified without LIBRARY_PREFIX: $(LIBRARY_PREFIX))
|
||||
endif
|
||||
|
||||
ifeq ($$($1_SUFFIX), )
|
||||
$1_SUFFIX := $(STATIC_LIBRARY_SUFFIX)
|
||||
endif
|
||||
|
||||
$1_BASENAME:=$(LIBRARY_PREFIX)$$($1_STATIC_LIBRARY)$$($1_SUFFIX)
|
||||
$1_TARGET:=$$($1_OUTPUT_DIR)/$$($1_BASENAME)
|
||||
$1_NOSUFFIX:=$(LIBRARY_PREFIX)$$($1_STATIC_LIBRARY)
|
||||
endif
|
||||
|
||||
ifneq (,$$($1_PROGRAM))
|
||||
ifeq (,$$($1_OUTPUT_DIR))
|
||||
$$(error PROGRAM requires OUTPUT_DIR)
|
||||
endif
|
||||
|
||||
ifneq ($$($1_PROGRAM),$(basename $$($1_PROGRAM)))
|
||||
$$(error directory of PROGRAM should be specified using OUTPUT_DIR)
|
||||
endif
|
||||
|
||||
ifneq (,$(findstring $(EXE_SUFFIX),$$($1_PROGRAM)))
|
||||
$$(error PROGRAM should be specified without EXE_SUFFIX: $(EXE_SUFFIX))
|
||||
endif
|
||||
|
||||
ifeq ($$($1_TYPE), EXECUTABLE)
|
||||
$1_PREFIX :=
|
||||
ifeq ($$($1_SUFFIX), )
|
||||
$1_SUFFIX := $(EXE_SUFFIX)
|
||||
endif
|
||||
|
||||
$1_BASENAME:=$$($1_PROGRAM)$$($1_SUFFIX)
|
||||
$1_TARGET:=$$($1_OUTPUT_DIR)/$$($1_BASENAME)
|
||||
$1_NOSUFFIX:=$$($1_PROGRAM)
|
||||
else
|
||||
$1_PREFIX := $(LIBRARY_PREFIX)
|
||||
ifeq ($$($1_TYPE), LIBRARY)
|
||||
ifeq ($$($1_SUFFIX), )
|
||||
$1_SUFFIX := $(SHARED_LIBRARY_SUFFIX)
|
||||
endif
|
||||
else ifeq ($$($1_TYPE), STATIC_LIBRARY)
|
||||
ifeq ($$($1_SUFFIX), )
|
||||
$1_SUFFIX := $(STATIC_LIBRARY_SUFFIX)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($$($1_NAME), $(basename $$($1_NAME)))
|
||||
$$(error NAME must not contain any directory path in $1)
|
||||
endif
|
||||
ifneq ($(findstring $$($1_SUFFIX), $$($1_NAME)), )
|
||||
$$(error NAME should be specified without suffix: $$($1_SUFFIX) in $1)
|
||||
endif
|
||||
ifneq ($(findstring $$($1_PREFIX), $$($1_NAME)), )
|
||||
$$(error NAME should be specified without prefix: $$($1_PREFIX) in $1)
|
||||
endif
|
||||
ifeq ($$($1_OUTPUT_DIR), )
|
||||
$$(error OUTPUT_DIR is missing in $1)
|
||||
endif
|
||||
ifneq ($$($1_MANIFEST), )
|
||||
ifeq ($$($1_MANIFEST_VERSION), )
|
||||
$$(error If MANIFEST is provided, then MANIFEST_VERSION is required in $1)
|
||||
endif
|
||||
endif
|
||||
|
||||
$1_BASENAME := $$($1_PREFIX)$$($1_NAME)$$($1_SUFFIX)
|
||||
$1_TARGET := $$($1_OUTPUT_DIR)/$$($1_BASENAME)
|
||||
$1_NOSUFFIX := $$($1_PREFIX)$$($1_NAME)
|
||||
$1_SAFE_NAME := $$(strip $$(subst /,_, $1))
|
||||
|
||||
ifeq (,$$($1_TARGET))
|
||||
$$(error Neither PROGRAM, LIBRARY nor STATIC_LIBRARY has been specified for SetupNativeCompilation)
|
||||
endif
|
||||
|
||||
# Setup the toolchain to be used
|
||||
$$(call SetIfEmpty, $1_TOOLCHAIN, TOOLCHAIN_DEFAULT)
|
||||
$$(call SetIfEmpty, $1_CC, $$($$($1_TOOLCHAIN)_CC))
|
||||
@ -499,41 +454,35 @@ define SetupNativeCompilationBody
|
||||
$$(call SetIfEmpty, $1_SYSROOT_CFLAGS, $$($$($1_TOOLCHAIN)_SYSROOT_CFLAGS))
|
||||
$$(call SetIfEmpty, $1_SYSROOT_LDFLAGS, $$($$($1_TOOLCHAIN)_SYSROOT_LDFLAGS))
|
||||
|
||||
ifneq ($$($1_MANIFEST), )
|
||||
ifeq ($$($1_MANIFEST_VERSION), )
|
||||
$$(error If MANIFEST is provided, then MANIFEST_VERSION is required in $1)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Make sure the dirs exist.
|
||||
$$(call MakeDir,$$($1_OBJECT_DIR) $$($1_OUTPUT_DIR))
|
||||
$$(foreach d,$$($1_SRC), $$(if $$(wildcard $$d),, \
|
||||
$$(call MakeDir, $$($1_OBJECT_DIR) $$($1_OUTPUT_DIR))
|
||||
$$(foreach d, $$($1_SRC), $$(if $$(wildcard $$d), , \
|
||||
$$(error SRC specified to SetupNativeCompilation $1 contains missing directory $$d)))
|
||||
|
||||
# Find all files in the source trees. Preserve order.
|
||||
$1_SRCS := $$(foreach s, $$($1_SRC), $$(call CacheFind,$$(s)))
|
||||
$1_SRCS := $$(foreach s, $$($1_SRC), $$(call CacheFind, $$(s)))
|
||||
$1_SRCS := $$(filter $$(NATIVE_SOURCE_EXTENSIONS), $$($1_SRCS))
|
||||
# Extract the C/C++ files.
|
||||
ifneq ($$($1_EXCLUDE_PATTERNS), )
|
||||
# We must not match the exclude pattern against the src root(s).
|
||||
$1_SRCS_WITHOUT_ROOTS := $$($1_SRCS)
|
||||
$$(foreach i,$$($1_SRC),$$(eval $1_SRCS_WITHOUT_ROOTS := $$(patsubst \
|
||||
$$(foreach i, $$($1_SRC), $$(eval $1_SRCS_WITHOUT_ROOTS := $$(patsubst \
|
||||
$$i/%,%, $$($1_SRCS_WITHOUT_ROOTS))))
|
||||
$1_ALL_EXCLUDE_FILES := $$(call containing, $$($1_EXCLUDE_PATTERNS), \
|
||||
$$($1_SRCS_WITHOUT_ROOTS))
|
||||
endif
|
||||
ifneq ($$($1_EXCLUDE_FILES),)
|
||||
ifneq ($$($1_EXCLUDE_FILES), )
|
||||
$1_ALL_EXCLUDE_FILES += $$($1_EXCLUDE_FILES)
|
||||
endif
|
||||
ifneq ($$($1_ALL_EXCLUDE_FILES),)
|
||||
ifneq ($$($1_ALL_EXCLUDE_FILES), )
|
||||
$1_EXCLUDE_FILES_PAT := $$($1_ALL_EXCLUDE_FILES) \
|
||||
$$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$($1_ALL_EXCLUDE_FILES)))
|
||||
$1_EXCLUDE_FILES_PAT := $$(addprefix %,$$($1_EXCLUDE_FILES_PAT))
|
||||
$1_SRCS := $$(filter-out $$($1_EXCLUDE_FILES_PAT),$$($1_SRCS))
|
||||
$$(foreach i, $$($1_SRC), $$(addprefix $$i/, $$($1_ALL_EXCLUDE_FILES)))
|
||||
$1_EXCLUDE_FILES_PAT := $$(addprefix %, $$($1_EXCLUDE_FILES_PAT))
|
||||
$1_SRCS := $$(filter-out $$($1_EXCLUDE_FILES_PAT), $$($1_SRCS))
|
||||
endif
|
||||
ifneq ($$($1_INCLUDE_FILES), )
|
||||
$1_INCLUDE_FILES_PAT := $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$($1_INCLUDE_FILES)))
|
||||
$1_SRCS := $$(filter $$($1_INCLUDE_FILES_PAT),$$($1_SRCS))
|
||||
$1_INCLUDE_FILES_PAT := $$(foreach i, $$($1_SRC), $$(addprefix $$i/, $$($1_INCLUDE_FILES)))
|
||||
$1_SRCS := $$(filter $$($1_INCLUDE_FILES_PAT), $$($1_SRCS))
|
||||
endif
|
||||
# There can be only a single bin dir root, no need to foreach over the roots.
|
||||
$1_BINS := $$(wildcard $$($1_OBJECT_DIR)/*$(OBJ_SUFFIX))
|
||||
@ -541,29 +490,29 @@ define SetupNativeCompilationBody
|
||||
# and we have a list of all existing object files: $$($1_BINS)
|
||||
|
||||
# Prepend the source/bin path to the filter expressions. Then do the filtering.
|
||||
ifneq ($$($1_INCLUDES),)
|
||||
$1_SRC_INCLUDES := $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$(addsuffix /%,$$($1_INCLUDES))))
|
||||
$1_SRCS := $$(filter $$($1_SRC_INCLUDES),$$($1_SRCS))
|
||||
ifneq ($$($1_INCLUDES), )
|
||||
$1_SRC_INCLUDES := $$(foreach i, $$($1_SRC), $$(addprefix $$i/, $$(addsuffix /%, $$($1_INCLUDES))))
|
||||
$1_SRCS := $$(filter $$($1_SRC_INCLUDES), $$($1_SRCS))
|
||||
endif
|
||||
ifneq ($$($1_EXCLUDES),)
|
||||
$1_SRC_EXCLUDES := $$(addsuffix /%,$$($1_EXCLUDES))
|
||||
$1_SRC_EXCLUDES += $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$(addsuffix /%,$$($1_EXCLUDES))))
|
||||
$1_SRCS := $$(filter-out $$($1_SRC_EXCLUDES),$$($1_SRCS))
|
||||
ifneq ($$($1_EXCLUDES), )
|
||||
$1_SRC_EXCLUDES := $$(addsuffix /%, $$($1_EXCLUDES))
|
||||
$1_SRC_EXCLUDES += $$(foreach i, $$($1_SRC), $$(addprefix $$i/, $$(addsuffix /%, $$($1_EXCLUDES))))
|
||||
$1_SRCS := $$(filter-out $$($1_SRC_EXCLUDES), $$($1_SRCS))
|
||||
endif
|
||||
|
||||
$1_SRCS += $$($1_EXTRA_FILES)
|
||||
|
||||
ifeq (,$$($1_SRCS))
|
||||
ifeq ($$($1_SRCS), )
|
||||
$$(error No sources found for $1 when looking inside the dirs $$($1_SRC))
|
||||
endif
|
||||
|
||||
# Calculate the expected output from compiling the sources
|
||||
$1_EXPECTED_OBJS_FILENAMES := $$(call replace_with_obj_extension, $$(notdir $$($1_SRCS)))
|
||||
$1_EXPECTED_OBJS := $$(addprefix $$($1_OBJECT_DIR)/,$$($1_EXPECTED_OBJS_FILENAMES))
|
||||
$1_EXPECTED_OBJS := $$(addprefix $$($1_OBJECT_DIR)/, $$($1_EXPECTED_OBJS_FILENAMES))
|
||||
# Are there too many object files on disk? Perhaps because some source file was removed?
|
||||
$1_SUPERFLOUS_OBJS:=$$(sort $$(filter-out $$($1_EXPECTED_OBJS),$$($1_BINS)))
|
||||
$1_SUPERFLOUS_OBJS := $$(sort $$(filter-out $$($1_EXPECTED_OBJS), $$($1_BINS)))
|
||||
# Clean out the superfluous object files.
|
||||
ifneq ($$($1_SUPERFLUOUS_OBJS),)
|
||||
ifneq ($$($1_SUPERFLUOUS_OBJS), )
|
||||
$$(shell $(RM) -f $$($1_SUPERFLUOUS_OBJS))
|
||||
endif
|
||||
# Sort to remove dupliates and provide a reproducable order on the input files to the linker.
|
||||
@ -571,42 +520,42 @@ define SetupNativeCompilationBody
|
||||
|
||||
# Pickup extra OPENJDK_TARGET_OS_TYPE, OPENJDK_TARGET_OS, and/or OPENJDK_TARGET_OS plus
|
||||
# OPENJDK_TARGET_CPU pair dependent variables for CFLAGS.
|
||||
$1_EXTRA_CFLAGS:=$$($1_CFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_CFLAGS_$(OPENJDK_TARGET_OS)) \
|
||||
$1_EXTRA_CFLAGS := $$($1_CFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_CFLAGS_$(OPENJDK_TARGET_OS)) \
|
||||
$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU))
|
||||
ifneq ($(DEBUG_LEVEL),release)
|
||||
ifneq ($(DEBUG_LEVEL), release)
|
||||
# Pickup extra debug dependent variables for CFLAGS
|
||||
$1_EXTRA_CFLAGS+=$$($1_CFLAGS_debug)
|
||||
$1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS_TYPE)_debug)
|
||||
$1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_debug)
|
||||
$1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU)_debug)
|
||||
$1_EXTRA_CFLAGS += $$($1_CFLAGS_debug)
|
||||
$1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS_TYPE)_debug)
|
||||
$1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS)_debug)
|
||||
$1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU)_debug)
|
||||
else
|
||||
$1_EXTRA_CFLAGS+=$$($1_CFLAGS_release)
|
||||
$1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS_TYPE)_release)
|
||||
$1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_release)
|
||||
$1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU)_release)
|
||||
$1_EXTRA_CFLAGS += $$($1_CFLAGS_release)
|
||||
$1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS_TYPE)_release)
|
||||
$1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS)_release)
|
||||
$1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU)_release)
|
||||
endif
|
||||
|
||||
# Pickup extra OPENJDK_TARGET_OS_TYPE and/or OPENJDK_TARGET_OS dependent variables for CXXFLAGS.
|
||||
$1_EXTRA_CXXFLAGS:=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS))
|
||||
ifneq ($(DEBUG_LEVEL),release)
|
||||
$1_EXTRA_CXXFLAGS := $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS))
|
||||
ifneq ($(DEBUG_LEVEL), release)
|
||||
# Pickup extra debug dependent variables for CXXFLAGS
|
||||
$1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_debug)
|
||||
$1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)_debug)
|
||||
$1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)_debug)
|
||||
$1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_debug)
|
||||
$1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)_debug)
|
||||
$1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)_debug)
|
||||
else
|
||||
$1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_release)
|
||||
$1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)_release)
|
||||
$1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)_release)
|
||||
$1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_release)
|
||||
$1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)_release)
|
||||
$1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)_release)
|
||||
endif
|
||||
|
||||
# If no C++ flags are explicitly set, default to using the C flags.
|
||||
# After that, we can set additional C++ flags that should not interfere
|
||||
# with the mechanism for copying the C flags by default.
|
||||
ifeq ($$($1_CXXFLAGS),)
|
||||
$1_CXXFLAGS:=$$($1_CFLAGS)
|
||||
ifeq ($$($1_CXXFLAGS), )
|
||||
$1_CXXFLAGS := $$($1_CFLAGS)
|
||||
endif
|
||||
ifeq ($$(strip $$($1_EXTRA_CXXFLAGS)),)
|
||||
$1_EXTRA_CXXFLAGS:=$$($1_EXTRA_CFLAGS)
|
||||
ifeq ($$(strip $$($1_EXTRA_CXXFLAGS)), )
|
||||
$1_EXTRA_CXXFLAGS := $$($1_EXTRA_CFLAGS)
|
||||
endif
|
||||
|
||||
ifeq ($(COMPILE_WITH_DEBUG_SYMBOLS), true)
|
||||
@ -616,19 +565,19 @@ define SetupNativeCompilationBody
|
||||
$1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_DEBUG_SYMBOLS)
|
||||
endif
|
||||
|
||||
ifneq (,$$($1_REORDER))
|
||||
ifneq ($$($1_REORDER), )
|
||||
$1_EXTRA_CFLAGS += $$(C_FLAG_REORDER)
|
||||
$1_EXTRA_CXXFLAGS += $$(CXX_FLAG_REORDER)
|
||||
endif
|
||||
|
||||
# Pass the library name for static JNI library naming
|
||||
ifneq ($$($1_STATIC_LIBRARY),)
|
||||
$1_EXTRA_CFLAGS += -DLIBRARY_NAME=$$($1_STATIC_LIBRARY)
|
||||
$1_EXTRA_CXXFLAGS += -DLIBRARY_NAME=$$($1_STATIC_LIBRARY)
|
||||
ifeq ($$($1_TYPE), STATIC_LIBRARY)
|
||||
$1_EXTRA_CFLAGS += -DLIBRARY_NAME=$$($1_NAME)
|
||||
$1_EXTRA_CXXFLAGS += -DLIBRARY_NAME=$$($1_NAME)
|
||||
endif
|
||||
|
||||
# Pick up disabled warnings, if possible on this platform.
|
||||
ifneq ($(DISABLE_WARNING_PREFIX),)
|
||||
ifneq ($(DISABLE_WARNING_PREFIX), )
|
||||
$1_EXTRA_CFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), \
|
||||
$$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)) \
|
||||
$$($1_DISABLED_WARNINGS_C_$(TOOLCHAIN_TYPE)))
|
||||
@ -639,8 +588,8 @@ define SetupNativeCompilationBody
|
||||
|
||||
# Check if warnings should be considered errors.
|
||||
# Pick first binary and toolchain specific, then binary specific, then general setting.
|
||||
ifeq ($$($1_WARNINGS_AS_ERRORS_$(TOOLCHAIN_TYPE)),)
|
||||
ifeq ($$($1_WARNINGS_AS_ERRORS),)
|
||||
ifeq ($$($1_WARNINGS_AS_ERRORS_$(TOOLCHAIN_TYPE)), )
|
||||
ifeq ($$($1_WARNINGS_AS_ERRORS), )
|
||||
$1_WARNINGS_AS_ERRORS_$(TOOLCHAIN_TYPE) := $$(WARNINGS_AS_ERRORS)
|
||||
else
|
||||
$1_WARNINGS_AS_ERRORS_$(TOOLCHAIN_TYPE) := $$($1_WARNINGS_AS_ERRORS)
|
||||
@ -740,7 +689,7 @@ define SetupNativeCompilationBody
|
||||
endif
|
||||
|
||||
# Now call add_native_source for each source file we are going to compile.
|
||||
$$(foreach p,$$($1_SRCS), \
|
||||
$$(foreach p, $$($1_SRCS), \
|
||||
$$(eval $$(call add_native_source,$1,$$p,$$($1_OBJECT_DIR), \
|
||||
$$($1_CFLAGS) $$($1_EXTRA_CFLAGS) $$($1_SYSROOT_CFLAGS), \
|
||||
$$($1_CC), \
|
||||
@ -750,7 +699,7 @@ define SetupNativeCompilationBody
|
||||
# Setup rule for printing progress info when compiling source files.
|
||||
# This is a rough heuristic and may not always print accurate information.
|
||||
$$($1_BUILD_INFO): $$($1_SRCS) $$($1_COMPILE_VARDEPS_FILE)
|
||||
ifeq ($$(wildcard $$($1_TARGET)),)
|
||||
ifeq ($$(wildcard $$($1_TARGET)), )
|
||||
$(ECHO) 'Creating $$(subst $$(OUTPUTDIR)/,,$$($1_TARGET)) from $$(words \
|
||||
$$(filter-out %.vardeps, $$?)) file(s)'
|
||||
else
|
||||
@ -763,10 +712,10 @@ define SetupNativeCompilationBody
|
||||
|
||||
# On windows we need to create a resource file
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
ifneq (,$$($1_VERSIONINFO_RESOURCE))
|
||||
$1_RES:=$$($1_OBJECT_DIR)/$$($1_BASENAME).res
|
||||
$1_RES_DEP:=$$($1_RES).d
|
||||
$1_RES_DEP_TARGETS:=$$($1_RES).d.targets
|
||||
ifneq ($$($1_VERSIONINFO_RESOURCE), )
|
||||
$1_RES := $$($1_OBJECT_DIR)/$$($1_BASENAME).res
|
||||
$1_RES_DEP := $$($1_RES).d
|
||||
$1_RES_DEP_TARGETS := $$($1_RES).d.targets
|
||||
-include $$($1_RES_DEP)
|
||||
-include $$($1_RES_DEP_TARGETS)
|
||||
|
||||
@ -775,7 +724,7 @@ define SetupNativeCompilationBody
|
||||
$$($1_RES).vardeps)
|
||||
|
||||
$$($1_RES): $$($1_VERSIONINFO_RESOURCE) $$($1_RES_VARDEPS_FILE)
|
||||
$$(call LogInfo, Compiling resource $$(notdir $$($1_VERSIONINFO_RESOURCE)) (for $$(notdir $$($1_TARGET))))
|
||||
$$(call LogInfo, Compiling resource $$(notdir $$($1_VERSIONINFO_RESOURCE)) (for $$($1_BASENAME)))
|
||||
$$(call MakeDir, $$(@D) $$($1_OBJECT_DIR))
|
||||
$$(call ExecuteWithLog, $$@, \
|
||||
$$($1_RC) $$($1_RC_FLAGS) $$($1_SYSROOT_CFLAGS) $(CC_OUT_OPTION)$$@ \
|
||||
@ -798,10 +747,10 @@ define SetupNativeCompilationBody
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(DISABLE_MAPFILES),true)
|
||||
ifneq ($(DISABLE_MAPFILES), true)
|
||||
$1_REAL_MAPFILE := $$($1_MAPFILE)
|
||||
ifneq ($(OPENJDK_TARGET_OS),windows)
|
||||
ifneq (,$$($1_REORDER))
|
||||
ifneq ($(OPENJDK_TARGET_OS), windows)
|
||||
ifneq ($$($1_REORDER), )
|
||||
$1_REAL_MAPFILE := $$($1_OBJECT_DIR)/mapfile
|
||||
|
||||
$$($1_REAL_MAPFILE) : $$($1_MAPFILE) $$($1_REORDER)
|
||||
@ -815,9 +764,9 @@ define SetupNativeCompilationBody
|
||||
|
||||
# Pickup extra OPENJDK_TARGET_OS_TYPE and/or OPENJDK_TARGET_OS dependent variables
|
||||
# for LDFLAGS and LIBS
|
||||
$1_EXTRA_LDFLAGS:=$$($1_LDFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LDFLAGS_$(OPENJDK_TARGET_OS))
|
||||
$1_EXTRA_LIBS:=$$($1_LIBS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LIBS_$(OPENJDK_TARGET_OS))
|
||||
ifneq (,$$($1_REAL_MAPFILE))
|
||||
$1_EXTRA_LDFLAGS := $$($1_LDFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LDFLAGS_$(OPENJDK_TARGET_OS))
|
||||
$1_EXTRA_LIBS := $$($1_LIBS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LIBS_$(OPENJDK_TARGET_OS))
|
||||
ifneq ($$($1_REAL_MAPFILE), )
|
||||
$1_EXTRA_LDFLAGS += $(call SET_SHARED_LIBRARY_MAPFILE,$$($1_REAL_MAPFILE))
|
||||
endif
|
||||
|
||||
@ -835,7 +784,7 @@ define SetupNativeCompilationBody
|
||||
ifeq ($$($1_COPY_DEBUG_SYMBOLS), true)
|
||||
ifneq ($$($1_DEBUG_SYMBOLS), false)
|
||||
# Only copy debug symbols for dynamic libraries and programs.
|
||||
ifeq ($$($1_STATIC_LIBRARY), )
|
||||
ifneq ($$($1_TYPE), STATIC_LIBRARY)
|
||||
# Generate debuginfo files.
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
$1_EXTRA_LDFLAGS += -debug "-pdb:$$($1_OUTPUT_DIR)/$$($1_NOSUFFIX).pdb" \
|
||||
@ -899,17 +848,17 @@ define SetupNativeCompilationBody
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq (,$$($1_LIBRARY))
|
||||
ifeq ($$($1_TYPE), LIBRARY)
|
||||
# Generating a dynamic library.
|
||||
$1_EXTRA_LDFLAGS += $$(call SET_SHARED_LIBRARY_NAME,$$($1_BASENAME))
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
$1_EXTRA_LDFLAGS += "-implib:$$($1_OBJECT_DIR)/$$($1_LIBRARY).lib"
|
||||
$1_EXTRA_LDFLAGS += "-implib:$$($1_OBJECT_DIR)/$$($1_NAME).lib"
|
||||
# Create a rule for the import lib so that other rules may depend on it
|
||||
$$($1_OBJECT_DIR)/$$($1_LIBRARY).lib: $$($1_TARGET)
|
||||
$$($1_OBJECT_DIR)/$$($1_NAME).lib: $$($1_TARGET)
|
||||
endif
|
||||
|
||||
# Create loadmap on AIX. Helps in diagnosing some problems.
|
||||
ifneq ($(COMPILER_BINDCMD_FILE_FLAG),)
|
||||
ifneq ($(COMPILER_BINDCMD_FILE_FLAG), )
|
||||
$1_EXTRA_LDFLAGS += $(COMPILER_BINDCMD_FILE_FLAG)$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).loadmap
|
||||
endif
|
||||
|
||||
@ -924,7 +873,7 @@ define SetupNativeCompilationBody
|
||||
# If there are many object files, use an @-file...
|
||||
ifneq ($$(word 17, $$($1_ALL_OBJS)), )
|
||||
$1_OBJ_FILE_LIST := $$($1_OBJECT_DIR)/_$1_objectfilenames.txt
|
||||
ifneq ($(COMPILER_COMMAND_FILE_FLAG),)
|
||||
ifneq ($(COMPILER_COMMAND_FILE_FLAG), )
|
||||
$1_LD_OBJ_ARG := $(COMPILER_COMMAND_FILE_FLAG)$$($1_OBJ_FILE_LIST)
|
||||
else
|
||||
# ...except for toolchains which don't support them.
|
||||
@ -986,7 +935,7 @@ define SetupNativeCompilationBody
|
||||
|
||||
endif
|
||||
|
||||
ifneq (,$$($1_STATIC_LIBRARY))
|
||||
ifeq ($$($1_TYPE), STATIC_LIBRARY)
|
||||
$1_VARDEPS := $$($1_AR) $$($1_ARFLAGS) $$($1_LIBS) \
|
||||
$$($1_EXTRA_LIBS)
|
||||
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \
|
||||
@ -1000,7 +949,7 @@ define SetupNativeCompilationBody
|
||||
endif
|
||||
|
||||
$$($1_TARGET): $$($1_ALL_OBJS) $$($1_RES) $$($1_VARDEPS_FILE) $$(STATIC_MAPFILE_DEP)
|
||||
$$(call LogInfo, Archiving $$($1_STATIC_LIBRARY))
|
||||
$$(call LogInfo, Building static library $$($1_BASENAME))
|
||||
$$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link, \
|
||||
$$($1_AR) $$($1_ARFLAGS) $(AR_OUT_OPTION)$$($1_TARGET) $$($1_ALL_OBJS) \
|
||||
$$($1_RES))
|
||||
@ -1013,7 +962,7 @@ define SetupNativeCompilationBody
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq (,$$($1_PROGRAM))
|
||||
ifeq ($$($1_TYPE), EXECUTABLE)
|
||||
# A executable binary has been specified, setup the target for it.
|
||||
$1_VARDEPS := $$($1_LD) $$($1_SYSROOT_LDFLAGS) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) \
|
||||
$$($1_LIBS) $$($1_EXTRA_LIBS) $$($1_MT) \
|
||||
@ -1038,13 +987,13 @@ define SetupNativeCompilationBody
|
||||
$$($1_LIBS) $$($1_EXTRA_LIBS))
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
ifneq ($$($1_MANIFEST), )
|
||||
$$($1_MT) -nologo -manifest $$($1_MANIFEST) -identity:"$$($1_PROGRAM).exe, version=$$($1_MANIFEST_VERSION)" -outputresource:$$@;#1
|
||||
$$($1_MT) -nologo -manifest $$($1_MANIFEST) -identity:"$$($1_NAME).exe, version=$$($1_MANIFEST_VERSION)" -outputresource:$$@;#1
|
||||
endif
|
||||
endif
|
||||
# This only works if the openjdk_codesign identity is present on the system. Let
|
||||
# silently fail otherwise.
|
||||
ifneq (,$(CODESIGN))
|
||||
ifneq (,$$($1_CODESIGN))
|
||||
ifneq ($(CODESIGN), )
|
||||
ifneq ($$($1_CODESIGN), )
|
||||
$(CODESIGN) -s openjdk_codesign $$@
|
||||
endif
|
||||
endif
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2015, 2018, 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
|
||||
@ -61,11 +61,13 @@ define SetupTestFilesCompilationBody
|
||||
$1_OUTPUT_SUBDIR := lib
|
||||
$1_CFLAGS := $(CFLAGS_TESTLIB) $(CFLAGS_WARNINGS_ARE_ERRORS)
|
||||
$1_LDFLAGS := $(LDFLAGS_TESTLIB) $(call SET_SHARED_LIBRARY_ORIGIN)
|
||||
$1_COMPILATION_TYPE := LIBRARY
|
||||
else ifeq ($$($1_TYPE), PROGRAM)
|
||||
$1_PREFIX = exe
|
||||
$1_OUTPUT_SUBDIR := bin
|
||||
$1_CFLAGS := $(CFLAGS_TESTEXE) $(CFLAGS_WARNINGS_ARE_ERRORS)
|
||||
$1_LDFLAGS := $(LDFLAGS_TESTEXE)
|
||||
$1_COMPILATION_TYPE := EXECUTABLE
|
||||
else
|
||||
$$(error Unknown type: $$($1_TYPE))
|
||||
endif
|
||||
@ -78,7 +80,8 @@ define SetupTestFilesCompilationBody
|
||||
$$(foreach file, $$($1_FILE_LIST),\
|
||||
$$(eval name := $$(strip $$(patsubst $$($1_PREFIX)%, %, $$(basename $$(notdir $$(file)))))) \
|
||||
$$(eval $$(call SetupNativeCompilation, BUILD_TEST_$$(name), \
|
||||
$$($1_TYPE) := $$(name), \
|
||||
NAME := $$(name), \
|
||||
TYPE := $$($1_COMPILATION_TYPE), \
|
||||
SRC := $$(patsubst %/,%,$$(dir $$(file))), \
|
||||
INCLUDE_FILES := $$(notdir $$(file)), \
|
||||
OBJECT_DIR := $$($1_OUTPUT_DIR)/support/$$($1_PREFIX)$$(name), \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2013, 2018, 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,7 +53,7 @@ ifeq ($(call check-jvm-feature, compiler2), true)
|
||||
|
||||
# Set the C++ standard if supported
|
||||
ADLC_CFLAGS += $(CXXSTD_CXXFLAG)
|
||||
|
||||
|
||||
# NOTE: The old build didn't set -DASSERT for windows but it doesn't seem to
|
||||
# hurt.
|
||||
ADLC_CFLAGS += -DASSERT
|
||||
@ -63,6 +63,8 @@ ifeq ($(call check-jvm-feature, compiler2), true)
|
||||
ADLC_CFLAGS += -I$(TOPDIR)/src/hotspot/share
|
||||
|
||||
$(eval $(call SetupNativeCompilation, BUILD_ADLC, \
|
||||
NAME := adlc, \
|
||||
TYPE := EXECUTABLE, \
|
||||
TOOLCHAIN := TOOLCHAIN_BUILD_LINK_CXX, \
|
||||
SRC := $(TOPDIR)/src/hotspot/share/adlc, \
|
||||
EXTRA_FILES := $(TOPDIR)/src/hotspot/share/opto/opcodes.cpp, \
|
||||
@ -71,7 +73,6 @@ ifeq ($(call check-jvm-feature, compiler2), true)
|
||||
LIBS := $(ADLC_LIBS), \
|
||||
OBJECT_DIR := $(JVM_VARIANT_OUTPUTDIR)/tools/adlc/objs, \
|
||||
OUTPUT_DIR := $(JVM_VARIANT_OUTPUTDIR)/tools/adlc, \
|
||||
PROGRAM := adlc, \
|
||||
DEBUG_SYMBOLS := false, \
|
||||
DISABLED_WARNINGS_clang := tautological-compare, \
|
||||
DISABLED_WARNINGS_solstudio := notemsource, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2013, 2018, 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
|
||||
@ -46,6 +46,8 @@ ifeq ($(call check-jvm-feature, dtrace), true)
|
||||
# in the libjvm.so, using JVM_CFLAGS as setup in CompileJvm.gmk. Otherwise
|
||||
# this would preferrably have been done as a part of GensrcDtrace.gmk.
|
||||
$(eval $(call SetupNativeCompilation, BUILD_DTRACE_GEN_OFFSETS, \
|
||||
NAME := dtraceGenOffsets, \
|
||||
TYPE := EXECUTABLE, \
|
||||
SRC := $(TOPDIR)/make/hotspot/src/native/dtrace, \
|
||||
CC := $(BUILD_CXX), \
|
||||
CXX := $(BUILD_CXX), \
|
||||
@ -56,7 +58,6 @@ ifeq ($(call check-jvm-feature, dtrace), true)
|
||||
LIBS := -lc, \
|
||||
OBJECT_DIR := $(JVM_VARIANT_OUTPUTDIR)/tools/dtrace-gen-offsets/objs, \
|
||||
OUTPUT_DIR := $(JVM_VARIANT_OUTPUTDIR)/tools/dtrace-gen-offsets, \
|
||||
PROGRAM := dtraceGenOffsets, \
|
||||
))
|
||||
|
||||
DTRACE_GEN_OFFSETS_TOOL := $(BUILD_DTRACE_GEN_OFFSETS_TARGET)
|
||||
@ -156,21 +157,19 @@ ifeq ($(call check-jvm-feature, dtrace), true)
|
||||
|
||||
# Unfortunately dtrace generates incorrect types for some symbols in
|
||||
# dtrace_jhelper.o, resulting in "warning: symbol X has differing types"
|
||||
# This is tracked in JDK-6890703.
|
||||
$(DTRACE_JHELPER_OBJ): $(TOPDIR)/src/hotspot/os/solaris/dtrace/jhelper.d \
|
||||
$(JVM_OFFSETS_INDEX_H)
|
||||
# See JDK-6890703 for details.
|
||||
# We work around this by fixing the types for these symbols using elfedit,
|
||||
# after dtrace has generated the .o file.
|
||||
JHELPER_DTRACE_SRC := $(TOPDIR)/src/hotspot/os/solaris/dtrace/jhelper.d
|
||||
DTRACE_EXTERNAL_SYMBOLS := $(shell $(GREP) ^extern $(JHELPER_DTRACE_SRC) | $(AWK) '{ gsub(";","") ; print $$3 }')
|
||||
DTRACE_ELFEDIT_COMMANDS := $(foreach symbol, $(DTRACE_EXTERNAL_SYMBOLS), \
|
||||
-e 'sym:st_type $(symbol) 1')
|
||||
|
||||
$(DTRACE_JHELPER_OBJ): $(JHELPER_DTRACE_SRC) $(JVM_OFFSETS_INDEX_H)
|
||||
$(call LogInfo, Running dtrace for $(<F))
|
||||
$(call ExecuteWithLog, $@, $(DTRACE) $(DTRACE_FLAGS) $(DTRACE_CPP_FLAGS) -C \
|
||||
-I$(DTRACE_SUPPORT_DIR) -o $@ -s $<)
|
||||
|
||||
# NOTE: We should really do something like this, but unfortunately this
|
||||
# results in a compilation error. :-(
|
||||
# $(call MakeDir, $(DTRACE_SUPPORT_DIR))
|
||||
# $(call ExecuteWithLog, $(DTRACE_SUPPORT_DIR)/$(@F).d, $(CC) -E \
|
||||
# $(DTRACE_CPP_FLAGS) -I$(DTRACE_SUPPORT_DIR) $^ \
|
||||
# > $(DTRACE_SUPPORT_DIR)/$(@F).d)
|
||||
# $(call ExecuteWithLog, $@, $(DTRACE) $(DTRACE_FLAGS) -o $@ \
|
||||
# -s $(DTRACE_SUPPORT_DIR)/$(@F).d)
|
||||
$(call ExecuteWithLog, $@.elfedit, $(ELFEDIT) $(DTRACE_ELFEDIT_COMMANDS) $@)
|
||||
|
||||
############################################################################
|
||||
# Build the stand-alone dtrace libraries
|
||||
@ -178,7 +177,7 @@ ifeq ($(call check-jvm-feature, dtrace), true)
|
||||
LIBJVM_DTRACE_OUTPUTDIR := $(JVM_VARIANT_OUTPUTDIR)/libjvm_dtrace
|
||||
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBJVM_DTRACE, \
|
||||
LIBRARY := jvm_dtrace, \
|
||||
NAME := jvm_dtrace, \
|
||||
OUTPUT_DIR := $(JVM_LIB_OUTPUTDIR), \
|
||||
SRC := $(TOPDIR)/src/java.base/solaris/native/libjvm_dtrace, \
|
||||
CFLAGS := -m64 -G -mt -KPIC, \
|
||||
@ -193,7 +192,7 @@ ifeq ($(call check-jvm-feature, dtrace), true)
|
||||
# Note that libjvm_db.c has tests for COMPILER2, but this was never set by
|
||||
# the old build.
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBJVM_DB, \
|
||||
LIBRARY := jvm_db, \
|
||||
NAME := jvm_db, \
|
||||
OUTPUT_DIR := $(JVM_LIB_OUTPUTDIR), \
|
||||
SRC := $(TOPDIR)/src/java.base/solaris/native/libjvm_db, \
|
||||
CFLAGS := -I$(JVM_VARIANT_OUTPUTDIR)/gensrc -I$(DTRACE_SUPPORT_DIR) \
|
||||
|
@ -63,8 +63,8 @@ endif
|
||||
# exclusive to the gtest libjvm.so.
|
||||
|
||||
$(eval $(call SetupNativeCompilation, BUILD_GTEST_LIBJVM, \
|
||||
NAME := jvm, \
|
||||
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
|
||||
LIBRARY := jvm, \
|
||||
OUTPUT_DIR := $(JVM_OUTPUTDIR)/gtest, \
|
||||
OBJECT_DIR := $(JVM_OUTPUTDIR)/gtest/objs, \
|
||||
SRC := $(GTEST_TEST_SRC), \
|
||||
@ -108,7 +108,8 @@ TARGETS += $(BUILD_GTEST_LIBJVM)
|
||||
|
||||
$(eval $(call SetupNativeCompilation, BUILD_GTEST_LAUNCHER, \
|
||||
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
|
||||
PROGRAM := gtestLauncher, \
|
||||
NAME := gtestLauncher, \
|
||||
TYPE := EXECUTABLE, \
|
||||
OUTPUT_DIR := $(JVM_OUTPUTDIR)/gtest, \
|
||||
EXTRA_FILES := $(GTEST_LAUNCHER_SRC), \
|
||||
OBJECT_DIR := $(JVM_OUTPUTDIR)/gtest/launcher-objs, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2013, 2018, 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
|
||||
@ -210,8 +210,8 @@ JVM_STRIPFLAGS ?= $(STRIPFLAGS)
|
||||
# Now set up the actual compilation of the main hotspot native library
|
||||
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBJVM, \
|
||||
NAME := jvm, \
|
||||
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
|
||||
LIBRARY := jvm, \
|
||||
OUTPUT_DIR := $(JVM_LIB_OUTPUTDIR), \
|
||||
SRC := $(JVM_SRC_DIRS), \
|
||||
EXCLUDES := $(JVM_EXCLUDES), \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2013, 2018, 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
|
||||
@ -90,7 +90,7 @@ ifneq ($(OPENJDK_TARGET_OS), windows)
|
||||
LIB_OUTPUTDIR := $(call FindLibDirForModule, java.base)
|
||||
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBJSIG, \
|
||||
LIBRARY := jsig, \
|
||||
NAME := jsig, \
|
||||
SRC := $(LIBJSIG_SRC_DIR), \
|
||||
OUTPUT_DIR := $(LIB_OUTPUTDIR), \
|
||||
LANG := C, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2017, 2018, 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
|
||||
@ -49,14 +49,14 @@ import static jdk.javadoc.doclet.Taglet.Location.*;
|
||||
* will produce the following html
|
||||
* <p>
|
||||
* {@code
|
||||
* Please see <a href="https://www.oracle.com/pls/topic/lookup?ctx=javase9&id=Borealis">a spectacular</a> sight.
|
||||
* Please see <a href="https://www.oracle.com/pls/topic/lookup?ctx=javase10&id=Borealis">a spectacular</a> sight.
|
||||
* }
|
||||
*/
|
||||
public class ExtLink implements Taglet {
|
||||
|
||||
static final String TAG_NAME = "extLink";
|
||||
|
||||
static final String URL = "https://www.oracle.com/pls/topic/lookup?ctx=javase9&id=";
|
||||
static final String URL = "https://www.oracle.com/pls/topic/lookup?ctx=javase10&id=";
|
||||
|
||||
static final Pattern TAG_PATTERN = Pattern.compile("(?s)(\\s*)(?<name>\\w+)(\\s+)(?<desc>.*)$");
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, 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
|
||||
@ -73,6 +73,8 @@ $(eval $(call SetupBuildLauncher, keytool, \
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), linux)
|
||||
$(eval $(call SetupNativeCompilation, BUILD_JEXEC, \
|
||||
NAME := jexec, \
|
||||
TYPE := EXECUTABLE, \
|
||||
SRC := $(TOPDIR)/src/$(MODULE)/unix/native/launcher, \
|
||||
INCLUDE_FILES := jexec.c, \
|
||||
OPTIMIZATION := LOW, \
|
||||
@ -83,7 +85,6 @@ ifeq ($(OPENJDK_TARGET_OS), linux)
|
||||
LDFLAGS := $(LDFLAGS_JDKEXE), \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/jexec_obj, \
|
||||
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE), \
|
||||
PROGRAM := jexec, \
|
||||
))
|
||||
|
||||
TARGETS += $(BUILD_JEXEC)
|
||||
@ -93,6 +94,8 @@ endif
|
||||
|
||||
ifneq ($(findstring $(OPENJDK_TARGET_OS), macosx solaris aix), )
|
||||
$(eval $(call SetupNativeCompilation, BUILD_JSPAWNHELPER, \
|
||||
NAME := jspawnhelper, \
|
||||
TYPE := EXECUTABLE, \
|
||||
SRC := $(TOPDIR)/src/$(MODULE)/unix/native/jspawnhelper, \
|
||||
OPTIMIZATION := LOW, \
|
||||
CFLAGS := $(CFLAGS_JDKEXE) -I$(TOPDIR)/src/$(MODULE)/unix/native/libjava, \
|
||||
@ -100,7 +103,6 @@ ifneq ($(findstring $(OPENJDK_TARGET_OS), macosx solaris aix), )
|
||||
LDFLAGS := $(LDFLAGS_JDKEXE), \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/jspawnhelper, \
|
||||
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE), \
|
||||
PROGRAM := jspawnhelper, \
|
||||
))
|
||||
|
||||
TARGETS += $(BUILD_JSPAWNHELPER)
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2014, 2018, 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
|
||||
@ -33,7 +33,9 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
JABSWITCH_SRC := $(TOPDIR)/src/jdk.accessibility/windows/native/jabswitch
|
||||
ACCESSBRIDGE_SRC := $(TOPDIR)/src/jdk.accessibility/windows/native/common
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_JABSWITCH, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_JABSWITCH, \
|
||||
NAME := jabswitch, \
|
||||
TYPE := EXECUTABLE, \
|
||||
SRC := $(JABSWITCH_SRC), \
|
||||
INCLUDE_FILES := jabswitch.cpp, \
|
||||
CFLAGS := $(filter-out -Zc:wchar_t-, $(CFLAGS_JDKEXE)) -Zc:wchar_t \
|
||||
@ -44,7 +46,6 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
LIBS := advapi32.lib version.lib user32.lib, \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/jdk.accessibility/jabswitch, \
|
||||
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/modules_cmds/jdk.accessibility, \
|
||||
PROGRAM := jabswitch, \
|
||||
VERSIONINFO_RESOURCE := $(ACCESSBRIDGE_SRC)/AccessBridgeStatusWindow.RC, \
|
||||
RC_FLAGS := $(RC_FLAGS) \
|
||||
-D "JDK_FNAME=jabswitch.exe" \
|
||||
@ -70,6 +71,8 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
# Parameter 2 ACCESSBRIDGE_ARCH_ -D suffix
|
||||
|
||||
$$(eval $$(call SetupNativeCompilation, BUILD_JACCESSINSPECTOR$1, \
|
||||
NAME := jaccessinspector$1, \
|
||||
TYPE := EXECUTABLE, \
|
||||
SRC := $(TOPDIR)/jaccessinspector $(TOPDIR)/common \
|
||||
$(TOPDIR)/toolscommon $(TOPDIR)/bridge, \
|
||||
CFLAGS := $$(CFLAGS_JDKEXE) $(TOOLS_CFLAGS) -DACCESSBRIDGE_ARCH_$2 -EHsc, \
|
||||
@ -77,7 +80,6 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
LIBS := advapi32.lib user32.lib, \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/jdk.accessibility/jaccessinspector$1, \
|
||||
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/modules_cmds/jdk.accessibility, \
|
||||
PROGRAM := jaccessinspector$1, \
|
||||
VERSIONINFO_RESOURCE := $(TOPDIR)/jaccessinspector/jaccessinspectorWindow.rc, \
|
||||
RC_FLAGS := $$(RC_FLAGS) \
|
||||
-D "JDK_FNAME=jaccessinspector$1.exe" \
|
||||
@ -96,7 +98,9 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
# Parameter 1 File name suffix
|
||||
# Parameter 2 ACCESSBRIDGE_ARCH_ -D suffix
|
||||
|
||||
$$(eval $$(call SetupNativeCompilation,BUILD_JACCESSWALKER$1, \
|
||||
$$(eval $$(call SetupNativeCompilation, BUILD_JACCESSWALKER$1, \
|
||||
NAME := jaccesswalker$1, \
|
||||
TYPE := EXECUTABLE, \
|
||||
SRC := $(TOPDIR)/jaccesswalker $(TOPDIR)/common \
|
||||
$(TOPDIR)/toolscommon $(TOPDIR)/bridge, \
|
||||
CFLAGS := $$(CFLAGS_JDKEXE) $(TOOLS_CFLAGS) -DACCESSBRIDGE_ARCH_$2 -EHsc, \
|
||||
@ -104,7 +108,6 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
LIBS := advapi32.lib comctl32.lib gdi32.lib user32.lib, \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/jdk.accessibility/jaccesswalker$1, \
|
||||
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/modules_cmds/jdk.accessibility, \
|
||||
PROGRAM := jaccesswalker$1, \
|
||||
VERSIONINFO_RESOURCE := $(TOPDIR)/jaccesswalker/jaccesswalkerWindow.rc, \
|
||||
RC_FLAGS := $$(RC_FLAGS) \
|
||||
-D "JDK_FNAME=jaccesswalker$1.exe" \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, 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
|
||||
@ -73,7 +73,9 @@ else
|
||||
UNPACK_MAPFILE := $(UNPACK_MAPFILE_DIR)/mapfile-vers-unpack200
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_UNPACKEXE, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_UNPACKEXE, \
|
||||
NAME := unpack200, \
|
||||
TYPE := EXECUTABLE, \
|
||||
SRC := $(UNPACKEXE_SRC), \
|
||||
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
|
||||
OPTIMIZATION := LOW, \
|
||||
@ -91,7 +93,6 @@ $(eval $(call SetupNativeCompilation,BUILD_UNPACKEXE, \
|
||||
LIBS_solaris := -lc, \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/unpackexe, \
|
||||
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/modules_cmds/$(MODULE), \
|
||||
PROGRAM := unpack200, \
|
||||
VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
|
||||
RC_FLAGS := $(RC_FLAGS) \
|
||||
-D "JDK_FNAME=unpack200.exe" \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, 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
|
||||
@ -183,6 +183,8 @@ define SetupBuildLauncherBody
|
||||
endif
|
||||
|
||||
$$(eval $$(call SetupNativeCompilation, BUILD_LAUNCHER_$1, \
|
||||
NAME := $1, \
|
||||
TYPE := EXECUTABLE, \
|
||||
EXTRA_FILES := $(LAUNCHER_SRC)/main.c, \
|
||||
OPTIMIZATION := $$($1_OPTIMIZATION), \
|
||||
CFLAGS := $$($1_CFLAGS) \
|
||||
@ -211,7 +213,6 @@ define SetupBuildLauncherBody
|
||||
$$($1_LIBS_windows), \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/$1_objs, \
|
||||
OUTPUT_DIR := $$($1_OUTPUT_DIR), \
|
||||
PROGRAM := $1, \
|
||||
VERSIONINFO_RESOURCE := $$($1_VERSION_INFO_RESOURCE), \
|
||||
RC_FLAGS := $$(RC_FLAGS) \
|
||||
-D "JDK_FNAME=$1$(EXE_SUFFIX)" \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -48,8 +48,8 @@ ifneq ($(OPENJDK_TARGET_OS), windows)
|
||||
BUILD_LIBMLIB_LDLIBS += $(LIBM) $(LIBDL)
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBMLIB_IMAGE, \
|
||||
LIBRARY := mlib_image, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBMLIB_IMAGE, \
|
||||
NAME := mlib_image, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(BUILD_LIBMLIB_SRC), \
|
||||
EXCLUDE_FILES := mlib_c_ImageBlendTable.c, \
|
||||
@ -107,8 +107,8 @@ ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc)
|
||||
|
||||
LIBMLIB_IMAGE_V_CFLAGS += $(filter-out -DMLIB_NO_LIBSUNMATH, $(BUILD_LIBMLIB_CFLAGS))
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBMLIB_IMAGE_V, \
|
||||
LIBRARY := mlib_image_v, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBMLIB_IMAGE_V, \
|
||||
NAME := mlib_image_v, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBMLIB_IMAGE_V_SRC), \
|
||||
EXCLUDE_FILES := $(BUILD_LIBMLIB_IMAGE_V_EXFILES), \
|
||||
@ -226,8 +226,8 @@ ifeq ($(TOOLCHAIN_TYPE), gcc)
|
||||
LIBAWT_CFLAGS += -fgcse-after-reload
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBAWT, \
|
||||
LIBRARY := awt, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBAWT, \
|
||||
NAME := awt, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBAWT_DIRS), \
|
||||
EXCLUDES := $(LIBAWT_EXCLUDES), \
|
||||
@ -347,8 +347,8 @@ ifeq ($(findstring $(OPENJDK_TARGET_OS),windows macosx),)
|
||||
BUILD_LIBAWT_XAWT_debug_mem.c_CFLAGS := -w
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBAWT_XAWT, \
|
||||
LIBRARY := awt_xawt, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBAWT_XAWT, \
|
||||
NAME := awt_xawt, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBAWT_XAWT_DIRS), \
|
||||
EXCLUDES := $(LIBAWT_XAWT_EXCLUDES), \
|
||||
@ -406,8 +406,8 @@ else
|
||||
LIBLCMS_CPPFLAGS += $(addprefix -I, $(LIBLCMS_SRC))
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBLCMS, \
|
||||
LIBRARY := lcms, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBLCMS, \
|
||||
NAME := lcms, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBLCMS_SRC), \
|
||||
INCLUDE_FILES := $(BUILD_LIBLCMS_INCLUDE_FILES), \
|
||||
@ -483,8 +483,8 @@ else
|
||||
BUILD_LIBJAVAJPEG_HEADERS := $(addprefix -I, $(LIBJAVAJPEG_SRC))
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG, \
|
||||
LIBRARY := javajpeg, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBJAVAJPEG, \
|
||||
NAME := javajpeg, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBJAVAJPEG_SRC), \
|
||||
INCLUDE_FILES := $(BUILD_LIBJAVAJPEG_INCLUDE_FILES), \
|
||||
@ -547,8 +547,8 @@ ifeq ($(findstring $(OPENJDK_TARGET_OS), windows macosx),)
|
||||
endif
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBAWT_HEADLESS, \
|
||||
LIBRARY := awt_headless, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBAWT_HEADLESS, \
|
||||
NAME := awt_headless, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBAWT_HEADLESS_DIRS), \
|
||||
EXCLUDES := $(LIBAWT_HEADLESS_EXCLUDES), \
|
||||
@ -657,8 +657,8 @@ ifeq ($(TOOLCHAIN_TYPE), gcc)
|
||||
BUILD_LIBFONTMANAGER_ExtensionSubtables.cpp_CXXFLAGS := -fno-strict-aliasing
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER, \
|
||||
LIBRARY := fontmanager, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBFONTMANAGER, \
|
||||
NAME := fontmanager, \
|
||||
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfontmanager, \
|
||||
SRC := $(LIBFONTMANAGER_SRC), \
|
||||
EXCLUDE_FILES := $(LIBFONTMANAGER_EXCLUDE_FILES) \
|
||||
@ -691,7 +691,7 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER, \
|
||||
LIBS := $(BUILD_LIBFONTMANAGER_FONTLIB), \
|
||||
LIBS_unix := -lawt -ljava -ljvm $(LIBM) $(LIBCXX), \
|
||||
LIBS_linux := -lc, \
|
||||
LIBS_solaris := -lawt_headless -lc, \
|
||||
LIBS_solaris := -lc, \
|
||||
LIBS_aix := -lawt_headless,\
|
||||
LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
|
||||
$(WIN_AWT_LIB), \
|
||||
@ -744,8 +744,8 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
ifeq ($(OPENJDK_TARGET_CPU), x86)
|
||||
KERNEL32_LIB := kernel32.lib
|
||||
endif
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJAWT, \
|
||||
LIBRARY := jawt, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBJAWT, \
|
||||
NAME := jawt, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBJAWT_SRC), \
|
||||
INCLUDE_FILES := $(LIBJAWT_INCLUDE_FILES), \
|
||||
@ -804,8 +804,8 @@ else # OPENJDK_TARGET_OS not windows
|
||||
endif
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJAWT, \
|
||||
LIBRARY := jawt, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBJAWT, \
|
||||
NAME := jawt, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBJAWT_SRC), \
|
||||
INCLUDE_FILES := $(JAWT_FILES), \
|
||||
@ -935,8 +935,8 @@ ifeq ($(ENABLE_HEADLESS_ONLY), false)
|
||||
LIBSPLASHSCREEN_LIBS += $(X_LIBS) -lX11 -lXext $(LIBM) -lpthread -ldl
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBSPLASHSCREEN, \
|
||||
LIBRARY := splashscreen, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBSPLASHSCREEN, \
|
||||
NAME := splashscreen, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBSPLASHSCREEN_DIRS), \
|
||||
EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \
|
||||
@ -1008,8 +1008,8 @@ ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
LIBAWT_LWAWT_EXFILES := fontpath.c awt_Font.c X11Color.c
|
||||
LIBAWT_LWAWT_EXCLUDES := $(TOPDIR)/src/java.desktop/unix/native/common/awt/medialib
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBAWT_LWAWT, \
|
||||
LIBRARY := awt_lwawt, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBAWT_LWAWT, \
|
||||
NAME := awt_lwawt, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBAWT_LWAWT_DIRS), \
|
||||
INCLUDE_FILES := $(LIBAWT_LWAWT_FILES), \
|
||||
@ -1057,8 +1057,8 @@ endif
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBOSXUI, \
|
||||
LIBRARY := osxui, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBOSXUI, \
|
||||
NAME := osxui, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(TOPDIR)/src/java.desktop/macosx/native/libosxui, \
|
||||
OPTIMIZATION := LOW, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -55,8 +55,9 @@ LIBFDLIBM_SRC := $(TOPDIR)/src/java.base/share/native/libfdlibm
|
||||
LIBFDLIBM_CFLAGS := -I$(LIBFDLIBM_SRC)
|
||||
|
||||
ifneq ($(OPENJDK_TARGET_OS), macosx)
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM, \
|
||||
STATIC_LIBRARY := fdlibm, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBFDLIBM, \
|
||||
NAME := fdlibm, \
|
||||
TYPE := STATIC_LIBRARY, \
|
||||
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
|
||||
SRC := $(LIBFDLIBM_SRC), \
|
||||
OPTIMIZATION := $(BUILD_LIBFDLIBM_OPTIMIZATION), \
|
||||
@ -77,8 +78,8 @@ else
|
||||
|
||||
# On macosx the old build does partial (incremental) linking of fdlibm instead of
|
||||
# a plain static library.
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM_MAC, \
|
||||
LIBRARY := fdlibm, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBFDLIBM_MAC, \
|
||||
NAME := fdlibm, \
|
||||
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
|
||||
SRC := $(LIBFDLIBM_SRC), \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) $(LIBFDLIBM_CFLAGS), \
|
||||
@ -107,8 +108,8 @@ ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), )
|
||||
endif
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBVERIFY, \
|
||||
LIBRARY := verify, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBVERIFY, \
|
||||
NAME := verify, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(TOPDIR)/src/java.base/share/native/libverify, \
|
||||
OPTIMIZATION := $(LIBVERIFY_OPTIMIZATION), \
|
||||
@ -155,8 +156,8 @@ ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||
endif
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJAVA, \
|
||||
LIBRARY := java, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBJAVA, \
|
||||
NAME := java, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBJAVA_SRC_DIRS), \
|
||||
OPTIMIZATION := HIGH, \
|
||||
@ -218,8 +219,8 @@ ifeq ($(LIBZIP_CAN_USE_MMAP), true)
|
||||
BUILD_LIBZIP_MMAP := -DUSE_MMAP
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBZIP, \
|
||||
LIBRARY := zip, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBZIP, \
|
||||
NAME := zip, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
OPTIMIZATION := LOW, \
|
||||
SRC := $(TOPDIR)/src/java.base/share/native/libzip, \
|
||||
@ -262,8 +263,8 @@ JIMAGELIB_CPPFLAGS := \
|
||||
-I$(SUPPORT_OUTPUTDIR)/headers/java.base \
|
||||
#
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJIMAGE, \
|
||||
LIBRARY := jimage, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBJIMAGE, \
|
||||
NAME := jimage, \
|
||||
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
OPTIMIZATION := LOW, \
|
||||
@ -358,8 +359,8 @@ ifneq ($(USE_EXTERNAL_LIBZ), true)
|
||||
)
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJLI, \
|
||||
LIBRARY := jli, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBJLI, \
|
||||
NAME := jli, \
|
||||
OUTPUT_DIR := $(LIBJLI_OUTPUT_DIR), \
|
||||
SRC := $(LIBJLI_SRC_DIRS), \
|
||||
EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
|
||||
@ -415,8 +416,9 @@ TARGETS += $(BUILD_LIBJLI)
|
||||
# with the shared library, so the static library is given a different name. No harm
|
||||
# in doing it for all platform to reduce complexity.
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \
|
||||
STATIC_LIBRARY := jli_static, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBJLI_STATIC, \
|
||||
NAME := jli_static, \
|
||||
TYPE := STATIC_LIBRARY, \
|
||||
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
|
||||
SRC := $(LIBJLI_SRC_DIRS), \
|
||||
EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
|
||||
@ -434,8 +436,8 @@ else ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
# On macosx they do partial (incremental) linking of libjli_static.a
|
||||
# code it here...rather than add support to NativeCompilation
|
||||
# as this is first time I see it
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \
|
||||
LIBRARY := jli_static, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBJLI_STATIC, \
|
||||
NAME := jli_static, \
|
||||
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
|
||||
SRC := $(LIBJLI_SRC_DIRS), \
|
||||
EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
|
||||
@ -457,8 +459,9 @@ else ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
|
||||
else ifeq ($(OPENJDK_TARGET_OS), aix)
|
||||
# AIX also requires a static libjli because the compiler doesn't support '-rpath'
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \
|
||||
STATIC_LIBRARY := jli_static, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBJLI_STATIC, \
|
||||
NAME := jli_static, \
|
||||
TYPE := STATIC_LIBRARY, \
|
||||
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
|
||||
SRC := $(LIBJLI_SRC_DIRS), \
|
||||
EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, 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
|
||||
@ -49,8 +49,8 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
LIBINSTRUMENT_CFLAGS += -Dstrcasecmp=stricmp
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBINSTRUMENT, \
|
||||
LIBRARY := instrument, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBINSTRUMENT, \
|
||||
NAME := instrument, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBINSTRUMENT_SRC), \
|
||||
OPTIMIZATION := LOW, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, 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
|
||||
@ -44,8 +44,8 @@ ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), )
|
||||
endif
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBMANAGEMENT, \
|
||||
LIBRARY := management, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBMANAGEMENT, \
|
||||
NAME := management, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBMANAGEMENT_SRC), \
|
||||
OPTIMIZATION := $(LIBMANAGEMENT_OPTIMIZATION), \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, 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
|
||||
@ -33,8 +33,8 @@ else
|
||||
LIBPREF_SRC_DIRS := $(TOPDIR)/src/java.prefs/$(OPENJDK_TARGET_OS_TYPE)/native/libprefs
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBPREFS, \
|
||||
LIBRARY := prefs, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBPREFS, \
|
||||
NAME := prefs, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBPREF_SRC_DIRS), \
|
||||
OPTIMIZATION := HIGH, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -27,8 +27,8 @@ include LibCommon.gmk
|
||||
|
||||
################################################################################
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBRMI, \
|
||||
LIBRARY := rmi, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBRMI, \
|
||||
NAME := rmi, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(TOPDIR)/src/java.rmi/share/native/librmi, \
|
||||
OPTIMIZATION := LOW, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, 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
|
||||
@ -32,8 +32,8 @@ ifneq ($(OPENJDK_TARGET_OS), windows)
|
||||
$(TOPDIR)/src/java.security.jgss/$(OPENJDK_TARGET_OS_TYPE)/native/libj2gss \
|
||||
#
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJ2GSS, \
|
||||
LIBRARY := j2gss, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBJ2GSS, \
|
||||
NAME := j2gss, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBJ2GSS_SRC), \
|
||||
OPTIMIZATION := LOW, \
|
||||
@ -74,8 +74,8 @@ ifneq ($(BUILD_CRYPTO), false)
|
||||
ifneq ($(BUILD_LIBKRB5_NAME), )
|
||||
# libosxkrb5 needs to call deprecated krb5 APIs so that java
|
||||
# can use the native credentials cache.
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBKRB5, \
|
||||
LIBRARY := $(BUILD_LIBKRB5_NAME), \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBKRB5, \
|
||||
NAME := $(BUILD_LIBKRB5_NAME), \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(BUILD_LIBKRB5_SRC), \
|
||||
OPTIMIZATION := LOW, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, 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
|
||||
@ -33,8 +33,8 @@ LIBJ2PCSC_CPPFLAGS := $(addprefix -I,$(LIBJ2PCSC_SRC)) \
|
||||
-I$(TOPDIR)/src/java.smartcardio/$(OPENJDK_TARGET_OS_TYPE)/native/libj2pcsc/MUSCLE \
|
||||
-I$(SUPPORT_OUTPUTDIR)/headers/java.smartcardio
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJ2PCSC, \
|
||||
LIBRARY := j2pcsc, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBJ2PCSC, \
|
||||
NAME := j2pcsc, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBJ2PCSC_SRC), \
|
||||
CFLAGS_unix := -D__sun_jdk, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -41,8 +41,8 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
# Parameter 1 Suffix
|
||||
# Parameter 2 ACCESSBRIDGE_ARCH_ suffix
|
||||
|
||||
$(call SetupNativeCompilation,BUILD_JAVAACCESSBRIDGE$1, \
|
||||
LIBRARY = javaaccessbridge$1, \
|
||||
$(call SetupNativeCompilation, BUILD_JAVAACCESSBRIDGE$1, \
|
||||
NAME := javaaccessbridge$1, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(JAVA_AB_SRCDIR), \
|
||||
OPTIMIZATION := LOW, \
|
||||
@ -71,8 +71,8 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
define SetupWinDLL
|
||||
# Parameter 1 Suffix
|
||||
# Parameter 2 ACCESSBRIDGE_ARCH_ suffix
|
||||
$(call SetupNativeCompilation,BUILD_WINDOWSACCESSBRIDGE$1, \
|
||||
LIBRARY = windowsaccessbridge$1, \
|
||||
$(call SetupNativeCompilation, BUILD_WINDOWSACCESSBRIDGE$1, \
|
||||
NAME := windowsaccessbridge$1, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(WIN_AB_SRCDIR), \
|
||||
OPTIMIZATION := LOW, \
|
||||
@ -99,8 +99,8 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
|
||||
define SetupAccessBridgeSysInfo
|
||||
|
||||
$(call SetupNativeCompilation,BUILD_ACCESSBRIDGESYSINFO, \
|
||||
LIBRARY = jabsysinfo, \
|
||||
$(call SetupNativeCompilation, BUILD_ACCESSBRIDGESYSINFO, \
|
||||
NAME := jabsysinfo, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(SYSINFO_SRCDIR), \
|
||||
OPTIMIZATION := LOW, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, 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
|
||||
@ -34,8 +34,8 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
LIBATTACH_CFLAGS := -DPSAPI_VERSION=1
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBATTACH, \
|
||||
LIBRARY := attach, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBATTACH, \
|
||||
NAME := attach, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(call FindSrcDirsForLib, jdk.attach, attach), \
|
||||
OPTIMIZATION := LOW, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -30,8 +30,8 @@ include LibCommon.gmk
|
||||
LIBJ2PKCS11_SRC := $(TOPDIR)/src/jdk.crypto.cryptoki/share/native/libj2pkcs11 \
|
||||
$(TOPDIR)/src/jdk.crypto.cryptoki/$(OPENJDK_TARGET_OS_TYPE)/native/libj2pkcs11
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJ2PKCS11, \
|
||||
LIBRARY := j2pkcs11, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBJ2PKCS11, \
|
||||
NAME := j2pkcs11, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBJ2PKCS11_SRC), \
|
||||
OPTIMIZATION := LOW, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, 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
|
||||
@ -43,8 +43,8 @@ ifeq ($(ENABLE_INTREE_EC), true)
|
||||
ECC_JNI_SOLSPARC_FILTER := -xregs=no%appl
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBSUNEC, \
|
||||
LIBRARY := sunec, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBSUNEC, \
|
||||
NAME := sunec, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBSUNEC_SRC), \
|
||||
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -31,8 +31,8 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
|
||||
LIBSUNMSCAPI_SRC := $(TOPDIR)/src/jdk.crypto.mscapi/$(OPENJDK_TARGET_OS_TYPE)/native/libsunmscapi
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBSUNMSCAPI, \
|
||||
LIBRARY := sunmscapi, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBSUNMSCAPI, \
|
||||
NAME := sunmscapi, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBSUNMSCAPI_SRC), \
|
||||
OPTIMIZATION := LOW, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -31,8 +31,8 @@ ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||
|
||||
LIBJ2UCRYPTO_SRC := $(TOPDIR)/src/jdk.crypto.ucrypto/solaris/native/libj2ucrypto
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJ2UCRYPTO, \
|
||||
LIBRARY := j2ucrypto, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBJ2UCRYPTO, \
|
||||
NAME := j2ucrypto, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBJ2UCRYPTO_SRC), \
|
||||
OPTIMIZATION := LOW, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -98,12 +98,12 @@ endif
|
||||
################################################################################
|
||||
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBSA, \
|
||||
NAME := $(SA_NAME), \
|
||||
TOOLCHAIN := $(SA_TOOLCHAIN), \
|
||||
OPTIMIZATION := NONE, \
|
||||
DISABLED_WARNINGS_microsoft := 4267, \
|
||||
DISABLED_WARNINGS_gcc := sign-compare, \
|
||||
DISABLED_WARNINGS_CXX_solstudio := truncwarn unknownpragma, \
|
||||
LIBRARY := $(SA_NAME), \
|
||||
OUTPUT_DIR := $(call FindLibDirForModule, $(MODULE)), \
|
||||
SRC := $(SA_SRC), \
|
||||
EXCLUDE_FILES := test.c saproc_audit.cpp $(SA_EXCLUDE_FILES), \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2015, 2018, 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
|
||||
@ -36,8 +36,8 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
-I$(SUPPORT_OUTPUTDIR)/headers/jdk.internal.le \
|
||||
#
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBLE, \
|
||||
LIBRARY := le, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBLE, \
|
||||
NAME := le, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBLE_SRC), \
|
||||
OPTIMIZATION := LOW, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -39,8 +39,8 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
-I$(SUPPORT_OUTPUTDIR)/headers/jdk.jdi \
|
||||
#
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBDT_SHMEM, \
|
||||
LIBRARY := dt_shmem, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBDT_SHMEM, \
|
||||
NAME := dt_shmem, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBDT_SHMEM_SRC), \
|
||||
OPTIMIZATION := LOW, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, 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
|
||||
@ -36,8 +36,8 @@ LIBDT_SOCKET_CPPFLAGS := \
|
||||
-I$(TOPDIR)/src/jdk.jdwp.agent/share/native/include \
|
||||
#
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBDT_SOCKET, \
|
||||
LIBRARY := dt_socket, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBDT_SOCKET, \
|
||||
NAME := dt_socket, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBDT_SOCKET_SRC), \
|
||||
OPTIMIZATION := LOW, \
|
||||
@ -73,8 +73,8 @@ LIBJDWP_CPPFLAGS := \
|
||||
$(addprefix -I, $(LIBJDWP_SRC))
|
||||
|
||||
# JDWP_LOGGING causes log messages to be compiled into the library.
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJDWP, \
|
||||
LIBRARY := jdwp, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBJDWP, \
|
||||
NAME := jdwp, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBJDWP_SRC), \
|
||||
OPTIMIZATION := LOW, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2017, 2018, 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
|
||||
@ -33,8 +33,8 @@ LIBMANAGEMENT_AGENT_CFLAGS := $(addprefix -I,$(LIBMANAGEMENT_AGENT_SRC)) \
|
||||
$(LIBJAVA_HEADER_FLAGS) \
|
||||
#
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBMANAGEMENT_AGENT, \
|
||||
LIBRARY := management_agent, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBMANAGEMENT_AGENT, \
|
||||
NAME := management_agent, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBMANAGEMENT_AGENT_SRC), \
|
||||
OPTIMIZATION := LOW, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2015, 2018, 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,8 +53,8 @@ ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), )
|
||||
endif
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBMANAGEMENT_EXT, \
|
||||
LIBRARY := management_ext, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBMANAGEMENT_EXT, \
|
||||
NAME := management_ext, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBMANAGEMENT_EXT_SRC), \
|
||||
LANG := C, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -30,7 +30,7 @@ include LibCommon.gmk
|
||||
ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBEXTNET, \
|
||||
LIBRARY := extnet, \
|
||||
NAME := extnet, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(TOPDIR)/src/jdk.net/solaris/native/libextnet, \
|
||||
OPTIMIZATION := LOW, \
|
||||
@ -51,7 +51,7 @@ endif
|
||||
ifeq ($(OPENJDK_TARGET_OS), linux)
|
||||
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBEXTNET, \
|
||||
LIBRARY := extnet, \
|
||||
NAME := extnet, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(TOPDIR)/src/jdk.net/linux/native/libextnet, \
|
||||
OPTIMIZATION := LOW, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -27,8 +27,8 @@ include LibCommon.gmk
|
||||
|
||||
################################################################################
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBUNPACK, \
|
||||
LIBRARY := unpack, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBUNPACK, \
|
||||
NAME := unpack, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(TOPDIR)/src/jdk.pack/share/native/libunpack \
|
||||
$(TOPDIR)/src/jdk.pack/share/native/common-unpack, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -30,8 +30,8 @@ include LibCommon.gmk
|
||||
ifeq ($(OPENJDK_TARGET_OS_TYPE), unix)
|
||||
|
||||
ifeq (, $(filter $(OPENJDK_TARGET_OS), macosx aix))
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBSCTP, \
|
||||
LIBRARY := sctp, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBSCTP, \
|
||||
NAME := sctp, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(TOPDIR)/src/jdk.sctp/$(OPENJDK_TARGET_OS_TYPE)/native/libsctp, \
|
||||
OPTIMIZATION := LOW, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -38,8 +38,8 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
LIBJAAS_NAME := jaas_nt
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJAAS, \
|
||||
LIBRARY := $(LIBJAAS_NAME), \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBJAAS, \
|
||||
NAME := $(LIBJAAS_NAME), \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(call FindSrcDirsForLib, jdk.security.auth, jaas), \
|
||||
OPTIMIZATION := LOW, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, 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
|
||||
@ -34,8 +34,8 @@ ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
-I$(SUPPORT_OUTPUTDIR)/headers/java.desktop \
|
||||
#
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBOSX, \
|
||||
LIBRARY := osx, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBOSX, \
|
||||
NAME := osx, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBOSX_DIRS), \
|
||||
OPTIMIZATION := LOW, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, 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,8 +25,8 @@
|
||||
|
||||
LIBNET_SRC_DIRS := $(call FindSrcDirsForLib, java.base, net)
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBNET, \
|
||||
LIBRARY := net, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBNET, \
|
||||
NAME := net, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBNET_SRC_DIRS), \
|
||||
OPTIMIZATION := LOW, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -56,8 +56,8 @@ ifeq ($(OPENJDK_TARGET_OS), aix)
|
||||
BUILD_LIBNIO_MAPFILE := $(TOPDIR)/make/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS)
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBNIO, \
|
||||
LIBRARY := nio, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBNIO, \
|
||||
NAME := nio, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(BUILD_LIBNIO_SRC), \
|
||||
EXCLUDE_FILES := $(BUILD_LIBNIO_EXFILES), \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, 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
|
||||
@ -29,8 +29,8 @@ ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
|
||||
LIBOSXAPP_SRC := $(TOPDIR)/src/java.desktop/macosx/native/libosxapp
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBOSXAPP, \
|
||||
LIBRARY := osxapp, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBOSXAPP, \
|
||||
NAME := osxapp, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBOSXAPP_SRC), \
|
||||
OPTIMIZATION := LOW, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2015, 2018, 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
|
||||
@ -26,7 +26,7 @@
|
||||
include LibCommon.gmk
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
# JavaNativeFoundation framework not supported in static builds
|
||||
# JavaNativeFoundation framework not supported in static builds
|
||||
ifneq ($(STATIC_BUILD), true)
|
||||
|
||||
################################################################################
|
||||
@ -36,8 +36,8 @@ ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
$(LIBJAVA_HEADER_FLAGS) \
|
||||
-I$(SUPPORT_OUTPUTDIR)/headers/java.base \
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBOSXSECURITY, \
|
||||
LIBRARY := osxsecurity, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBOSXSECURITY, \
|
||||
NAME := osxsecurity, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBOSXSECURITY_DIRS), \
|
||||
OPTIMIZATION := LOW, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2018, 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
|
||||
@ -114,8 +114,8 @@ endif # OPENJDK_TARGET_OS solaris
|
||||
|
||||
LIBJSOUND_CFLAGS += -DEXTRA_SOUND_JNI_LIBS='"$(EXTRA_SOUND_JNI_LIBS)"'
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJSOUND, \
|
||||
LIBRARY := jsound, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBJSOUND, \
|
||||
NAME := jsound, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBJSOUND_SRC_DIRS), \
|
||||
INCLUDE_FILES := $(LIBJSOUND_SRC_FILES), \
|
||||
@ -149,8 +149,8 @@ TARGETS += $(BUILD_LIBJSOUND)
|
||||
|
||||
ifneq ($(filter jsoundalsa, $(EXTRA_SOUND_JNI_LIBS)), )
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJSOUNDALSA, \
|
||||
LIBRARY := jsoundalsa, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBJSOUNDALSA, \
|
||||
NAME := jsoundalsa, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBJSOUND_SRC_DIRS), \
|
||||
INCLUDE_FILES := Utilities.c $(LIBJSOUND_MIDIFILES) $(LIBJSOUND_PORTFILES) \
|
||||
@ -186,8 +186,8 @@ endif
|
||||
|
||||
ifneq ($(filter jsoundds, $(EXTRA_SOUND_JNI_LIBS)), )
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJSOUNDDS, \
|
||||
LIBRARY := jsoundds, \
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBJSOUNDDS, \
|
||||
NAME := jsoundds, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBJSOUND_SRC_DIRS), \
|
||||
INCLUDE_FILES := Utilities.c $(LIBJSOUND_DAUDIOFILES) \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -64,7 +64,7 @@ TARGETS += $(BUILD_FAILURE_HANDLER)
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBTIMEOUT_HANDLER, \
|
||||
LIBRARY := timeoutHandler, \
|
||||
NAME := timeoutHandler, \
|
||||
SRC := $(FH_BASEDIR)/src/windows/native/libtimeoutHandler, \
|
||||
OBJECT_DIR := $(FH_SUPPORT)/libtimeoutHandler, \
|
||||
OUTPUT_DIR := $(FH_SUPPORT), \
|
||||
|
@ -587,6 +587,20 @@ void G1RemSet::refine_card_concurrently(jbyte* card_ptr,
|
||||
return;
|
||||
}
|
||||
|
||||
// While we are processing RSet buffers during the collection, we
|
||||
// actually don't want to scan any cards on the collection set,
|
||||
// since we don't want to update remembered sets with entries that
|
||||
// point into the collection set, given that live objects from the
|
||||
// collection set are about to move and such entries will be stale
|
||||
// very soon. This change also deals with a reliability issue which
|
||||
// involves scanning a card in the collection set and coming across
|
||||
// an array that was being chunked and looking malformed. Note,
|
||||
// however, that if evacuation fails, we have to scan any objects
|
||||
// that were not moved and create any missing entries.
|
||||
if (r->in_collection_set()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// The result from the hot card cache insert call is either:
|
||||
// * pointer to the current card
|
||||
// (implying that the current card is not 'hot'),
|
||||
@ -611,7 +625,8 @@ void G1RemSet::refine_card_concurrently(jbyte* card_ptr,
|
||||
|
||||
// Check whether the region formerly in the cache should be
|
||||
// ignored, as discussed earlier for the original card. The
|
||||
// region could have been freed while in the cache.
|
||||
// region could have been freed while in the cache. The cset is
|
||||
// not relevant here, since we're in concurrent phase.
|
||||
if (!r->is_old_or_humongous()) {
|
||||
return;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -88,6 +88,29 @@ abstract class AbstractStringBuilder implements Appendable, CharSequence {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares the objects of two AbstractStringBuilder implementations lexicographically.
|
||||
*
|
||||
* @since 11
|
||||
*/
|
||||
int compareTo(AbstractStringBuilder another) {
|
||||
if (this == another) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
byte val1[] = value;
|
||||
byte val2[] = another.value;
|
||||
int count1 = this.count;
|
||||
int count2 = another.count;
|
||||
|
||||
if (coder == another.coder) {
|
||||
return isLatin1() ? StringLatin1.compareTo(val1, val2, count1, count2)
|
||||
: StringUTF16.compareTo(val1, val2, count1, count2);
|
||||
}
|
||||
return isLatin1() ? StringLatin1.compareToUTF16(val1, val2, count1, count2)
|
||||
: StringUTF16.compareToLatin1(val1, val2, count1, count2);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the length (character count).
|
||||
*
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2018, 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
|
||||
@ -26,6 +26,7 @@
|
||||
package java.lang;
|
||||
|
||||
import java.util.NoSuchElementException;
|
||||
import java.util.Objects;
|
||||
import java.util.PrimitiveIterator;
|
||||
import java.util.Spliterator;
|
||||
import java.util.Spliterators;
|
||||
@ -43,9 +44,9 @@ import java.util.stream.StreamSupport;
|
||||
*
|
||||
* <p> This interface does not refine the general contracts of the {@link
|
||||
* java.lang.Object#equals(java.lang.Object) equals} and {@link
|
||||
* java.lang.Object#hashCode() hashCode} methods. The result of comparing two
|
||||
* objects that implement {@code CharSequence} is therefore, in general,
|
||||
* undefined. Each object may be implemented by a different class, and there
|
||||
* java.lang.Object#hashCode() hashCode} methods. The result of testing two objects
|
||||
* that implement {@code CharSequence} for equality is therefore, in general, undefined.
|
||||
* Each object may be implemented by a different class, and there
|
||||
* is no guarantee that each class will be capable of testing its instances
|
||||
* for equality with those of the other. It is therefore inappropriate to use
|
||||
* arbitrary {@code CharSequence} instances as elements in a set or as keys in
|
||||
@ -237,4 +238,54 @@ public interface CharSequence {
|
||||
Spliterator.ORDERED,
|
||||
false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares two {@code CharSequence} instances lexicographically. Returns a
|
||||
* negative value, zero, or a positive value if the first sequence is lexicographically
|
||||
* less than, equal to, or greater than the second, respectively.
|
||||
*
|
||||
* <p>
|
||||
* The lexicographical ordering of {@code CharSequence} is defined as follows.
|
||||
* Consider a {@code CharSequence} <i>cs</i> of length <i>len</i> to be a
|
||||
* sequence of char values, <i>cs[0]</i> to <i>cs[len-1]</i>. Suppose <i>k</i>
|
||||
* is the lowest index at which the corresponding char values from each sequence
|
||||
* differ. The lexicographic ordering of the sequences is determined by a numeric
|
||||
* comparison of the char values <i>cs1[k]</i> with <i>cs2[k]</i>. If there is
|
||||
* no such index <i>k</i>, the shorter sequence is considered lexicographically
|
||||
* less than the other. If the sequences have the same length, the sequences are
|
||||
* considered lexicographically equal.
|
||||
*
|
||||
*
|
||||
* @param cs1 the first {@code CharSequence}
|
||||
* @param cs2 the second {@code CharSequence}
|
||||
*
|
||||
* @return the value {@code 0} if the two {@code CharSequence} are equal;
|
||||
* a negative integer if the first {@code CharSequence}
|
||||
* is lexicographically less than the second; or a
|
||||
* positive integer if the first {@code CharSequence} is
|
||||
* lexicographically greater than the second.
|
||||
*
|
||||
* @since 11
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public static int compare(CharSequence cs1, CharSequence cs2) {
|
||||
if (Objects.requireNonNull(cs1) == Objects.requireNonNull(cs2)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (cs1.getClass() == cs2.getClass() && cs1 instanceof Comparable) {
|
||||
return ((Comparable<Object>) cs1).compareTo(cs2);
|
||||
}
|
||||
|
||||
for (int i = 0, len = Math.min(cs1.length(), cs2.length()); i < len; i++) {
|
||||
char a = cs1.charAt(i);
|
||||
char b = cs2.charAt(i);
|
||||
if (a != b) {
|
||||
return a - b;
|
||||
}
|
||||
}
|
||||
|
||||
return cs1.length() - cs2.length();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -2963,6 +2963,56 @@ public final class String
|
||||
*/
|
||||
public native String intern();
|
||||
|
||||
/**
|
||||
* Returns a string whose value is the concatenation of this
|
||||
* string repeated {@code count} times.
|
||||
* <p>
|
||||
* If this string is empty or count is zero then the empty
|
||||
* string is returned.
|
||||
*
|
||||
* @param count number of times to repeat
|
||||
*
|
||||
* @return A string composed of this string repeated
|
||||
* {@code count} times or the empty string if this
|
||||
* string is empty or count is zero
|
||||
*
|
||||
* @throws IllegalArgumentException if the {@code count} is
|
||||
* negative.
|
||||
*
|
||||
* @since 11
|
||||
*/
|
||||
public String repeat(int count) {
|
||||
if (count < 0) {
|
||||
throw new IllegalArgumentException("count is negative: " + count);
|
||||
}
|
||||
if (count == 1) {
|
||||
return this;
|
||||
}
|
||||
final int len = value.length;
|
||||
if (len == 0 || count == 0) {
|
||||
return "";
|
||||
}
|
||||
if (len == 1) {
|
||||
final byte[] single = new byte[count];
|
||||
Arrays.fill(single, value[0]);
|
||||
return new String(single, coder);
|
||||
}
|
||||
if (Integer.MAX_VALUE / count < len) {
|
||||
throw new OutOfMemoryError("Repeating " + len + " bytes String " + count +
|
||||
" times will produce a String exceeding maximum size.");
|
||||
}
|
||||
final int limit = len * count;
|
||||
final byte[] multiple = new byte[limit];
|
||||
System.arraycopy(value, 0, multiple, 0, len);
|
||||
int copied = len;
|
||||
for (int next = copied << 1; next < limit && 0 < next; next = next << 1) {
|
||||
System.arraycopy(multiple, 0, multiple, copied, copied);
|
||||
copied = next;
|
||||
}
|
||||
System.arraycopy(multiple, 0, multiple, copied, limit - copied);
|
||||
return new String(multiple, coder);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1994, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1994, 2018, 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
|
||||
@ -90,6 +90,14 @@ import jdk.internal.HotSpotIntrinsicCandidate;
|
||||
* this one, as it supports all of the same operations but it is faster, as
|
||||
* it performs no synchronization.
|
||||
*
|
||||
* @apiNote
|
||||
* {@code StringBuffer} implements {@code Comparable} but does not override
|
||||
* {@link Object#equals equals}. Thus, the natural ordering of {@code StringBuffer}
|
||||
* is inconsistent with equals. Care should be exercised if {@code StringBuffer}
|
||||
* objects are used as keys in a {@code SortedMap} or elements in a {@code SortedSet}.
|
||||
* See {@link Comparable}, {@link java.util.SortedMap SortedMap}, or
|
||||
* {@link java.util.SortedSet SortedSet} for more information.
|
||||
*
|
||||
* @author Arthur van Hoff
|
||||
* @see java.lang.StringBuilder
|
||||
* @see java.lang.String
|
||||
@ -97,7 +105,7 @@ import jdk.internal.HotSpotIntrinsicCandidate;
|
||||
*/
|
||||
public final class StringBuffer
|
||||
extends AbstractStringBuilder
|
||||
implements java.io.Serializable, CharSequence
|
||||
implements java.io.Serializable, Comparable<StringBuffer>, CharSequence
|
||||
{
|
||||
|
||||
/**
|
||||
@ -162,6 +170,35 @@ import jdk.internal.HotSpotIntrinsicCandidate;
|
||||
append(seq);
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares two {@code StringBuffer} instances lexicographically. This method
|
||||
* follows the same rules for lexicographical comparison as defined in the
|
||||
* {@linkplain java.lang.CharSequence#compare(java.lang.CharSequence,
|
||||
* java.lang.CharSequence) CharSequence.compare(this, another)} method.
|
||||
*
|
||||
* <p>
|
||||
* For finer-grained, locale-sensitive String comparison, refer to
|
||||
* {@link java.text.Collator}.
|
||||
*
|
||||
* @implNote
|
||||
* This method synchronizes on {@code this}, the current object, but not
|
||||
* {@code StringBuffer another} with which {@code this StringBuffer} is compared.
|
||||
*
|
||||
* @param another the {@code StringBuffer} to be compared with
|
||||
*
|
||||
* @return the value {@code 0} if this {@code StringBuffer} contains the same
|
||||
* character sequence as that of the argument {@code StringBuffer}; a negative integer
|
||||
* if this {@code StringBuffer} is lexicographically less than the
|
||||
* {@code StringBuffer} argument; or a positive integer if this {@code StringBuffer}
|
||||
* is lexicographically greater than the {@code StringBuffer} argument.
|
||||
*
|
||||
* @since 11
|
||||
*/
|
||||
@Override
|
||||
public synchronized int compareTo(StringBuffer another) {
|
||||
return super.compareTo(another);
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized int length() {
|
||||
return count;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2018, 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,14 @@ import jdk.internal.HotSpotIntrinsicCandidate;
|
||||
* or method in this class will cause a {@link NullPointerException} to be
|
||||
* thrown.
|
||||
*
|
||||
* @apiNote
|
||||
* {@code StringBuilder} implements {@code Comparable} but does not override
|
||||
* {@link Object#equals equals}. Thus, the natural ordering of {@code StringBuilder}
|
||||
* is inconsistent with equals. Care should be exercised if {@code StringBuilder}
|
||||
* objects are used as keys in a {@code SortedMap} or elements in a {@code SortedSet}.
|
||||
* See {@link Comparable}, {@link java.util.SortedMap SortedMap}, or
|
||||
* {@link java.util.SortedSet SortedSet} for more information.
|
||||
*
|
||||
* @author Michael McCloskey
|
||||
* @see java.lang.StringBuffer
|
||||
* @see java.lang.String
|
||||
@ -76,7 +84,7 @@ import jdk.internal.HotSpotIntrinsicCandidate;
|
||||
*/
|
||||
public final class StringBuilder
|
||||
extends AbstractStringBuilder
|
||||
implements java.io.Serializable, CharSequence
|
||||
implements java.io.Serializable, Comparable<StringBuilder>, CharSequence
|
||||
{
|
||||
|
||||
/** use serialVersionUID for interoperability */
|
||||
@ -130,6 +138,31 @@ public final class StringBuilder
|
||||
append(seq);
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares two {@code StringBuilder} instances lexicographically. This method
|
||||
* follows the same rules for lexicographical comparison as defined in the
|
||||
* {@linkplain java.lang.CharSequence#compare(java.lang.CharSequence,
|
||||
* java.lang.CharSequence) CharSequence.compare(this, another)} method.
|
||||
*
|
||||
* <p>
|
||||
* For finer-grained, locale-sensitive String comparison, refer to
|
||||
* {@link java.text.Collator}.
|
||||
*
|
||||
* @param another the {@code StringBuilder} to be compared with
|
||||
*
|
||||
* @return the value {@code 0} if this {@code StringBuilder} contains the same
|
||||
* character sequence as that of the argument {@code StringBuilder}; a negative integer
|
||||
* if this {@code StringBuilder} is lexicographically less than the
|
||||
* {@code StringBuilder} argument; or a positive integer if this {@code StringBuilder}
|
||||
* is lexicographically greater than the {@code StringBuilder} argument.
|
||||
*
|
||||
* @since 11
|
||||
*/
|
||||
@Override
|
||||
public int compareTo(StringBuilder another) {
|
||||
return super.compareTo(another);
|
||||
}
|
||||
|
||||
@Override
|
||||
public StringBuilder append(Object obj) {
|
||||
return append(String.valueOf(obj));
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2015, 2018, 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
|
||||
@ -103,6 +103,10 @@ final class StringLatin1 {
|
||||
public static int compareTo(byte[] value, byte[] other) {
|
||||
int len1 = value.length;
|
||||
int len2 = other.length;
|
||||
return compareTo(value, other, len1, len2);
|
||||
}
|
||||
|
||||
public static int compareTo(byte[] value, byte[] other, int len1, int len2) {
|
||||
int lim = Math.min(len1, len2);
|
||||
for (int k = 0; k < lim; k++) {
|
||||
if (value[k] != other[k]) {
|
||||
@ -116,6 +120,20 @@ final class StringLatin1 {
|
||||
public static int compareToUTF16(byte[] value, byte[] other) {
|
||||
int len1 = length(value);
|
||||
int len2 = StringUTF16.length(other);
|
||||
return compareToUTF16Values(value, other, len1, len2);
|
||||
}
|
||||
|
||||
/*
|
||||
* Checks the boundary and then compares the byte arrays.
|
||||
*/
|
||||
public static int compareToUTF16(byte[] value, byte[] other, int len1, int len2) {
|
||||
checkOffset(len1, length(value));
|
||||
checkOffset(len2, StringUTF16.length(other));
|
||||
|
||||
return compareToUTF16Values(value, other, len1, len2);
|
||||
}
|
||||
|
||||
private static int compareToUTF16Values(byte[] value, byte[] other, int len1, int len2) {
|
||||
int lim = Math.min(len1, len2);
|
||||
for (int k = 0; k < lim; k++) {
|
||||
char c1 = getChar(value, k);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2015, 2018, 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
|
||||
@ -273,6 +273,20 @@ final class StringUTF16 {
|
||||
public static int compareTo(byte[] value, byte[] other) {
|
||||
int len1 = length(value);
|
||||
int len2 = length(other);
|
||||
return compareValues(value, other, len1, len2);
|
||||
}
|
||||
|
||||
/*
|
||||
* Checks the boundary and then compares the byte arrays.
|
||||
*/
|
||||
public static int compareTo(byte[] value, byte[] other, int len1, int len2) {
|
||||
checkOffset(len1, value);
|
||||
checkOffset(len2, other);
|
||||
|
||||
return compareValues(value, other, len1, len2);
|
||||
}
|
||||
|
||||
private static int compareValues(byte[] value, byte[] other, int len1, int len2) {
|
||||
int lim = Math.min(len1, len2);
|
||||
for (int k = 0; k < lim; k++) {
|
||||
char c1 = getChar(value, k);
|
||||
@ -289,6 +303,10 @@ final class StringUTF16 {
|
||||
return -StringLatin1.compareToUTF16(other, value);
|
||||
}
|
||||
|
||||
public static int compareToLatin1(byte[] value, byte[] other, int len1, int len2) {
|
||||
return -StringLatin1.compareToUTF16(other, value, len2, len1);
|
||||
}
|
||||
|
||||
public static int compareToCI(byte[] value, byte[] other) {
|
||||
int len1 = length(value);
|
||||
int len2 = length(other);
|
||||
|
@ -1007,22 +1007,22 @@ class Thread implements Runnable {
|
||||
* @spec JSR-51
|
||||
*/
|
||||
public void interrupt() {
|
||||
Thread me = Thread.currentThread();
|
||||
if (this != me)
|
||||
if (this != Thread.currentThread()) {
|
||||
checkAccess();
|
||||
|
||||
// set interrupt status
|
||||
interrupt0();
|
||||
|
||||
// thread may be blocked in an I/O operation
|
||||
if (this != me && blocker != null) {
|
||||
// thread may be blocked in an I/O operation
|
||||
synchronized (blockerLock) {
|
||||
Interruptible b = blocker;
|
||||
if (b != null) {
|
||||
interrupt0(); // set interrupt status
|
||||
b.interrupt(this);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// set interrupt status
|
||||
interrupt0();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -93,6 +93,10 @@ class InvokerBytecodeGenerator {
|
||||
private ClassWriter cw;
|
||||
private MethodVisitor mv;
|
||||
|
||||
/** Single element internal class name lookup cache. */
|
||||
private Class<?> lastClass;
|
||||
private String lastInternalName;
|
||||
|
||||
private static final MemberName.Factory MEMBERNAME_FACTORY = MemberName.getFactory();
|
||||
private static final Class<?> HOST_CLASS = LambdaForm.class;
|
||||
|
||||
@ -602,13 +606,18 @@ class InvokerBytecodeGenerator {
|
||||
mv.visitInsn(opcode);
|
||||
}
|
||||
|
||||
private static String getInternalName(Class<?> c) {
|
||||
private String getInternalName(Class<?> c) {
|
||||
if (c == Object.class) return OBJ;
|
||||
else if (c == Object[].class) return OBJARY;
|
||||
else if (c == Class.class) return CLS;
|
||||
else if (c == MethodHandle.class) return MH;
|
||||
assert(VerifyAccess.isTypeVisible(c, Object.class)) : c.getName();
|
||||
return c.getName().replace('.', '/');
|
||||
|
||||
if (c == lastClass) {
|
||||
return lastInternalName;
|
||||
}
|
||||
lastClass = c;
|
||||
return lastInternalName = c.getName().replace('.', '/');
|
||||
}
|
||||
|
||||
private static MemberName resolveFrom(String name, MethodType type, Class<?> holder) {
|
||||
|
@ -105,7 +105,8 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* {@code checkCreateClassLoader} method doesn't allow
|
||||
* creation of a class loader.
|
||||
* @exception NullPointerException if {@code urls} is {@code null}.
|
||||
* @exception NullPointerException if {@code urls} or any of its
|
||||
* elements is {@code null}.
|
||||
* @see SecurityManager#checkCreateClassLoader
|
||||
*/
|
||||
public URLClassLoader(URL[] urls, ClassLoader parent) {
|
||||
@ -149,7 +150,8 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* {@code checkCreateClassLoader} method doesn't allow
|
||||
* creation of a class loader.
|
||||
* @exception NullPointerException if {@code urls} is {@code null}.
|
||||
* @exception NullPointerException if {@code urls} or any of its
|
||||
* elements is {@code null}.
|
||||
* @see SecurityManager#checkCreateClassLoader
|
||||
*/
|
||||
public URLClassLoader(URL[] urls) {
|
||||
@ -192,7 +194,8 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* {@code checkCreateClassLoader} method doesn't allow
|
||||
* creation of a class loader.
|
||||
* @exception NullPointerException if {@code urls} is {@code null}.
|
||||
* @exception NullPointerException if {@code urls} or any of its
|
||||
* elements is {@code null}.
|
||||
* @see SecurityManager#checkCreateClassLoader
|
||||
*/
|
||||
public URLClassLoader(URL[] urls, ClassLoader parent,
|
||||
@ -221,7 +224,8 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
|
||||
* @param parent the parent class loader for delegation
|
||||
*
|
||||
* @throws IllegalArgumentException if the given name is empty.
|
||||
* @throws NullPointerException if {@code urls} is {@code null}.
|
||||
* @throws NullPointerException if {@code urls} or any of its
|
||||
* elements is {@code null}.
|
||||
*
|
||||
* @throws SecurityException if a security manager exists and its
|
||||
* {@link SecurityManager#checkCreateClassLoader()} method doesn't
|
||||
@ -256,7 +260,8 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
|
||||
* @param factory the URLStreamHandlerFactory to use when creating URLs
|
||||
*
|
||||
* @throws IllegalArgumentException if the given name is empty.
|
||||
* @throws NullPointerException if {@code urls} is {@code null}.
|
||||
* @throws NullPointerException if {@code urls} or any of its
|
||||
* elements is {@code null}.
|
||||
*
|
||||
* @throws SecurityException if a security manager exists and its
|
||||
* {@code checkCreateClassLoader} method doesn't allow
|
||||
@ -805,7 +810,8 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
|
||||
*
|
||||
* @param urls the URLs to search for classes and resources
|
||||
* @param parent the parent class loader for delegation
|
||||
* @exception NullPointerException if {@code urls} is {@code null}.
|
||||
* @exception NullPointerException if {@code urls} or any of its
|
||||
* elements is {@code null}.
|
||||
* @return the resulting class loader
|
||||
*/
|
||||
public static URLClassLoader newInstance(final URL[] urls,
|
||||
@ -831,7 +837,8 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
|
||||
* loading the class.
|
||||
*
|
||||
* @param urls the URLs to search for classes and resources
|
||||
* @exception NullPointerException if {@code urls} is {@code null}.
|
||||
* @exception NullPointerException if {@code urls} or any of its
|
||||
* elements is {@code null}.
|
||||
* @return the resulting class loader
|
||||
*/
|
||||
public static URLClassLoader newInstance(final URL[] urls) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -27,9 +27,8 @@ package java.nio.charset;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.nio.*;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
|
||||
|
||||
/**
|
||||
* A description of the result state of a coder.
|
||||
@ -197,14 +196,12 @@ public class CoderResult {
|
||||
|
||||
protected abstract CoderResult create(int len);
|
||||
|
||||
private synchronized CoderResult get(int len) {
|
||||
if (len <= 0)
|
||||
throw new IllegalArgumentException("Non-positive length");
|
||||
private CoderResult get(int len) {
|
||||
Integer k = len;
|
||||
WeakReference<CoderResult> w;
|
||||
CoderResult e = null;
|
||||
if (cache == null) {
|
||||
cache = new HashMap<>();
|
||||
cache = new ConcurrentHashMap<>();
|
||||
} else if ((w = cache.get(k)) != null) {
|
||||
e = w.get();
|
||||
}
|
||||
@ -214,15 +211,21 @@ public class CoderResult {
|
||||
}
|
||||
return e;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static Cache malformedCache
|
||||
private static final Cache malformedCache
|
||||
= new Cache() {
|
||||
public CoderResult create(int len) {
|
||||
return new CoderResult(CR_MALFORMED, len);
|
||||
}};
|
||||
|
||||
private static final CoderResult[] malformed4 = new CoderResult[] {
|
||||
new CoderResult(CR_MALFORMED, 1),
|
||||
new CoderResult(CR_MALFORMED, 2),
|
||||
new CoderResult(CR_MALFORMED, 3),
|
||||
new CoderResult(CR_MALFORMED, 4),
|
||||
};
|
||||
|
||||
/**
|
||||
* Static factory method that returns the unique object describing a
|
||||
* malformed-input error of the given length.
|
||||
@ -233,15 +236,26 @@ public class CoderResult {
|
||||
* @return The requested coder-result object
|
||||
*/
|
||||
public static CoderResult malformedForLength(int length) {
|
||||
if (length <= 0)
|
||||
throw new IllegalArgumentException("Non-positive length");
|
||||
if (length <= 4)
|
||||
return malformed4[length - 1];
|
||||
return malformedCache.get(length);
|
||||
}
|
||||
|
||||
private static Cache unmappableCache
|
||||
private static final Cache unmappableCache
|
||||
= new Cache() {
|
||||
public CoderResult create(int len) {
|
||||
return new CoderResult(CR_UNMAPPABLE, len);
|
||||
}};
|
||||
|
||||
private static final CoderResult[] unmappable4 = new CoderResult[] {
|
||||
new CoderResult(CR_UNMAPPABLE, 1),
|
||||
new CoderResult(CR_UNMAPPABLE, 2),
|
||||
new CoderResult(CR_UNMAPPABLE, 3),
|
||||
new CoderResult(CR_UNMAPPABLE, 4),
|
||||
};
|
||||
|
||||
/**
|
||||
* Static factory method that returns the unique result object describing
|
||||
* an unmappable-character error of the given length.
|
||||
@ -252,6 +266,10 @@ public class CoderResult {
|
||||
* @return The requested coder-result object
|
||||
*/
|
||||
public static CoderResult unmappableForLength(int length) {
|
||||
if (length <= 0)
|
||||
throw new IllegalArgumentException("Non-positive length");
|
||||
if (length <= 4)
|
||||
return unmappable4[length - 1];
|
||||
return unmappableCache.get(length);
|
||||
}
|
||||
|
||||
|
@ -40,7 +40,9 @@ import sun.util.logging.PlatformLogger;
|
||||
* The Attributes class maps Manifest attribute names to associated string
|
||||
* values. Valid attribute names are case-insensitive, are restricted to
|
||||
* the ASCII characters in the set [0-9a-zA-Z_-], and cannot exceed 70
|
||||
* characters in length. Attribute values can contain any characters and
|
||||
* characters in length. There must be a colon and a SPACE after the name;
|
||||
* the combined length will not exceed 72 characters.
|
||||
* Attribute values can contain any characters and
|
||||
* will be UTF8-encoded when written to the output stream. See the
|
||||
* <a href="{@docRoot}/../specs/jar/jar.html">JAR File Specification</a>
|
||||
* for more information about valid attribute names and values.
|
||||
@ -310,8 +312,8 @@ public class Attributes implements Map<Object,Object>, Cloneable {
|
||||
}
|
||||
buffer.append(value);
|
||||
|
||||
buffer.append("\r\n");
|
||||
Manifest.make72Safe(buffer);
|
||||
buffer.append("\r\n");
|
||||
os.writeBytes(buffer.toString());
|
||||
}
|
||||
os.writeBytes("\r\n");
|
||||
@ -355,8 +357,8 @@ public class Attributes implements Map<Object,Object>, Cloneable {
|
||||
}
|
||||
buffer.append(value);
|
||||
|
||||
buffer.append("\r\n");
|
||||
Manifest.make72Safe(buffer);
|
||||
buffer.append("\r\n");
|
||||
out.writeBytes(buffer.toString());
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2018, 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
|
||||
@ -157,8 +157,8 @@ public class Manifest implements Cloneable {
|
||||
value = new String(vb, 0, 0, vb.length);
|
||||
}
|
||||
buffer.append(value);
|
||||
buffer.append("\r\n");
|
||||
make72Safe(buffer);
|
||||
buffer.append("\r\n");
|
||||
dos.writeBytes(buffer.toString());
|
||||
e.getValue().write(dos);
|
||||
}
|
||||
@ -170,13 +170,11 @@ public class Manifest implements Cloneable {
|
||||
*/
|
||||
static void make72Safe(StringBuffer line) {
|
||||
int length = line.length();
|
||||
if (length > 72) {
|
||||
int index = 70;
|
||||
while (index < length - 2) {
|
||||
line.insert(index, "\r\n ");
|
||||
index += 72;
|
||||
length += 3;
|
||||
}
|
||||
int index = 72;
|
||||
while (index < length) {
|
||||
line.insert(index, "\r\n ");
|
||||
index += 74; // + line width + line break ("\r\n")
|
||||
length += 3; // + line break ("\r\n") and space
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -107,6 +107,11 @@ public class BytecodeDescriptor {
|
||||
}
|
||||
|
||||
public static String unparse(Class<?> type) {
|
||||
if (type == Object.class) {
|
||||
return "Ljava/lang/Object;";
|
||||
} else if (type == int.class) {
|
||||
return "I";
|
||||
}
|
||||
StringBuilder sb = new StringBuilder();
|
||||
unparseSig(type, sb);
|
||||
return sb.toString();
|
||||
@ -148,6 +153,8 @@ public class BytecodeDescriptor {
|
||||
char c = Wrapper.forBasicType(t).basicTypeChar();
|
||||
if (c != 'L') {
|
||||
sb.append(c);
|
||||
} else if (t == Object.class) {
|
||||
sb.append("Ljava/lang/Object;");
|
||||
} else {
|
||||
boolean lsemi = (!t.isArray());
|
||||
if (lsemi) sb.append('L');
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2011, 2018, 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
|
||||
@ -52,6 +52,8 @@ class _AppMenuBarHandler {
|
||||
return instance;
|
||||
}
|
||||
|
||||
private static ScreenMenuBar defaultMenuBar;
|
||||
|
||||
// callback from the native delegate -init function
|
||||
private static void initMenuStates(final boolean aboutMenuItemVisible,
|
||||
final boolean aboutMenuItemEnabled,
|
||||
@ -76,6 +78,9 @@ class _AppMenuBarHandler {
|
||||
|
||||
void setDefaultMenuBar(final JMenuBar menuBar) {
|
||||
installDefaultMenuBar(menuBar);
|
||||
if (menuBar == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
// scan the current frames, and see if any are foreground
|
||||
final Frame[] frames = Frame.getFrames();
|
||||
@ -100,8 +105,13 @@ class _AppMenuBarHandler {
|
||||
}
|
||||
|
||||
static void installDefaultMenuBar(final JMenuBar menuBar) {
|
||||
|
||||
if (menuBar == null) {
|
||||
// intentionally clearing the default menu
|
||||
if (defaultMenuBar != null) {
|
||||
defaultMenuBar.removeNotify();
|
||||
defaultMenuBar = null;
|
||||
}
|
||||
nativeSetDefaultMenuBar(0);
|
||||
return;
|
||||
}
|
||||
@ -124,7 +134,14 @@ class _AppMenuBarHandler {
|
||||
throw new IllegalStateException("Application.setDefaultMenuBar() only works if apple.laf.useScreenMenuBar=true");
|
||||
}
|
||||
|
||||
screenMenuBar.addNotify();
|
||||
if (screenMenuBar != defaultMenuBar) {
|
||||
if (defaultMenuBar != null) {
|
||||
defaultMenuBar.removeNotify();
|
||||
}
|
||||
defaultMenuBar = screenMenuBar;
|
||||
screenMenuBar.addNotify();
|
||||
}
|
||||
|
||||
final Object peer = AWTAccessor.getMenuComponentAccessor().getPeer(screenMenuBar);
|
||||
if (!(peer instanceof CMenuBar)) {
|
||||
// such a thing should not be possible
|
||||
|
@ -2359,6 +2359,7 @@ public class JList<E> extends JComponent implements Scrollable, Accessible
|
||||
|
||||
/**
|
||||
* Selects the specified object from the list.
|
||||
* If the object passed is {@code null}, the selection is cleared.
|
||||
*
|
||||
* @param anObject the object to select
|
||||
* @param shouldScroll {@code true} if the list should scroll to display
|
||||
@ -2366,7 +2367,7 @@ public class JList<E> extends JComponent implements Scrollable, Accessible
|
||||
*/
|
||||
public void setSelectedValue(Object anObject,boolean shouldScroll) {
|
||||
if(anObject == null)
|
||||
setSelectedIndex(-1);
|
||||
clearSelection();
|
||||
else if(!anObject.equals(getSelectedValue())) {
|
||||
int i,c;
|
||||
ListModel<E> dm = getModel();
|
||||
|
@ -110,6 +110,8 @@ public class RepaintManager
|
||||
|
||||
private Dimension doubleBufferMaxSize;
|
||||
|
||||
private boolean isCustomMaxBufferSizeSet = false;
|
||||
|
||||
// Support for both the standard and volatile offscreen buffers exists to
|
||||
// provide backwards compatibility for the [rare] programs which may be
|
||||
// calling getOffScreenBuffer() and not expecting to get a VolatileImage.
|
||||
@ -335,7 +337,13 @@ public class RepaintManager
|
||||
}
|
||||
|
||||
private void displayChanged() {
|
||||
clearImages();
|
||||
if (isCustomMaxBufferSizeSet) {
|
||||
clearImages();
|
||||
} else {
|
||||
// Reset buffer maximum size to get valid size from updated graphics
|
||||
// environment in getDoubleBufferMaximumSize()
|
||||
setDoubleBufferMaximumSize(null);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1156,8 +1164,10 @@ public class RepaintManager
|
||||
public void setDoubleBufferMaximumSize(Dimension d) {
|
||||
doubleBufferMaxSize = d;
|
||||
if (doubleBufferMaxSize == null) {
|
||||
isCustomMaxBufferSizeSet = false;
|
||||
clearImages();
|
||||
} else {
|
||||
isCustomMaxBufferSizeSet = true;
|
||||
clearImages(d.width, d.height);
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2010, 2018, 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
|
||||
@ -149,7 +149,7 @@ public class XRBackendNative implements XRBackend {
|
||||
|
||||
XRColor c = new XRColor();
|
||||
for (int i = 0; i < pixels.length; i++) {
|
||||
c.setColorValues(pixels[i], true);
|
||||
c.setColorValues(pixels[i]);
|
||||
renderColors[i * 4 + 0] = (short) c.alpha;
|
||||
renderColors[i * 4 + 1] = (short) c.red;
|
||||
renderColors[i * 4 + 2] = (short) c.green;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2010, 2018, 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
|
||||
@ -73,7 +73,7 @@ public class XRColor {
|
||||
XRColor c = new XRColor();
|
||||
|
||||
for (int i = 0; i < pixels.length; i++) {
|
||||
c.setColorValues(pixels[i], true);
|
||||
c.setColorValues(pixels[i]);
|
||||
colorValues[i * 4 + 0] = c.alpha;
|
||||
colorValues[i * 4 + 1] = c.red;
|
||||
colorValues[i * 4 + 2] = c.green;
|
||||
@ -83,7 +83,7 @@ public class XRColor {
|
||||
return colorValues;
|
||||
}
|
||||
|
||||
public void setColorValues(int pixel, boolean pre) {
|
||||
public void setColorValues(int pixel) {
|
||||
long pix = XRUtils.intToULong(pixel);
|
||||
alpha = (int) (((pix & 0xFF000000) >> 16) + 255);
|
||||
red = (int) (((pix & 0x00FF0000) >> 8) + 255);
|
||||
@ -93,13 +93,6 @@ public class XRColor {
|
||||
if (alpha == 255) {
|
||||
alpha = 0;
|
||||
}
|
||||
|
||||
if (!pre) {
|
||||
double alphaMult = XRUtils.XFixedToDouble(alpha);
|
||||
this.red = (int) (red * alphaMult);
|
||||
this.green = (int) (green * alphaMult);
|
||||
this.blue = (int) (blue * alphaMult);
|
||||
}
|
||||
}
|
||||
|
||||
public static int byteToXRColorValue(int byteValue) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2010, 2018, 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
|
||||
@ -131,7 +131,7 @@ public class XRCompositeManager {
|
||||
}
|
||||
|
||||
public void setForeground(int pixel) {
|
||||
solidColor.setColorValues(pixel, true);
|
||||
solidColor.setColorValues(pixel);
|
||||
}
|
||||
|
||||
public void setGradientPaint(XRSurfaceData gradient) {
|
||||
|
@ -47,7 +47,7 @@ public class XRSolidSrcPict {
|
||||
|
||||
public XRSurfaceData prepareSrcPict(int pixelVal) {
|
||||
if(pixelVal != curPixVal) {
|
||||
xrCol.setColorValues(pixelVal, true);
|
||||
xrCol.setColorValues(pixelVal);
|
||||
con.renderRectangle(srcPict.picture, XRUtils.PictOpSrc, xrCol, 0, 0, 1, 1);
|
||||
this.curPixVal = pixelVal;
|
||||
}
|
||||
|
@ -394,77 +394,50 @@ int32_t format ;
|
||||
XRectangle bbox; /* bounding box of grabbed area */
|
||||
list_ptr regions;/* list of regions to read from */
|
||||
{
|
||||
image_region_type *reg;
|
||||
int32_t dst_x, dst_y; /* where in pixmap to write (UL) */
|
||||
int32_t diff;
|
||||
|
||||
XImage *reg_image,*ximage ;
|
||||
int32_t srcRect_x,srcRect_y,srcRect_width,srcRect_height ;
|
||||
int32_t rem ;
|
||||
int32_t bytes_per_line;
|
||||
int32_t bitmap_unit;
|
||||
|
||||
bitmap_unit = sizeof (long);
|
||||
if (format == ZPixmap)
|
||||
bytes_per_line = width*depth/8;
|
||||
else
|
||||
bytes_per_line = width/8;
|
||||
|
||||
|
||||
/* Find out how many more bytes are required for padding so that
|
||||
** bytes per scan line will be multiples of bitmap_unit bits */
|
||||
if (format == ZPixmap) {
|
||||
rem = (bytes_per_line*8)%bitmap_unit;
|
||||
if (rem)
|
||||
bytes_per_line += (rem/8 + 1);
|
||||
}
|
||||
XImage *ximage ;
|
||||
image_region_type* reg;
|
||||
int32_t rect;
|
||||
|
||||
ximage = XCreateImage(disp,fakeVis,(uint32_t) depth,format,0,NULL,
|
||||
(uint32_t)width,(uint32_t)height,8,0);
|
||||
|
||||
bytes_per_line = ximage->bytes_per_line;
|
||||
|
||||
if (format == ZPixmap)
|
||||
ximage->data = malloc(height*bytes_per_line);
|
||||
else
|
||||
ximage->data = malloc(height*bytes_per_line*depth);
|
||||
|
||||
ximage->data = calloc(ximage->bytes_per_line*height*((format==ZPixmap)? 1 : depth), sizeof(char));
|
||||
ximage->bits_per_pixel = depth; /** Valid only if format is ZPixmap ***/
|
||||
|
||||
for (reg = (image_region_type *) first_in_list( regions); reg;
|
||||
reg = (image_region_type *) next_in_list( regions))
|
||||
{
|
||||
int32_t rect;
|
||||
struct my_XRegion *vis_reg;
|
||||
vis_reg = (struct my_XRegion *)(reg->visible_region);
|
||||
for (rect = 0;
|
||||
rect < vis_reg->numRects;
|
||||
rect++)
|
||||
struct my_XRegion *vis_reg = (struct my_XRegion *)(reg->visible_region);
|
||||
for (rect = 0; rect < vis_reg->numRects; rect++)
|
||||
{
|
||||
/** ------------------------------------------------------------------------
|
||||
Intersect bbox with visible part of region giving src rect & output
|
||||
location. Width is the min right side minus the max left side.
|
||||
Similar for height. Offset src rect so x,y are relative to
|
||||
origin of win, not the root-relative visible rect of win.
|
||||
------------------------------------------------------------------------ **/
|
||||
srcRect_width = MIN( vis_reg->rects[rect].x2, bbox.width + bbox.x)
|
||||
- MAX( vis_reg->rects[rect].x1, bbox.x);
|
||||
/** ------------------------------------------------------------------------
|
||||
Intersect bbox with visible part of region giving src rect & output
|
||||
location. Width is the min right side minus the max left side.
|
||||
Similar for height. Offset src rect so x,y are relative to
|
||||
origin of win, not the root-relative visible rect of win.
|
||||
------------------------------------------------------------------------ **/
|
||||
int32_t srcRect_width = MIN( vis_reg->rects[rect].x2, bbox.width + bbox.x)
|
||||
- MAX( vis_reg->rects[rect].x1, bbox.x);
|
||||
|
||||
srcRect_height = MIN( vis_reg->rects[rect].y2, bbox.height + bbox.y)
|
||||
- MAX( vis_reg->rects[rect].y1, bbox.y);
|
||||
int32_t srcRect_height = MIN( vis_reg->rects[rect].y2, bbox.height + bbox.y)
|
||||
- MAX( vis_reg->rects[rect].y1, bbox.y);
|
||||
|
||||
diff = bbox.x - vis_reg->rects[rect].x1;
|
||||
srcRect_x = MAX( 0, diff) + (vis_reg->rects[rect].x1 - reg->x_rootrel - reg->border);
|
||||
dst_x = MAX( 0, -diff) ;
|
||||
diff = bbox.y - vis_reg->rects[rect].y1;
|
||||
srcRect_y = MAX( 0, diff) + (vis_reg->rects[rect].y1 - reg->y_rootrel - reg->border);
|
||||
dst_y = MAX( 0, -diff) ;
|
||||
reg_image = XGetImage(disp,reg->win,srcRect_x,srcRect_y,
|
||||
(uint32_t) srcRect_width, (uint32_t) srcRect_height,AllPlanes,format) ;
|
||||
TransferImage(disp,reg_image,srcRect_width,
|
||||
srcRect_height,reg,ximage,dst_x,dst_y) ;
|
||||
XDestroyImage(reg_image);
|
||||
}
|
||||
int32_t diff = bbox.x - vis_reg->rects[rect].x1;
|
||||
int32_t srcRect_x = MAX( 0, diff) + (vis_reg->rects[rect].x1 - reg->x_rootrel - reg->border);
|
||||
int32_t dst_x = MAX( 0, -diff) ;
|
||||
|
||||
diff = bbox.y - vis_reg->rects[rect].y1;
|
||||
int32_t srcRect_y = MAX( 0, diff) + (vis_reg->rects[rect].y1 - reg->y_rootrel - reg->border);
|
||||
int32_t dst_y = MAX( 0, -diff) ;
|
||||
XImage* reg_image = XGetImage(disp,reg->win,srcRect_x,srcRect_y,
|
||||
(uint32_t) srcRect_width, (uint32_t) srcRect_height,AllPlanes,format) ;
|
||||
|
||||
if (reg_image) {
|
||||
TransferImage(disp,reg_image,srcRect_width,
|
||||
srcRect_height,reg,ximage,dst_x,dst_y) ;
|
||||
XDestroyImage(reg_image);
|
||||
}
|
||||
}
|
||||
}
|
||||
return ximage ;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2018, 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
|
||||
@ -116,11 +116,10 @@ public class MonitorInfo extends LockInfo {
|
||||
* <tbody style="text-align:left">
|
||||
* <tr>
|
||||
* <th scope="row">lockedStackFrame</th>
|
||||
* <td><code>CompositeData as specified in the
|
||||
* <a href="ThreadInfo.html#StackTrace">stackTrace</a>
|
||||
* attribute defined in the {@link ThreadInfo#from
|
||||
* ThreadInfo.from} method.
|
||||
* </code></td>
|
||||
* <td><a href="ThreadInfo.html#stackTraceElement">
|
||||
* {@code CompositeData} for {@code StackTraceElement}</a> as specified
|
||||
* in {@link ThreadInfo#from(CompositeData)} method.
|
||||
* </td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">lockedStackDepth</th>
|
||||
@ -134,7 +133,7 @@ public class MonitorInfo extends LockInfo {
|
||||
* @throws IllegalArgumentException if {@code cd} does not
|
||||
* represent a {@code MonitorInfo} with the attributes described
|
||||
* above.
|
||||
|
||||
*
|
||||
* @return a {@code MonitorInfo} object represented
|
||||
* by {@code cd} if {@code cd} is not {@code null};
|
||||
* {@code null} otherwise.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2018, 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 @@
|
||||
|
||||
package java.lang.management;
|
||||
|
||||
import javax.management.openmbean.ArrayType;
|
||||
import javax.management.openmbean.CompositeData;
|
||||
import sun.management.ManagementFactoryHelper;
|
||||
import sun.management.ThreadInfoCompositeData;
|
||||
@ -110,7 +111,6 @@ public class ThreadInfo {
|
||||
private StackTraceElement[] stackTrace;
|
||||
private MonitorInfo[] lockedMonitors;
|
||||
private LockInfo[] lockedSynchronizers;
|
||||
|
||||
private static MonitorInfo[] EMPTY_MONITORS = new MonitorInfo[0];
|
||||
private static LockInfo[] EMPTY_SYNCS = new LockInfo[0];
|
||||
|
||||
@ -264,6 +264,11 @@ public class ThreadInfo {
|
||||
/*
|
||||
* Constructs a {@code ThreadInfo} object from a
|
||||
* {@link CompositeData CompositeData}.
|
||||
*
|
||||
* @throws IllegalArgumentException if the given CompositeData does not
|
||||
* contain all of the attributes defined for ThreadInfo of version <= N.
|
||||
*
|
||||
* @see ThreadInfo#from
|
||||
*/
|
||||
private ThreadInfo(CompositeData cd) {
|
||||
ThreadInfoCompositeData ticd = ThreadInfoCompositeData.getInstance(cd);
|
||||
@ -281,41 +286,11 @@ public class ThreadInfo {
|
||||
suspended = ticd.suspended();
|
||||
inNative = ticd.inNative();
|
||||
stackTrace = ticd.stackTrace();
|
||||
|
||||
// 6.0 attributes
|
||||
if (ticd.hasV6()) {
|
||||
lock = ticd.lockInfo();
|
||||
lockedMonitors = ticd.lockedMonitors();
|
||||
lockedSynchronizers = ticd.lockedSynchronizers();
|
||||
} else {
|
||||
// lockInfo is a new attribute added in 1.6 ThreadInfo
|
||||
// If cd is a 5.0 version, construct the LockInfo object
|
||||
// from the lockName value.
|
||||
if (lockName != null) {
|
||||
String result[] = lockName.split("@");
|
||||
if (result.length == 2) {
|
||||
int identityHashCode = Integer.parseInt(result[1], 16);
|
||||
lock = new LockInfo(result[0], identityHashCode);
|
||||
} else {
|
||||
assert result.length == 2;
|
||||
lock = null;
|
||||
}
|
||||
} else {
|
||||
lock = null;
|
||||
}
|
||||
lockedMonitors = EMPTY_MONITORS;
|
||||
lockedSynchronizers = EMPTY_SYNCS;
|
||||
}
|
||||
|
||||
// 9.0 attributes
|
||||
if (ticd.isCurrentVersion()) {
|
||||
daemon = ticd.isDaemon();
|
||||
priority = ticd.getPriority();
|
||||
} else {
|
||||
// Not ideal, but unclear what else we can do.
|
||||
daemon = false;
|
||||
priority = Thread.NORM_PRIORITY;
|
||||
}
|
||||
lock = ticd.lockInfo();
|
||||
lockedMonitors = ticd.lockedMonitors();
|
||||
lockedSynchronizers = ticd.lockedSynchronizers();
|
||||
daemon = ticd.isDaemon();
|
||||
priority = ticd.getPriority();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -692,52 +667,105 @@ public class ThreadInfo {
|
||||
/**
|
||||
* Returns a {@code ThreadInfo} object represented by the
|
||||
* given {@code CompositeData}.
|
||||
* The given {@code CompositeData} must contain the following attributes
|
||||
* unless otherwise specified below:
|
||||
*
|
||||
* <a id="attributes"></a>
|
||||
* A {@code CompositeData} representing a {@code ThreadInfo} of
|
||||
* version <em>N</em> must contain all of the attributes defined
|
||||
* in version ≤ <em>N</em> unless specified otherwise.
|
||||
* The same rule applies the composite type of the given
|
||||
* {@code CompositeData} and transitively to attributes whose
|
||||
* {@linkplain CompositeData#getCompositeType() type} or
|
||||
* {@linkplain ArrayType#getElementOpenType() component type} is
|
||||
* {@code CompositeType}.
|
||||
* <p>
|
||||
* A {@code CompositeData} representing {@code ThreadInfo} of
|
||||
* version <em>N</em> contains {@code "stackTrace"} attribute and
|
||||
* {@code "lockedMonitors"} attribute representing
|
||||
* an array of {@code StackTraceElement} and
|
||||
* an array of {@link MonitorInfo} respectively
|
||||
* and their types are of version <em>N</em>.
|
||||
* The {@code "lockedStackFrame"} attribute in
|
||||
* {@link MonitorInfo#from(CompositeData) MonitorInfo}'s composite type
|
||||
* must represent {@code StackTraceElement} of the same version <em>N</em>.
|
||||
* Otherwise, this method will throw {@code IllegalArgumentException}.
|
||||
*
|
||||
* <table class="striped" style="margin-left:2em">
|
||||
* <caption style="display:none">The attributes and their types the given CompositeData contains</caption>
|
||||
* <caption style="display:none">The attributes and their types for ThreadInfo's composite data</caption>
|
||||
* <thead>
|
||||
* <tr>
|
||||
* <th scope="col">Attribute Name</th>
|
||||
* <th scope="col">Type</th>
|
||||
* <th scope="col">Since</th>
|
||||
* </tr>
|
||||
* </thead>
|
||||
* <tbody style="text-align:left">
|
||||
* <tr>
|
||||
* <th scope="row">threadId</th>
|
||||
* <td>{@code java.lang.Long}</td>
|
||||
* <td>5</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">threadName</th>
|
||||
* <td>{@code java.lang.String}</td>
|
||||
* <td>5</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">threadState</th>
|
||||
* <td>{@code java.lang.String}</td>
|
||||
* <td>5</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">suspended</th>
|
||||
* <td>{@code java.lang.Boolean}</td>
|
||||
* <td>5</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">inNative</th>
|
||||
* <td>{@code java.lang.Boolean}</td>
|
||||
* <td>5</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">blockedCount</th>
|
||||
* <td>{@code java.lang.Long}</td>
|
||||
* <td>5</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">blockedTime</th>
|
||||
* <td>{@code java.lang.Long}</td>
|
||||
* <td>5</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">waitedCount</th>
|
||||
* <td>{@code java.lang.Long}</td>
|
||||
* <td>5</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">waitedTime</th>
|
||||
* <td>{@code java.lang.Long}</td>
|
||||
* <td>5</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">lockName</th>
|
||||
* <td>{@code java.lang.String}</td>
|
||||
* <td>5</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">lockOwnerId</th>
|
||||
* <td>{@code java.lang.Long}</td>
|
||||
* <td>5</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">lockOwnerName</th>
|
||||
* <td>{@code java.lang.String}</td>
|
||||
* <td>5</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row"><a id="StackTrace">stackTrace</a></th>
|
||||
* <td>{@code javax.management.openmbean.CompositeData[]}, each element
|
||||
* is a {@code CompositeData} representing {@code StackTraceElement}
|
||||
* as specified <a href="#stackTraceElement">below</a>.
|
||||
* </td>
|
||||
* <td>5</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">lockInfo</th>
|
||||
@ -745,78 +773,21 @@ public class ThreadInfo {
|
||||
* - the mapped type for {@link LockInfo} as specified in the
|
||||
* {@link LockInfo#from} method.
|
||||
* <p>
|
||||
* If {@code cd} does not contain this attribute,
|
||||
* If the given {@code CompositeData} does not contain this attribute,
|
||||
* the {@code LockInfo} object will be constructed from
|
||||
* the value of the {@code lockName} attribute. </td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">lockName</th>
|
||||
* <td>{@code java.lang.String}</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">lockOwnerId</th>
|
||||
* <td>{@code java.lang.Long}</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">lockOwnerName</th>
|
||||
* <td>{@code java.lang.String}</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row"><a id="StackTrace">stackTrace</a></th>
|
||||
* <td>{@code javax.management.openmbean.CompositeData[]}
|
||||
* <p>
|
||||
* Each element is a {@code CompositeData} representing
|
||||
* StackTraceElement containing the following attributes:
|
||||
* <table class="striped" style="margin-left:2em">
|
||||
* <caption style="display:none">The attributes and their types the given CompositeData contains</caption>
|
||||
* <thead style="text-align:center">
|
||||
* <tr>
|
||||
* <th scope="col">Attribute Name</th>
|
||||
* <th scope="col">Type</th>
|
||||
* </tr>
|
||||
* </thead>
|
||||
* <tbody style="text-align:left">
|
||||
* <tr>
|
||||
* <th scope="row">moduleName</th>
|
||||
* <td>{@code java.lang.String}</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">moduleVersion</th>
|
||||
* <td>{@code java.lang.String}</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">className</th>
|
||||
* <td>{@code java.lang.String}</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">methodName</th>
|
||||
* <td>{@code java.lang.String}</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">fileName</th>
|
||||
* <td>{@code java.lang.String}</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">lineNumber</th>
|
||||
* <td>{@code java.lang.Integer}</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">nativeMethod</th>
|
||||
* <td>{@code java.lang.Boolean}</td>
|
||||
* </tr>
|
||||
* </tbody>
|
||||
* </table>
|
||||
* </td>
|
||||
* the value of the {@code lockName} attribute.</td>
|
||||
* <td>6</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">lockedMonitors</th>
|
||||
* <td>{@code javax.management.openmbean.CompositeData[]}
|
||||
* whose element type is the mapped type for
|
||||
* {@link MonitorInfo} as specified in the
|
||||
* {@link MonitorInfo#from Monitor.from} method.
|
||||
* {@link MonitorInfo#from MonitorInfo.from} method.
|
||||
* <p>
|
||||
* If {@code cd} does not contain this attribute,
|
||||
* this attribute will be set to an empty array. </td>
|
||||
* If the given {@code CompositeData} does not contain this attribute,
|
||||
* this attribute will be set to an empty array.</td>
|
||||
* <td>6</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">lockedSynchronizers</th>
|
||||
@ -824,25 +795,93 @@ public class ThreadInfo {
|
||||
* whose element type is the mapped type for
|
||||
* {@link LockInfo} as specified in the {@link LockInfo#from} method.
|
||||
* <p>
|
||||
* If {@code cd} does not contain this attribute,
|
||||
* this attribute will be set to an empty array. </td>
|
||||
* If the given {@code CompositeData} does not contain this attribute,
|
||||
* this attribute will be set to an empty array.</td>
|
||||
* <td>6</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">daemon</th>
|
||||
* <td>{@code java.lang.Boolean}</td>
|
||||
* <td>{@code java.lang.Boolean}
|
||||
* <p>
|
||||
* If the given {@code CompositeData} does not contain this attribute,
|
||||
* this attribute will be set to {@code false}.</td>
|
||||
* <td>9</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">priority</th>
|
||||
* <td>{@code java.lang.Integer}
|
||||
* <p>
|
||||
* If the given {@code CompositeData} does not contain this attribute,
|
||||
* This attribute will be set to {@link Thread#NORM_PRIORITY}.</td>
|
||||
* <td>9</td>
|
||||
* </tr>
|
||||
* </tbody>
|
||||
* </table>
|
||||
*
|
||||
* <a id="stackTraceElement">A {@code CompositeData} representing
|
||||
* {@code StackTraceElement}</a> of version <em>N</em> must contain
|
||||
* all of the attributes defined in version ≤ <em>N</em>
|
||||
* unless specified otherwise.
|
||||
*
|
||||
* <table class="striped" style="margin-left:2em">
|
||||
* <caption style="display:none">The attributes and their types for StackTraceElement's composite data</caption>
|
||||
* <thead style="text-align:center">
|
||||
* <tr>
|
||||
* <th scope="col">Attribute Name</th>
|
||||
* <th scope="col">Type</th>
|
||||
* <th scope="col">Since</th>
|
||||
* </tr>
|
||||
* </thead>
|
||||
* <tbody style="text-align:left">
|
||||
* <tr>
|
||||
* <th scope="row">classLoaderName</th>
|
||||
* <td>{@code java.lang.String}</td>
|
||||
* <td>9</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">moduleName</th>
|
||||
* <td>{@code java.lang.String}</td>
|
||||
* <td>9</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">moduleVersion</th>
|
||||
* <td>{@code java.lang.String}</td>
|
||||
* <td>9</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">className</th>
|
||||
* <td>{@code java.lang.String}</td>
|
||||
* <td>5</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">methodName</th>
|
||||
* <td>{@code java.lang.String}</td>
|
||||
* <td>5</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">fileName</th>
|
||||
* <td>{@code java.lang.String}</td>
|
||||
* <td>5</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">lineNumber</th>
|
||||
* <td>{@code java.lang.Integer}</td>
|
||||
* <td>5</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th scope="row">nativeMethod</th>
|
||||
* <td>{@code java.lang.Boolean}</td>
|
||||
* <td>5</td>
|
||||
* </tr>
|
||||
* </tbody>
|
||||
* </table>
|
||||
*
|
||||
* @param cd {@code CompositeData} representing a {@code ThreadInfo}
|
||||
*
|
||||
* @throws IllegalArgumentException if {@code cd} does not
|
||||
* represent a {@code ThreadInfo} with the attributes described
|
||||
* above.
|
||||
* @throws IllegalArgumentException if the given {@code cd} and
|
||||
* its composite type does not contain all of
|
||||
* <a href="#attributes">the attributes</a> defined for a
|
||||
* {@code ThreadInfo} of a specific runtime version.
|
||||
*
|
||||
* @return a {@code ThreadInfo} object represented
|
||||
* by {@code cd} if {@code cd} is not {@code null};
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2012, 2018, 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
|
||||
@ -58,15 +58,15 @@ public class LockInfoCompositeData extends LazyCompositeData {
|
||||
|
||||
protected CompositeData getCompositeData() {
|
||||
// CONTENTS OF THIS ARRAY MUST BE SYNCHRONIZED WITH
|
||||
// lockInfoItemNames!
|
||||
// LOCK_INFO_ATTRIBUTES!
|
||||
final Object[] lockInfoItemValues = {
|
||||
new String(lock.getClassName()),
|
||||
lock.getIdentityHashCode(),
|
||||
};
|
||||
|
||||
try {
|
||||
return new CompositeDataSupport(lockInfoCompositeType,
|
||||
lockInfoItemNames,
|
||||
return new CompositeDataSupport(LOCK_INFO_COMPOSITE_TYPE,
|
||||
LOCK_INFO_ATTRIBUTES,
|
||||
lockInfoItemValues);
|
||||
} catch (OpenDataException e) {
|
||||
// Should never reach here
|
||||
@ -74,10 +74,10 @@ public class LockInfoCompositeData extends LazyCompositeData {
|
||||
}
|
||||
}
|
||||
|
||||
private static final CompositeType lockInfoCompositeType;
|
||||
private static final CompositeType LOCK_INFO_COMPOSITE_TYPE;
|
||||
static {
|
||||
try {
|
||||
lockInfoCompositeType = (CompositeType)
|
||||
LOCK_INFO_COMPOSITE_TYPE = (CompositeType)
|
||||
MappedMXBeanType.toOpenType(LockInfo.class);
|
||||
} catch (OpenDataException e) {
|
||||
// Should never reach here
|
||||
@ -85,13 +85,13 @@ public class LockInfoCompositeData extends LazyCompositeData {
|
||||
}
|
||||
}
|
||||
|
||||
static CompositeType getLockInfoCompositeType() {
|
||||
return lockInfoCompositeType;
|
||||
static CompositeType compositeType() {
|
||||
return LOCK_INFO_COMPOSITE_TYPE;
|
||||
}
|
||||
|
||||
private static final String CLASS_NAME = "className";
|
||||
private static final String IDENTITY_HASH_CODE = "identityHashCode";
|
||||
private static final String[] lockInfoItemNames = {
|
||||
private static final String[] LOCK_INFO_ATTRIBUTES = {
|
||||
CLASS_NAME,
|
||||
IDENTITY_HASH_CODE,
|
||||
};
|
||||
@ -104,7 +104,7 @@ public class LockInfoCompositeData extends LazyCompositeData {
|
||||
throw new NullPointerException("Null CompositeData");
|
||||
}
|
||||
|
||||
if (!isTypeMatched(lockInfoCompositeType, cd.getCompositeType())) {
|
||||
if (!isTypeMatched(LOCK_INFO_COMPOSITE_TYPE, cd.getCompositeType())) {
|
||||
throw new IllegalArgumentException(
|
||||
"Unexpected composite type for LockInfo");
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -30,7 +30,7 @@ import javax.management.openmbean.CompositeType;
|
||||
import javax.management.openmbean.CompositeData;
|
||||
import javax.management.openmbean.CompositeDataSupport;
|
||||
import javax.management.openmbean.OpenDataException;
|
||||
import java.util.Set;
|
||||
import javax.management.openmbean.OpenType;
|
||||
|
||||
/**
|
||||
* A CompositeData for MonitorInfo for the local management support.
|
||||
@ -55,14 +55,14 @@ public class MonitorInfoCompositeData extends LazyCompositeData {
|
||||
|
||||
protected CompositeData getCompositeData() {
|
||||
// CONTENTS OF THIS ARRAY MUST BE SYNCHRONIZED WITH
|
||||
// monitorInfoItemNames!
|
||||
// MONITOR_INFO_ATTRIBUTES!
|
||||
|
||||
int len = monitorInfoItemNames.length;
|
||||
int len = MONITOR_INFO_ATTRIBUTES.length;
|
||||
Object[] values = new Object[len];
|
||||
CompositeData li = LockInfoCompositeData.toCompositeData(lock);
|
||||
|
||||
for (int i = 0; i < len; i++) {
|
||||
String item = monitorInfoItemNames[i];
|
||||
String item = MONITOR_INFO_ATTRIBUTES[i];
|
||||
if (item.equals(LOCKED_STACK_FRAME)) {
|
||||
StackTraceElement ste = lock.getLockedStackFrame();
|
||||
values[i] = (ste != null ? StackTraceElementCompositeData.
|
||||
@ -76,8 +76,8 @@ public class MonitorInfoCompositeData extends LazyCompositeData {
|
||||
}
|
||||
|
||||
try {
|
||||
return new CompositeDataSupport(monitorInfoCompositeType,
|
||||
monitorInfoItemNames,
|
||||
return new CompositeDataSupport(MONITOR_INFO_COMPOSITE_TYPE,
|
||||
MONITOR_INFO_ATTRIBUTES,
|
||||
values);
|
||||
} catch (OpenDataException e) {
|
||||
// Should never reach here
|
||||
@ -85,28 +85,50 @@ public class MonitorInfoCompositeData extends LazyCompositeData {
|
||||
}
|
||||
}
|
||||
|
||||
private static final CompositeType monitorInfoCompositeType;
|
||||
private static final String[] monitorInfoItemNames;
|
||||
private static final String CLASS_NAME = "className";
|
||||
private static final String IDENTITY_HASH_CODE = "identityHashCode";
|
||||
private static final String LOCKED_STACK_FRAME = "lockedStackFrame";
|
||||
private static final String LOCKED_STACK_DEPTH = "lockedStackDepth";
|
||||
|
||||
private static final String[] MONITOR_INFO_ATTRIBUTES = {
|
||||
CLASS_NAME,
|
||||
IDENTITY_HASH_CODE,
|
||||
LOCKED_STACK_FRAME,
|
||||
LOCKED_STACK_DEPTH
|
||||
};
|
||||
|
||||
private static final CompositeType MONITOR_INFO_COMPOSITE_TYPE;
|
||||
private static final CompositeType V6_COMPOSITE_TYPE;
|
||||
static {
|
||||
try {
|
||||
monitorInfoCompositeType = (CompositeType)
|
||||
MONITOR_INFO_COMPOSITE_TYPE = (CompositeType)
|
||||
MappedMXBeanType.toOpenType(MonitorInfo.class);
|
||||
Set<String> s = monitorInfoCompositeType.keySet();
|
||||
monitorInfoItemNames = s.toArray(new String[0]);
|
||||
|
||||
OpenType<?>[] types = new OpenType<?>[MONITOR_INFO_ATTRIBUTES.length];
|
||||
for (int i = 0; i < MONITOR_INFO_ATTRIBUTES.length; i++) {
|
||||
String name = MONITOR_INFO_ATTRIBUTES[i];
|
||||
types[i] = name.equals(LOCKED_STACK_FRAME)
|
||||
? StackTraceElementCompositeData.v5CompositeType()
|
||||
: MONITOR_INFO_COMPOSITE_TYPE.getType(name);
|
||||
}
|
||||
V6_COMPOSITE_TYPE = new CompositeType("MonitorInfo",
|
||||
"JDK 6 MonitorInfo",
|
||||
MONITOR_INFO_ATTRIBUTES,
|
||||
MONITOR_INFO_ATTRIBUTES,
|
||||
types);
|
||||
} catch (OpenDataException e) {
|
||||
// Should never reach here
|
||||
throw new AssertionError(e);
|
||||
}
|
||||
}
|
||||
|
||||
static CompositeType getMonitorInfoCompositeType() {
|
||||
return monitorInfoCompositeType;
|
||||
static CompositeType v6CompositeType() {
|
||||
return V6_COMPOSITE_TYPE;
|
||||
}
|
||||
|
||||
private static final String CLASS_NAME = "className";
|
||||
private static final String IDENTITY_HASH_CODE = "identityHashCode";
|
||||
private static final String LOCKED_STACK_FRAME = "lockedStackFrame";
|
||||
private static final String LOCKED_STACK_DEPTH = "lockedStackDepth";
|
||||
static CompositeType compositeType() {
|
||||
return MONITOR_INFO_COMPOSITE_TYPE;
|
||||
}
|
||||
|
||||
public static String getClassName(CompositeData cd) {
|
||||
return getString(cd, CLASS_NAME);
|
||||
@ -138,7 +160,8 @@ public class MonitorInfoCompositeData extends LazyCompositeData {
|
||||
throw new NullPointerException("Null CompositeData");
|
||||
}
|
||||
|
||||
if (!isTypeMatched(monitorInfoCompositeType, cd.getCompositeType())) {
|
||||
if (!isTypeMatched(MONITOR_INFO_COMPOSITE_TYPE, cd.getCompositeType()) &&
|
||||
!isTypeMatched(V6_COMPOSITE_TYPE, cd.getCompositeType())) {
|
||||
throw new IllegalArgumentException(
|
||||
"Unexpected composite type for MonitorInfo");
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2018, 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,13 +25,13 @@
|
||||
|
||||
package sun.management;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.function.Predicate;
|
||||
import javax.management.openmbean.CompositeType;
|
||||
import javax.management.openmbean.CompositeData;
|
||||
import javax.management.openmbean.CompositeDataSupport;
|
||||
import javax.management.openmbean.OpenDataException;
|
||||
import javax.management.openmbean.OpenType;
|
||||
import java.util.Arrays;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* A CompositeData for StackTraceElement for the local management support.
|
||||
@ -52,12 +52,7 @@ public class StackTraceElementCompositeData extends LazyCompositeData {
|
||||
public static StackTraceElement from(CompositeData cd) {
|
||||
validateCompositeData(cd);
|
||||
|
||||
if (stackTraceElementV6CompositeType.equals(cd.getCompositeType())) {
|
||||
return new StackTraceElement(getString(cd, CLASS_NAME),
|
||||
getString(cd, METHOD_NAME),
|
||||
getString(cd, FILE_NAME),
|
||||
getInt(cd, LINE_NUMBER));
|
||||
} else {
|
||||
if (STACK_TRACE_ELEMENT_COMPOSITE_TYPE.equals(cd.getCompositeType())) {
|
||||
return new StackTraceElement(getString(cd, CLASS_LOADER_NAME),
|
||||
getString(cd, MODULE_NAME),
|
||||
getString(cd, MODULE_VERSION),
|
||||
@ -65,6 +60,12 @@ public class StackTraceElementCompositeData extends LazyCompositeData {
|
||||
getString(cd, METHOD_NAME),
|
||||
getString(cd, FILE_NAME),
|
||||
getInt(cd, LINE_NUMBER));
|
||||
} else {
|
||||
return new StackTraceElement(getString(cd, CLASS_NAME),
|
||||
getString(cd, METHOD_NAME),
|
||||
getString(cd, FILE_NAME),
|
||||
getInt(cd, LINE_NUMBER));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -75,7 +76,7 @@ public class StackTraceElementCompositeData extends LazyCompositeData {
|
||||
|
||||
protected CompositeData getCompositeData() {
|
||||
// CONTENTS OF THIS ARRAY MUST BE SYNCHRONIZED WITH
|
||||
// stackTraceElementItemNames!
|
||||
// STACK_TRACE_ELEMENT_ATTRIBUTES!
|
||||
final Object[] stackTraceElementItemValues = {
|
||||
ste.getClassLoaderName(),
|
||||
ste.getModuleName(),
|
||||
@ -87,8 +88,8 @@ public class StackTraceElementCompositeData extends LazyCompositeData {
|
||||
ste.isNativeMethod(),
|
||||
};
|
||||
try {
|
||||
return new CompositeDataSupport(stackTraceElementCompositeType,
|
||||
stackTraceElementItemNames,
|
||||
return new CompositeDataSupport(STACK_TRACE_ELEMENT_COMPOSITE_TYPE,
|
||||
STACK_TRACE_ELEMENT_ATTRIBUTES,
|
||||
stackTraceElementItemValues);
|
||||
} catch (OpenDataException e) {
|
||||
// Should never reach here
|
||||
@ -106,11 +107,7 @@ public class StackTraceElementCompositeData extends LazyCompositeData {
|
||||
private static final String LINE_NUMBER = "lineNumber";
|
||||
private static final String NATIVE_METHOD = "nativeMethod";
|
||||
|
||||
|
||||
private static final String[] stackTraceElementItemNames = {
|
||||
CLASS_LOADER_NAME,
|
||||
MODULE_NAME,
|
||||
MODULE_VERSION,
|
||||
private static final String[] V5_ATTRIBUTES = {
|
||||
CLASS_NAME,
|
||||
METHOD_NAME,
|
||||
FILE_NAME,
|
||||
@ -118,30 +115,48 @@ public class StackTraceElementCompositeData extends LazyCompositeData {
|
||||
NATIVE_METHOD,
|
||||
};
|
||||
|
||||
private static final String[] stackTraceElementV9ItemNames = {
|
||||
private static final String[] V9_ATTRIBUTES = {
|
||||
CLASS_LOADER_NAME,
|
||||
MODULE_NAME,
|
||||
MODULE_VERSION,
|
||||
};
|
||||
|
||||
private static final CompositeType stackTraceElementCompositeType;
|
||||
private static final CompositeType stackTraceElementV6CompositeType;
|
||||
private static final String[] STACK_TRACE_ELEMENT_ATTRIBUTES =
|
||||
Stream.of(V5_ATTRIBUTES, V9_ATTRIBUTES).flatMap(Arrays::stream)
|
||||
.toArray(String[]::new);
|
||||
|
||||
private static final CompositeType STACK_TRACE_ELEMENT_COMPOSITE_TYPE;
|
||||
private static final CompositeType V5_COMPOSITE_TYPE;
|
||||
static {
|
||||
try {
|
||||
stackTraceElementCompositeType = (CompositeType)
|
||||
STACK_TRACE_ELEMENT_COMPOSITE_TYPE = (CompositeType)
|
||||
MappedMXBeanType.toOpenType(StackTraceElement.class);
|
||||
stackTraceElementV6CompositeType =
|
||||
TypeVersionMapper.getInstance().getVersionedCompositeType(
|
||||
stackTraceElementCompositeType,
|
||||
TypeVersionMapper.V6
|
||||
);
|
||||
|
||||
OpenType<?>[] types = new OpenType<?>[V5_ATTRIBUTES.length];
|
||||
for (int i=0; i < V5_ATTRIBUTES.length; i++) {
|
||||
String name = V5_ATTRIBUTES[i];
|
||||
types[i] = STACK_TRACE_ELEMENT_COMPOSITE_TYPE.getType(name);
|
||||
}
|
||||
V5_COMPOSITE_TYPE = new CompositeType("StackTraceElement",
|
||||
"JDK 5 StackTraceElement",
|
||||
V5_ATTRIBUTES,
|
||||
V5_ATTRIBUTES,
|
||||
types);
|
||||
} catch (OpenDataException e) {
|
||||
// Should never reach here
|
||||
throw new AssertionError(e);
|
||||
}
|
||||
}
|
||||
|
||||
/** Validate if the input CompositeData has the expected
|
||||
static CompositeType v5CompositeType() {
|
||||
return V5_COMPOSITE_TYPE;
|
||||
}
|
||||
static CompositeType compositeType() {
|
||||
return STACK_TRACE_ELEMENT_COMPOSITE_TYPE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate if the input CompositeData has the expected
|
||||
* CompositeType (i.e. contain all attributes with expected
|
||||
* names and types).
|
||||
*/
|
||||
@ -151,22 +166,11 @@ public class StackTraceElementCompositeData extends LazyCompositeData {
|
||||
}
|
||||
|
||||
CompositeType ct = cd.getCompositeType();
|
||||
if (!isTypeMatched(stackTraceElementCompositeType, ct)) {
|
||||
if (!isTypeMatched(stackTraceElementV6CompositeType, ct)) {
|
||||
throw new IllegalArgumentException(
|
||||
"Unexpected composite type for StackTraceElement");
|
||||
}
|
||||
if (!isTypeMatched(STACK_TRACE_ELEMENT_COMPOSITE_TYPE, ct) &&
|
||||
!isTypeMatched(V5_COMPOSITE_TYPE, ct)) {
|
||||
throw new IllegalArgumentException(
|
||||
"Unexpected composite type for StackTraceElement");
|
||||
}
|
||||
}
|
||||
|
||||
static boolean isV6Attribute(String name) {
|
||||
for(String attrName : stackTraceElementV9ItemNames) {
|
||||
if (name.equals(attrName)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private static final long serialVersionUID = -2704607706598396827L;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2004, 2018, 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
|
||||
@ -28,10 +28,16 @@ package sun.management;
|
||||
import java.lang.management.ThreadInfo;
|
||||
import java.lang.management.MonitorInfo;
|
||||
import java.lang.management.LockInfo;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Stream;
|
||||
import javax.management.openmbean.ArrayType;
|
||||
import javax.management.openmbean.CompositeType;
|
||||
import javax.management.openmbean.CompositeData;
|
||||
import javax.management.openmbean.CompositeDataSupport;
|
||||
import javax.management.openmbean.OpenDataException;
|
||||
import javax.management.openmbean.OpenType;
|
||||
|
||||
/**
|
||||
* A CompositeData for ThreadInfo for the local management support.
|
||||
@ -41,35 +47,21 @@ import javax.management.openmbean.OpenDataException;
|
||||
public class ThreadInfoCompositeData extends LazyCompositeData {
|
||||
private final ThreadInfo threadInfo;
|
||||
private final CompositeData cdata;
|
||||
private final boolean currentVersion;
|
||||
private final boolean hasV6;
|
||||
|
||||
private ThreadInfoCompositeData(ThreadInfo ti) {
|
||||
this.threadInfo = ti;
|
||||
this.currentVersion = true;
|
||||
this.cdata = null;
|
||||
this.hasV6 = true;
|
||||
}
|
||||
|
||||
private ThreadInfoCompositeData(CompositeData cd) {
|
||||
this.threadInfo = null;
|
||||
this.currentVersion = ThreadInfoCompositeData.isCurrentVersion(cd);
|
||||
this.cdata = cd;
|
||||
this.hasV6 = ThreadInfoCompositeData.hasV6(cd);
|
||||
}
|
||||
|
||||
public ThreadInfo getThreadInfo() {
|
||||
return threadInfo;
|
||||
}
|
||||
|
||||
public boolean hasV6() {
|
||||
return hasV6;
|
||||
}
|
||||
|
||||
public boolean isCurrentVersion() {
|
||||
return currentVersion;
|
||||
}
|
||||
|
||||
public static ThreadInfoCompositeData getInstance(CompositeData cd) {
|
||||
validateCompositeData(cd);
|
||||
return new ThreadInfoCompositeData(cd);
|
||||
@ -112,7 +104,7 @@ public class ThreadInfoCompositeData extends LazyCompositeData {
|
||||
}
|
||||
|
||||
// CONTENTS OF THIS ARRAY MUST BE SYNCHRONIZED WITH
|
||||
// threadInfoItemNames!
|
||||
// THREAD_INFO_ATTRIBUTES!
|
||||
final Object[] threadInfoItemValues = {
|
||||
threadInfo.getThreadId(),
|
||||
threadInfo.getThreadName(),
|
||||
@ -126,8 +118,8 @@ public class ThreadInfoCompositeData extends LazyCompositeData {
|
||||
threadInfo.getLockOwnerId(),
|
||||
threadInfo.getLockOwnerName(),
|
||||
stackTraceData,
|
||||
threadInfo.isSuspended(),
|
||||
threadInfo.isInNative(),
|
||||
threadInfo.isSuspended(),
|
||||
threadInfo.isInNative(),
|
||||
lockedMonitorsData,
|
||||
lockedSyncsData,
|
||||
threadInfo.isDaemon(),
|
||||
@ -135,8 +127,8 @@ public class ThreadInfoCompositeData extends LazyCompositeData {
|
||||
};
|
||||
|
||||
try {
|
||||
return new CompositeDataSupport(threadInfoCompositeType,
|
||||
threadInfoItemNames,
|
||||
return new CompositeDataSupport(compositeType(),
|
||||
THREAD_INFO_ATTRIBTUES,
|
||||
threadInfoItemValues);
|
||||
} catch (OpenDataException e) {
|
||||
// Should never reach here
|
||||
@ -164,7 +156,7 @@ public class ThreadInfoCompositeData extends LazyCompositeData {
|
||||
private static final String LOCKED_MONITORS = "lockedMonitors";
|
||||
private static final String LOCKED_SYNCS = "lockedSynchronizers";
|
||||
|
||||
private static final String[] threadInfoItemNames = {
|
||||
private static final String[] V5_ATTRIBUTES = {
|
||||
THREAD_ID,
|
||||
THREAD_NAME,
|
||||
THREAD_STATE,
|
||||
@ -172,109 +164,28 @@ public class ThreadInfoCompositeData extends LazyCompositeData {
|
||||
BLOCKED_COUNT,
|
||||
WAITED_TIME,
|
||||
WAITED_COUNT,
|
||||
LOCK_INFO,
|
||||
LOCK_NAME,
|
||||
LOCK_OWNER_ID,
|
||||
LOCK_OWNER_NAME,
|
||||
STACK_TRACE,
|
||||
SUSPENDED,
|
||||
IN_NATIVE,
|
||||
LOCKED_MONITORS,
|
||||
LOCKED_SYNCS,
|
||||
DAEMON,
|
||||
PRIORITY,
|
||||
IN_NATIVE
|
||||
};
|
||||
|
||||
// New attributes added in 6.0 ThreadInfo
|
||||
private static final String[] threadInfoV6Attributes = {
|
||||
private static final String[] V6_ATTRIBUTES = {
|
||||
LOCK_INFO,
|
||||
LOCKED_MONITORS,
|
||||
LOCKED_SYNCS,
|
||||
};
|
||||
|
||||
private static final String[] threadInfoV9Attributes = {
|
||||
private static final String[] V9_ATTRIBUTES = {
|
||||
DAEMON,
|
||||
PRIORITY,
|
||||
};
|
||||
|
||||
// Current version of ThreadInfo
|
||||
private static final CompositeType threadInfoCompositeType;
|
||||
// Previous version of ThreadInfo
|
||||
private static final CompositeType threadInfoV6CompositeType;
|
||||
// Previous-previous version of ThreadInfo
|
||||
private static final CompositeType threadInfoV5CompositeType;
|
||||
private static final CompositeType lockInfoCompositeType;
|
||||
static {
|
||||
try {
|
||||
threadInfoCompositeType = (CompositeType)
|
||||
MappedMXBeanType.toOpenType(ThreadInfo.class);
|
||||
// Form a CompositeType for JDK 5.0 ThreadInfo version
|
||||
|
||||
threadInfoV5CompositeType =
|
||||
TypeVersionMapper.getInstance().getVersionedCompositeType(
|
||||
threadInfoCompositeType, TypeVersionMapper.V5
|
||||
);
|
||||
|
||||
threadInfoV6CompositeType =
|
||||
TypeVersionMapper.getInstance().getVersionedCompositeType(
|
||||
threadInfoCompositeType, TypeVersionMapper.V6
|
||||
);
|
||||
} catch (OpenDataException e) {
|
||||
// Should never reach here
|
||||
throw new AssertionError(e);
|
||||
}
|
||||
|
||||
// Each CompositeData object has its CompositeType associated
|
||||
// with it. So we can get the CompositeType representing LockInfo
|
||||
// from a mapped CompositeData for any LockInfo object.
|
||||
// Thus we construct a random LockInfo object and pass it
|
||||
// to LockInfoCompositeData to do the conversion.
|
||||
Object o = new Object();
|
||||
LockInfo li = new LockInfo(o.getClass().getName(),
|
||||
System.identityHashCode(o));
|
||||
CompositeData cd = LockInfoCompositeData.toCompositeData(li);
|
||||
lockInfoCompositeType = cd.getCompositeType();
|
||||
}
|
||||
|
||||
static boolean isV5Attribute(String itemName) {
|
||||
for (String n : threadInfoV6Attributes) {
|
||||
if (itemName.equals(n)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
for (String n : threadInfoV9Attributes) {
|
||||
if (itemName.equals(n)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
static boolean isV6Attribute(String itemName) {
|
||||
for (String n : threadInfoV9Attributes) {
|
||||
if (itemName.equals(n)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean isCurrentVersion(CompositeData cd) {
|
||||
if (cd == null) {
|
||||
throw new NullPointerException("Null CompositeData");
|
||||
}
|
||||
|
||||
return isTypeMatched(threadInfoCompositeType, cd.getCompositeType());
|
||||
}
|
||||
|
||||
private static boolean hasV6(CompositeData cd) {
|
||||
if (cd == null) {
|
||||
throw new NullPointerException("Null CompositeData");
|
||||
}
|
||||
|
||||
return isTypeMatched(threadInfoCompositeType, cd.getCompositeType()) ||
|
||||
isTypeMatched(threadInfoV6CompositeType, cd.getCompositeType());
|
||||
}
|
||||
private static final String[] THREAD_INFO_ATTRIBTUES =
|
||||
Stream.of(V5_ATTRIBUTES, V6_ATTRIBUTES, V9_ATTRIBUTES)
|
||||
.flatMap(Arrays::stream).toArray(String[]::new);
|
||||
|
||||
public long threadId() {
|
||||
return getLong(cdata, THREAD_ID);
|
||||
@ -333,12 +244,18 @@ public class ThreadInfoCompositeData extends LazyCompositeData {
|
||||
return getBoolean(cdata, IN_NATIVE);
|
||||
}
|
||||
|
||||
/*
|
||||
* if daemon attribute is not present, default to false.
|
||||
*/
|
||||
public boolean isDaemon() {
|
||||
return getBoolean(cdata, DAEMON);
|
||||
return cdata.containsKey(DAEMON) ? getBoolean(cdata, DAEMON) : false;
|
||||
}
|
||||
|
||||
/*
|
||||
* if priority attribute is not present, default to norm priority.
|
||||
*/
|
||||
public int getPriority(){
|
||||
return getInt(cdata, PRIORITY);
|
||||
return cdata.containsKey(PRIORITY) ? getInt(cdata, PRIORITY) : Thread.NORM_PRIORITY;
|
||||
}
|
||||
|
||||
public StackTraceElement[] stackTrace() {
|
||||
@ -356,13 +273,37 @@ public class ThreadInfoCompositeData extends LazyCompositeData {
|
||||
return stackTrace;
|
||||
}
|
||||
|
||||
// 6.0 new attributes
|
||||
/*
|
||||
* lockInfo is a new attribute added in JDK 6 ThreadInfo
|
||||
* If cd is a 5.0 version, construct the LockInfo object
|
||||
* from the lockName value.
|
||||
*/
|
||||
public LockInfo lockInfo() {
|
||||
CompositeData lockInfoData = (CompositeData) cdata.get(LOCK_INFO);
|
||||
return LockInfo.from(lockInfoData);
|
||||
if (cdata.containsKey(LOCK_INFO)) {
|
||||
CompositeData lockInfoData = (CompositeData) cdata.get(LOCK_INFO);
|
||||
return LockInfo.from(lockInfoData);
|
||||
} else {
|
||||
String lockName = lockName();
|
||||
LockInfo lock = null;
|
||||
if (lockName != null) {
|
||||
String result[] = lockName.split("@");
|
||||
if (result.length == 2) {
|
||||
int identityHashCode = Integer.parseInt(result[1], 16);
|
||||
lock = new LockInfo(result[0], identityHashCode);
|
||||
}
|
||||
}
|
||||
return lock;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an empty array if locked_monitors attribute is not present.
|
||||
*/
|
||||
public MonitorInfo[] lockedMonitors() {
|
||||
if (!cdata.containsKey(LOCKED_MONITORS)) {
|
||||
return new MonitorInfo[0];
|
||||
}
|
||||
|
||||
CompositeData[] lockedMonitorsData =
|
||||
(CompositeData[]) cdata.get(LOCKED_MONITORS);
|
||||
|
||||
@ -377,7 +318,14 @@ public class ThreadInfoCompositeData extends LazyCompositeData {
|
||||
return monitors;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an empty array if locked_monitors attribute is not present.
|
||||
*/
|
||||
public LockInfo[] lockedSynchronizers() {
|
||||
if (!cdata.containsKey(LOCKED_SYNCS)) {
|
||||
return new LockInfo[0];
|
||||
}
|
||||
|
||||
CompositeData[] lockedSyncsData =
|
||||
(CompositeData[]) cdata.get(LOCKED_SYNCS);
|
||||
|
||||
@ -391,7 +339,8 @@ public class ThreadInfoCompositeData extends LazyCompositeData {
|
||||
return locks;
|
||||
}
|
||||
|
||||
/** Validate if the input CompositeData has the expected
|
||||
/**
|
||||
* Validate if the input CompositeData has the expected
|
||||
* CompositeType (i.e. contain all attributes with expected
|
||||
* names and types).
|
||||
*/
|
||||
@ -401,62 +350,98 @@ public class ThreadInfoCompositeData extends LazyCompositeData {
|
||||
}
|
||||
|
||||
CompositeType type = cd.getCompositeType();
|
||||
boolean currentVersion = true;
|
||||
if (!isTypeMatched(threadInfoCompositeType, type)) {
|
||||
currentVersion = false;
|
||||
// check if cd is an older version
|
||||
if (!isTypeMatched(threadInfoV5CompositeType, type) &&
|
||||
!isTypeMatched(threadInfoV6CompositeType, type)) {
|
||||
throw new IllegalArgumentException(
|
||||
"Unexpected composite type for ThreadInfo");
|
||||
}
|
||||
int version;
|
||||
if (Arrays.stream(V9_ATTRIBUTES).anyMatch(type::containsKey)) {
|
||||
version = Runtime.version().feature();
|
||||
} else if (Arrays.stream(V6_ATTRIBUTES).anyMatch(type::containsKey)) {
|
||||
version = 6;
|
||||
} else {
|
||||
version = 5;
|
||||
}
|
||||
|
||||
CompositeData[] stackTraceData =
|
||||
(CompositeData[]) cd.get(STACK_TRACE);
|
||||
if (stackTraceData == null) {
|
||||
if (!isTypeMatched(ThreadInfoCompositeTypes.ofVersion(version), type)) {
|
||||
throw new IllegalArgumentException(
|
||||
"StackTraceElement[] is missing");
|
||||
}
|
||||
if (stackTraceData.length > 0) {
|
||||
StackTraceElementCompositeData.validateCompositeData(stackTraceData[0]);
|
||||
}
|
||||
|
||||
// validate v6 attributes
|
||||
if (currentVersion) {
|
||||
CompositeData li = (CompositeData) cd.get(LOCK_INFO);
|
||||
if (li != null) {
|
||||
if (!isTypeMatched(lockInfoCompositeType,
|
||||
li.getCompositeType())) {
|
||||
throw new IllegalArgumentException(
|
||||
"Unexpected composite type for \"" +
|
||||
LOCK_INFO + "\" attribute.");
|
||||
}
|
||||
}
|
||||
|
||||
CompositeData[] lms = (CompositeData[]) cd.get(LOCKED_MONITORS);
|
||||
if (lms == null) {
|
||||
throw new IllegalArgumentException("MonitorInfo[] is null");
|
||||
}
|
||||
if (lms.length > 0) {
|
||||
MonitorInfoCompositeData.validateCompositeData(lms[0]);
|
||||
}
|
||||
|
||||
CompositeData[] lsyncs = (CompositeData[]) cd.get(LOCKED_SYNCS);
|
||||
if (lsyncs == null) {
|
||||
throw new IllegalArgumentException("LockInfo[] is null");
|
||||
}
|
||||
if (lsyncs.length > 0) {
|
||||
if (!isTypeMatched(lockInfoCompositeType,
|
||||
lsyncs[0].getCompositeType())) {
|
||||
throw new IllegalArgumentException(
|
||||
"Unexpected composite type for \"" +
|
||||
LOCKED_SYNCS + "\" attribute.");
|
||||
}
|
||||
}
|
||||
|
||||
"Unexpected composite type for ThreadInfo of version " + version);
|
||||
}
|
||||
}
|
||||
|
||||
public static CompositeType compositeType() {
|
||||
return ThreadInfoCompositeTypes.compositeTypes.get(0);
|
||||
}
|
||||
|
||||
static class ThreadInfoCompositeTypes {
|
||||
static final int CURRENT = Runtime.version().feature();
|
||||
static final Map<Integer, CompositeType> compositeTypes = initCompositeTypes();
|
||||
/*
|
||||
* Returns CompositeType of the given runtime version
|
||||
*/
|
||||
static CompositeType ofVersion(int version) {
|
||||
return compositeTypes.get(version);
|
||||
}
|
||||
|
||||
static Map<Integer, CompositeType> initCompositeTypes() {
|
||||
Map<Integer, CompositeType> types = new HashMap<>();
|
||||
CompositeType ctype = initCompositeType();
|
||||
types.put(CURRENT, ctype);
|
||||
types.put(5, initV5CompositeType(ctype));
|
||||
types.put(6, initV6CompositeType(ctype));
|
||||
return types;
|
||||
}
|
||||
|
||||
static CompositeType initCompositeType() {
|
||||
try {
|
||||
return (CompositeType)MappedMXBeanType.toOpenType(ThreadInfo.class);
|
||||
} catch (OpenDataException e) {
|
||||
// Should never reach here
|
||||
throw new AssertionError(e);
|
||||
}
|
||||
}
|
||||
|
||||
static CompositeType initV5CompositeType(CompositeType threadInfoCompositeType) {
|
||||
try {
|
||||
OpenType<?>[] v5Types = new OpenType<?>[V5_ATTRIBUTES.length];
|
||||
for (int i = 0; i < v5Types.length; i++) {
|
||||
String name = V5_ATTRIBUTES[i];
|
||||
v5Types[i] = name.equals(STACK_TRACE)
|
||||
? new ArrayType<>(1, StackTraceElementCompositeData.v5CompositeType())
|
||||
: threadInfoCompositeType.getType(name);
|
||||
}
|
||||
return new CompositeType("ThreadInfo",
|
||||
"JDK 5 ThreadInfo",
|
||||
V5_ATTRIBUTES,
|
||||
V5_ATTRIBUTES,
|
||||
v5Types);
|
||||
} catch (OpenDataException e) {
|
||||
// Should never reach here
|
||||
throw new AssertionError(e);
|
||||
}
|
||||
}
|
||||
|
||||
static CompositeType initV6CompositeType(CompositeType threadInfoCompositeType) {
|
||||
try {
|
||||
String[] v6Names = Stream.of(V5_ATTRIBUTES, V6_ATTRIBUTES)
|
||||
.flatMap(Arrays::stream).toArray(String[]::new);
|
||||
OpenType<?>[] v6Types = new OpenType<?>[v6Names.length];
|
||||
for (int i = 0; i < v6Names.length; i++) {
|
||||
String name = v6Names[i];
|
||||
OpenType<?> ot = threadInfoCompositeType.getType(name);
|
||||
if (name.equals(STACK_TRACE)) {
|
||||
ot = new ArrayType<>(1, StackTraceElementCompositeData.v5CompositeType());
|
||||
} else if (name.equals(LOCKED_MONITORS)) {
|
||||
ot = new ArrayType<>(1, MonitorInfoCompositeData.v6CompositeType());
|
||||
}
|
||||
v6Types[i] = ot;
|
||||
}
|
||||
return new CompositeType("ThreadInfo",
|
||||
"JDK 6 ThreadInfo",
|
||||
v6Names,
|
||||
v6Names,
|
||||
v6Types);
|
||||
} catch (OpenDataException e) {
|
||||
// Should never reach here
|
||||
throw new AssertionError(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
private static final long serialVersionUID = 2464378539119753175L;
|
||||
}
|
||||
|
@ -1,174 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 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. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
package sun.management;
|
||||
|
||||
import java.lang.management.ThreadInfo;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Predicate;
|
||||
import javax.management.openmbean.ArrayType;
|
||||
import javax.management.openmbean.CompositeType;
|
||||
import javax.management.openmbean.OpenDataException;
|
||||
import javax.management.openmbean.OpenType;
|
||||
import javax.management.openmbean.SimpleType;
|
||||
import javax.management.openmbean.TabularType;
|
||||
import static sun.management.Util.toStringArray;
|
||||
|
||||
/**
|
||||
* Provides simplistic support for versioning of {@linkplain CompositeType} instances
|
||||
* based on the latest version and filtering out certain items.
|
||||
*/
|
||||
final class TypeVersionMapper {
|
||||
private static final class Singleton {
|
||||
private final static TypeVersionMapper INSTANCE = new TypeVersionMapper();
|
||||
}
|
||||
|
||||
final static String V5 = "J2SE 5.0";
|
||||
final static String V6 = "Java SE 6";
|
||||
|
||||
private final Map<String, Map<String, Predicate<String>>> filterMap;
|
||||
|
||||
private TypeVersionMapper() {
|
||||
filterMap = new HashMap<>();
|
||||
setupStackTraceElement();
|
||||
setupThreadInfo();
|
||||
}
|
||||
|
||||
public static TypeVersionMapper getInstance() {
|
||||
return Singleton.INSTANCE;
|
||||
}
|
||||
|
||||
private void setupStackTraceElement() {
|
||||
Map<String, Predicate<String>> filter = new HashMap<>();
|
||||
filterMap.put(StackTraceElement.class.getName(), filter);
|
||||
filter.put(V5, StackTraceElementCompositeData::isV6Attribute);
|
||||
filter.put(V6, StackTraceElementCompositeData::isV6Attribute);
|
||||
}
|
||||
|
||||
private void setupThreadInfo() {
|
||||
Map<String, Predicate<String>> filter = new HashMap<>();
|
||||
filterMap.put(ThreadInfo.class.getName(), filter);
|
||||
filter.put(V5, ThreadInfoCompositeData::isV5Attribute);
|
||||
filter.put(V6, ThreadInfoCompositeData::isV6Attribute);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the specified version of a {@linkplain CompositeType} instance.
|
||||
* @param type The current (latest) version of {@linkplain CompositeType}
|
||||
* @param version The version identifier (eg. {@linkplain TypeVersionMapper#V5})
|
||||
* @return Returns the {@linkplain CompositeType} corresponding to the requested
|
||||
* version.
|
||||
* @throws OpenDataException
|
||||
*/
|
||||
CompositeType getVersionedCompositeType(CompositeType type, String version)
|
||||
throws OpenDataException
|
||||
{
|
||||
Predicate<String> filter = getFilter(type.getTypeName(), version);
|
||||
if (filter == null) {
|
||||
return type;
|
||||
}
|
||||
|
||||
List<String> itemNames = new ArrayList<>();
|
||||
List<String> itemDesc = new ArrayList<>();
|
||||
List<OpenType<?>> itemTypes = new ArrayList<>();
|
||||
|
||||
for(String item : type.keySet()) {
|
||||
if (filter.test(item)) {
|
||||
itemNames.add(item);
|
||||
itemDesc.add(type.getDescription(item));
|
||||
itemTypes.add(getVersionedType(
|
||||
type.getType(item),
|
||||
version
|
||||
));
|
||||
}
|
||||
}
|
||||
return new CompositeType(
|
||||
type.getTypeName(),
|
||||
version != null ? version + " " + type.getDescription() : type.getDescription(),
|
||||
itemNames.toArray(new String[itemNames.size()]),
|
||||
itemDesc.toArray(new String[itemDesc.size()]),
|
||||
itemTypes.toArray(new OpenType<?>[itemTypes.size()])
|
||||
);
|
||||
}
|
||||
|
||||
private OpenType<?> getVersionedType(OpenType<?> type, String version)
|
||||
throws OpenDataException
|
||||
{
|
||||
if (type instanceof ArrayType) {
|
||||
return getVersionedArrayType((ArrayType)type, version);
|
||||
}
|
||||
if (type instanceof CompositeType) {
|
||||
return getVersionedCompositeType((CompositeType)type, version);
|
||||
}
|
||||
if (type instanceof TabularType) {
|
||||
return getVersionedTabularType((TabularType)type, version);
|
||||
}
|
||||
return type;
|
||||
}
|
||||
|
||||
private ArrayType<?> getVersionedArrayType(ArrayType<?> type, String version)
|
||||
throws OpenDataException
|
||||
{
|
||||
if (type.isPrimitiveArray()) {
|
||||
return type;
|
||||
}
|
||||
OpenType<?> ot = getVersionedType(
|
||||
type.getElementOpenType(),
|
||||
version
|
||||
);
|
||||
if (ot instanceof SimpleType) {
|
||||
return new ArrayType<>((SimpleType<?>)ot, type.isPrimitiveArray());
|
||||
} else {
|
||||
return new ArrayType<>(type.getDimension(), ot);
|
||||
}
|
||||
}
|
||||
|
||||
private TabularType getVersionedTabularType(TabularType type, String version)
|
||||
throws OpenDataException
|
||||
{
|
||||
CompositeType ct = getVersionedCompositeType(
|
||||
type.getRowType(),
|
||||
version
|
||||
);
|
||||
|
||||
if (ct != null) {
|
||||
return new TabularType(
|
||||
type.getTypeName(), type.getDescription(), ct,
|
||||
toStringArray(type.getIndexNames()));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private Predicate<String> getFilter(String type, String version) {
|
||||
Map<String, Predicate<String>> versionMap = filterMap.get(type);
|
||||
if (versionMap == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return versionMap.get(version);
|
||||
}
|
||||
}
|
@ -35,7 +35,6 @@ import com.sun.tools.javac.code.*;
|
||||
import com.sun.tools.javac.code.Source.Feature;
|
||||
import com.sun.tools.javac.parser.Tokens.*;
|
||||
import com.sun.tools.javac.parser.Tokens.Comment.CommentStyle;
|
||||
import com.sun.tools.javac.resources.CompilerProperties;
|
||||
import com.sun.tools.javac.resources.CompilerProperties.Errors;
|
||||
import com.sun.tools.javac.resources.CompilerProperties.Fragments;
|
||||
import com.sun.tools.javac.resources.CompilerProperties.Warnings;
|
||||
@ -43,9 +42,7 @@ import com.sun.tools.javac.tree.*;
|
||||
import com.sun.tools.javac.tree.JCTree.*;
|
||||
import com.sun.tools.javac.util.*;
|
||||
import com.sun.tools.javac.util.JCDiagnostic.DiagnosticFlag;
|
||||
import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition;
|
||||
import com.sun.tools.javac.util.JCDiagnostic.Error;
|
||||
import com.sun.tools.javac.util.JCDiagnostic.Warning;
|
||||
import com.sun.tools.javac.util.JCDiagnostic.Fragment;
|
||||
import com.sun.tools.javac.util.List;
|
||||
|
||||
@ -58,6 +55,9 @@ import static com.sun.tools.javac.parser.Tokens.TokenKind.GT;
|
||||
import static com.sun.tools.javac.parser.Tokens.TokenKind.IMPORT;
|
||||
import static com.sun.tools.javac.parser.Tokens.TokenKind.LT;
|
||||
import static com.sun.tools.javac.tree.JCTree.Tag.*;
|
||||
import static com.sun.tools.javac.resources.CompilerProperties.Fragments.ImplicitAndExplicitNotAllowed;
|
||||
import static com.sun.tools.javac.resources.CompilerProperties.Fragments.VarAndExplicitNotAllowed;
|
||||
import static com.sun.tools.javac.resources.CompilerProperties.Fragments.VarAndImplicitNotAllowed;
|
||||
|
||||
/** The parser maps a token sequence into an abstract syntax
|
||||
* tree. It operates by recursive descent, with code derived
|
||||
@ -1673,8 +1673,6 @@ public class JavacParser implements Parser {
|
||||
CAST,
|
||||
EXPLICIT_LAMBDA,
|
||||
IMPLICIT_LAMBDA,
|
||||
IMPLICIT_LAMBDA_ALL_VAR,
|
||||
BAD_LAMBDA,
|
||||
PARENS
|
||||
}
|
||||
|
||||
@ -1682,89 +1680,77 @@ public class JavacParser implements Parser {
|
||||
List<JCVariableDecl> params = explicitParams ?
|
||||
formalParameters(true) :
|
||||
implicitParameters(hasParens);
|
||||
|
||||
if (explicitParams) {
|
||||
LambdaClassfier lambdaClassfier = new LambdaClassfier();
|
||||
LambdaClassifier lambdaClassifier = new LambdaClassifier();
|
||||
for (JCVariableDecl param: params) {
|
||||
if (param.vartype != null &&
|
||||
isRestrictedLocalVarTypeName(param.vartype) &&
|
||||
param.vartype.hasTag(TYPEARRAY)) {
|
||||
log.error(DiagnosticFlag.SYNTAX, param.pos, Errors.VarNotAllowedArray);
|
||||
}
|
||||
if (param.vartype != null && param.name != names.empty) {
|
||||
if (isRestrictedLocalVarTypeName(param.vartype)) {
|
||||
lambdaClassfier.addImplicitVarParameter();
|
||||
} else {
|
||||
lambdaClassfier.addExplicitParameter();
|
||||
}
|
||||
}
|
||||
if (param.vartype == null && param.name != names.empty ||
|
||||
param.vartype != null && param.name == names.empty) {
|
||||
lambdaClassfier.addImplicitParameter();
|
||||
}
|
||||
if (lambdaClassfier.result() == ParensResult.BAD_LAMBDA) {
|
||||
lambdaClassifier.addParameter(param);
|
||||
if (lambdaClassifier.result() == LambdaParameterKind.ERROR) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (lambdaClassfier.diagFragment != null) {
|
||||
log.error(DiagnosticFlag.SYNTAX, pos, Errors.InvalidLambdaParameterDeclaration(lambdaClassfier.diagFragment));
|
||||
if (lambdaClassifier.diagFragment != null) {
|
||||
log.error(DiagnosticFlag.SYNTAX, pos, Errors.InvalidLambdaParameterDeclaration(lambdaClassifier.diagFragment));
|
||||
}
|
||||
}
|
||||
return lambdaExpressionOrStatementRest(params, pos);
|
||||
}
|
||||
|
||||
class LambdaClassfier {
|
||||
ParensResult kind; //ParensResult.EXPLICIT_LAMBDA;
|
||||
enum LambdaParameterKind {
|
||||
EXPLICIT(0),
|
||||
IMPLICIT(1),
|
||||
VAR(2),
|
||||
ERROR(-1);
|
||||
|
||||
private final int index;
|
||||
|
||||
LambdaParameterKind(int index) {
|
||||
this.index = index;
|
||||
}
|
||||
}
|
||||
|
||||
private final static Fragment[][] decisionTable = new Fragment[][]{
|
||||
/* EXPLICIT IMPLICIT VAR */
|
||||
/* EXPLICIT */ {null, ImplicitAndExplicitNotAllowed, VarAndExplicitNotAllowed},
|
||||
/* IMPLICIT */ {ImplicitAndExplicitNotAllowed, null, VarAndImplicitNotAllowed},
|
||||
/* VAR */ {VarAndExplicitNotAllowed, VarAndImplicitNotAllowed, null}
|
||||
};
|
||||
|
||||
class LambdaClassifier {
|
||||
|
||||
LambdaParameterKind kind;
|
||||
Fragment diagFragment;
|
||||
List<JCVariableDecl> params;
|
||||
|
||||
void addExplicitParameter() {
|
||||
reduce(ParensResult.EXPLICIT_LAMBDA);
|
||||
}
|
||||
|
||||
void addImplicitVarParameter() {
|
||||
reduce(ParensResult.IMPLICIT_LAMBDA_ALL_VAR);
|
||||
}
|
||||
|
||||
void addImplicitParameter() {
|
||||
reduce(ParensResult.IMPLICIT_LAMBDA);
|
||||
}
|
||||
|
||||
private void reduce(ParensResult newKind) {
|
||||
if (kind == null) {
|
||||
kind = newKind;
|
||||
} else if (kind != newKind && kind != ParensResult.BAD_LAMBDA) {
|
||||
ParensResult currentKind = kind;
|
||||
kind = ParensResult.BAD_LAMBDA;
|
||||
switch (currentKind) {
|
||||
case EXPLICIT_LAMBDA:
|
||||
if (newKind == ParensResult.IMPLICIT_LAMBDA) {
|
||||
diagFragment = Fragments.ImplicitAndExplicitNotAllowed;
|
||||
} else if (newKind == ParensResult.IMPLICIT_LAMBDA_ALL_VAR) {
|
||||
diagFragment = Fragments.VarAndExplicitNotAllowed;
|
||||
}
|
||||
break;
|
||||
case IMPLICIT_LAMBDA:
|
||||
if (newKind == ParensResult.EXPLICIT_LAMBDA) {
|
||||
diagFragment = Fragments.ImplicitAndExplicitNotAllowed;
|
||||
} else if (newKind == ParensResult.IMPLICIT_LAMBDA_ALL_VAR) {
|
||||
diagFragment = Fragments.VarAndImplicitNotAllowed;
|
||||
}
|
||||
break;
|
||||
case IMPLICIT_LAMBDA_ALL_VAR:
|
||||
if (newKind == ParensResult.EXPLICIT_LAMBDA) {
|
||||
diagFragment = Fragments.VarAndExplicitNotAllowed;
|
||||
} else if (newKind == ParensResult.IMPLICIT_LAMBDA) {
|
||||
diagFragment = Fragments.VarAndImplicitNotAllowed;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw new AssertionError("unexpected option for field kind");
|
||||
void addParameter(JCVariableDecl param) {
|
||||
if (param.vartype != null && param.name != names.empty) {
|
||||
if (isRestrictedLocalVarTypeName(param.vartype)) {
|
||||
reduce(LambdaParameterKind.VAR);
|
||||
} else {
|
||||
reduce(LambdaParameterKind.EXPLICIT);
|
||||
}
|
||||
}
|
||||
if (param.vartype == null && param.name != names.empty ||
|
||||
param.vartype != null && param.name == names.empty) {
|
||||
reduce(LambdaParameterKind.IMPLICIT);
|
||||
}
|
||||
}
|
||||
|
||||
ParensResult result() {
|
||||
private void reduce(LambdaParameterKind newKind) {
|
||||
if (kind == null) {
|
||||
kind = newKind;
|
||||
} else if (kind != newKind && kind != LambdaParameterKind.ERROR) {
|
||||
LambdaParameterKind currentKind = kind;
|
||||
kind = LambdaParameterKind.ERROR;
|
||||
diagFragment = decisionTable[currentKind.index][newKind.index];
|
||||
}
|
||||
}
|
||||
|
||||
LambdaParameterKind result() {
|
||||
return kind;
|
||||
}
|
||||
}
|
||||
|
@ -311,15 +311,18 @@ class TaskFactory {
|
||||
return fm.createSourceFileObject(w, w.classFullName(), w.wrapped());
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the source information from the wrap. If this is external, or
|
||||
* otherwise does not have wrap info, just use source code.
|
||||
* @param d the Diagnostic from the compiler
|
||||
* @return the corresponding Diag
|
||||
*/
|
||||
@Override
|
||||
public Diag diag(Diagnostic<? extends JavaFileObject> d) {
|
||||
SourceMemoryJavaFileObject smjfo = (SourceMemoryJavaFileObject) d.getSource();
|
||||
if (smjfo == null) {
|
||||
// Handle failure that doesn't preserve mapping
|
||||
return new StringSourceHandler().diag(d);
|
||||
}
|
||||
OuterWrap w = (OuterWrap) smjfo.getOrigin();
|
||||
return w.wrapDiag(d);
|
||||
JavaFileObject jfo = d.getSource();
|
||||
return jfo instanceof SourceMemoryJavaFileObject
|
||||
? ((OuterWrap) ((SourceMemoryJavaFileObject) jfo).getOrigin()).wrapDiag(d)
|
||||
: new StringSourceHandler().diag(d);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -111,8 +111,10 @@
|
||||
|
||||
# jdk_awt
|
||||
|
||||
java/awt/BasicStroke/DashScaleMinWidth.java 8198411 windows-all
|
||||
java/awt/BasicStroke/DashZeroWidth.java 8198411 windows-all
|
||||
java/awt/event/MouseEvent/MouseClickTest/MouseClickTest.html 8168389 windows-all,macosx-all
|
||||
java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java 8168408 windows-all
|
||||
java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java 8168408 windows-all,macosx-all
|
||||
java/awt/Focus/FocusOwnerFrameOnClick/FocusOwnerFrameOnClick.java 8081489 generic-all
|
||||
java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java 6849364 generic-all
|
||||
java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusToFrontTest.java 6848406 generic-all
|
||||
@ -120,28 +122,62 @@ java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusSetVisibleTest.java 6848407
|
||||
java/awt/Frame/MaximizedUndecorated/MaximizedUndecorated.java 8022302 generic-all
|
||||
|
||||
java/awt/FileDialog/FileDialogIconTest/FileDialogIconTest.java 8160558 windows-all
|
||||
java/awt/FileDialog/8003399/bug8003399.java 8198334 windows-all
|
||||
java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion.java 8060176 windows-all,macosx-all
|
||||
java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java 8060176 windows-all,macosx-all
|
||||
java/awt/dnd/BadSerializaionTest/BadSerializationTest.java 8039082 generic-all
|
||||
java/awt/Focus/ChoiceFocus/ChoiceFocus.java 8169103 windows-all
|
||||
java/awt/dnd/MissingEventsOnModalDialog/MissingEventsOnModalDialogTest.java 8164464 linux-all,macosx-all
|
||||
java/awt/dnd/URIListBetweenJVMsTest/URIListBetweenJVMsTest.html 8171510 macosx-all
|
||||
java/awt/dnd/7171812/bug7171812.java 8041447 macosx-all
|
||||
java/awt/Focus/ChoiceFocus/ChoiceFocus.java 8169103 windows-all,macosx-all
|
||||
java/awt/Focus/ClearLwQueueBreakTest/ClearLwQueueBreakTest.java 8198618 macosx-all
|
||||
java/awt/Focus/ConsumeNextKeyTypedOnModalShowTest/ConsumeNextKeyTypedOnModalShowTest.java 6986252 macosx-all
|
||||
java/awt/Focus/FocusTraversalPolicy/ButtonGroupLayoutTraversal/ButtonGroupLayoutTraversalTest.java 8198619 macosx-all
|
||||
java/awt/Focus/KeyEventForBadFocusOwnerTest/KeyEventForBadFocusOwnerTest.java 8198621 macosx-all
|
||||
java/awt/Focus/MouseClickRequestFocusRaceTest/MouseClickRequestFocusRaceTest.java 8194753 linux-all,macosx-all
|
||||
java/awt/Focus/NoAutotransferToDisabledCompTest/NoAutotransferToDisabledCompTest.java 7152980 macosx-all
|
||||
java/awt/Focus/ShowFrameCheckForegroundTest/ShowFrameCheckForegroundTest.java 8028701 macosx-all
|
||||
java/awt/Focus/SimpleWindowActivationTest/SimpleWindowActivationTest.java 8159599 macosx-all
|
||||
java/awt/Focus/TypeAhead/TestFocusFreeze.java 8198622 macosx-all
|
||||
java/awt/Focus/WrongKeyTypedConsumedTest/WrongKeyTypedConsumedTest.java 8169096 macosx-all
|
||||
java/awt/event/KeyEvent/CorrectTime/CorrectTime.java 6626492 generic-all
|
||||
java/awt/EventQueue/6980209/bug6980209.java 8198615 macosx-all
|
||||
java/awt/Frame/MaximizedToUnmaximized/MaximizedToUnmaximized.java 8129569 generic-all
|
||||
java/awt/Frame/ExceptionOnSetExtendedStateTest/ExceptionOnSetExtendedStateTest.java 8198237 macosx-all
|
||||
java/awt/Frame/ShapeNotSetSometimes/ShapeNotSetSometimes.java 8144030 macosx-all
|
||||
java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java 7158623 macosx-all
|
||||
java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java 7080150 macosx-all
|
||||
java/awt/event/InputEvent/EventWhenTest/EventWhenTest.java 8168646 generic-all
|
||||
java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogButtonTest/EnqueueWithDialogButtonTest.java 8198623 macosx-all
|
||||
java/awt/KeyboardFocusmanager/TypeAhead/FreezeTest/FreezeTest.java 8198623 macosx-all
|
||||
java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.html 8198624 macosx-all
|
||||
java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.html 8198626 macosx-all
|
||||
java/awt/Mixing/AWT_Mixing/HierarchyBoundsListenerMixingTest.java 8049405 macosx-all
|
||||
java/awt/Mixing/AWT_Mixing/OpaqueOverlappingChoice.java 8048171 generic-all
|
||||
java/awt/Mixing/AWT_Mixing/JMenuBarOverlapping.java 8159451 linux-all,windows-all
|
||||
java/awt/Mixing/AWT_Mixing/JMenuBarOverlapping.java 8159451 linux-all,windows-all,macosx-all
|
||||
java/awt/Mixing/AWT_Mixing/JSplitPaneOverlapping.java 6986109 windows-all
|
||||
java/awt/Mixing/AWT_Mixing/JInternalFrameMoveOverlapping.java 6986109 windows-all
|
||||
java/awt/Mixing/AWT_Mixing/JSplitPaneOverlapping.java 8194765 windows-all
|
||||
java/awt/Mixing/AWT_Mixing/JSplitPaneOverlapping.java 8194765 windows-all,macosx-all
|
||||
java/awt/Mixing/AWT_Mixing/MixingPanelsResizing.java 8049405 generic-all
|
||||
java/awt/Mixing/AWT_Mixing/JComboBoxOverlapping.java 8049405 macosx-all
|
||||
java/awt/Mixing/AWT_Mixing/JPopupMenuOverlapping.java 8049405 macosx-all
|
||||
java/awt/Mixing/NonOpaqueInternalFrame.java 7124549 macosx-all
|
||||
java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java 6829264 generic-all
|
||||
java/awt/datatransfer/DragImage/MultiResolutionDragImageTest.java 8080982 generic-all
|
||||
java/awt/datatransfer/SystemFlavorMap/AddFlavorTest.java 8079268 linux-all
|
||||
java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java 6829250 windows-all
|
||||
java/awt/Toolkit/RealSync/Test.java 6849383 macosx-all
|
||||
java/awt/LightweightComponent/LightweightEventTest/LightweightEventTest.java 8159252 windows-all
|
||||
java/awt/EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java 6990210 generic-all
|
||||
java/awt/EventDispatchThread/LoopRobustness/LoopRobustness.html 4931413 windows-all
|
||||
java/awt/FullScreen/FullScreenInsets/FullScreenInsets.java 7019055 windows-all
|
||||
java/awt/Focus/8013611/JDK8013611.java 8175366 windows-all
|
||||
java/awt/Focus/6981400/Test1.java 8029675 windows-all
|
||||
java/awt/FullScreen/UninitializedDisplayModeChangeTest/UninitializedDisplayModeChangeTest.java 8198335 windows-all
|
||||
java/awt/Focus/8013611/JDK8013611.java 8175366 windows-all,macosx-all
|
||||
java/awt/Focus/6378278/InputVerifierTest.java 8198616 macosx-all
|
||||
java/awt/Focus/6382144/EndlessLoopTest.java 8198617 macosx-all
|
||||
java/awt/Focus/6981400/Test1.java 8029675 windows-all,macosx-all
|
||||
java/awt/Focus/8073453/AWTFocusTransitionTest.java 8136517 macosx-all
|
||||
java/awt/Focus/8073453/SwingFocusTransitionTest.java 8136517 macosx-all
|
||||
java/awt/Focus/6981400/Test3.java 8173264 generic-all
|
||||
java/awt/event/KeyEvent/ExtendedKeyCode/ExtendedKeyCodeTest.java 8169476 windows-all
|
||||
java/awt/event/KeyEvent/KeyChar/KeyCharTest.java 8169474 windows-all
|
||||
@ -152,8 +188,8 @@ java/awt/event/MouseEvent/MouseButtonsAndKeyMasksTest/MouseButtonsAndKeyMasksTes
|
||||
|
||||
java/awt/dnd/URIListToFileListBetweenJVMsTest/URIListToFileListBetweenJVMsTest.html 8194947 generic-all
|
||||
java/awt/dnd/ImageTransferTest/ImageTransferTest.java 8176556 generic-all
|
||||
java/awt/Dialog/MakeWindowAlwaysOnTop/MakeWindowAlwaysOnTop.java 7054585 generic-all
|
||||
java/awt/Frame/SetMaximizedBounds/SetMaximizedBounds.java 8196006 windows-all
|
||||
java/awt/Frame/FramesGC/FramesGC.java 8079069 macosx-all
|
||||
java/awt/FullScreen/AltTabCrashTest/AltTabCrashTest.java 8047218 generic-all
|
||||
java/awt/GridLayout/LayoutExtraGaps/LayoutExtraGaps.java 8000171 windows-all
|
||||
java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java 8196017 windows-all
|
||||
@ -161,7 +197,7 @@ java/awt/Scrollbar/ScrollbarMouseWheelTest/ScrollbarMouseWheelTest.java 8196018
|
||||
java/awt/TrayIcon/ActionCommand/ActionCommand.java 8150540 windows-all
|
||||
java/awt/TrayIcon/ActionEventMask/ActionEventMask.java 8150540 windows-all
|
||||
java/awt/TrayIcon/ActionEventTest/ActionEventTest.java 8150540 windows-all
|
||||
java/awt/TrayIcon/ModalityTest/ModalityTest.java 8150540 windows-all
|
||||
java/awt/TrayIcon/ModalityTest/ModalityTest.java 8150540 windows-all,macosx-all
|
||||
java/awt/TrayIcon/MouseEventMask/MouseEventMaskTest.java 8150540 windows-all
|
||||
java/awt/TrayIcon/MouseEventMask/MouseEventMovedTest.java 8150540 windows-all
|
||||
java/awt/TrayIcon/MouseMovedTest/MouseMovedTest.java 8150540 windows-all
|
||||
@ -169,102 +205,275 @@ java/awt/TrayIcon/SecurityCheck/FunctionalityCheck/FunctionalityCheck.java 81505
|
||||
java/awt/TrayIcon/TrayIconEventModifiers/TrayIconEventModifiersTest.java 8150540 windows-all
|
||||
java/awt/TrayIcon/TrayIconEvents/TrayIconEventsTest.java 8150540 windows-all
|
||||
java/awt/TrayIcon/TrayIconMouseTest/TrayIconMouseTest.java 8150540 windows-all
|
||||
java/awt/TrayIcon/TrayIconPopup/TrayIconPopupClickTest.java 8150540 windows-all
|
||||
java/awt/TrayIcon/TrayIconPopup/TrayIconPopupClickTest.java 8150540 windows-all,macosx-all
|
||||
java/awt/TrayIcon/TrayIconPopup/TrayIconPopupTest.java 8150540 windows-all
|
||||
java/awt/TrayIcon/PopupMenuLeakTest/PopupMenuLeakTest.java 8196440 linux-all
|
||||
java/awt/Window/Grab/GrabTest.java 8196019 windows-all
|
||||
java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucentWindowClick.java 8196020 windows-all
|
||||
java/awt/Window/ShapedAndTranslucentWindows/FocusAWTTest.java 8061236 macosx-all
|
||||
java/awt/Window/ShapedAndTranslucentWindows/SetShapeAndClick.java 8197936 macosx-all
|
||||
java/awt/Window/ShapedAndTranslucentWindows/SetShapeDynamicallyAndClick.java 8013450 macosx-all
|
||||
java/awt/Window/ShapedAndTranslucentWindows/Shaped.java 8078999 macosx-all
|
||||
java/awt/Window/ShapedAndTranslucentWindows/ShapedByAPI.java 8078999 macosx-all
|
||||
java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucent.java 8078999 macosx-all
|
||||
java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucentWindowClick.java 8196020 macosx-all
|
||||
java/awt/Window/ShapedAndTranslucentWindows/StaticallyShaped.java 8165218 macosx-all
|
||||
java/awt/Window/AlwaysOnTop/AutoTestOnTop.java 6847593 macosx-all
|
||||
java/awt/Window/GrabSequence/GrabSequence.java 6848409 macosx-all
|
||||
java/awt/font/TextLayout/CombiningPerf.java 8192931 generic-all
|
||||
java/awt/font/TextLayout/TextLayoutBounds.java 8169188 macosx-all
|
||||
java/awt/font/MonospacedGlyphWidth/MonospacedGlyphWidthTest.java 8198412 linux-all,solaris-all
|
||||
java/awt/font/StyledMetrics/BoldSpace.java 8198422 linux-all
|
||||
java/awt/FontMetrics/FontCrash.java 8198336 windows-all
|
||||
java/awt/image/DrawImage/IncorrectAlphaSurface2SW.java 8056077 generic-all
|
||||
java/awt/image/DrawImage/IncorrectClipXorModeSW2Surface.java 8196025 windows-all
|
||||
java/awt/image/DrawImage/IncorrectClipXorModeSurface2Surface.java 8196025 windows-all
|
||||
java/awt/image/DrawImage/IncorrectSourceOffset.java 8196086 windows-all
|
||||
java/awt/image/DrawImage/IncorrectUnmanagedImageRotatedClip.java 8196087 windows-all
|
||||
java/awt/image/MultiResolutionImage/MultiResolutionDrawImageWithTransformTest.java 8198390 generic-all
|
||||
java/awt/image/multiresolution/MultiresolutionIconTest.java 8169187 macosx-all
|
||||
java/awt/print/Headless/HeadlessPrinterJob.java 8196088 windows-all
|
||||
java/awt/print/PrinterJob/TestPgfmtSetMPA.java 8198343 generic-all
|
||||
sun/awt/datatransfer/SuplementaryCharactersTransferTest.java 8011371 generic-all
|
||||
sun/awt/shell/ShellFolderMemoryLeak.java 8197794 windows-all
|
||||
sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java 8022403 generic-all
|
||||
sun/java2d/DirectX/OverriddenInsetsTest/OverriddenInsetsTest.java 8196102 generic-all
|
||||
sun/java2d/DirectX/RenderingToCachedGraphicsTest/RenderingToCachedGraphicsTest.java 8196180 windows-all
|
||||
sun/java2d/GdiRendering/InsetClipping.java 8196181 windows-all
|
||||
sun/java2d/OpenGL/CopyAreaOOB.java 7001973 windows-all
|
||||
sun/java2d/OpenGL/CopyAreaOOB.java 7001973 windows-all,macosx-all
|
||||
sun/java2d/SunGraphics2D/EmptyClipRenderingTest.java 8144029 macosx-all
|
||||
sun/java2d/SunGraphics2D/DrawImageBilinear.java 8191506 generic-all
|
||||
sun/java2d/SunGraphics2D/PolyVertTest.java 6986565 generic-all
|
||||
sun/java2d/SunGraphics2D/SimplePrimQuality.java 7992007 generic-all
|
||||
sun/java2d/SunGraphics2D/SourceClippingBlitTest/SourceClippingBlitTest.java 8196191 windows-all
|
||||
sun/java2d/pipe/InterpolationQualityTest.java 8171303 windows-all,linux-all
|
||||
sun/java2d/SunGraphics2D/SourceClippingBlitTest/SourceClippingBlitTest.java 8196191 windows-all,macosx-all
|
||||
sun/java2d/pipe/InterpolationQualityTest.java 8171303 windows-all,linux-all,macosx-all
|
||||
java/awt/FullScreen/BufferStrategyExceptionTest/BufferStrategyExceptionTest.java 8196186 windows-all
|
||||
java/awt/FullScreen/DisplayChangeVITest/DisplayChangeVITest.java 8169469 windows-all
|
||||
java/awt/FullScreen/NonExistentDisplayModeTest/NonExistentDisplayModeTest.java 8196187 windows-all
|
||||
java/awt/Graphics/ClippedCopyAreaTest/ClippedCopyAreaTest.java 8196436 linux-all
|
||||
java/awt/Graphics/CopyScaledArea/CopyScaledAreaTest.java 8196189 windows-all
|
||||
java/awt/Graphics2D/DrawString/DrawRotatedStringUsingRotatedFont.java 8197796 generic-all
|
||||
java/awt/GraphicsDevice/CloneConfigsTest.java 8196190 windows-all
|
||||
java/awt/TextArea/TextAreaScrolling/TextAreaScrolling.java 8196300 windows-all
|
||||
java/awt/print/PrinterJob/Margins.java 8196301 windows-all
|
||||
java/awt/print/PrinterJob/PSQuestionMark.java 7003378 windows-all
|
||||
java/awt/print/PrinterJob/GlyphPositions.java 7003378 windows-all
|
||||
java/awt/Choice/PopupPosTest/PopupPosTest.html 8192930 windows-all
|
||||
java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.html 6849922 macosx-all
|
||||
java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java 7100044 macosx-all
|
||||
java/awt/Component/CreateImage/CreateImage.java 8198334 windows-all
|
||||
java/awt/Component/GetScreenLocTest.java 4753654 windows-all
|
||||
java/awt/Choice/SelectCurrentItemTest/SelectCurrentItemTest.html 8192929 windows-all
|
||||
java/awt/Dialog/MakeWindowAlwaysOnTop/MakeWindowAlwaysOnTop.java 7054586 windows-all
|
||||
java/awt/Clipboard/HTMLTransferTest/HTMLTransferTest.html 8017454 macosx-all
|
||||
java/awt/Dialog/SiblingChildOrder/SiblingChildOrderTest.java 8193940 windows-all
|
||||
java/awt/Focus/NonFocusableWindowTest/NoEventsTest.java 8000171 windows-all
|
||||
java/awt/Frame/MiscUndecorated/RepaintTest.java 8079267 windows-all
|
||||
java/awt/Robot/ModifierRobotKey/ModifierRobotKeyTest.java 8157173 windows-all
|
||||
java/awt/Modal/FileDialog/FileDialogAppModal1Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogAppModal2Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogAppModal3Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogAppModal4Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogAppModal5Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogAppModal6Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogDocModal1Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogDocModal2Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogDocModal3Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogDocModal4Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogDocModal5Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogDocModal6Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogDocModal7Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogModal1Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogModal2Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogModal3Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogModal4Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogModal5Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogModal6Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogNonModal1Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogNonModal2Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogNonModal3Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogNonModal4Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogNonModal5Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogNonModal6Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogNonModal7Test.java 8198664 macosx-all
|
||||
java/awt/Modal/FileDialog/FileDialogTKModal1Test.java 8196430 generic-all
|
||||
java/awt/Modal/FileDialog/FileDialogTKModal2Test.java 8196430 generic-all
|
||||
java/awt/Modal/FileDialog/FileDialogTKModal3Test.java 8196430 generic-all
|
||||
java/awt/Modal/FileDialog/FileDialogTKModal4Test.java 8196430 generic-all
|
||||
java/awt/Modal/FileDialog/FileDialogTKModal5Test.java 8196430 generic-all
|
||||
java/awt/Modal/FileDialog/FileDialogTKModal6Test.java 8196430 generic-all
|
||||
java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPageSetupTest.java 8196431 linux-all
|
||||
java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPrintSetupTest.java 8196431 linux-all
|
||||
java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePageSetupTest.java 8196431 linux-all
|
||||
java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePrintSetupTest.java 8196431 linux-all
|
||||
java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPageSetupTest.java 8196431 linux-all
|
||||
java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPrintSetupTest.java 8196431 linux-all
|
||||
java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePageSetupTest.java 8196431 linux-all
|
||||
java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePrintSetupTest.java 8196431 linux-all
|
||||
java/awt/Modal/FileDialog/FileDialogTKModal7Test.java 8196430 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingDDAppModalTest.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingDDDocModalTest.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingDDModelessTest.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingDDNonModalTest.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingDDSetModalTest.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingDDToolkitModalTest.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingDFAppModalTest.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingDFSetModalTest.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingDFToolkitModalTest.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingDFWModeless1Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingDFWModeless2Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal1Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal2Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingDocModalTest.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingFDModelessTest.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingFDNonModalTest.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal1Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal2Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal3Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal4Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingFDWModeless1Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingFDWModeless2Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingFDWModeless3Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingFDWModeless4Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal1Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal2Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal3Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal4Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal1Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal2Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal3Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal4Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal5Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal6Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal1Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal2Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal1Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal2Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal3Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal4Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal5Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal6Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal1Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal2Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal3Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal4Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal5Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal6Test.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/UnblockedDialogAppModalTest.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/UnblockedDialogDocModalTest.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/UnblockedDialogModelessTest.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/UnblockedDialogNonModalTest.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/UnblockedDialogSetModalTest.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalBlockingTests/UnblockedDialogToolkitModalTest.java 8198665 macosx-all
|
||||
java/awt/Modal/ModalDialogOrderingTest/ModalDialogOrderingTest.java 8066259 macosx-all
|
||||
java/awt/Modal/ModalExclusionTests/ApplicationExcludeFrameFileTest.java 8047179 macosx-all
|
||||
java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogFileTest.java 8047179 macosx-all
|
||||
java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPageSetupTest.java 8196431 linux-all,macosx-all
|
||||
java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPrintSetupTest.java 8196431 linux-all,macosx-all
|
||||
java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePageSetupTest.java 8196431 linux-all,macosx-all
|
||||
java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePrintSetupTest.java 8196431 linux-all,macosx-all
|
||||
java/awt/Modal/ModalExclusionTests/ToolkitExcludeFrameFileTest.java 8047179 macosx-all
|
||||
java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogFileTest.java 8196431 macosx-all
|
||||
java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPageSetupTest.java 8196431 linux-all,macosx-all
|
||||
java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPrintSetupTest.java 8196431 linux-all,macosx-all
|
||||
java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePageSetupTest.java 8196431 linux-all,macosx-all
|
||||
java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePrintSetupTest.java 8196431 linux-all,macosx-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal2Test.java 8058813 windows-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless2Test.java 8196191 windows-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFDocModalTest.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFModelessTest.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFNonModalTest.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFDocModalTest.java 8196432 linux-all,macosx-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFModelessTest.java 8196432 linux-all,macosx-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFNonModalTest.java 8196432 linux-all,macosx-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsModelessTest.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsNonModalTest.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWDocModalTest.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWModelessTest.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWNonModalTest.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal1Test.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal2Test.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal3Test.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal4Test.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal1Test.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal2Test.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal3Test.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal4Test.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless1Test.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless2Test.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless3Test.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless4Test.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal1Test.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal2Test.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal3Test.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal4Test.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal1Test.java 8196432 linux-all,macosx-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal2Test.java 8196432 linux-all,macosx-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal3Test.java 8196432 linux-all,macosx-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal4Test.java 8196432 linux-all,macosx-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal1Test.java 8196432 linux-all,macosx-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal2Test.java 8196432 linux-all,macosx-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal3Test.java 8196432 linux-all,macosx-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal4Test.java 8196432 linux-all,macosx-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless1Test.java 8196432 linux-all,macosx-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless2Test.java 8196432 linux-all,macosx-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless3Test.java 8196432 linux-all,macosx-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless4Test.java 8196432 linux-all,macosx-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal1Test.java 8196432 linux-all,macosx-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal2Test.java 8196432 linux-all,macosx-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal3Test.java 8196432 linux-all,macosx-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal4Test.java 8196432 linux-all,macosx-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal2Test.java 8196432 linux-all
|
||||
java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal2Test.java 8196432 linux-all
|
||||
java/awt/Modal/MultipleDialogs/MultipleDialogs1Test.java 8198665 macosx-all
|
||||
java/awt/Modal/MultipleDialogs/MultipleDialogs2Test.java 8198665 macosx-all
|
||||
java/awt/Modal/MultipleDialogs/MultipleDialogs3Test.java 8198665 macosx-all
|
||||
java/awt/Modal/MultipleDialogs/MultipleDialogs4Test.java 8198665 macosx-all
|
||||
java/awt/Modal/MultipleDialogs/MultipleDialogs5Test.java 8198665 macosx-all
|
||||
java/awt/Mouse/GetMousePositionTest/GetMousePositionWithOverlay.java 8196435 linux-all
|
||||
java/awt/Mouse/EnterExitEvents/DragWindowOutOfFrameTest.java 8177326 macosx-all
|
||||
java/awt/Mouse/EnterExitEvents/DragWindowTest.java 8023562 macosx-all
|
||||
java/awt/Mouse/EnterExitEvents/ResizingFrameTest.java 8005021 macosx-all
|
||||
java/awt/Mouse/EnterExitEvents/FullscreenEnterEventTest.java 8051455 macosx-all
|
||||
java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Standard.java 7124407 macosx-all
|
||||
java/awt/Mouse/RemovedComponentMouseListener/RemovedComponentMouseListener.java 8157170 macosx-all
|
||||
java/awt/Focus/ForwardingFocusToProxyMotifTest/ForwardingFocusToProxyMotifTest.java 8196436 linux-all
|
||||
java/awt/Window/OverrideRedirectRemoved/ChildWindowProblem.java 8196438 linux-all
|
||||
java/awt/Modal/ToBack/ToBackAppModal1Test.java 8196441 linux-all
|
||||
java/awt/Modal/ToBack/ToBackAppModal2Test.java 8196441 linux-all
|
||||
java/awt/Modal/ToBack/ToBackAppModal3Test.java 8196441 linux-all
|
||||
java/awt/Modal/ToBack/ToBackAppModal4Test.java 8196441 linux-all
|
||||
java/awt/Modal/ToBack/ToBackModal1Test.java 8196441 linux-all
|
||||
java/awt/Modal/ToBack/ToBackModal2Test.java 8196441 linux-all
|
||||
java/awt/Modal/ToBack/ToBackModal3Test.java 8196441 linux-all
|
||||
java/awt/Modal/ToBack/ToBackModal4Test.java 8196441 linux-all
|
||||
java/awt/Modal/ToBack/ToBackTKModal1Test.java 8196441 linux-all
|
||||
java/awt/Modal/ToBack/ToBackTKModal2Test.java 8196441 linux-all
|
||||
java/awt/Modal/ToBack/ToBackTKModal3Test.java 8196441 linux-all
|
||||
java/awt/Modal/ToBack/ToBackTKModal4Test.java 8196441 linux-all
|
||||
java/awt/Modal/ToBack/ToBackAppModal1Test.java 8196441 linux-all,macosx-all
|
||||
java/awt/Modal/ToBack/ToBackAppModal2Test.java 8196441 linux-all,macosx-all
|
||||
java/awt/Modal/ToBack/ToBackAppModal3Test.java 8196441 linux-all,macosx-all
|
||||
java/awt/Modal/ToBack/ToBackAppModal4Test.java 8196441 linux-all,macosx-all
|
||||
java/awt/Modal/ToBack/ToBackAppModal5Test.java 8196441 macosx-all
|
||||
java/awt/Modal/ToBack/ToBackModal1Test.java 8196441 linux-all,macosx-all
|
||||
java/awt/Modal/ToBack/ToBackModal2Test.java 8196441 linux-all,macosx-all
|
||||
java/awt/Modal/ToBack/ToBackModal3Test.java 8196441 linux-all,macosx-all
|
||||
java/awt/Modal/ToBack/ToBackModal4Test.java 8196441 linux-all,macosx-all
|
||||
java/awt/Modal/ToBack/ToBackTKModal1Test.java 8196441 linux-all,macosx-all
|
||||
java/awt/Modal/ToBack/ToBackTKModal2Test.java 8196441 linux-all,macosx-all
|
||||
java/awt/Modal/ToBack/ToBackTKModal3Test.java 8196441 linux-all,macosx-all
|
||||
java/awt/Modal/ToBack/ToBackTKModal4Test.java 8196441 linux-all,macosx-all
|
||||
java/awt/Modal/ToBack/ToBackTKModal5Test.java 8196441 macosx-all
|
||||
java/awt/Modal/ToBack/ToBackDocModal1Test.java 8196441 linux-all,macosx-all
|
||||
java/awt/Modal/ToBack/ToBackDocModal2Test.java 8196441 linux-all,macosx-all
|
||||
java/awt/Modal/ToBack/ToBackDocModal3Test.java 8196441 linux-all,macosx-all
|
||||
java/awt/Modal/ToBack/ToBackDocModal4Test.java 8196441 linux-all,macosx-all
|
||||
java/awt/Modal/ToBack/ToBackDocModal5Test.java 8196441 linux-all,macosx-all
|
||||
java/awt/Modal/ToBack/ToBackModeless1Test.java 8196441 macosx-all
|
||||
java/awt/Modal/ToBack/ToBackModeless2Test.java 8196441 macosx-all
|
||||
java/awt/Modal/ToBack/ToBackModeless3Test.java 8196441 macosx-all
|
||||
java/awt/Modal/ToBack/ToBackModeless4Test.java 8196441 macosx-all
|
||||
java/awt/Modal/ToBack/ToBackModeless5Test.java 8196441 macosx-all
|
||||
java/awt/Modal/ToBack/ToBackNonModal1Test.java 8196441 macosx-all
|
||||
java/awt/Modal/ToBack/ToBackNonModal2Test.java 8196441 macosx-all
|
||||
java/awt/Modal/ToBack/ToBackNonModal3Test.java 8196441 macosx-all
|
||||
java/awt/Modal/ToBack/ToBackNonModal4Test.java 8196441 macosx-all
|
||||
java/awt/Modal/ToBack/ToBackNonModal5Test.java 8196441 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopAppModal1Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopAppModal2Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopAppModal3Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopAppModal4Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopAppModal5Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopAppModal6Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopDocModal1Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopDocModal2Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopDocModal3Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopDocModal4Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopDocModal5Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopDocModal6Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopModal1Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopModal2Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopModal3Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopModal4Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopModal5Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopModal6Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopModal6Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopModeless1Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopModeless2Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopModeless3Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopModeless4Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopModeless5Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopModeless6Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopTKModal1Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopTKModal2Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopTKModal3Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopTKModal4Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopTKModal5Test.java 8198666 macosx-all
|
||||
java/awt/Modal/OnTop/OnTopTKModal6Test.java 8198666 macosx-all
|
||||
java/awt/List/SingleModeDeselect/SingleModeDeselect.java 8196301 windows-all
|
||||
java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java 8061235 macosx-all
|
||||
javax/print/PrintSEUmlauts/PrintSEUmlauts.java 8135174 generic-all
|
||||
|
||||
|
||||
############################################################################
|
||||
@ -274,6 +483,8 @@ java/awt/List/SingleModeDeselect/SingleModeDeselect.java 8196301 windows-all
|
||||
java/beans/Introspector/8132566/OverridePropertyInfoTest.java 8132565 generic-all
|
||||
java/beans/Introspector/8132566/OverrideUserDefPropertyInfoTest.java 8132565 generic-all
|
||||
|
||||
java/beans/XMLEncoder/Test6570354.java 8015593 macosx-all
|
||||
|
||||
############################################################################
|
||||
|
||||
# jdk_lang
|
||||
@ -403,52 +614,91 @@ javax/sound/sampled/Mixers/DisabledAssertionCrash.java 7067310 generic-all
|
||||
|
||||
# jdk_swing
|
||||
|
||||
com/sun/java/swing/plaf/windows/Test8173145.java 8198334 windows-all
|
||||
|
||||
javax/swing/border/Test6981576.java 8198339 generic-all
|
||||
javax/swing/JComponent/7154030/bug7154030.java 7190978 generic-all
|
||||
javax/swing/JInternalFrame/8160248/JInternalFrameDraggingTest.java 8186513 generic-all
|
||||
javax/swing/JComboBox/ConsumedKeyTest/ConsumedKeyTest.java 8067986 generic-all
|
||||
javax/swing/JComponent/6683775/bug6683775.java 8172337 generic-all
|
||||
javax/swing/JComboBox/6236162/bug6236162.java 8028707 windows-all
|
||||
javax/swing/JComboBox/6236162/bug6236162.java 8028707 windows-all,macosx-all
|
||||
javax/swing/text/html/parser/Test8017492.java 8022535 generic-all
|
||||
javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentCanvas.java 8081476 windows-all
|
||||
javax/swing/JButton/8151303/PressedIconTest.java 8198689 macosx-all
|
||||
javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentCanvas.java 8081476 windows-all,macosx-all
|
||||
javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentSwing.java 8194128 macosx-all
|
||||
javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java 8198667 macosx-all
|
||||
javax/swing/JWindow/ShapedAndTranslucentWindows/SetShapeAndClickSwing.java 8013450 macosx-all
|
||||
javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentJComboBox.java 8190347 macosx-all
|
||||
# The next test below is an intermittent failure
|
||||
javax/swing/JComboBox/8033069/bug8033069ScrollBar.java 8163367 generic-all
|
||||
javax/swing/JColorChooser/Test6541987.java 8143021 windows-all,linux-all
|
||||
javax/swing/JColorChooser/Test6541987.java 8143021 windows-all,linux-all,macosx-all
|
||||
javax/swing/JColorChooser/Test7194184.java 8194126 linux-all,macosx-all
|
||||
javax/swing/JTable/7124218/SelectEditTableCell.java 8148958 linux-all
|
||||
javax/swing/JTable/4235420/bug4235420.java 8079127 linux-all,macosx-all
|
||||
javax/swing/JTree/DnD/LastNodeLowerHalfDrop.java 8159131 linux-all
|
||||
javax/swing/JTree/4633594/JTreeFocusTest.java 8173125 macosx-all
|
||||
javax/swing/JTree/8003400/Test8003400.java 8011259 macosx-all
|
||||
javax/swing/JFileChooser/8041694/bug8041694.java 8196302 windows-all
|
||||
javax/swing/JInternalFrame/8069348/bug8069348.java 8196303 windows-all
|
||||
javax/swing/AbstractButton/6711682/bug6711682.java 8060765 windows-all
|
||||
javax/swing/Action/8133039/bug8133039.java 8196089 windows-all
|
||||
javax/swing/JComboBox/6559152/bug6559152.java 8196090 windows-all
|
||||
javax/swing/AbstractButton/6711682/bug6711682.java 8060765 windows-all,macosx-all
|
||||
javax/swing/Action/8133039/bug8133039.java 8196089 windows-all,macosx-all
|
||||
javax/swing/JComboBox/6559152/bug6559152.java 8196090 windows-all,macosx-all
|
||||
javax/swing/JComboBox/6607130/bug6607130.java 8196091 windows-all
|
||||
javax/swing/JComboBox/8032878/bug8032878.java 8196092 windows-all
|
||||
javax/swing/JComboBox/8057893/bug8057893.java 8169953 windows-all
|
||||
javax/swing/JComboBox/8072767/bug8072767.java 8196093 windows-all
|
||||
javax/swing/JComboBox/8032878/bug8032878.java 8196092 windows-all,macosx-all
|
||||
javax/swing/JComboBox/8057893/bug8057893.java 8169953 windows-all,macosx-all
|
||||
javax/swing/JComboBox/8072767/bug8072767.java 8196093 windows-all,macosx-all
|
||||
javax/swing/JComponent/4337267/bug4337267.java 8146451 windows-all
|
||||
javax/swing/JEditorPane/5076514/bug5076514.java 8198321 generic-all
|
||||
javax/swing/JEditorPane/6917744/bug6917744.java 8194767 generic-all
|
||||
javax/swing/JFileChooser/4524490/bug4524490.java 8042380 generic-all
|
||||
javax/swing/JFileChooser/8002077/bug8002077.java 8196094 windows-all
|
||||
javax/swing/JFileChooser/DeserializedJFileChooser/DeserializedJFileChooserTest.java 8196095 generic-all
|
||||
javax/swing/JFileChooser/6396844/TwentyThousandTest.java 8058231 macosx-all
|
||||
javax/swing/JFrame/8175301/ScaledFrameBackgroundTest.java 8193942 generic-all
|
||||
javax/swing/JInternalFrame/8020708/bug8020708.java 8194943 windows-all
|
||||
javax/swing/JList/6462008/bug6462008.java 7156347 generic-all
|
||||
javax/swing/JPopupMenu/6580930/bug6580930.java 8196096 windows-all
|
||||
javax/swing/JPopupMenu/6580930/bug6580930.java 8196096 windows-all,macosx-all
|
||||
javax/swing/JPopupMenu/6800513/bug6800513.java 7184956 macosx-all
|
||||
javax/swing/JPopupMenu/6675802/bug6675802.java 8196097 windows-all
|
||||
javax/swing/JTabbedPane/8007563/Test8007563.java 8051591 generic-all
|
||||
javax/swing/JTabbedPane/4624207/bug4624207.java 8064922 macosx-all
|
||||
javax/swing/JTabbedPane/7024235/Test7024235.java 8028281 macosx-all
|
||||
javax/swing/SwingUtilities/TestBadBreak/TestBadBreak.java 8160720 generic-all
|
||||
javax/swing/plaf/basic/BasicTextUI/8001470/bug8001470.java 8196098 windows-all
|
||||
javax/swing/plaf/basic/Test6984643.java 8198340 windows-all
|
||||
javax/swing/text/CSSBorder/6796710/bug6796710.java 8196099 windows-all
|
||||
javax/swing/text/DefaultCaret/HidingSelection/HidingSelectionTest.java 8194048 windows-all
|
||||
javax/swing/text/JTextComponent/5074573/bug5074573.java 8196100 windows-all
|
||||
javax/swing/JFileChooser/6798062/bug6798062.java 8146446 windows-all
|
||||
javax/swing/plaf/basic/BasicGraphicsUtils/8132119/bug8132119.java 8196434 linux-all
|
||||
javax/swing/plaf/basic/BasicGraphicsUtils/8132119/bug8132119.java 8196434 linux-all,solaris-all
|
||||
javax/swing/JComboBox/8032878/bug8032878.java 8196439 linux-all
|
||||
javax/swing/JComboBox/8182031/ComboPopupTest.java 8196465 linux-all
|
||||
javax/swing/JFileChooser/6738668/bug6738668.java 8194946 linux-all,macosx-all
|
||||
javax/swing/JFileChooser/8021253/bug8021253.java 8169954 windows-all,linux-all
|
||||
javax/swing/JFileChooser/8062561/bug8062561.java 8196466 linux-all
|
||||
javax/swing/JInternalFrame/Test6325652.java 8196467 linux-all
|
||||
|
||||
javax/swing/JComboBox/8182031/ComboPopupTest.java 8196465 linux-all,macosx-all
|
||||
javax/swing/JFileChooser/6738668/bug6738668.java 8194946 generic-all
|
||||
javax/swing/JFileChooser/8021253/bug8021253.java 8169954 windows-all,linux-all,macosx-all
|
||||
javax/swing/JFileChooser/8062561/bug8062561.java 8196466 linux-all,macosx-all
|
||||
javax/swing/JFileChooser/FileSystemView/FileSystemViewListenerLeak.java 8198342 generic-all
|
||||
javax/swing/JInternalFrame/Test6325652.java 8196467 linux-all,macosx-all
|
||||
javax/swing/JInternalFrame/8145896/TestJInternalFrameMaximize.java 8194944 macosx-all
|
||||
javax/swing/JLabel/6596966/bug6596966.java 8040914 macosx-all
|
||||
javax/swing/JPopupMenu/4870644/bug4870644.java 8194130 macosx-all
|
||||
javax/swing/JPopupMenu/4966112/bug4966112.java 8064915 macosx-all
|
||||
javax/swing/MultiUIDefaults/Test6860438.java 8198391 generic-all
|
||||
javax/swing/MultiUIDefaults/4300666/bug4300666.java 7105119 macosx-all
|
||||
javax/swing/UITest/UITest.java 8198392 generic-all
|
||||
javax/swing/plaf/basic/BasicComboBoxEditor/Test8015336.java 8198394 linux-all,macosx-all
|
||||
javax/swing/plaf/metal/MetalLookAndFeel/Test8039750.java 8198395 generic-all
|
||||
javax/swing/text/DevanagariEditor.java 8198397 linux-all
|
||||
javax/swing/JColorChooser/Test6199676.java 8198398 linux-all,macosx-all
|
||||
javax/swing/JTable/6735286/bug6735286.java 8198398 linux-all,macosx-all
|
||||
javax/swing/SpringLayout/4726194/bug4726194.java 8198399 generic-all
|
||||
javax/swing/SwingUtilities/6797139/bug6797139.java 8198400 generic-all
|
||||
javax/swing/text/html/parser/Parser/6836089/bug6836089.java 8198401 linux-all,macosx-all
|
||||
javax/swing/JTable/8133919/DrawGridLinesTest.java 8198407 generic-all
|
||||
javax/swing/text/html/StyleSheet/BackgroundImage/BackgroundImagePosition.java 8198409 generic-all
|
||||
javax/swing/text/AbstractDocument/DocumentInsert/DocumentInsertAtWrongPositionTest.java 8198396 generic-all
|
||||
javax/swing/JFileChooser/6868611/bug6868611.java 7059834 windows-all
|
||||
javax/swing/SwingWorker/6493680/bug6493680.java 8198410 windows-all
|
||||
javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java 8042383 macosx-all
|
||||
javax/swing/PopupFactory/6276087/NonOpaquePopupMenuTest.java 8065099 macosx-all
|
||||
|
||||
############################################################################
|
||||
|
||||
@ -486,10 +736,6 @@ com/sun/jdi/sde/SourceDebugExtensionTest.java 8158066 windows-
|
||||
|
||||
com/sun/jdi/NashornPopFrameTest.java 8187143 generic-all
|
||||
|
||||
com/sun/jdi/EarlyReturnTest.java 8198803 generic-all
|
||||
com/sun/jdi/EarlyReturnNegativeTest.java 8198803 generic-all
|
||||
com/sun/jdi/MethodExitReturnValuesTest.java 8198803 generic-all
|
||||
|
||||
############################################################################
|
||||
|
||||
# jdk_time
|
||||
|
@ -77,8 +77,9 @@ class EarlyReturnNegativeTarg {
|
||||
public static ClassLoader classLoaderValue;
|
||||
{
|
||||
try {
|
||||
urls[0] = new URL("hi there");
|
||||
} catch (java.net.MalformedURLException ee) {
|
||||
urls[0] = new URL("file:/foo");
|
||||
} catch (java.net.MalformedURLException ex) {
|
||||
throw new AssertionError(ex);
|
||||
}
|
||||
classLoaderValue = new URLClassLoader(urls);
|
||||
}
|
||||
|
@ -82,8 +82,9 @@ class EarlyReturnTarg {
|
||||
public static ClassLoader classLoaderValue;
|
||||
{
|
||||
try {
|
||||
urls[0] = new URL("hi there");
|
||||
} catch (java.net.MalformedURLException ee) {
|
||||
urls[0] = new URL("file:/foo");
|
||||
} catch (java.net.MalformedURLException ex) {
|
||||
throw new AssertionError(ex);
|
||||
}
|
||||
classLoaderValue = new URLClassLoader(urls);
|
||||
}
|
||||
@ -116,8 +117,9 @@ class EarlyReturnTarg {
|
||||
public static ClassLoader eclassLoaderValue;
|
||||
{
|
||||
try {
|
||||
urls[0] = new URL("been there, done that");
|
||||
} catch (java.net.MalformedURLException ee) {
|
||||
urls[0] = new URL("file:/bar");
|
||||
} catch (java.net.MalformedURLException ex) {
|
||||
throw new AssertionError(ex);
|
||||
}
|
||||
classLoaderValue = new URLClassLoader(urls);
|
||||
}
|
||||
|
@ -66,8 +66,9 @@ class MethodExitReturnValuesTarg {
|
||||
public static ClassLoader classLoaderValue;
|
||||
{
|
||||
try {
|
||||
urls[0] = new URL("hi there");
|
||||
} catch (java.net.MalformedURLException ee) {
|
||||
urls[0] = new URL("file:/foo");
|
||||
} catch (java.net.MalformedURLException ex) {
|
||||
throw new AssertionError(ex);
|
||||
}
|
||||
classLoaderValue = new URLClassLoader(urls);
|
||||
}
|
||||
|
@ -23,6 +23,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @key headful
|
||||
* @bug 8176795
|
||||
* @summary Test verifies that we get proper color when we draw translucent
|
||||
* color over an opaque color using X Render extension in Linux.
|
||||
|
@ -23,6 +23,8 @@
|
||||
|
||||
/* @test
|
||||
* @bug 8064934
|
||||
* @key headful
|
||||
* @requires (os.family == "windows")
|
||||
* @summary Incorrect Exception message from java.awt.Desktop.open()
|
||||
* @author Dmitry Markov
|
||||
* @library ../../../../lib/testlibrary
|
||||
|
@ -23,6 +23,8 @@
|
||||
|
||||
/* @test
|
||||
@bug 6550588
|
||||
@key headful
|
||||
@requires (os.family == "windows")
|
||||
@summary java.awt.Desktop cannot open file with Windows UNC filename
|
||||
@author Anton Litvinov
|
||||
*/
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2010, 2018 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
|
||||
@ -24,7 +24,7 @@
|
||||
/*
|
||||
@test
|
||||
@key headful
|
||||
@bug 6829546
|
||||
@bug 6829546, 8197808
|
||||
@summary tests that an always-on-top modal dialog doesn't make any windows always-on-top
|
||||
@author artem.ananiev: area=awt.modal
|
||||
@library ../../regtesthelpers
|
||||
@ -32,9 +32,13 @@
|
||||
@run main MakeWindowAlwaysOnTop
|
||||
*/
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
|
||||
import java.awt.Frame;
|
||||
import java.awt.Dialog;
|
||||
import java.awt.EventQueue;
|
||||
import java.awt.Color;
|
||||
import java.awt.Robot;
|
||||
import java.awt.Point;
|
||||
import java.awt.event.InputEvent;
|
||||
import test.java.awt.regtesthelpers.Util;
|
||||
|
||||
public class MakeWindowAlwaysOnTop
|
||||
@ -59,21 +63,9 @@ public class MakeWindowAlwaysOnTop
|
||||
d = new Dialog(null, "Modal dialog", Dialog.ModalityType.APPLICATION_MODAL);
|
||||
d.setBounds(500, 500, 160, 160);
|
||||
d.setAlwaysOnTop(true);
|
||||
EventQueue.invokeLater(new Runnable()
|
||||
{
|
||||
public void run()
|
||||
{
|
||||
d.setVisible(true);
|
||||
}
|
||||
});
|
||||
EventQueue.invokeLater(() -> d.setVisible(true) );
|
||||
// Wait until the dialog is shown
|
||||
EventQueue.invokeAndWait(new Runnable()
|
||||
{
|
||||
public void run()
|
||||
{
|
||||
// Empty
|
||||
}
|
||||
});
|
||||
EventQueue.invokeAndWait(() -> { /* Empty */ });
|
||||
r.delay(100);
|
||||
Util.waitForIdle(r);
|
||||
|
||||
@ -104,29 +96,30 @@ public class MakeWindowAlwaysOnTop
|
||||
|
||||
// Bring it above the first frame
|
||||
t.toFront();
|
||||
r.delay(100);
|
||||
|
||||
r.delay(200);
|
||||
Util.waitForIdle(r);
|
||||
|
||||
|
||||
Color c = r.getPixelColor(p.x + f.getWidth() / 2, p.y + f.getHeight() / 2);
|
||||
System.out.println("Color = " + c);
|
||||
System.out.flush();
|
||||
|
||||
String exceptionMessage = null;
|
||||
// If the color is RED, then the first frame is now always-on-top
|
||||
if (Color.RED.equals(c))
|
||||
{
|
||||
throw new RuntimeException("Test FAILED: the frame is always-on-top");
|
||||
}
|
||||
else if (!Color.BLUE.equals(c))
|
||||
{
|
||||
throw new RuntimeException("Test FAILED: unknown window is on top of the frame");
|
||||
}
|
||||
else
|
||||
{
|
||||
System.out.println("Test PASSED");
|
||||
System.out.flush();
|
||||
if (Color.RED.equals(c)) {
|
||||
exceptionMessage = "Test FAILED: the frame is always-on-top";
|
||||
} else if (!Color.BLUE.equals(c)) {
|
||||
exceptionMessage = "Test FAILED: unknown window is on top of the frame";
|
||||
}
|
||||
|
||||
// Dispose all the windows
|
||||
t.dispose();
|
||||
f.dispose();
|
||||
|
||||
if (exceptionMessage != null) {
|
||||
throw new RuntimeException(exceptionMessage);
|
||||
} else {
|
||||
System.out.println("Test PASSED");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -24,6 +24,7 @@
|
||||
/*
|
||||
* @test
|
||||
* @bug 6356322
|
||||
* @key headful
|
||||
* @summary Tests that embedded frame's graphics configuration is updated
|
||||
* correctly when it is moved to another screen in multiscreen system,
|
||||
* XToolkit
|
||||
|
@ -27,6 +27,7 @@ import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @key headful
|
||||
* @bug 8177758
|
||||
* @requires os.family == "windows"
|
||||
* @summary Regression in java.awt.FileDialog
|
||||
|
@ -24,6 +24,7 @@
|
||||
/*
|
||||
@test
|
||||
@bug 6304979
|
||||
@key headful
|
||||
@summary REG: File Dialog throws ArrayIndexOutOfBounds Exception on XToolkit with b45
|
||||
@author Dmitry Cherepanov: area=awt.filedialog
|
||||
@run main/othervm -Dsun.awt.disableGtkFileDialogs=true ISCthrownByFileListTest
|
||||
|
@ -23,6 +23,7 @@
|
||||
|
||||
/*
|
||||
@test
|
||||
@key headful
|
||||
@bug 8190515 8193468
|
||||
@summary java.awt.Desktop.moveToTrash(File) prompts on Windows 7 but not on Mac.
|
||||
@run main MoveToTrashTest
|
||||
|
@ -23,6 +23,7 @@
|
||||
|
||||
/*
|
||||
@test
|
||||
@key headful
|
||||
@bug 8048887 8164937
|
||||
@summary Tests SortingFTP for an exception caused by the tim-sort algo.
|
||||
@author anton.tarasov: area=awt.focus
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -31,9 +31,11 @@ import java.awt.Toolkit;
|
||||
/**
|
||||
* @test
|
||||
* @key headful
|
||||
* @bug 8065739
|
||||
* @bug 8065739 8129569
|
||||
* @requires (os.family == "mac")
|
||||
* @summary [macosx] Frame warps to lower left of screen when displayed
|
||||
* @author Alexandr Scherbatiy
|
||||
* @run main MaximizedToUnmaximized
|
||||
*/
|
||||
public class MaximizedToUnmaximized {
|
||||
|
||||
|
@ -23,8 +23,8 @@
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @bug 6358034
|
||||
* @bug 6568560
|
||||
* @bug 6358034 6568560
|
||||
* @key headful
|
||||
* @summary Tests that no exception is thrown when display mode is changed
|
||||
* externally
|
||||
* @compile UninitializedDisplayModeChangeTest.java DisplayModeChanger.java
|
||||
|
@ -33,6 +33,7 @@ import java.awt.geom.AffineTransform;
|
||||
/*
|
||||
* @test
|
||||
* @bug 8069361
|
||||
* @key headful
|
||||
* @summary SunGraphics2D.getDefaultTransform() does not include scale factor
|
||||
* @author Alexander Scherbatiy
|
||||
* @run main ScaledTransform
|
||||
|
@ -22,6 +22,7 @@
|
||||
*/
|
||||
|
||||
/* @test
|
||||
* @key headful
|
||||
* @bug 8156121
|
||||
* @summary "Fail forward" fails for GTK3 if no GTK2 available
|
||||
* @modules java.desktop/sun.awt
|
||||
|
@ -22,6 +22,7 @@
|
||||
# questions.
|
||||
|
||||
# @test JAWT.sh
|
||||
# @key headful
|
||||
# @bug 7190587
|
||||
# @summary Tests Java AWT native interface library
|
||||
# @author kshefov
|
||||
@ -111,7 +112,7 @@ case "$OS" in
|
||||
else
|
||||
ARCH="i386"
|
||||
fi
|
||||
SYST="cygwin"
|
||||
SYST="cygwin"
|
||||
MAKE="make"
|
||||
;;
|
||||
Darwin )
|
||||
|
@ -24,6 +24,8 @@
|
||||
/*
|
||||
@test
|
||||
@bug 6246467
|
||||
@key headful
|
||||
@requires (os.family == "linux") | (os.family == "solaris")
|
||||
@summary List does not honor user specified background, foreground colors on XToolkit
|
||||
@author Dmitry Cherepanov area=awt.list
|
||||
@library ../../../../lib/testlibrary
|
||||
|
87
test/jdk/java/awt/MenuBar/DefaultMenuBarDispose.java
Normal file
87
test/jdk/java/awt/MenuBar/DefaultMenuBarDispose.java
Normal file
@ -0,0 +1,87 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @key headful
|
||||
* @bug 8196322
|
||||
* @summary [macosx] When the screen menu bar is used, clearing the default menu bar should permit AWT shutdown
|
||||
* @author Alan Snyder
|
||||
* @run main/othervm DefaultMenuBarDispose
|
||||
* @requires (os.family == "mac")
|
||||
*/
|
||||
|
||||
import java.awt.Desktop;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import javax.swing.JMenuBar;
|
||||
import javax.swing.SwingUtilities;
|
||||
|
||||
public class DefaultMenuBarDispose
|
||||
{
|
||||
public DefaultMenuBarDispose()
|
||||
{
|
||||
Thread watcher = new Thread(() -> {
|
||||
try {
|
||||
synchronized (this) {
|
||||
wait(5000);
|
||||
}
|
||||
throw new RuntimeException("Test failed: failed to exit");
|
||||
} catch (InterruptedException ex) {
|
||||
}
|
||||
});
|
||||
watcher.setDaemon(true);
|
||||
watcher.start();
|
||||
|
||||
runSwing(() ->
|
||||
{
|
||||
JMenuBar mb = new JMenuBar();
|
||||
Desktop.getDesktop().setDefaultMenuBar(mb);
|
||||
Desktop.getDesktop().setDefaultMenuBar(null);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
private static void runSwing(Runnable r)
|
||||
{
|
||||
try {
|
||||
SwingUtilities.invokeAndWait(r);
|
||||
} catch (InterruptedException e) {
|
||||
} catch (InvocationTargetException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
if (!System.getProperty("os.name").contains("OS X")) {
|
||||
System.out.println("This test is for MacOS only. Automatically passed on other platforms.");
|
||||
return;
|
||||
}
|
||||
|
||||
System.setProperty("apple.laf.useScreenMenuBar", "true");
|
||||
|
||||
new DefaultMenuBarDispose();
|
||||
}
|
||||
}
|
@ -22,7 +22,7 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
@test %I% %E%
|
||||
@test
|
||||
@key headful
|
||||
@bug 6315717
|
||||
@summary verifies that drag events are coming for every button if the property is set to true
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user