Mercurial > hg > openjdk > jdk8 > jdk
changeset 8810:fc4ac66aa657 jdk8-b117
Merge
author | lana |
---|---|
date | Fri, 15 Nov 2013 07:14:23 -0800 |
parents | ca0db77f6d6b (current diff) 40d0ccd00f87 (diff) |
children | 8bc258c021a3 6c1f5c7baab0 |
files | src/share/classes/javax/management/modelmbean/RequiredModelMBean.java src/share/classes/sun/awt/AppContext.java src/share/classes/sun/management/OperatingSystemImpl.java src/share/native/java/lang/ref/Finalizer.c src/solaris/classes/com/sun/management/OSMBeanFactory.java src/solaris/classes/com/sun/management/UnixOperatingSystem.java src/solaris/native/com/sun/management/LinuxOperatingSystem.c src/solaris/native/com/sun/management/MacosxOperatingSystem.c src/solaris/native/com/sun/management/SolarisOperatingSystem.c src/solaris/native/com/sun/management/UnixOperatingSystem_md.c src/windows/classes/com/sun/management/OSMBeanFactory.java src/windows/classes/com/sun/management/OperatingSystem.java src/windows/native/com/sun/management/OperatingSystem_md.c test/ProblemList.txt test/java/lang/management/ThreadMXBean/ThreadStateTest.java test/java/lang/reflect/Method/DefaultMethodModeling.java test/java/net/URLPermission/nstest/policy test/java/util/regex/RegExTest.java test/lib/testlibrary/jdk/testlibrary/JdkFinder.java |
diffstat | 268 files changed, 17675 insertions(+), 14601 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgignore Thu Nov 14 23:32:31 2013 -0800 +++ b/.hgignore Fri Nov 15 07:14:23 2013 -0800 @@ -1,5 +1,6 @@ ^build/ ^dist/ +^testoutput/ /nbproject/private/ ^make/netbeans/.*/build/ ^make/netbeans/.*/dist/
--- a/make/java/management/mapfile-vers Thu Nov 14 23:32:31 2013 -0800 +++ b/make/java/management/mapfile-vers Fri Nov 15 07:14:23 2013 -0800 @@ -103,6 +103,7 @@ Java_sun_management_VMManagementImpl_getSafepointCount; Java_sun_management_VMManagementImpl_getSafepointSyncTime; Java_sun_management_VMManagementImpl_getStartupTime; + Java_sun_management_VMManagementImpl_getUptime0; Java_sun_management_VMManagementImpl_getTotalApplicationNonStoppedTime; Java_sun_management_VMManagementImpl_getTotalClassCount; Java_sun_management_VMManagementImpl_getTotalCompileTime;
--- a/make/tools/sharing/classlist.linux Thu Nov 14 23:32:31 2013 -0800 +++ b/make/tools/sharing/classlist.linux Fri Nov 15 07:14:23 2013 -0800 @@ -1,2327 +1,2454 @@ -java/lang/Object -java/lang/String +com/sun/java/swing/SwingUtilities3 +com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI +com/sun/swing/internal/plaf/basic/resources/basic +com/sun/swing/internal/plaf/metal/resources/metal +java/applet/Applet +java/awt/AWTEvent +java/awt/AWTEvent$1 +java/awt/AWTEventMulticaster +java/awt/AWTKeyStroke +java/awt/AWTKeyStroke$1 +java/awt/ActiveEvent +java/awt/Adjustable +java/awt/AlphaComposite +java/awt/BasicStroke +java/awt/BorderLayout +java/awt/BufferCapabilities +java/awt/Canvas +java/awt/CardLayout +java/awt/CardLayout$Card +java/awt/Color +java/awt/Component +java/awt/Component$1 +java/awt/Component$3 +java/awt/Component$AWTTreeLock +java/awt/Component$AccessibleAWTComponent +java/awt/Component$BaselineResizeBehavior +java/awt/Component$BltBufferStrategy +java/awt/Component$BltSubRegionBufferStrategy +java/awt/Component$DummyRequestFocusController +java/awt/Component$FlipBufferStrategy +java/awt/ComponentOrientation +java/awt/Composite +java/awt/Conditional +java/awt/Container +java/awt/Container$1 +java/awt/Container$AccessibleAWTContainer +java/awt/ContainerOrderFocusTraversalPolicy +java/awt/Cursor +java/awt/Cursor$1 +java/awt/DefaultFocusTraversalPolicy +java/awt/DefaultKeyboardFocusManager +java/awt/DefaultKeyboardFocusManager$1 +java/awt/DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent +java/awt/DefaultKeyboardFocusManager$TypeAheadMarker +java/awt/Dialog +java/awt/Dialog$ModalExclusionType +java/awt/Dialog$ModalityType +java/awt/Dimension +java/awt/Event +java/awt/EventDispatchThread +java/awt/EventDispatchThread$1 +java/awt/EventDispatchThread$HierarchyEventFilter +java/awt/EventFilter +java/awt/EventFilter$FilterAction +java/awt/EventQueue +java/awt/EventQueue$1 +java/awt/EventQueue$1AWTInvocationLock +java/awt/EventQueue$2 +java/awt/EventQueue$3 +java/awt/EventQueue$4 +java/awt/EventQueue$5 +java/awt/FlowLayout +java/awt/FocusTraversalPolicy +java/awt/Font +java/awt/Font$FontAccessImpl +java/awt/FontFormatException +java/awt/FontMetrics +java/awt/Frame +java/awt/Frame$1 +java/awt/Graphics +java/awt/Graphics2D +java/awt/GraphicsCallback +java/awt/GraphicsCallback$PaintCallback +java/awt/GraphicsConfiguration +java/awt/GraphicsDevice +java/awt/GraphicsEnvironment +java/awt/GraphicsEnvironment$1 +java/awt/GridLayout +java/awt/Image +java/awt/Image$1 +java/awt/ImageCapabilities +java/awt/ImageMediaEntry +java/awt/Insets +java/awt/ItemSelectable +java/awt/KeyEventDispatcher +java/awt/KeyEventPostProcessor +java/awt/KeyboardFocusManager +java/awt/KeyboardFocusManager$1 +java/awt/KeyboardFocusManager$3 +java/awt/KeyboardFocusManager$HeavyweightFocusRequest +java/awt/KeyboardFocusManager$LightweightFocusRequest +java/awt/Label +java/awt/LayoutManager +java/awt/LayoutManager2 +java/awt/LightweightDispatcher +java/awt/LightweightDispatcher$2 +java/awt/MediaEntry +java/awt/MediaTracker +java/awt/MenuBar +java/awt/MenuComponent +java/awt/MenuContainer +java/awt/ModalEventFilter +java/awt/Paint +java/awt/Panel +java/awt/Point +java/awt/PrintGraphics +java/awt/Queue +java/awt/Rectangle +java/awt/RenderingHints +java/awt/RenderingHints$Key +java/awt/SentEvent +java/awt/SequencedEvent +java/awt/SequencedEvent$1 +java/awt/Shape +java/awt/SplashScreen +java/awt/Stroke +java/awt/SystemColor +java/awt/Toolkit +java/awt/Toolkit$1 +java/awt/Toolkit$2 +java/awt/Toolkit$3 +java/awt/Toolkit$4 +java/awt/Toolkit$5 +java/awt/Toolkit$DesktopPropertyChangeSupport +java/awt/Toolkit$DesktopPropertyChangeSupport$1 +java/awt/Toolkit$SelectiveAWTEventListener +java/awt/Toolkit$ToolkitEventMulticaster +java/awt/Transparency +java/awt/TrayIcon +java/awt/VKCollection +java/awt/Window +java/awt/Window$1 +java/awt/Window$1DisposeAction +java/awt/Window$Type +java/awt/Window$WindowDisposerRecord +java/awt/color/ColorSpace +java/awt/color/ICC_ColorSpace +java/awt/color/ICC_Profile +java/awt/color/ICC_Profile$1 +java/awt/color/ICC_ProfileRGB +java/awt/datatransfer/Clipboard +java/awt/datatransfer/ClipboardOwner +java/awt/datatransfer/FlavorMap +java/awt/datatransfer/FlavorTable +java/awt/datatransfer/SystemFlavorMap +java/awt/datatransfer/Transferable +java/awt/dnd/DropTarget +java/awt/dnd/DropTargetContext +java/awt/dnd/DropTargetListener +java/awt/dnd/peer/DragSourceContextPeer +java/awt/dnd/peer/DropTargetContextPeer +java/awt/dnd/peer/DropTargetPeer +java/awt/event/AWTEventListener +java/awt/event/AWTEventListenerProxy +java/awt/event/ActionEvent +java/awt/event/ActionListener +java/awt/event/AdjustmentEvent +java/awt/event/AdjustmentListener +java/awt/event/ComponentAdapter +java/awt/event/ComponentEvent +java/awt/event/ComponentListener +java/awt/event/ContainerEvent +java/awt/event/ContainerListener +java/awt/event/FocusAdapter +java/awt/event/FocusEvent +java/awt/event/FocusListener +java/awt/event/HierarchyBoundsListener +java/awt/event/HierarchyListener +java/awt/event/InputEvent +java/awt/event/InputEvent$1 +java/awt/event/InputMethodEvent +java/awt/event/InputMethodListener +java/awt/event/InvocationEvent +java/awt/event/InvocationEvent$1 +java/awt/event/ItemEvent +java/awt/event/ItemListener +java/awt/event/KeyAdapter +java/awt/event/KeyEvent +java/awt/event/KeyEvent$1 +java/awt/event/KeyListener +java/awt/event/MouseAdapter +java/awt/event/MouseEvent +java/awt/event/MouseListener +java/awt/event/MouseMotionAdapter +java/awt/event/MouseMotionListener +java/awt/event/MouseWheelListener +java/awt/event/NativeLibLoader +java/awt/event/NativeLibLoader$1 +java/awt/event/PaintEvent +java/awt/event/TextListener +java/awt/event/WindowAdapter +java/awt/event/WindowEvent +java/awt/event/WindowFocusListener +java/awt/event/WindowListener +java/awt/event/WindowStateListener +java/awt/font/FontRenderContext +java/awt/font/GlyphVector +java/awt/font/LineMetrics +java/awt/font/TextAttribute +java/awt/geom/AffineTransform +java/awt/geom/Dimension2D +java/awt/geom/GeneralPath +java/awt/geom/Line2D +java/awt/geom/Line2D$Float +java/awt/geom/Path2D +java/awt/geom/Path2D$Float +java/awt/geom/PathIterator +java/awt/geom/Point2D +java/awt/geom/Point2D$Float +java/awt/geom/RectIterator +java/awt/geom/Rectangle2D +java/awt/geom/Rectangle2D$Float +java/awt/geom/RectangularShape +java/awt/im/InputContext +java/awt/im/InputMethodRequests +java/awt/im/spi/InputMethod +java/awt/im/spi/InputMethodContext +java/awt/im/spi/InputMethodDescriptor +java/awt/image/BufferStrategy +java/awt/image/BufferedImage +java/awt/image/BufferedImage$1 +java/awt/image/ColorModel +java/awt/image/ColorModel$1 +java/awt/image/ComponentSampleModel +java/awt/image/DataBuffer +java/awt/image/DataBuffer$1 +java/awt/image/DataBufferByte +java/awt/image/DataBufferInt +java/awt/image/DirectColorModel +java/awt/image/FilteredImageSource +java/awt/image/ImageConsumer +java/awt/image/ImageFilter +java/awt/image/ImageObserver +java/awt/image/ImageProducer +java/awt/image/IndexColorModel +java/awt/image/PackedColorModel +java/awt/image/PixelInterleavedSampleModel +java/awt/image/RGBImageFilter +java/awt/image/Raster +java/awt/image/RenderedImage +java/awt/image/SampleModel +java/awt/image/SinglePixelPackedSampleModel +java/awt/image/VolatileImage +java/awt/image/WritableRaster +java/awt/image/WritableRenderedImage +java/awt/peer/CanvasPeer +java/awt/peer/ComponentPeer +java/awt/peer/ContainerPeer +java/awt/peer/FramePeer +java/awt/peer/KeyboardFocusManagerPeer +java/awt/peer/LabelPeer +java/awt/peer/LightweightPeer +java/awt/peer/PanelPeer +java/awt/peer/SystemTrayPeer +java/awt/peer/WindowPeer +java/awt/print/PrinterGraphics +java/beans/ChangeListenerMap +java/beans/PropertyChangeEvent +java/beans/PropertyChangeListener +java/beans/PropertyChangeListenerProxy +java/beans/PropertyChangeSupport +java/beans/PropertyChangeSupport$PropertyChangeListenerMap +java/beans/VetoableChangeListener +java/io/Bits +java/io/BufferedInputStream +java/io/BufferedOutputStream +java/io/BufferedReader +java/io/BufferedWriter +java/io/ByteArrayInputStream +java/io/ByteArrayOutputStream +java/io/Closeable +java/io/DataInput +java/io/DataInputStream +java/io/DataOutput +java/io/DataOutputStream +java/io/DefaultFileSystem +java/io/EOFException +java/io/ExpiringCache +java/io/ExpiringCache$1 +java/io/ExpiringCache$Entry +java/io/Externalizable +java/io/File +java/io/File$PathStatus +java/io/FileDescriptor +java/io/FileDescriptor$1 +java/io/FileInputStream +java/io/FileInputStream$1 +java/io/FileNotFoundException +java/io/FileOutputStream +java/io/FileOutputStream$1 +java/io/FilePermission +java/io/FilePermission$1 +java/io/FilePermissionCollection +java/io/FileReader +java/io/FileSystem +java/io/FileWriter +java/io/FilenameFilter +java/io/FilterInputStream +java/io/FilterOutputStream +java/io/FilterReader +java/io/Flushable +java/io/IOException +java/io/InputStream +java/io/InputStreamReader +java/io/InterruptedIOException +java/io/ObjectInput +java/io/ObjectInputStream +java/io/ObjectInputStream$BlockDataInputStream +java/io/ObjectInputStream$GetField +java/io/ObjectInputStream$GetFieldImpl +java/io/ObjectInputStream$HandleTable +java/io/ObjectInputStream$HandleTable$HandleList +java/io/ObjectInputStream$PeekInputStream +java/io/ObjectInputStream$ValidationList +java/io/ObjectOutput +java/io/ObjectOutputStream +java/io/ObjectOutputStream$BlockDataOutputStream +java/io/ObjectOutputStream$HandleTable +java/io/ObjectOutputStream$ReplaceTable +java/io/ObjectStreamClass +java/io/ObjectStreamClass$1 +java/io/ObjectStreamClass$2 +java/io/ObjectStreamClass$3 +java/io/ObjectStreamClass$4 +java/io/ObjectStreamClass$5 +java/io/ObjectStreamClass$Caches +java/io/ObjectStreamClass$ClassDataSlot +java/io/ObjectStreamClass$EntryFuture +java/io/ObjectStreamClass$ExceptionInfo +java/io/ObjectStreamClass$FieldReflector +java/io/ObjectStreamClass$FieldReflectorKey +java/io/ObjectStreamClass$MemberSignature +java/io/ObjectStreamClass$WeakClassKey +java/io/ObjectStreamConstants +java/io/ObjectStreamField +java/io/OutputStream +java/io/OutputStreamWriter +java/io/PrintStream +java/io/PushbackInputStream +java/io/RandomAccessFile +java/io/RandomAccessFile$1 +java/io/Reader +java/io/SerialCallbackContext java/io/Serializable -java/lang/Comparable -java/lang/CharSequence -java/lang/Class -java/lang/reflect/GenericDeclaration -java/lang/reflect/Type -java/lang/reflect/AnnotatedElement -java/lang/Cloneable -java/lang/ClassLoader -java/lang/System -java/lang/Throwable -java/lang/Error -java/lang/ThreadDeath -java/lang/Exception -java/lang/RuntimeException -java/security/ProtectionDomain -java/security/AccessControlContext -java/lang/ClassNotFoundException -java/lang/NoClassDefFoundError -java/lang/LinkageError -java/lang/ClassCastException -java/lang/ArrayStoreException -java/lang/VirtualMachineError -java/lang/OutOfMemoryError -java/lang/StackOverflowError -java/lang/IllegalMonitorStateException -java/lang/ref/Reference -java/lang/ref/SoftReference -java/lang/ref/WeakReference -java/lang/ref/FinalReference -java/lang/ref/PhantomReference -java/lang/ref/Finalizer -java/lang/Thread -java/lang/Runnable -java/lang/ThreadGroup -java/lang/Thread$UncaughtExceptionHandler -java/util/Properties -java/util/Hashtable -java/util/Map -java/util/Dictionary -java/lang/reflect/AccessibleObject -java/lang/reflect/Field -java/lang/reflect/Member -java/lang/reflect/Method -java/lang/reflect/Constructor -sun/reflect/MagicAccessorImpl -sun/reflect/MethodAccessorImpl -sun/reflect/MethodAccessor -sun/reflect/ConstructorAccessorImpl -sun/reflect/ConstructorAccessor -sun/reflect/DelegatingClassLoader -sun/reflect/ConstantPool -sun/reflect/UnsafeStaticFieldAccessorImpl -sun/reflect/UnsafeFieldAccessorImpl -sun/reflect/FieldAccessorImpl -sun/reflect/FieldAccessor -java/util/Vector -java/util/List -java/util/Collection -java/lang/Iterable -java/util/RandomAccess -java/util/AbstractList -java/util/AbstractCollection -java/lang/StringBuffer +java/io/StreamTokenizer +java/io/StringReader +java/io/StringWriter +java/io/UnixFileSystem +java/io/UnsupportedEncodingException +java/io/Writer java/lang/AbstractStringBuilder java/lang/Appendable -java/lang/StackTraceElement -java/nio/Buffer +java/lang/ApplicationShutdownHooks +java/lang/ApplicationShutdownHooks$1 +java/lang/ArithmeticException +java/lang/ArrayIndexOutOfBoundsException +java/lang/ArrayStoreException +java/lang/AutoCloseable java/lang/Boolean -java/lang/Character -java/lang/Float -java/lang/Number -java/lang/Double +java/lang/BootstrapMethodError java/lang/Byte -java/lang/Short +java/lang/CharSequence +java/lang/Character +java/lang/Character$CharacterCache +java/lang/CharacterData +java/lang/CharacterData00 +java/lang/CharacterDataLatin1 +java/lang/Class +java/lang/Class$1 +java/lang/Class$3 +java/lang/Class$4 +java/lang/Class$AnnotationData +java/lang/Class$Atomic +java/lang/Class$ReflectionData +java/lang/ClassCastException +java/lang/ClassFormatError +java/lang/ClassLoader +java/lang/ClassLoader$2 +java/lang/ClassLoader$3 +java/lang/ClassLoader$NativeLibrary +java/lang/ClassLoader$ParallelLoaders +java/lang/ClassNotFoundException +java/lang/ClassValue$ClassValueMap +java/lang/CloneNotSupportedException +java/lang/Cloneable +java/lang/Comparable +java/lang/Compiler +java/lang/Compiler$1 +java/lang/Double +java/lang/Enum +java/lang/Error +java/lang/Exception +java/lang/ExceptionInInitializerError +java/lang/Float +java/lang/IllegalAccessError +java/lang/IllegalAccessException +java/lang/IllegalArgumentException +java/lang/IllegalMonitorStateException +java/lang/IllegalStateException +java/lang/IncompatibleClassChangeError +java/lang/IndexOutOfBoundsException +java/lang/InheritableThreadLocal +java/lang/InstantiationException java/lang/Integer +java/lang/Integer$IntegerCache +java/lang/InternalError +java/lang/InterruptedException +java/lang/Iterable +java/lang/LinkageError java/lang/Long +java/lang/Long$LongCache +java/lang/Math +java/lang/NoClassDefFoundError +java/lang/NoSuchFieldException +java/lang/NoSuchMethodError +java/lang/NoSuchMethodException java/lang/NullPointerException -java/lang/ArithmeticException -java/io/ObjectStreamField -java/lang/String$CaseInsensitiveComparator -java/util/Comparator +java/lang/Number +java/lang/NumberFormatException +java/lang/Object +java/lang/OutOfMemoryError +java/lang/Package +java/lang/Process +java/lang/ProcessBuilder +java/lang/ProcessBuilder$NullOutputStream +java/lang/ProcessEnvironment +java/lang/ProcessEnvironment$ExternalData +java/lang/ProcessEnvironment$StringEnvironment +java/lang/ProcessEnvironment$Value +java/lang/ProcessEnvironment$Variable +java/lang/ProcessImpl +java/lang/Readable +java/lang/ReflectiveOperationException +java/lang/Runnable +java/lang/Runtime +java/lang/RuntimeException java/lang/RuntimePermission -java/security/BasicPermission -java/security/Permission -java/security/Guard -sun/misc/SoftCache -java/util/AbstractMap -java/lang/ref/ReferenceQueue -java/lang/ref/ReferenceQueue$Null -java/lang/ref/ReferenceQueue$Lock -java/util/HashMap +java/lang/SecurityException +java/lang/SecurityManager +java/lang/Short +java/lang/Shutdown +java/lang/Shutdown$Lock +java/lang/StackOverflowError +java/lang/StackTraceElement +java/lang/StrictMath +java/lang/String +java/lang/String$CaseInsensitiveComparator +java/lang/StringBuffer +java/lang/StringBuilder +java/lang/StringCoding +java/lang/StringCoding$StringDecoder +java/lang/StringCoding$StringEncoder +java/lang/StringIndexOutOfBoundsException +java/lang/System +java/lang/System$2 +java/lang/SystemClassLoaderAction +java/lang/Terminator +java/lang/Terminator$1 +java/lang/Thread +java/lang/Thread$State +java/lang/Thread$UncaughtExceptionHandler +java/lang/ThreadDeath +java/lang/ThreadGroup +java/lang/ThreadLocal +java/lang/ThreadLocal$ThreadLocalMap +java/lang/ThreadLocal$ThreadLocalMap$Entry +java/lang/Throwable +java/lang/Throwable$PrintStreamOrWriter +java/lang/Throwable$WrappedPrintStream +java/lang/UNIXProcess +java/lang/UNIXProcess$1 +java/lang/UNIXProcess$2 +java/lang/UNIXProcess$3 +java/lang/UNIXProcess$4 +java/lang/UNIXProcess$LaunchMechanism +java/lang/UNIXProcess$ProcessPipeInputStream +java/lang/UNIXProcess$ProcessPipeOutputStream +java/lang/UNIXProcess$ProcessReaperThreadFactory +java/lang/UNIXProcess$ProcessReaperThreadFactory$1 +java/lang/UnsatisfiedLinkError +java/lang/UnsupportedOperationException +java/lang/VirtualMachineError +java/lang/Void java/lang/annotation/Annotation -java/util/HashMap$Entry -java/util/Map$Entry -java/security/AccessController -java/lang/reflect/ReflectPermission -sun/reflect/ReflectionFactory$GetReflectionFactoryAction -java/security/PrivilegedAction -java/util/Stack -sun/reflect/ReflectionFactory +java/lang/invoke/CallSite +java/lang/invoke/ConstantCallSite +java/lang/invoke/DirectMethodHandle +java/lang/invoke/Invokers +java/lang/invoke/LambdaForm +java/lang/invoke/LambdaForm$NamedFunction +java/lang/invoke/MemberName +java/lang/invoke/MemberName$Factory +java/lang/invoke/MethodHandle +java/lang/invoke/MethodHandleImpl +java/lang/invoke/MethodHandleNatives +java/lang/invoke/MethodHandleStatics +java/lang/invoke/MethodHandleStatics$1 +java/lang/invoke/MethodType +java/lang/invoke/MethodType$ConcurrentWeakInternSet +java/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry +java/lang/invoke/MethodTypeForm +java/lang/invoke/MutableCallSite +java/lang/invoke/VolatileCallSite +java/lang/ref/FinalReference +java/lang/ref/Finalizer +java/lang/ref/Finalizer$FinalizerThread +java/lang/ref/PhantomReference +java/lang/ref/Reference java/lang/ref/Reference$Lock java/lang/ref/Reference$ReferenceHandler -java/lang/ref/Finalizer$FinalizerThread -java/util/Enumeration -java/util/Iterator -java/util/Hashtable$Entry -java/nio/charset/Charset -sun/nio/cs/StandardCharsets -sun/nio/cs/FastCharsetProvider -java/nio/charset/spi/CharsetProvider -sun/nio/cs/StandardCharsets$Aliases -sun/util/PreHashedMap -sun/nio/cs/StandardCharsets$Classes -sun/nio/cs/StandardCharsets$Cache -java/lang/ThreadLocal -java/util/concurrent/atomic/AtomicInteger -sun/misc/Unsafe -java/lang/NoSuchMethodError -java/lang/IncompatibleClassChangeError -sun/reflect/Reflection -java/util/Collections -java/util/Collections$EmptySet -java/util/AbstractSet -java/util/Set -java/util/Collections$EmptyList -java/util/Collections$EmptyMap -java/util/Collections$ReverseComparator -java/util/Collections$SynchronizedMap -java/lang/Class$3 +java/lang/ref/ReferenceQueue +java/lang/ref/ReferenceQueue$Lock +java/lang/ref/ReferenceQueue$Null +java/lang/ref/SoftReference +java/lang/ref/WeakReference +java/lang/reflect/AccessibleObject +java/lang/reflect/AnnotatedElement +java/lang/reflect/Array +java/lang/reflect/Constructor +java/lang/reflect/Executable +java/lang/reflect/Field +java/lang/reflect/GenericDeclaration +java/lang/reflect/InvocationHandler +java/lang/reflect/InvocationTargetException +java/lang/reflect/Member +java/lang/reflect/Method java/lang/reflect/Modifier +java/lang/reflect/Parameter +java/lang/reflect/Proxy +java/lang/reflect/Proxy$KeyFactory +java/lang/reflect/Proxy$ProxyClassFactory java/lang/reflect/ReflectAccess -sun/reflect/LangReflectAccess -java/util/Arrays -java/lang/Math -sun/nio/cs/US_ASCII -sun/nio/cs/HistoricallyNamedCharset -sun/misc/VM -java/lang/StringCoding -java/lang/ThreadLocal$ThreadLocalMap -java/lang/ThreadLocal$ThreadLocalMap$Entry -java/lang/StringCoding$StringDecoder -sun/nio/cs/US_ASCII$Decoder -java/nio/charset/CharsetDecoder -java/nio/charset/CodingErrorAction +java/lang/reflect/ReflectPermission +java/lang/reflect/Type +java/lang/reflect/WeakCache +java/math/BigInteger +java/math/BigInteger$UnsafeHolder +java/math/MutableBigInteger +java/math/RoundingMode +java/math/SignedMutableBigInteger +java/net/AbstractPlainDatagramSocketImpl +java/net/AbstractPlainDatagramSocketImpl$1 +java/net/AbstractPlainSocketImpl +java/net/AbstractPlainSocketImpl$1 +java/net/Authenticator +java/net/BindException +java/net/ConnectException +java/net/DatagramPacket +java/net/DatagramPacket$1 +java/net/DatagramSocket +java/net/DatagramSocket$1 +java/net/DatagramSocketImpl +java/net/DefaultDatagramSocketImplFactory +java/net/DefaultInterface +java/net/FileNameMap +java/net/HttpURLConnection +java/net/Inet4Address +java/net/Inet4AddressImpl +java/net/Inet6Address +java/net/Inet6Address$Inet6AddressHolder +java/net/Inet6AddressImpl +java/net/InetAddress +java/net/InetAddress$1 +java/net/InetAddress$2 +java/net/InetAddress$Cache +java/net/InetAddress$Cache$Type +java/net/InetAddress$CacheEntry +java/net/InetAddress$InetAddressHolder +java/net/InetAddressImpl +java/net/InetAddressImplFactory +java/net/InetSocketAddress +java/net/InetSocketAddress$InetSocketAddressHolder +java/net/InterfaceAddress +java/net/JarURLConnection +java/net/MalformedURLException +java/net/MulticastSocket +java/net/NetworkInterface +java/net/NetworkInterface$1 +java/net/NoRouteToHostException +java/net/Parts +java/net/PlainDatagramSocketImpl +java/net/PlainSocketImpl +java/net/Proxy +java/net/Proxy$Type +java/net/ProxySelector +java/net/ServerSocket +java/net/Socket +java/net/SocketAddress +java/net/SocketException +java/net/SocketImpl +java/net/SocketImplFactory +java/net/SocketOptions +java/net/SocksConsts +java/net/SocksSocketImpl +java/net/SocksSocketImpl$3 +java/net/URI +java/net/URI$Parser +java/net/URL +java/net/URLClassLoader +java/net/URLClassLoader$1 +java/net/URLClassLoader$2 +java/net/URLClassLoader$3 +java/net/URLClassLoader$3$1 +java/net/URLClassLoader$7 +java/net/URLConnection +java/net/URLConnection$1 +java/net/URLStreamHandler +java/net/URLStreamHandlerFactory +java/net/UnknownHostException +java/nio/Bits +java/nio/Bits$1 +java/nio/Buffer java/nio/ByteBuffer -java/nio/HeapByteBuffer -java/nio/Bits +java/nio/ByteBufferAsIntBufferB +java/nio/ByteBufferAsShortBufferB java/nio/ByteOrder java/nio/CharBuffer -java/lang/Readable +java/nio/DirectByteBuffer +java/nio/DirectByteBuffer$Deallocator +java/nio/DirectByteBufferR +java/nio/DirectLongBufferU +java/nio/HeapByteBuffer java/nio/HeapCharBuffer +java/nio/IntBuffer +java/nio/LongBuffer +java/nio/MappedByteBuffer +java/nio/ShortBuffer +java/nio/channels/ByteChannel +java/nio/channels/Channel +java/nio/channels/FileChannel +java/nio/channels/FileChannel$MapMode +java/nio/channels/GatheringByteChannel +java/nio/channels/InterruptibleChannel +java/nio/channels/NetworkChannel +java/nio/channels/ReadableByteChannel +java/nio/channels/ScatteringByteChannel +java/nio/channels/SeekableByteChannel +java/nio/channels/SelectableChannel +java/nio/channels/SocketChannel +java/nio/channels/WritableByteChannel +java/nio/channels/spi/AbstractInterruptibleChannel +java/nio/channels/spi/AbstractInterruptibleChannel$1 +java/nio/channels/spi/AbstractSelectableChannel +java/nio/charset/Charset +java/nio/charset/CharsetDecoder +java/nio/charset/CharsetEncoder java/nio/charset/CoderResult java/nio/charset/CoderResult$1 +java/nio/charset/CoderResult$2 java/nio/charset/CoderResult$Cache -java/nio/charset/CoderResult$2 -sun/misc/Version -java/io/FileInputStream -java/io/InputStream -java/io/Closeable -java/io/FileDescriptor -java/io/FileOutputStream -java/io/OutputStream -java/io/Flushable -java/io/BufferedInputStream -java/io/FilterInputStream -java/util/concurrent/atomic/AtomicReferenceFieldUpdater -java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl -sun/reflect/misc/ReflectUtil -java/io/PrintStream -java/io/FilterOutputStream -java/io/BufferedOutputStream -java/io/OutputStreamWriter -java/io/Writer -sun/nio/cs/StreamEncoder -sun/security/action/GetPropertyAction -sun/nio/cs/US_ASCII$Encoder -java/nio/charset/CharsetEncoder -sun/nio/cs/Surrogate$Parser -sun/nio/cs/Surrogate -java/io/BufferedWriter -java/lang/Runtime -java/io/File -java/io/FileSystem -java/io/UnixFileSystem -java/io/ExpiringCache -java/io/ExpiringCache$1 +java/nio/charset/CodingErrorAction +java/nio/charset/StandardCharsets +java/nio/charset/spi/CharsetProvider +java/nio/file/Path +java/nio/file/Watchable +java/nio/file/attribute/FileAttribute +java/security/AccessControlContext +java/security/AccessController +java/security/AlgorithmParameters +java/security/AlgorithmParametersSpi +java/security/AllPermission +java/security/AllPermissionCollection +java/security/BasicPermission +java/security/BasicPermissionCollection +java/security/CodeSigner +java/security/CodeSource +java/security/GeneralSecurityException +java/security/Guard +java/security/InvalidKeyException +java/security/Key +java/security/KeyException +java/security/MessageDigest +java/security/MessageDigest$Delegate +java/security/MessageDigestSpi +java/security/NoSuchAlgorithmException +java/security/Permission +java/security/PermissionCollection +java/security/Permissions +java/security/Principal +java/security/PrivateKey +java/security/PrivilegedAction +java/security/PrivilegedActionException +java/security/PrivilegedExceptionAction +java/security/ProtectionDomain +java/security/ProtectionDomain$1 +java/security/ProtectionDomain$3 +java/security/ProtectionDomain$Key +java/security/Provider +java/security/Provider$EngineDescription +java/security/Provider$Service +java/security/Provider$ServiceKey +java/security/Provider$UString +java/security/PublicKey +java/security/SecureClassLoader +java/security/SecureRandomSpi +java/security/Security +java/security/Security$1 +java/security/Signature +java/security/Signature$Delegate +java/security/SignatureException +java/security/SignatureSpi +java/security/UnresolvedPermission +java/security/cert/Certificate +java/security/interfaces/DSAKey +java/security/interfaces/DSAParams +java/security/interfaces/DSAPrivateKey +java/security/interfaces/DSAPublicKey +java/security/spec/AlgorithmParameterSpec +java/security/spec/DSAParameterSpec +java/text/AttributedCharacterIterator$Attribute +java/text/CharacterIterator +java/text/Collator +java/text/DateFormat +java/text/DateFormat$Field +java/text/DateFormatSymbols +java/text/DecimalFormat +java/text/DecimalFormatSymbols +java/text/DigitList +java/text/DontCareFieldPosition +java/text/DontCareFieldPosition$1 +java/text/EntryPair +java/text/FieldPosition +java/text/Format +java/text/Format$Field +java/text/Format$FieldDelegate +java/text/MergeCollation +java/text/MessageFormat +java/text/MessageFormat$Field +java/text/NumberFormat +java/text/NumberFormat$Field +java/text/ParseException +java/text/PatternEntry +java/text/PatternEntry$Parser +java/text/RBCollationTables +java/text/RBCollationTables$BuildAPI +java/text/RBTableBuilder +java/text/RuleBasedCollator +java/text/SimpleDateFormat +java/text/spi/BreakIteratorProvider +java/text/spi/CollatorProvider +java/text/spi/DateFormatProvider +java/text/spi/DateFormatSymbolsProvider +java/text/spi/DecimalFormatSymbolsProvider +java/text/spi/NumberFormatProvider +java/util/AbstractCollection +java/util/AbstractList +java/util/AbstractList$Itr +java/util/AbstractList$ListItr +java/util/AbstractMap +java/util/AbstractQueue +java/util/AbstractSequentialList +java/util/AbstractSet +java/util/ArrayDeque +java/util/ArrayList +java/util/ArrayList$Itr +java/util/ArrayList$ListItr +java/util/ArrayList$SubList +java/util/ArrayList$SubList$1 +java/util/Arrays +java/util/Arrays$ArrayList +java/util/Arrays$LegacyMergeSort +java/util/BitSet +java/util/Calendar +java/util/Calendar$Builder +java/util/Collection +java/util/Collections +java/util/Collections$3 +java/util/Collections$EmptyEnumeration +java/util/Collections$EmptyIterator +java/util/Collections$EmptyList +java/util/Collections$EmptyMap +java/util/Collections$EmptySet +java/util/Collections$SetFromMap +java/util/Collections$SynchronizedCollection +java/util/Collections$SynchronizedMap +java/util/Collections$SynchronizedSet +java/util/Collections$UnmodifiableCollection +java/util/Collections$UnmodifiableCollection$1 +java/util/Collections$UnmodifiableList +java/util/Collections$UnmodifiableList$1 +java/util/Collections$UnmodifiableMap +java/util/Collections$UnmodifiableRandomAccessList +java/util/Collections$UnmodifiableSet +java/util/ComparableTimSort +java/util/Comparator +java/util/Currency +java/util/Currency$1 +java/util/Currency$CurrencyNameGetter +java/util/Date +java/util/Deque +java/util/Dictionary +java/util/Enumeration +java/util/EventListener +java/util/EventListenerProxy +java/util/EventObject +java/util/GregorianCalendar +java/util/HashMap +java/util/HashMap$EntryIterator +java/util/HashMap$EntrySet +java/util/HashMap$HashIterator +java/util/HashMap$KeyIterator +java/util/HashMap$KeySet +java/util/HashMap$Node +java/util/HashMap$TreeNode +java/util/HashMap$ValueIterator +java/util/HashMap$Values +java/util/HashSet +java/util/Hashtable +java/util/Hashtable$Entry +java/util/Hashtable$EntrySet +java/util/Hashtable$Enumerator +java/util/Hashtable$ValueCollection +java/util/IdentityHashMap +java/util/IdentityHashMap$IdentityHashMapIterator +java/util/IdentityHashMap$KeyIterator +java/util/IdentityHashMap$KeySet +java/util/IdentityHashMap$ValueIterator +java/util/IdentityHashMap$Values +java/util/Iterator java/util/LinkedHashMap java/util/LinkedHashMap$Entry -java/lang/StringBuilder -sun/misc/SharedSecrets -java/lang/ClassLoader$3 -java/lang/StringCoding$StringEncoder -java/io/ExpiringCache$Entry -java/lang/ClassLoader$NativeLibrary -java/lang/Terminator -java/lang/Terminator$1 -sun/misc/SignalHandler -sun/misc/Signal -sun/misc/NativeSignalHandler -java/io/Console -java/io/Console$1 -sun/misc/JavaIOAccess -java/lang/Shutdown -java/util/ArrayList -java/lang/Shutdown$Lock -java/lang/ApplicationShutdownHooks -java/util/IdentityHashMap -sun/misc/OSEnvironment -java/lang/System$2 -sun/misc/JavaLangAccess -java/lang/Compiler -java/lang/Compiler$1 -sun/misc/Launcher -sun/misc/Launcher$Factory -java/net/URLStreamHandlerFactory -sun/misc/Launcher$ExtClassLoader -java/net/URLClassLoader -java/security/SecureClassLoader -sun/security/util/Debug -java/net/URLClassLoader$7 -sun/misc/JavaNetAccess -java/util/StringTokenizer -sun/misc/Launcher$ExtClassLoader$1 -java/security/PrivilegedExceptionAction -sun/misc/MetaIndex -java/io/BufferedReader -java/io/Reader -java/io/FileReader -java/io/InputStreamReader -sun/nio/cs/StreamDecoder -java/lang/reflect/Array -sun/net/www/ParseUtil -java/util/BitSet -java/io/ObjectStreamClass -java/net/URL +java/util/LinkedHashMap$LinkedEntryIterator +java/util/LinkedHashMap$LinkedEntrySet +java/util/LinkedHashMap$LinkedHashIterator +java/util/LinkedHashMap$LinkedKeyIterator +java/util/LinkedHashMap$LinkedKeySet +java/util/LinkedList +java/util/LinkedList$ListItr +java/util/LinkedList$Node +java/util/List +java/util/ListIterator +java/util/ListResourceBundle java/util/Locale -java/util/concurrent/ConcurrentHashMap -java/util/concurrent/ConcurrentMap -java/util/concurrent/ConcurrentHashMap$Segment -java/util/concurrent/locks/ReentrantLock -java/util/concurrent/locks/Lock -java/util/concurrent/locks/ReentrantLock$NonfairSync -java/util/concurrent/locks/ReentrantLock$Sync -java/util/concurrent/locks/AbstractQueuedSynchronizer -java/util/concurrent/locks/AbstractOwnableSynchronizer -java/util/concurrent/locks/AbstractQueuedSynchronizer$Node -java/util/concurrent/ConcurrentHashMap$HashEntry -java/lang/CharacterDataLatin1 -java/net/Parts -sun/net/www/protocol/file/Handler -java/net/URLStreamHandler -java/lang/Class$1 -sun/reflect/ReflectionFactory$1 -sun/reflect/NativeConstructorAccessorImpl -sun/reflect/DelegatingConstructorAccessorImpl -java/util/HashSet -sun/misc/URLClassPath -sun/net/www/protocol/jar/Handler -sun/misc/Launcher$AppClassLoader -sun/misc/Launcher$AppClassLoader$1 -java/lang/SystemClassLoaderAction -java/net/URLClassLoader$1 -sun/misc/URLClassPath$3 -sun/misc/URLClassPath$JarLoader -sun/misc/URLClassPath$Loader -java/security/PrivilegedActionException -sun/misc/URLClassPath$FileLoader -sun/misc/URLClassPath$FileLoader$1 -sun/misc/Resource -sun/nio/ByteBuffered -java/security/CodeSource -java/security/Permissions -java/security/PermissionCollection -sun/net/www/protocol/file/FileURLConnection -sun/net/www/URLConnection -java/net/URLConnection -java/net/UnknownContentHandler -java/net/ContentHandler -sun/net/www/MessageHeader -java/io/FilePermission -java/io/FilePermission$1 -sun/security/provider/PolicyFile -java/security/Policy -java/security/Policy$UnsupportedEmptyCollection -java/io/FilePermissionCollection -java/security/AllPermission -java/security/UnresolvedPermission -java/security/BasicPermissionCollection -java/security/Principal -java/security/cert/Certificate -java/util/AbstractList$Itr -java/util/IdentityHashMap$KeySet -java/util/IdentityHashMap$KeyIterator -java/util/IdentityHashMap$IdentityHashMapIterator -java/io/DeleteOnExitHook -java/util/LinkedHashSet -java/util/HashMap$KeySet -java/util/LinkedHashMap$KeyIterator -java/util/LinkedHashMap$LinkedHashIterator -java/awt/Frame -java/awt/MenuContainer -java/awt/Window -javax/accessibility/Accessible -java/awt/Container -java/awt/Component -java/awt/image/ImageObserver -java/lang/InterruptedException -java/awt/Label -java/util/logging/Logger -java/util/logging/Handler -java/util/logging/Level -java/util/logging/LogManager -java/util/logging/LogManager$1 -java/beans/PropertyChangeSupport -java/util/logging/LogManager$LogNode -java/util/logging/LoggingPermission -java/util/logging/LogManager$Cleaner -java/util/logging/LogManager$RootLogger -java/util/logging/LogManager$2 +java/util/Locale$1 +java/util/Locale$Cache +java/util/Locale$Category +java/util/Locale$LocaleKey +java/util/Map +java/util/Map$Entry +java/util/MissingResourceException +java/util/NavigableMap +java/util/Objects +java/util/PriorityQueue +java/util/Properties java/util/Properties$LineReader -java/util/Hashtable$Enumerator -java/beans/PropertyChangeEvent -java/util/EventObject -java/awt/Component$AWTTreeLock -sun/awt/NativeLibLoader -sun/security/action/LoadLibraryAction -java/awt/GraphicsEnvironment -java/awt/GraphicsEnvironment$1 -java/lang/ProcessEnvironment -java/lang/ProcessEnvironment$Variable -java/lang/ProcessEnvironment$ExternalData -java/lang/ProcessEnvironment$Value -java/lang/ProcessEnvironment$StringEnvironment -java/util/Collections$UnmodifiableMap -java/awt/Toolkit -java/awt/Toolkit$3 -sun/util/CoreResourceBundleControl -java/util/ResourceBundle$Control -java/util/Arrays$ArrayList -java/util/Collections$UnmodifiableRandomAccessList -java/util/Collections$UnmodifiableList -java/util/Collections$UnmodifiableCollection +java/util/PropertyResourceBundle +java/util/Queue +java/util/Random +java/util/RandomAccess java/util/ResourceBundle java/util/ResourceBundle$1 +java/util/ResourceBundle$BundleReference +java/util/ResourceBundle$CacheKey +java/util/ResourceBundle$CacheKeyReference +java/util/ResourceBundle$Control +java/util/ResourceBundle$Control$1 +java/util/ResourceBundle$Control$CandidateListCache +java/util/ResourceBundle$LoaderReference java/util/ResourceBundle$RBClassLoader java/util/ResourceBundle$RBClassLoader$1 -java/util/ResourceBundle$CacheKey -java/util/ResourceBundle$LoaderReference -java/util/ResourceBundle$CacheKeyReference java/util/ResourceBundle$SingleFormatControl -sun/awt/resources/awt -java/util/ListResourceBundle -java/awt/Toolkit$1 -java/io/FileNotFoundException -java/io/IOException -java/awt/event/KeyEvent -java/awt/event/InputEvent -java/awt/event/ComponentEvent -java/awt/AWTEvent -java/awt/event/NativeLibLoader +java/util/ServiceLoader +java/util/ServiceLoader$1 +java/util/ServiceLoader$LazyIterator +java/util/Set +java/util/SortedMap +java/util/Stack +java/util/StringTokenizer +java/util/TimSort +java/util/TimeZone +java/util/TimeZone$1 +java/util/TreeMap +java/util/TreeMap$Entry +java/util/Vector +java/util/Vector$1 +java/util/Vector$Itr +java/util/Vector$ListItr java/util/WeakHashMap java/util/WeakHashMap$Entry -java/awt/Component$DummyRequestFocusController -sun/awt/RequestFocusController -java/awt/LayoutManager -java/awt/LightweightDispatcher -java/awt/event/AWTEventListener -java/util/EventListener -java/awt/Dimension -java/awt/geom/Dimension2D +java/util/WeakHashMap$KeySet +java/util/concurrent/AbstractExecutorService +java/util/concurrent/BlockingQueue +java/util/concurrent/ConcurrentHashMap +java/util/concurrent/ConcurrentHashMap$BaseIterator +java/util/concurrent/ConcurrentHashMap$CollectionView +java/util/concurrent/ConcurrentHashMap$CounterCell +java/util/concurrent/ConcurrentHashMap$EntrySetView +java/util/concurrent/ConcurrentHashMap$ForwardingNode +java/util/concurrent/ConcurrentHashMap$KeyIterator +java/util/concurrent/ConcurrentHashMap$KeySetView +java/util/concurrent/ConcurrentHashMap$Node +java/util/concurrent/ConcurrentHashMap$Segment +java/util/concurrent/ConcurrentHashMap$Traverser +java/util/concurrent/ConcurrentHashMap$ValueIterator +java/util/concurrent/ConcurrentHashMap$ValuesView +java/util/concurrent/ConcurrentMap +java/util/concurrent/CopyOnWriteArrayList +java/util/concurrent/DelayQueue +java/util/concurrent/Delayed +java/util/concurrent/Executor +java/util/concurrent/ExecutorService +java/util/concurrent/Executors +java/util/concurrent/RejectedExecutionHandler +java/util/concurrent/SynchronousQueue +java/util/concurrent/SynchronousQueue$TransferStack +java/util/concurrent/SynchronousQueue$TransferStack$SNode +java/util/concurrent/SynchronousQueue$Transferer +java/util/concurrent/ThreadFactory +java/util/concurrent/ThreadPoolExecutor +java/util/concurrent/ThreadPoolExecutor$AbortPolicy +java/util/concurrent/ThreadPoolExecutor$Worker +java/util/concurrent/TimeUnit +java/util/concurrent/TimeUnit$1 +java/util/concurrent/TimeUnit$2 +java/util/concurrent/TimeUnit$3 +java/util/concurrent/TimeUnit$4 +java/util/concurrent/TimeUnit$5 +java/util/concurrent/TimeUnit$6 +java/util/concurrent/TimeUnit$7 java/util/concurrent/atomic/AtomicBoolean -java/awt/ComponentOrientation -java/awt/Component$2 -java/lang/NoSuchMethodException -sun/awt/AppContext -sun/awt/AppContext$1 -sun/awt/AppContext$2 -sun/awt/MostRecentKeyValue -java/awt/Cursor -sun/awt/X11GraphicsEnvironment -sun/java2d/SunGraphicsEnvironment -sun/java2d/FontSupport -sun/awt/DisplayChangedListener -java/io/FilenameFilter -sun/awt/X11GraphicsEnvironment$1 -sun/awt/SunToolkit -sun/awt/WindowClosingSupport -sun/awt/WindowClosingListener -sun/awt/ComponentFactory -sun/awt/InputMethodSupport +java/util/concurrent/atomic/AtomicInteger +java/util/concurrent/atomic/AtomicLong +java/util/concurrent/atomic/AtomicMarkableReference +java/util/concurrent/atomic/AtomicMarkableReference$Pair +java/util/concurrent/atomic/AtomicReferenceFieldUpdater +java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl +java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1 +java/util/concurrent/locks/AbstractOwnableSynchronizer +java/util/concurrent/locks/AbstractQueuedSynchronizer java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject +java/util/concurrent/locks/AbstractQueuedSynchronizer$Node java/util/concurrent/locks/Condition -sun/awt/AWTAutoShutdown -sun/awt/SunToolkit$6 -java/awt/Dialog$ModalExclusionType -java/lang/Enum -java/awt/Dialog -java/awt/Dialog$ModalityType -java/awt/ModalEventFilter -java/awt/EventFilter -sun/reflect/UnsafeFieldAccessorFactory -sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl -sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl -sun/awt/SunDisplayChanger -sun/java2d/SunGraphicsEnvironment$1 -java/io/StreamTokenizer -sun/font/FontManager -sun/font/FileFont -sun/font/PhysicalFont -sun/font/Font2D -sun/font/CompositeFont -java/util/HashMap$Values -java/util/HashMap$ValueIterator -java/util/HashMap$HashIterator -java/awt/Font -java/awt/geom/AffineTransform -sun/font/AttributeValues -sun/font/EAttribute -java/text/AttributedCharacterIterator$Attribute -java/lang/Class$4 -sun/reflect/NativeMethodAccessorImpl -sun/reflect/DelegatingMethodAccessorImpl -java/awt/font/TextAttribute -java/lang/Integer$IntegerCache -sun/font/TrueTypeFont -java/awt/font/FontRenderContext -java/awt/RenderingHints -sun/awt/SunHints -sun/awt/SunHints$Key -java/awt/RenderingHints$Key -sun/awt/SunHints$Value -sun/awt/SunHints$LCDContrastKey -sun/font/Type1Font -java/awt/geom/Point2D$Float -java/awt/geom/Point2D -sun/font/StrikeMetrics -java/awt/geom/Rectangle2D$Float -java/awt/geom/Rectangle2D -java/awt/geom/RectangularShape -java/awt/Shape -java/awt/geom/GeneralPath -java/awt/geom/Path2D$Float -java/awt/geom/Path2D -sun/font/CharToGlyphMapper -sun/font/PhysicalStrike -sun/font/FontStrike -sun/font/GlyphList -sun/font/StrikeCache -sun/java2d/Disposer -sun/java2d/Disposer$1 -sun/font/StrikeCache$1 -sun/awt/motif/MFontConfiguration -sun/awt/FontConfiguration -sun/awt/FontDescriptor -java/util/Scanner -java/util/regex/Pattern -java/util/regex/Pattern$Node -java/util/regex/Pattern$LastNode -java/util/regex/Pattern$GroupHead -java/util/regex/Pattern$CharPropertyNames -java/util/regex/Pattern$CharPropertyNames$1 -java/util/regex/Pattern$CharPropertyNames$CharPropertyFactory -java/util/regex/Pattern$CharPropertyNames$2 -java/util/regex/Pattern$CharPropertyNames$5 -java/util/regex/Pattern$CharPropertyNames$3 -java/util/regex/Pattern$CharPropertyNames$6 -java/util/regex/Pattern$CharPropertyNames$CloneableProperty -java/util/regex/Pattern$CharProperty -java/util/regex/Pattern$CharPropertyNames$4 -java/util/regex/Pattern$CharPropertyNames$7 -java/util/regex/Pattern$CharPropertyNames$8 -java/util/regex/Pattern$CharPropertyNames$9 -java/util/regex/Pattern$CharPropertyNames$10 -java/util/regex/Pattern$CharPropertyNames$11 -java/util/regex/Pattern$CharPropertyNames$12 -java/util/regex/Pattern$CharPropertyNames$13 -java/util/regex/Pattern$CharPropertyNames$14 -java/util/regex/Pattern$CharPropertyNames$15 -java/util/regex/Pattern$CharPropertyNames$16 -java/util/regex/Pattern$CharPropertyNames$17 -java/util/regex/Pattern$CharPropertyNames$18 -java/util/regex/Pattern$CharPropertyNames$19 -java/util/regex/Pattern$CharPropertyNames$20 -java/util/regex/Pattern$CharPropertyNames$21 -java/util/regex/Pattern$Curly -java/util/regex/Pattern$Slice -java/util/regex/Pattern$Begin -java/util/regex/Pattern$First -java/util/regex/Pattern$Start -java/util/regex/Pattern$TreeInfo -java/util/regex/Pattern$All -java/util/regex/Pattern$BitClass -java/util/regex/Pattern$BmpCharProperty -java/util/regex/Pattern$6 -java/util/regex/Pattern$CharProperty$1 -sun/nio/ch/FileChannelImpl -java/nio/channels/FileChannel -java/nio/channels/ByteChannel -java/nio/channels/ReadableByteChannel -java/nio/channels/Channel -java/nio/channels/WritableByteChannel -java/nio/channels/GatheringByteChannel -java/nio/channels/ScatteringByteChannel -java/nio/channels/spi/AbstractInterruptibleChannel -java/nio/channels/InterruptibleChannel -sun/nio/ch/Util -sun/nio/ch/IOUtil -sun/nio/ch/FileDispatcher -sun/nio/ch/NativeDispatcher -sun/nio/ch/Reflect -java/nio/MappedByteBuffer -sun/nio/ch/Reflect$1 -sun/nio/ch/NativeThreadSet -java/nio/channels/Channels -java/util/Scanner$1 -sun/misc/LRUCache -java/util/regex/Matcher -java/util/regex/MatchResult -java/text/NumberFormat -java/text/Format -java/text/spi/NumberFormatProvider -java/util/spi/LocaleServiceProvider -sun/util/LocaleServiceProviderPool -sun/util/LocaleServiceProviderPool$1 -java/util/ServiceLoader -java/util/ServiceLoader$LazyIterator -java/util/ServiceLoader$1 -java/util/HashMap$EntrySet -java/util/LinkedHashMap$EntryIterator -sun/misc/Launcher$1 -sun/misc/URLClassPath$2 -java/lang/ClassLoader$2 -sun/misc/URLClassPath$1 -java/net/URLClassLoader$3 -sun/misc/CompoundEnumeration -sun/misc/URLClassPath$JarLoader$1 -sun/misc/FileURLMapper -java/net/URLClassLoader$3$1 -sun/util/resources/LocaleData -sun/util/resources/LocaleData$1 -sun/util/resources/LocaleData$LocaleDataResourceBundleControl -sun/util/LocaleDataMetaInfo -sun/text/resources/FormatData -java/util/ResourceBundle$BundleReference -sun/text/resources/FormatData_en -sun/text/resources/FormatData_en_US -java/text/DecimalFormatSymbols -java/text/spi/DecimalFormatSymbolsProvider -java/util/Currency -java/util/Currency$1 +java/util/concurrent/locks/Lock +java/util/concurrent/locks/LockSupport +java/util/concurrent/locks/ReentrantLock +java/util/concurrent/locks/ReentrantLock$NonfairSync +java/util/concurrent/locks/ReentrantLock$Sync +java/util/function/BiFunction +java/util/jar/Attributes +java/util/jar/Attributes$Name +java/util/jar/JarEntry +java/util/jar/JarFile +java/util/jar/JarFile$JarEntryIterator +java/util/jar/JarFile$JarFileEntry +java/util/jar/JarVerifier +java/util/jar/JarVerifier$3 +java/util/jar/JavaUtilJarAccessImpl +java/util/jar/Manifest +java/util/jar/Manifest$FastInputStream +java/util/logging/Handler +java/util/logging/Level +java/util/logging/Level$KnownLevel +java/util/logging/LogManager +java/util/logging/LogManager$1 +java/util/logging/LogManager$2 +java/util/logging/LogManager$3 +java/util/logging/LogManager$5 +java/util/logging/LogManager$Cleaner +java/util/logging/LogManager$LogNode +java/util/logging/LogManager$LoggerContext +java/util/logging/LogManager$LoggerContext$1 +java/util/logging/LogManager$LoggerWeakRef +java/util/logging/LogManager$RootLogger +java/util/logging/LogManager$SystemLoggerContext +java/util/logging/Logger +java/util/logging/Logger$1 +java/util/logging/LoggingPermission +java/util/logging/LoggingProxyImpl +java/util/spi/CalendarDataProvider java/util/spi/CurrencyNameProvider -sun/util/resources/CurrencyNames -sun/util/resources/LocaleNamesBundle -sun/util/resources/OpenListResourceBundle -sun/util/resources/CurrencyNames_en_US -java/text/DecimalFormat -java/text/FieldPosition -java/text/DigitList -java/math/RoundingMode -java/util/regex/Pattern$GroupTail -java/util/regex/Pattern$Ctype -java/util/regex/Pattern$Ques -java/util/regex/Pattern$GroupCurly -java/util/regex/Pattern$5 -java/util/regex/Pattern$Loop -java/util/regex/Pattern$Prolog -java/util/regex/Pattern$BranchConn -java/util/regex/Pattern$Branch -java/nio/channels/spi/AbstractInterruptibleChannel$1 -sun/nio/ch/Interruptible -sun/nio/ch/NativeThread -sun/nio/ch/DirectBuffer -java/nio/DirectByteBuffer -java/nio/DirectByteBuffer$Deallocator -sun/misc/Cleaner -sun/nio/ch/IOStatus -java/util/regex/ASCII -java/io/DataInputStream -java/io/DataInput -java/lang/Short$ShortCache -java/util/HashMap$KeyIterator -sun/font/CompositeFontDescriptor -sun/font/Font2DHandle -sun/font/FontFamily -java/awt/GraphicsDevice -sun/awt/X11GraphicsDevice -sun/awt/X11GraphicsConfig -java/awt/GraphicsConfiguration -java/awt/ImageCapabilities -sun/java2d/x11/X11SurfaceData -sun/java2d/SurfaceData -java/awt/Transparency -sun/java2d/DisposerTarget -sun/java2d/InvalidPipeException -java/lang/IllegalStateException -sun/java2d/NullSurfaceData -sun/java2d/loops/SurfaceType -sun/awt/image/PixelConverter -sun/awt/image/PixelConverter$Xrgb -sun/awt/image/PixelConverter$Argb -sun/awt/image/PixelConverter$ArgbPre -sun/awt/image/PixelConverter$Xbgr -sun/awt/image/PixelConverter$Rgba -sun/awt/image/PixelConverter$RgbaPre -sun/awt/image/PixelConverter$Ushort565Rgb -sun/awt/image/PixelConverter$Ushort555Rgb -sun/awt/image/PixelConverter$Ushort555Rgbx -sun/awt/image/PixelConverter$Ushort4444Argb -sun/awt/image/PixelConverter$ByteGray -sun/awt/image/PixelConverter$UshortGray -sun/awt/image/PixelConverter$Rgbx -sun/awt/image/PixelConverter$Bgrx -sun/awt/image/PixelConverter$ArgbBm -java/awt/image/ColorModel -java/awt/image/DirectColorModel -java/awt/image/PackedColorModel -java/awt/color/ColorSpace -java/awt/color/ICC_Profile -java/awt/color/ICC_ProfileRGB -java/awt/color/ICC_Profile$1 -java/awt/color/ICC_ColorSpace -sun/java2d/pipe/NullPipe -sun/java2d/pipe/PixelDrawPipe -sun/java2d/pipe/PixelFillPipe -sun/java2d/pipe/ShapeDrawPipe -sun/java2d/pipe/TextPipe -sun/java2d/pipe/DrawImagePipe -java/awt/image/IndexColorModel -sun/java2d/pipe/LoopPipe -sun/java2d/pipe/OutlineTextRenderer -sun/java2d/pipe/SolidTextRenderer -sun/java2d/pipe/GlyphListLoopPipe -sun/java2d/pipe/GlyphListPipe -sun/java2d/pipe/AATextRenderer -sun/java2d/pipe/LCDTextRenderer -sun/java2d/pipe/AlphaColorPipe -sun/java2d/pipe/CompositePipe -sun/java2d/pipe/PixelToShapeConverter -sun/java2d/pipe/TextRenderer -sun/java2d/pipe/SpanClipRenderer -sun/java2d/pipe/Region -sun/java2d/pipe/RegionIterator -sun/java2d/pipe/AlphaPaintPipe -sun/java2d/pipe/SpanShapeRenderer$Composite -sun/java2d/pipe/SpanShapeRenderer -sun/java2d/pipe/GeneralCompositePipe -sun/java2d/pipe/DrawImage -sun/java2d/loops/RenderCache -sun/java2d/loops/RenderCache$Entry -sun/java2d/loops/XORComposite -java/awt/Composite -sun/font/X11TextRenderer -sun/java2d/loops/GraphicsPrimitive -sun/java2d/x11/X11PMBlitLoops -sun/java2d/loops/Blit -sun/java2d/loops/GraphicsPrimitiveMgr -sun/java2d/loops/CompositeType -sun/java2d/SunGraphics2D -sun/awt/ConstrainableGraphics -java/awt/Graphics2D -java/awt/Graphics -java/awt/Color -java/awt/Paint -java/awt/AlphaComposite -sun/java2d/loops/BlitBg -sun/java2d/loops/ScaledBlit -sun/java2d/loops/FillRect -sun/java2d/loops/FillSpans -sun/java2d/loops/DrawLine -sun/java2d/loops/DrawRect -sun/java2d/loops/DrawPolygons -sun/java2d/loops/DrawPath -sun/java2d/loops/FillPath -sun/java2d/loops/MaskBlit -sun/java2d/loops/MaskFill -sun/java2d/loops/DrawGlyphList -sun/java2d/loops/DrawGlyphListAA -sun/java2d/loops/DrawGlyphListLCD -sun/java2d/loops/TransformHelper -java/awt/BasicStroke -java/awt/Stroke -sun/misc/PerformanceLogger -sun/misc/PerformanceLogger$TimeData -sun/java2d/pipe/ValidatePipe -sun/java2d/loops/CustomComponent -sun/java2d/loops/GraphicsPrimitiveProxy -sun/java2d/loops/GeneralRenderer -sun/java2d/loops/GraphicsPrimitiveMgr$1 -sun/java2d/loops/GraphicsPrimitiveMgr$2 -sun/java2d/x11/X11PMBlitLoops$DelegateBlitLoop -sun/java2d/x11/X11PMBlitBgLoops -sun/java2d/x11/X11SurfaceData$LazyPipe -sun/awt/X11GraphicsConfig$X11GCDisposerRecord -sun/java2d/DisposerRecord -java/awt/BorderLayout -java/awt/LayoutManager2 -java/awt/Rectangle -java/awt/Toolkit$2 -sun/awt/X11/XToolkit -sun/awt/X11/XConstants -sun/awt/UNIXToolkit -java/util/TreeMap -java/util/NavigableMap -java/util/SortedMap -sun/awt/X11/XlibWrapper -sun/awt/X11/XUtilConstants -sun/awt/X11/XProtocolConstants -sun/awt/X11/XCursorFontConstants -sun/awt/X11/XlibWrapper$1 -sun/awt/X11/XToolkit$4 -sun/awt/X11/XModifierKeymap -sun/awt/X11/XWrapperBase -sun/awt/X11/Native -sun/awt/X11/Native$1 -java/awt/EventQueue -java/util/EmptyStackException -java/lang/reflect/InvocationTargetException -java/awt/EventDispatchThread -java/awt/event/PaintEvent -java/awt/event/MouseEvent -sun/awt/PeerEvent -java/awt/event/InvocationEvent -java/awt/ActiveEvent -sun/awt/X11/XToolkit$1 -sun/awt/X11/XEventDispatcher -sun/awt/SunToolkit$ModalityListenerList -sun/awt/ModalityListener -sun/awt/SunToolkit$1 -java/util/MissingResourceException -java/awt/Queue -sun/awt/PostEventQueue -java/util/LinkedList -java/util/Deque -java/util/Queue -java/util/AbstractSequentialList -sun/awt/X11/AwtScreenData -sun/awt/X11/XWM -sun/awt/X11/MWMConstants -sun/awt/X11/XAtom -java/awt/Insets -sun/awt/X11/XWM$1 -sun/awt/X11/XSetWindowAttributes -sun/awt/X11/XErrorEvent -sun/awt/X11/XNETProtocol -sun/awt/X11/XStateProtocol -sun/awt/X11/XLayerProtocol -sun/awt/X11/XProtocol -sun/awt/X11/WindowPropertyGetter -sun/awt/X11/UnsafeXDisposerRecord -sun/awt/X11/XPropertyCache -sun/awt/X11/XWINProtocol -sun/awt/X11/XAtomList -sun/awt/X11/XToolkit$3 -sun/awt/X11/XAnyEvent -java/awt/Window$WindowDisposerRecord -java/awt/KeyboardFocusManager -java/awt/KeyEventDispatcher -java/awt/KeyEventPostProcessor -java/awt/AWTKeyStroke -java/awt/AWTKeyStroke$1 -java/awt/DefaultKeyboardFocusManager -java/awt/DefaultFocusTraversalPolicy -java/awt/ContainerOrderFocusTraversalPolicy -java/awt/FocusTraversalPolicy -java/util/Collections$UnmodifiableSet -sun/awt/HeadlessToolkit -sun/awt/X11/XKeyboardFocusManagerPeer -java/awt/peer/KeyboardFocusManagerPeer -sun/awt/X11/XKeyboardFocusManagerPeer$1 -sun/awt/X11/XFramePeer -java/awt/peer/FramePeer -java/awt/peer/WindowPeer -java/awt/peer/ContainerPeer -java/awt/peer/ComponentPeer -sun/awt/X11/XDecoratedPeer -sun/awt/X11/XWindowPeer -sun/awt/X11/XPanelPeer -java/awt/peer/PanelPeer -sun/awt/X11/XCanvasPeer -java/awt/peer/CanvasPeer -sun/awt/X11/XComponentPeer -java/awt/dnd/peer/DropTargetPeer -sun/awt/X11/XWindow -sun/awt/X11ComponentPeer -sun/awt/X11/XBaseWindow -sun/awt/X11/XCreateWindowParams -java/lang/Long$LongCache -sun/awt/X11/XBaseWindow$InitialiseState -sun/awt/X11/XBaseWindow$StateLock -sun/awt/X11/AwtGraphicsConfigData -sun/awt/X11/XVisualInfo -java/awt/SystemColor -sun/awt/X11/MotifColorUtilities -java/lang/StrictMath -sun/awt/X11/XRepaintArea -sun/awt/RepaintArea -sun/awt/X11/XWindowAttributesData -java/util/concurrent/locks/LockSupport -sun/awt/X11/WindowDimensions -java/awt/Point -java/util/TreeMap$Entry -sun/nio/cs/UTF_8 -sun/nio/cs/Unicode -sun/nio/cs/UTF_8$Encoder -sun/nio/cs/UTF_8$Decoder -sun/nio/cs/Surrogate$Generator -sun/awt/X11/XPropertyEvent -sun/awt/X11/XDropTargetEventProcessor -sun/awt/X11/XDragSourceContextPeer -sun/awt/X11/XDragSourceProtocolListener -sun/awt/dnd/SunDragSourceContextPeer -java/awt/dnd/peer/DragSourceContextPeer -sun/awt/X11/XAwtState -sun/awt/X11/XBaseWindow$1 -sun/awt/X11/XRootWindow -sun/nio/cs/ISO_8859_1 -sun/nio/cs/ISO_8859_1$Encoder -sun/nio/cs/ISO_8859_1$Decoder -sun/java2d/x11/X11SurfaceData$X11WindowSurfaceData -sun/java2d/loops/RenderLoops -sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec -sun/java2d/DefaultDisposerRecord -sun/java2d/x11/X11Renderer -sun/awt/X11/XGlobalCursorManager -sun/awt/GlobalCursorManager -java/awt/Cursor$CursorDisposer -java/awt/AWTException -java/awt/HeadlessException -java/lang/UnsupportedOperationException -sun/reflect/UnsafeLongFieldAccessorImpl -sun/reflect/UnsafeIntegerFieldAccessorImpl -sun/awt/X11/XClientMessageEvent -sun/awt/X11/XIconInfo -sun/awt/X11/XAWTIcon32_java_icon16_png -sun/awt/X11/XAWTIcon32_java_icon24_png -sun/awt/X11/XAWTIcon32_java_icon32_png -sun/awt/X11/XAWTIcon32_java_icon48_png -sun/awt/X11/XSizeHints -sun/awt/X11/XContentWindow -sun/awt/X11/XFocusProxyWindow -sun/awt/X11/XWMHints -java/util/LinkedList$ListItr -java/util/ListIterator -sun/awt/SunToolkit$2 -java/awt/image/BufferStrategy -java/awt/dnd/DropTarget -java/awt/dnd/DropTargetListener -java/awt/event/ComponentListener -java/awt/event/FocusListener -java/awt/event/HierarchyListener -java/awt/event/HierarchyBoundsListener -java/awt/event/KeyListener -java/awt/event/MouseListener -java/awt/event/MouseMotionListener -java/awt/event/MouseWheelListener -java/awt/event/InputMethodListener -java/awt/event/ContainerListener +java/util/spi/LocaleNameProvider +java/util/spi/LocaleServiceProvider +java/util/spi/ResourceBundleControlProvider +java/util/spi/TimeZoneNameProvider +java/util/zip/CRC32 +java/util/zip/Checksum +java/util/zip/DeflaterOutputStream +java/util/zip/GZIPInputStream +java/util/zip/Inflater +java/util/zip/InflaterInputStream +java/util/zip/ZStreamRef +java/util/zip/ZipCoder +java/util/zip/ZipConstants +java/util/zip/ZipEntry +java/util/zip/ZipFile +java/util/zip/ZipFile$1 +java/util/zip/ZipFile$ZipEntryIterator +java/util/zip/ZipFile$ZipFileInflaterInputStream +java/util/zip/ZipFile$ZipFileInputStream +java/util/zip/ZipInputStream +java/util/zip/ZipUtils +javax/accessibility/Accessible +javax/accessibility/AccessibleAction +javax/accessibility/AccessibleBundle +javax/accessibility/AccessibleComponent javax/accessibility/AccessibleContext -sun/reflect/UnsafeObjectFieldAccessorImpl -java/awt/peer/LightweightPeer -sun/awt/X11/XLabelPeer -java/awt/peer/LabelPeer -sun/awt/X11/XMapEvent -sun/awt/X11/XQueryTree -sun/awt/X11/XConfigureEvent -sun/awt/X11/PropMwmHints -sun/awt/GlobalCursorManager$NativeUpdater -javax/swing/JFrame -javax/swing/WindowConstants -javax/swing/RootPaneContainer -javax/swing/TransferHandler$HasGetTransferHandler -javax/swing/JLabel -javax/swing/SwingConstants +javax/accessibility/AccessibleExtendedComponent +javax/accessibility/AccessibleRelationSet +javax/accessibility/AccessibleState +javax/accessibility/AccessibleText +javax/accessibility/AccessibleValue +javax/security/auth/Destroyable +javax/sound/sampled/Control$Type +javax/sound/sampled/DataLine +javax/sound/sampled/DataLine$Info +javax/sound/sampled/FloatControl$Type +javax/sound/sampled/Line +javax/sound/sampled/Line$Info +javax/sound/sampled/LineUnavailableException +javax/sound/sampled/UnsupportedAudioFileException +javax/swing/AbstractAction +javax/swing/AbstractButton +javax/swing/AbstractButton$AccessibleAbstractButton +javax/swing/AbstractButton$Handler +javax/swing/AbstractCellEditor +javax/swing/AbstractListModel +javax/swing/Action +javax/swing/ActionMap +javax/swing/AncestorNotifier +javax/swing/ArrayTable +javax/swing/BorderFactory +javax/swing/BoundedRangeModel +javax/swing/Box +javax/swing/Box$Filler +javax/swing/BoxLayout +javax/swing/BufferStrategyPaintManager +javax/swing/BufferStrategyPaintManager$BufferInfo +javax/swing/ButtonGroup +javax/swing/ButtonModel +javax/swing/CellEditor +javax/swing/CellRendererPane +javax/swing/ClientPropertyKey +javax/swing/ClientPropertyKey$1 +javax/swing/ComboBoxEditor +javax/swing/ComboBoxModel +javax/swing/ComponentInputMap +javax/swing/DefaultBoundedRangeModel +javax/swing/DefaultButtonModel +javax/swing/DefaultCellEditor +javax/swing/DefaultCellEditor$1 +javax/swing/DefaultCellEditor$EditorDelegate +javax/swing/DefaultComboBoxModel +javax/swing/DefaultListCellRenderer +javax/swing/DefaultListCellRenderer$UIResource +javax/swing/DefaultListModel +javax/swing/DefaultListSelectionModel +javax/swing/DefaultSingleSelectionModel +javax/swing/DropMode +javax/swing/FocusManager +javax/swing/GrayFilter +javax/swing/Icon +javax/swing/ImageIcon +javax/swing/ImageIcon$1 +javax/swing/ImageIcon$2 +javax/swing/ImageIcon$2$1 +javax/swing/ImageIcon$3 +javax/swing/InputMap +javax/swing/InternalFrameFocusTraversalPolicy +javax/swing/JButton +javax/swing/JCheckBox +javax/swing/JCheckBoxMenuItem +javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem +javax/swing/JComboBox +javax/swing/JComboBox$1 +javax/swing/JComboBox$KeySelectionManager javax/swing/JComponent javax/swing/JComponent$1 -javax/swing/SwingUtilities -javax/swing/JRootPane -sun/security/action/GetBooleanAction -javax/swing/event/EventListenerList +javax/swing/JComponent$2 +javax/swing/JComponent$AccessibleJComponent +javax/swing/JDialog +javax/swing/JEditorPane +javax/swing/JFrame +javax/swing/JInternalFrame +javax/swing/JLabel +javax/swing/JLayer +javax/swing/JLayeredPane +javax/swing/JList +javax/swing/JList$3 +javax/swing/JList$ListSelectionHandler +javax/swing/JMenu +javax/swing/JMenu$MenuChangeListener +javax/swing/JMenu$WinListener +javax/swing/JMenuBar +javax/swing/JMenuItem +javax/swing/JMenuItem$AccessibleJMenuItem +javax/swing/JMenuItem$MenuItemFocusListener javax/swing/JPanel -java/awt/FlowLayout -javax/swing/UIManager -javax/swing/UIManager$LookAndFeelInfo -sun/swing/SwingUtilities2 -sun/swing/SwingUtilities2$LSBCacheEntry -javax/swing/UIManager$LAFState +javax/swing/JPopupMenu +javax/swing/JPopupMenu$Separator +javax/swing/JProgressBar +javax/swing/JProgressBar$ModelListener +javax/swing/JRadioButton +javax/swing/JRadioButtonMenuItem +javax/swing/JRootPane +javax/swing/JRootPane$1 +javax/swing/JRootPane$RootLayout +javax/swing/JScrollBar +javax/swing/JScrollBar$ModelListener +javax/swing/JScrollPane +javax/swing/JScrollPane$ScrollBar +javax/swing/JSeparator +javax/swing/JSlider +javax/swing/JSlider$ModelListener +javax/swing/JSplitPane +javax/swing/JTabbedPane +javax/swing/JTabbedPane$ModelListener +javax/swing/JTabbedPane$Page +javax/swing/JTable +javax/swing/JTable$2 +javax/swing/JTable$5 +javax/swing/JTable$Resizable2 +javax/swing/JTable$Resizable3 +javax/swing/JTextArea +javax/swing/JTextField +javax/swing/JTextField$NotifyAction +javax/swing/JTextField$ScrollRepainter +javax/swing/JToggleButton +javax/swing/JToggleButton$ToggleButtonModel +javax/swing/JToolBar +javax/swing/JToolBar$DefaultToolBarLayout +javax/swing/JToolBar$Separator +javax/swing/JToolTip +javax/swing/JTree +javax/swing/JTree$TreeModelHandler +javax/swing/JTree$TreeSelectionRedirector +javax/swing/JViewport +javax/swing/JViewport$ViewListener +javax/swing/JWindow +javax/swing/KeyStroke +javax/swing/KeyboardManager +javax/swing/KeyboardManager$ComponentKeyStrokePair +javax/swing/LayoutComparator +javax/swing/LayoutFocusTraversalPolicy +javax/swing/ListCellRenderer +javax/swing/ListModel +javax/swing/ListSelectionModel +javax/swing/LookAndFeel +javax/swing/MenuElement +javax/swing/MenuSelectionManager +javax/swing/MultiUIDefaults +javax/swing/MutableComboBoxModel +javax/swing/RepaintManager +javax/swing/RepaintManager$2 +javax/swing/RepaintManager$3 +javax/swing/RepaintManager$DisplayChangedHandler +javax/swing/RepaintManager$PaintManager +javax/swing/RepaintManager$ProcessingRunnable +javax/swing/RootPaneContainer +javax/swing/ScrollPaneConstants +javax/swing/ScrollPaneLayout +javax/swing/ScrollPaneLayout$UIResource +javax/swing/Scrollable +javax/swing/SingleSelectionModel +javax/swing/SizeRequirements +javax/swing/SortingFocusTraversalPolicy +javax/swing/SwingConstants +javax/swing/SwingContainerOrderFocusTraversalPolicy +javax/swing/SwingDefaultFocusTraversalPolicy +javax/swing/SwingPaintEventDispatcher +javax/swing/SwingUtilities +javax/swing/SwingUtilities$SharedOwnerFrame +javax/swing/Timer +javax/swing/Timer$DoPostEvent +javax/swing/TimerQueue +javax/swing/TimerQueue$1 +javax/swing/TimerQueue$DelayedTimer +javax/swing/ToolTipManager +javax/swing/ToolTipManager$AccessibilityKeyListener +javax/swing/ToolTipManager$MoveBeforeEnterListener +javax/swing/ToolTipManager$insideTimerAction +javax/swing/ToolTipManager$outsideTimerAction +javax/swing/ToolTipManager$stillInsideTimerAction +javax/swing/TransferHandler +javax/swing/TransferHandler$DropHandler +javax/swing/TransferHandler$HasGetTransferHandler +javax/swing/TransferHandler$SwingDropTarget +javax/swing/TransferHandler$TransferAction +javax/swing/TransferHandler$TransferSupport javax/swing/UIDefaults -javax/swing/MultiUIDefaults +javax/swing/UIDefaults$ActiveValue +javax/swing/UIDefaults$LazyInputMap +javax/swing/UIDefaults$LazyValue +javax/swing/UIDefaults$TextAndMnemonicHashMap +javax/swing/UIManager javax/swing/UIManager$1 -javax/swing/plaf/metal/MetalLookAndFeel +javax/swing/UIManager$2 +javax/swing/UIManager$LAFState +javax/swing/UIManager$LookAndFeelInfo +javax/swing/UnsupportedLookAndFeelException +javax/swing/ViewportLayout +javax/swing/WindowConstants +javax/swing/border/AbstractBorder +javax/swing/border/BevelBorder +javax/swing/border/Border +javax/swing/border/CompoundBorder +javax/swing/border/EmptyBorder +javax/swing/border/EtchedBorder +javax/swing/border/LineBorder +javax/swing/border/MatteBorder +javax/swing/border/TitledBorder +javax/swing/event/AncestorEvent +javax/swing/event/AncestorListener +javax/swing/event/CaretEvent +javax/swing/event/CaretListener +javax/swing/event/CellEditorListener +javax/swing/event/ChangeEvent +javax/swing/event/ChangeListener +javax/swing/event/DocumentEvent +javax/swing/event/DocumentEvent$ElementChange +javax/swing/event/DocumentEvent$EventType +javax/swing/event/DocumentListener +javax/swing/event/EventListenerList +javax/swing/event/ListDataEvent +javax/swing/event/ListDataListener +javax/swing/event/ListSelectionEvent +javax/swing/event/ListSelectionListener +javax/swing/event/MenuDragMouseListener +javax/swing/event/MenuEvent +javax/swing/event/MenuKeyListener +javax/swing/event/MenuListener +javax/swing/event/MouseInputAdapter +javax/swing/event/MouseInputListener +javax/swing/event/PopupMenuListener +javax/swing/event/RowSorterListener +javax/swing/event/SwingPropertyChangeSupport +javax/swing/event/TableColumnModelEvent +javax/swing/event/TableColumnModelListener +javax/swing/event/TableModelEvent +javax/swing/event/TableModelListener +javax/swing/event/TreeExpansionListener +javax/swing/event/TreeModelEvent +javax/swing/event/TreeModelListener +javax/swing/event/TreeSelectionEvent +javax/swing/event/TreeSelectionListener +javax/swing/event/UndoableEditEvent +javax/swing/event/UndoableEditListener +javax/swing/filechooser/FileFilter +javax/swing/plaf/ActionMapUIResource +javax/swing/plaf/BorderUIResource +javax/swing/plaf/BorderUIResource$CompoundBorderUIResource +javax/swing/plaf/BorderUIResource$EmptyBorderUIResource +javax/swing/plaf/BorderUIResource$LineBorderUIResource +javax/swing/plaf/ButtonUI +javax/swing/plaf/ColorUIResource +javax/swing/plaf/ComboBoxUI +javax/swing/plaf/ComponentInputMapUIResource +javax/swing/plaf/ComponentUI +javax/swing/plaf/DimensionUIResource +javax/swing/plaf/FontUIResource +javax/swing/plaf/InputMapUIResource +javax/swing/plaf/InsetsUIResource +javax/swing/plaf/LabelUI +javax/swing/plaf/ListUI +javax/swing/plaf/MenuBarUI +javax/swing/plaf/MenuItemUI +javax/swing/plaf/PanelUI +javax/swing/plaf/PopupMenuUI +javax/swing/plaf/ProgressBarUI +javax/swing/plaf/RootPaneUI +javax/swing/plaf/ScrollBarUI +javax/swing/plaf/ScrollPaneUI +javax/swing/plaf/SeparatorUI +javax/swing/plaf/SliderUI +javax/swing/plaf/SplitPaneUI +javax/swing/plaf/TabbedPaneUI +javax/swing/plaf/TableHeaderUI +javax/swing/plaf/TableUI +javax/swing/plaf/TextUI +javax/swing/plaf/ToolBarUI +javax/swing/plaf/TreeUI +javax/swing/plaf/UIResource +javax/swing/plaf/ViewportUI +javax/swing/plaf/basic/BasicArrowButton +javax/swing/plaf/basic/BasicBorders +javax/swing/plaf/basic/BasicBorders$ButtonBorder +javax/swing/plaf/basic/BasicBorders$MarginBorder +javax/swing/plaf/basic/BasicBorders$RadioButtonBorder +javax/swing/plaf/basic/BasicBorders$RolloverMarginBorder +javax/swing/plaf/basic/BasicBorders$SplitPaneBorder +javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder +javax/swing/plaf/basic/BasicButtonListener +javax/swing/plaf/basic/BasicButtonUI +javax/swing/plaf/basic/BasicCheckBoxMenuItemUI +javax/swing/plaf/basic/BasicComboBoxEditor +javax/swing/plaf/basic/BasicComboBoxEditor$BorderlessTextField +javax/swing/plaf/basic/BasicComboBoxEditor$UIResource +javax/swing/plaf/basic/BasicComboBoxRenderer +javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource +javax/swing/plaf/basic/BasicComboBoxUI +javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager +javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager +javax/swing/plaf/basic/BasicComboBoxUI$Handler +javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler +javax/swing/plaf/basic/BasicComboPopup +javax/swing/plaf/basic/BasicComboPopup$1 +javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass +javax/swing/plaf/basic/BasicComboPopup$Handler +javax/swing/plaf/basic/BasicGraphicsUtils +javax/swing/plaf/basic/BasicHTML +javax/swing/plaf/basic/BasicLabelUI +javax/swing/plaf/basic/BasicListUI +javax/swing/plaf/basic/BasicListUI$Handler +javax/swing/plaf/basic/BasicListUI$ListTransferHandler javax/swing/plaf/basic/BasicLookAndFeel -javax/swing/LookAndFeel -sun/swing/DefaultLookup -javax/swing/plaf/metal/OceanTheme +javax/swing/plaf/basic/BasicLookAndFeel$1 +javax/swing/plaf/basic/BasicLookAndFeel$2 +javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper +javax/swing/plaf/basic/BasicMenuBarUI +javax/swing/plaf/basic/BasicMenuBarUI$Handler +javax/swing/plaf/basic/BasicMenuItemUI +javax/swing/plaf/basic/BasicMenuItemUI$Handler +javax/swing/plaf/basic/BasicMenuUI +javax/swing/plaf/basic/BasicMenuUI$Handler +javax/swing/plaf/basic/BasicPanelUI +javax/swing/plaf/basic/BasicPopupMenuUI +javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener +javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener +javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper +javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper$1 +javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber +javax/swing/plaf/basic/BasicProgressBarUI +javax/swing/plaf/basic/BasicProgressBarUI$Handler +javax/swing/plaf/basic/BasicRadioButtonMenuItemUI +javax/swing/plaf/basic/BasicRadioButtonUI +javax/swing/plaf/basic/BasicRootPaneUI +javax/swing/plaf/basic/BasicRootPaneUI$RootPaneInputMap +javax/swing/plaf/basic/BasicScrollBarUI +javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener +javax/swing/plaf/basic/BasicScrollBarUI$Handler +javax/swing/plaf/basic/BasicScrollBarUI$ModelListener +javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler +javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener +javax/swing/plaf/basic/BasicScrollBarUI$TrackListener +javax/swing/plaf/basic/BasicScrollPaneUI +javax/swing/plaf/basic/BasicScrollPaneUI$Handler +javax/swing/plaf/basic/BasicSeparatorUI +javax/swing/plaf/basic/BasicSliderUI +javax/swing/plaf/basic/BasicSliderUI$Actions +javax/swing/plaf/basic/BasicSliderUI$Handler +javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler +javax/swing/plaf/basic/BasicSliderUI$ScrollListener +javax/swing/plaf/basic/BasicSliderUI$TrackListener +javax/swing/plaf/basic/BasicSplitPaneDivider +javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout +javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler +javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchActionHandler +javax/swing/plaf/basic/BasicSplitPaneUI +javax/swing/plaf/basic/BasicSplitPaneUI$1 +javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager +javax/swing/plaf/basic/BasicSplitPaneUI$Handler +javax/swing/plaf/basic/BasicTabbedPaneUI +javax/swing/plaf/basic/BasicTabbedPaneUI$Handler +javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout +javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout +javax/swing/plaf/basic/BasicTableHeaderUI +javax/swing/plaf/basic/BasicTableHeaderUI$1 +javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler +javax/swing/plaf/basic/BasicTableUI +javax/swing/plaf/basic/BasicTableUI$Handler +javax/swing/plaf/basic/BasicTableUI$TableTransferHandler +javax/swing/plaf/basic/BasicTextAreaUI +javax/swing/plaf/basic/BasicTextFieldUI +javax/swing/plaf/basic/BasicTextUI +javax/swing/plaf/basic/BasicTextUI$BasicCaret +javax/swing/plaf/basic/BasicTextUI$BasicCursor +javax/swing/plaf/basic/BasicTextUI$BasicHighlighter +javax/swing/plaf/basic/BasicTextUI$DragListener +javax/swing/plaf/basic/BasicTextUI$FocusAction +javax/swing/plaf/basic/BasicTextUI$RootView +javax/swing/plaf/basic/BasicTextUI$TextActionWrapper +javax/swing/plaf/basic/BasicTextUI$TextTransferHandler +javax/swing/plaf/basic/BasicTextUI$UpdateHandler +javax/swing/plaf/basic/BasicToggleButtonUI +javax/swing/plaf/basic/BasicToolBarSeparatorUI +javax/swing/plaf/basic/BasicToolBarUI +javax/swing/plaf/basic/BasicToolBarUI$DockingListener +javax/swing/plaf/basic/BasicToolBarUI$Handler +javax/swing/plaf/basic/BasicTreeUI +javax/swing/plaf/basic/BasicTreeUI$Actions +javax/swing/plaf/basic/BasicTreeUI$Handler +javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler +javax/swing/plaf/basic/BasicTreeUI$TreeTransferHandler +javax/swing/plaf/basic/BasicViewportUI +javax/swing/plaf/basic/ComboPopup +javax/swing/plaf/basic/DefaultMenuLayout +javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag +javax/swing/plaf/basic/LazyActionMap javax/swing/plaf/metal/DefaultMetalTheme -javax/swing/plaf/metal/MetalTheme -javax/swing/plaf/ColorUIResource -javax/swing/plaf/UIResource -sun/swing/PrintColorUIResource javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate -javax/swing/plaf/FontUIResource -sun/swing/SwingLazyValue -javax/swing/UIDefaults$LazyValue -javax/swing/UIDefaults$ActiveValue -javax/swing/plaf/InsetsUIResource -sun/swing/SwingUtilities2$2 -javax/swing/plaf/basic/BasicLookAndFeel$2 -javax/swing/plaf/DimensionUIResource -javax/swing/UIDefaults$LazyInputMap -java/lang/Character$CharacterCache -javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue +javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1 +javax/swing/plaf/metal/MetalBorders +javax/swing/plaf/metal/MetalBorders$ButtonBorder +javax/swing/plaf/metal/MetalBorders$Flush3DBorder +javax/swing/plaf/metal/MetalBorders$MenuBarBorder +javax/swing/plaf/metal/MetalBorders$MenuItemBorder +javax/swing/plaf/metal/MetalBorders$PopupMenuBorder +javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder +javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder +javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder +javax/swing/plaf/metal/MetalBorders$TextFieldBorder +javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder +javax/swing/plaf/metal/MetalBorders$ToolBarBorder +javax/swing/plaf/metal/MetalBumps +javax/swing/plaf/metal/MetalButtonUI +javax/swing/plaf/metal/MetalCheckBoxUI +javax/swing/plaf/metal/MetalComboBoxButton +javax/swing/plaf/metal/MetalComboBoxButton$1 +javax/swing/plaf/metal/MetalComboBoxEditor +javax/swing/plaf/metal/MetalComboBoxEditor$1 +javax/swing/plaf/metal/MetalComboBoxEditor$EditorBorder +javax/swing/plaf/metal/MetalComboBoxEditor$UIResource +javax/swing/plaf/metal/MetalComboBoxIcon +javax/swing/plaf/metal/MetalComboBoxUI +javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager +javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener +javax/swing/plaf/metal/MetalIconFactory +javax/swing/plaf/metal/MetalIconFactory$CheckBoxIcon +javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon +javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 +javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon +javax/swing/plaf/metal/MetalIconFactory$MenuArrowIcon +javax/swing/plaf/metal/MetalIconFactory$MenuItemArrowIcon +javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon +javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon +javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon +javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon +javax/swing/plaf/metal/MetalLabelUI +javax/swing/plaf/metal/MetalLookAndFeel +javax/swing/plaf/metal/MetalLookAndFeel$AATextListener javax/swing/plaf/metal/MetalLookAndFeel$FontActiveValue -java/awt/print/PrinterJob -sun/swing/SwingUtilities2$AATextInfo -sun/awt/X11/XAWTXSettings -sun/awt/X11/XMSelectionListener -sun/awt/XSettings -sun/awt/X11/XMSelection -sun/awt/X11/XMSelection$1 -javax/swing/plaf/metal/MetalLookAndFeel$AATextListener -java/beans/PropertyChangeListener -java/beans/PropertyChangeListenerProxy -java/util/EventListenerProxy -sun/awt/EventListenerAggregate -javax/swing/UIDefaults$ProxyLazyValue +javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue +javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue$1 +javax/swing/plaf/metal/MetalPopupMenuSeparatorUI +javax/swing/plaf/metal/MetalProgressBarUI +javax/swing/plaf/metal/MetalRadioButtonUI +javax/swing/plaf/metal/MetalRootPaneUI +javax/swing/plaf/metal/MetalScrollBarUI +javax/swing/plaf/metal/MetalScrollBarUI$ScrollBarListener +javax/swing/plaf/metal/MetalScrollButton +javax/swing/plaf/metal/MetalScrollPaneUI +javax/swing/plaf/metal/MetalScrollPaneUI$1 +javax/swing/plaf/metal/MetalSeparatorUI +javax/swing/plaf/metal/MetalSliderUI +javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener +javax/swing/plaf/metal/MetalSplitPaneDivider +javax/swing/plaf/metal/MetalSplitPaneDivider$1 +javax/swing/plaf/metal/MetalSplitPaneDivider$2 +javax/swing/plaf/metal/MetalSplitPaneUI +javax/swing/plaf/metal/MetalTabbedPaneUI +javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout +javax/swing/plaf/metal/MetalTextFieldUI +javax/swing/plaf/metal/MetalTheme +javax/swing/plaf/metal/MetalToggleButtonUI +javax/swing/plaf/metal/MetalToolBarUI +javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener +javax/swing/plaf/metal/MetalTreeUI +javax/swing/plaf/metal/MetalTreeUI$LineListener +javax/swing/plaf/metal/OceanTheme javax/swing/plaf/metal/OceanTheme$1 javax/swing/plaf/metal/OceanTheme$2 javax/swing/plaf/metal/OceanTheme$3 javax/swing/plaf/metal/OceanTheme$4 javax/swing/plaf/metal/OceanTheme$5 javax/swing/plaf/metal/OceanTheme$6 -javax/swing/RepaintManager -javax/swing/RepaintManager$DisplayChangedHandler -javax/swing/SwingPaintEventDispatcher -sun/awt/PaintEventDispatcher -javax/swing/UIManager$2 -java/awt/PopupMenu -java/awt/Menu -java/awt/MenuItem -java/awt/MenuComponent -java/io/ObjectOutputStream -java/io/ObjectOutput -java/io/DataOutput -java/io/ObjectStreamConstants -java/io/PrintWriter -java/io/ObjectInputStream -java/io/ObjectInput -java/awt/Event -java/awt/im/InputContext -java/awt/event/MouseWheelEvent -java/awt/BufferCapabilities -sun/awt/CausedFocusEvent$Cause -java/awt/PointerInfo -java/awt/Component$BaselineResizeBehavior -java/awt/FontMetrics -java/awt/Image -java/awt/image/ImageProducer -java/awt/image/VolatileImage -java/awt/im/InputMethodRequests -java/awt/event/FocusEvent -java/awt/event/InputMethodEvent -java/awt/event/HierarchyEvent -javax/accessibility/AccessibleStateSet -com/sun/swing/internal/plaf/metal/resources/metal -sun/util/ResourceBundleEnumeration -com/sun/swing/internal/plaf/basic/resources/basic -javax/swing/plaf/basic/BasicPanelUI -javax/swing/plaf/PanelUI -javax/swing/plaf/ComponentUI -sun/reflect/misc/MethodUtil -sun/reflect/misc/MethodUtil$1 -java/util/jar/JarFile -java/util/zip/ZipFile -java/util/zip/ZipConstants -java/util/jar/JavaUtilJarAccessImpl -sun/misc/JavaUtilJarAccess -sun/misc/JarIndex -java/util/zip/ZipEntry -java/util/jar/JarFile$JarFileEntry -java/util/jar/JarEntry -sun/misc/URLClassPath$JarLoader$2 -sun/net/www/protocol/jar/JarURLConnection -java/net/JarURLConnection -sun/net/www/protocol/jar/JarFileFactory -sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController -java/net/HttpURLConnection -sun/net/www/protocol/jar/URLJarFile -sun/net/www/protocol/jar/URLJarFile$URLJarFileEntry -sun/net/www/protocol/jar/JarURLConnection$JarURLInputStream -java/util/zip/ZipFile$ZipFileInputStream -java/security/AllPermissionCollection -java/lang/IllegalAccessException -javax/swing/JPasswordField -javax/swing/JTextField +javax/swing/plaf/synth/SynthConstants +javax/swing/plaf/synth/SynthUI +javax/swing/table/AbstractTableModel +javax/swing/table/DefaultTableCellRenderer +javax/swing/table/DefaultTableColumnModel +javax/swing/table/DefaultTableModel +javax/swing/table/JTableHeader +javax/swing/table/TableCellEditor +javax/swing/table/TableCellRenderer +javax/swing/table/TableColumn +javax/swing/table/TableColumnModel +javax/swing/table/TableModel +javax/swing/text/AbstractDocument +javax/swing/text/AbstractDocument$1 +javax/swing/text/AbstractDocument$AbstractElement +javax/swing/text/AbstractDocument$AttributeContext +javax/swing/text/AbstractDocument$BidiElement +javax/swing/text/AbstractDocument$BidiRootElement +javax/swing/text/AbstractDocument$BranchElement +javax/swing/text/AbstractDocument$Content +javax/swing/text/AbstractDocument$DefaultDocumentEvent +javax/swing/text/AbstractDocument$ElementEdit +javax/swing/text/AbstractDocument$InsertStringResult +javax/swing/text/AbstractDocument$LeafElement +javax/swing/text/AttributeSet +javax/swing/text/AttributeSet$CharacterAttribute +javax/swing/text/AttributeSet$ColorAttribute +javax/swing/text/AttributeSet$FontAttribute +javax/swing/text/AttributeSet$ParagraphAttribute +javax/swing/text/Caret +javax/swing/text/DefaultCaret +javax/swing/text/DefaultCaret$Handler +javax/swing/text/DefaultEditorKit +javax/swing/text/DefaultEditorKit$BeepAction +javax/swing/text/DefaultEditorKit$BeginAction +javax/swing/text/DefaultEditorKit$BeginLineAction +javax/swing/text/DefaultEditorKit$BeginParagraphAction +javax/swing/text/DefaultEditorKit$BeginWordAction +javax/swing/text/DefaultEditorKit$CopyAction +javax/swing/text/DefaultEditorKit$CutAction +javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction +javax/swing/text/DefaultEditorKit$DeleteNextCharAction +javax/swing/text/DefaultEditorKit$DeletePrevCharAction +javax/swing/text/DefaultEditorKit$DeleteWordAction +javax/swing/text/DefaultEditorKit$DumpModelAction +javax/swing/text/DefaultEditorKit$EndAction +javax/swing/text/DefaultEditorKit$EndLineAction +javax/swing/text/DefaultEditorKit$EndParagraphAction +javax/swing/text/DefaultEditorKit$EndWordAction +javax/swing/text/DefaultEditorKit$InsertBreakAction +javax/swing/text/DefaultEditorKit$InsertContentAction +javax/swing/text/DefaultEditorKit$InsertTabAction +javax/swing/text/DefaultEditorKit$NextVisualPositionAction +javax/swing/text/DefaultEditorKit$NextWordAction +javax/swing/text/DefaultEditorKit$PageAction +javax/swing/text/DefaultEditorKit$PasteAction +javax/swing/text/DefaultEditorKit$PreviousWordAction +javax/swing/text/DefaultEditorKit$ReadOnlyAction +javax/swing/text/DefaultEditorKit$SelectAllAction +javax/swing/text/DefaultEditorKit$SelectLineAction +javax/swing/text/DefaultEditorKit$SelectParagraphAction +javax/swing/text/DefaultEditorKit$SelectWordAction +javax/swing/text/DefaultEditorKit$ToggleComponentOrientationAction +javax/swing/text/DefaultEditorKit$UnselectAction +javax/swing/text/DefaultEditorKit$VerticalPageAction +javax/swing/text/DefaultEditorKit$WritableAction +javax/swing/text/DefaultHighlighter +javax/swing/text/DefaultHighlighter$DefaultHighlightPainter +javax/swing/text/DefaultHighlighter$SafeDamager +javax/swing/text/Document +javax/swing/text/EditorKit +javax/swing/text/Element +javax/swing/text/FieldView +javax/swing/text/GapContent +javax/swing/text/GapContent$InsertUndo +javax/swing/text/GapContent$MarkData +javax/swing/text/GapContent$MarkVector +javax/swing/text/GapContent$StickyPosition +javax/swing/text/GapVector +javax/swing/text/Highlighter +javax/swing/text/Highlighter$Highlight +javax/swing/text/Highlighter$HighlightPainter javax/swing/text/JTextComponent -javax/swing/Scrollable -javax/swing/JLayeredPane -javax/swing/JRootPane$1 -javax/swing/ArrayTable -javax/swing/JInternalFrame -javax/swing/JRootPane$RootLayout -javax/swing/BufferStrategyPaintManager -javax/swing/RepaintManager$PaintManager -javax/swing/plaf/metal/MetalRootPaneUI -javax/swing/plaf/basic/BasicRootPaneUI -javax/swing/plaf/RootPaneUI -javax/swing/plaf/basic/BasicRootPaneUI$RootPaneInputMap -javax/swing/plaf/ComponentInputMapUIResource -javax/swing/ComponentInputMap -javax/swing/InputMap -javax/swing/plaf/InputMapUIResource -javax/swing/KeyStroke -java/awt/VKCollection -sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl -javax/swing/plaf/basic/LazyActionMap -javax/swing/plaf/ActionMapUIResource -javax/swing/ActionMap -javax/swing/LayoutFocusTraversalPolicy -javax/swing/SortingFocusTraversalPolicy -javax/swing/InternalFrameFocusTraversalPolicy -javax/swing/SwingContainerOrderFocusTraversalPolicy -javax/swing/SwingDefaultFocusTraversalPolicy -javax/swing/LayoutComparator -javax/swing/plaf/metal/MetalLabelUI -javax/swing/plaf/basic/BasicLabelUI -javax/swing/plaf/LabelUI -javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1 -javax/swing/plaf/basic/BasicHTML -sun/awt/NullComponentPeer -java/awt/event/WindowEvent -java/awt/EventQueue$1 -java/awt/EventDispatchThread$1 -java/awt/Conditional -java/awt/EventDispatchThread$HierarchyEventFilter -java/awt/EventFilter$FilterAction -sun/awt/dnd/SunDropTargetEvent -java/awt/event/ActionEvent -java/util/jar/Manifest -java/io/ByteArrayInputStream -java/util/jar/Attributes -java/util/jar/Manifest$FastInputStream -java/util/jar/Attributes$Name -sun/misc/ASCIICaseInsensitiveComparator -java/util/jar/JarVerifier -java/io/ByteArrayOutputStream -sun/misc/ExtensionDependency -java/lang/Package -sun/security/util/ManifestEntryVerifier -java/security/Provider -java/security/Provider$ServiceKey -java/security/Provider$EngineDescription -java/security/Security -java/security/Security$1 -sun/misc/FloatingDecimal -sun/misc/FloatingDecimal$1 -sun/security/provider/NativePRNG -java/security/SecureRandomSpi -sun/security/provider/NativePRNG$1 -sun/security/provider/NativePRNG$RandomIO -sun/misc/BASE64Decoder -sun/misc/CharacterDecoder -sun/security/util/SignatureFileVerifier -java/awt/event/KeyAdapter -java/lang/NumberFormatException -java/lang/IllegalArgumentException -java/io/FileWriter -java/net/Authenticator -java/net/MalformedURLException -javax/swing/text/Element -javax/swing/text/Document +javax/swing/text/JTextComponent$1 +javax/swing/text/JTextComponent$DefaultKeymap +javax/swing/text/JTextComponent$KeymapActionMap +javax/swing/text/JTextComponent$KeymapWrapper +javax/swing/text/JTextComponent$MutableCaretEvent +javax/swing/text/Keymap +javax/swing/text/LayeredHighlighter +javax/swing/text/LayeredHighlighter$LayerPainter +javax/swing/text/MutableAttributeSet javax/swing/text/PlainDocument -javax/swing/text/AbstractDocument -javax/swing/text/GapContent -javax/swing/text/AbstractDocument$Content -javax/swing/text/GapVector -javax/swing/text/GapContent$MarkVector -javax/swing/text/GapContent$MarkData -javax/swing/text/StyleContext -javax/swing/text/AbstractDocument$AttributeContext +javax/swing/text/PlainView +javax/swing/text/Position +javax/swing/text/Position$Bias +javax/swing/text/Segment +javax/swing/text/SegmentCache +javax/swing/text/SegmentCache$CachedSegment +javax/swing/text/SimpleAttributeSet +javax/swing/text/SimpleAttributeSet$EmptyAttributeSet +javax/swing/text/Style javax/swing/text/StyleConstants javax/swing/text/StyleConstants$CharacterConstants -javax/swing/text/AttributeSet$CharacterAttribute +javax/swing/text/StyleConstants$ColorConstants javax/swing/text/StyleConstants$FontConstants -javax/swing/text/AttributeSet$FontAttribute -javax/swing/text/StyleConstants$ColorConstants -javax/swing/text/AttributeSet$ColorAttribute javax/swing/text/StyleConstants$ParagraphConstants -javax/swing/text/AttributeSet$ParagraphAttribute +javax/swing/text/StyleContext javax/swing/text/StyleContext$FontKey -javax/swing/text/SimpleAttributeSet -javax/swing/text/MutableAttributeSet -javax/swing/text/AttributeSet -javax/swing/text/SimpleAttributeSet$EmptyAttributeSet +javax/swing/text/StyleContext$KeyEnumeration javax/swing/text/StyleContext$NamedStyle -javax/swing/text/Style javax/swing/text/StyleContext$SmallAttributeSet -javax/swing/text/AbstractDocument$BidiRootElement -javax/swing/text/AbstractDocument$BranchElement -javax/swing/text/AbstractDocument$AbstractElement -javax/swing/tree/TreeNode -javax/swing/text/AbstractDocument$1 -javax/swing/text/AbstractDocument$BidiElement -javax/swing/text/AbstractDocument$LeafElement -javax/swing/text/GapContent$StickyPosition -javax/swing/text/Position -javax/swing/text/StyleContext$KeyEnumeration -javax/swing/text/GapContent$InsertUndo -javax/swing/undo/AbstractUndoableEdit -javax/swing/undo/UndoableEdit -javax/swing/text/AbstractDocument$DefaultDocumentEvent -javax/swing/event/DocumentEvent -javax/swing/undo/CompoundEdit -javax/swing/event/DocumentEvent$EventType -javax/swing/text/Segment -java/text/CharacterIterator +javax/swing/text/TabExpander +javax/swing/text/TextAction javax/swing/text/Utilities -javax/swing/text/SegmentCache -javax/swing/text/SegmentCache$CachedSegment -javax/swing/event/UndoableEditEvent -javax/swing/text/AbstractDocument$ElementEdit -javax/swing/event/DocumentEvent$ElementChange -java/net/Socket -java/net/InetAddress -java/net/InetAddress$Cache -java/net/InetAddress$Cache$Type -java/net/InetAddressImplFactory -java/net/Inet4AddressImpl -java/net/InetAddressImpl -java/net/InetAddress$1 -sun/net/spi/nameservice/NameService -sun/net/util/IPAddressUtil -java/util/RandomAccessSubList -java/util/SubList -java/util/SubList$1 -java/util/AbstractList$ListItr -java/net/Inet4Address -java/net/InetSocketAddress -java/net/SocketAddress -java/net/SocksSocketImpl -java/net/SocksConsts -java/net/PlainSocketImpl -java/net/SocketImpl -java/net/SocketOptions -java/net/SocketException -java/net/SocksSocketImpl$5 -java/net/ProxySelector -sun/net/spi/DefaultProxySelector -sun/net/spi/DefaultProxySelector$1 -sun/net/NetProperties -sun/net/NetProperties$1 -sun/net/spi/DefaultProxySelector$NonProxyInfo -java/net/Inet6Address -java/net/URI -java/net/URI$Parser -java/net/Proxy -java/net/Proxy$Type -java/net/ConnectException -javax/swing/JMenu -javax/swing/MenuElement -javax/swing/JMenuItem -javax/swing/AbstractButton -java/awt/ItemSelectable -javax/swing/event/MenuListener -javax/swing/JCheckBoxMenuItem -javax/swing/Icon -javax/swing/JButton -java/awt/event/WindowListener -java/net/URLClassLoader$2 -javax/swing/ImageIcon -javax/swing/ImageIcon$1 -java/awt/MediaTracker -sun/misc/SoftCache$ValueCell -sun/awt/image/URLImageSource -sun/awt/image/InputStreamImageSource +javax/swing/text/View +javax/swing/text/ViewFactory +javax/swing/tree/AbstractLayoutCache +javax/swing/tree/AbstractLayoutCache$NodeDimensions +javax/swing/tree/DefaultMutableTreeNode +javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration +javax/swing/tree/DefaultTreeCellEditor +javax/swing/tree/DefaultTreeCellEditor$1 +javax/swing/tree/DefaultTreeCellEditor$DefaultTextField +javax/swing/tree/DefaultTreeCellEditor$EditorContainer +javax/swing/tree/DefaultTreeCellRenderer +javax/swing/tree/DefaultTreeModel +javax/swing/tree/DefaultTreeSelectionModel +javax/swing/tree/MutableTreeNode +javax/swing/tree/PathPlaceHolder +javax/swing/tree/RowMapper +javax/swing/tree/TreeCellEditor +javax/swing/tree/TreeCellRenderer +javax/swing/tree/TreeModel +javax/swing/tree/TreeNode +javax/swing/tree/TreePath +javax/swing/tree/TreeSelectionModel +javax/swing/tree/VariableHeightLayoutCache +javax/swing/tree/VariableHeightLayoutCache$TreeStateNode +javax/swing/undo/AbstractUndoableEdit +javax/swing/undo/CompoundEdit +javax/swing/undo/UndoableEdit +javax/xml/parsers/DocumentBuilder +javax/xml/parsers/DocumentBuilderFactory +javax/xml/parsers/FactoryFinder +javax/xml/parsers/FactoryFinder$1 +javax/xml/parsers/ParserConfigurationException +javax/xml/parsers/SecuritySupport +javax/xml/parsers/SecuritySupport$2 +javax/xml/parsers/SecuritySupport$5 +org/w3c/dom/Attr +org/w3c/dom/CDATASection +org/w3c/dom/CharacterData +org/w3c/dom/Comment +org/w3c/dom/DOMException +org/w3c/dom/Document +org/w3c/dom/DocumentFragment +org/w3c/dom/DocumentType +org/w3c/dom/Element +org/w3c/dom/Entity +org/w3c/dom/EntityReference +org/w3c/dom/NamedNodeMap +org/w3c/dom/Node +org/w3c/dom/NodeList +org/w3c/dom/Notation +org/w3c/dom/ProcessingInstruction +org/w3c/dom/Text +org/w3c/dom/events/DocumentEvent +org/w3c/dom/events/Event +org/w3c/dom/events/EventException +org/w3c/dom/events/EventTarget +org/w3c/dom/events/MutationEvent +org/w3c/dom/ranges/DocumentRange +org/w3c/dom/ranges/Range +org/w3c/dom/traversal/DocumentTraversal +org/w3c/dom/traversal/NodeIterator +org/w3c/dom/traversal/TreeWalker +org/xml/sax/AttributeList +org/xml/sax/ContentHandler +org/xml/sax/DTDHandler +org/xml/sax/EntityResolver +org/xml/sax/ErrorHandler +org/xml/sax/InputSource +org/xml/sax/Locator +org/xml/sax/SAXException +org/xml/sax/SAXNotRecognizedException +org/xml/sax/SAXNotSupportedException +org/xml/sax/SAXParseException +org/xml/sax/helpers/DefaultHandler +sun/awt/AWTAccessor +sun/awt/AWTAccessor$AWTEventAccessor +sun/awt/AWTAccessor$ClientPropertyKeyAccessor +sun/awt/AWTAccessor$ComponentAccessor +sun/awt/AWTAccessor$ContainerAccessor +sun/awt/AWTAccessor$CursorAccessor +sun/awt/AWTAccessor$DefaultKeyboardFocusManagerAccessor +sun/awt/AWTAccessor$EventQueueAccessor +sun/awt/AWTAccessor$FrameAccessor +sun/awt/AWTAccessor$InputEventAccessor +sun/awt/AWTAccessor$InvocationEventAccessor +sun/awt/AWTAccessor$KeyEventAccessor +sun/awt/AWTAccessor$KeyboardFocusManagerAccessor +sun/awt/AWTAccessor$SequencedEventAccessor +sun/awt/AWTAccessor$ToolkitAccessor +sun/awt/AWTAccessor$WindowAccessor +sun/awt/AWTAutoShutdown +sun/awt/AWTIcon32_java_icon16_png +sun/awt/AWTIcon32_java_icon24_png +sun/awt/AWTIcon32_java_icon32_png +sun/awt/AWTIcon32_java_icon48_png +sun/awt/AppContext +sun/awt/AppContext$1 +sun/awt/AppContext$2 +sun/awt/AppContext$3 +sun/awt/AppContext$6 +sun/awt/AppContext$GetAppContextLock +sun/awt/AppContext$State +sun/awt/CausedFocusEvent +sun/awt/CausedFocusEvent$Cause +sun/awt/ComponentFactory +sun/awt/ConstrainableGraphics +sun/awt/DisplayChangedListener +sun/awt/EmbeddedFrame +sun/awt/EventQueueDelegate +sun/awt/EventQueueItem +sun/awt/FontConfiguration +sun/awt/FontDescriptor +sun/awt/GlobalCursorManager +sun/awt/GlobalCursorManager$NativeUpdater +sun/awt/HeadlessToolkit +sun/awt/IconInfo +sun/awt/InputMethodSupport +sun/awt/KeyboardFocusManagerPeerImpl +sun/awt/KeyboardFocusManagerPeerProvider +sun/awt/LightweightFrame +sun/awt/ModalityListener +sun/awt/MostRecentKeyValue +sun/awt/NullComponentPeer +sun/awt/OSInfo +sun/awt/OSInfo$1 +sun/awt/OSInfo$OSType +sun/awt/OSInfo$WindowsVersion +sun/awt/PaintEventDispatcher +sun/awt/PeerEvent +sun/awt/PostEventQueue +sun/awt/RepaintArea +sun/awt/RequestFocusController +sun/awt/SubRegionShowable +sun/awt/SunDisplayChanger +sun/awt/SunGraphicsCallback +sun/awt/SunHints +sun/awt/SunHints$Key +sun/awt/SunHints$LCDContrastKey +sun/awt/SunHints$Value +sun/awt/SunToolkit +sun/awt/SunToolkit$ModalityListenerList +sun/awt/TimedWindowEvent +sun/awt/UNIXToolkit +sun/awt/WindowClosingListener +sun/awt/WindowClosingSupport +sun/awt/X11/AwtGraphicsConfigData +sun/awt/X11/AwtScreenData +sun/awt/X11/MotifColorUtilities +sun/awt/X11/MotifDnDConstants +sun/awt/X11/MotifDnDDragSourceProtocol +sun/awt/X11/MotifDnDDropTargetProtocol +sun/awt/X11/Native +sun/awt/X11/Native$1 +sun/awt/X11/OwnershipListener +sun/awt/X11/PropMwmHints +sun/awt/X11/UnsafeXDisposerRecord +sun/awt/X11/WindowDimensions +sun/awt/X11/WindowPropertyGetter +sun/awt/X11/XAWTXSettings +sun/awt/X11/XAnyEvent +sun/awt/X11/XAtom +sun/awt/X11/XAtomList +sun/awt/X11/XAwtState +sun/awt/X11/XBaseWindow +sun/awt/X11/XBaseWindow$1 +sun/awt/X11/XBaseWindow$InitialiseState +sun/awt/X11/XBaseWindow$StateLock +sun/awt/X11/XCanvasPeer +sun/awt/X11/XClientMessageEvent +sun/awt/X11/XClipboard +sun/awt/X11/XComponentPeer +sun/awt/X11/XComponentPeer$1 +sun/awt/X11/XConfigureEvent +sun/awt/X11/XContentWindow +sun/awt/X11/XCreateWindowParams +sun/awt/X11/XDecoratedPeer +sun/awt/X11/XDnDConstants +sun/awt/X11/XDnDDragSourceProtocol +sun/awt/X11/XDnDDropTargetProtocol +sun/awt/X11/XDragAndDropProtocols +sun/awt/X11/XDragSourceContextPeer +sun/awt/X11/XDragSourceProtocol +sun/awt/X11/XDragSourceProtocolListener +sun/awt/X11/XDropTargetContextPeer +sun/awt/X11/XDropTargetContextPeer$XDropTargetProtocolListenerImpl +sun/awt/X11/XDropTargetEventProcessor +sun/awt/X11/XDropTargetProtocol +sun/awt/X11/XDropTargetProtocolListener +sun/awt/X11/XDropTargetRegistry +sun/awt/X11/XEmbeddedFramePeer +sun/awt/X11/XErrorEvent +sun/awt/X11/XErrorHandler +sun/awt/X11/XErrorHandler$IgnoreBadWindowHandler +sun/awt/X11/XErrorHandler$VerifyChangePropertyHandler +sun/awt/X11/XErrorHandler$XBaseErrorHandler +sun/awt/X11/XErrorHandler$XErrorHandlerWithFlag +sun/awt/X11/XErrorHandler$XShmAttachHandler +sun/awt/X11/XErrorHandlerUtil +sun/awt/X11/XEvent +sun/awt/X11/XEventDispatcher +sun/awt/X11/XExposeEvent +sun/awt/X11/XFocusChangeEvent +sun/awt/X11/XFocusProxyWindow +sun/awt/X11/XFramePeer +sun/awt/X11/XGlobalCursorManager +sun/awt/X11/XInputMethod +sun/awt/X11/XInputMethodDescriptor +sun/awt/X11/XKeyboardFocusManagerPeer +sun/awt/X11/XLabelPeer +sun/awt/X11/XLayerProtocol +sun/awt/X11/XMSelection +sun/awt/X11/XMSelection$1 +sun/awt/X11/XMSelection$3 +sun/awt/X11/XMSelectionListener +sun/awt/X11/XModifierKeymap +sun/awt/X11/XNETProtocol +sun/awt/X11/XPanelPeer +sun/awt/X11/XPropertyCache +sun/awt/X11/XPropertyEvent +sun/awt/X11/XProtocol +sun/awt/X11/XRepaintArea +sun/awt/X11/XReparentEvent +sun/awt/X11/XRootWindow +sun/awt/X11/XSelection +sun/awt/X11/XSelection$IncrementalTransferHandler +sun/awt/X11/XSelection$SelectionEventHandler +sun/awt/X11/XSetWindowAttributes +sun/awt/X11/XSizeHints +sun/awt/X11/XStateProtocol +sun/awt/X11/XSystemTrayPeer +sun/awt/X11/XToolkit +sun/awt/X11/XToolkit$1 +sun/awt/X11/XToolkit$2 +sun/awt/X11/XToolkit$2$1 +sun/awt/X11/XToolkit$3 +sun/awt/X11/XToolkit$4 +sun/awt/X11/XToolkit$5 +sun/awt/X11/XUnmapEvent +sun/awt/X11/XVisibilityEvent +sun/awt/X11/XVisualInfo +sun/awt/X11/XWINProtocol +sun/awt/X11/XWM +sun/awt/X11/XWM$1 +sun/awt/X11/XWMHints +sun/awt/X11/XWindow +sun/awt/X11/XWindowAttributes +sun/awt/X11/XWindowAttributesData +sun/awt/X11/XWindowPeer +sun/awt/X11/XWindowPeer$2 +sun/awt/X11/XWindowPeer$4 +sun/awt/X11/XWrapperBase +sun/awt/X11/XlibUtil +sun/awt/X11/XlibWrapper +sun/awt/X11ComponentPeer +sun/awt/X11FontManager +sun/awt/X11GraphicsConfig +sun/awt/X11GraphicsConfig$X11GCDisposerRecord +sun/awt/X11GraphicsDevice +sun/awt/X11GraphicsEnvironment +sun/awt/X11GraphicsEnvironment$1 +sun/awt/X11InputMethod +sun/awt/X11InputMethodDescriptor +sun/awt/XSettings +sun/awt/XSettings$Update +sun/awt/datatransfer/SunClipboard +sun/awt/dnd/SunDragSourceContextPeer +sun/awt/dnd/SunDropTargetContextPeer +sun/awt/dnd/SunDropTargetEvent +sun/awt/event/IgnorePaintEvent +sun/awt/geom/PathConsumer2D +sun/awt/im/ExecutableInputMethodManager +sun/awt/im/ExecutableInputMethodManager$3 +sun/awt/im/InputContext +sun/awt/im/InputMethodAdapter +sun/awt/im/InputMethodContext +sun/awt/im/InputMethodLocator +sun/awt/im/InputMethodManager +sun/awt/image/BufImgSurfaceData +sun/awt/image/BufImgSurfaceData$ICMColorData +sun/awt/image/BufImgSurfaceManager +sun/awt/image/BufferedImageGraphicsConfig +sun/awt/image/ByteComponentRaster +sun/awt/image/ByteInterleavedRaster +sun/awt/image/BytePackedRaster +sun/awt/image/FetcherInfo +sun/awt/image/GifFrame +sun/awt/image/GifImageDecoder +sun/awt/image/ImageConsumerQueue +sun/awt/image/ImageDecoder +sun/awt/image/ImageDecoder$1 sun/awt/image/ImageFetchable -sun/awt/image/ToolkitImage -java/awt/Image$1 -sun/awt/image/SurfaceManager$ImageAccessor -sun/awt/image/SurfaceManager -sun/awt/image/NativeLibLoader -java/awt/ImageMediaEntry -java/awt/MediaEntry +sun/awt/image/ImageFetcher +sun/awt/image/ImageFetcher$1 sun/awt/image/ImageRepresentation -java/awt/image/ImageConsumer sun/awt/image/ImageWatched sun/awt/image/ImageWatched$Link sun/awt/image/ImageWatched$WeakLink -sun/awt/image/ImageConsumerQueue -sun/awt/image/ImageFetcher -sun/awt/image/FetcherInfo -sun/awt/image/ImageFetcher$1 -sun/awt/image/GifImageDecoder -sun/awt/image/ImageDecoder -sun/awt/image/GifFrame -java/awt/image/Raster -java/awt/image/DataBufferByte -java/awt/image/DataBuffer -java/awt/image/PixelInterleavedSampleModel -java/awt/image/ComponentSampleModel -java/awt/image/SampleModel -sun/awt/image/ByteInterleavedRaster -sun/awt/image/ByteComponentRaster +sun/awt/image/InputStreamImageSource +sun/awt/image/IntegerComponentRaster +sun/awt/image/IntegerInterleavedRaster +sun/awt/image/NativeLibLoader +sun/awt/image/NativeLibLoader$1 +sun/awt/image/OffScreenImage +sun/awt/image/PNGFilterInputStream +sun/awt/image/PNGImageDecoder +sun/awt/image/PixelConverter +sun/awt/image/PixelConverter$Argb +sun/awt/image/PixelConverter$ArgbBm +sun/awt/image/PixelConverter$ArgbPre +sun/awt/image/PixelConverter$Bgrx +sun/awt/image/PixelConverter$ByteGray +sun/awt/image/PixelConverter$Rgba +sun/awt/image/PixelConverter$RgbaPre +sun/awt/image/PixelConverter$Rgbx +sun/awt/image/PixelConverter$Ushort4444Argb +sun/awt/image/PixelConverter$Ushort555Rgb +sun/awt/image/PixelConverter$Ushort555Rgbx +sun/awt/image/PixelConverter$Ushort565Rgb +sun/awt/image/PixelConverter$UshortGray +sun/awt/image/PixelConverter$Xbgr +sun/awt/image/PixelConverter$Xrgb +sun/awt/image/SunVolatileImage sun/awt/image/SunWritableRaster -java/awt/image/WritableRaster -java/awt/image/BufferedImage -java/awt/image/WritableRenderedImage -java/awt/image/RenderedImage -sun/awt/image/IntegerComponentRaster -sun/awt/image/BytePackedRaster -java/awt/Canvas +sun/awt/image/SunWritableRaster$DataStealer +sun/awt/image/SurfaceManager +sun/awt/image/SurfaceManager$ImageAccessor +sun/awt/image/SurfaceManager$ProxiedGraphicsConfig +sun/awt/image/ToolkitImage +sun/awt/image/URLImageSource +sun/awt/image/VolatileSurfaceManager +sun/awt/motif/MFontConfiguration +sun/awt/resources/awt +sun/awt/util/IdentityArrayList +sun/dc/DuctusRenderingEngine +sun/dc/path/PathConsumer +sun/dc/pr/PathDasher +sun/dc/pr/PathDasher$1 +sun/dc/pr/PathStroker +sun/dc/pr/PathStroker$1 +sun/font/AttributeValues +sun/font/CMap +sun/font/CMap$CMapFormat12 +sun/font/CMap$NullCMapClass +sun/font/CharToGlyphMapper +sun/font/CompositeFont +sun/font/CompositeFontDescriptor +sun/font/CompositeGlyphMapper +sun/font/CompositeStrike +sun/font/CoreMetrics +sun/font/EAttribute +sun/font/FcFontConfiguration +sun/font/FileFont +sun/font/FileFontStrike +sun/font/Font2D +sun/font/Font2DHandle +sun/font/FontAccess +sun/font/FontConfigManager +sun/font/FontConfigManager$FcCompFont +sun/font/FontConfigManager$FontConfigFont +sun/font/FontConfigManager$FontConfigInfo sun/font/FontDesignMetrics +sun/font/FontDesignMetrics$KeyReference +sun/font/FontDesignMetrics$MetricsKey +sun/font/FontFamily +sun/font/FontLineMetrics +sun/font/FontManager +sun/font/FontManagerFactory +sun/font/FontManagerFactory$1 +sun/font/FontManagerForSGE +sun/font/FontManagerNativeLibrary +sun/font/FontManagerNativeLibrary$1 +sun/font/FontScaler +sun/font/FontStrike sun/font/FontStrikeDesc -sun/font/CompositeStrike sun/font/FontStrikeDisposer -sun/font/StrikeCache$SoftDisposerRef +sun/font/FontUtilities +sun/font/FontUtilities$1 +sun/font/GlyphList +sun/font/PhysicalFont +sun/font/PhysicalStrike +sun/font/StandardGlyphVector +sun/font/StandardGlyphVector$GlyphStrike +sun/font/StrikeCache +sun/font/StrikeCache$1 sun/font/StrikeCache$DisposableStrike -sun/font/TrueTypeFont$TTDisposerRecord +sun/font/StrikeCache$SoftDisposerRef +sun/font/StrikeMetrics +sun/font/SunFontManager +sun/font/SunFontManager$1 +sun/font/SunFontManager$11 +sun/font/SunFontManager$2 +sun/font/SunFontManager$3 +sun/font/SunFontManager$FontRegistrationInfo +sun/font/SunFontManager$T1Filter +sun/font/SunFontManager$TTFilter +sun/font/T2KFontScaler +sun/font/T2KFontScaler$1 +sun/font/TrueTypeFont sun/font/TrueTypeFont$1 -java/io/RandomAccessFile -java/nio/ByteBufferAsIntBufferB -java/nio/IntBuffer sun/font/TrueTypeFont$DirectoryEntry -java/nio/ByteBufferAsShortBufferB -java/nio/ShortBuffer +sun/font/TrueTypeFont$TTDisposerRecord +sun/font/TrueTypeGlyphMapper +sun/font/Type1Font +sun/font/Type1Font$1 +sun/font/X11TextRenderer +sun/java2d/BackBufferCapsProvider +sun/java2d/DefaultDisposerRecord +sun/java2d/DestSurfaceProvider +sun/java2d/Disposer +sun/java2d/Disposer$1 +sun/java2d/Disposer$2 +sun/java2d/Disposer$PollDisposable +sun/java2d/DisposerRecord +sun/java2d/DisposerTarget +sun/java2d/FontSupport +sun/java2d/InvalidPipeException +sun/java2d/NullSurfaceData +sun/java2d/StateTrackable +sun/java2d/StateTrackable$State +sun/java2d/StateTrackableDelegate +sun/java2d/StateTrackableDelegate$2 +sun/java2d/SunGraphics2D +sun/java2d/SunGraphicsEnvironment +sun/java2d/SunGraphicsEnvironment$1 +sun/java2d/Surface +sun/java2d/SurfaceData +sun/java2d/SurfaceData$PixelToPgramLoopConverter +sun/java2d/SurfaceData$PixelToShapeLoopConverter +sun/java2d/SurfaceManagerFactory +sun/java2d/UnixSurfaceManagerFactory +sun/java2d/cmm/CMSManager +sun/java2d/cmm/ProfileActivator +sun/java2d/cmm/ProfileDeferralInfo +sun/java2d/cmm/ProfileDeferralMgr +sun/java2d/loops/Blit +sun/java2d/loops/BlitBg +sun/java2d/loops/CompositeType +sun/java2d/loops/CustomComponent +sun/java2d/loops/DrawGlyphList +sun/java2d/loops/DrawGlyphListAA +sun/java2d/loops/DrawGlyphListLCD +sun/java2d/loops/DrawLine +sun/java2d/loops/DrawParallelogram +sun/java2d/loops/DrawPath +sun/java2d/loops/DrawPolygons +sun/java2d/loops/DrawRect +sun/java2d/loops/FillParallelogram +sun/java2d/loops/FillPath +sun/java2d/loops/FillRect +sun/java2d/loops/FillSpans +sun/java2d/loops/FontInfo +sun/java2d/loops/GeneralRenderer +sun/java2d/loops/GraphicsPrimitive +sun/java2d/loops/GraphicsPrimitiveMgr +sun/java2d/loops/GraphicsPrimitiveMgr$1 +sun/java2d/loops/GraphicsPrimitiveMgr$2 +sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec +sun/java2d/loops/GraphicsPrimitiveProxy +sun/java2d/loops/MaskBlit +sun/java2d/loops/MaskFill +sun/java2d/loops/RenderCache +sun/java2d/loops/RenderCache$Entry +sun/java2d/loops/RenderLoops +sun/java2d/loops/ScaledBlit +sun/java2d/loops/SurfaceType +sun/java2d/loops/TransformHelper +sun/java2d/loops/XORComposite +sun/java2d/opengl/GLXGraphicsConfig +sun/java2d/opengl/OGLGraphicsConfig +sun/java2d/pipe/AAShapePipe +sun/java2d/pipe/AATextRenderer +sun/java2d/pipe/AlphaColorPipe +sun/java2d/pipe/AlphaPaintPipe +sun/java2d/pipe/CompositePipe +sun/java2d/pipe/DrawImage +sun/java2d/pipe/DrawImagePipe +sun/java2d/pipe/GeneralCompositePipe +sun/java2d/pipe/GlyphListLoopPipe +sun/java2d/pipe/GlyphListPipe +sun/java2d/pipe/LCDTextRenderer +sun/java2d/pipe/LoopBasedPipe +sun/java2d/pipe/LoopPipe +sun/java2d/pipe/NullPipe +sun/java2d/pipe/OutlineTextRenderer +sun/java2d/pipe/ParallelogramPipe +sun/java2d/pipe/PixelDrawPipe +sun/java2d/pipe/PixelFillPipe +sun/java2d/pipe/PixelToParallelogramConverter +sun/java2d/pipe/PixelToShapeConverter +sun/java2d/pipe/Region +sun/java2d/pipe/Region$ImmutableRegion +sun/java2d/pipe/RegionIterator +sun/java2d/pipe/RenderingEngine +sun/java2d/pipe/RenderingEngine$1 +sun/java2d/pipe/ShapeDrawPipe +sun/java2d/pipe/ShapeSpanIterator +sun/java2d/pipe/SolidTextRenderer +sun/java2d/pipe/SpanClipRenderer +sun/java2d/pipe/SpanIterator +sun/java2d/pipe/SpanShapeRenderer +sun/java2d/pipe/SpanShapeRenderer$Composite +sun/java2d/pipe/TextPipe +sun/java2d/pipe/TextRenderer +sun/java2d/pipe/ValidatePipe +sun/java2d/pipe/hw/AccelGraphicsConfig +sun/java2d/pipe/hw/BufferedContextProvider +sun/java2d/x11/X11Renderer +sun/java2d/x11/X11SurfaceData +sun/java2d/x11/X11SurfaceData$LazyPipe +sun/java2d/x11/X11SurfaceData$X11WindowSurfaceData +sun/java2d/x11/X11VolatileSurfaceManager +sun/java2d/x11/XSurfaceData +sun/java2d/xr/XRGraphicsConfig +sun/launcher/LauncherHelper +sun/launcher/LauncherHelper$FXHelper +sun/misc/ASCIICaseInsensitiveComparator +sun/misc/Cleaner +sun/misc/CompoundEnumeration +sun/misc/ExtensionDependency +sun/misc/FDBigInteger +sun/misc/FileURLMapper +sun/misc/FloatingDecimal +sun/misc/FloatingDecimal$1 +sun/misc/FloatingDecimal$ASCIIToBinaryBuffer +sun/misc/FloatingDecimal$ASCIIToBinaryConverter +sun/misc/FloatingDecimal$BinaryToASCIIBuffer +sun/misc/FloatingDecimal$BinaryToASCIIConverter +sun/misc/FloatingDecimal$ExceptionalBinaryToASCIIBuffer +sun/misc/FloatingDecimal$PreparedASCIIToBinaryBuffer +sun/misc/IOUtils +sun/misc/JarIndex +sun/misc/JavaAWTAccess +sun/misc/JavaIOFileDescriptorAccess +sun/misc/JavaLangAccess +sun/misc/JavaNetAccess +sun/misc/JavaNioAccess +sun/misc/JavaSecurityAccess +sun/misc/JavaSecurityProtectionDomainAccess +sun/misc/JavaUtilJarAccess +sun/misc/JavaUtilZipFileAccess +sun/misc/Launcher +sun/misc/Launcher$AppClassLoader +sun/misc/Launcher$AppClassLoader$1 +sun/misc/Launcher$BootClassPathHolder +sun/misc/Launcher$BootClassPathHolder$1 +sun/misc/Launcher$ExtClassLoader +sun/misc/Launcher$ExtClassLoader$1 +sun/misc/Launcher$Factory +sun/misc/MetaIndex +sun/misc/NativeSignalHandler +sun/misc/OSEnvironment +sun/misc/Perf +sun/misc/Perf$GetPerfAction +sun/misc/PerfCounter +sun/misc/PerfCounter$CoreCounters +sun/misc/PerformanceLogger +sun/misc/PerformanceLogger$TimeData +sun/misc/PostVMInitHook +sun/misc/Resource +sun/misc/SharedSecrets +sun/misc/Signal +sun/misc/SignalHandler +sun/misc/SoftCache +sun/misc/SoftCache$ValueCell +sun/misc/URLClassPath +sun/misc/URLClassPath$1 +sun/misc/URLClassPath$2 +sun/misc/URLClassPath$3 +sun/misc/URLClassPath$FileLoader +sun/misc/URLClassPath$JarLoader +sun/misc/URLClassPath$JarLoader$1 +sun/misc/URLClassPath$JarLoader$2 +sun/misc/URLClassPath$Loader +sun/misc/Unsafe +sun/misc/VM +sun/misc/Version +sun/net/DefaultProgressMeteringPolicy +sun/net/InetAddressCachePolicy +sun/net/InetAddressCachePolicy$1 +sun/net/InetAddressCachePolicy$2 +sun/net/NetHooks +sun/net/NetHooks$Provider +sun/net/NetProperties +sun/net/NetProperties$1 +sun/net/ProgressMeteringPolicy +sun/net/ProgressMonitor +sun/net/ResourceManager +sun/net/sdp/SdpProvider +sun/net/spi/DefaultProxySelector +sun/net/spi/DefaultProxySelector$1 +sun/net/spi/DefaultProxySelector$3 +sun/net/spi/DefaultProxySelector$NonProxyInfo +sun/net/spi/nameservice/NameService +sun/net/util/IPAddressUtil +sun/net/util/URLUtil +sun/net/www/MessageHeader +sun/net/www/MimeEntry +sun/net/www/MimeTable +sun/net/www/MimeTable$1 +sun/net/www/MimeTable$DefaultInstanceHolder +sun/net/www/MimeTable$DefaultInstanceHolder$1 +sun/net/www/ParseUtil +sun/net/www/URLConnection +sun/net/www/protocol/file/FileURLConnection +sun/net/www/protocol/file/Handler +sun/net/www/protocol/http/Handler +sun/net/www/protocol/jar/Handler +sun/net/www/protocol/jar/JarFileFactory +sun/net/www/protocol/jar/JarURLConnection +sun/net/www/protocol/jar/JarURLConnection$JarURLInputStream +sun/net/www/protocol/jar/URLJarFile +sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController +sun/net/www/protocol/jar/URLJarFile$URLJarFileEntry +sun/nio/ByteBuffered +sun/nio/ch/DirectBuffer +sun/nio/ch/FileChannelImpl +sun/nio/ch/FileChannelImpl$Unmapper +sun/nio/ch/FileDispatcher +sun/nio/ch/FileDispatcherImpl +sun/nio/ch/IOStatus +sun/nio/ch/IOUtil +sun/nio/ch/IOUtil$1 +sun/nio/ch/Interruptible +sun/nio/ch/NativeDispatcher +sun/nio/ch/NativeThread +sun/nio/ch/NativeThreadSet +sun/nio/ch/Util +sun/nio/ch/Util$1 +sun/nio/ch/Util$4 +sun/nio/ch/Util$BufferCache +sun/nio/cs/ArrayDecoder +sun/nio/cs/ArrayEncoder +sun/nio/cs/FastCharsetProvider +sun/nio/cs/HistoricallyNamedCharset +sun/nio/cs/ISO_8859_1 +sun/nio/cs/ISO_8859_1$Encoder +sun/nio/cs/StandardCharsets +sun/nio/cs/StandardCharsets$Aliases +sun/nio/cs/StandardCharsets$Cache +sun/nio/cs/StandardCharsets$Classes +sun/nio/cs/StreamDecoder +sun/nio/cs/StreamEncoder +sun/nio/cs/Surrogate +sun/nio/cs/Surrogate$Parser +sun/nio/cs/US_ASCII +sun/nio/cs/US_ASCII$Decoder sun/nio/cs/UTF_16 sun/nio/cs/UTF_16$Decoder +sun/nio/cs/UTF_16BE +sun/nio/cs/UTF_16LE +sun/nio/cs/UTF_8 +sun/nio/cs/UTF_8$Decoder +sun/nio/cs/UTF_8$Encoder +sun/nio/cs/Unicode sun/nio/cs/UnicodeDecoder -sun/font/FileFontStrike -sun/font/TrueTypeGlyphMapper -sun/font/CMap -sun/font/CMap$NullCMapClass -sun/font/CMap$CMapFormat4 -java/nio/ByteBufferAsCharBufferB -sun/font/FontDesignMetrics$KeyReference -sun/awt/image/PNGImageDecoder -sun/awt/image/PNGFilterInputStream -java/util/zip/InflaterInputStream -java/util/zip/Inflater -sun/awt/EventQueueItem -sun/awt/SunToolkit$3 -sun/awt/X11/XExposeEvent -sun/reflect/UnsafeBooleanFieldAccessorImpl -sun/awt/event/IgnorePaintEvent -java/awt/image/DataBufferInt -java/awt/image/SinglePixelPackedSampleModel -sun/awt/image/IntegerInterleavedRaster -sun/awt/image/OffScreenImage -sun/awt/image/BufImgSurfaceData -sun/java2d/opengl/GLXGraphicsConfig -sun/java2d/opengl/OGLGraphicsConfig -sun/java2d/x11/X11SurfaceData$X11PixmapSurfaceData -sun/awt/image/WritableRasterNative -sun/awt/image/DataBufferNative -sun/java2d/SurfaceManagerFactory -sun/java2d/opengl/GLXSurfaceData -sun/java2d/opengl/OGLSurfaceData -sun/font/CompositeGlyphMapper -sun/java2d/loops/FontInfo -java/util/Date +sun/print/PrinterGraphicsConfig +sun/reflect/AccessorGenerator +sun/reflect/BootstrapConstructorAccessorImpl +sun/reflect/ByteVector +sun/reflect/ByteVectorFactory +sun/reflect/ByteVectorImpl +sun/reflect/CallerSensitive +sun/reflect/ClassDefiner +sun/reflect/ClassDefiner$1 +sun/reflect/ClassFileAssembler +sun/reflect/ClassFileConstants +sun/reflect/ConstantPool +sun/reflect/ConstructorAccessor +sun/reflect/ConstructorAccessorImpl +sun/reflect/DelegatingClassLoader +sun/reflect/DelegatingConstructorAccessorImpl +sun/reflect/DelegatingMethodAccessorImpl +sun/reflect/FieldAccessor +sun/reflect/FieldAccessorImpl +sun/reflect/Label +sun/reflect/Label$PatchInfo +sun/reflect/LangReflectAccess +sun/reflect/MagicAccessorImpl +sun/reflect/MethodAccessor +sun/reflect/MethodAccessorGenerator +sun/reflect/MethodAccessorGenerator$1 +sun/reflect/MethodAccessorImpl +sun/reflect/NativeConstructorAccessorImpl +sun/reflect/NativeMethodAccessorImpl +sun/reflect/Reflection +sun/reflect/ReflectionFactory +sun/reflect/ReflectionFactory$1 +sun/reflect/ReflectionFactory$GetReflectionFactoryAction +sun/reflect/SerializationConstructorAccessorImpl +sun/reflect/UTF8 +sun/reflect/UnsafeFieldAccessorFactory +sun/reflect/UnsafeFieldAccessorImpl +sun/reflect/UnsafeObjectFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticLongFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl +sun/reflect/UnsafeStaticFieldAccessorImpl +sun/reflect/annotation/AnnotationType +sun/reflect/generics/repository/AbstractRepository +sun/reflect/generics/repository/ClassRepository +sun/reflect/generics/repository/GenericDeclRepository +sun/reflect/misc/MethodUtil +sun/reflect/misc/MethodUtil$1 +sun/reflect/misc/ReflectUtil +sun/security/action/GetBooleanAction +sun/security/action/GetIntegerAction +sun/security/action/GetPropertyAction +sun/security/jca/GetInstance +sun/security/jca/GetInstance$Instance +sun/security/jca/ProviderConfig +sun/security/jca/ProviderConfig$2 +sun/security/jca/ProviderList +sun/security/jca/ProviderList$1 +sun/security/jca/ProviderList$2 +sun/security/jca/ProviderList$3 +sun/security/jca/ProviderList$ServiceList +sun/security/jca/ProviderList$ServiceList$1 +sun/security/jca/Providers +sun/security/jca/ServiceId +sun/security/provider/ByteArrayAccess +sun/security/provider/DSA +sun/security/provider/DSA$LegacyDSA +sun/security/provider/DSA$SHA1withDSA +sun/security/provider/DSAParameters +sun/security/provider/DSAPublicKey +sun/security/provider/DigestBase +sun/security/provider/NativePRNG +sun/security/provider/NativePRNG$1 +sun/security/provider/NativePRNG$2 +sun/security/provider/NativePRNG$Blocking +sun/security/provider/NativePRNG$NonBlocking +sun/security/provider/NativePRNG$RandomIO +sun/security/provider/NativePRNG$Variant +sun/security/provider/SHA +sun/security/provider/Sun +sun/security/provider/SunEntries +sun/security/provider/SunEntries$1 +sun/security/util/BitArray +sun/security/util/ByteArrayLexOrder +sun/security/util/Debug +sun/security/util/DerEncoder +sun/security/util/DerIndefLenConverter +sun/security/util/DerInputBuffer +sun/security/util/DerInputStream +sun/security/util/DerOutputStream +sun/security/util/DerValue +sun/security/util/ManifestEntryVerifier +sun/security/util/ObjectIdentifier +sun/security/util/SignatureFileVerifier +sun/security/x509/AlgorithmId +sun/security/x509/X509Key +sun/swing/DefaultLookup +sun/swing/ImageIconUIResource +sun/swing/JLightweightFrame +sun/swing/MenuItemLayoutHelper +sun/swing/MenuItemLayoutHelper$ColumnAlignment +sun/swing/MenuItemLayoutHelper$LayoutResult +sun/swing/MenuItemLayoutHelper$RectSize +sun/swing/PrintColorUIResource +sun/swing/StringUIClientPropertyKey +sun/swing/SwingAccessor +sun/swing/SwingAccessor$JTextComponentAccessor +sun/swing/SwingLazyValue +sun/swing/SwingLazyValue$1 +sun/swing/SwingUtilities2 +sun/swing/SwingUtilities2$2 +sun/swing/SwingUtilities2$AATextInfo +sun/swing/SwingUtilities2$LSBCacheEntry +sun/swing/UIAction +sun/swing/UIClientPropertyKey +sun/swing/table/DefaultTableCellHeaderRenderer +sun/swing/table/DefaultTableCellHeaderRenderer$EmptyIcon +sun/text/ComposedCharIter +sun/text/IntHashtable +sun/text/UCompactIntArray +sun/text/normalizer/CharTrie +sun/text/normalizer/CharTrie$FriendAgent +sun/text/normalizer/ICUBinary +sun/text/normalizer/ICUBinary$Authenticate +sun/text/normalizer/ICUData +sun/text/normalizer/IntTrie +sun/text/normalizer/NormalizerDataReader +sun/text/normalizer/NormalizerImpl +sun/text/normalizer/NormalizerImpl$AuxTrieImpl +sun/text/normalizer/NormalizerImpl$DecomposeArgs +sun/text/normalizer/NormalizerImpl$FCDTrieImpl +sun/text/normalizer/NormalizerImpl$NormTrieImpl +sun/text/normalizer/Trie +sun/text/normalizer/Trie$DataManipulate +sun/text/normalizer/UTF16 +sun/text/normalizer/UnicodeMatcher +sun/text/normalizer/UnicodeSet +sun/text/resources/CollationData +sun/text/resources/FormatData +sun/text/resources/en/FormatData_en +sun/text/resources/en/FormatData_en_US +sun/util/CoreResourceBundleControl +sun/util/PreHashedMap +sun/util/ResourceBundleEnumeration +sun/util/calendar/AbstractCalendar +sun/util/calendar/BaseCalendar +sun/util/calendar/BaseCalendar$Date +sun/util/calendar/CalendarDate sun/util/calendar/CalendarSystem +sun/util/calendar/CalendarUtils sun/util/calendar/Gregorian -sun/util/calendar/BaseCalendar -sun/util/calendar/AbstractCalendar -java/util/TimeZone -java/lang/InheritableThreadLocal +sun/util/calendar/Gregorian$Date sun/util/calendar/ZoneInfo sun/util/calendar/ZoneInfoFile sun/util/calendar/ZoneInfoFile$1 -java/util/TimeZone$1 -sun/util/calendar/Gregorian$Date -sun/util/calendar/BaseCalendar$Date -sun/util/calendar/CalendarDate -sun/util/calendar/CalendarUtils -java/util/TimeZone$DisplayNames -sun/util/TimeZoneNameUtility +sun/util/calendar/ZoneInfoFile$Checksum +sun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule +sun/util/locale/BaseLocale +sun/util/locale/BaseLocale$Cache +sun/util/locale/BaseLocale$Key +sun/util/locale/LanguageTag +sun/util/locale/LocaleObjectCache +sun/util/locale/LocaleObjectCache$CacheEntry +sun/util/locale/LocaleUtils +sun/util/locale/provider/AuxLocaleProviderAdapter +sun/util/locale/provider/AuxLocaleProviderAdapter$NullProvider +sun/util/locale/provider/AvailableLanguageTags +sun/util/locale/provider/CalendarDataProviderImpl +sun/util/locale/provider/CalendarDataUtility +sun/util/locale/provider/CalendarDataUtility$CalendarWeekParameterGetter +sun/util/locale/provider/CalendarProviderImpl +sun/util/locale/provider/CollatorProviderImpl +sun/util/locale/provider/CurrencyNameProviderImpl +sun/util/locale/provider/DateFormatSymbolsProviderImpl +sun/util/locale/provider/DecimalFormatSymbolsProviderImpl +sun/util/locale/provider/JRELocaleProviderAdapter +sun/util/locale/provider/JRELocaleProviderAdapter$1 +sun/util/locale/provider/LocaleDataMetaInfo +sun/util/locale/provider/LocaleProviderAdapter +sun/util/locale/provider/LocaleProviderAdapter$1 +sun/util/locale/provider/LocaleProviderAdapter$Type +sun/util/locale/provider/LocaleResources +sun/util/locale/provider/LocaleResources$ResourceReference +sun/util/locale/provider/LocaleServiceProviderPool +sun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter +sun/util/locale/provider/NumberFormatProviderImpl +sun/util/locale/provider/ResourceBundleBasedAdapter +sun/util/locale/provider/SPILocaleProviderAdapter +sun/util/locale/provider/SPILocaleProviderAdapter$1 +sun/util/locale/provider/TimeZoneNameProviderImpl +sun/util/locale/provider/TimeZoneNameUtility +sun/util/locale/provider/TimeZoneNameUtility$TimeZoneNameGetter +sun/util/logging/LoggingProxy +sun/util/logging/LoggingSupport +sun/util/logging/LoggingSupport$1 +sun/util/logging/LoggingSupport$2 +sun/util/logging/PlatformLogger +sun/util/logging/PlatformLogger$1 +sun/util/logging/PlatformLogger$DefaultLoggerProxy +sun/util/logging/PlatformLogger$JavaLoggerProxy +sun/util/logging/PlatformLogger$Level +sun/util/logging/PlatformLogger$LoggerProxy +sun/util/logging/resources/logging +sun/util/resources/CalendarData +sun/util/resources/CurrencyNames +sun/util/resources/LocaleData +sun/util/resources/LocaleData$1 +sun/util/resources/LocaleData$LocaleDataResourceBundleControl +sun/util/resources/LocaleNamesBundle +sun/util/resources/OpenListResourceBundle +sun/util/resources/ParallelListResourceBundle +sun/util/resources/ParallelListResourceBundle$KeySet sun/util/resources/TimeZoneNames sun/util/resources/TimeZoneNamesBundle -sun/util/resources/TimeZoneNames_en -java/util/spi/TimeZoneNameProvider -java/lang/ProcessBuilder -java/lang/ProcessImpl -java/lang/UNIXProcess -java/lang/Process -java/lang/UNIXProcess$1 -java/net/ServerSocket -java/util/Random -java/util/concurrent/atomic/AtomicLong -java/lang/InternalError -java/io/StringReader -java/lang/SecurityException -java/io/FilterReader -java/lang/reflect/Proxy -java/lang/reflect/InvocationHandler -java/lang/NoSuchFieldException -java/lang/InstantiationException -java/lang/ArrayIndexOutOfBoundsException -java/lang/IndexOutOfBoundsException -javax/swing/JDialog -sun/awt/X11/XClipboard -sun/awt/datatransfer/SunClipboard -java/awt/datatransfer/Clipboard -java/awt/datatransfer/SystemFlavorMap -java/awt/datatransfer/FlavorMap -java/awt/datatransfer/FlavorTable -java/awt/datatransfer/SystemFlavorMap$1 -sun/net/ProgressMonitor -sun/net/DefaultProgressMeteringPolicy -sun/net/ProgressMeteringPolicy -java/awt/datatransfer/SystemFlavorMap$2 -java/awt/datatransfer/MimeType -java/io/Externalizable -java/awt/datatransfer/MimeTypeParameterList -sun/awt/datatransfer/DataTransferer -java/util/Collections$SynchronizedSet -java/util/Collections$SynchronizedCollection -java/awt/datatransfer/DataFlavor -java/awt/datatransfer/DataFlavor$1 -sun/awt/datatransfer/DataTransferer$CharsetComparator -sun/awt/datatransfer/DataTransferer$IndexedComparator -sun/nio/cs/UTF_16LE -sun/nio/cs/UTF_16BE -sun/awt/datatransfer/DataTransferer$DataFlavorComparator -java/rmi/Remote -sun/awt/datatransfer/DataTransferer$1 -sun/awt/X11/XDataTransferer -sun/awt/datatransfer/ToolkitThreadBlockedHandler -javax/imageio/ImageTypeSpecifier -sun/awt/X11/XSelection -sun/security/action/GetIntegerAction -sun/awt/X11/XSelection$IncrementalTransferHandler -sun/awt/X11/XSelection$SelectionEventHandler -java/awt/datatransfer/Transferable -java/io/EOFException -java/util/Vector$1 -java/util/zip/ZipFile$1 -java/util/zip/ZipFile$2 -java/util/jar/JarFile$1 -java/util/PropertyResourceBundle -java/util/ResourceBundle$Control$1 -java/util/Hashtable$EntrySet -java/lang/IllegalAccessError -java/text/MessageFormat -java/text/MessageFormat$Field -java/text/Format$Field -java/lang/CloneNotSupportedException -sun/reflect/MethodAccessorGenerator -sun/reflect/AccessorGenerator -sun/reflect/ClassFileConstants -java/lang/Void -sun/reflect/ByteVectorFactory -sun/reflect/ByteVectorImpl -sun/reflect/ByteVector -sun/reflect/ClassFileAssembler -sun/reflect/UTF8 -sun/reflect/Label -sun/reflect/Label$PatchInfo -sun/reflect/MethodAccessorGenerator$1 -sun/reflect/ClassDefiner -sun/reflect/ClassDefiner$1 -sun/reflect/BootstrapConstructorAccessorImpl -java/awt/event/ActionListener -javax/swing/Timer -javax/swing/Timer$DoPostEvent -javax/swing/TimerQueue -javax/swing/TimerQueue$1 -javax/swing/ToolTipManager -java/awt/event/MouseAdapter -javax/swing/ToolTipManager$insideTimerAction -javax/swing/ToolTipManager$outsideTimerAction -javax/swing/ToolTipManager$stillInsideTimerAction -sun/swing/UIAction -javax/swing/Action -javax/swing/ToolTipManager$MoveBeforeEnterListener -java/awt/event/MouseMotionAdapter -java/util/Hashtable$ValueCollection -javax/swing/event/CaretListener -javax/swing/JToolBar -javax/swing/JSplitPane -javax/swing/border/Border -javax/swing/JToggleButton -javax/swing/border/EmptyBorder -javax/swing/border/AbstractBorder -javax/swing/DefaultButtonModel -javax/swing/ButtonModel -javax/swing/AbstractButton$Handler -javax/swing/event/ChangeListener -java/awt/event/ItemListener -javax/swing/plaf/metal/MetalButtonUI -javax/swing/plaf/basic/BasicButtonUI -javax/swing/plaf/ButtonUI -javax/swing/plaf/metal/MetalBorders -javax/swing/plaf/BorderUIResource$CompoundBorderUIResource -javax/swing/border/CompoundBorder -javax/swing/plaf/metal/MetalBorders$ButtonBorder -javax/swing/plaf/basic/BasicBorders$MarginBorder -javax/swing/plaf/basic/BasicButtonListener -java/awt/AWTEventMulticaster -java/awt/event/WindowFocusListener -java/awt/event/WindowStateListener -java/awt/event/AdjustmentListener -java/awt/event/TextListener -javax/swing/event/AncestorListener -java/beans/VetoableChangeListener -javax/swing/ButtonGroup -javax/swing/JToggleButton$ToggleButtonModel -javax/swing/plaf/metal/MetalToggleButtonUI -javax/swing/plaf/basic/BasicToggleButtonUI -javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder -java/awt/CardLayout -javax/swing/Box -javax/swing/plaf/metal/MetalBorders$TextFieldBorder -javax/swing/plaf/metal/MetalBorders$Flush3DBorder -javax/swing/BoxLayout -javax/swing/JMenuBar -javax/swing/DefaultSingleSelectionModel -javax/swing/SingleSelectionModel -javax/swing/plaf/basic/BasicMenuBarUI -javax/swing/plaf/MenuBarUI -javax/swing/plaf/basic/DefaultMenuLayout -javax/swing/plaf/metal/MetalBorders$MenuBarBorder -javax/swing/plaf/basic/BasicMenuBarUI$Handler -javax/swing/KeyboardManager -javax/swing/event/MenuEvent -javax/swing/JMenu$MenuChangeListener -javax/swing/JMenuItem$MenuItemFocusListener -javax/swing/plaf/basic/BasicMenuUI -javax/swing/plaf/basic/BasicMenuItemUI -javax/swing/plaf/MenuItemUI -javax/swing/plaf/metal/MetalBorders$MenuItemBorder -javax/swing/plaf/metal/MetalIconFactory -javax/swing/plaf/metal/MetalIconFactory$MenuArrowIcon -javax/swing/plaf/basic/BasicMenuUI$Handler -javax/swing/event/MenuKeyListener -javax/swing/plaf/basic/BasicMenuItemUI$Handler -javax/swing/event/MenuDragMouseListener -javax/swing/event/MouseInputListener -javax/swing/event/ChangeEvent -java/awt/event/ContainerEvent -javax/swing/plaf/metal/MetalIconFactory$MenuItemArrowIcon -javax/swing/JPopupMenu -javax/swing/plaf/basic/BasicPopupMenuUI -javax/swing/plaf/PopupMenuUI -javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper -java/awt/event/AWTEventListenerProxy -java/awt/Toolkit$SelectiveAWTEventListener -java/awt/Toolkit$ToolkitEventMulticaster -javax/swing/plaf/basic/BasicLookAndFeel$1 -javax/swing/plaf/metal/MetalBorders$PopupMenuBorder -javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener -javax/swing/event/PopupMenuListener -javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener -javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber -javax/swing/MenuSelectionManager -javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper -javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper$1 -java/awt/event/FocusAdapter -javax/swing/JMenu$WinListener -java/awt/event/WindowAdapter -javax/swing/JPopupMenu$Separator -javax/swing/JSeparator -javax/swing/plaf/metal/MetalPopupMenuSeparatorUI -javax/swing/plaf/metal/MetalSeparatorUI -javax/swing/plaf/basic/BasicSeparatorUI -javax/swing/plaf/SeparatorUI -javax/swing/JComboBox -javax/swing/event/ListDataListener -javax/swing/event/CaretEvent -javax/swing/text/TabExpander -javax/swing/JScrollBar -java/awt/Adjustable -javax/swing/event/MouseInputAdapter -javax/swing/JScrollBar$ModelListener -javax/swing/DefaultBoundedRangeModel -javax/swing/BoundedRangeModel -javax/swing/plaf/metal/MetalScrollBarUI -javax/swing/plaf/basic/BasicScrollBarUI -javax/swing/plaf/ScrollBarUI -javax/swing/plaf/metal/MetalBumps -javax/swing/plaf/metal/MetalScrollButton -javax/swing/plaf/basic/BasicArrowButton -javax/swing/plaf/basic/BasicScrollBarUI$TrackListener -javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener -javax/swing/plaf/basic/BasicScrollBarUI$ModelListener -javax/swing/plaf/metal/MetalScrollBarUI$ScrollBarListener -javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler -javax/swing/plaf/basic/BasicScrollBarUI$Handler -javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener -javax/swing/CellRendererPane -java/util/HashMap$EntryIterator -javax/swing/border/MatteBorder -sun/font/StandardGlyphVector -java/awt/font/GlyphVector -sun/font/StandardGlyphVector$GlyphStrike -sun/font/CoreMetrics -sun/font/FontLineMetrics -java/awt/font/LineMetrics -javax/swing/ComboBoxModel -javax/swing/ListModel -javax/swing/ListCellRenderer -javax/swing/DefaultComboBoxModel -javax/swing/MutableComboBoxModel -javax/swing/AbstractListModel -javax/swing/JComboBox$1 -javax/swing/AncestorNotifier -javax/swing/plaf/metal/MetalComboBoxUI -javax/swing/plaf/basic/BasicComboBoxUI -javax/swing/plaf/ComboBoxUI -javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager -javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager -javax/swing/plaf/basic/BasicComboPopup -javax/swing/plaf/basic/ComboPopup -javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass -javax/swing/border/LineBorder -javax/swing/plaf/basic/BasicComboPopup$1 -javax/swing/JList -javax/swing/DropMode -javax/swing/DefaultListSelectionModel -javax/swing/ListSelectionModel -javax/swing/plaf/basic/BasicListUI -javax/swing/plaf/ListUI -javax/swing/plaf/basic/BasicListUI$ListTransferHandler -javax/swing/TransferHandler -javax/swing/TransferHandler$TransferAction -javax/swing/DefaultListCellRenderer$UIResource -javax/swing/DefaultListCellRenderer -javax/swing/TransferHandler$SwingDropTarget -java/awt/dnd/DropTargetContext -javax/swing/TransferHandler$DropHandler -javax/swing/TransferHandler$TransferSupport -javax/swing/plaf/basic/BasicListUI$Handler -javax/swing/event/ListSelectionListener -javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag -javax/swing/plaf/basic/BasicComboPopup$Handler -javax/swing/JScrollPane -javax/swing/ScrollPaneConstants -javax/swing/ScrollPaneLayout$UIResource -javax/swing/ScrollPaneLayout -javax/swing/JViewport -javax/swing/ViewportLayout -javax/swing/plaf/basic/BasicViewportUI -javax/swing/plaf/ViewportUI -javax/swing/JScrollPane$ScrollBar -javax/swing/JViewport$ViewListener -java/awt/event/ComponentAdapter -javax/swing/plaf/metal/MetalScrollPaneUI -javax/swing/plaf/basic/BasicScrollPaneUI -javax/swing/plaf/ScrollPaneUI -javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder -javax/swing/plaf/basic/BasicScrollPaneUI$Handler -javax/swing/plaf/metal/MetalScrollPaneUI$1 -javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource -javax/swing/plaf/basic/BasicComboBoxRenderer -javax/swing/plaf/metal/MetalComboBoxEditor$UIResource -javax/swing/plaf/metal/MetalComboBoxEditor -javax/swing/plaf/basic/BasicComboBoxEditor -javax/swing/ComboBoxEditor -javax/swing/plaf/basic/BasicComboBoxEditor$BorderlessTextField -javax/swing/JTextField$NotifyAction -javax/swing/text/TextAction -javax/swing/AbstractAction -javax/swing/text/JTextComponent$MutableCaretEvent -javax/swing/plaf/metal/MetalTextFieldUI -javax/swing/plaf/basic/BasicTextFieldUI -javax/swing/plaf/basic/BasicTextUI -javax/swing/text/ViewFactory -javax/swing/plaf/TextUI -javax/swing/plaf/basic/BasicTextUI$BasicCursor -javax/swing/text/DefaultEditorKit -javax/swing/text/EditorKit -javax/swing/text/DefaultEditorKit$InsertContentAction -javax/swing/text/DefaultEditorKit$DeletePrevCharAction -javax/swing/text/DefaultEditorKit$DeleteNextCharAction -javax/swing/text/DefaultEditorKit$ReadOnlyAction -javax/swing/text/DefaultEditorKit$DeleteWordAction -javax/swing/text/DefaultEditorKit$WritableAction -javax/swing/text/DefaultEditorKit$CutAction -javax/swing/text/DefaultEditorKit$CopyAction -javax/swing/text/DefaultEditorKit$PasteAction -javax/swing/text/DefaultEditorKit$VerticalPageAction -javax/swing/text/DefaultEditorKit$PageAction -javax/swing/text/DefaultEditorKit$InsertBreakAction -javax/swing/text/DefaultEditorKit$BeepAction -javax/swing/text/DefaultEditorKit$NextVisualPositionAction -javax/swing/text/DefaultEditorKit$BeginWordAction -javax/swing/text/DefaultEditorKit$EndWordAction -javax/swing/text/DefaultEditorKit$PreviousWordAction -javax/swing/text/DefaultEditorKit$NextWordAction -javax/swing/text/DefaultEditorKit$BeginLineAction -javax/swing/text/DefaultEditorKit$EndLineAction -javax/swing/text/DefaultEditorKit$BeginParagraphAction -javax/swing/text/DefaultEditorKit$EndParagraphAction -javax/swing/text/DefaultEditorKit$BeginAction -javax/swing/text/DefaultEditorKit$EndAction -javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction -javax/swing/text/DefaultEditorKit$InsertTabAction -javax/swing/text/DefaultEditorKit$SelectWordAction -javax/swing/text/DefaultEditorKit$SelectLineAction -javax/swing/text/DefaultEditorKit$SelectParagraphAction -javax/swing/text/DefaultEditorKit$SelectAllAction -javax/swing/text/DefaultEditorKit$UnselectAction -javax/swing/text/DefaultEditorKit$ToggleComponentOrientationAction -javax/swing/text/DefaultEditorKit$DumpModelAction -javax/swing/plaf/basic/BasicTextUI$TextTransferHandler -javax/swing/text/Position$Bias -javax/swing/plaf/basic/BasicTextUI$RootView -javax/swing/text/View -javax/swing/plaf/basic/BasicTextUI$UpdateHandler -javax/swing/event/DocumentListener -javax/swing/plaf/basic/BasicTextUI$DragListener -javax/swing/plaf/basic/BasicComboBoxEditor$UIResource -javax/swing/plaf/basic/BasicTextUI$BasicCaret -javax/swing/text/DefaultCaret -javax/swing/text/Caret -javax/swing/text/DefaultCaret$Handler -java/awt/datatransfer/ClipboardOwner -javax/swing/plaf/basic/BasicTextUI$BasicHighlighter -javax/swing/text/DefaultHighlighter -javax/swing/text/LayeredHighlighter -javax/swing/text/Highlighter -javax/swing/text/Highlighter$Highlight -javax/swing/text/DefaultHighlighter$DefaultHighlightPainter -javax/swing/text/LayeredHighlighter$LayerPainter -javax/swing/text/Highlighter$HighlightPainter -javax/swing/text/DefaultHighlighter$SafeDamager -javax/swing/text/FieldView -javax/swing/text/PlainView -javax/swing/text/JTextComponent$DefaultKeymap -javax/swing/text/Keymap -javax/swing/text/JTextComponent$KeymapWrapper -javax/swing/text/JTextComponent$KeymapActionMap -javax/swing/plaf/basic/BasicTextUI$FocusAction -javax/swing/plaf/basic/BasicTextUI$TextActionWrapper -javax/swing/JTextArea -javax/swing/JEditorPane -javax/swing/JTextField$ScrollRepainter -javax/swing/plaf/metal/MetalComboBoxEditor$1 -javax/swing/plaf/metal/MetalComboBoxEditor$EditorBorder -javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener -javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler -javax/swing/plaf/basic/BasicComboBoxUI$Handler -javax/swing/plaf/metal/MetalComboBoxButton -javax/swing/plaf/metal/MetalComboBoxIcon -javax/swing/plaf/metal/MetalComboBoxButton$1 -javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager -javax/swing/JComboBox$KeySelectionManager -javax/swing/JToolBar$DefaultToolBarLayout -javax/swing/plaf/metal/MetalToolBarUI -javax/swing/plaf/basic/BasicToolBarUI -javax/swing/plaf/ToolBarUI -javax/swing/plaf/metal/MetalBorders$ToolBarBorder -javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue$1 -javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder -javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder -javax/swing/plaf/basic/BasicBorders$RadioButtonBorder -javax/swing/plaf/basic/BasicBorders$ButtonBorder -javax/swing/plaf/basic/BasicBorders$RolloverMarginBorder -javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener -javax/swing/plaf/basic/BasicToolBarUI$DockingListener -javax/swing/plaf/basic/BasicToolBarUI$Handler -javax/swing/border/EtchedBorder -javax/swing/JToolBar$Separator -javax/swing/plaf/basic/BasicToolBarSeparatorUI -java/applet/Applet -java/awt/Panel -com/sun/awt/AWTUtilities -javax/swing/KeyboardManager$ComponentKeyStrokePair -sun/awt/EmbeddedFrame -sun/awt/im/InputMethodContext -java/awt/im/spi/InputMethodContext -sun/awt/im/InputContext -sun/awt/im/InputMethodManager -sun/awt/im/ExecutableInputMethodManager -sun/awt/X11/XInputMethodDescriptor -sun/awt/X11InputMethodDescriptor -java/awt/im/spi/InputMethodDescriptor -sun/awt/im/InputMethodLocator -sun/awt/im/ExecutableInputMethodManager$2 -sun/misc/Service -sun/misc/Service$LazyIterator -java/util/TreeSet -java/util/NavigableSet -java/util/SortedSet -javax/swing/SizeRequirements -javax/swing/plaf/basic/BasicGraphicsUtils -java/awt/event/AdjustmentEvent -java/awt/MenuBar -sun/awt/X11/XComponentPeer$2 -java/awt/SequencedEvent -java/beans/PropertyVetoException -java/awt/DefaultKeyboardFocusManager$TypeAheadMarker -java/awt/KeyboardFocusManager$HeavyweightFocusRequest -java/awt/KeyboardFocusManager$LightweightFocusRequest -sun/awt/KeyboardFocusManagerPeerImpl -sun/awt/SunToolkit$7 -java/awt/Window$1DisposeAction -java/awt/LightweightDispatcher$2 -sun/awt/X11/XReparentEvent -sun/awt/X11/XWindowAttributes -sun/awt/X11/XFocusChangeEvent -sun/awt/X11/XComponentPeer$1 -sun/awt/X11/XUnmapEvent -java/io/StringWriter -javax/swing/JWindow -java/io/UnsupportedEncodingException -java/net/UnknownHostException -java/nio/channels/SocketChannel -java/nio/channels/spi/AbstractSelectableChannel -java/nio/channels/SelectableChannel -java/net/SocketImplFactory -javax/swing/UnsupportedLookAndFeelException -java/lang/UnsatisfiedLinkError -javax/swing/Box$Filler -javax/swing/JComponent$2 -sun/net/www/MimeTable -java/net/FileNameMap -sun/net/www/MimeTable$1 -sun/net/www/MimeEntry -java/net/URLConnection$1 -java/text/SimpleDateFormat -java/text/DateFormat -java/text/DateFormat$Field -java/util/Calendar -java/util/GregorianCalendar -sun/util/resources/CalendarData -sun/util/resources/CalendarData_en -java/text/DateFormatSymbols -java/text/spi/DateFormatSymbolsProvider -java/text/DontCareFieldPosition -java/text/DontCareFieldPosition$1 -java/text/Format$FieldDelegate -javax/swing/plaf/BorderUIResource -javax/swing/BorderFactory -javax/swing/border/BevelBorder -javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon -javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 -java/util/zip/ZipInputStream -java/io/PushbackInputStream -java/util/zip/CRC32 -java/util/zip/Checksum -java/lang/Thread$State -javax/swing/SwingUtilities$SharedOwnerFrame -javax/swing/JTable -javax/swing/event/TableModelListener -javax/swing/event/TableColumnModelListener -javax/swing/event/CellEditorListener -javax/swing/event/RowSorterListener -javax/swing/BufferStrategyPaintManager$BufferInfo -java/awt/Component$BltSubRegionBufferStrategy -sun/awt/SubRegionShowable -java/awt/Component$BltBufferStrategy -sun/awt/image/SunVolatileImage -sun/awt/image/BufferedImageGraphicsConfig -sun/print/PrinterGraphicsConfig -sun/java2d/x11/X11VolatileSurfaceManager -sun/awt/image/VolatileSurfaceManager -java/awt/print/PrinterGraphics -java/awt/PrintGraphics -java/awt/GraphicsCallback$PaintCallback -java/awt/GraphicsCallback -sun/awt/SunGraphicsCallback -javax/swing/JRadioButton -java/lang/ClassFormatError -javax/swing/JTabbedPane -javax/swing/JTabbedPane$ModelListener -javax/swing/plaf/metal/MetalTabbedPaneUI -javax/swing/plaf/basic/BasicTabbedPaneUI -javax/swing/plaf/TabbedPaneUI -javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$Handler -sun/swing/ImageIconUIResource -javax/swing/GrayFilter -java/awt/image/RGBImageFilter -java/awt/image/ImageFilter -java/awt/image/FilteredImageSource -org/w3c/dom/Node -org/xml/sax/SAXException -javax/xml/parsers/ParserConfigurationException -org/xml/sax/EntityResolver -java/security/NoSuchAlgorithmException -java/security/GeneralSecurityException -java/util/zip/GZIPInputStream -java/util/zip/DeflaterOutputStream -org/xml/sax/InputSource -javax/xml/parsers/DocumentBuilderFactory -javax/xml/parsers/FactoryFinder -javax/xml/parsers/SecuritySupport -javax/xml/parsers/SecuritySupport$2 -javax/xml/parsers/SecuritySupport$5 -javax/xml/parsers/SecuritySupport$1 -javax/xml/parsers/SecuritySupport$4 -javax/xml/parsers/DocumentBuilder -org/w3c/dom/Document -org/xml/sax/helpers/DefaultHandler -org/xml/sax/DTDHandler -org/xml/sax/ContentHandler -org/xml/sax/ErrorHandler -org/xml/sax/SAXNotSupportedException -org/xml/sax/Locator -org/xml/sax/SAXNotRecognizedException -org/xml/sax/SAXParseException -org/w3c/dom/NodeList -org/w3c/dom/events/EventTarget -org/w3c/dom/traversal/DocumentTraversal -org/w3c/dom/events/DocumentEvent -org/w3c/dom/ranges/DocumentRange -org/w3c/dom/Entity -org/w3c/dom/Element -org/w3c/dom/CharacterData -org/w3c/dom/CDATASection -org/w3c/dom/Text -org/xml/sax/AttributeList -org/w3c/dom/DOMException -org/w3c/dom/Notation -org/w3c/dom/DocumentType -org/w3c/dom/Attr -org/w3c/dom/EntityReference -org/w3c/dom/ProcessingInstruction -org/w3c/dom/Comment -org/w3c/dom/DocumentFragment -org/w3c/dom/events/Event -org/w3c/dom/events/MutationEvent -org/w3c/dom/traversal/TreeWalker -org/w3c/dom/ranges/Range -org/w3c/dom/traversal/NodeIterator -org/w3c/dom/events/EventException -org/w3c/dom/NamedNodeMap -java/lang/StringIndexOutOfBoundsException -java/awt/GridLayout -javax/swing/plaf/metal/MetalRadioButtonUI -javax/swing/plaf/basic/BasicRadioButtonUI -javax/swing/plaf/basic/BasicBorders -javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon -java/awt/event/ItemEvent -java/awt/CardLayout$Card -javax/swing/JCheckBox -javax/swing/event/ListSelectionEvent -javax/swing/plaf/metal/MetalCheckBoxUI -javax/swing/plaf/metal/MetalIconFactory$CheckBoxIcon -java/lang/ExceptionInInitializerError -com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI -javax/swing/JProgressBar -javax/swing/JProgressBar$ModelListener -javax/swing/plaf/metal/MetalProgressBarUI -javax/swing/plaf/basic/BasicProgressBarUI -javax/swing/plaf/ProgressBarUI -javax/swing/plaf/BorderUIResource$LineBorderUIResource -javax/swing/plaf/basic/BasicProgressBarUI$Handler -javax/swing/tree/TreeModel -javax/swing/table/TableCellRenderer -javax/swing/table/JTableHeader -javax/swing/event/TreeExpansionListener -javax/swing/table/AbstractTableModel -javax/swing/table/TableModel -javax/swing/table/DefaultTableCellRenderer -javax/swing/JTree -javax/swing/tree/TreeSelectionModel -javax/swing/tree/DefaultTreeCellRenderer -javax/swing/tree/TreeCellRenderer -javax/swing/table/TableCellEditor -javax/swing/CellEditor -javax/swing/JToolTip -javax/swing/table/TableColumn -javax/swing/table/DefaultTableColumnModel -javax/swing/table/TableColumnModel -javax/swing/table/DefaultTableModel -javax/swing/event/TableModelEvent -sun/swing/table/DefaultTableCellHeaderRenderer -javax/swing/plaf/basic/BasicTableHeaderUI -javax/swing/plaf/TableHeaderUI -javax/swing/plaf/basic/BasicTableHeaderUI$1 -javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler -javax/swing/DefaultCellEditor -javax/swing/tree/TreeCellEditor -javax/swing/AbstractCellEditor -javax/swing/plaf/basic/BasicTableUI -javax/swing/plaf/TableUI -javax/swing/plaf/basic/BasicTableUI$TableTransferHandler -javax/swing/plaf/basic/BasicTableUI$Handler -javax/swing/tree/DefaultTreeSelectionModel -javax/swing/tree/TreePath -javax/swing/plaf/metal/MetalTreeUI -javax/swing/plaf/basic/BasicTreeUI -javax/swing/plaf/TreeUI -javax/swing/plaf/basic/BasicTreeUI$Actions -javax/swing/plaf/basic/BasicTreeUI$TreeTransferHandler -javax/swing/plaf/metal/MetalTreeUI$LineListener -javax/swing/plaf/basic/BasicTreeUI$Handler -javax/swing/event/TreeModelListener -javax/swing/event/TreeSelectionListener -javax/swing/event/SwingPropertyChangeSupport -javax/swing/tree/VariableHeightLayoutCache -javax/swing/tree/AbstractLayoutCache -javax/swing/tree/RowMapper -javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler -javax/swing/tree/AbstractLayoutCache$NodeDimensions -javax/swing/JTree$TreeModelHandler -javax/swing/tree/VariableHeightLayoutCache$TreeStateNode -javax/swing/tree/DefaultMutableTreeNode -javax/swing/tree/MutableTreeNode -javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration -javax/swing/event/TableColumnModelEvent -java/text/ParseException -java/text/NumberFormat$Field -javax/swing/event/UndoableEditListener -javax/swing/filechooser/FileFilter -javax/swing/tree/DefaultTreeModel -javax/swing/tree/DefaultTreeCellEditor -javax/swing/tree/DefaultTreeCellEditor$1 -javax/swing/tree/DefaultTreeCellEditor$DefaultTextField -javax/swing/DefaultCellEditor$1 -javax/swing/DefaultCellEditor$EditorDelegate -javax/swing/tree/DefaultTreeCellEditor$EditorContainer -javax/swing/JTree$TreeSelectionRedirector -javax/swing/event/TreeModelEvent -javax/swing/plaf/metal/MetalSplitPaneUI -javax/swing/plaf/basic/BasicSplitPaneUI -javax/swing/plaf/SplitPaneUI -javax/swing/plaf/basic/BasicSplitPaneDivider -javax/swing/plaf/basic/BasicBorders$SplitPaneBorder -javax/swing/plaf/metal/MetalSplitPaneDivider -javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout -javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler -javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder -javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager -javax/swing/plaf/basic/BasicSplitPaneUI$1 -javax/swing/plaf/basic/BasicSplitPaneUI$Handler -javax/swing/plaf/metal/MetalSplitPaneDivider$1 -javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchActionHandler -javax/swing/plaf/metal/MetalSplitPaneDivider$2 -javax/swing/border/TitledBorder -javax/swing/plaf/basic/BasicTextAreaUI -java/util/Collections$UnmodifiableCollection$1 -java/io/InterruptedIOException -java/net/NoRouteToHostException -java/net/BindException -javax/swing/tree/PathPlaceHolder -javax/swing/event/TreeSelectionEvent -javax/swing/JList$3 -javax/swing/JList$ListSelectionHandler -javax/swing/JSlider -javax/swing/JSlider$ModelListener -javax/swing/plaf/metal/MetalSliderUI -javax/swing/plaf/basic/BasicSliderUI -javax/swing/plaf/SliderUI -javax/swing/plaf/basic/BasicSliderUI$Actions -javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon -javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon -javax/swing/plaf/basic/BasicSliderUI$TrackListener -javax/swing/plaf/basic/BasicSliderUI$Handler -javax/swing/plaf/basic/BasicSliderUI$ScrollListener -javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener -javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler -sun/java2d/HeadlessGraphicsEnvironment -java/util/Hashtable$KeySet -java/awt/FontFormatException -sun/font/Type1Font$1 -java/nio/channels/FileChannel$MapMode -sun/nio/ch/FileChannelImpl$Unmapper -sun/nio/ch/Util$3 -java/nio/DirectByteBufferR -java/nio/charset/Charset$3 -sun/nio/cs/AbstractCharsetProvider -sun/nio/cs/SingleByteDecoder -java/lang/CharacterData00 -javax/swing/DefaultListModel -javax/swing/event/ListDataEvent -javax/sound/sampled/DataLine -javax/sound/sampled/Line -javax/sound/sampled/Line$Info -javax/sound/sampled/DataLine$Info -javax/sound/sampled/Control$Type -javax/sound/sampled/FloatControl$Type -javax/sound/sampled/LineUnavailableException -javax/sound/sampled/UnsupportedAudioFileException -javax/swing/JRadioButtonMenuItem -javax/swing/JMenuItem$AccessibleJMenuItem -javax/swing/AbstractButton$AccessibleAbstractButton -javax/accessibility/AccessibleAction -javax/accessibility/AccessibleValue -javax/accessibility/AccessibleText -javax/accessibility/AccessibleExtendedComponent -javax/accessibility/AccessibleComponent -javax/swing/JComponent$AccessibleJComponent -java/awt/Container$AccessibleAWTContainer -java/awt/Component$AccessibleAWTComponent -javax/accessibility/AccessibleRelationSet -javax/accessibility/AccessibleState -javax/accessibility/AccessibleBundle -javax/swing/plaf/basic/BasicCheckBoxMenuItemUI -javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon -javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem -javax/swing/plaf/basic/BasicRadioButtonMenuItemUI -javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon -sun/awt/image/ImageDecoder$1 -javax/swing/JTabbedPane$Page -java/net/DatagramSocket -java/net/MulticastSocket -java/net/DatagramPacket -sun/net/InetAddressCachePolicy -sun/net/InetAddressCachePolicy$1 -sun/net/InetAddressCachePolicy$2 -java/net/InetAddress$CacheEntry -java/net/PlainDatagramSocketImpl -java/net/DatagramSocketImpl -java/net/NetworkInterface -java/net/InterfaceAddress -java/text/Collator -java/text/spi/CollatorProvider -sun/text/resources/CollationData -sun/text/resources/CollationData_en -sun/util/EmptyListResourceBundle -java/text/RuleBasedCollator -java/text/CollationRules -java/text/RBCollationTables -java/text/RBTableBuilder -java/text/RBCollationTables$BuildAPI -sun/text/IntHashtable -sun/text/UCompactIntArray -sun/text/normalizer/NormalizerImpl -sun/text/normalizer/ICUData -sun/text/normalizer/NormalizerDataReader -sun/text/normalizer/ICUBinary$Authenticate -sun/text/normalizer/ICUBinary -sun/text/normalizer/NormalizerImpl$FCDTrieImpl -sun/text/normalizer/Trie$DataManipulate -sun/text/normalizer/NormalizerImpl$NormTrieImpl -sun/text/normalizer/NormalizerImpl$AuxTrieImpl -sun/text/normalizer/IntTrie -sun/text/normalizer/Trie -sun/text/normalizer/CharTrie -sun/text/normalizer/CharTrie$FriendAgent -sun/text/normalizer/UnicodeSet -sun/text/normalizer/UnicodeMatcher -sun/text/normalizer/NormalizerImpl$DecomposeArgs -java/text/MergeCollation -java/text/PatternEntry$Parser -java/text/PatternEntry -java/text/EntryPair -sun/text/ComposedCharIter -sun/text/normalizer/UTF16 -sun/net/www/protocol/http/Handler -java/io/ObjectInputStream$BlockDataInputStream -java/io/ObjectInputStream$PeekInputStream -java/io/ObjectInputStream$HandleTable -java/io/ObjectInputStream$ValidationList -java/io/Bits -java/io/ObjectStreamClass$Caches -java/io/ObjectStreamClass$WeakClassKey -java/io/ObjectStreamClass$EntryFuture -java/io/ObjectStreamClass$2 -sun/reflect/SerializationConstructorAccessorImpl -java/io/ObjectStreamClass$FieldReflectorKey -java/io/ObjectStreamClass$FieldReflector -java/io/ObjectStreamClass$1 -java/io/DataOutputStream -java/io/ObjectStreamClass$MemberSignature -java/io/ObjectStreamClass$3 -java/io/ObjectStreamClass$4 -java/io/ObjectStreamClass$5 -java/security/MessageDigest -java/security/MessageDigestSpi -sun/security/jca/GetInstance -sun/security/jca/Providers -sun/security/jca/ProviderList -sun/security/jca/ProviderConfig -sun/security/jca/ProviderList$3 -sun/security/jca/ProviderList$1 -sun/security/jca/ProviderList$2 -sun/security/jca/ProviderConfig$1 -sun/security/jca/ProviderConfig$3 -java/security/Provider$Service -java/security/Provider$UString -sun/security/provider/SHA -sun/security/provider/DigestBase -sun/security/jca/GetInstance$Instance -java/security/MessageDigest$Delegate -sun/security/provider/ByteArrayAccess -java/io/ObjectStreamClass$ClassDataSlot -sun/reflect/UnsafeQualifiedStaticLongFieldAccessorImpl -java/security/SignatureException -java/security/InvalidKeyException -java/security/KeyException -java/security/Signature -java/security/SignatureSpi -java/io/ObjectOutputStream$BlockDataOutputStream -sun/security/provider/DSAPublicKey -java/security/interfaces/DSAPublicKey -java/security/interfaces/DSAKey -java/security/PublicKey -java/security/Key -sun/security/x509/X509Key -java/io/ObjectOutputStream$HandleTable -java/io/ObjectOutputStream$ReplaceTable -sun/security/x509/AlgorithmId -sun/security/util/DerEncoder -sun/security/util/BitArray -sun/security/util/DerOutputStream -sun/security/util/DerValue -java/math/BigInteger -java/security/interfaces/DSAParams -sun/security/util/DerInputStream -sun/security/util/DerInputBuffer -sun/security/util/ObjectIdentifier -java/security/AlgorithmParameters -java/security/AlgorithmParametersSpi -sun/security/provider/DSAParameters -sun/security/util/ByteArrayLexOrder -sun/security/util/ByteArrayTagOrder -sun/security/util/DerIndefLenConverter -java/io/InvalidClassException -java/io/ObjectStreamException -java/io/ObjectInputStream$GetFieldImpl -java/io/ObjectInputStream$GetField -sun/security/jca/ServiceId -sun/security/jca/ProviderList$ServiceList -sun/security/jca/ProviderList$ServiceList$1 -java/security/Signature$Delegate -java/security/interfaces/DSAPrivateKey -java/security/PrivateKey -sun/security/provider/DSA$SHA1withDSA -sun/security/provider/DSA -java/security/spec/DSAParameterSpec -java/security/spec/AlgorithmParameterSpec -java/math/MutableBigInteger -java/math/SignedMutableBigInteger -java/awt/EventQueue$1AWTInvocationLock -java/awt/Component$FlipBufferStrategy -java/awt/SentEvent -sun/awt/X11/XDestroyWindowEvent -sun/awt/X11/XDropTargetRegistry -sun/awt/X11/XEmbeddedFramePeer -sun/awt/X11/XDragAndDropProtocols -sun/awt/X11/XDropTargetContextPeer -sun/awt/dnd/SunDropTargetContextPeer -java/awt/dnd/peer/DropTargetContextPeer -sun/awt/X11/XDropTargetContextPeer$XDropTargetProtocolListenerImpl -sun/awt/X11/XDropTargetProtocolListener -sun/awt/X11/XDnDDragSourceProtocol -sun/awt/X11/XDragSourceProtocol -sun/awt/X11/MotifDnDDragSourceProtocol -sun/awt/X11/XDnDDropTargetProtocol -sun/awt/X11/XDropTargetProtocol -sun/awt/X11/MotifDnDDropTargetProtocol -sun/awt/X11/XDnDConstants -sun/awt/X11/MotifDnDConstants -javax/swing/JTable$2 -javax/swing/JTable$Resizable3 -javax/swing/JTable$Resizable2 -javax/swing/JTable$5 -javax/swing/event/AncestorEvent -sun/font/FontDesignMetrics$MetricsKey -java/awt/geom/Line2D$Float -java/awt/geom/Line2D -com/sun/java/swing/plaf/gtk/GTKLookAndFeel -javax/swing/plaf/synth/SynthLookAndFeel -javax/swing/plaf/synth/DefaultSynthStyleFactory -javax/swing/plaf/synth/SynthStyleFactory -sun/swing/BakedArrayList -javax/swing/plaf/synth/SynthLookAndFeel$Handler -javax/swing/plaf/synth/SynthDefaultLookup -com/sun/java/swing/plaf/gtk/GTKEngine -com/sun/java/swing/plaf/gtk/GTKEngine$Settings -com/sun/java/swing/plaf/gtk/GTKStyleFactory -com/sun/java/swing/plaf/gtk/PangoFonts -com/sun/java/swing/plaf/gtk/GTKLookAndFeel$WeakPCL -javax/swing/plaf/synth/Region -javax/swing/plaf/synth/SynthLookAndFeel$AATextListener -com/sun/java/swing/plaf/gtk/GTKRegion -com/sun/java/swing/plaf/gtk/GTKStyle -com/sun/java/swing/plaf/gtk/GTKConstants -javax/swing/plaf/synth/SynthStyle -javax/swing/plaf/synth/SynthGraphicsUtils -com/sun/java/swing/plaf/gtk/GTKGraphicsUtils -com/sun/java/swing/plaf/gtk/GTKStyle$GTKStockIcon -sun/swing/plaf/synth/SynthIcon -com/sun/java/swing/plaf/gtk/GTKColorType -javax/swing/plaf/synth/ColorType -com/sun/java/swing/plaf/gtk/resources/gtk -com/sun/swing/internal/plaf/synth/resources/synth -com/sun/java/swing/plaf/gtk/GTKStyle$GTKLazyValue -com/sun/java/swing/plaf/gtk/GTKLookAndFeel$1FontLazyValue -com/sun/java/swing/plaf/gtk/GTKLookAndFeel$2 -com/sun/java/swing/plaf/gtk/GTKLookAndFeel$3 -javax/swing/plaf/synth/SynthPanelUI -javax/swing/plaf/synth/SynthConstants -javax/swing/plaf/synth/SynthContext -javax/swing/plaf/synth/SynthBorder -javax/swing/plaf/synth/SynthRootPaneUI -javax/swing/plaf/synth/SynthLabelUI -javax/swing/plaf/synth/SynthButtonUI -javax/swing/plaf/synth/SynthToggleButtonUI -javax/swing/plaf/basic/BasicBorders$FieldBorder -javax/swing/plaf/synth/SynthMenuBarUI -javax/swing/plaf/synth/SynthMenuUI -javax/swing/plaf/synth/SynthUI -com/sun/java/swing/plaf/gtk/GTKIconFactory -com/sun/java/swing/plaf/gtk/GTKIconFactory$MenuArrowIcon -com/sun/java/swing/plaf/gtk/GTKIconFactory$DelegatingIcon -com/sun/java/swing/plaf/gtk/GTKConstants$ArrowType -javax/swing/plaf/basic/BasicIconFactory -javax/swing/plaf/basic/BasicIconFactory$MenuItemCheckIcon -javax/swing/plaf/synth/SynthMenuItemUI -javax/swing/plaf/synth/SynthPopupMenuUI -javax/swing/plaf/synth/SynthSeparatorUI -javax/swing/plaf/synth/SynthScrollBarUI -javax/swing/plaf/synth/SynthArrowButton -javax/swing/plaf/synth/SynthArrowButton$SynthArrowButtonUI -javax/swing/plaf/synth/SynthComboBoxUI -javax/swing/plaf/synth/SynthComboPopup -javax/swing/plaf/synth/SynthListUI -javax/swing/plaf/synth/SynthListUI$SynthListCellRenderer -javax/swing/plaf/synth/SynthViewportUI -javax/swing/plaf/synth/SynthScrollPaneUI -javax/swing/plaf/synth/SynthScrollPaneUI$ViewportBorder -javax/swing/plaf/synth/SynthComboBoxUI$SynthComboBoxRenderer -javax/swing/plaf/synth/SynthComboBoxUI$SynthComboBoxEditor -javax/swing/plaf/synth/SynthTextFieldUI -javax/swing/plaf/synth/SynthToolBarUI -javax/swing/plaf/synth/SynthToolBarUI$SynthToolBarLayoutManager -com/sun/java/swing/plaf/gtk/GTKIconFactory$ToolBarHandleIcon -com/sun/java/swing/plaf/gtk/GTKConstants$Orientation -sun/awt/X11/XTranslateCoordinates -com/sun/java/swing/plaf/gtk/GTKPainter -javax/swing/plaf/synth/SynthPainter -javax/swing/plaf/synth/SynthPainter$1 -com/sun/java/swing/plaf/gtk/GTKConstants$PositionType -com/sun/java/swing/plaf/gtk/GTKConstants$ShadowType -java/io/ObjectInputStream$HandleTable$HandleList -sun/java2d/pipe/ShapeSpanIterator -sun/java2d/pipe/SpanIterator -sun/dc/path/PathConsumer -sun/dc/pr/PathStroker -sun/dc/pr/PathDasher -java/awt/geom/LineIterator -java/awt/geom/PathIterator -sun/applet/Main -sun/applet/AppletMessageHandler -sun/applet/resources/MsgAppletViewer -sun/applet/AppletSecurity -sun/awt/AWTSecurityManager -java/lang/SecurityManager -java/security/DomainCombiner -sun/applet/AppletSecurity$1 -java/lang/SecurityManager$1 -java/security/SecurityPermission -java/util/PropertyPermission -sun/applet/AppletViewer -java/applet/AppletContext -java/awt/print/Printable -sun/security/util/SecurityConstants -java/awt/AWTPermission -java/net/NetPermission -java/net/SocketPermission -javax/security/auth/AuthPermission -java/lang/Thread$1 -java/util/logging/LogManager$5 -sun/applet/StdAppletViewerFactory -sun/applet/AppletViewerFactory -sun/applet/AppletViewer$UserActionListener -sun/applet/AppletViewerPanel -sun/applet/AppletPanel -java/applet/AppletStub -sun/misc/MessageUtils -sun/applet/AppletPanel$10 -java/security/Policy$1 -sun/security/provider/PolicyFile$1 -sun/security/provider/PolicyFile$3 -sun/security/util/PropertyExpander -sun/security/provider/PolicyParser -sun/security/util/PolicyUtil -sun/security/provider/PolicyParser$GrantEntry -sun/security/provider/PolicyParser$PermissionEntry -sun/security/provider/PolicyFile$PolicyEntry -sun/security/provider/PolicyFile$6 -sun/security/provider/PolicyFile$7 -java/net/SocketPermissionCollection -java/util/PropertyPermissionCollection -sun/applet/AppletPanel$9 -sun/applet/AppletClassLoader -sun/applet/AppletThreadGroup -sun/applet/AppContextCreator -sun/applet/AppletPanel$1 -sun/awt/X11/XMenuBarPeer -java/awt/peer/MenuBarPeer -java/awt/peer/MenuComponentPeer -sun/awt/X11/XBaseMenuWindow -sun/awt/X11/XMenuPeer -java/awt/peer/MenuPeer -java/awt/peer/MenuItemPeer -sun/awt/X11/XMenuItemPeer -java/awt/MenuShortcut -sun/awt/X11/XMenuWindow -sun/awt/X11/XMenuItemPeer$TextMetrics -sun/awt/AppContext$3 -sun/awt/X11/XMenuBarPeer$MappingData -sun/awt/X11/XBaseMenuWindow$MappingData -sun/applet/AppletViewer$1 -sun/applet/AppletViewer$1AppletEventListener -sun/applet/AppletListener -sun/applet/AppletEventMulticaster -sun/misc/Queue -sun/misc/QueueElement -sun/applet/AppletEvent -sun/applet/AppletClassLoader$1 -sun/awt/X11/XBaseMenuWindow$3 -java/awt/DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent -sun/awt/CausedFocusEvent -sun/awt/X11/XWindow$1 -java/net/URLClassLoader$4 -sun/applet/AppletClassLoader$2 -javax/swing/JApplet -java/lang/ClassLoader$1 -sun/security/provider/PolicyFile$5 -java/security/PermissionsEnumerator -java/util/Collections$1 -sun/applet/AppletPanel$11 -sun/applet/AppletPanel$8 -sun/applet/AppletPanel$2 -sun/applet/AppletPanel$3 -sun/applet/AppletPanel$6 -javax/swing/BufferStrategyPaintManager$1 -# f3ac8b467e7f8c49 +sun/util/resources/en/CalendarData_en +sun/util/resources/en/CurrencyNames_en_US +sun/util/resources/en/TimeZoneNames_en +sun/util/spi/CalendarProvider +# e4fe875988768cf5
--- a/make/tools/sharing/classlist.macosx Thu Nov 14 23:32:31 2013 -0800 +++ b/make/tools/sharing/classlist.macosx Fri Nov 15 07:14:23 2013 -0800 @@ -1,2406 +1,2208 @@ -java/lang/Object -java/lang/String -java/io/Serializable -java/lang/Comparable -java/lang/CharSequence -java/lang/Class -java/lang/reflect/GenericDeclaration -java/lang/reflect/Type -java/lang/reflect/AnnotatedElement -java/lang/Cloneable -java/lang/ClassLoader -java/lang/System -java/lang/Throwable -java/lang/Error -java/lang/ThreadDeath -java/lang/Exception -java/lang/RuntimeException -java/security/ProtectionDomain -java/security/AccessControlContext -java/lang/ClassNotFoundException -java/lang/NoClassDefFoundError -java/lang/LinkageError -java/lang/ClassCastException -java/lang/ArrayStoreException -java/lang/VirtualMachineError -java/lang/OutOfMemoryError -java/lang/StackOverflowError -java/lang/IllegalMonitorStateException -java/lang/ref/Reference -java/lang/ref/SoftReference -java/lang/ref/WeakReference -java/lang/ref/FinalReference -java/lang/ref/PhantomReference -java/lang/ref/Finalizer -java/lang/Thread -java/lang/Runnable -java/lang/ThreadGroup -java/lang/Thread$UncaughtExceptionHandler -java/util/Properties -java/util/Hashtable -java/util/Map -java/util/Dictionary -java/lang/reflect/AccessibleObject -java/lang/reflect/Field -java/lang/reflect/Member -java/lang/reflect/Method -java/lang/reflect/Constructor -sun/reflect/MagicAccessorImpl -sun/reflect/MethodAccessorImpl -sun/reflect/MethodAccessor -sun/reflect/ConstructorAccessorImpl -sun/reflect/ConstructorAccessor -sun/reflect/DelegatingClassLoader -sun/reflect/ConstantPool -sun/reflect/UnsafeStaticFieldAccessorImpl -sun/reflect/UnsafeFieldAccessorImpl -sun/reflect/FieldAccessorImpl -sun/reflect/FieldAccessor -java/util/Vector -java/util/List -java/util/Collection -java/lang/Iterable -java/util/RandomAccess -java/util/AbstractList -java/util/AbstractCollection -java/lang/StringBuffer -java/lang/AbstractStringBuilder -java/lang/Appendable -java/lang/StackTraceElement -java/nio/Buffer -java/lang/Boolean -java/lang/Character -java/lang/Float -java/lang/Number -java/lang/Double -java/lang/Byte -java/lang/Short -java/lang/Integer -java/lang/Long -java/lang/NullPointerException -java/lang/ArithmeticException -java/io/ObjectStreamField -java/lang/String$CaseInsensitiveComparator -java/util/Comparator -java/lang/RuntimePermission -java/security/BasicPermission -java/security/Permission -java/security/Guard -sun/misc/SoftCache -java/util/AbstractMap -java/lang/ref/ReferenceQueue -java/lang/ref/ReferenceQueue$Null -java/lang/ref/ReferenceQueue$Lock -java/util/HashMap -java/lang/annotation/Annotation -java/util/HashMap$Entry -java/util/Map$Entry -java/security/AccessController -java/lang/reflect/ReflectPermission -sun/reflect/ReflectionFactory$GetReflectionFactoryAction -java/security/PrivilegedAction -java/util/Stack -sun/reflect/ReflectionFactory -java/lang/ref/Reference$Lock -java/lang/ref/Reference$ReferenceHandler -java/lang/ref/Finalizer$FinalizerThread -java/util/Hashtable$EmptyEnumerator -java/util/Enumeration -java/util/Hashtable$EmptyIterator -java/util/Iterator -java/util/Hashtable$Entry -java/nio/charset/Charset -sun/nio/cs/StandardCharsets -sun/nio/cs/FastCharsetProvider -java/nio/charset/spi/CharsetProvider -sun/nio/cs/StandardCharsets$Aliases -sun/util/PreHashedMap -sun/nio/cs/StandardCharsets$Classes -sun/nio/cs/StandardCharsets$Cache -java/lang/ThreadLocal -java/util/concurrent/atomic/AtomicInteger -sun/misc/Unsafe -java/lang/NoSuchMethodError -java/lang/IncompatibleClassChangeError -sun/reflect/Reflection -java/util/Collections -java/util/Collections$EmptySet -java/util/AbstractSet -java/util/Set -java/util/Collections$EmptyList -java/util/Collections$EmptyMap -java/util/Collections$ReverseComparator -java/util/Collections$SynchronizedMap -java/lang/Class$3 -java/lang/reflect/Modifier -java/lang/reflect/ReflectAccess -sun/reflect/LangReflectAccess -java/util/Arrays -java/lang/Math -sun/nio/cs/US_ASCII -sun/nio/cs/HistoricallyNamedCharset -sun/misc/VM -java/lang/StringCoding -java/lang/ThreadLocal$ThreadLocalMap -java/lang/ThreadLocal$ThreadLocalMap$Entry -java/lang/StringCoding$StringDecoder -sun/nio/cs/US_ASCII$Decoder -java/nio/charset/CharsetDecoder -java/nio/charset/CodingErrorAction -java/nio/ByteBuffer -java/nio/HeapByteBuffer -java/nio/Bits -java/nio/ByteOrder -java/nio/CharBuffer -java/lang/Readable -java/nio/HeapCharBuffer -java/nio/charset/CoderResult -java/nio/charset/CoderResult$1 -java/nio/charset/CoderResult$Cache -java/nio/charset/CoderResult$2 -sun/misc/Version -java/io/FileInputStream -java/io/InputStream +apple/laf/JRSUIConstants +apple/laf/JRSUIConstants$AlignmentHorizontal +apple/laf/JRSUIConstants$AlignmentVertical +apple/laf/JRSUIConstants$Animating +apple/laf/JRSUIConstants$DoubleValue +apple/laf/JRSUIConstants$Focused +apple/laf/JRSUIConstants$FrameOnly +apple/laf/JRSUIConstants$Hit +apple/laf/JRSUIConstants$IndicatorOnly +apple/laf/JRSUIConstants$Key +apple/laf/JRSUIConstants$NothingToScroll +apple/laf/JRSUIConstants$Orientation +apple/laf/JRSUIConstants$Property +apple/laf/JRSUIConstants$PropertyEncoding +apple/laf/JRSUIConstants$ScrollBarPart +apple/laf/JRSUIConstants$SegmentPosition +apple/laf/JRSUIConstants$SegmentTrailingSeparator +apple/laf/JRSUIConstants$ShowArrows +apple/laf/JRSUIConstants$Size +apple/laf/JRSUIConstants$State +apple/laf/JRSUIConstants$Widget +apple/laf/JRSUIControl +apple/laf/JRSUIControl$BufferState +apple/laf/JRSUIControl$ThreadLocalByteBuffer +apple/laf/JRSUIState +apple/laf/JRSUIState$ScrollBarState +apple/laf/JRSUIState$ValueState +apple/laf/JRSUIStateFactory +apple/laf/JRSUIUtils +apple/laf/JRSUIUtils$NineSliceMetricsProvider +apple/laf/JRSUIUtils$TabbedPane +com/apple/eawt/AboutHandler +com/apple/eawt/AppEventListener +com/apple/eawt/AppReOpenedListener +com/apple/eawt/OpenFilesHandler +com/apple/eawt/PreferencesHandler +com/apple/eawt/PrintFilesHandler +com/apple/eawt/QuitHandler +com/apple/eawt/QuitStrategy +com/apple/eawt/_AppEventHandler +com/apple/eawt/_AppEventHandler$_AboutDispatcher +com/apple/eawt/_AppEventHandler$_AppEventDispatcher +com/apple/eawt/_AppEventHandler$_AppEventMultiplexor +com/apple/eawt/_AppEventHandler$_AppForegroundDispatcher +com/apple/eawt/_AppEventHandler$_AppReOpenedDispatcher +com/apple/eawt/_AppEventHandler$_BooleanAppEventMultiplexor +com/apple/eawt/_AppEventHandler$_HiddenAppDispatcher +com/apple/eawt/_AppEventHandler$_NativeEvent +com/apple/eawt/_AppEventHandler$_OpenAppDispatcher +com/apple/eawt/_AppEventHandler$_OpenFileDispatcher +com/apple/eawt/_AppEventHandler$_OpenURIDispatcher +com/apple/eawt/_AppEventHandler$_PreferencesDispatcher +com/apple/eawt/_AppEventHandler$_PrintFileDispatcher +com/apple/eawt/_AppEventHandler$_QueuingAppEventDispatcher +com/apple/eawt/_AppEventHandler$_QuitDispatcher +com/apple/eawt/_AppEventHandler$_ScreenSleepDispatcher +com/apple/eawt/_AppEventHandler$_SystemSleepDispatcher +com/apple/eawt/_AppEventHandler$_UserSessionDispatcher +com/apple/eawt/_AppEventLegacyHandler +com/apple/eawt/_AppMenuBarHandler +com/apple/eawt/_OpenAppHandler +com/apple/laf/AquaBorder +com/apple/laf/AquaButtonBorder +com/apple/laf/AquaButtonBorder$1 +com/apple/laf/AquaButtonBorder$Dynamic +com/apple/laf/AquaButtonBorder$Dynamic$1 +com/apple/laf/AquaButtonBorder$Named +com/apple/laf/AquaButtonBorder$Toggle +com/apple/laf/AquaButtonBorder$Toolbar +com/apple/laf/AquaButtonExtendedTypes +com/apple/laf/AquaButtonExtendedTypes$1 +com/apple/laf/AquaButtonExtendedTypes$2 +com/apple/laf/AquaButtonExtendedTypes$3 +com/apple/laf/AquaButtonExtendedTypes$4 +com/apple/laf/AquaButtonExtendedTypes$5 +com/apple/laf/AquaButtonExtendedTypes$6 +com/apple/laf/AquaButtonExtendedTypes$7 +com/apple/laf/AquaButtonExtendedTypes$8 +com/apple/laf/AquaButtonExtendedTypes$BorderDefinedTypeSpecifier +com/apple/laf/AquaButtonExtendedTypes$BorderDefinedTypeSpecifier$1 +com/apple/laf/AquaButtonExtendedTypes$SegmentedBorderDefinedTypeSpecifier +com/apple/laf/AquaButtonExtendedTypes$SegmentedNamedBorder +com/apple/laf/AquaButtonExtendedTypes$TypeSpecifier +com/apple/laf/AquaButtonToggleUI +com/apple/laf/AquaButtonUI +com/apple/laf/AquaButtonUI$AquaButtonListener +com/apple/laf/AquaButtonUI$AquaHierarchyButtonListener +com/apple/laf/AquaCaret +com/apple/laf/AquaComboBoxButton +com/apple/laf/AquaComboBoxButton$1 +com/apple/laf/AquaComboBoxPopup +com/apple/laf/AquaComboBoxPopup$1 +com/apple/laf/AquaComboBoxRenderer +com/apple/laf/AquaComboBoxRendererInternal +com/apple/laf/AquaComboBoxUI +com/apple/laf/AquaComboBoxUI$1 +com/apple/laf/AquaComboBoxUI$10 +com/apple/laf/AquaComboBoxUI$11 +com/apple/laf/AquaComboBoxUI$12 +com/apple/laf/AquaComboBoxUI$12$1 +com/apple/laf/AquaComboBoxUI$12$2 +com/apple/laf/AquaComboBoxUI$12$3 +com/apple/laf/AquaComboBoxUI$12$4 +com/apple/laf/AquaComboBoxUI$12$5 +com/apple/laf/AquaComboBoxUI$12$6 +com/apple/laf/AquaComboBoxUI$12$7 +com/apple/laf/AquaComboBoxUI$2 +com/apple/laf/AquaComboBoxUI$3 +com/apple/laf/AquaComboBoxUI$4 +com/apple/laf/AquaComboBoxUI$5 +com/apple/laf/AquaComboBoxUI$6 +com/apple/laf/AquaComboBoxUI$7 +com/apple/laf/AquaComboBoxUI$8 +com/apple/laf/AquaComboBoxUI$9 +com/apple/laf/AquaComboBoxUI$AquaComboBoxEditor +com/apple/laf/AquaComboBoxUI$AquaComboBoxLayoutManager +com/apple/laf/AquaComboBoxUI$AquaCustomComboTextField +com/apple/laf/AquaComboBoxUI$AquaCustomComboTextField$1 +com/apple/laf/AquaComboBoxUI$ComboBoxAction +com/apple/laf/AquaFocusHandler +com/apple/laf/AquaFocusHandler$1 +com/apple/laf/AquaFonts +com/apple/laf/AquaFonts$1 +com/apple/laf/AquaFonts$2 +com/apple/laf/AquaFonts$3 +com/apple/laf/AquaFonts$4 +com/apple/laf/AquaFonts$5 +com/apple/laf/AquaFonts$6 +com/apple/laf/AquaFonts$7 +com/apple/laf/AquaFonts$DerivedUIResourceFont +com/apple/laf/AquaHighlighter +com/apple/laf/AquaHighlighter$1 +com/apple/laf/AquaHighlighter$AquaHighlightPainter +com/apple/laf/AquaIcon$CachingScalingIcon +com/apple/laf/AquaIcon$InvertableIcon +com/apple/laf/AquaIcon$SystemIcon +com/apple/laf/AquaIcon$SystemIconSingleton +com/apple/laf/AquaIcon$SystemIconUIResourceSingleton +com/apple/laf/AquaImageFactory +com/apple/laf/AquaImageFactory$IconUIResourceSingleton +com/apple/laf/AquaImageFactory$InvertableImageIcon +com/apple/laf/AquaImageFactory$NamedImageSingleton +com/apple/laf/AquaImageFactory$SystemColorProxy +com/apple/laf/AquaKeyBindings +com/apple/laf/AquaKeyBindings$AquaMultilineAction +com/apple/laf/AquaKeyBindings$BindingsProvider +com/apple/laf/AquaKeyBindings$LateBoundInputMap +com/apple/laf/AquaKeyBindings$SimpleBinding +com/apple/laf/AquaLabelUI +com/apple/laf/AquaListUI +com/apple/laf/AquaListUI$AquaHomeEndAction +com/apple/laf/AquaListUI$AquaPropertyChangeHandler +com/apple/laf/AquaListUI$FocusHandler +com/apple/laf/AquaListUI$MouseInputHandler +com/apple/laf/AquaLookAndFeel +com/apple/laf/AquaLookAndFeel$1 +com/apple/laf/AquaLookAndFeel$2 +com/apple/laf/AquaLookAndFeel$3 +com/apple/laf/AquaMenuBarBorder +com/apple/laf/AquaMenuBarUI +com/apple/laf/AquaMenuBorder +com/apple/laf/AquaMenuItemUI +com/apple/laf/AquaMenuItemUI$IndeterminateListener +com/apple/laf/AquaMenuPainter +com/apple/laf/AquaMenuPainter$Client +com/apple/laf/AquaMenuPainter$RecyclableBorder +com/apple/laf/AquaMenuUI +com/apple/laf/AquaMenuUI$AquaMouseInputHandler +com/apple/laf/AquaMenuUI$MenuDragMouseHandler +com/apple/laf/AquaMnemonicHandler +com/apple/laf/AquaMnemonicHandler$AltProcessor +com/apple/laf/AquaPainter +com/apple/laf/AquaPainter$1 +com/apple/laf/AquaPainter$AquaNineSlicingImagePainter +com/apple/laf/AquaPainter$AquaSingleImagePainter +com/apple/laf/AquaPanelUI +com/apple/laf/AquaPopupMenuSeparatorUI +com/apple/laf/AquaPopupMenuUI +com/apple/laf/AquaRootPaneUI +com/apple/laf/AquaScrollBarUI +com/apple/laf/AquaScrollBarUI$1 +com/apple/laf/AquaScrollBarUI$ModelListener +com/apple/laf/AquaScrollBarUI$PropertyChangeHandler +com/apple/laf/AquaScrollBarUI$ScrollListener +com/apple/laf/AquaScrollBarUI$TrackListener +com/apple/laf/AquaScrollPaneUI +com/apple/laf/AquaScrollPaneUI$XYMouseWheelHandler +com/apple/laf/AquaScrollRegionBorder +com/apple/laf/AquaTableHeaderBorder +com/apple/laf/AquaTableHeaderBorder$1 +com/apple/laf/AquaTextAreaUI +com/apple/laf/AquaTextFieldBorder +com/apple/laf/AquaTextFieldSearch +com/apple/laf/AquaTextFieldSearch$SearchFieldBorder +com/apple/laf/AquaTextFieldSearch$SearchFieldPropertyListener +com/apple/laf/AquaTextFieldUI +com/apple/laf/AquaToolBarSeparatorUI +com/apple/laf/AquaToolBarUI +com/apple/laf/AquaToolBarUI$ToolBarBorder +com/apple/laf/AquaUtilControlSize +com/apple/laf/AquaUtilControlSize$PropertySizeListener +com/apple/laf/AquaUtilControlSize$SizeDescriptor +com/apple/laf/AquaUtilControlSize$SizeVariant +com/apple/laf/AquaUtilControlSize$Sizeable +com/apple/laf/AquaUtils +com/apple/laf/AquaUtils$2 +com/apple/laf/AquaUtils$5 +com/apple/laf/AquaUtils$6 +com/apple/laf/AquaUtils$JComponentPainter +com/apple/laf/AquaUtils$RecyclableSingleton +com/apple/laf/AquaUtils$RecyclableSingletonFromDefaultConstructor +com/apple/laf/ClientPropertyApplicator +com/apple/laf/ClientPropertyApplicator$Property +com/apple/laf/ImageCache +com/apple/laf/ImageCache$1 +com/apple/laf/ImageCache$PixelCountSoftReference +com/apple/laf/ScreenMenuBar +com/apple/laf/ScreenMenuBarProvider +com/apple/laf/ScreenMenuPropertyHandler +com/apple/laf/ScreenPopupFactory +com/apple/laf/ScreenPopupFactory$1 +com/apple/laf/resources/aqua +com/sun/java/swing/SwingUtilities3 +com/sun/swing/internal/plaf/basic/resources/basic +java/applet/Applet +java/awt/AWTEvent +java/awt/AWTEvent$1 +java/awt/AWTEvent$2 +java/awt/AWTEventMulticaster +java/awt/AWTKeyStroke +java/awt/AWTKeyStroke$1 +java/awt/ActiveEvent +java/awt/Adjustable +java/awt/AlphaComposite +java/awt/BasicStroke +java/awt/BorderLayout +java/awt/Canvas +java/awt/CardLayout +java/awt/Color +java/awt/Component +java/awt/Component$1 +java/awt/Component$3 +java/awt/Component$AWTTreeLock +java/awt/Component$DummyRequestFocusController +java/awt/ComponentOrientation +java/awt/Composite +java/awt/Conditional +java/awt/Container +java/awt/Container$1 +java/awt/Container$EventTargetFilter +java/awt/Container$MouseEventTargetFilter +java/awt/ContainerOrderFocusTraversalPolicy +java/awt/Cursor +java/awt/Cursor$1 +java/awt/DefaultFocusTraversalPolicy +java/awt/DefaultKeyboardFocusManager +java/awt/DefaultKeyboardFocusManager$1 +java/awt/DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent +java/awt/DefaultKeyboardFocusManager$TypeAheadMarker +java/awt/Dialog +java/awt/Dialog$1 +java/awt/Dialog$3 +java/awt/Dialog$ModalExclusionType +java/awt/Dialog$ModalityType +java/awt/Dimension +java/awt/Event +java/awt/EventDispatchThread +java/awt/EventDispatchThread$1 +java/awt/EventDispatchThread$HierarchyEventFilter +java/awt/EventFilter +java/awt/EventFilter$FilterAction +java/awt/EventQueue +java/awt/EventQueue$1 +java/awt/EventQueue$2 +java/awt/EventQueue$3 +java/awt/EventQueue$4 +java/awt/EventQueue$5 +java/awt/FlowLayout +java/awt/FocusTraversalPolicy +java/awt/Font +java/awt/Font$FontAccessImpl +java/awt/FontMetrics +java/awt/Frame +java/awt/Frame$1 +java/awt/Graphics +java/awt/Graphics2D +java/awt/GraphicsCallback +java/awt/GraphicsCallback$PaintCallback +java/awt/GraphicsConfiguration +java/awt/GraphicsDevice +java/awt/GraphicsEnvironment +java/awt/GraphicsEnvironment$1 +java/awt/Image +java/awt/Image$1 +java/awt/ImageCapabilities +java/awt/ImageMediaEntry +java/awt/Insets +java/awt/ItemSelectable +java/awt/KeyEventDispatcher +java/awt/KeyEventPostProcessor +java/awt/KeyboardFocusManager +java/awt/KeyboardFocusManager$1 +java/awt/KeyboardFocusManager$2 +java/awt/KeyboardFocusManager$3 +java/awt/KeyboardFocusManager$HeavyweightFocusRequest +java/awt/KeyboardFocusManager$LightweightFocusRequest +java/awt/Label +java/awt/LayoutManager +java/awt/LayoutManager2 +java/awt/LightweightDispatcher +java/awt/LightweightDispatcher$1 +java/awt/LightweightDispatcher$2 +java/awt/MediaEntry +java/awt/MediaTracker +java/awt/MenuBar +java/awt/MenuComponent +java/awt/MenuContainer +java/awt/ModalEventFilter +java/awt/ModalEventFilter$1 +java/awt/ModalEventFilter$ApplicationModalEventFilter +java/awt/Paint +java/awt/Panel +java/awt/Point +java/awt/PrintGraphics +java/awt/Queue +java/awt/Rectangle +java/awt/RenderingHints +java/awt/RenderingHints$Key +java/awt/SecondaryLoop +java/awt/SentEvent +java/awt/SequencedEvent +java/awt/Shape +java/awt/SplashScreen +java/awt/Stroke +java/awt/SystemColor +java/awt/Toolkit +java/awt/Toolkit$1 +java/awt/Toolkit$2 +java/awt/Toolkit$3 +java/awt/Toolkit$4 +java/awt/Toolkit$5 +java/awt/Toolkit$DesktopPropertyChangeSupport +java/awt/Toolkit$SelectiveAWTEventListener +java/awt/Toolkit$ToolkitEventMulticaster +java/awt/Transparency +java/awt/TrayIcon +java/awt/VKCollection +java/awt/WaitDispatchSupport +java/awt/WaitDispatchSupport$1 +java/awt/WaitDispatchSupport$2 +java/awt/WaitDispatchSupport$5 +java/awt/Window +java/awt/Window$1 +java/awt/Window$1DisposeAction +java/awt/Window$Type +java/awt/Window$WindowDisposerRecord +java/awt/color/ColorSpace +java/awt/color/ICC_ColorSpace +java/awt/color/ICC_Profile +java/awt/color/ICC_Profile$1 +java/awt/color/ICC_ProfileRGB +java/awt/datatransfer/Clipboard +java/awt/datatransfer/ClipboardOwner +java/awt/datatransfer/DataFlavor +java/awt/datatransfer/FlavorMap +java/awt/datatransfer/FlavorTable +java/awt/datatransfer/MimeType +java/awt/datatransfer/MimeTypeParameterList +java/awt/datatransfer/MimeTypeParseException +java/awt/datatransfer/SystemFlavorMap +java/awt/datatransfer/SystemFlavorMap$1 +java/awt/datatransfer/SystemFlavorMap$2 +java/awt/datatransfer/Transferable +java/awt/dnd/DropTarget +java/awt/dnd/DropTargetContext +java/awt/dnd/DropTargetListener +java/awt/dnd/peer/DragSourceContextPeer +java/awt/dnd/peer/DropTargetPeer +java/awt/event/AWTEventListener +java/awt/event/AWTEventListenerProxy +java/awt/event/ActionEvent +java/awt/event/ActionListener +java/awt/event/AdjustmentEvent +java/awt/event/AdjustmentListener +java/awt/event/ComponentAdapter +java/awt/event/ComponentEvent +java/awt/event/ComponentListener +java/awt/event/ContainerEvent +java/awt/event/ContainerListener +java/awt/event/FocusAdapter +java/awt/event/FocusEvent +java/awt/event/FocusListener +java/awt/event/HierarchyBoundsListener +java/awt/event/HierarchyEvent +java/awt/event/HierarchyListener +java/awt/event/InputEvent +java/awt/event/InputEvent$1 +java/awt/event/InputMethodEvent +java/awt/event/InputMethodListener +java/awt/event/InvocationEvent +java/awt/event/ItemListener +java/awt/event/KeyAdapter +java/awt/event/KeyEvent +java/awt/event/KeyEvent$1 +java/awt/event/KeyListener +java/awt/event/MouseAdapter +java/awt/event/MouseEvent +java/awt/event/MouseListener +java/awt/event/MouseMotionAdapter +java/awt/event/MouseMotionListener +java/awt/event/MouseWheelEvent +java/awt/event/MouseWheelListener +java/awt/event/NativeLibLoader +java/awt/event/NativeLibLoader$1 +java/awt/event/PaintEvent +java/awt/event/TextListener +java/awt/event/WindowAdapter +java/awt/event/WindowEvent +java/awt/event/WindowFocusListener +java/awt/event/WindowListener +java/awt/event/WindowStateListener +java/awt/font/FontRenderContext +java/awt/font/GlyphVector +java/awt/font/LineMetrics +java/awt/font/TextAttribute +java/awt/geom/AffineTransform +java/awt/geom/Dimension2D +java/awt/geom/GeneralPath +java/awt/geom/Path2D +java/awt/geom/Path2D$Float +java/awt/geom/Point2D +java/awt/geom/Point2D$Double +java/awt/geom/Point2D$Float +java/awt/geom/Rectangle2D +java/awt/geom/Rectangle2D$Double +java/awt/geom/Rectangle2D$Float +java/awt/geom/RectangularShape +java/awt/im/InputContext +java/awt/im/InputMethodRequests +java/awt/im/spi/InputMethod +java/awt/im/spi/InputMethodContext +java/awt/im/spi/InputMethodDescriptor +java/awt/image/BufferStrategy +java/awt/image/BufferedImage +java/awt/image/BufferedImage$1 +java/awt/image/ColorModel +java/awt/image/ColorModel$1 +java/awt/image/ComponentSampleModel +java/awt/image/DataBuffer +java/awt/image/DataBuffer$1 +java/awt/image/DataBufferByte +java/awt/image/DataBufferInt +java/awt/image/DirectColorModel +java/awt/image/FilteredImageSource +java/awt/image/ImageConsumer +java/awt/image/ImageFilter +java/awt/image/ImageObserver +java/awt/image/ImageProducer +java/awt/image/IndexColorModel +java/awt/image/PackedColorModel +java/awt/image/PixelInterleavedSampleModel +java/awt/image/RGBImageFilter +java/awt/image/Raster +java/awt/image/RenderedImage +java/awt/image/SampleModel +java/awt/image/SinglePixelPackedSampleModel +java/awt/image/VolatileImage +java/awt/image/WritableRaster +java/awt/image/WritableRenderedImage +java/awt/peer/CanvasPeer +java/awt/peer/ComponentPeer +java/awt/peer/ContainerPeer +java/awt/peer/DialogPeer +java/awt/peer/FramePeer +java/awt/peer/KeyboardFocusManagerPeer +java/awt/peer/LabelPeer +java/awt/peer/LightweightPeer +java/awt/peer/PanelPeer +java/awt/peer/WindowPeer +java/awt/print/PrinterGraphics +java/beans/ChangeListenerMap +java/beans/PropertyChangeEvent +java/beans/PropertyChangeListener +java/beans/PropertyChangeListenerProxy +java/beans/PropertyChangeSupport +java/beans/PropertyChangeSupport$PropertyChangeListenerMap +java/io/Bits +java/io/BufferedInputStream +java/io/BufferedOutputStream +java/io/BufferedReader +java/io/BufferedWriter +java/io/ByteArrayInputStream +java/io/ByteArrayOutputStream java/io/Closeable -java/io/FileDescriptor -java/io/FileOutputStream -java/io/OutputStream -java/io/Flushable -java/io/BufferedInputStream -java/io/FilterInputStream -java/util/concurrent/atomic/AtomicReferenceFieldUpdater -java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl -sun/reflect/misc/ReflectUtil -java/io/PrintStream -java/io/FilterOutputStream -java/io/BufferedOutputStream -java/io/OutputStreamWriter -java/io/Writer -sun/nio/cs/StreamEncoder -sun/security/action/GetPropertyAction -sun/nio/cs/US_ASCII$Encoder -java/nio/charset/CharsetEncoder -sun/nio/cs/Surrogate$Parser -sun/nio/cs/Surrogate -java/io/BufferedWriter -java/lang/Runtime -java/io/File -java/io/FileSystem -java/io/UnixFileSystem +java/io/DataInput +java/io/DataInputStream +java/io/DataOutput +java/io/DataOutputStream +java/io/DefaultFileSystem +java/io/EOFException java/io/ExpiringCache java/io/ExpiringCache$1 -java/util/LinkedHashMap -java/util/LinkedHashMap$Entry -java/lang/StringBuilder -java/io/File$1 -sun/misc/JavaIODeleteOnExitAccess -sun/misc/SharedSecrets -java/lang/ClassLoader$3 -java/lang/StringCoding$StringEncoder java/io/ExpiringCache$Entry -java/lang/ClassLoader$NativeLibrary -java/lang/Terminator -java/lang/Terminator$1 -sun/misc/SignalHandler -sun/misc/Signal -sun/misc/NativeSignalHandler -java/io/Console -java/io/Console$1 -sun/misc/JavaIOAccess -java/io/Console$1$1 -java/lang/Shutdown -java/util/ArrayList -java/lang/Shutdown$Lock -java/lang/ApplicationShutdownHooks -java/util/IdentityHashMap -sun/misc/OSEnvironment -java/lang/System$2 -sun/misc/JavaLangAccess -java/lang/Compiler -java/lang/Compiler$1 -sun/misc/Launcher -sun/misc/Launcher$Factory -java/net/URLStreamHandlerFactory -sun/misc/Launcher$ExtClassLoader -java/net/URLClassLoader -java/security/SecureClassLoader -sun/security/util/Debug -java/net/URLClassLoader$7 -sun/misc/JavaNetAccess -java/util/StringTokenizer -sun/misc/Launcher$ExtClassLoader$1 -java/security/PrivilegedExceptionAction -sun/misc/MetaIndex -java/io/BufferedReader -java/io/Reader -java/io/FileReader -java/io/InputStreamReader -sun/nio/cs/StreamDecoder -java/lang/reflect/Array -sun/net/www/ParseUtil -java/util/BitSet -java/io/ObjectStreamClass -java/net/URL -java/util/Locale -java/util/concurrent/ConcurrentHashMap -java/util/concurrent/ConcurrentMap -java/util/concurrent/ConcurrentHashMap$Segment -java/util/concurrent/locks/ReentrantLock -java/util/concurrent/locks/Lock -java/util/concurrent/locks/ReentrantLock$NonfairSync -java/util/concurrent/locks/ReentrantLock$Sync -java/util/concurrent/locks/AbstractQueuedSynchronizer -java/util/concurrent/locks/AbstractOwnableSynchronizer -java/util/concurrent/locks/AbstractQueuedSynchronizer$Node -java/util/concurrent/ConcurrentHashMap$HashEntry -java/lang/CharacterDataLatin1 -java/net/Parts -sun/net/www/protocol/file/Handler -java/net/URLStreamHandler -java/lang/Class$1 -sun/reflect/ReflectionFactory$1 -sun/reflect/NativeConstructorAccessorImpl -sun/reflect/DelegatingConstructorAccessorImpl -java/util/HashSet -sun/misc/URLClassPath -sun/net/www/protocol/jar/Handler -sun/misc/Launcher$AppClassLoader -sun/misc/Launcher$AppClassLoader$1 -java/lang/SystemClassLoaderAction -java/net/URLClassLoader$1 -sun/misc/URLClassPath$3 -sun/misc/URLClassPath$JarLoader -sun/misc/URLClassPath$Loader -java/security/PrivilegedActionException -sun/misc/URLClassPath$FileLoader -sun/misc/URLClassPath$FileLoader$1 -sun/misc/Resource -sun/nio/ByteBuffered -java/security/CodeSource -java/security/Permissions -java/security/PermissionCollection -sun/net/www/protocol/file/FileURLConnection -sun/net/www/URLConnection -java/net/URLConnection -java/net/UnknownContentHandler -java/net/ContentHandler -sun/net/www/MessageHeader +java/io/Externalizable +java/io/File +java/io/File$PathStatus +java/io/FileDescriptor +java/io/FileDescriptor$1 +java/io/FileInputStream +java/io/FileInputStream$1 +java/io/FileNotFoundException +java/io/FileOutputStream +java/io/FileOutputStream$1 java/io/FilePermission java/io/FilePermission$1 -sun/security/provider/PolicyFile -java/security/Policy -java/security/Policy$UnsupportedEmptyCollection java/io/FilePermissionCollection -java/security/AllPermission -java/security/UnresolvedPermission -java/security/BasicPermissionCollection -java/security/Principal -java/security/cert/Certificate -java/util/AbstractList$Itr -java/util/IdentityHashMap$KeySet -java/util/IdentityHashMap$KeyIterator -java/util/IdentityHashMap$IdentityHashMapIterator -java/io/DeleteOnExitHook -java/util/LinkedHashSet -java/util/HashMap$KeySet -java/util/LinkedHashMap$KeyIterator -java/util/LinkedHashMap$LinkedHashIterator -java/awt/Frame -java/awt/MenuContainer -java/awt/Window -javax/accessibility/Accessible -java/awt/Container -java/awt/Component -java/awt/image/ImageObserver -java/lang/InterruptedException -java/awt/Label -java/util/logging/Logger -java/util/logging/Handler -java/util/logging/Level -java/util/logging/LogManager -java/util/logging/LogManager$1 -java/beans/PropertyChangeSupport -java/util/logging/LogManager$LogNode -java/util/logging/LoggingPermission -java/util/logging/LogManager$Cleaner -java/util/logging/LogManager$RootLogger -java/util/logging/LogManager$2 -java/util/Properties$LineReader -java/util/Hashtable$Enumerator -java/beans/PropertyChangeEvent -java/util/EventObject -java/awt/Component$AWTTreeLock -sun/awt/DebugHelper -sun/awt/NativeLibLoader -sun/security/action/LoadLibraryAction -java/awt/GraphicsEnvironment -java/awt/GraphicsEnvironment$1 -java/lang/ProcessEnvironment -java/lang/ProcessEnvironment$Variable -java/lang/ProcessEnvironment$ExternalData -java/lang/ProcessEnvironment$Value -java/lang/ProcessEnvironment$StringEnvironment -java/util/Collections$UnmodifiableMap -sun/awt/DebugHelperStub -java/awt/Toolkit -java/awt/Toolkit$3 -sun/util/CoreResourceBundleControl -java/util/ResourceBundle$Control -java/util/Arrays$ArrayList -java/util/Collections$UnmodifiableRandomAccessList -java/util/Collections$UnmodifiableList -java/util/Collections$UnmodifiableCollection -java/util/ResourceBundle -java/util/ResourceBundle$1 -java/util/ResourceBundle$RBClassLoader -java/util/ResourceBundle$RBClassLoader$1 -java/util/ResourceBundle$CacheKey -java/util/ResourceBundle$LoaderReference -java/util/ResourceBundle$CacheKeyReference -java/util/ResourceBundle$SingleFormatControl -sun/awt/resources/awt -java/util/ListResourceBundle -java/awt/Toolkit$1 -java/io/FileNotFoundException +java/io/FileReader +java/io/FileSystem +java/io/FileWriter +java/io/FilenameFilter +java/io/FilterInputStream +java/io/FilterOutputStream +java/io/FilterReader +java/io/Flushable java/io/IOException -java/awt/event/KeyEvent -java/awt/event/InputEvent -java/awt/event/ComponentEvent -java/awt/AWTEvent -java/awt/event/NativeLibLoader -java/util/WeakHashMap -java/util/WeakHashMap$Entry -java/awt/Component$DummyRequestFocusController -sun/awt/RequestFocusController -java/awt/LayoutManager -java/awt/LightweightDispatcher -java/awt/event/AWTEventListener -java/util/EventListener -java/awt/Dimension -java/awt/geom/Dimension2D -java/util/concurrent/atomic/AtomicBoolean -java/awt/ComponentOrientation -java/awt/Component$2 -java/lang/NoSuchMethodException -sun/awt/AppContext -sun/awt/AppContext$1 -sun/awt/AppContext$2 -sun/awt/MostRecentKeyValue -java/awt/Cursor -sun/awt/X11GraphicsEnvironment -sun/java2d/SunGraphicsEnvironment -sun/java2d/FontSupport -sun/awt/DisplayChangedListener -sun/java2d/SunGraphicsEnvironment$TTFilter -java/io/FilenameFilter -sun/java2d/SunGraphicsEnvironment$T1Filter -sun/awt/X11GraphicsEnvironment$1 -sun/awt/SunToolkit -sun/awt/WindowClosingSupport -sun/awt/WindowClosingListener -sun/awt/ComponentFactory -sun/awt/InputMethodSupport -java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject -java/util/concurrent/locks/Condition -sun/awt/AWTAutoShutdown -sun/awt/AWTAutoShutdown$PeerMap -sun/awt/SunToolkit$6 -java/awt/Dialog$ModalExclusionType +java/io/InputStream +java/io/InputStreamReader +java/io/ObjectInput +java/io/ObjectInputStream +java/io/ObjectOutput +java/io/ObjectOutputStream +java/io/ObjectOutputStream$BlockDataOutputStream +java/io/ObjectOutputStream$HandleTable +java/io/ObjectOutputStream$ReplaceTable +java/io/ObjectStreamClass +java/io/ObjectStreamClass$2 +java/io/ObjectStreamClass$Caches +java/io/ObjectStreamClass$EntryFuture +java/io/ObjectStreamClass$FieldReflector +java/io/ObjectStreamClass$FieldReflectorKey +java/io/ObjectStreamClass$WeakClassKey +java/io/ObjectStreamConstants +java/io/ObjectStreamField +java/io/OutputStream +java/io/OutputStreamWriter +java/io/PrintStream +java/io/PrintWriter +java/io/RandomAccessFile +java/io/Reader +java/io/Serializable +java/io/StringReader +java/io/StringWriter +java/io/UnixFileSystem +java/io/UnsupportedEncodingException +java/io/Writer +java/lang/AbstractStringBuilder +java/lang/Appendable +java/lang/ApplicationShutdownHooks +java/lang/ApplicationShutdownHooks$1 +java/lang/ArithmeticException +java/lang/ArrayIndexOutOfBoundsException +java/lang/ArrayStoreException +java/lang/AutoCloseable +java/lang/Boolean +java/lang/BootstrapMethodError +java/lang/Byte +java/lang/CharSequence +java/lang/Character +java/lang/Character$CharacterCache +java/lang/CharacterData +java/lang/CharacterDataLatin1 +java/lang/Class +java/lang/Class$1 +java/lang/Class$3 +java/lang/Class$4 +java/lang/Class$AnnotationData +java/lang/Class$Atomic +java/lang/Class$ReflectionData +java/lang/ClassCastException +java/lang/ClassLoader +java/lang/ClassLoader$2 +java/lang/ClassLoader$3 +java/lang/ClassLoader$NativeLibrary +java/lang/ClassLoader$ParallelLoaders +java/lang/ClassLoaderHelper +java/lang/ClassNotFoundException +java/lang/ClassValue$ClassValueMap +java/lang/CloneNotSupportedException +java/lang/Cloneable +java/lang/Comparable +java/lang/Compiler +java/lang/Compiler$1 +java/lang/Double java/lang/Enum -java/awt/Dialog -java/awt/Dialog$ModalityType -java/awt/ModalEventFilter -java/awt/EventFilter -sun/reflect/UnsafeFieldAccessorFactory -sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl -sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl -sun/awt/SunDisplayChanger -sun/java2d/SunGraphicsEnvironment$1 -java/io/StreamTokenizer -sun/font/FontManager -sun/font/FileFont -sun/font/PhysicalFont -sun/font/Font2D -sun/font/CompositeFont -java/util/HashMap$Values -java/util/HashMap$ValueIterator -java/util/HashMap$HashIterator -sun/font/FontManager$1 -java/awt/Font -java/awt/geom/AffineTransform -sun/font/AttributeValues -sun/font/EAttribute -java/text/AttributedCharacterIterator$Attribute -java/lang/Class$4 -sun/reflect/NativeMethodAccessorImpl -sun/reflect/DelegatingMethodAccessorImpl -java/awt/font/TextAttribute +java/lang/Error +java/lang/Exception +java/lang/ExceptionInInitializerError +java/lang/Float +java/lang/IllegalAccessError +java/lang/IllegalAccessException +java/lang/IllegalArgumentException +java/lang/IllegalMonitorStateException +java/lang/IllegalStateException +java/lang/IncompatibleClassChangeError +java/lang/IndexOutOfBoundsException +java/lang/InstantiationException +java/lang/Integer java/lang/Integer$IntegerCache -sun/font/TrueTypeFont -java/awt/font/FontRenderContext -java/awt/RenderingHints -sun/awt/SunHints -sun/awt/SunHints$Key -java/awt/RenderingHints$Key -sun/awt/SunHints$Value -sun/awt/SunHints$LCDContrastKey -sun/font/Type1Font -java/awt/geom/Point2D$Float -java/awt/geom/Point2D -sun/font/StrikeMetrics -java/awt/geom/Rectangle2D$Float -java/awt/geom/Rectangle2D -java/awt/geom/RectangularShape -java/awt/Shape -java/awt/geom/GeneralPath -java/awt/geom/Path2D$Float -java/awt/geom/Path2D -sun/font/CharToGlyphMapper -sun/font/PhysicalStrike -sun/font/FontStrike -sun/font/GlyphList -sun/font/StrikeCache -sun/java2d/Disposer -sun/java2d/Disposer$1 -sun/font/StrikeCache$1 -sun/font/FontManager$FontRegistrationInfo -sun/awt/motif/MFontConfiguration -sun/awt/FontConfiguration -sun/awt/FontDescriptor -java/util/Scanner -java/util/regex/Pattern -java/util/regex/Pattern$8 -java/util/regex/Pattern$Node -java/util/regex/Pattern$LastNode -java/util/regex/Pattern$GroupHead -java/util/regex/Pattern$CharPropertyNames -java/util/regex/Pattern$CharPropertyNames$1 -java/util/regex/Pattern$CharPropertyNames$CharPropertyFactory -java/util/regex/Pattern$CharPropertyNames$2 -java/util/regex/Pattern$CharPropertyNames$5 -java/util/regex/Pattern$CharPropertyNames$3 -java/util/regex/Pattern$CharPropertyNames$6 -java/util/regex/Pattern$CharPropertyNames$CloneableProperty -java/util/regex/Pattern$CharProperty -java/util/regex/Pattern$CharPropertyNames$4 -java/util/regex/Pattern$CharPropertyNames$7 -java/util/regex/Pattern$CharPropertyNames$8 -java/util/regex/Pattern$CharPropertyNames$9 -java/util/regex/Pattern$CharPropertyNames$10 -java/util/regex/Pattern$CharPropertyNames$11 -java/util/regex/Pattern$CharPropertyNames$12 -java/util/regex/Pattern$CharPropertyNames$13 -java/util/regex/Pattern$CharPropertyNames$14 -java/util/regex/Pattern$CharPropertyNames$15 -java/util/regex/Pattern$CharPropertyNames$16 -java/util/regex/Pattern$CharPropertyNames$17 -java/util/regex/Pattern$CharPropertyNames$18 -java/util/regex/Pattern$CharPropertyNames$19 -java/util/regex/Pattern$CharPropertyNames$20 -java/util/regex/Pattern$CharPropertyNames$21 -java/util/regex/Pattern$Curly -java/util/regex/Pattern$Slice -java/util/regex/Pattern$Begin -java/util/regex/Pattern$First -java/util/regex/Pattern$Start -java/util/regex/Pattern$TreeInfo -java/util/regex/Pattern$All -java/util/regex/Pattern$BitClass -java/util/regex/Pattern$BmpCharProperty -java/util/regex/Pattern$6 -java/util/regex/Pattern$CharProperty$1 -java/util/regex/Pattern$10 -sun/nio/ch/FileChannelImpl -java/nio/channels/FileChannel -java/nio/channels/ByteChannel -java/nio/channels/ReadableByteChannel -java/nio/channels/Channel -java/nio/channels/WritableByteChannel -java/nio/channels/GatheringByteChannel -java/nio/channels/ScatteringByteChannel -java/nio/channels/spi/AbstractInterruptibleChannel -java/nio/channels/InterruptibleChannel -sun/nio/ch/Util -sun/nio/ch/IOUtil -sun/nio/ch/FileDispatcher -sun/nio/ch/NativeDispatcher -sun/nio/ch/Reflect -java/nio/MappedByteBuffer -sun/nio/ch/Reflect$1 -sun/nio/ch/NativeThreadSet -java/nio/channels/Channels -java/util/Scanner$1 -sun/misc/LRUCache -java/util/regex/Matcher -java/util/regex/MatchResult -java/text/NumberFormat -java/text/Format -java/text/spi/NumberFormatProvider -java/util/spi/LocaleServiceProvider -sun/util/LocaleServiceProviderPool -sun/util/LocaleServiceProviderPool$1 -java/util/ServiceLoader -java/util/ServiceLoader$LazyIterator -java/util/ServiceLoader$1 -java/util/HashMap$EntrySet -java/util/LinkedHashMap$EntryIterator -sun/misc/Launcher$1 -sun/misc/URLClassPath$2 -java/lang/ClassLoader$2 -sun/misc/URLClassPath$1 +java/lang/InternalError +java/lang/InterruptedException +java/lang/Iterable +java/lang/LinkageError +java/lang/Long +java/lang/Long$LongCache +java/lang/Math +java/lang/NoClassDefFoundError +java/lang/NoSuchFieldException +java/lang/NoSuchMethodError +java/lang/NoSuchMethodException +java/lang/NullPointerException +java/lang/Number +java/lang/NumberFormatException +java/lang/Object +java/lang/OutOfMemoryError +java/lang/Package +java/lang/Process +java/lang/ProcessBuilder +java/lang/ProcessBuilder$NullInputStream +java/lang/ProcessBuilder$NullOutputStream +java/lang/ProcessEnvironment +java/lang/ProcessEnvironment$ExternalData +java/lang/ProcessEnvironment$StringEnvironment +java/lang/ProcessEnvironment$Value +java/lang/ProcessEnvironment$Variable +java/lang/ProcessImpl +java/lang/Readable +java/lang/ReflectiveOperationException +java/lang/Runnable +java/lang/Runtime +java/lang/RuntimeException +java/lang/RuntimePermission +java/lang/SecurityException +java/lang/SecurityManager +java/lang/Short +java/lang/Short$ShortCache +java/lang/Shutdown +java/lang/Shutdown$Lock +java/lang/StackOverflowError +java/lang/StackTraceElement +java/lang/StrictMath +java/lang/String +java/lang/String$CaseInsensitiveComparator +java/lang/StringBuffer +java/lang/StringBuilder +java/lang/StringCoding +java/lang/StringCoding$StringDecoder +java/lang/StringCoding$StringEncoder +java/lang/StringIndexOutOfBoundsException +java/lang/System +java/lang/System$2 +java/lang/SystemClassLoaderAction +java/lang/Terminator +java/lang/Terminator$1 +java/lang/Thread +java/lang/Thread$UncaughtExceptionHandler +java/lang/ThreadDeath +java/lang/ThreadGroup +java/lang/ThreadLocal +java/lang/ThreadLocal$ThreadLocalMap +java/lang/ThreadLocal$ThreadLocalMap$Entry +java/lang/Throwable +java/lang/Throwable$PrintStreamOrWriter +java/lang/Throwable$WrappedPrintStream +java/lang/Throwable$WrappedPrintWriter +java/lang/UNIXProcess +java/lang/UNIXProcess$1 +java/lang/UNIXProcess$2 +java/lang/UNIXProcess$3 +java/lang/UNIXProcess$4 +java/lang/UNIXProcess$LaunchMechanism +java/lang/UNIXProcess$ProcessPipeInputStream +java/lang/UNIXProcess$ProcessPipeOutputStream +java/lang/UNIXProcess$ProcessReaperThreadFactory +java/lang/UNIXProcess$ProcessReaperThreadFactory$1 +java/lang/UnsatisfiedLinkError +java/lang/UnsupportedOperationException +java/lang/VirtualMachineError +java/lang/Void +java/lang/annotation/Annotation +java/lang/invoke/CallSite +java/lang/invoke/ConstantCallSite +java/lang/invoke/DirectMethodHandle +java/lang/invoke/Invokers +java/lang/invoke/LambdaForm +java/lang/invoke/LambdaForm$NamedFunction +java/lang/invoke/MagicLambdaImpl +java/lang/invoke/MemberName +java/lang/invoke/MemberName$Factory +java/lang/invoke/MethodHandle +java/lang/invoke/MethodHandleImpl +java/lang/invoke/MethodHandleNatives +java/lang/invoke/MethodHandleStatics +java/lang/invoke/MethodHandleStatics$1 +java/lang/invoke/MethodType +java/lang/invoke/MethodType$ConcurrentWeakInternSet +java/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry +java/lang/invoke/MethodTypeForm +java/lang/invoke/MutableCallSite +java/lang/invoke/VolatileCallSite +java/lang/ref/FinalReference +java/lang/ref/Finalizer +java/lang/ref/Finalizer$FinalizerThread +java/lang/ref/PhantomReference +java/lang/ref/Reference +java/lang/ref/Reference$Lock +java/lang/ref/Reference$ReferenceHandler +java/lang/ref/ReferenceQueue +java/lang/ref/ReferenceQueue$Lock +java/lang/ref/ReferenceQueue$Null +java/lang/ref/SoftReference +java/lang/ref/WeakReference +java/lang/reflect/AccessibleObject +java/lang/reflect/AnnotatedElement +java/lang/reflect/Array +java/lang/reflect/Constructor +java/lang/reflect/Executable +java/lang/reflect/Field +java/lang/reflect/GenericDeclaration +java/lang/reflect/InvocationHandler +java/lang/reflect/InvocationTargetException +java/lang/reflect/Member +java/lang/reflect/Method +java/lang/reflect/Modifier +java/lang/reflect/Parameter +java/lang/reflect/Proxy +java/lang/reflect/Proxy$KeyFactory +java/lang/reflect/Proxy$ProxyClassFactory +java/lang/reflect/ReflectAccess +java/lang/reflect/ReflectPermission +java/lang/reflect/Type +java/lang/reflect/WeakCache +java/net/AbstractPlainSocketImpl +java/net/AbstractPlainSocketImpl$1 +java/net/Authenticator +java/net/ConnectException +java/net/DefaultInterface +java/net/HttpURLConnection +java/net/Inet4Address +java/net/Inet6Address +java/net/Inet6Address$Inet6AddressHolder +java/net/Inet6AddressImpl +java/net/InetAddress +java/net/InetAddress$1 +java/net/InetAddress$2 +java/net/InetAddress$Cache +java/net/InetAddress$Cache$Type +java/net/InetAddress$InetAddressHolder +java/net/InetAddressImpl +java/net/InetAddressImplFactory +java/net/InetSocketAddress +java/net/InetSocketAddress$InetSocketAddressHolder +java/net/InterfaceAddress +java/net/JarURLConnection +java/net/MalformedURLException +java/net/NetworkInterface +java/net/NetworkInterface$1 +java/net/NetworkInterface$2 +java/net/Parts +java/net/PlainSocketImpl +java/net/Proxy +java/net/Proxy$Type +java/net/ProxySelector +java/net/ServerSocket +java/net/Socket +java/net/SocketAddress +java/net/SocketException +java/net/SocketImpl +java/net/SocketOptions +java/net/SocksConsts +java/net/SocksSocketImpl +java/net/SocksSocketImpl$3 +java/net/URI +java/net/URI$Parser +java/net/URL +java/net/URLClassLoader +java/net/URLClassLoader$1 +java/net/URLClassLoader$2 java/net/URLClassLoader$3 -sun/misc/CompoundEnumeration -sun/misc/URLClassPath$JarLoader$1 -sun/misc/FileURLMapper java/net/URLClassLoader$3$1 -sun/util/resources/LocaleData -sun/util/resources/LocaleData$1 -sun/util/resources/LocaleData$LocaleDataResourceBundleControl -sun/util/LocaleDataMetaInfo -sun/text/resources/FormatData -java/util/ResourceBundle$BundleReference -sun/text/resources/FormatData_en -sun/text/resources/FormatData_en_US -java/text/DecimalFormatSymbols -java/text/spi/DecimalFormatSymbolsProvider -java/util/Currency -java/util/Currency$1 -java/util/CurrencyData -java/util/spi/CurrencyNameProvider -sun/util/resources/CurrencyNames -sun/util/resources/LocaleNamesBundle -sun/util/resources/OpenListResourceBundle -sun/util/resources/CurrencyNames_en_US -java/text/DecimalFormat -java/text/FieldPosition -java/text/DigitList -java/math/RoundingMode -java/util/regex/Pattern$GroupTail -java/util/regex/Pattern$Ctype -java/util/regex/Pattern$Ques -java/util/regex/Pattern$GroupCurly -java/util/regex/Pattern$5 -java/util/regex/Pattern$Loop -java/util/regex/Pattern$Prolog -java/util/regex/Pattern$9 -java/util/regex/Pattern$BranchConn -java/util/regex/Pattern$Branch -java/nio/channels/spi/AbstractInterruptibleChannel$1 -sun/nio/ch/Interruptible -sun/nio/ch/NativeThread -sun/nio/ch/DirectBuffer +java/net/URLClassLoader$7 +java/net/URLConnection +java/net/URLStreamHandler +java/net/URLStreamHandlerFactory +java/nio/Bits +java/nio/Bits$1 +java/nio/Buffer +java/nio/ByteBuffer +java/nio/ByteBufferAsIntBufferB +java/nio/ByteBufferAsShortBufferB +java/nio/ByteOrder +java/nio/CharBuffer java/nio/DirectByteBuffer java/nio/DirectByteBuffer$Deallocator -sun/misc/Cleaner -sun/nio/ch/IOStatus -java/util/regex/ASCII -java/io/DataInputStream -java/io/DataInput -java/lang/Short$ShortCache +java/nio/DirectLongBufferU +java/nio/HeapByteBuffer +java/nio/HeapCharBuffer +java/nio/IntBuffer +java/nio/LongBuffer +java/nio/MappedByteBuffer +java/nio/ShortBuffer +java/nio/channels/ByteChannel +java/nio/channels/Channel +java/nio/channels/FileChannel +java/nio/channels/GatheringByteChannel +java/nio/channels/InterruptibleChannel +java/nio/channels/ReadableByteChannel +java/nio/channels/ScatteringByteChannel +java/nio/channels/SeekableByteChannel +java/nio/channels/WritableByteChannel +java/nio/channels/spi/AbstractInterruptibleChannel +java/nio/channels/spi/AbstractInterruptibleChannel$1 +java/nio/charset/Charset +java/nio/charset/CharsetDecoder +java/nio/charset/CharsetEncoder +java/nio/charset/CoderResult +java/nio/charset/CoderResult$1 +java/nio/charset/CoderResult$2 +java/nio/charset/CoderResult$Cache +java/nio/charset/CodingErrorAction +java/nio/charset/StandardCharsets +java/nio/charset/spi/CharsetProvider +java/nio/file/Path +java/nio/file/Watchable +java/nio/file/attribute/FileAttribute +java/rmi/MarshalledObject +java/rmi/Remote +java/security/AccessControlContext +java/security/AccessController +java/security/AllPermission +java/security/AllPermissionCollection +java/security/BasicPermission +java/security/BasicPermissionCollection +java/security/CodeSigner +java/security/CodeSource +java/security/Guard +java/security/Permission +java/security/PermissionCollection +java/security/Permissions +java/security/Principal +java/security/PrivilegedAction +java/security/PrivilegedActionException +java/security/PrivilegedExceptionAction +java/security/ProtectionDomain +java/security/ProtectionDomain$1 +java/security/ProtectionDomain$3 +java/security/ProtectionDomain$Key +java/security/SecureClassLoader +java/security/UnresolvedPermission +java/security/cert/Certificate +java/text/AttributedCharacterIterator +java/text/AttributedCharacterIterator$Attribute +java/text/AttributedString +java/text/AttributedString$AttributedStringIterator +java/text/CharacterIterator +java/text/FieldPosition +java/text/Format +java/text/Format$Field +java/text/MessageFormat +java/text/MessageFormat$Field +java/text/spi/BreakIteratorProvider +java/text/spi/CollatorProvider +java/text/spi/DateFormatProvider +java/text/spi/DateFormatSymbolsProvider +java/text/spi/DecimalFormatSymbolsProvider +java/text/spi/NumberFormatProvider +java/util/AbstractCollection +java/util/AbstractList +java/util/AbstractList$Itr +java/util/AbstractMap +java/util/AbstractQueue +java/util/AbstractSequentialList +java/util/AbstractSet +java/util/ArrayDeque +java/util/ArrayList +java/util/ArrayList$Itr +java/util/ArrayList$ListItr +java/util/ArrayList$SubList +java/util/ArrayList$SubList$1 +java/util/Arrays +java/util/Arrays$ArrayList +java/util/Arrays$LegacyMergeSort +java/util/BitSet +java/util/Collection +java/util/Collections +java/util/Collections$EmptyEnumeration +java/util/Collections$EmptyList +java/util/Collections$EmptyMap +java/util/Collections$EmptySet +java/util/Collections$SetFromMap +java/util/Collections$SynchronizedCollection +java/util/Collections$SynchronizedMap +java/util/Collections$SynchronizedSet +java/util/Collections$UnmodifiableCollection +java/util/Collections$UnmodifiableCollection$1 +java/util/Collections$UnmodifiableList +java/util/Collections$UnmodifiableMap +java/util/Collections$UnmodifiableRandomAccessList +java/util/Collections$UnmodifiableSet +java/util/Collections$UnmodifiableSortedSet +java/util/ComparableTimSort +java/util/Comparator +java/util/Date +java/util/Deque +java/util/Dictionary +java/util/Enumeration +java/util/EventListener +java/util/EventListenerProxy +java/util/EventObject +java/util/HashMap +java/util/HashMap$EntryIterator +java/util/HashMap$EntrySet +java/util/HashMap$HashIterator java/util/HashMap$KeyIterator -sun/font/CompositeFontDescriptor -sun/font/Font2DHandle -sun/font/FontFamily -java/awt/GraphicsDevice -sun/awt/X11GraphicsDevice -sun/awt/X11GraphicsConfig -java/awt/GraphicsConfiguration -java/awt/ImageCapabilities -sun/java2d/x11/X11SurfaceData -sun/java2d/SurfaceData -java/awt/Transparency -sun/java2d/DisposerTarget -sun/java2d/InvalidPipeException -java/lang/IllegalStateException -sun/java2d/NullSurfaceData -sun/java2d/loops/SurfaceType -sun/awt/image/PixelConverter -sun/awt/image/PixelConverter$Xrgb -sun/awt/image/PixelConverter$Argb -sun/awt/image/PixelConverter$ArgbPre -sun/awt/image/PixelConverter$Xbgr -sun/awt/image/PixelConverter$Rgba -sun/awt/image/PixelConverter$RgbaPre -sun/awt/image/PixelConverter$Ushort565Rgb -sun/awt/image/PixelConverter$Ushort555Rgb -sun/awt/image/PixelConverter$Ushort555Rgbx -sun/awt/image/PixelConverter$Ushort4444Argb -sun/awt/image/PixelConverter$ByteGray -sun/awt/image/PixelConverter$UshortGray -sun/awt/image/PixelConverter$Rgbx -sun/awt/image/PixelConverter$Bgrx -sun/awt/image/PixelConverter$ArgbBm -java/awt/image/ColorModel -java/awt/image/DirectColorModel -java/awt/image/PackedColorModel -java/awt/color/ColorSpace -java/awt/color/ICC_Profile -sun/awt/color/ProfileDeferralInfo -sun/awt/color/ProfileDeferralMgr -java/awt/color/ICC_ProfileRGB -java/awt/color/ICC_Profile$1 -sun/awt/color/ProfileActivator -java/awt/color/ICC_ColorSpace -sun/java2d/pipe/NullPipe -sun/java2d/pipe/PixelDrawPipe -sun/java2d/pipe/PixelFillPipe -sun/java2d/pipe/ShapeDrawPipe -sun/java2d/pipe/TextPipe -sun/java2d/pipe/DrawImagePipe -java/awt/image/IndexColorModel -sun/java2d/pipe/LoopPipe -sun/java2d/pipe/OutlineTextRenderer -sun/java2d/pipe/SolidTextRenderer -sun/java2d/pipe/GlyphListLoopPipe -sun/java2d/pipe/GlyphListPipe -sun/java2d/pipe/AATextRenderer -sun/java2d/pipe/LCDTextRenderer -sun/java2d/pipe/AlphaColorPipe -sun/java2d/pipe/CompositePipe -sun/java2d/pipe/PixelToShapeConverter -sun/java2d/pipe/TextRenderer -sun/java2d/pipe/SpanClipRenderer -sun/java2d/pipe/Region -sun/java2d/pipe/RegionIterator -sun/java2d/pipe/DuctusShapeRenderer -sun/java2d/pipe/DuctusRenderer -sun/java2d/pipe/AlphaPaintPipe -sun/java2d/pipe/SpanShapeRenderer$Composite -sun/java2d/pipe/SpanShapeRenderer -sun/java2d/pipe/GeneralCompositePipe -sun/java2d/pipe/DrawImage -sun/java2d/loops/RenderCache -sun/java2d/loops/RenderCache$Entry -sun/java2d/loops/XORComposite -java/awt/Composite -sun/font/X11TextRenderer -sun/java2d/loops/GraphicsPrimitive -sun/java2d/x11/X11PMBlitLoops -sun/java2d/loops/Blit -sun/java2d/loops/GraphicsPrimitiveMgr -sun/java2d/loops/CompositeType -sun/java2d/SunGraphics2D -sun/awt/ConstrainableGraphics -java/awt/Graphics2D -java/awt/Graphics -java/awt/Color -java/awt/Paint -java/awt/AlphaComposite -sun/java2d/loops/BlitBg -sun/java2d/loops/ScaledBlit -sun/java2d/loops/FillRect -sun/java2d/loops/FillSpans -sun/java2d/loops/DrawLine -sun/java2d/loops/DrawRect -sun/java2d/loops/DrawPolygons -sun/java2d/loops/DrawPath -sun/java2d/loops/FillPath -sun/java2d/loops/MaskBlit -sun/java2d/loops/MaskFill -sun/java2d/loops/DrawGlyphList -sun/java2d/loops/DrawGlyphListAA -sun/java2d/loops/DrawGlyphListLCD -sun/java2d/loops/TransformHelper -java/awt/BasicStroke -java/awt/Stroke -sun/misc/PerformanceLogger -sun/misc/PerformanceLogger$TimeData -sun/java2d/pipe/ValidatePipe -sun/java2d/loops/CustomComponent -sun/java2d/loops/GraphicsPrimitiveProxy -sun/java2d/loops/GeneralRenderer -sun/java2d/loops/GraphicsPrimitiveMgr$1 -sun/java2d/loops/GraphicsPrimitiveMgr$2 -sun/java2d/x11/X11PMBlitLoops$DelegateBlitLoop -sun/java2d/x11/X11PMBlitBgLoops -sun/java2d/x11/X11SurfaceData$LazyPipe -sun/awt/X11GraphicsConfig$X11GCDisposerRecord -sun/java2d/DisposerRecord -java/awt/BorderLayout -java/awt/LayoutManager2 -java/awt/Rectangle -java/awt/Toolkit$2 -sun/awt/X11/XToolkit -sun/awt/X11/XConstants -sun/awt/UNIXToolkit -java/util/TreeMap +java/util/HashMap$KeySet +java/util/HashMap$Node +java/util/HashMap$TreeNode +java/util/HashMap$ValueIterator +java/util/HashMap$Values +java/util/HashSet +java/util/Hashtable +java/util/Hashtable$Entry +java/util/Hashtable$EntrySet +java/util/Hashtable$Enumerator +java/util/Hashtable$ValueCollection +java/util/IdentityHashMap +java/util/IdentityHashMap$IdentityHashMapIterator +java/util/IdentityHashMap$KeyIterator +java/util/IdentityHashMap$KeySet +java/util/Iterator +java/util/LinkedHashMap +java/util/LinkedHashMap$Entry +java/util/LinkedHashMap$LinkedEntryIterator +java/util/LinkedHashMap$LinkedEntrySet +java/util/LinkedHashMap$LinkedHashIterator +java/util/LinkedHashMap$LinkedKeyIterator +java/util/LinkedHashMap$LinkedKeySet +java/util/LinkedHashSet +java/util/LinkedList +java/util/LinkedList$ListItr +java/util/LinkedList$Node +java/util/List +java/util/ListIterator +java/util/ListResourceBundle +java/util/Locale +java/util/Locale$1 +java/util/Locale$Cache +java/util/Locale$Category +java/util/Locale$LocaleKey +java/util/Map +java/util/Map$Entry +java/util/MissingResourceException java/util/NavigableMap +java/util/NavigableSet +java/util/Objects +java/util/PriorityQueue +java/util/Properties +java/util/Properties$LineReader +java/util/PropertyResourceBundle +java/util/Queue +java/util/Random +java/util/RandomAccess +java/util/ResourceBundle +java/util/ResourceBundle$1 +java/util/ResourceBundle$BundleReference +java/util/ResourceBundle$CacheKey +java/util/ResourceBundle$CacheKeyReference +java/util/ResourceBundle$Control +java/util/ResourceBundle$Control$1 +java/util/ResourceBundle$Control$CandidateListCache +java/util/ResourceBundle$LoaderReference +java/util/ResourceBundle$RBClassLoader +java/util/ResourceBundle$RBClassLoader$1 +java/util/ResourceBundle$SingleFormatControl +java/util/ServiceLoader +java/util/ServiceLoader$1 +java/util/ServiceLoader$LazyIterator +java/util/Set java/util/SortedMap -sun/awt/X11/XlibWrapper -sun/awt/X11/XUtilConstants -sun/awt/X11/XProtocolConstants -sun/awt/X11/XCursorFontConstants -sun/awt/X11/XlibWrapper$1 -sun/awt/X11/XToolkit$4 -sun/awt/X11/XModifierKeymap -sun/awt/X11/XWrapperBase -sun/awt/X11/Native -sun/awt/X11/Native$1 -java/awt/EventQueue -sun/awt/X11/XToolkit$7 -java/util/EmptyStackException -java/lang/reflect/InvocationTargetException -java/awt/EventDispatchThread -java/awt/event/PaintEvent -java/awt/event/MouseEvent -sun/awt/PeerEvent -java/awt/event/InvocationEvent -java/awt/ActiveEvent -java/awt/EventQueueItem -sun/awt/X11/XToolkit$1 -sun/awt/X11/XToolkit$XErrorHandler -sun/awt/X11/XToolkit$5 -sun/awt/X11/XEventDispatcher -sun/awt/SunToolkit$ModalityListenerList -sun/awt/ModalityListener -sun/awt/SunToolkit$1 -java/util/MissingResourceException -java/awt/Queue -sun/awt/PostEventQueue -java/util/LinkedList -java/util/Deque -java/util/Queue -java/util/AbstractSequentialList -java/util/LinkedList$Entry -sun/awt/X11/AwtScreenData -sun/awt/X11/XWM -sun/awt/X11/MWMConstants -sun/awt/X11/XAtom -java/awt/Insets -sun/awt/X11/XWM$1 -sun/awt/X11/XWM$2 -sun/awt/X11/XSetWindowAttributes -sun/awt/X11/XErrorEvent -sun/awt/X11/XNETProtocol -sun/awt/X11/XStateProtocol -sun/awt/X11/XLayerProtocol -sun/awt/X11/XProtocol -sun/awt/X11/XProtocol$1 -sun/awt/X11/WindowPropertyGetter -sun/awt/X11/UnsafeXDisposerRecord -sun/awt/X11/XPropertyCache -sun/awt/X11/XWINProtocol -sun/awt/X11/XAtomList -sun/awt/X11/XToolkit$3 -sun/awt/X11/XAnyEvent -sun/awt/X11/IXAnyEvent -java/awt/Window$WindowDisposerRecord -java/awt/KeyboardFocusManager -java/awt/KeyEventDispatcher -java/awt/KeyEventPostProcessor -java/awt/AWTKeyStroke -java/awt/AWTKeyStroke$1 -java/awt/DefaultKeyboardFocusManager -java/awt/DefaultFocusTraversalPolicy -java/awt/ContainerOrderFocusTraversalPolicy -java/awt/FocusTraversalPolicy -java/awt/MutableBoolean -java/util/Collections$UnmodifiableSet -sun/awt/HeadlessToolkit -sun/awt/X11/XKeyboardFocusManagerPeer -java/awt/peer/KeyboardFocusManagerPeer -sun/awt/X11/XKeyboardFocusManagerPeer$1 -sun/awt/X11/XFramePeer -java/awt/peer/FramePeer -java/awt/peer/WindowPeer -java/awt/peer/ContainerPeer -java/awt/peer/ComponentPeer -sun/awt/X11/XDecoratedPeer -sun/awt/X11/XWindowPeer -sun/awt/X11/XPanelPeer -java/awt/peer/PanelPeer -sun/awt/X11/XCanvasPeer -java/awt/peer/CanvasPeer -sun/awt/X11/XComponentPeer -java/awt/dnd/peer/DropTargetPeer -sun/awt/X11/XWindow -sun/awt/X11ComponentPeer -sun/awt/X11/XBaseWindow -sun/awt/X11/XCreateWindowParams -java/lang/Long$LongCache -sun/awt/X11/XBaseWindow$InitialiseState -sun/awt/X11/XBaseWindow$StateLock -sun/awt/X11/AwtGraphicsConfigData -sun/awt/X11/XVisualInfo -java/awt/SystemColor -sun/awt/X11/MotifColorUtilities -java/lang/StrictMath -sun/awt/X11/XRepaintArea -sun/awt/RepaintArea -sun/awt/X11/XWindowAttributesData +java/util/SortedSet +java/util/Stack +java/util/StringTokenizer +java/util/TimSort +java/util/TimeZone +java/util/TimeZone$1 +java/util/TreeMap +java/util/TreeMap$Entry +java/util/TreeMap$KeyIterator +java/util/TreeMap$KeySet +java/util/TreeMap$PrivateEntryIterator +java/util/TreeSet +java/util/Vector +java/util/Vector$1 +java/util/Vector$Itr +java/util/Vector$ListItr +java/util/WeakHashMap +java/util/WeakHashMap$Entry +java/util/WeakHashMap$HashIterator +java/util/WeakHashMap$KeyIterator +java/util/WeakHashMap$KeySet +java/util/concurrent/AbstractExecutorService +java/util/concurrent/BlockingQueue +java/util/concurrent/ConcurrentHashMap +java/util/concurrent/ConcurrentHashMap$BaseIterator +java/util/concurrent/ConcurrentHashMap$CollectionView +java/util/concurrent/ConcurrentHashMap$CounterCell +java/util/concurrent/ConcurrentHashMap$EntrySetView +java/util/concurrent/ConcurrentHashMap$ForwardingNode +java/util/concurrent/ConcurrentHashMap$KeyIterator +java/util/concurrent/ConcurrentHashMap$KeySetView +java/util/concurrent/ConcurrentHashMap$Node +java/util/concurrent/ConcurrentHashMap$Segment +java/util/concurrent/ConcurrentHashMap$Traverser +java/util/concurrent/ConcurrentHashMap$ValuesView +java/util/concurrent/ConcurrentMap +java/util/concurrent/CopyOnWriteArrayList +java/util/concurrent/DelayQueue +java/util/concurrent/Delayed +java/util/concurrent/Executor +java/util/concurrent/ExecutorService +java/util/concurrent/Executors +java/util/concurrent/RejectedExecutionHandler +java/util/concurrent/SynchronousQueue +java/util/concurrent/SynchronousQueue$TransferStack +java/util/concurrent/SynchronousQueue$TransferStack$SNode +java/util/concurrent/SynchronousQueue$Transferer +java/util/concurrent/ThreadFactory +java/util/concurrent/ThreadPoolExecutor +java/util/concurrent/ThreadPoolExecutor$AbortPolicy +java/util/concurrent/ThreadPoolExecutor$Worker +java/util/concurrent/TimeUnit +java/util/concurrent/TimeUnit$1 +java/util/concurrent/TimeUnit$2 +java/util/concurrent/TimeUnit$3 +java/util/concurrent/TimeUnit$4 +java/util/concurrent/TimeUnit$5 +java/util/concurrent/TimeUnit$6 +java/util/concurrent/TimeUnit$7 +java/util/concurrent/atomic/AtomicBoolean +java/util/concurrent/atomic/AtomicInteger +java/util/concurrent/atomic/AtomicLong +java/util/concurrent/atomic/AtomicReferenceFieldUpdater +java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl +java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1 +java/util/concurrent/locks/AbstractOwnableSynchronizer +java/util/concurrent/locks/AbstractQueuedSynchronizer +java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject +java/util/concurrent/locks/AbstractQueuedSynchronizer$Node +java/util/concurrent/locks/Condition +java/util/concurrent/locks/Lock java/util/concurrent/locks/LockSupport -sun/awt/X11/WindowDimensions -java/awt/Point -java/util/TreeMap$Entry -sun/nio/cs/UTF_8 -sun/nio/cs/Unicode -sun/nio/cs/UTF_8$Encoder -sun/nio/cs/UTF_8$Decoder -sun/nio/cs/Surrogate$Generator -sun/awt/X11/XPropertyEvent -sun/awt/X11/XDropTargetEventProcessor -sun/awt/X11/XDragSourceContextPeer -sun/awt/X11/XDragSourceProtocolListener -sun/awt/dnd/SunDragSourceContextPeer -java/awt/dnd/peer/DragSourceContextPeer -sun/awt/X11/XAwtState -sun/awt/X11/XBaseWindow$1 -sun/awt/X11/XRootWindow -sun/nio/cs/ISO_8859_1 -sun/nio/cs/ISO_8859_1$Encoder -sun/nio/cs/ISO_8859_1$Decoder -sun/java2d/x11/X11SurfaceData$X11WindowSurfaceData -sun/java2d/loops/RenderLoops -sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec -sun/java2d/DefaultDisposerRecord -sun/java2d/x11/X11Renderer -sun/awt/X11/XGlobalCursorManager -sun/awt/GlobalCursorManager -sun/awt/X11/XToolkit$6 -java/awt/Cursor$CursorDisposer -java/awt/AWTException -java/awt/HeadlessException -java/lang/UnsupportedOperationException -sun/reflect/UnsafeLongFieldAccessorImpl -sun/reflect/UnsafeIntegerFieldAccessorImpl -sun/awt/X11/XClientMessageEvent -sun/awt/X11/XIconInfo -sun/awt/X11/XAWTIcon32_java_icon16_png -sun/awt/X11/XAWTIcon32_java_icon24_png -sun/awt/X11/XAWTIcon32_java_icon32_png -sun/awt/X11/XAWTIcon32_java_icon48_png -sun/awt/X11/XSizeHints -sun/awt/X11/XContentWindow -sun/awt/X11/XFocusProxyWindow -sun/awt/X11/XWMHints -java/util/LinkedList$ListItr -java/util/ListIterator -sun/awt/SunToolkit$2 -java/awt/image/BufferStrategy -java/awt/dnd/DropTarget -java/awt/dnd/DropTargetListener -java/awt/event/ComponentListener -java/awt/event/FocusListener -java/awt/event/HierarchyListener -java/awt/event/HierarchyBoundsListener -java/awt/event/KeyListener -java/awt/event/MouseListener -java/awt/event/MouseMotionListener -java/awt/event/MouseWheelListener -java/awt/event/InputMethodListener -java/awt/Component$NativeInLightFixer -java/awt/event/ContainerListener +java/util/concurrent/locks/ReadWriteLock +java/util/concurrent/locks/ReentrantLock +java/util/concurrent/locks/ReentrantLock$NonfairSync +java/util/concurrent/locks/ReentrantLock$Sync +java/util/concurrent/locks/ReentrantReadWriteLock +java/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync +java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock +java/util/concurrent/locks/ReentrantReadWriteLock$Sync +java/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter +java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock +java/util/function/BiFunction +java/util/jar/Attributes +java/util/jar/Attributes$Name +java/util/jar/JarEntry +java/util/jar/JarFile +java/util/jar/JarFile$JarEntryIterator +java/util/jar/JarFile$JarFileEntry +java/util/jar/JarVerifier +java/util/jar/JarVerifier$3 +java/util/jar/JavaUtilJarAccessImpl +java/util/jar/Manifest +java/util/jar/Manifest$FastInputStream +java/util/logging/Handler +java/util/logging/Level +java/util/logging/Level$KnownLevel +java/util/logging/LogManager +java/util/logging/LogManager$1 +java/util/logging/LogManager$2 +java/util/logging/LogManager$3 +java/util/logging/LogManager$5 +java/util/logging/LogManager$Cleaner +java/util/logging/LogManager$LogNode +java/util/logging/LogManager$LoggerContext +java/util/logging/LogManager$LoggerContext$1 +java/util/logging/LogManager$LoggerWeakRef +java/util/logging/LogManager$RootLogger +java/util/logging/LogManager$SystemLoggerContext +java/util/logging/Logger +java/util/logging/Logger$1 +java/util/logging/LoggingPermission +java/util/logging/LoggingProxyImpl +java/util/spi/CalendarDataProvider +java/util/spi/CurrencyNameProvider +java/util/spi/LocaleNameProvider +java/util/spi/LocaleServiceProvider +java/util/spi/ResourceBundleControlProvider +java/util/spi/TimeZoneNameProvider +java/util/zip/CRC32 +java/util/zip/Checksum +java/util/zip/Inflater +java/util/zip/InflaterInputStream +java/util/zip/ZStreamRef +java/util/zip/ZipCoder +java/util/zip/ZipConstants +java/util/zip/ZipEntry +java/util/zip/ZipException +java/util/zip/ZipFile +java/util/zip/ZipFile$1 +java/util/zip/ZipFile$ZipEntryIterator +java/util/zip/ZipFile$ZipFileInflaterInputStream +java/util/zip/ZipFile$ZipFileInputStream +java/util/zip/ZipUtils +javax/accessibility/Accessible javax/accessibility/AccessibleContext -sun/reflect/UnsafeObjectFieldAccessorImpl -java/awt/peer/LightweightPeer -sun/awt/X11/XLabelPeer -java/awt/peer/LabelPeer -sun/awt/X11/XMapEvent -sun/awt/X11/XQueryTree -sun/awt/X11/XConfigureEvent -sun/awt/X11/PropMwmHints -sun/awt/GlobalCursorManager$NativeUpdater -javax/swing/JFrame -javax/swing/WindowConstants -javax/swing/RootPaneContainer -javax/swing/TransferHandler$HasGetTransferHandler -javax/swing/JLabel -javax/swing/SwingConstants +javax/swing/AbstractAction +javax/swing/AbstractButton +javax/swing/AbstractButton$Handler +javax/swing/AbstractListModel +javax/swing/Action +javax/swing/ActionMap +javax/swing/AncestorNotifier +javax/swing/ArrayTable +javax/swing/Autoscroller +javax/swing/BorderFactory +javax/swing/BoundedRangeModel +javax/swing/Box +javax/swing/Box$Filler +javax/swing/BoxLayout +javax/swing/ButtonGroup +javax/swing/ButtonModel +javax/swing/CellRendererPane +javax/swing/ClientPropertyKey +javax/swing/ClientPropertyKey$1 +javax/swing/ComboBoxEditor +javax/swing/ComboBoxModel +javax/swing/ComponentInputMap +javax/swing/DefaultBoundedRangeModel +javax/swing/DefaultButtonModel +javax/swing/DefaultComboBoxModel +javax/swing/DefaultListCellRenderer +javax/swing/DefaultListCellRenderer$UIResource +javax/swing/DefaultListSelectionModel +javax/swing/DefaultSingleSelectionModel +javax/swing/DropMode +javax/swing/FocusManager +javax/swing/GrayFilter +javax/swing/Icon +javax/swing/ImageIcon +javax/swing/ImageIcon$1 +javax/swing/ImageIcon$2 +javax/swing/ImageIcon$2$1 +javax/swing/ImageIcon$3 +javax/swing/InputMap +javax/swing/InternalFrameFocusTraversalPolicy +javax/swing/JButton +javax/swing/JCheckBox +javax/swing/JCheckBoxMenuItem +javax/swing/JComboBox +javax/swing/JComboBox$1 +javax/swing/JComboBox$KeySelectionManager javax/swing/JComponent javax/swing/JComponent$1 -javax/swing/SwingUtilities -javax/swing/JRootPane -sun/security/action/GetBooleanAction -javax/swing/event/EventListenerList +javax/swing/JComponent$2 +javax/swing/JDialog +javax/swing/JEditorPane +javax/swing/JFrame +javax/swing/JInternalFrame +javax/swing/JLabel +javax/swing/JLayer +javax/swing/JLayeredPane +javax/swing/JList +javax/swing/JMenu +javax/swing/JMenu$MenuChangeListener +javax/swing/JMenu$WinListener +javax/swing/JMenuBar +javax/swing/JMenuItem +javax/swing/JMenuItem$MenuItemFocusListener javax/swing/JPanel -java/awt/FlowLayout -javax/swing/UIManager -javax/swing/UIManager$LookAndFeelInfo -sun/swing/SwingUtilities2 -sun/swing/SwingUtilities2$LSBCacheEntry -javax/swing/UIManager$LAFState -javax/swing/UIDefaults -javax/swing/MultiUIDefaults -javax/swing/UIManager$1 -javax/swing/plaf/metal/MetalLookAndFeel -javax/swing/plaf/basic/BasicLookAndFeel +javax/swing/JPasswordField +javax/swing/JPopupMenu +javax/swing/JPopupMenu$Separator +javax/swing/JRadioButton +javax/swing/JRadioButtonMenuItem +javax/swing/JRootPane +javax/swing/JRootPane$1 +javax/swing/JRootPane$RootLayout +javax/swing/JScrollBar +javax/swing/JScrollBar$ModelListener +javax/swing/JScrollPane +javax/swing/JScrollPane$ScrollBar +javax/swing/JSeparator +javax/swing/JSplitPane +javax/swing/JTextArea +javax/swing/JTextField +javax/swing/JTextField$NotifyAction +javax/swing/JTextField$ScrollRepainter +javax/swing/JToggleButton +javax/swing/JToggleButton$ToggleButtonModel +javax/swing/JToolBar +javax/swing/JToolBar$DefaultToolBarLayout +javax/swing/JToolBar$Separator +javax/swing/JViewport +javax/swing/JViewport$ViewListener +javax/swing/JWindow +javax/swing/KeyStroke +javax/swing/KeyboardManager +javax/swing/KeyboardManager$ComponentKeyStrokePair +javax/swing/LayoutComparator +javax/swing/LayoutFocusTraversalPolicy +javax/swing/ListCellRenderer +javax/swing/ListModel +javax/swing/ListSelectionModel javax/swing/LookAndFeel -sun/swing/DefaultLookup -javax/swing/plaf/metal/OceanTheme -javax/swing/plaf/metal/DefaultMetalTheme -javax/swing/plaf/metal/MetalTheme -javax/swing/plaf/ColorUIResource -javax/swing/plaf/UIResource -sun/swing/PrintColorUIResource -javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate -javax/swing/plaf/FontUIResource -sun/swing/SwingLazyValue -javax/swing/UIDefaults$LazyValue -javax/swing/UIDefaults$ActiveValue -javax/swing/plaf/InsetsUIResource -sun/swing/SwingUtilities2$2 -javax/swing/plaf/basic/BasicLookAndFeel$2 -javax/swing/plaf/DimensionUIResource -javax/swing/UIDefaults$LazyInputMap -java/lang/Character$CharacterCache -javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue -javax/swing/plaf/metal/MetalLookAndFeel$FontActiveValue -java/awt/print/PrinterJob -sun/swing/SwingUtilities2$AATextInfo -sun/awt/X11/XAWTXSettings -sun/awt/X11/XMSelectionListener -sun/awt/XSettings -sun/awt/X11/XMSelection -sun/awt/X11/XMSelection$1 -javax/swing/plaf/metal/MetalLookAndFeel$AATextListener -java/beans/PropertyChangeListener -java/beans/PropertyChangeListenerProxy -java/util/EventListenerProxy -sun/awt/EventListenerAggregate -javax/swing/UIDefaults$ProxyLazyValue -javax/swing/plaf/metal/OceanTheme$1 -javax/swing/plaf/metal/OceanTheme$2 -javax/swing/plaf/metal/OceanTheme$3 -javax/swing/plaf/metal/OceanTheme$4 -javax/swing/plaf/metal/OceanTheme$5 -javax/swing/plaf/metal/OceanTheme$6 +javax/swing/MenuElement +javax/swing/MenuSelectionManager +javax/swing/MultiUIDefaults +javax/swing/MutableComboBoxModel +javax/swing/PopupFactory javax/swing/RepaintManager +javax/swing/RepaintManager$2 +javax/swing/RepaintManager$3 javax/swing/RepaintManager$DisplayChangedHandler -javax/swing/SwingPaintEventDispatcher -sun/awt/PaintEventDispatcher -javax/swing/UIManager$2 -javax/swing/UIManager$3 -java/awt/PopupMenu -java/awt/Menu -java/awt/MenuItem -java/awt/MenuComponent -java/io/ObjectOutputStream -java/io/ObjectOutput -java/io/DataOutput -java/io/ObjectStreamConstants -java/io/PrintWriter -java/io/ObjectInputStream -java/io/ObjectInput -java/awt/Event -java/awt/im/InputContext -java/awt/event/MouseWheelEvent -java/awt/BufferCapabilities -sun/awt/CausedFocusEvent$Cause -java/awt/PointerInfo -java/awt/Component$BaselineResizeBehavior -java/awt/FontMetrics -java/awt/Image -java/awt/image/ImageProducer -java/awt/image/VolatileImage -java/awt/im/InputMethodRequests -java/awt/event/FocusEvent -java/awt/event/InputMethodEvent -java/awt/event/HierarchyEvent -javax/accessibility/AccessibleStateSet -com/sun/swing/internal/plaf/metal/resources/metal -sun/util/ResourceBundleEnumeration -com/sun/swing/internal/plaf/basic/resources/basic -javax/swing/plaf/basic/BasicPanelUI -javax/swing/plaf/PanelUI -javax/swing/plaf/ComponentUI -sun/reflect/misc/MethodUtil -sun/reflect/misc/MethodUtil$1 -java/util/jar/JarFile -java/util/zip/ZipFile -java/util/zip/ZipConstants -java/util/jar/JavaUtilJarAccessImpl -sun/misc/JavaUtilJarAccess -sun/misc/JarIndex -java/util/zip/ZipEntry -java/util/jar/JarFile$JarFileEntry -java/util/jar/JarEntry -sun/misc/URLClassPath$JarLoader$2 -sun/net/www/protocol/jar/JarURLConnection -java/net/JarURLConnection -sun/net/www/protocol/jar/JarFileFactory -sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController -java/net/HttpURLConnection -sun/net/www/protocol/jar/URLJarFile -sun/net/www/protocol/jar/URLJarFile$URLJarFileEntry -sun/net/www/protocol/jar/JarURLConnection$JarURLInputStream -java/util/zip/ZipFile$ZipFileInputStream -java/security/AllPermissionCollection -java/lang/IllegalAccessException -javax/swing/JPasswordField -javax/swing/JTextField -javax/swing/text/JTextComponent +javax/swing/RepaintManager$PaintManager +javax/swing/RepaintManager$ProcessingRunnable +javax/swing/RootPaneContainer +javax/swing/ScrollPaneConstants +javax/swing/ScrollPaneLayout +javax/swing/ScrollPaneLayout$UIResource javax/swing/Scrollable -javax/swing/JLayeredPane -javax/swing/JRootPane$1 -javax/swing/ArrayTable -javax/swing/JInternalFrame -javax/swing/JRootPane$RootLayout -javax/swing/BufferStrategyPaintManager -javax/swing/RepaintManager$PaintManager -javax/swing/plaf/metal/MetalRootPaneUI -javax/swing/plaf/basic/BasicRootPaneUI -javax/swing/plaf/RootPaneUI -javax/swing/plaf/basic/BasicRootPaneUI$RootPaneInputMap -javax/swing/plaf/ComponentInputMapUIResource -javax/swing/ComponentInputMap -javax/swing/InputMap -javax/swing/plaf/InputMapUIResource -javax/swing/KeyStroke -java/awt/VKCollection -sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl -javax/swing/plaf/basic/LazyActionMap -javax/swing/plaf/ActionMapUIResource -javax/swing/ActionMap -javax/swing/LayoutFocusTraversalPolicy +javax/swing/SingleSelectionModel +javax/swing/SizeRequirements javax/swing/SortingFocusTraversalPolicy -javax/swing/InternalFrameFocusTraversalPolicy +javax/swing/SwingConstants javax/swing/SwingContainerOrderFocusTraversalPolicy javax/swing/SwingDefaultFocusTraversalPolicy -javax/swing/LayoutComparator -javax/swing/plaf/metal/MetalLabelUI -javax/swing/plaf/basic/BasicLabelUI -javax/swing/plaf/LabelUI -javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1 -javax/swing/plaf/basic/BasicHTML -javax/swing/SystemEventQueueUtilities -javax/swing/SystemEventQueueUtilities$SystemEventQueue -sun/awt/NullComponentPeer -java/awt/event/WindowEvent -java/awt/EventQueue$1 -java/awt/EventDispatchThread$1 -java/awt/Conditional -java/awt/EventDispatchThread$HierarchyEventFilter -java/awt/EventFilter$FilterAction -sun/awt/dnd/SunDropTargetEvent -java/awt/event/ActionEvent -java/util/jar/Manifest -java/io/ByteArrayInputStream -java/util/jar/Attributes -java/util/jar/Manifest$FastInputStream -java/util/jar/Attributes$Name -sun/misc/ASCIICaseInsensitiveComparator -java/util/jar/JarVerifier -java/io/ByteArrayOutputStream -sun/misc/ExtensionDependency -java/lang/Package -sun/security/util/ManifestEntryVerifier -sun/security/provider/Sun -java/security/Provider -java/security/Provider$ServiceKey -java/security/Provider$EngineDescription -sun/security/provider/Sun$1 -java/security/Security -java/security/Security$1 -sun/misc/FloatingDecimal -sun/misc/FloatingDecimal$1 -sun/security/provider/NativePRNG -java/security/SecureRandomSpi -sun/security/provider/NativePRNG$1 -sun/security/provider/NativePRNG$RandomIO -sun/misc/BASE64Decoder -sun/misc/CharacterDecoder -sun/security/util/SignatureFileVerifier -java/awt/event/KeyAdapter -java/lang/NumberFormatException -java/lang/IllegalArgumentException -java/io/FileWriter -java/net/Authenticator -java/net/MalformedURLException -javax/swing/text/Element -javax/swing/text/Document -javax/swing/text/PlainDocument -javax/swing/text/AbstractDocument -javax/swing/text/GapContent -javax/swing/text/AbstractDocument$Content -javax/swing/text/GapVector -javax/swing/text/GapContent$MarkVector -javax/swing/text/GapContent$MarkData -javax/swing/text/StyleContext -javax/swing/text/AbstractDocument$AttributeContext -javax/swing/text/StyleConstants -javax/swing/text/StyleConstants$CharacterConstants -javax/swing/text/AttributeSet$CharacterAttribute -javax/swing/text/StyleConstants$FontConstants -javax/swing/text/AttributeSet$FontAttribute -javax/swing/text/StyleConstants$ColorConstants -javax/swing/text/AttributeSet$ColorAttribute -javax/swing/text/StyleConstants$ParagraphConstants -javax/swing/text/AttributeSet$ParagraphAttribute -javax/swing/text/StyleContext$FontKey -javax/swing/text/SimpleAttributeSet -javax/swing/text/MutableAttributeSet -javax/swing/text/AttributeSet -javax/swing/text/SimpleAttributeSet$EmptyAttributeSet -javax/swing/text/StyleContext$NamedStyle -javax/swing/text/Style -javax/swing/text/SimpleAttributeSet$1 -javax/swing/text/StyleContext$SmallAttributeSet -javax/swing/text/AbstractDocument$BidiRootElement -javax/swing/text/AbstractDocument$BranchElement -javax/swing/text/AbstractDocument$AbstractElement -javax/swing/tree/TreeNode -javax/swing/text/AbstractDocument$1 -javax/swing/text/AbstractDocument$BidiElement -javax/swing/text/AbstractDocument$LeafElement -javax/swing/text/GapContent$StickyPosition -javax/swing/text/Position -javax/swing/text/StyleContext$KeyEnumeration -javax/swing/text/GapContent$InsertUndo -javax/swing/undo/AbstractUndoableEdit -javax/swing/undo/UndoableEdit -javax/swing/text/AbstractDocument$DefaultDocumentEvent -javax/swing/event/DocumentEvent -javax/swing/undo/CompoundEdit -javax/swing/event/DocumentEvent$EventType -javax/swing/text/Segment -java/text/CharacterIterator -javax/swing/text/Utilities -javax/swing/text/SegmentCache -javax/swing/text/SegmentCache$CachedSegment -javax/swing/event/UndoableEditEvent -javax/swing/text/AbstractDocument$ElementEdit -javax/swing/event/DocumentEvent$ElementChange -java/net/Socket -java/net/InetAddress -java/net/InetAddress$Cache -java/net/InetAddress$Cache$Type -java/net/InetAddressImplFactory -java/net/Inet4AddressImpl -java/net/InetAddressImpl -java/net/InetAddress$1 -sun/net/spi/nameservice/NameService -sun/net/util/IPAddressUtil -java/util/RandomAccessSubList -java/util/SubList -java/util/SubList$1 -java/util/AbstractList$ListItr -java/net/Inet4Address -java/net/InetSocketAddress -java/net/SocketAddress -java/net/SocksSocketImpl -java/net/SocksConsts -java/net/PlainSocketImpl -java/net/SocketImpl -java/net/SocketOptions -java/net/SocketException -java/net/SocksSocketImpl$5 -java/net/ProxySelector -sun/net/spi/DefaultProxySelector -sun/net/spi/DefaultProxySelector$1 -sun/net/NetProperties -sun/net/NetProperties$1 -sun/net/spi/DefaultProxySelector$NonProxyInfo -java/net/Inet6Address -java/net/URI -java/net/URI$Parser -java/net/Proxy -java/net/Proxy$Type -java/net/ConnectException -javax/swing/JMenu -javax/swing/MenuElement -javax/swing/JMenuItem -javax/swing/AbstractButton -java/awt/ItemSelectable -javax/swing/event/MenuListener -javax/swing/JCheckBoxMenuItem -javax/swing/Icon -javax/swing/JButton -java/awt/event/WindowListener -java/net/URLClassLoader$2 -javax/swing/ImageIcon -javax/swing/ImageIcon$1 -java/awt/MediaTracker -sun/misc/SoftCache$ValueCell -sun/awt/image/URLImageSource -sun/awt/image/InputStreamImageSource -sun/awt/image/ImageFetchable -sun/awt/image/ToolkitImage -java/awt/Image$1 -sun/awt/image/SurfaceManager$ImageAccessor -sun/awt/image/SurfaceManager -sun/awt/image/NativeLibLoader -java/awt/ImageMediaEntry -java/awt/MediaEntry -sun/awt/image/ImageRepresentation -java/awt/image/ImageConsumer -sun/awt/image/ImageWatched -sun/awt/image/ImageWatched$Link -sun/awt/image/ImageWatched$WeakLink -sun/awt/image/ImageConsumerQueue -sun/awt/image/ImageFetcher -sun/awt/image/FetcherInfo -sun/awt/image/ImageFetcher$1 -sun/awt/image/GifImageDecoder -sun/awt/image/ImageDecoder -sun/awt/image/GifFrame -java/awt/image/Raster -java/awt/image/DataBufferByte -java/awt/image/DataBuffer -java/awt/image/PixelInterleavedSampleModel -java/awt/image/ComponentSampleModel -java/awt/image/SampleModel -sun/awt/image/ByteInterleavedRaster -sun/awt/image/ByteComponentRaster -sun/awt/image/SunWritableRaster -java/awt/image/WritableRaster -java/awt/image/BufferedImage -java/awt/image/WritableRenderedImage -java/awt/image/RenderedImage -sun/awt/image/IntegerComponentRaster -sun/awt/image/BytePackedRaster -java/awt/Canvas -sun/font/FontDesignMetrics -sun/font/FontStrikeDesc -sun/font/CompositeStrike -sun/font/FontStrikeDisposer -sun/font/StrikeCache$SoftDisposerRef -sun/font/StrikeCache$DisposableStrike -sun/font/TrueTypeFont$TTDisposerRecord -sun/font/TrueTypeFont$1 -java/io/RandomAccessFile -java/nio/ByteBufferAsIntBufferB -java/nio/IntBuffer -sun/font/TrueTypeFont$DirectoryEntry -java/nio/ByteBufferAsShortBufferB -java/nio/ShortBuffer -sun/nio/cs/UTF_16 -sun/nio/cs/UTF_16$Decoder -sun/nio/cs/UnicodeDecoder -sun/font/FileFontStrike -sun/font/FileFont$FileFontDisposer -sun/font/TrueTypeGlyphMapper -sun/font/CMap -sun/font/CMap$NullCMapClass -sun/font/CMap$CMapFormat4 -java/nio/ByteBufferAsCharBufferB -sun/font/FontDesignMetrics$KeyReference -sun/awt/image/PNGImageDecoder -sun/awt/image/PNGFilterInputStream -java/util/zip/InflaterInputStream -java/util/zip/Inflater -sun/awt/EventQueueItem -sun/awt/SunToolkit$3 -sun/awt/X11/XExposeEvent -sun/awt/X11/ComponentAccessor -sun/awt/X11/ComponentAccessor$1 -sun/reflect/UnsafeBooleanFieldAccessorImpl -sun/awt/event/IgnorePaintEvent -java/awt/image/DataBufferInt -java/awt/image/SinglePixelPackedSampleModel -sun/awt/image/IntegerInterleavedRaster -sun/java2d/x11/X11RemoteOffScreenImage -sun/awt/image/RemoteOffScreenImage -sun/awt/image/OffScreenImage -sun/java2d/x11/X11RemoteOffScreenImage$X11RemoteSurfaceManager -sun/awt/image/OffScreenSurfaceManager -sun/awt/image/CachingSurfaceManager -sun/awt/image/RasterListener -sun/awt/image/BufImgSurfaceData -sun/java2d/opengl/GLXGraphicsConfig -sun/java2d/opengl/OGLGraphicsConfig -sun/java2d/x11/X11SurfaceData$X11PixmapSurfaceData -sun/awt/image/WritableRasterNative -sun/awt/image/DataBufferNative -sun/java2d/SurfaceManagerFactory -sun/java2d/x11/X11CachingSurfaceManager -sun/java2d/opengl/GLXSurfaceData -sun/java2d/opengl/OGLSurfaceData -sun/font/CompositeGlyphMapper -sun/java2d/loops/FontInfo -java/util/Date -sun/util/calendar/CalendarSystem -sun/util/calendar/Gregorian -sun/util/calendar/BaseCalendar -sun/util/calendar/AbstractCalendar -java/util/TimeZone -java/lang/InheritableThreadLocal -sun/util/calendar/ZoneInfo -sun/util/calendar/ZoneInfoFile -sun/util/calendar/ZoneInfoFile$1 -java/util/TimeZone$1 -sun/util/calendar/Gregorian$Date -sun/util/calendar/BaseCalendar$Date -sun/util/calendar/CalendarDate -sun/util/calendar/CalendarUtils -java/util/TimeZone$DisplayNames -sun/util/TimeZoneNameUtility -sun/util/resources/TimeZoneNames -sun/util/resources/TimeZoneNamesBundle -sun/util/resources/TimeZoneNames_en -java/util/spi/TimeZoneNameProvider -java/lang/ProcessBuilder -java/lang/ProcessImpl -java/lang/UNIXProcess -java/lang/Process -java/lang/UNIXProcess$Gate -java/lang/UNIXProcess$1 -java/lang/UNIXProcess$1$1 -java/lang/UNIXProcess$1$1$1 -java/net/ServerSocket -java/util/Random -java/util/concurrent/atomic/AtomicLong -java/lang/InternalError -java/io/StringReader -java/lang/SecurityException -java/io/FilterReader -java/lang/reflect/Proxy -java/lang/reflect/InvocationHandler -java/lang/NoSuchFieldException -java/lang/InstantiationException -java/lang/ArrayIndexOutOfBoundsException -java/lang/IndexOutOfBoundsException -javax/swing/JDialog -sun/awt/X11/XClipboard -sun/awt/datatransfer/SunClipboard -java/awt/datatransfer/Clipboard -java/awt/datatransfer/SystemFlavorMap -java/awt/datatransfer/FlavorMap -java/awt/datatransfer/FlavorTable -java/awt/datatransfer/SystemFlavorMap$1 -sun/net/ProgressMonitor -sun/net/DefaultProgressMeteringPolicy -sun/net/ProgressMeteringPolicy -java/awt/datatransfer/SystemFlavorMap$2 -java/awt/datatransfer/MimeType -java/io/Externalizable -java/awt/datatransfer/MimeTypeParameterList -sun/awt/datatransfer/DataTransferer -java/util/Collections$SynchronizedSet -java/util/Collections$SynchronizedCollection -java/awt/datatransfer/DataFlavor -java/awt/datatransfer/DataFlavor$1 -sun/awt/datatransfer/DataTransferer$CharsetComparator -sun/awt/datatransfer/DataTransferer$IndexedComparator -sun/nio/cs/UTF_16LE -sun/nio/cs/UTF_16BE -sun/awt/datatransfer/DataTransferer$DataFlavorComparator -java/rmi/Remote -sun/awt/datatransfer/DataTransferer$1 -sun/awt/X11/XDataTransferer -sun/awt/datatransfer/ToolkitThreadBlockedHandler -javax/imageio/ImageTypeSpecifier -sun/awt/X11/XSelection -sun/security/action/GetIntegerAction -sun/awt/X11/XSelection$IncrementalTransferHandler -sun/awt/X11/XSelection$SelectionEventHandler -java/awt/datatransfer/Transferable -java/io/EOFException -java/util/Vector$1 -java/util/zip/ZipFile$1 -java/util/zip/ZipFile$2 -java/util/jar/JarFile$1 -java/util/PropertyResourceBundle -java/util/ResourceBundle$Control$1 -java/util/Hashtable$EntrySet -java/lang/IllegalAccessError -java/text/MessageFormat -java/text/MessageFormat$Field -java/text/Format$Field -java/lang/CloneNotSupportedException -sun/reflect/MethodAccessorGenerator -sun/reflect/AccessorGenerator -sun/reflect/ClassFileConstants -java/lang/Void -sun/reflect/ByteVectorFactory -sun/reflect/ByteVectorImpl -sun/reflect/ByteVector -sun/reflect/ClassFileAssembler -sun/reflect/UTF8 -sun/reflect/Label -sun/reflect/Label$PatchInfo -sun/reflect/MethodAccessorGenerator$1 -sun/reflect/ClassDefiner -sun/reflect/ClassDefiner$1 -sun/reflect/BootstrapConstructorAccessorImpl -java/awt/event/ActionListener +javax/swing/SwingHeavyWeight +javax/swing/SwingPaintEventDispatcher +javax/swing/SwingUtilities +javax/swing/SwingUtilities$SharedOwnerFrame javax/swing/Timer javax/swing/Timer$DoPostEvent javax/swing/TimerQueue javax/swing/TimerQueue$1 +javax/swing/TimerQueue$DelayedTimer javax/swing/ToolTipManager -java/awt/event/MouseAdapter +javax/swing/ToolTipManager$AccessibilityKeyListener +javax/swing/ToolTipManager$MoveBeforeEnterListener javax/swing/ToolTipManager$insideTimerAction javax/swing/ToolTipManager$outsideTimerAction javax/swing/ToolTipManager$stillInsideTimerAction -javax/swing/ToolTipManager$Actions -sun/swing/UIAction -javax/swing/Action -javax/swing/ToolTipManager$MoveBeforeEnterListener -java/awt/event/MouseMotionAdapter -java/util/Hashtable$ValueCollection -javax/swing/event/CaretListener -javax/swing/JToolBar -javax/swing/JSplitPane -javax/swing/border/Border -javax/swing/JToggleButton -javax/swing/border/EmptyBorder +javax/swing/TransferHandler +javax/swing/TransferHandler$DropHandler +javax/swing/TransferHandler$HasGetTransferHandler +javax/swing/TransferHandler$SwingDropTarget +javax/swing/TransferHandler$TransferAction +javax/swing/TransferHandler$TransferAction$1 +javax/swing/TransferHandler$TransferAction$2 +javax/swing/TransferHandler$TransferSupport +javax/swing/UIDefaults +javax/swing/UIDefaults$ActiveValue +javax/swing/UIDefaults$LazyInputMap +javax/swing/UIDefaults$LazyValue +javax/swing/UIDefaults$TextAndMnemonicHashMap +javax/swing/UIManager +javax/swing/UIManager$1 +javax/swing/UIManager$2 +javax/swing/UIManager$LAFState +javax/swing/UIManager$LookAndFeelInfo +javax/swing/ViewportLayout +javax/swing/WindowConstants javax/swing/border/AbstractBorder -javax/swing/DefaultButtonModel -javax/swing/ButtonModel -javax/swing/AbstractButton$Handler -javax/swing/event/ChangeListener -java/awt/event/ItemListener -javax/swing/plaf/metal/MetalButtonUI -javax/swing/plaf/basic/BasicButtonUI -javax/swing/plaf/ButtonUI -javax/swing/plaf/metal/MetalBorders -javax/swing/plaf/BorderUIResource$CompoundBorderUIResource +javax/swing/border/BevelBorder +javax/swing/border/Border javax/swing/border/CompoundBorder -javax/swing/plaf/metal/MetalBorders$ButtonBorder -javax/swing/plaf/basic/BasicBorders$MarginBorder -javax/swing/plaf/basic/BasicButtonListener -java/awt/AWTEventMulticaster -java/awt/event/WindowFocusListener -java/awt/event/WindowStateListener -java/awt/event/AdjustmentListener -java/awt/event/TextListener +javax/swing/border/EmptyBorder +javax/swing/border/EtchedBorder +javax/swing/border/LineBorder +javax/swing/border/MatteBorder +javax/swing/event/AncestorEvent javax/swing/event/AncestorListener -java/beans/VetoableChangeListener -javax/swing/ButtonGroup -javax/swing/JToggleButton$ToggleButtonModel -javax/swing/plaf/metal/MetalToggleButtonUI -javax/swing/plaf/basic/BasicToggleButtonUI -javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder -java/awt/CardLayout -javax/swing/Box -javax/swing/plaf/metal/MetalBorders$TextFieldBorder -javax/swing/plaf/metal/MetalBorders$Flush3DBorder -javax/swing/BoxLayout -javax/swing/JMenuBar -javax/swing/DefaultSingleSelectionModel -javax/swing/SingleSelectionModel -javax/swing/plaf/basic/BasicMenuBarUI +javax/swing/event/CaretEvent +javax/swing/event/CaretListener +javax/swing/event/ChangeEvent +javax/swing/event/ChangeListener +javax/swing/event/DocumentEvent +javax/swing/event/DocumentEvent$ElementChange +javax/swing/event/DocumentEvent$EventType +javax/swing/event/DocumentListener +javax/swing/event/EventListenerList +javax/swing/event/ListDataListener +javax/swing/event/ListSelectionListener +javax/swing/event/MenuDragMouseListener +javax/swing/event/MenuEvent +javax/swing/event/MenuKeyListener +javax/swing/event/MenuListener +javax/swing/event/MouseInputAdapter +javax/swing/event/MouseInputListener +javax/swing/event/PopupMenuListener +javax/swing/event/UndoableEditEvent +javax/swing/event/UndoableEditListener +javax/swing/plaf/ActionMapUIResource +javax/swing/plaf/BorderUIResource +javax/swing/plaf/BorderUIResource$EmptyBorderUIResource +javax/swing/plaf/BorderUIResource$LineBorderUIResource +javax/swing/plaf/ButtonUI +javax/swing/plaf/ColorUIResource +javax/swing/plaf/ComboBoxUI +javax/swing/plaf/ComponentInputMapUIResource +javax/swing/plaf/ComponentUI +javax/swing/plaf/DimensionUIResource +javax/swing/plaf/FontUIResource +javax/swing/plaf/IconUIResource +javax/swing/plaf/InputMapUIResource +javax/swing/plaf/InsetsUIResource +javax/swing/plaf/LabelUI +javax/swing/plaf/ListUI javax/swing/plaf/MenuBarUI -javax/swing/plaf/basic/DefaultMenuLayout -javax/swing/plaf/metal/MetalBorders$MenuBarBorder -javax/swing/plaf/basic/BasicMenuBarUI$Handler -javax/swing/KeyboardManager -javax/swing/event/MenuEvent -javax/swing/JMenu$MenuChangeListener -javax/swing/JMenuItem$MenuItemFocusListener -javax/swing/plaf/basic/BasicMenuUI -javax/swing/plaf/basic/BasicMenuItemUI javax/swing/plaf/MenuItemUI -javax/swing/plaf/metal/MetalBorders$MenuItemBorder -javax/swing/plaf/metal/MetalIconFactory -javax/swing/plaf/metal/MetalIconFactory$MenuArrowIcon -javax/swing/plaf/basic/BasicMenuUI$Handler -javax/swing/event/MenuKeyListener +javax/swing/plaf/PanelUI +javax/swing/plaf/PopupMenuUI +javax/swing/plaf/RootPaneUI +javax/swing/plaf/ScrollBarUI +javax/swing/plaf/ScrollPaneUI +javax/swing/plaf/SeparatorUI +javax/swing/plaf/TextUI +javax/swing/plaf/ToolBarUI +javax/swing/plaf/UIResource +javax/swing/plaf/ViewportUI +javax/swing/plaf/basic/BasicBorders$ButtonBorder +javax/swing/plaf/basic/BasicBorders$MarginBorder +javax/swing/plaf/basic/BasicBorders$RadioButtonBorder +javax/swing/plaf/basic/BasicBorders$RolloverButtonBorder +javax/swing/plaf/basic/BasicBorders$RolloverMarginBorder +javax/swing/plaf/basic/BasicButtonListener +javax/swing/plaf/basic/BasicButtonUI +javax/swing/plaf/basic/BasicComboBoxEditor +javax/swing/plaf/basic/BasicComboBoxEditor$BorderlessTextField +javax/swing/plaf/basic/BasicComboBoxEditor$UIResource +javax/swing/plaf/basic/BasicComboBoxUI +javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager +javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager +javax/swing/plaf/basic/BasicComboBoxUI$FocusHandler +javax/swing/plaf/basic/BasicComboBoxUI$Handler +javax/swing/plaf/basic/BasicComboPopup +javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass +javax/swing/plaf/basic/BasicComboPopup$Handler +javax/swing/plaf/basic/BasicGraphicsUtils +javax/swing/plaf/basic/BasicHTML +javax/swing/plaf/basic/BasicIconFactory +javax/swing/plaf/basic/BasicIconFactory$MenuItemArrowIcon +javax/swing/plaf/basic/BasicIconFactory$MenuItemCheckIcon +javax/swing/plaf/basic/BasicLabelUI +javax/swing/plaf/basic/BasicListUI +javax/swing/plaf/basic/BasicListUI$FocusHandler +javax/swing/plaf/basic/BasicListUI$Handler +javax/swing/plaf/basic/BasicListUI$ListTransferHandler +javax/swing/plaf/basic/BasicListUI$MouseInputHandler +javax/swing/plaf/basic/BasicListUI$PropertyChangeHandler +javax/swing/plaf/basic/BasicLookAndFeel +javax/swing/plaf/basic/BasicLookAndFeel$1 +javax/swing/plaf/basic/BasicLookAndFeel$2 +javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper +javax/swing/plaf/basic/BasicMenuBarUI +javax/swing/plaf/basic/BasicMenuBarUI$Handler +javax/swing/plaf/basic/BasicMenuItemUI javax/swing/plaf/basic/BasicMenuItemUI$Handler -javax/swing/event/MenuDragMouseListener -javax/swing/event/MouseInputListener -javax/swing/event/ChangeEvent -java/awt/event/ContainerEvent -javax/swing/plaf/metal/MetalIconFactory$MenuItemArrowIcon -javax/swing/JPopupMenu +javax/swing/plaf/basic/BasicMenuUI +javax/swing/plaf/basic/BasicMenuUI$ChangeHandler +javax/swing/plaf/basic/BasicMenuUI$Handler +javax/swing/plaf/basic/BasicMenuUI$MouseInputHandler +javax/swing/plaf/basic/BasicPanelUI javax/swing/plaf/basic/BasicPopupMenuUI -javax/swing/plaf/PopupMenuUI -javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper -java/awt/event/AWTEventListenerProxy -java/awt/Toolkit$SelectiveAWTEventListener -java/awt/Toolkit$ToolkitEventMulticaster -javax/swing/plaf/basic/BasicLookAndFeel$1 -javax/swing/plaf/metal/MetalBorders$PopupMenuBorder +javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener -javax/swing/event/PopupMenuListener -javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener -javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber -javax/swing/MenuSelectionManager javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper$1 -java/awt/event/FocusAdapter -javax/swing/JMenu$WinListener -java/awt/event/WindowAdapter -javax/swing/JPopupMenu$Separator -javax/swing/JSeparator -javax/swing/plaf/metal/MetalPopupMenuSeparatorUI -javax/swing/plaf/metal/MetalSeparatorUI +javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber +javax/swing/plaf/basic/BasicRootPaneUI +javax/swing/plaf/basic/BasicRootPaneUI$RootPaneInputMap +javax/swing/plaf/basic/BasicScrollPaneUI +javax/swing/plaf/basic/BasicScrollPaneUI$Handler +javax/swing/plaf/basic/BasicScrollPaneUI$MouseWheelHandler javax/swing/plaf/basic/BasicSeparatorUI -javax/swing/plaf/SeparatorUI -javax/swing/JComboBox -javax/swing/event/ListDataListener -javax/swing/event/CaretEvent -javax/swing/text/TabExpander -javax/swing/JScrollBar -java/awt/Adjustable -javax/swing/event/MouseInputAdapter -javax/swing/JScrollBar$ModelListener -javax/swing/DefaultBoundedRangeModel -javax/swing/BoundedRangeModel -javax/swing/plaf/metal/MetalScrollBarUI -javax/swing/plaf/basic/BasicScrollBarUI -javax/swing/plaf/ScrollBarUI -javax/swing/plaf/metal/MetalBumps -javax/swing/plaf/metal/MetalScrollButton -javax/swing/plaf/basic/BasicArrowButton -javax/swing/plaf/basic/BasicScrollBarUI$TrackListener -javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener -javax/swing/plaf/basic/BasicScrollBarUI$ModelListener -javax/swing/plaf/metal/MetalScrollBarUI$ScrollBarListener -javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler -javax/swing/plaf/basic/BasicScrollBarUI$Handler -javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener -javax/swing/CellRendererPane -java/util/HashMap$EntryIterator -javax/swing/border/MatteBorder -sun/font/StandardGlyphVector -java/awt/font/GlyphVector -sun/font/StandardGlyphVector$GlyphStrike -sun/font/CoreMetrics -sun/font/FontLineMetrics -java/awt/font/LineMetrics -javax/swing/ComboBoxModel -javax/swing/ListModel -javax/swing/ListCellRenderer -javax/swing/DefaultComboBoxModel -javax/swing/MutableComboBoxModel -javax/swing/AbstractListModel -javax/swing/JComboBox$1 -javax/swing/AncestorNotifier -javax/swing/plaf/metal/MetalComboBoxUI -javax/swing/plaf/basic/BasicComboBoxUI -javax/swing/plaf/ComboBoxUI -javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager -javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager -javax/swing/plaf/basic/BasicComboPopup -javax/swing/plaf/basic/ComboPopup -javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass -javax/swing/border/LineBorder -javax/swing/plaf/basic/BasicComboPopup$1 -javax/swing/JList -javax/swing/DropMode -javax/swing/DefaultListSelectionModel -javax/swing/ListSelectionModel -javax/swing/plaf/basic/BasicListUI -javax/swing/plaf/ListUI -javax/swing/plaf/basic/BasicListUI$ListTransferHandler -javax/swing/TransferHandler -javax/swing/TransferHandler$TransferAction -javax/swing/DefaultListCellRenderer$UIResource -javax/swing/DefaultListCellRenderer -javax/swing/TransferHandler$SwingDropTarget -java/awt/dnd/DropTargetContext -javax/swing/TransferHandler$DropHandler -javax/swing/TransferHandler$TransferSupport -javax/swing/plaf/basic/BasicListUI$Handler -javax/swing/event/ListSelectionListener -javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag -javax/swing/plaf/basic/BasicComboPopup$Handler -javax/swing/JScrollPane -javax/swing/ScrollPaneConstants -javax/swing/ScrollPaneLayout$UIResource -javax/swing/ScrollPaneLayout -javax/swing/JViewport -javax/swing/ViewportLayout -javax/swing/plaf/basic/BasicViewportUI -javax/swing/plaf/ViewportUI -javax/swing/JScrollPane$ScrollBar -javax/swing/JViewport$ViewListener -java/awt/event/ComponentAdapter -javax/swing/plaf/metal/MetalScrollPaneUI -javax/swing/plaf/basic/BasicScrollPaneUI -javax/swing/plaf/ScrollPaneUI -javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder -javax/swing/plaf/basic/BasicScrollPaneUI$Handler -javax/swing/plaf/metal/MetalScrollPaneUI$1 -javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource -javax/swing/plaf/basic/BasicComboBoxRenderer -javax/swing/plaf/metal/MetalComboBoxEditor$UIResource -javax/swing/plaf/metal/MetalComboBoxEditor -javax/swing/plaf/basic/BasicComboBoxEditor -javax/swing/ComboBoxEditor -javax/swing/plaf/basic/BasicComboBoxEditor$BorderlessTextField -javax/swing/JTextField$NotifyAction -javax/swing/text/TextAction -javax/swing/AbstractAction -javax/swing/text/JTextComponent$MutableCaretEvent -javax/swing/plaf/metal/MetalTextFieldUI +javax/swing/plaf/basic/BasicTextAreaUI javax/swing/plaf/basic/BasicTextFieldUI javax/swing/plaf/basic/BasicTextUI -javax/swing/text/ViewFactory -javax/swing/plaf/TextUI javax/swing/plaf/basic/BasicTextUI$BasicCursor +javax/swing/plaf/basic/BasicTextUI$DragListener +javax/swing/plaf/basic/BasicTextUI$FocusAction +javax/swing/plaf/basic/BasicTextUI$RootView +javax/swing/plaf/basic/BasicTextUI$TextActionWrapper +javax/swing/plaf/basic/BasicTextUI$TextTransferHandler +javax/swing/plaf/basic/BasicTextUI$TextTransferHandler$TextTransferable +javax/swing/plaf/basic/BasicTextUI$UpdateHandler +javax/swing/plaf/basic/BasicToolBarSeparatorUI +javax/swing/plaf/basic/BasicToolBarUI +javax/swing/plaf/basic/BasicToolBarUI$Handler +javax/swing/plaf/basic/BasicTransferable +javax/swing/plaf/basic/BasicViewportUI +javax/swing/plaf/basic/ComboPopup +javax/swing/plaf/basic/DefaultMenuLayout +javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag +javax/swing/plaf/basic/LazyActionMap +javax/swing/plaf/metal/DefaultMetalTheme +javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate +javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1 +javax/swing/plaf/metal/MetalLookAndFeel +javax/swing/plaf/metal/MetalTheme +javax/swing/plaf/synth/SynthConstants +javax/swing/plaf/synth/SynthUI +javax/swing/text/AbstractDocument +javax/swing/text/AbstractDocument$1 +javax/swing/text/AbstractDocument$AbstractElement +javax/swing/text/AbstractDocument$AttributeContext +javax/swing/text/AbstractDocument$BidiElement +javax/swing/text/AbstractDocument$BidiRootElement +javax/swing/text/AbstractDocument$BranchElement +javax/swing/text/AbstractDocument$Content +javax/swing/text/AbstractDocument$DefaultDocumentEvent +javax/swing/text/AbstractDocument$ElementEdit +javax/swing/text/AbstractDocument$InsertStringResult +javax/swing/text/AbstractDocument$LeafElement +javax/swing/text/AttributeSet +javax/swing/text/AttributeSet$CharacterAttribute +javax/swing/text/AttributeSet$ColorAttribute +javax/swing/text/AttributeSet$FontAttribute +javax/swing/text/AttributeSet$ParagraphAttribute +javax/swing/text/Caret +javax/swing/text/DefaultCaret +javax/swing/text/DefaultCaret$1 +javax/swing/text/DefaultCaret$Handler javax/swing/text/DefaultEditorKit -javax/swing/text/EditorKit -javax/swing/text/DefaultEditorKit$InsertContentAction -javax/swing/text/DefaultEditorKit$DeletePrevCharAction +javax/swing/text/DefaultEditorKit$BeepAction +javax/swing/text/DefaultEditorKit$BeginAction +javax/swing/text/DefaultEditorKit$BeginLineAction +javax/swing/text/DefaultEditorKit$BeginParagraphAction +javax/swing/text/DefaultEditorKit$BeginWordAction +javax/swing/text/DefaultEditorKit$CopyAction +javax/swing/text/DefaultEditorKit$CutAction +javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction javax/swing/text/DefaultEditorKit$DeleteNextCharAction -javax/swing/text/DefaultEditorKit$ReadOnlyAction +javax/swing/text/DefaultEditorKit$DeletePrevCharAction javax/swing/text/DefaultEditorKit$DeleteWordAction -javax/swing/text/DefaultEditorKit$WritableAction -javax/swing/text/DefaultEditorKit$CutAction -javax/swing/text/DefaultEditorKit$CopyAction -javax/swing/text/DefaultEditorKit$PasteAction -javax/swing/text/DefaultEditorKit$VerticalPageAction +javax/swing/text/DefaultEditorKit$DumpModelAction +javax/swing/text/DefaultEditorKit$EndAction +javax/swing/text/DefaultEditorKit$EndLineAction +javax/swing/text/DefaultEditorKit$EndParagraphAction +javax/swing/text/DefaultEditorKit$EndWordAction +javax/swing/text/DefaultEditorKit$InsertBreakAction +javax/swing/text/DefaultEditorKit$InsertContentAction +javax/swing/text/DefaultEditorKit$InsertTabAction +javax/swing/text/DefaultEditorKit$NextVisualPositionAction +javax/swing/text/DefaultEditorKit$NextWordAction javax/swing/text/DefaultEditorKit$PageAction -javax/swing/text/DefaultEditorKit$InsertBreakAction -javax/swing/text/DefaultEditorKit$BeepAction -javax/swing/text/DefaultEditorKit$NextVisualPositionAction -javax/swing/text/DefaultEditorKit$BeginWordAction -javax/swing/text/DefaultEditorKit$EndWordAction +javax/swing/text/DefaultEditorKit$PasteAction javax/swing/text/DefaultEditorKit$PreviousWordAction -javax/swing/text/DefaultEditorKit$NextWordAction -javax/swing/text/DefaultEditorKit$BeginLineAction -javax/swing/text/DefaultEditorKit$EndLineAction -javax/swing/text/DefaultEditorKit$BeginParagraphAction -javax/swing/text/DefaultEditorKit$EndParagraphAction -javax/swing/text/DefaultEditorKit$BeginAction -javax/swing/text/DefaultEditorKit$EndAction -javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction -javax/swing/text/DefaultEditorKit$InsertTabAction -javax/swing/text/DefaultEditorKit$SelectWordAction +javax/swing/text/DefaultEditorKit$ReadOnlyAction +javax/swing/text/DefaultEditorKit$SelectAllAction javax/swing/text/DefaultEditorKit$SelectLineAction javax/swing/text/DefaultEditorKit$SelectParagraphAction -javax/swing/text/DefaultEditorKit$SelectAllAction -javax/swing/text/DefaultEditorKit$UnselectAction +javax/swing/text/DefaultEditorKit$SelectWordAction javax/swing/text/DefaultEditorKit$ToggleComponentOrientationAction -javax/swing/text/DefaultEditorKit$DumpModelAction -javax/swing/plaf/basic/BasicTextUI$TextTransferHandler -javax/swing/text/Position$Bias -javax/swing/plaf/basic/BasicTextUI$RootView -javax/swing/text/View -javax/swing/plaf/basic/BasicTextUI$UpdateHandler -javax/swing/event/DocumentListener -javax/swing/plaf/basic/BasicTextUI$DragListener -javax/swing/plaf/basic/BasicComboBoxEditor$UIResource -javax/swing/plaf/basic/BasicTextUI$BasicCaret -javax/swing/text/DefaultCaret -javax/swing/text/Caret -javax/swing/text/DefaultCaret$Handler -java/awt/datatransfer/ClipboardOwner -javax/swing/plaf/basic/BasicTextUI$BasicHighlighter +javax/swing/text/DefaultEditorKit$UnselectAction +javax/swing/text/DefaultEditorKit$VerticalPageAction +javax/swing/text/DefaultEditorKit$WritableAction javax/swing/text/DefaultHighlighter -javax/swing/text/LayeredHighlighter +javax/swing/text/DefaultHighlighter$DefaultHighlightPainter +javax/swing/text/DefaultHighlighter$HighlightInfo +javax/swing/text/DefaultHighlighter$LayeredHighlightInfo +javax/swing/text/DefaultHighlighter$SafeDamager +javax/swing/text/Document +javax/swing/text/EditorKit +javax/swing/text/Element +javax/swing/text/FieldView +javax/swing/text/GapContent +javax/swing/text/GapContent$InsertUndo +javax/swing/text/GapContent$MarkData +javax/swing/text/GapContent$MarkVector +javax/swing/text/GapContent$StickyPosition +javax/swing/text/GapVector javax/swing/text/Highlighter javax/swing/text/Highlighter$Highlight -javax/swing/text/DefaultHighlighter$DefaultHighlightPainter -javax/swing/text/LayeredHighlighter$LayerPainter javax/swing/text/Highlighter$HighlightPainter -javax/swing/text/DefaultHighlighter$SafeDamager -javax/swing/text/FieldView -javax/swing/text/PlainView +javax/swing/text/JTextComponent +javax/swing/text/JTextComponent$1 javax/swing/text/JTextComponent$DefaultKeymap -javax/swing/text/Keymap -javax/swing/text/JTextComponent$KeymapWrapper javax/swing/text/JTextComponent$KeymapActionMap -javax/swing/plaf/basic/BasicTextUI$FocusAction -javax/swing/plaf/basic/BasicTextUI$TextActionWrapper -javax/swing/JTextArea -javax/swing/JEditorPane -javax/swing/JTextField$ScrollRepainter -javax/swing/plaf/metal/MetalComboBoxEditor$1 -javax/swing/plaf/metal/MetalComboBoxEditor$EditorBorder -javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener -javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler -javax/swing/plaf/basic/BasicComboBoxUI$Handler -javax/swing/plaf/metal/MetalComboBoxButton -javax/swing/plaf/metal/MetalComboBoxIcon -javax/swing/plaf/metal/MetalComboBoxButton$1 -javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager -javax/swing/JComboBox$KeySelectionManager -javax/swing/JToolBar$DefaultToolBarLayout -javax/swing/plaf/metal/MetalToolBarUI -javax/swing/plaf/basic/BasicToolBarUI -javax/swing/plaf/ToolBarUI -javax/swing/plaf/metal/MetalBorders$ToolBarBorder -javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue$1 -javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder -javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder -javax/swing/plaf/basic/BasicBorders$RadioButtonBorder -javax/swing/plaf/basic/BasicBorders$ButtonBorder -javax/swing/plaf/basic/BasicBorders$RolloverMarginBorder -javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener -javax/swing/plaf/basic/BasicToolBarUI$DockingListener -javax/swing/plaf/basic/BasicToolBarUI$Handler -javax/swing/border/EtchedBorder -javax/swing/JToolBar$Separator -javax/swing/plaf/basic/BasicToolBarSeparatorUI -sun/awt/color/CMM -java/applet/Applet -java/awt/Panel -com/sun/awt/AWTUtilities -javax/swing/KeyboardManager$ComponentKeyStrokePair +javax/swing/text/JTextComponent$KeymapWrapper +javax/swing/text/JTextComponent$MutableCaretEvent +javax/swing/text/Keymap +javax/swing/text/LayeredHighlighter +javax/swing/text/LayeredHighlighter$LayerPainter +javax/swing/text/MutableAttributeSet +javax/swing/text/PlainDocument +javax/swing/text/PlainView +javax/swing/text/Position +javax/swing/text/Position$Bias +javax/swing/text/Segment +javax/swing/text/SegmentCache +javax/swing/text/SegmentCache$CachedSegment +javax/swing/text/SimpleAttributeSet +javax/swing/text/SimpleAttributeSet$EmptyAttributeSet +javax/swing/text/Style +javax/swing/text/StyleConstants +javax/swing/text/StyleConstants$CharacterConstants +javax/swing/text/StyleConstants$ColorConstants +javax/swing/text/StyleConstants$FontConstants +javax/swing/text/StyleConstants$ParagraphConstants +javax/swing/text/StyleContext +javax/swing/text/StyleContext$FontKey +javax/swing/text/StyleContext$KeyEnumeration +javax/swing/text/StyleContext$NamedStyle +javax/swing/text/StyleContext$SmallAttributeSet +javax/swing/text/TabExpander +javax/swing/text/TextAction +javax/swing/text/Utilities +javax/swing/text/View +javax/swing/text/ViewFactory +javax/swing/tree/TreeNode +javax/swing/undo/AbstractUndoableEdit +javax/swing/undo/CompoundEdit +javax/swing/undo/UndoableEdit +sun/awt/AWTAccessor +sun/awt/AWTAccessor$AWTEventAccessor +sun/awt/AWTAccessor$ClientPropertyKeyAccessor +sun/awt/AWTAccessor$ComponentAccessor +sun/awt/AWTAccessor$ContainerAccessor +sun/awt/AWTAccessor$CursorAccessor +sun/awt/AWTAccessor$DefaultKeyboardFocusManagerAccessor +sun/awt/AWTAccessor$EventQueueAccessor +sun/awt/AWTAccessor$FrameAccessor +sun/awt/AWTAccessor$InputEventAccessor +sun/awt/AWTAccessor$KeyEventAccessor +sun/awt/AWTAccessor$KeyboardFocusManagerAccessor +sun/awt/AWTAccessor$ToolkitAccessor +sun/awt/AWTAccessor$WindowAccessor +sun/awt/AWTAutoShutdown +sun/awt/AppContext +sun/awt/AppContext$1 +sun/awt/AppContext$2 +sun/awt/AppContext$3 +sun/awt/AppContext$6 +sun/awt/AppContext$State +sun/awt/CGraphicsConfig +sun/awt/CGraphicsDevice +sun/awt/CGraphicsEnvironment +sun/awt/CGraphicsEnvironment$1 +sun/awt/CGraphicsEnvironment$2 +sun/awt/CausedFocusEvent +sun/awt/CausedFocusEvent$Cause +sun/awt/ComponentFactory +sun/awt/ConstrainableGraphics +sun/awt/DisplayChangedListener sun/awt/EmbeddedFrame -sun/awt/im/InputMethodContext -java/awt/im/spi/InputMethodContext -sun/awt/im/InputContext -sun/awt/im/InputMethodManager -sun/awt/im/ExecutableInputMethodManager -sun/awt/X11/XInputMethodDescriptor -sun/awt/X11InputMethodDescriptor -java/awt/im/spi/InputMethodDescriptor -sun/awt/im/InputMethodLocator -sun/awt/im/ExecutableInputMethodManager$2 -sun/misc/Service -sun/misc/Service$LazyIterator -java/util/TreeSet -java/util/NavigableSet -java/util/SortedSet -javax/swing/SizeRequirements -javax/swing/plaf/basic/BasicGraphicsUtils -java/awt/event/AdjustmentEvent -java/awt/MenuBar -sun/awt/X11/XComponentPeer$2 -java/awt/SequencedEvent -java/beans/PropertyVetoException -java/awt/DefaultKeyboardFocusManager$TypeAheadMarker -java/awt/KeyboardFocusManager$HeavyweightFocusRequest -java/awt/KeyboardFocusManager$LightweightFocusRequest +sun/awt/EventQueueDelegate +sun/awt/EventQueueItem +sun/awt/FontConfiguration +sun/awt/FontDescriptor +sun/awt/FullScreenCapable +sun/awt/HeadlessToolkit +sun/awt/InputMethodSupport sun/awt/KeyboardFocusManagerPeerImpl -sun/awt/SunToolkit$7 -java/awt/Window$1DisposeAction -java/awt/LightweightDispatcher$2 -sun/awt/X11/XReparentEvent -sun/awt/X11/XWindowAttributes -javax/swing/SystemEventQueueUtilities$ComponentWorkRequest -sun/awt/X11/XFocusChangeEvent -sun/awt/X11/XComponentPeer$1 -sun/awt/X11/XUnmapEvent -java/io/StringWriter -javax/swing/JWindow -java/io/UnsupportedEncodingException -java/net/UnknownHostException -java/nio/channels/SocketChannel -java/nio/channels/spi/AbstractSelectableChannel -java/nio/channels/SelectableChannel -java/net/SocketImplFactory -javax/swing/UnsupportedLookAndFeelException -java/lang/UnsatisfiedLinkError -javax/swing/Box$Filler -javax/swing/JComponent$2 -sun/net/www/MimeTable -java/net/FileNameMap -sun/net/www/MimeTable$1 -sun/net/www/MimeTable$2 -sun/net/www/MimeEntry -java/net/URLConnection$1 -java/text/SimpleDateFormat -java/text/DateFormat -java/text/DateFormat$Field -java/util/Calendar -java/util/GregorianCalendar -sun/util/resources/CalendarData -sun/util/resources/CalendarData_en -java/text/DateFormatSymbols -java/text/spi/DateFormatSymbolsProvider -java/text/DontCareFieldPosition -java/text/DontCareFieldPosition$1 -java/text/Format$FieldDelegate -javax/swing/plaf/BorderUIResource -javax/swing/BorderFactory -javax/swing/border/BevelBorder -javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon -javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 -java/util/zip/ZipInputStream -java/io/PushbackInputStream -java/util/zip/CRC32 -java/util/zip/Checksum -java/lang/Thread$State -javax/swing/SwingUtilities$SharedOwnerFrame -javax/swing/JTable -javax/swing/event/TableModelListener -javax/swing/event/TableColumnModelListener -javax/swing/event/CellEditorListener -javax/swing/event/RowSorterListener -javax/swing/BufferStrategyPaintManager$BufferInfo -java/awt/Component$BltSubRegionBufferStrategy -sun/awt/SubRegionShowable -java/awt/Component$BltBufferStrategy -sun/awt/image/SunVolatileImage -sun/awt/image/BufferedImageGraphicsConfig -sun/print/PrinterGraphicsConfig -sun/java2d/x11/X11VolatileSurfaceManager -sun/awt/image/VolatileSurfaceManager -java/awt/print/PrinterGraphics -java/awt/PrintGraphics -java/awt/GraphicsCallback$PaintCallback -java/awt/GraphicsCallback +sun/awt/KeyboardFocusManagerPeerProvider +sun/awt/LightweightFrame +sun/awt/ModalExclude +sun/awt/ModalityEvent +sun/awt/ModalityListener +sun/awt/MostRecentKeyValue +sun/awt/Mutex +sun/awt/NullComponentPeer +sun/awt/OSInfo +sun/awt/OSInfo$1 +sun/awt/OSInfo$OSType +sun/awt/OSInfo$WindowsVersion +sun/awt/PaintEventDispatcher +sun/awt/PeerEvent +sun/awt/PostEventQueue +sun/awt/RepaintArea +sun/awt/RequestFocusController +sun/awt/SunDisplayChanger sun/awt/SunGraphicsCallback -javax/swing/JRadioButton -java/lang/ClassFormatError -javax/swing/JTabbedPane -javax/swing/JTabbedPane$ModelListener -javax/swing/plaf/metal/MetalTabbedPaneUI -javax/swing/plaf/basic/BasicTabbedPaneUI -javax/swing/plaf/TabbedPaneUI -javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$Handler -sun/swing/ImageIconUIResource -javax/swing/GrayFilter -java/awt/image/RGBImageFilter -java/awt/image/ImageFilter -java/awt/image/FilteredImageSource -org/w3c/dom/Node -org/xml/sax/SAXException -javax/xml/parsers/ParserConfigurationException -org/xml/sax/EntityResolver -java/security/NoSuchAlgorithmException -java/security/GeneralSecurityException -java/util/zip/GZIPInputStream -java/util/zip/DeflaterOutputStream -org/xml/sax/InputSource -javax/xml/parsers/DocumentBuilderFactory -javax/xml/parsers/FactoryFinder -javax/xml/parsers/SecuritySupport -javax/xml/parsers/SecuritySupport$2 -javax/xml/parsers/SecuritySupport$5 -javax/xml/parsers/SecuritySupport$1 -javax/xml/parsers/SecuritySupport$4 -javax/xml/parsers/DocumentBuilder -org/w3c/dom/Document -org/xml/sax/helpers/DefaultHandler -org/xml/sax/DTDHandler -org/xml/sax/ContentHandler -org/xml/sax/ErrorHandler -org/xml/sax/SAXNotSupportedException -org/xml/sax/Locator -org/xml/sax/SAXNotRecognizedException -org/xml/sax/SAXParseException -org/w3c/dom/NodeList -org/w3c/dom/events/EventTarget -org/w3c/dom/traversal/DocumentTraversal -org/w3c/dom/events/DocumentEvent -org/w3c/dom/ranges/DocumentRange -org/w3c/dom/Entity -org/w3c/dom/Element -org/w3c/dom/CharacterData -org/w3c/dom/CDATASection -org/w3c/dom/Text -org/xml/sax/AttributeList -org/w3c/dom/DOMException -org/w3c/dom/Notation -org/w3c/dom/DocumentType -org/w3c/dom/Attr -org/w3c/dom/EntityReference -org/w3c/dom/ProcessingInstruction -org/w3c/dom/Comment -org/w3c/dom/DocumentFragment -org/w3c/dom/events/Event -org/w3c/dom/events/MutationEvent -org/w3c/dom/traversal/TreeWalker -org/w3c/dom/ranges/Range -org/w3c/dom/traversal/NodeIterator -org/w3c/dom/events/EventException -org/w3c/dom/NamedNodeMap -java/lang/StringIndexOutOfBoundsException -java/awt/GridLayout -javax/swing/plaf/metal/MetalRadioButtonUI -javax/swing/plaf/basic/BasicRadioButtonUI -javax/swing/plaf/basic/BasicBorders -javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon -java/awt/event/ItemEvent -java/awt/CardLayout$Card -javax/swing/JCheckBox -javax/swing/event/ListSelectionEvent -javax/swing/plaf/metal/MetalCheckBoxUI -javax/swing/plaf/metal/MetalIconFactory$CheckBoxIcon -java/lang/ExceptionInInitializerError -com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI -javax/swing/JProgressBar -javax/swing/JProgressBar$ModelListener -javax/swing/plaf/metal/MetalProgressBarUI -javax/swing/plaf/basic/BasicProgressBarUI -javax/swing/plaf/ProgressBarUI -javax/swing/plaf/BorderUIResource$LineBorderUIResource -javax/swing/plaf/basic/BasicProgressBarUI$Handler -javax/swing/tree/TreeModel -javax/swing/table/TableCellRenderer -javax/swing/table/JTableHeader -javax/swing/event/TreeExpansionListener -javax/swing/table/AbstractTableModel -javax/swing/table/TableModel -javax/swing/table/DefaultTableCellRenderer -javax/swing/JTree -javax/swing/tree/TreeSelectionModel -javax/swing/tree/DefaultTreeCellRenderer -javax/swing/tree/TreeCellRenderer -javax/swing/table/TableCellEditor -javax/swing/CellEditor -javax/swing/JToolTip -javax/swing/table/TableColumn -javax/swing/table/DefaultTableColumnModel -javax/swing/table/TableColumnModel -javax/swing/table/DefaultTableModel -javax/swing/event/TableModelEvent -sun/swing/table/DefaultTableCellHeaderRenderer -javax/swing/plaf/basic/BasicTableHeaderUI -javax/swing/plaf/TableHeaderUI -javax/swing/plaf/basic/BasicTableHeaderUI$1 -javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler -javax/swing/DefaultCellEditor -javax/swing/tree/TreeCellEditor -javax/swing/AbstractCellEditor -javax/swing/plaf/basic/BasicTableUI -javax/swing/plaf/TableUI -javax/swing/plaf/basic/BasicTableUI$TableTransferHandler -javax/swing/plaf/basic/BasicTableUI$Handler -javax/swing/tree/DefaultTreeSelectionModel -javax/swing/tree/TreePath -javax/swing/plaf/metal/MetalTreeUI -javax/swing/plaf/basic/BasicTreeUI -javax/swing/plaf/TreeUI -javax/swing/plaf/basic/BasicTreeUI$Actions -javax/swing/plaf/basic/BasicTreeUI$TreeTransferHandler -javax/swing/plaf/metal/MetalTreeUI$LineListener -javax/swing/plaf/basic/BasicTreeUI$Handler -javax/swing/event/TreeModelListener -javax/swing/event/TreeSelectionListener -javax/swing/event/SwingPropertyChangeSupport -javax/swing/tree/VariableHeightLayoutCache -javax/swing/tree/AbstractLayoutCache -javax/swing/tree/RowMapper -javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler -javax/swing/tree/AbstractLayoutCache$NodeDimensions -javax/swing/JTree$TreeModelHandler -javax/swing/tree/VariableHeightLayoutCache$TreeStateNode -javax/swing/tree/DefaultMutableTreeNode -javax/swing/tree/MutableTreeNode -javax/swing/tree/DefaultMutableTreeNode$1 -javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration -javax/swing/event/TableColumnModelEvent -java/text/ParseException -java/text/NumberFormat$Field -javax/swing/event/UndoableEditListener -javax/swing/filechooser/FileFilter -javax/swing/tree/DefaultTreeModel -javax/swing/tree/DefaultTreeCellEditor -javax/swing/tree/DefaultTreeCellEditor$1 -javax/swing/tree/DefaultTreeCellEditor$DefaultTextField -javax/swing/DefaultCellEditor$1 -javax/swing/DefaultCellEditor$EditorDelegate -javax/swing/tree/DefaultTreeCellEditor$EditorContainer -javax/swing/JTree$TreeSelectionRedirector -javax/swing/event/TreeModelEvent -javax/swing/plaf/metal/MetalSplitPaneUI -javax/swing/plaf/basic/BasicSplitPaneUI -javax/swing/plaf/SplitPaneUI -javax/swing/plaf/basic/BasicSplitPaneDivider -javax/swing/plaf/basic/BasicBorders$SplitPaneBorder -javax/swing/plaf/metal/MetalSplitPaneDivider -javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout -javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler -javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder -javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager -javax/swing/plaf/basic/BasicSplitPaneUI$1 -javax/swing/plaf/basic/BasicSplitPaneUI$Handler -javax/swing/plaf/metal/MetalSplitPaneDivider$1 -javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchActionHandler -javax/swing/plaf/metal/MetalSplitPaneDivider$2 -javax/swing/border/TitledBorder -javax/swing/plaf/basic/BasicTextAreaUI -java/util/Collections$UnmodifiableCollection$1 -java/io/InterruptedIOException -java/net/NoRouteToHostException -java/net/BindException -javax/swing/tree/PathPlaceHolder -javax/swing/event/TreeSelectionEvent -javax/swing/JList$3 -javax/swing/JList$ListSelectionHandler -javax/swing/JSlider -javax/swing/JSlider$ModelListener -javax/swing/plaf/metal/MetalSliderUI -javax/swing/plaf/basic/BasicSliderUI -javax/swing/plaf/SliderUI -javax/swing/plaf/basic/BasicSliderUI$Actions -javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon -javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon -javax/swing/plaf/basic/BasicSliderUI$TrackListener -javax/swing/plaf/basic/BasicSliderUI$Handler -javax/swing/plaf/basic/BasicSliderUI$ScrollListener -javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener -javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler -sun/java2d/HeadlessGraphicsEnvironment -java/util/Hashtable$KeySet -java/awt/FontFormatException -sun/java2d/SunGraphicsEnvironment$2 -sun/font/Type1Font$1 -java/nio/channels/FileChannel$MapMode -sun/nio/ch/FileChannelImpl$Unmapper -sun/nio/ch/Util$3 -java/nio/DirectByteBufferR -java/nio/charset/Charset$3 -sun/nio/cs/ext/ExtendedCharsets -sun/nio/cs/AbstractCharsetProvider -sun/nio/cs/ext/SJIS -sun/nio/cs/ext/SJIS$Decoder -sun/nio/cs/ext/DelegatableDecoder -sun/nio/cs/ext/JIS_X_0208_Decoder -sun/nio/cs/ext/DoubleByteDecoder -sun/nio/cs/ext/JIS_X_0201$Decoder -sun/nio/cs/SingleByteDecoder -java/lang/CharacterData00 -javax/swing/DefaultListModel -javax/swing/event/ListDataEvent -javax/sound/sampled/DataLine -javax/sound/sampled/Line -javax/sound/sampled/Line$Info -javax/sound/sampled/DataLine$Info -javax/sound/sampled/Control$Type -javax/sound/sampled/FloatControl$Type -javax/sound/sampled/LineUnavailableException -javax/sound/sampled/UnsupportedAudioFileException -javax/swing/JRadioButtonMenuItem -javax/swing/JMenuItem$AccessibleJMenuItem -javax/swing/AbstractButton$AccessibleAbstractButton -javax/accessibility/AccessibleAction -javax/accessibility/AccessibleValue -javax/accessibility/AccessibleText -javax/accessibility/AccessibleExtendedComponent -javax/accessibility/AccessibleComponent -javax/swing/JComponent$AccessibleJComponent -java/awt/Container$AccessibleAWTContainer -java/awt/Component$AccessibleAWTComponent -javax/accessibility/AccessibleRelationSet -javax/accessibility/AccessibleState -javax/accessibility/AccessibleBundle -javax/swing/plaf/basic/BasicCheckBoxMenuItemUI -javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon -javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem -javax/swing/plaf/basic/BasicRadioButtonMenuItemUI -javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon -sun/awt/image/ImageDecoder$1 -javax/swing/JTabbedPane$Page -java/net/DatagramSocket -java/net/MulticastSocket -java/net/DatagramPacket -sun/net/InetAddressCachePolicy -sun/net/InetAddressCachePolicy$1 -sun/net/InetAddressCachePolicy$2 -java/net/InetAddress$CacheEntry -java/net/PlainDatagramSocketImpl -java/net/DatagramSocketImpl -java/net/NetworkInterface -java/net/InterfaceAddress -java/text/Collator -java/text/spi/CollatorProvider -sun/text/resources/CollationData -sun/text/resources/CollationData_en -sun/util/EmptyListResourceBundle -java/text/RuleBasedCollator -java/text/CollationRules -java/text/RBCollationTables -java/text/RBTableBuilder -java/text/RBCollationTables$BuildAPI -sun/text/IntHashtable -sun/text/UCompactIntArray -sun/text/normalizer/NormalizerImpl -sun/text/normalizer/ICUData -sun/text/normalizer/NormalizerDataReader -sun/text/normalizer/ICUBinary$Authenticate -sun/text/normalizer/ICUBinary -sun/text/normalizer/NormalizerImpl$FCDTrieImpl -sun/text/normalizer/Trie$DataManipulate -sun/text/normalizer/NormalizerImpl$NormTrieImpl -sun/text/normalizer/NormalizerImpl$AuxTrieImpl -sun/text/normalizer/IntTrie -sun/text/normalizer/Trie -sun/text/normalizer/CharTrie -sun/text/normalizer/CharTrie$FriendAgent -sun/text/normalizer/UnicodeSet -sun/text/normalizer/UnicodeMatcher -sun/text/normalizer/NormalizerImpl$DecomposeArgs -java/text/MergeCollation -java/text/PatternEntry$Parser -java/text/PatternEntry -java/text/EntryPair -sun/text/ComposedCharIter -sun/text/normalizer/UTF16 -sun/net/www/protocol/http/Handler -java/io/ObjectInputStream$BlockDataInputStream -java/io/ObjectInputStream$PeekInputStream -java/io/ObjectInputStream$HandleTable -java/io/ObjectInputStream$ValidationList -java/io/Bits -java/io/ObjectStreamClass$Caches -java/io/ObjectStreamClass$WeakClassKey -java/io/ObjectStreamClass$EntryFuture -java/io/ObjectStreamClass$2 +sun/awt/SunHints +sun/awt/SunHints$Key +sun/awt/SunHints$LCDContrastKey +sun/awt/SunHints$Value +sun/awt/SunToolkit +sun/awt/SunToolkit$1 +sun/awt/SunToolkit$ModalityListenerList +sun/awt/TimedWindowEvent +sun/awt/WindowClosingListener +sun/awt/WindowClosingSupport +sun/awt/datatransfer/DataTransferer +sun/awt/datatransfer/DataTransferer$1 +sun/awt/datatransfer/DataTransferer$CharsetComparator +sun/awt/datatransfer/DataTransferer$IndexOrderComparator +sun/awt/datatransfer/DataTransferer$IndexedComparator +sun/awt/datatransfer/DataTransferer$RMI +sun/awt/datatransfer/DataTransferer$StandardEncodingsHolder +sun/awt/datatransfer/SunClipboard +sun/awt/datatransfer/ToolkitThreadBlockedHandler +sun/awt/datatransfer/TransferableProxy +sun/awt/dnd/SunDragSourceContextPeer +sun/awt/dnd/SunDropTargetEvent +sun/awt/event/IgnorePaintEvent +sun/awt/im/CompositionAreaHandler +sun/awt/im/ExecutableInputMethodManager +sun/awt/im/ExecutableInputMethodManager$3 +sun/awt/im/InputContext +sun/awt/im/InputMethodAdapter +sun/awt/im/InputMethodContext +sun/awt/im/InputMethodLocator +sun/awt/im/InputMethodManager +sun/awt/im/InputMethodWindow +sun/awt/image/BufImgSurfaceData +sun/awt/image/BufImgSurfaceData$ICMColorData +sun/awt/image/BufImgSurfaceManager +sun/awt/image/BufferedImageGraphicsConfig +sun/awt/image/ByteComponentRaster +sun/awt/image/ByteInterleavedRaster +sun/awt/image/BytePackedRaster +sun/awt/image/FetcherInfo +sun/awt/image/GifFrame +sun/awt/image/GifImageDecoder +sun/awt/image/ImageConsumerQueue +sun/awt/image/ImageDecoder +sun/awt/image/ImageFetchable +sun/awt/image/ImageFetcher +sun/awt/image/ImageFetcher$1 +sun/awt/image/ImageRepresentation +sun/awt/image/ImageWatched +sun/awt/image/ImageWatched$Link +sun/awt/image/ImageWatched$WeakLink +sun/awt/image/InputStreamImageSource +sun/awt/image/IntegerComponentRaster +sun/awt/image/IntegerInterleavedRaster +sun/awt/image/NativeLibLoader +sun/awt/image/NativeLibLoader$1 +sun/awt/image/OffScreenImage +sun/awt/image/OffScreenImageSource +sun/awt/image/PNGFilterInputStream +sun/awt/image/PNGImageDecoder +sun/awt/image/PixelConverter +sun/awt/image/PixelConverter$Argb +sun/awt/image/PixelConverter$ArgbBm +sun/awt/image/PixelConverter$ArgbPre +sun/awt/image/PixelConverter$Bgrx +sun/awt/image/PixelConverter$ByteGray +sun/awt/image/PixelConverter$Rgba +sun/awt/image/PixelConverter$RgbaPre +sun/awt/image/PixelConverter$Rgbx +sun/awt/image/PixelConverter$Ushort4444Argb +sun/awt/image/PixelConverter$Ushort555Rgb +sun/awt/image/PixelConverter$Ushort555Rgbx +sun/awt/image/PixelConverter$Ushort565Rgb +sun/awt/image/PixelConverter$UshortGray +sun/awt/image/PixelConverter$Xbgr +sun/awt/image/PixelConverter$Xrgb +sun/awt/image/SunVolatileImage +sun/awt/image/SunWritableRaster +sun/awt/image/SunWritableRaster$DataStealer +sun/awt/image/SurfaceManager +sun/awt/image/SurfaceManager$FlushableCacheData +sun/awt/image/SurfaceManager$ImageAccessor +sun/awt/image/SurfaceManager$ProxiedGraphicsConfig +sun/awt/image/ToolkitImage +sun/awt/image/URLImageSource +sun/awt/image/VolatileSurfaceManager +sun/awt/resources/awt +sun/awt/resources/awtosx +sun/awt/util/IdentityArrayList +sun/awt/util/IdentityLinkedList +sun/awt/util/IdentityLinkedList$Entry +sun/awt/util/IdentityLinkedList$ListItr +sun/dc/DuctusRenderingEngine +sun/font/AttributeValues +sun/font/CCharToGlyphMapper +sun/font/CCharToGlyphMapper$Cache +sun/font/CFont +sun/font/CFontConfiguration +sun/font/CFontManager +sun/font/CFontManager$4 +sun/font/CStrike +sun/font/CStrike$GlyphAdvanceCache +sun/font/CStrike$GlyphInfoCache +sun/font/CStrikeDisposer +sun/font/CharToGlyphMapper +sun/font/CompositeFont +sun/font/CompositeFontDescriptor +sun/font/CoreMetrics +sun/font/EAttribute +sun/font/FileFont +sun/font/Font2D +sun/font/Font2DHandle +sun/font/FontAccess +sun/font/FontDesignMetrics +sun/font/FontDesignMetrics$KeyReference +sun/font/FontDesignMetrics$MetricsKey +sun/font/FontFamily +sun/font/FontLineMetrics +sun/font/FontManager +sun/font/FontManagerFactory +sun/font/FontManagerFactory$1 +sun/font/FontManagerForSGE +sun/font/FontManagerNativeLibrary +sun/font/FontManagerNativeLibrary$1 +sun/font/FontStrike +sun/font/FontStrikeDesc +sun/font/FontStrikeDisposer +sun/font/FontUtilities +sun/font/FontUtilities$1 +sun/font/GlyphList +sun/font/PhysicalFont +sun/font/PhysicalStrike +sun/font/StandardGlyphVector +sun/font/StandardGlyphVector$GlyphStrike +sun/font/StrikeCache +sun/font/StrikeCache$1 +sun/font/StrikeCache$DisposableStrike +sun/font/StrikeCache$SoftDisposerRef +sun/font/StrikeMetrics +sun/font/SunFontManager +sun/font/SunFontManager$1 +sun/font/SunFontManager$11 +sun/font/SunFontManager$2 +sun/font/SunFontManager$3 +sun/font/SunFontManager$FontRegistrationInfo +sun/font/SunFontManager$T1Filter +sun/font/SunFontManager$TTFilter +sun/font/TrueTypeFont +sun/font/TrueTypeFont$1 +sun/font/TrueTypeFont$DirectoryEntry +sun/font/TrueTypeFont$TTDisposerRecord +sun/font/Type1Font +sun/java2d/DefaultDisposerRecord +sun/java2d/DestSurfaceProvider +sun/java2d/Disposer +sun/java2d/Disposer$1 +sun/java2d/Disposer$2 +sun/java2d/Disposer$PollDisposable +sun/java2d/DisposerRecord +sun/java2d/DisposerTarget +sun/java2d/FontSupport +sun/java2d/InvalidPipeException +sun/java2d/MacosxSurfaceManagerFactory +sun/java2d/NullSurfaceData +sun/java2d/StateTrackable +sun/java2d/StateTrackable$State +sun/java2d/StateTrackableDelegate +sun/java2d/StateTrackableDelegate$1 +sun/java2d/StateTrackableDelegate$2 +sun/java2d/StateTracker +sun/java2d/StateTracker$1 +sun/java2d/StateTracker$2 +sun/java2d/SunGraphics2D +sun/java2d/SunGraphicsEnvironment +sun/java2d/SunGraphicsEnvironment$1 +sun/java2d/Surface +sun/java2d/SurfaceData +sun/java2d/SurfaceData$PixelToPgramLoopConverter +sun/java2d/SurfaceData$PixelToShapeLoopConverter +sun/java2d/SurfaceDataProxy +sun/java2d/SurfaceDataProxy$1 +sun/java2d/SurfaceManagerFactory +sun/java2d/cmm/CMSManager +sun/java2d/cmm/ProfileActivator +sun/java2d/cmm/ProfileDeferralInfo +sun/java2d/cmm/ProfileDeferralMgr +sun/java2d/loops/Blit +sun/java2d/loops/BlitBg +sun/java2d/loops/CompositeType +sun/java2d/loops/CustomComponent +sun/java2d/loops/DrawGlyphList +sun/java2d/loops/DrawGlyphListAA +sun/java2d/loops/DrawGlyphListLCD +sun/java2d/loops/DrawLine +sun/java2d/loops/DrawParallelogram +sun/java2d/loops/DrawPath +sun/java2d/loops/DrawPolygons +sun/java2d/loops/DrawRect +sun/java2d/loops/FillParallelogram +sun/java2d/loops/FillPath +sun/java2d/loops/FillRect +sun/java2d/loops/FillSpans +sun/java2d/loops/FontInfo +sun/java2d/loops/GeneralRenderer +sun/java2d/loops/GraphicsPrimitive +sun/java2d/loops/GraphicsPrimitiveMgr +sun/java2d/loops/GraphicsPrimitiveMgr$1 +sun/java2d/loops/GraphicsPrimitiveMgr$2 +sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec +sun/java2d/loops/GraphicsPrimitiveProxy +sun/java2d/loops/MaskBlit +sun/java2d/loops/MaskFill +sun/java2d/loops/ProcessPath$DrawHandler +sun/java2d/loops/RenderCache +sun/java2d/loops/RenderCache$Entry +sun/java2d/loops/RenderLoops +sun/java2d/loops/ScaledBlit +sun/java2d/loops/SurfaceType +sun/java2d/loops/TransformBlit +sun/java2d/loops/TransformHelper +sun/java2d/loops/XORComposite +sun/java2d/opengl/CGLGraphicsConfig +sun/java2d/opengl/CGLGraphicsConfig$1 +sun/java2d/opengl/CGLGraphicsConfig$CGLGCDisposerRecord +sun/java2d/opengl/CGLGraphicsConfig$CGLImageCaps +sun/java2d/opengl/CGLLayer +sun/java2d/opengl/CGLSurfaceData +sun/java2d/opengl/CGLSurfaceData$CGLLayerSurfaceData +sun/java2d/opengl/CGLSurfaceData$CGLOffScreenSurfaceData +sun/java2d/opengl/CGLVolatileSurfaceManager +sun/java2d/opengl/OGLAnyCompositeBlit +sun/java2d/opengl/OGLBlitLoops +sun/java2d/opengl/OGLContext +sun/java2d/opengl/OGLContext$OGLContextCaps +sun/java2d/opengl/OGLDrawImage +sun/java2d/opengl/OGLGeneralBlit +sun/java2d/opengl/OGLGraphicsConfig +sun/java2d/opengl/OGLMaskBlit +sun/java2d/opengl/OGLMaskFill +sun/java2d/opengl/OGLRTTSurfaceToSurfaceBlit +sun/java2d/opengl/OGLRTTSurfaceToSurfaceScale +sun/java2d/opengl/OGLRTTSurfaceToSurfaceTransform +sun/java2d/opengl/OGLRenderQueue +sun/java2d/opengl/OGLRenderQueue$1 +sun/java2d/opengl/OGLRenderQueue$QueueFlusher +sun/java2d/opengl/OGLRenderer +sun/java2d/opengl/OGLSurfaceData +sun/java2d/opengl/OGLSurfaceData$1 +sun/java2d/opengl/OGLSurfaceDataProxy +sun/java2d/opengl/OGLSurfaceToSurfaceBlit +sun/java2d/opengl/OGLSurfaceToSurfaceScale +sun/java2d/opengl/OGLSurfaceToSurfaceTransform +sun/java2d/opengl/OGLSurfaceToSwBlit +sun/java2d/opengl/OGLSwToSurfaceBlit +sun/java2d/opengl/OGLSwToSurfaceScale +sun/java2d/opengl/OGLSwToSurfaceTransform +sun/java2d/opengl/OGLSwToTextureBlit +sun/java2d/opengl/OGLTextRenderer +sun/java2d/opengl/OGLTextureToSurfaceBlit +sun/java2d/opengl/OGLTextureToSurfaceScale +sun/java2d/opengl/OGLTextureToSurfaceTransform +sun/java2d/pipe/AAShapePipe +sun/java2d/pipe/AATextRenderer +sun/java2d/pipe/AlphaColorPipe +sun/java2d/pipe/AlphaPaintPipe +sun/java2d/pipe/BufferedContext +sun/java2d/pipe/BufferedMaskBlit +sun/java2d/pipe/BufferedMaskFill +sun/java2d/pipe/BufferedPaints +sun/java2d/pipe/BufferedRenderPipe +sun/java2d/pipe/BufferedRenderPipe$AAParallelogramPipe +sun/java2d/pipe/BufferedRenderPipe$BufferedDrawHandler +sun/java2d/pipe/BufferedTextPipe +sun/java2d/pipe/CompositePipe +sun/java2d/pipe/DrawImage +sun/java2d/pipe/DrawImagePipe +sun/java2d/pipe/GeneralCompositePipe +sun/java2d/pipe/GlyphListLoopPipe +sun/java2d/pipe/GlyphListPipe +sun/java2d/pipe/LCDTextRenderer +sun/java2d/pipe/LoopBasedPipe +sun/java2d/pipe/LoopPipe +sun/java2d/pipe/NullPipe +sun/java2d/pipe/OutlineTextRenderer +sun/java2d/pipe/ParallelogramPipe +sun/java2d/pipe/PixelDrawPipe +sun/java2d/pipe/PixelFillPipe +sun/java2d/pipe/PixelToParallelogramConverter +sun/java2d/pipe/PixelToShapeConverter +sun/java2d/pipe/Region +sun/java2d/pipe/Region$ImmutableRegion +sun/java2d/pipe/RegionIterator +sun/java2d/pipe/RenderBuffer +sun/java2d/pipe/RenderQueue +sun/java2d/pipe/RenderingEngine +sun/java2d/pipe/RenderingEngine$1 +sun/java2d/pipe/ShapeDrawPipe +sun/java2d/pipe/SolidTextRenderer +sun/java2d/pipe/SpanClipRenderer +sun/java2d/pipe/SpanShapeRenderer +sun/java2d/pipe/SpanShapeRenderer$Composite +sun/java2d/pipe/TextPipe +sun/java2d/pipe/TextRenderer +sun/java2d/pipe/ValidatePipe +sun/java2d/pipe/hw/AccelGraphicsConfig +sun/java2d/pipe/hw/AccelSurface +sun/java2d/pipe/hw/BufferedContextProvider +sun/java2d/pipe/hw/ContextCapabilities +sun/launcher/LauncherHelper +sun/launcher/LauncherHelper$FXHelper +sun/lwawt/LWCanvasPeer +sun/lwawt/LWComponentPeer +sun/lwawt/LWComponentPeer$1 +sun/lwawt/LWComponentPeer$2 +sun/lwawt/LWComponentPeer$3 +sun/lwawt/LWComponentPeer$DelegateContainer +sun/lwawt/LWContainerPeer +sun/lwawt/LWCursorManager +sun/lwawt/LWCursorManager$1 +sun/lwawt/LWGraphicsConfig +sun/lwawt/LWKeyboardFocusManagerPeer +sun/lwawt/LWLabelPeer +sun/lwawt/LWRepaintArea +sun/lwawt/LWToolkit +sun/lwawt/LWWindowPeer +sun/lwawt/LWWindowPeer$PeerType +sun/lwawt/PlatformComponent +sun/lwawt/PlatformEventNotifier +sun/lwawt/PlatformWindow +sun/lwawt/macosx/CClipboard +sun/lwawt/macosx/CCursorManager +sun/lwawt/macosx/CCustomCursor +sun/lwawt/macosx/CDataTransferer +sun/lwawt/macosx/CDropTarget +sun/lwawt/macosx/CFRetainedResource +sun/lwawt/macosx/CImage +sun/lwawt/macosx/CImage$Creator +sun/lwawt/macosx/CInputMethod +sun/lwawt/macosx/CInputMethodDescriptor +sun/lwawt/macosx/CPlatformComponent +sun/lwawt/macosx/CPlatformResponder +sun/lwawt/macosx/CPlatformView +sun/lwawt/macosx/CPlatformWindow +sun/lwawt/macosx/CPlatformWindow$1 +sun/lwawt/macosx/CPlatformWindow$10 +sun/lwawt/macosx/CPlatformWindow$11 +sun/lwawt/macosx/CPlatformWindow$12 +sun/lwawt/macosx/CPlatformWindow$14 +sun/lwawt/macosx/CPlatformWindow$2 +sun/lwawt/macosx/CPlatformWindow$3 +sun/lwawt/macosx/CPlatformWindow$4 +sun/lwawt/macosx/CPlatformWindow$5 +sun/lwawt/macosx/CPlatformWindow$6 +sun/lwawt/macosx/CPlatformWindow$7 +sun/lwawt/macosx/CPlatformWindow$8 +sun/lwawt/macosx/CPlatformWindow$9 +sun/lwawt/macosx/CPrinterDialog +sun/lwawt/macosx/CThreading +sun/lwawt/macosx/CToolkitThreadBlockedHandler +sun/lwawt/macosx/CWrapper$NSWindow +sun/lwawt/macosx/LWCToolkit +sun/lwawt/macosx/LWCToolkit$1 +sun/lwawt/macosx/LWCToolkit$2 +sun/lwawt/macosx/LWCToolkit$5 +sun/lwawt/macosx/LWCToolkit$AppleSpecificColor +sun/lwawt/macosx/NamedCursor +sun/lwawt/macosx/event/NSEvent +sun/misc/ASCIICaseInsensitiveComparator +sun/misc/Cleaner +sun/misc/CompoundEnumeration +sun/misc/ExtensionDependency +sun/misc/FileURLMapper +sun/misc/FloatingDecimal +sun/misc/FloatingDecimal$1 +sun/misc/FloatingDecimal$ASCIIToBinaryConverter +sun/misc/FloatingDecimal$BinaryToASCIIBuffer +sun/misc/FloatingDecimal$BinaryToASCIIConverter +sun/misc/FloatingDecimal$ExceptionalBinaryToASCIIBuffer +sun/misc/FloatingDecimal$PreparedASCIIToBinaryBuffer +sun/misc/IOUtils +sun/misc/JarIndex +sun/misc/JavaAWTAccess +sun/misc/JavaIOFileDescriptorAccess +sun/misc/JavaLangAccess +sun/misc/JavaNetAccess +sun/misc/JavaNioAccess +sun/misc/JavaSecurityAccess +sun/misc/JavaSecurityProtectionDomainAccess +sun/misc/JavaUtilJarAccess +sun/misc/JavaUtilZipFileAccess +sun/misc/Launcher +sun/misc/Launcher$AppClassLoader +sun/misc/Launcher$AppClassLoader$1 +sun/misc/Launcher$BootClassPathHolder +sun/misc/Launcher$BootClassPathHolder$1 +sun/misc/Launcher$ExtClassLoader +sun/misc/Launcher$ExtClassLoader$1 +sun/misc/Launcher$Factory +sun/misc/MetaIndex +sun/misc/NativeSignalHandler +sun/misc/OSEnvironment +sun/misc/Perf +sun/misc/Perf$GetPerfAction +sun/misc/PerfCounter +sun/misc/PerfCounter$CoreCounters +sun/misc/PerformanceLogger +sun/misc/PerformanceLogger$TimeData +sun/misc/PostVMInitHook +sun/misc/Resource +sun/misc/SharedSecrets +sun/misc/Signal +sun/misc/SignalHandler +sun/misc/SoftCache +sun/misc/SoftCache$ValueCell +sun/misc/URLClassPath +sun/misc/URLClassPath$1 +sun/misc/URLClassPath$2 +sun/misc/URLClassPath$3 +sun/misc/URLClassPath$FileLoader +sun/misc/URLClassPath$JarLoader +sun/misc/URLClassPath$JarLoader$1 +sun/misc/URLClassPath$JarLoader$2 +sun/misc/URLClassPath$Loader +sun/misc/Unsafe +sun/misc/VM +sun/misc/Version +sun/net/DefaultProgressMeteringPolicy +sun/net/NetHooks +sun/net/NetHooks$Provider +sun/net/NetProperties +sun/net/NetProperties$1 +sun/net/ProgressMeteringPolicy +sun/net/ProgressMonitor +sun/net/sdp/SdpProvider +sun/net/spi/DefaultProxySelector +sun/net/spi/DefaultProxySelector$1 +sun/net/spi/DefaultProxySelector$3 +sun/net/spi/DefaultProxySelector$NonProxyInfo +sun/net/spi/nameservice/NameService +sun/net/util/IPAddressUtil +sun/net/util/URLUtil +sun/net/www/MessageHeader +sun/net/www/ParseUtil +sun/net/www/URLConnection +sun/net/www/protocol/file/FileURLConnection +sun/net/www/protocol/file/Handler +sun/net/www/protocol/jar/Handler +sun/net/www/protocol/jar/JarFileFactory +sun/net/www/protocol/jar/JarURLConnection +sun/net/www/protocol/jar/JarURLConnection$JarURLInputStream +sun/net/www/protocol/jar/URLJarFile +sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController +sun/net/www/protocol/jar/URLJarFile$URLJarFileEntry +sun/nio/ByteBuffered +sun/nio/ch/DirectBuffer +sun/nio/ch/FileChannelImpl +sun/nio/ch/FileDispatcher +sun/nio/ch/FileDispatcherImpl +sun/nio/ch/IOStatus +sun/nio/ch/IOUtil +sun/nio/ch/IOUtil$1 +sun/nio/ch/Interruptible +sun/nio/ch/NativeDispatcher +sun/nio/ch/NativeThread +sun/nio/ch/NativeThreadSet +sun/nio/ch/Util +sun/nio/ch/Util$1 +sun/nio/ch/Util$BufferCache +sun/nio/cs/ArrayDecoder +sun/nio/cs/ArrayEncoder +sun/nio/cs/FastCharsetProvider +sun/nio/cs/HistoricallyNamedCharset +sun/nio/cs/ISO_8859_1 +sun/nio/cs/ISO_8859_1$Decoder +sun/nio/cs/StandardCharsets +sun/nio/cs/StandardCharsets$Aliases +sun/nio/cs/StandardCharsets$Cache +sun/nio/cs/StandardCharsets$Classes +sun/nio/cs/StreamDecoder +sun/nio/cs/StreamEncoder +sun/nio/cs/US_ASCII +sun/nio/cs/UTF_16 +sun/nio/cs/UTF_16$Decoder +sun/nio/cs/UTF_16BE +sun/nio/cs/UTF_16LE +sun/nio/cs/UTF_8 +sun/nio/cs/UTF_8$Decoder +sun/nio/cs/UTF_8$Encoder +sun/nio/cs/Unicode +sun/nio/cs/UnicodeDecoder +sun/print/PrinterGraphicsConfig +sun/reflect/AccessorGenerator +sun/reflect/BootstrapConstructorAccessorImpl +sun/reflect/ByteVector +sun/reflect/ByteVectorFactory +sun/reflect/ByteVectorImpl +sun/reflect/CallerSensitive +sun/reflect/ClassDefiner +sun/reflect/ClassDefiner$1 +sun/reflect/ClassFileAssembler +sun/reflect/ClassFileConstants +sun/reflect/ConstantPool +sun/reflect/ConstructorAccessor +sun/reflect/ConstructorAccessorImpl +sun/reflect/DelegatingClassLoader +sun/reflect/DelegatingConstructorAccessorImpl +sun/reflect/DelegatingMethodAccessorImpl +sun/reflect/FieldAccessor +sun/reflect/FieldAccessorImpl +sun/reflect/Label +sun/reflect/Label$PatchInfo +sun/reflect/LangReflectAccess +sun/reflect/MagicAccessorImpl +sun/reflect/MethodAccessor +sun/reflect/MethodAccessorGenerator +sun/reflect/MethodAccessorGenerator$1 +sun/reflect/MethodAccessorImpl +sun/reflect/NativeConstructorAccessorImpl +sun/reflect/NativeMethodAccessorImpl +sun/reflect/Reflection +sun/reflect/ReflectionFactory +sun/reflect/ReflectionFactory$1 +sun/reflect/ReflectionFactory$GetReflectionFactoryAction sun/reflect/SerializationConstructorAccessorImpl -java/io/ObjectStreamClass$FieldReflectorKey -java/io/ObjectStreamClass$FieldReflector -java/io/ObjectStreamClass$1 -java/io/DataOutputStream -java/io/ObjectStreamClass$MemberSignature -java/io/ObjectStreamClass$3 -java/io/ObjectStreamClass$4 -java/io/ObjectStreamClass$5 -java/security/MessageDigest -java/security/MessageDigestSpi -sun/security/jca/GetInstance -sun/security/jca/Providers -sun/security/jca/ProviderList -sun/security/jca/ProviderConfig -sun/security/jca/ProviderList$3 -sun/security/jca/ProviderList$1 -sun/security/jca/ProviderList$2 -sun/security/jca/ProviderConfig$1 -sun/security/jca/ProviderConfig$3 -java/security/Provider$Service -java/security/Provider$UString -sun/security/provider/SHA -sun/security/provider/DigestBase -sun/security/jca/GetInstance$Instance -java/security/MessageDigest$Delegate -sun/security/provider/ByteArrayAccess -java/io/ObjectStreamClass$ClassDataSlot -java/io/ObjectInputStream$CallbackContext +sun/reflect/UTF8 +sun/reflect/UnsafeBooleanFieldAccessorImpl +sun/reflect/UnsafeFieldAccessorFactory +sun/reflect/UnsafeFieldAccessorImpl +sun/reflect/UnsafeObjectFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl sun/reflect/UnsafeQualifiedStaticLongFieldAccessorImpl -java/security/SignatureException -java/security/InvalidKeyException -java/security/KeyException -java/security/Signature -java/security/SignatureSpi -java/io/ObjectOutputStream$BlockDataOutputStream -sun/security/provider/DSAPublicKey -java/security/interfaces/DSAPublicKey -java/security/interfaces/DSAKey -java/security/PublicKey -java/security/Key -sun/security/x509/X509Key -java/io/ObjectOutputStream$HandleTable -java/io/ObjectOutputStream$ReplaceTable -sun/security/x509/AlgorithmId -sun/security/util/DerEncoder -sun/security/util/BitArray -sun/security/util/DerOutputStream -sun/security/util/DerValue -java/math/BigInteger -java/security/interfaces/DSAParams -sun/security/util/DerInputStream -sun/security/util/DerInputBuffer -sun/security/util/ObjectIdentifier -java/security/AlgorithmParameters -java/security/AlgorithmParametersSpi -sun/security/provider/DSAParameters -sun/security/util/ByteArrayLexOrder -sun/security/util/ByteArrayTagOrder -sun/security/util/DerIndefLenConverter -java/io/InvalidClassException -java/io/ObjectStreamException -java/io/ObjectInputStream$GetFieldImpl -java/io/ObjectInputStream$GetField -sun/security/jca/ServiceId -sun/security/jca/ProviderList$ServiceList -sun/security/jca/ProviderList$ServiceList$1 -java/security/Signature$Delegate -java/security/interfaces/DSAPrivateKey -java/security/PrivateKey -sun/security/provider/DSA$SHA1withDSA -sun/security/provider/DSA -java/security/spec/DSAParameterSpec -java/security/spec/AlgorithmParameterSpec -java/math/MutableBigInteger -java/math/SignedMutableBigInteger -java/awt/EventQueue$1AWTInvocationLock -javax/swing/SystemEventQueueUtilities$RunnableCanvas -javax/swing/SystemEventQueueUtilities$RunnableCanvasGraphics -java/awt/Component$FlipBufferStrategy -java/awt/SentEvent -sun/awt/X11/XDestroyWindowEvent -sun/awt/X11/XDropTargetRegistry -sun/awt/X11/XEmbeddedFramePeer -sun/awt/X11/XDragAndDropProtocols -sun/awt/X11/XDropTargetContextPeer -sun/awt/dnd/SunDropTargetContextPeer -java/awt/dnd/peer/DropTargetContextPeer -sun/awt/X11/XDropTargetContextPeer$XDropTargetProtocolListenerImpl -sun/awt/X11/XDropTargetProtocolListener -sun/awt/X11/XDnDDragSourceProtocol -sun/awt/X11/XDragSourceProtocol -sun/awt/X11/MotifDnDDragSourceProtocol -sun/awt/X11/XDnDDropTargetProtocol -sun/awt/X11/XDropTargetProtocol -sun/awt/X11/MotifDnDDropTargetProtocol -sun/awt/X11/XDnDConstants -sun/awt/X11/MotifDnDConstants -javax/swing/JTable$2 -javax/swing/JTable$Resizable3 -javax/swing/JTable$Resizable2 -javax/swing/JTable$5 -javax/swing/event/AncestorEvent -sun/font/FontDesignMetrics$MetricsKey -java/awt/geom/Line2D$Float -java/awt/geom/Line2D -com/sun/java/swing/plaf/gtk/GTKLookAndFeel -javax/swing/plaf/synth/SynthLookAndFeel -javax/swing/plaf/synth/DefaultSynthStyleFactory -javax/swing/plaf/synth/SynthStyleFactory -sun/swing/BakedArrayList -javax/swing/plaf/synth/SynthLookAndFeel$Handler -javax/swing/plaf/synth/SynthDefaultLookup -com/sun/java/swing/plaf/gtk/GTKEngine -com/sun/java/swing/plaf/gtk/GTKDefaultEngine -com/sun/java/swing/plaf/gtk/GTKEngine$Settings -com/sun/java/swing/plaf/gtk/GTKStyleFactory -com/sun/java/swing/plaf/gtk/PangoFonts -sun/font/FontManager$FontConfigInfo -com/sun/java/swing/plaf/gtk/GTKLookAndFeel$WeakPCL -javax/swing/plaf/synth/Region -javax/swing/plaf/synth/SynthLookAndFeel$AATextListener -com/sun/java/swing/plaf/gtk/GTKNativeEngine -com/sun/java/swing/plaf/gtk/GTKNativeEngine$WidgetType -com/sun/java/swing/plaf/gtk/GTKRegion -com/sun/java/swing/plaf/gtk/GTKDefaultStyle -com/sun/java/swing/plaf/gtk/GTKStyle -com/sun/java/swing/plaf/gtk/GTKConstants -javax/swing/plaf/synth/SynthStyle -javax/swing/plaf/synth/SynthGraphicsUtils -com/sun/java/swing/plaf/gtk/GTKGraphicsUtils -com/sun/java/swing/plaf/gtk/GTKStyle$GTKStockIcon -sun/swing/plaf/synth/SynthIcon -com/sun/java/swing/plaf/gtk/GTKColorType -javax/swing/plaf/synth/ColorType -com/sun/java/swing/plaf/gtk/resources/gtk -com/sun/swing/internal/plaf/synth/resources/synth -com/sun/java/swing/plaf/gtk/GTKStyle$GTKLazyValue -com/sun/java/swing/plaf/gtk/GTKLookAndFeel$1FontLazyValue -com/sun/java/swing/plaf/gtk/GTKLookAndFeel$2 -com/sun/java/swing/plaf/gtk/GTKLookAndFeel$3 -javax/swing/plaf/synth/SynthPanelUI -javax/swing/plaf/synth/SynthConstants -javax/swing/plaf/synth/SynthContext -javax/swing/plaf/synth/SynthBorder -javax/swing/plaf/synth/SynthRootPaneUI -javax/swing/plaf/synth/SynthLabelUI -javax/swing/plaf/synth/SynthButtonUI -javax/swing/plaf/synth/SynthToggleButtonUI -javax/swing/plaf/basic/BasicBorders$FieldBorder -javax/swing/plaf/synth/SynthMenuBarUI -javax/swing/plaf/synth/DefaultMenuLayout -javax/swing/plaf/synth/SynthMenuUI -javax/swing/plaf/synth/SynthUI -com/sun/java/swing/plaf/gtk/GTKIconFactory -com/sun/java/swing/plaf/gtk/GTKIconFactory$MenuArrowIcon -com/sun/java/swing/plaf/gtk/GTKIconFactory$DelegatingIcon -com/sun/java/swing/plaf/gtk/GTKConstants$ArrowType -javax/swing/plaf/basic/BasicIconFactory -javax/swing/plaf/basic/BasicIconFactory$MenuItemCheckIcon -javax/swing/plaf/synth/SynthMenuItemUI -javax/swing/plaf/synth/SynthPopupMenuUI -javax/swing/plaf/synth/SynthSeparatorUI -javax/swing/plaf/synth/SynthScrollBarUI -javax/swing/plaf/synth/SynthArrowButton -javax/swing/plaf/synth/SynthArrowButton$SynthArrowButtonUI -javax/swing/plaf/synth/SynthComboBoxUI -javax/swing/plaf/synth/SynthComboPopup -javax/swing/plaf/synth/SynthListUI -javax/swing/plaf/synth/SynthListUI$SynthListCellRenderer -javax/swing/plaf/synth/SynthViewportUI -javax/swing/plaf/synth/SynthScrollPaneUI -javax/swing/plaf/synth/SynthScrollPaneUI$ViewportBorder -javax/swing/plaf/synth/SynthComboBoxUI$SynthComboBoxRenderer -javax/swing/plaf/synth/SynthComboBoxUI$SynthComboBoxEditor -javax/swing/plaf/synth/SynthTextFieldUI -javax/swing/plaf/synth/SynthToolBarUI -javax/swing/plaf/synth/SynthToolBarUI$SynthToolBarLayoutManager -com/sun/java/swing/plaf/gtk/GTKIconFactory$ToolBarHandleIcon -com/sun/java/swing/plaf/gtk/GTKConstants$Orientation -sun/awt/X11/XTranslateCoordinates -com/sun/java/swing/plaf/gtk/GTKPainter -javax/swing/plaf/synth/SynthPainter -javax/swing/plaf/synth/SynthPainter$1 -com/sun/java/swing/plaf/gtk/GTKConstants$PositionType -com/sun/java/swing/plaf/gtk/GTKConstants$ShadowType -java/io/ObjectInputStream$HandleTable$HandleList -sun/java2d/pipe/ShapeSpanIterator -sun/java2d/pipe/SpanIterator -sun/dc/path/PathConsumer -sun/dc/pr/PathStroker -sun/dc/pr/PathDasher -java/awt/geom/LineIterator -java/awt/geom/PathIterator -sun/applet/Main -sun/applet/AppletMessageHandler -sun/applet/resources/MsgAppletViewer -sun/applet/AppletSecurity -sun/awt/AWTSecurityManager -java/lang/SecurityManager -java/security/DomainCombiner -sun/applet/AppletSecurity$1 -java/lang/SecurityManager$1 -java/security/SecurityPermission -java/util/PropertyPermission -sun/applet/AppletViewer -java/applet/AppletContext -java/awt/print/Printable -sun/security/util/SecurityConstants -java/awt/AWTPermission -java/net/NetPermission -java/net/SocketPermission -javax/security/auth/AuthPermission -java/lang/Thread$1 -java/util/logging/LogManager$5 -java/util/logging/LogManager$6 -sun/applet/StdAppletViewerFactory -sun/applet/AppletViewerFactory -sun/applet/AppletViewer$UserActionListener -sun/applet/AppletViewerPanel -sun/applet/AppletPanel -java/applet/AppletStub -sun/misc/MessageUtils -sun/applet/AppletPanel$10 -java/security/Policy$1 -sun/security/provider/PolicyFile$1 -sun/security/provider/PolicyInfo -sun/security/provider/PolicyFile$3 -sun/security/util/PropertyExpander -sun/security/provider/PolicyParser -sun/security/util/PolicyUtil -sun/security/provider/PolicyParser$GrantEntry -sun/security/provider/PolicyParser$PermissionEntry -sun/security/provider/PolicyFile$PolicyEntry -sun/security/provider/PolicyFile$6 -sun/security/provider/PolicyFile$7 -sun/security/provider/SelfPermission -java/net/SocketPermissionCollection -java/util/PropertyPermissionCollection -sun/applet/AppletPanel$9 -sun/applet/AppletClassLoader -sun/applet/AppletClassLoader$4 -sun/applet/AppletThreadGroup -sun/applet/AppContextCreator -sun/applet/AppletPanel$1 -sun/awt/X11/XMenuBarPeer -java/awt/peer/MenuBarPeer -java/awt/peer/MenuComponentPeer -sun/awt/X11/XBaseMenuWindow -sun/awt/X11/XMenuPeer -java/awt/peer/MenuPeer -java/awt/peer/MenuItemPeer -sun/awt/X11/XMenuItemPeer -java/awt/MenuShortcut -sun/awt/X11/XMenuWindow -sun/awt/X11/XMenuBarPeer$1 -sun/awt/X11/XMenuItemPeer$TextMetrics -sun/awt/AppContext$3 -sun/awt/MostRecentThreadAppContext -sun/awt/X11/XMenuBarPeer$MappingData -sun/awt/X11/XBaseMenuWindow$MappingData -sun/applet/AppletViewer$1 -sun/applet/AppletViewer$1AppletEventListener -sun/applet/AppletListener -sun/applet/AppletEventMulticaster -sun/misc/Queue -sun/misc/QueueElement -sun/applet/AppletEvent -sun/applet/AppletClassLoader$1 -sun/awt/X11/XBaseMenuWindow$3 -java/awt/DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent -sun/awt/CausedFocusEvent -sun/awt/X11/XWindow$1 -java/net/URLClassLoader$4 -sun/applet/AppletClassLoader$2 -javax/swing/JApplet -java/lang/ClassLoader$1 -sun/security/provider/PolicyFile$5 -java/security/PermissionsEnumerator -java/util/Collections$1 -sun/applet/AppletPanel$11 -sun/applet/AppletPanel$8 -sun/applet/AppletPanel$2 -sun/applet/AppletPanel$3 -sun/applet/AppletPanel$6 -javax/swing/BufferStrategyPaintManager$1 -# f3ac8b467e7f8c49 +sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl +sun/reflect/UnsafeStaticFieldAccessorImpl +sun/reflect/annotation/AnnotationType +sun/reflect/generics/repository/AbstractRepository +sun/reflect/generics/repository/ClassRepository +sun/reflect/generics/repository/GenericDeclRepository +sun/reflect/misc/MethodUtil +sun/reflect/misc/MethodUtil$1 +sun/reflect/misc/ReflectUtil +sun/security/action/GetBooleanAction +sun/security/action/GetPropertyAction +sun/security/util/Debug +sun/security/util/ManifestEntryVerifier +sun/swing/DefaultLookup +sun/swing/JLightweightFrame +sun/swing/MenuItemLayoutHelper +sun/swing/StringUIClientPropertyKey +sun/swing/SwingAccessor +sun/swing/SwingAccessor$JTextComponentAccessor +sun/swing/SwingLazyValue +sun/swing/SwingLazyValue$1 +sun/swing/SwingUtilities2 +sun/swing/SwingUtilities2$2 +sun/swing/SwingUtilities2$AATextInfo +sun/swing/SwingUtilities2$LSBCacheEntry +sun/swing/UIAction +sun/swing/UIClientPropertyKey +sun/util/CoreResourceBundleControl +sun/util/PreHashedMap +sun/util/ResourceBundleEnumeration +sun/util/calendar/AbstractCalendar +sun/util/calendar/BaseCalendar +sun/util/calendar/BaseCalendar$Date +sun/util/calendar/CalendarDate +sun/util/calendar/CalendarSystem +sun/util/calendar/CalendarUtils +sun/util/calendar/Gregorian +sun/util/calendar/Gregorian$Date +sun/util/calendar/ZoneInfo +sun/util/calendar/ZoneInfoFile +sun/util/calendar/ZoneInfoFile$1 +sun/util/calendar/ZoneInfoFile$Checksum +sun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule +sun/util/locale/BaseLocale +sun/util/locale/BaseLocale$Cache +sun/util/locale/BaseLocale$Key +sun/util/locale/LocaleObjectCache +sun/util/locale/LocaleObjectCache$CacheEntry +sun/util/locale/LocaleUtils +sun/util/locale/provider/AuxLocaleProviderAdapter +sun/util/locale/provider/AuxLocaleProviderAdapter$NullProvider +sun/util/locale/provider/JRELocaleProviderAdapter +sun/util/locale/provider/JRELocaleProviderAdapter$1 +sun/util/locale/provider/LocaleDataMetaInfo +sun/util/locale/provider/LocaleProviderAdapter +sun/util/locale/provider/LocaleProviderAdapter$1 +sun/util/locale/provider/LocaleProviderAdapter$Type +sun/util/locale/provider/LocaleResources +sun/util/locale/provider/LocaleResources$ResourceReference +sun/util/locale/provider/LocaleServiceProviderPool +sun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter +sun/util/locale/provider/ResourceBundleBasedAdapter +sun/util/locale/provider/SPILocaleProviderAdapter +sun/util/locale/provider/SPILocaleProviderAdapter$1 +sun/util/locale/provider/TimeZoneNameProviderImpl +sun/util/locale/provider/TimeZoneNameUtility$TimeZoneNameGetter +sun/util/logging/LoggingProxy +sun/util/logging/LoggingSupport +sun/util/logging/LoggingSupport$1 +sun/util/logging/LoggingSupport$2 +sun/util/logging/PlatformLogger +sun/util/logging/PlatformLogger$1 +sun/util/logging/PlatformLogger$DefaultLoggerProxy +sun/util/logging/PlatformLogger$JavaLoggerProxy +sun/util/logging/PlatformLogger$Level +sun/util/logging/PlatformLogger$LoggerProxy +sun/util/logging/resources/logging +sun/util/resources/LocaleData +sun/util/resources/LocaleData$1 +sun/util/resources/LocaleData$LocaleDataResourceBundleControl +sun/util/resources/OpenListResourceBundle +sun/util/resources/TimeZoneNames +sun/util/resources/TimeZoneNamesBundle +sun/util/resources/en/TimeZoneNames_en +# 32aa76348b93579f
--- a/make/tools/sharing/classlist.solaris Thu Nov 14 23:32:31 2013 -0800 +++ b/make/tools/sharing/classlist.solaris Fri Nov 15 07:14:23 2013 -0800 @@ -1,2419 +1,2644 @@ -java/lang/Object -java/lang/String +com/sun/java/swing/SwingUtilities3 +com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI +com/sun/swing/internal/plaf/basic/resources/basic +com/sun/swing/internal/plaf/metal/resources/metal +java/applet/Applet +java/awt/AWTEvent +java/awt/AWTEvent$1 +java/awt/AWTEventMulticaster +java/awt/AWTKeyStroke +java/awt/AWTKeyStroke$1 +java/awt/ActiveEvent +java/awt/Adjustable +java/awt/AlphaComposite +java/awt/BasicStroke +java/awt/BorderLayout +java/awt/BufferCapabilities +java/awt/Canvas +java/awt/CardLayout +java/awt/CardLayout$Card +java/awt/Color +java/awt/Component +java/awt/Component$1 +java/awt/Component$3 +java/awt/Component$AWTTreeLock +java/awt/Component$AccessibleAWTComponent +java/awt/Component$BaselineResizeBehavior +java/awt/Component$BltBufferStrategy +java/awt/Component$BltSubRegionBufferStrategy +java/awt/Component$DummyRequestFocusController +java/awt/Component$FlipBufferStrategy +java/awt/ComponentOrientation +java/awt/Composite +java/awt/Conditional +java/awt/Container +java/awt/Container$1 +java/awt/Container$AccessibleAWTContainer +java/awt/ContainerOrderFocusTraversalPolicy +java/awt/Cursor +java/awt/Cursor$1 +java/awt/DefaultFocusTraversalPolicy +java/awt/DefaultKeyboardFocusManager +java/awt/DefaultKeyboardFocusManager$1 +java/awt/DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent +java/awt/DefaultKeyboardFocusManager$TypeAheadMarker +java/awt/Dialog +java/awt/Dialog$ModalExclusionType +java/awt/Dialog$ModalityType +java/awt/Dimension +java/awt/Event +java/awt/EventDispatchThread +java/awt/EventDispatchThread$1 +java/awt/EventDispatchThread$HierarchyEventFilter +java/awt/EventFilter +java/awt/EventFilter$FilterAction +java/awt/EventQueue +java/awt/EventQueue$1 +java/awt/EventQueue$1AWTInvocationLock +java/awt/EventQueue$2 +java/awt/EventQueue$3 +java/awt/EventQueue$4 +java/awt/EventQueue$5 +java/awt/FlowLayout +java/awt/FocusTraversalPolicy +java/awt/Font +java/awt/Font$FontAccessImpl +java/awt/FontFormatException +java/awt/FontMetrics +java/awt/Frame +java/awt/Frame$1 +java/awt/Graphics +java/awt/Graphics2D +java/awt/GraphicsCallback +java/awt/GraphicsCallback$PaintCallback +java/awt/GraphicsConfiguration +java/awt/GraphicsDevice +java/awt/GraphicsEnvironment +java/awt/GraphicsEnvironment$1 +java/awt/GridLayout +java/awt/Image +java/awt/Image$1 +java/awt/ImageCapabilities +java/awt/ImageMediaEntry +java/awt/Insets +java/awt/ItemSelectable +java/awt/KeyEventDispatcher +java/awt/KeyEventPostProcessor +java/awt/KeyboardFocusManager +java/awt/KeyboardFocusManager$1 +java/awt/KeyboardFocusManager$3 +java/awt/KeyboardFocusManager$HeavyweightFocusRequest +java/awt/KeyboardFocusManager$LightweightFocusRequest +java/awt/Label +java/awt/LayoutManager +java/awt/LayoutManager2 +java/awt/LightweightDispatcher +java/awt/LightweightDispatcher$2 +java/awt/MediaEntry +java/awt/MediaTracker +java/awt/MenuBar +java/awt/MenuComponent +java/awt/MenuContainer +java/awt/ModalEventFilter +java/awt/Paint +java/awt/Panel +java/awt/Point +java/awt/PrintGraphics +java/awt/Queue +java/awt/Rectangle +java/awt/RenderingHints +java/awt/RenderingHints$Key +java/awt/SentEvent +java/awt/SequencedEvent +java/awt/SequencedEvent$1 +java/awt/Shape +java/awt/SplashScreen +java/awt/Stroke +java/awt/SystemColor +java/awt/Toolkit +java/awt/Toolkit$1 +java/awt/Toolkit$2 +java/awt/Toolkit$3 +java/awt/Toolkit$4 +java/awt/Toolkit$5 +java/awt/Toolkit$DesktopPropertyChangeSupport +java/awt/Toolkit$DesktopPropertyChangeSupport$1 +java/awt/Toolkit$SelectiveAWTEventListener +java/awt/Toolkit$ToolkitEventMulticaster +java/awt/Transparency +java/awt/TrayIcon +java/awt/VKCollection +java/awt/Window +java/awt/Window$1 +java/awt/Window$1DisposeAction +java/awt/Window$Type +java/awt/Window$WindowDisposerRecord +java/awt/color/ColorSpace +java/awt/color/ICC_ColorSpace +java/awt/color/ICC_Profile +java/awt/color/ICC_Profile$1 +java/awt/color/ICC_ProfileRGB +java/awt/datatransfer/Clipboard +java/awt/datatransfer/ClipboardOwner +java/awt/datatransfer/FlavorMap +java/awt/datatransfer/FlavorTable +java/awt/datatransfer/SystemFlavorMap +java/awt/datatransfer/Transferable +java/awt/dnd/DropTarget +java/awt/dnd/DropTargetContext +java/awt/dnd/DropTargetListener +java/awt/dnd/peer/DragSourceContextPeer +java/awt/dnd/peer/DropTargetContextPeer +java/awt/dnd/peer/DropTargetPeer +java/awt/event/AWTEventListener +java/awt/event/AWTEventListenerProxy +java/awt/event/ActionEvent +java/awt/event/ActionListener +java/awt/event/AdjustmentEvent +java/awt/event/AdjustmentListener +java/awt/event/ComponentAdapter +java/awt/event/ComponentEvent +java/awt/event/ComponentListener +java/awt/event/ContainerEvent +java/awt/event/ContainerListener +java/awt/event/FocusAdapter +java/awt/event/FocusEvent +java/awt/event/FocusListener +java/awt/event/HierarchyBoundsListener +java/awt/event/HierarchyListener +java/awt/event/InputEvent +java/awt/event/InputEvent$1 +java/awt/event/InputMethodEvent +java/awt/event/InputMethodListener +java/awt/event/InvocationEvent +java/awt/event/InvocationEvent$1 +java/awt/event/ItemEvent +java/awt/event/ItemListener +java/awt/event/KeyAdapter +java/awt/event/KeyEvent +java/awt/event/KeyEvent$1 +java/awt/event/KeyListener +java/awt/event/MouseAdapter +java/awt/event/MouseEvent +java/awt/event/MouseListener +java/awt/event/MouseMotionAdapter +java/awt/event/MouseMotionListener +java/awt/event/MouseWheelListener +java/awt/event/NativeLibLoader +java/awt/event/NativeLibLoader$1 +java/awt/event/PaintEvent +java/awt/event/TextListener +java/awt/event/WindowAdapter +java/awt/event/WindowEvent +java/awt/event/WindowFocusListener +java/awt/event/WindowListener +java/awt/event/WindowStateListener +java/awt/font/FontRenderContext +java/awt/font/GlyphVector +java/awt/font/LineMetrics +java/awt/font/TextAttribute +java/awt/geom/AffineTransform +java/awt/geom/Dimension2D +java/awt/geom/GeneralPath +java/awt/geom/Path2D +java/awt/geom/Path2D$Float +java/awt/geom/Path2D$Float$CopyIterator +java/awt/geom/Path2D$Iterator +java/awt/geom/PathIterator +java/awt/geom/Point2D +java/awt/geom/Point2D$Float +java/awt/geom/RectIterator +java/awt/geom/Rectangle2D +java/awt/geom/Rectangle2D$Float +java/awt/geom/RectangularShape +java/awt/im/InputContext +java/awt/im/InputMethodRequests +java/awt/im/spi/InputMethod +java/awt/im/spi/InputMethodContext +java/awt/im/spi/InputMethodDescriptor +java/awt/image/BufferStrategy +java/awt/image/BufferedImage +java/awt/image/BufferedImage$1 +java/awt/image/ColorModel +java/awt/image/ColorModel$1 +java/awt/image/ComponentSampleModel +java/awt/image/DataBuffer +java/awt/image/DataBuffer$1 +java/awt/image/DataBufferByte +java/awt/image/DataBufferInt +java/awt/image/DirectColorModel +java/awt/image/FilteredImageSource +java/awt/image/ImageConsumer +java/awt/image/ImageFilter +java/awt/image/ImageObserver +java/awt/image/ImageProducer +java/awt/image/IndexColorModel +java/awt/image/PackedColorModel +java/awt/image/PixelInterleavedSampleModel +java/awt/image/RGBImageFilter +java/awt/image/Raster +java/awt/image/RenderedImage +java/awt/image/SampleModel +java/awt/image/SinglePixelPackedSampleModel +java/awt/image/VolatileImage +java/awt/image/WritableRaster +java/awt/image/WritableRenderedImage +java/awt/peer/CanvasPeer +java/awt/peer/ComponentPeer +java/awt/peer/ContainerPeer +java/awt/peer/FramePeer +java/awt/peer/KeyboardFocusManagerPeer +java/awt/peer/LabelPeer +java/awt/peer/LightweightPeer +java/awt/peer/PanelPeer +java/awt/peer/SystemTrayPeer +java/awt/peer/WindowPeer +java/awt/print/PrinterGraphics +java/beans/ChangeListenerMap +java/beans/PropertyChangeEvent +java/beans/PropertyChangeListener +java/beans/PropertyChangeListenerProxy +java/beans/PropertyChangeSupport +java/beans/PropertyChangeSupport$PropertyChangeListenerMap +java/beans/VetoableChangeListener +java/io/Bits +java/io/BufferedInputStream +java/io/BufferedOutputStream +java/io/BufferedReader +java/io/BufferedWriter +java/io/ByteArrayInputStream +java/io/ByteArrayOutputStream +java/io/Closeable +java/io/DataInput +java/io/DataInputStream +java/io/DataOutput +java/io/DataOutputStream +java/io/DefaultFileSystem +java/io/EOFException +java/io/ExpiringCache +java/io/ExpiringCache$1 +java/io/ExpiringCache$Entry +java/io/Externalizable +java/io/File +java/io/File$PathStatus +java/io/FileDescriptor +java/io/FileDescriptor$1 +java/io/FileInputStream +java/io/FileInputStream$1 +java/io/FileNotFoundException +java/io/FileOutputStream +java/io/FileOutputStream$1 +java/io/FilePermission +java/io/FilePermission$1 +java/io/FilePermissionCollection +java/io/FileReader +java/io/FileSystem +java/io/FileWriter +java/io/FilenameFilter +java/io/FilterInputStream +java/io/FilterOutputStream +java/io/FilterReader +java/io/Flushable +java/io/IOException +java/io/InputStream +java/io/InputStreamReader +java/io/InterruptedIOException +java/io/NotSerializableException +java/io/ObjectInput +java/io/ObjectInputStream +java/io/ObjectInputStream$BlockDataInputStream +java/io/ObjectInputStream$GetField +java/io/ObjectInputStream$GetFieldImpl +java/io/ObjectInputStream$HandleTable +java/io/ObjectInputStream$HandleTable$HandleList +java/io/ObjectInputStream$PeekInputStream +java/io/ObjectInputStream$ValidationList +java/io/ObjectOutput +java/io/ObjectOutputStream +java/io/ObjectOutputStream$BlockDataOutputStream +java/io/ObjectOutputStream$HandleTable +java/io/ObjectOutputStream$ReplaceTable +java/io/ObjectStreamClass +java/io/ObjectStreamClass$1 +java/io/ObjectStreamClass$2 +java/io/ObjectStreamClass$3 +java/io/ObjectStreamClass$4 +java/io/ObjectStreamClass$5 +java/io/ObjectStreamClass$Caches +java/io/ObjectStreamClass$ClassDataSlot +java/io/ObjectStreamClass$EntryFuture +java/io/ObjectStreamClass$ExceptionInfo +java/io/ObjectStreamClass$FieldReflector +java/io/ObjectStreamClass$FieldReflectorKey +java/io/ObjectStreamClass$MemberSignature +java/io/ObjectStreamClass$WeakClassKey +java/io/ObjectStreamConstants +java/io/ObjectStreamException +java/io/ObjectStreamField +java/io/OutputStream +java/io/OutputStreamWriter +java/io/PrintStream +java/io/PushbackInputStream +java/io/RandomAccessFile +java/io/RandomAccessFile$1 +java/io/Reader +java/io/SerialCallbackContext java/io/Serializable -java/lang/Comparable -java/lang/CharSequence -java/lang/Class -java/lang/reflect/GenericDeclaration -java/lang/reflect/Type -java/lang/reflect/AnnotatedElement -java/lang/Cloneable -java/lang/ClassLoader -java/lang/System -java/lang/Throwable -java/lang/Error -java/lang/ThreadDeath -java/lang/Exception -java/lang/RuntimeException -java/security/ProtectionDomain -java/security/AccessControlContext -java/lang/ClassNotFoundException -java/lang/NoClassDefFoundError -java/lang/LinkageError -java/lang/ClassCastException -java/lang/ArrayStoreException -java/lang/VirtualMachineError -java/lang/OutOfMemoryError -java/lang/StackOverflowError -java/lang/IllegalMonitorStateException -java/lang/ref/Reference -java/lang/ref/SoftReference -java/lang/ref/WeakReference -java/lang/ref/FinalReference -java/lang/ref/PhantomReference -java/lang/ref/Finalizer -java/lang/Thread -java/lang/Runnable -java/lang/ThreadGroup -java/lang/Thread$UncaughtExceptionHandler -java/util/Properties -java/util/Hashtable -java/util/Map -java/util/Dictionary -java/lang/reflect/AccessibleObject -java/lang/reflect/Field -java/lang/reflect/Member -java/lang/reflect/Method -java/lang/reflect/Constructor -sun/reflect/MagicAccessorImpl -sun/reflect/MethodAccessorImpl -sun/reflect/MethodAccessor -sun/reflect/ConstructorAccessorImpl -sun/reflect/ConstructorAccessor -sun/reflect/DelegatingClassLoader -sun/reflect/ConstantPool -sun/reflect/UnsafeStaticFieldAccessorImpl -sun/reflect/UnsafeFieldAccessorImpl -sun/reflect/FieldAccessorImpl -sun/reflect/FieldAccessor -java/util/Vector -java/util/List -java/util/Collection -java/lang/Iterable -java/util/RandomAccess -java/util/AbstractList -java/util/AbstractCollection -java/lang/StringBuffer +java/io/StreamTokenizer +java/io/StringReader +java/io/StringWriter +java/io/UnixFileSystem +java/io/UnsupportedEncodingException +java/io/Writer java/lang/AbstractStringBuilder java/lang/Appendable -java/lang/StackTraceElement -java/nio/Buffer +java/lang/ApplicationShutdownHooks +java/lang/ApplicationShutdownHooks$1 +java/lang/ArithmeticException +java/lang/ArrayIndexOutOfBoundsException +java/lang/ArrayStoreException +java/lang/AssertionError +java/lang/AutoCloseable java/lang/Boolean -java/lang/Character -java/lang/Float -java/lang/Number -java/lang/Double +java/lang/BootstrapMethodError java/lang/Byte -java/lang/Short +java/lang/CharSequence +java/lang/Character +java/lang/Character$CharacterCache +java/lang/CharacterData +java/lang/CharacterData00 +java/lang/CharacterDataLatin1 +java/lang/Class +java/lang/Class$1 +java/lang/Class$3 +java/lang/Class$4 +java/lang/Class$AnnotationData +java/lang/Class$Atomic +java/lang/Class$ReflectionData +java/lang/ClassCastException +java/lang/ClassFormatError +java/lang/ClassLoader +java/lang/ClassLoader$2 +java/lang/ClassLoader$3 +java/lang/ClassLoader$NativeLibrary +java/lang/ClassLoader$ParallelLoaders +java/lang/ClassLoaderHelper +java/lang/ClassNotFoundException +java/lang/ClassValue$ClassValueMap +java/lang/CloneNotSupportedException +java/lang/Cloneable +java/lang/Comparable +java/lang/Compiler +java/lang/Compiler$1 +java/lang/Double +java/lang/Enum +java/lang/Error +java/lang/Exception +java/lang/ExceptionInInitializerError +java/lang/Float +java/lang/IllegalAccessError +java/lang/IllegalAccessException +java/lang/IllegalArgumentException +java/lang/IllegalMonitorStateException +java/lang/IllegalStateException +java/lang/IncompatibleClassChangeError +java/lang/IndexOutOfBoundsException +java/lang/InheritableThreadLocal +java/lang/InstantiationException java/lang/Integer +java/lang/Integer$IntegerCache +java/lang/InternalError +java/lang/InterruptedException +java/lang/Iterable +java/lang/LinkageError java/lang/Long +java/lang/Long$LongCache +java/lang/Math +java/lang/NoClassDefFoundError +java/lang/NoSuchFieldException +java/lang/NoSuchMethodError +java/lang/NoSuchMethodException java/lang/NullPointerException -java/lang/ArithmeticException -java/io/ObjectStreamField -java/lang/String$CaseInsensitiveComparator -java/util/Comparator +java/lang/Number +java/lang/NumberFormatException +java/lang/Object +java/lang/OutOfMemoryError +java/lang/Package +java/lang/Process +java/lang/ProcessBuilder +java/lang/ProcessEnvironment +java/lang/ProcessEnvironment$ExternalData +java/lang/ProcessEnvironment$StringEnvironment +java/lang/ProcessEnvironment$Value +java/lang/ProcessEnvironment$Variable +java/lang/ProcessImpl +java/lang/Readable +java/lang/ReflectiveOperationException +java/lang/Runnable +java/lang/Runtime +java/lang/RuntimeException java/lang/RuntimePermission -java/security/BasicPermission -java/security/Permission -java/security/Guard -sun/misc/SoftCache -java/util/AbstractMap -java/lang/ref/ReferenceQueue -java/lang/ref/ReferenceQueue$Null -java/lang/ref/ReferenceQueue$Lock -java/util/HashMap +java/lang/SecurityException +java/lang/SecurityManager +java/lang/Short +java/lang/Short$ShortCache +java/lang/Shutdown +java/lang/Shutdown$Lock +java/lang/StackOverflowError +java/lang/StackTraceElement +java/lang/StrictMath +java/lang/String +java/lang/String$CaseInsensitiveComparator +java/lang/StringBuffer +java/lang/StringBuilder +java/lang/StringCoding +java/lang/StringCoding$StringDecoder +java/lang/StringCoding$StringEncoder +java/lang/StringIndexOutOfBoundsException +java/lang/System +java/lang/System$2 +java/lang/SystemClassLoaderAction +java/lang/Terminator +java/lang/Terminator$1 +java/lang/Thread +java/lang/Thread$State +java/lang/Thread$UncaughtExceptionHandler +java/lang/ThreadDeath +java/lang/ThreadGroup +java/lang/ThreadLocal +java/lang/ThreadLocal$ThreadLocalMap +java/lang/ThreadLocal$ThreadLocalMap$Entry +java/lang/Throwable +java/lang/Throwable$PrintStreamOrWriter +java/lang/Throwable$WrappedPrintStream +java/lang/UNIXProcess +java/lang/UNIXProcess$1 +java/lang/UNIXProcess$2 +java/lang/UNIXProcess$3 +java/lang/UNIXProcess$3$1 +java/lang/UNIXProcess$DeferredCloseInputStream +java/lang/UNIXProcess$LaunchMechanism +java/lang/UnsatisfiedLinkError +java/lang/UnsupportedOperationException +java/lang/VirtualMachineError +java/lang/Void java/lang/annotation/Annotation -java/util/HashMap$Entry -java/util/Map$Entry -java/security/AccessController -java/lang/reflect/ReflectPermission -sun/reflect/ReflectionFactory$GetReflectionFactoryAction -java/security/PrivilegedAction -java/util/Stack -sun/reflect/ReflectionFactory +java/lang/invoke/CallSite +java/lang/invoke/ConstantCallSite +java/lang/invoke/DirectMethodHandle +java/lang/invoke/Invokers +java/lang/invoke/LambdaForm +java/lang/invoke/LambdaForm$NamedFunction +java/lang/invoke/MemberName +java/lang/invoke/MemberName$Factory +java/lang/invoke/MethodHandle +java/lang/invoke/MethodHandleImpl +java/lang/invoke/MethodHandleNatives +java/lang/invoke/MethodHandleStatics +java/lang/invoke/MethodHandleStatics$1 +java/lang/invoke/MethodType +java/lang/invoke/MethodType$ConcurrentWeakInternSet +java/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry +java/lang/invoke/MethodTypeForm +java/lang/invoke/MutableCallSite +java/lang/invoke/VolatileCallSite +java/lang/ref/FinalReference +java/lang/ref/Finalizer +java/lang/ref/Finalizer$FinalizerThread +java/lang/ref/PhantomReference +java/lang/ref/Reference java/lang/ref/Reference$Lock java/lang/ref/Reference$ReferenceHandler -java/lang/ref/Finalizer$FinalizerThread -java/util/Enumeration -java/util/Iterator -java/util/Hashtable$Entry -java/nio/charset/Charset -sun/nio/cs/StandardCharsets -sun/nio/cs/FastCharsetProvider -java/nio/charset/spi/CharsetProvider -sun/nio/cs/StandardCharsets$Aliases -sun/util/PreHashedMap -sun/nio/cs/StandardCharsets$Classes -sun/nio/cs/StandardCharsets$Cache -java/lang/ThreadLocal -java/util/concurrent/atomic/AtomicInteger -sun/misc/Unsafe -java/lang/NoSuchMethodError -java/lang/IncompatibleClassChangeError -sun/reflect/Reflection -java/util/Collections -java/util/Collections$EmptySet -java/util/AbstractSet -java/util/Set -java/util/Collections$EmptyList -java/util/Collections$EmptyMap -java/util/Collections$ReverseComparator -java/util/Collections$SynchronizedMap -java/lang/Class$3 +java/lang/ref/ReferenceQueue +java/lang/ref/ReferenceQueue$Lock +java/lang/ref/ReferenceQueue$Null +java/lang/ref/SoftReference +java/lang/ref/WeakReference +java/lang/reflect/AccessibleObject +java/lang/reflect/AnnotatedElement +java/lang/reflect/Array +java/lang/reflect/Constructor +java/lang/reflect/Executable +java/lang/reflect/Field +java/lang/reflect/GenericDeclaration +java/lang/reflect/InvocationHandler +java/lang/reflect/InvocationTargetException +java/lang/reflect/Member +java/lang/reflect/Method java/lang/reflect/Modifier +java/lang/reflect/Parameter +java/lang/reflect/Proxy +java/lang/reflect/Proxy$KeyFactory +java/lang/reflect/Proxy$ProxyClassFactory java/lang/reflect/ReflectAccess -sun/reflect/LangReflectAccess -java/util/Arrays -java/lang/Math -java/lang/StringBuilder -sun/nio/cs/UTF_8 -sun/nio/cs/Unicode -sun/nio/cs/HistoricallyNamedCharset -java/lang/Class$1 -sun/reflect/ReflectionFactory$1 -sun/reflect/NativeConstructorAccessorImpl -sun/reflect/DelegatingConstructorAccessorImpl -sun/misc/VM -java/lang/StringCoding -java/lang/ThreadLocal$ThreadLocalMap -java/lang/ThreadLocal$ThreadLocalMap$Entry -java/lang/StringCoding$StringDecoder -sun/nio/cs/UTF_8$Decoder -java/nio/charset/CharsetDecoder -java/nio/charset/CodingErrorAction -sun/nio/cs/Surrogate$Generator -sun/nio/cs/Surrogate -java/nio/charset/CoderResult -java/nio/charset/CoderResult$1 -java/nio/charset/CoderResult$Cache -java/nio/charset/CoderResult$2 +java/lang/reflect/ReflectPermission +java/lang/reflect/Type +java/lang/reflect/WeakCache +java/math/BigInteger +java/math/BigInteger$UnsafeHolder +java/math/MutableBigInteger +java/math/RoundingMode +java/net/AbstractPlainDatagramSocketImpl +java/net/AbstractPlainDatagramSocketImpl$1 +java/net/AbstractPlainSocketImpl +java/net/AbstractPlainSocketImpl$1 +java/net/Authenticator +java/net/BindException +java/net/ConnectException +java/net/DatagramPacket +java/net/DatagramPacket$1 +java/net/DatagramSocket +java/net/DatagramSocket$1 +java/net/DatagramSocketImpl +java/net/DefaultDatagramSocketImplFactory +java/net/DefaultInterface +java/net/FileNameMap +java/net/HttpURLConnection +java/net/Inet4Address +java/net/Inet4AddressImpl +java/net/Inet6Address +java/net/Inet6Address$Inet6AddressHolder +java/net/Inet6AddressImpl +java/net/InetAddress +java/net/InetAddress$1 +java/net/InetAddress$2 +java/net/InetAddress$Cache +java/net/InetAddress$Cache$Type +java/net/InetAddress$CacheEntry +java/net/InetAddress$InetAddressHolder +java/net/InetAddressImpl +java/net/InetAddressImplFactory +java/net/InetSocketAddress +java/net/InetSocketAddress$InetSocketAddressHolder +java/net/InterfaceAddress +java/net/JarURLConnection +java/net/MalformedURLException +java/net/MulticastSocket +java/net/NetworkInterface +java/net/NetworkInterface$1 +java/net/NetworkInterface$2 +java/net/NoRouteToHostException +java/net/Parts +java/net/PlainDatagramSocketImpl +java/net/PlainSocketImpl +java/net/Proxy +java/net/Proxy$Type +java/net/ProxySelector +java/net/ServerSocket +java/net/Socket +java/net/SocketAddress +java/net/SocketException +java/net/SocketImpl +java/net/SocketImplFactory +java/net/SocketOptions +java/net/SocksConsts +java/net/SocksSocketImpl +java/net/SocksSocketImpl$3 +java/net/URI +java/net/URI$Parser +java/net/URL +java/net/URLClassLoader +java/net/URLClassLoader$1 +java/net/URLClassLoader$2 +java/net/URLClassLoader$3 +java/net/URLClassLoader$3$1 +java/net/URLClassLoader$7 +java/net/URLConnection +java/net/URLConnection$1 +java/net/URLStreamHandler +java/net/URLStreamHandlerFactory +java/net/UnknownHostException +java/nio/Bits +java/nio/Bits$1 +java/nio/Buffer +java/nio/BufferUnderflowException java/nio/ByteBuffer -java/nio/HeapByteBuffer -java/nio/Bits +java/nio/ByteBufferAsIntBufferB +java/nio/ByteBufferAsShortBufferB java/nio/ByteOrder java/nio/CharBuffer -java/lang/Readable +java/nio/DirectByteBuffer +java/nio/DirectByteBuffer$Deallocator +java/nio/DirectByteBufferR +java/nio/DirectLongBufferU +java/nio/HeapByteBuffer java/nio/HeapCharBuffer -sun/misc/Version -java/io/FileInputStream -java/io/InputStream -java/io/Closeable -java/io/FileDescriptor -java/io/FileOutputStream -java/io/OutputStream -java/io/Flushable -java/io/BufferedInputStream -java/io/FilterInputStream -java/util/concurrent/atomic/AtomicReferenceFieldUpdater -java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl -sun/reflect/misc/ReflectUtil -java/io/PrintStream -java/io/FilterOutputStream -java/io/BufferedOutputStream -java/io/OutputStreamWriter -java/io/Writer -sun/nio/cs/StreamEncoder -sun/security/action/GetPropertyAction -sun/nio/cs/UTF_8$Encoder +java/nio/IntBuffer +java/nio/LongBuffer +java/nio/MappedByteBuffer +java/nio/ShortBuffer +java/nio/channels/ByteChannel +java/nio/channels/Channel +java/nio/channels/FileChannel +java/nio/channels/FileChannel$MapMode +java/nio/channels/GatheringByteChannel +java/nio/channels/InterruptibleChannel +java/nio/channels/NetworkChannel +java/nio/channels/ReadableByteChannel +java/nio/channels/ScatteringByteChannel +java/nio/channels/SeekableByteChannel +java/nio/channels/SelectableChannel +java/nio/channels/SocketChannel +java/nio/channels/WritableByteChannel +java/nio/channels/spi/AbstractInterruptibleChannel +java/nio/channels/spi/AbstractInterruptibleChannel$1 +java/nio/channels/spi/AbstractSelectableChannel +java/nio/charset/Charset +java/nio/charset/Charset$ExtendedProviderHolder +java/nio/charset/Charset$ExtendedProviderHolder$1 +java/nio/charset/CharsetDecoder java/nio/charset/CharsetEncoder -sun/nio/cs/Surrogate$Parser -java/io/BufferedWriter -java/lang/Runtime -java/io/File -java/io/FileSystem -java/io/UnixFileSystem -java/io/ExpiringCache -java/io/ExpiringCache$1 +java/nio/charset/CoderResult +java/nio/charset/CoderResult$1 +java/nio/charset/CoderResult$2 +java/nio/charset/CoderResult$Cache +java/nio/charset/CodingErrorAction +java/nio/charset/StandardCharsets +java/nio/charset/spi/CharsetProvider +java/nio/file/Path +java/nio/file/Watchable +java/nio/file/attribute/FileAttribute +java/security/AccessControlContext +java/security/AccessControlException +java/security/AccessController +java/security/AlgorithmParameters +java/security/AlgorithmParametersSpi +java/security/AllPermission +java/security/AllPermissionCollection +java/security/AuthProvider +java/security/BasicPermission +java/security/BasicPermissionCollection +java/security/CodeSigner +java/security/CodeSource +java/security/DigestException +java/security/GeneralSecurityException +java/security/Guard +java/security/InvalidAlgorithmParameterException +java/security/InvalidKeyException +java/security/InvalidParameterException +java/security/Key +java/security/KeyException +java/security/KeyFactory +java/security/KeyFactorySpi +java/security/MessageDigest +java/security/MessageDigest$Delegate +java/security/MessageDigestSpi +java/security/NoSuchAlgorithmException +java/security/Permission +java/security/PermissionCollection +java/security/Permissions +java/security/Principal +java/security/PrivateKey +java/security/PrivilegedAction +java/security/PrivilegedActionException +java/security/PrivilegedExceptionAction +java/security/ProtectionDomain +java/security/ProtectionDomain$1 +java/security/ProtectionDomain$3 +java/security/ProtectionDomain$Key +java/security/Provider +java/security/Provider$EngineDescription +java/security/Provider$Service +java/security/Provider$ServiceKey +java/security/Provider$UString +java/security/ProviderException +java/security/PublicKey +java/security/SecureClassLoader +java/security/SecureRandomSpi +java/security/Security +java/security/Security$1 +java/security/SecurityPermission +java/security/Signature +java/security/Signature$Delegate +java/security/SignatureException +java/security/SignatureSpi +java/security/UnresolvedPermission +java/security/cert/CertPath +java/security/cert/Certificate +java/security/cert/CertificateFactory +java/security/cert/CertificateFactorySpi +java/security/cert/Extension +java/security/cert/X509Certificate +java/security/cert/X509Extension +java/security/interfaces/DSAKey +java/security/interfaces/DSAParams +java/security/interfaces/DSAPrivateKey +java/security/interfaces/DSAPublicKey +java/security/interfaces/RSAKey +java/security/interfaces/RSAPrivateCrtKey +java/security/interfaces/RSAPrivateKey +java/security/interfaces/RSAPublicKey +java/security/spec/AlgorithmParameterSpec +java/security/spec/DSAParameterSpec +java/security/spec/DSAPublicKeySpec +java/security/spec/EncodedKeySpec +java/security/spec/InvalidKeySpecException +java/security/spec/KeySpec +java/security/spec/PKCS8EncodedKeySpec +java/security/spec/RSAPrivateCrtKeySpec +java/security/spec/RSAPrivateKeySpec +java/security/spec/RSAPublicKeySpec +java/security/spec/X509EncodedKeySpec +java/text/AttributedCharacterIterator$Attribute +java/text/CharacterIterator +java/text/Collator +java/text/DateFormat +java/text/DateFormat$Field +java/text/DateFormatSymbols +java/text/DecimalFormat +java/text/DecimalFormatSymbols +java/text/DigitList +java/text/DontCareFieldPosition +java/text/DontCareFieldPosition$1 +java/text/EntryPair +java/text/FieldPosition +java/text/Format +java/text/Format$Field +java/text/Format$FieldDelegate +java/text/MergeCollation +java/text/MessageFormat +java/text/MessageFormat$Field +java/text/Normalizer +java/text/Normalizer$Form +java/text/NumberFormat +java/text/NumberFormat$Field +java/text/ParseException +java/text/PatternEntry +java/text/PatternEntry$Parser +java/text/RBCollationTables +java/text/RBCollationTables$BuildAPI +java/text/RBTableBuilder +java/text/RuleBasedCollator +java/text/SimpleDateFormat +java/text/spi/BreakIteratorProvider +java/text/spi/CollatorProvider +java/text/spi/DateFormatProvider +java/text/spi/DateFormatSymbolsProvider +java/text/spi/DecimalFormatSymbolsProvider +java/text/spi/NumberFormatProvider +java/util/AbstractCollection +java/util/AbstractList +java/util/AbstractList$Itr +java/util/AbstractList$ListItr +java/util/AbstractMap +java/util/AbstractQueue +java/util/AbstractSequentialList +java/util/AbstractSet +java/util/ArrayDeque +java/util/ArrayList +java/util/ArrayList$1 +java/util/ArrayList$Itr +java/util/ArrayList$ListItr +java/util/ArrayList$SubList +java/util/ArrayList$SubList$1 +java/util/Arrays +java/util/Arrays$ArrayList +java/util/Arrays$LegacyMergeSort +java/util/Base64 +java/util/Base64$Decoder +java/util/Base64$Encoder +java/util/BitSet +java/util/Calendar +java/util/Calendar$Builder +java/util/Collection +java/util/Collections +java/util/Collections$3 +java/util/Collections$EmptyEnumeration +java/util/Collections$EmptyIterator +java/util/Collections$EmptyList +java/util/Collections$EmptyMap +java/util/Collections$EmptySet +java/util/Collections$SetFromMap +java/util/Collections$SynchronizedCollection +java/util/Collections$SynchronizedMap +java/util/Collections$SynchronizedSet +java/util/Collections$SynchronizedSortedSet +java/util/Collections$UnmodifiableCollection +java/util/Collections$UnmodifiableCollection$1 +java/util/Collections$UnmodifiableList +java/util/Collections$UnmodifiableList$1 +java/util/Collections$UnmodifiableMap +java/util/Collections$UnmodifiableRandomAccessList +java/util/Collections$UnmodifiableSet +java/util/ComparableTimSort +java/util/Comparator +java/util/Currency +java/util/Currency$1 +java/util/Currency$CurrencyNameGetter +java/util/Date +java/util/Deque +java/util/Dictionary +java/util/Enumeration +java/util/EventListener +java/util/EventListenerProxy +java/util/EventObject +java/util/GregorianCalendar +java/util/HashMap +java/util/HashMap$EntryIterator +java/util/HashMap$EntrySet +java/util/HashMap$HashIterator +java/util/HashMap$KeyIterator +java/util/HashMap$KeySet +java/util/HashMap$Node +java/util/HashMap$TreeNode +java/util/HashMap$ValueIterator +java/util/HashMap$Values +java/util/HashSet +java/util/Hashtable +java/util/Hashtable$Entry +java/util/Hashtable$EntrySet +java/util/Hashtable$Enumerator +java/util/Hashtable$ValueCollection +java/util/IdentityHashMap +java/util/IdentityHashMap$IdentityHashMapIterator +java/util/IdentityHashMap$KeyIterator +java/util/IdentityHashMap$KeySet +java/util/IdentityHashMap$ValueIterator +java/util/IdentityHashMap$Values +java/util/Iterator java/util/LinkedHashMap java/util/LinkedHashMap$Entry -sun/misc/SharedSecrets -java/lang/ClassLoader$3 -java/lang/StringCoding$StringEncoder -java/io/ExpiringCache$Entry -java/lang/ClassLoader$NativeLibrary -java/lang/Terminator -java/lang/Terminator$1 -sun/misc/SignalHandler -sun/misc/Signal -sun/misc/NativeSignalHandler -java/io/Console -java/io/Console$1 -sun/misc/JavaIOAccess -java/lang/Shutdown -java/util/ArrayList -java/lang/Shutdown$Lock -java/lang/ApplicationShutdownHooks -java/util/IdentityHashMap -sun/misc/OSEnvironment -java/lang/System$2 -sun/misc/JavaLangAccess -java/lang/Compiler -java/lang/Compiler$1 -sun/misc/Launcher -sun/misc/Launcher$Factory -java/net/URLStreamHandlerFactory -sun/misc/Launcher$ExtClassLoader -java/net/URLClassLoader -java/security/SecureClassLoader -sun/security/util/Debug -java/net/URLClassLoader$7 -sun/misc/JavaNetAccess -java/util/StringTokenizer -sun/misc/Launcher$ExtClassLoader$1 -java/security/PrivilegedExceptionAction -sun/misc/MetaIndex -java/io/BufferedReader -java/io/Reader -java/io/FileReader -java/io/InputStreamReader -sun/nio/cs/StreamDecoder -java/lang/reflect/Array -sun/net/www/ParseUtil -java/util/BitSet -java/io/ObjectStreamClass -java/net/URL +java/util/LinkedHashMap$LinkedEntryIterator +java/util/LinkedHashMap$LinkedEntrySet +java/util/LinkedHashMap$LinkedHashIterator +java/util/LinkedHashMap$LinkedKeyIterator +java/util/LinkedHashMap$LinkedKeySet +java/util/LinkedList +java/util/LinkedList$ListItr +java/util/LinkedList$Node +java/util/List +java/util/ListIterator +java/util/ListResourceBundle java/util/Locale -java/util/concurrent/ConcurrentHashMap -java/util/concurrent/ConcurrentMap -java/util/concurrent/ConcurrentHashMap$Segment -java/util/concurrent/locks/ReentrantLock -java/util/concurrent/locks/Lock -java/util/concurrent/locks/ReentrantLock$NonfairSync -java/util/concurrent/locks/ReentrantLock$Sync -java/util/concurrent/locks/AbstractQueuedSynchronizer -java/util/concurrent/locks/AbstractOwnableSynchronizer -java/util/concurrent/locks/AbstractQueuedSynchronizer$Node -java/util/concurrent/ConcurrentHashMap$HashEntry -java/lang/CharacterDataLatin1 -java/net/Parts -sun/net/www/protocol/file/Handler -java/net/URLStreamHandler -java/util/HashSet -sun/misc/URLClassPath -sun/net/www/protocol/jar/Handler -sun/misc/Launcher$AppClassLoader -sun/misc/Launcher$AppClassLoader$1 -java/lang/SystemClassLoaderAction -java/net/URLClassLoader$1 -sun/misc/URLClassPath$3 -sun/misc/URLClassPath$JarLoader -sun/misc/URLClassPath$Loader -java/security/PrivilegedActionException -sun/misc/URLClassPath$FileLoader -sun/misc/URLClassPath$FileLoader$1 -sun/misc/Resource -sun/nio/ByteBuffered -java/security/CodeSource -java/security/Permissions -java/security/PermissionCollection -sun/net/www/protocol/file/FileURLConnection -sun/net/www/URLConnection -java/net/URLConnection -java/net/UnknownContentHandler -java/net/ContentHandler -sun/net/www/MessageHeader -java/io/FilePermission -java/io/FilePermission$1 -sun/security/provider/PolicyFile -java/security/Policy -java/security/Policy$UnsupportedEmptyCollection -java/io/FilePermissionCollection -java/security/AllPermission -java/security/UnresolvedPermission -java/security/BasicPermissionCollection -java/security/Principal -java/security/cert/Certificate -java/util/AbstractList$Itr -java/util/IdentityHashMap$KeySet -java/util/IdentityHashMap$KeyIterator -java/util/IdentityHashMap$IdentityHashMapIterator -java/io/DeleteOnExitHook -java/util/LinkedHashSet -java/util/HashMap$KeySet -java/util/LinkedHashMap$KeyIterator -java/util/LinkedHashMap$LinkedHashIterator -java/awt/Frame -java/awt/MenuContainer -java/awt/Window -javax/accessibility/Accessible -java/awt/Container -java/awt/Component -java/awt/image/ImageObserver -java/lang/InterruptedException -java/awt/Label -java/util/logging/Logger -java/util/logging/Handler -java/util/logging/Level -java/util/logging/LogManager -java/util/logging/LogManager$1 -java/beans/PropertyChangeSupport -java/util/logging/LogManager$LogNode -java/util/logging/LoggingPermission -java/util/logging/LogManager$Cleaner -java/util/logging/LogManager$RootLogger -java/util/logging/LogManager$2 +java/util/Locale$1 +java/util/Locale$Cache +java/util/Locale$Category +java/util/Locale$LocaleKey +java/util/Map +java/util/Map$Entry +java/util/MissingResourceException +java/util/NavigableMap +java/util/NavigableSet +java/util/Objects +java/util/PriorityQueue +java/util/Properties java/util/Properties$LineReader -java/util/Hashtable$Enumerator -java/beans/PropertyChangeEvent -java/util/EventObject -java/awt/Component$AWTTreeLock -sun/awt/NativeLibLoader -sun/security/action/LoadLibraryAction -java/awt/GraphicsEnvironment -java/awt/GraphicsEnvironment$1 -java/lang/ProcessEnvironment -java/lang/ProcessEnvironment$Variable -java/lang/ProcessEnvironment$ExternalData -java/lang/ProcessEnvironment$Value -java/lang/ProcessEnvironment$StringEnvironment -java/util/Collections$UnmodifiableMap -java/awt/Toolkit -java/awt/Toolkit$3 -sun/util/CoreResourceBundleControl -java/util/ResourceBundle$Control -java/util/Arrays$ArrayList -java/util/Collections$UnmodifiableRandomAccessList -java/util/Collections$UnmodifiableList -java/util/Collections$UnmodifiableCollection +java/util/PropertyResourceBundle +java/util/Queue +java/util/Random +java/util/RandomAccess java/util/ResourceBundle java/util/ResourceBundle$1 +java/util/ResourceBundle$BundleReference +java/util/ResourceBundle$CacheKey +java/util/ResourceBundle$CacheKeyReference +java/util/ResourceBundle$Control +java/util/ResourceBundle$Control$1 +java/util/ResourceBundle$Control$CandidateListCache +java/util/ResourceBundle$LoaderReference java/util/ResourceBundle$RBClassLoader java/util/ResourceBundle$RBClassLoader$1 -java/util/ResourceBundle$CacheKey -java/util/ResourceBundle$LoaderReference -java/util/ResourceBundle$CacheKeyReference java/util/ResourceBundle$SingleFormatControl -sun/awt/resources/awt -java/util/ListResourceBundle -java/awt/Toolkit$1 -java/io/FileNotFoundException -java/io/IOException -java/awt/event/KeyEvent -java/awt/event/InputEvent -java/awt/event/ComponentEvent -java/awt/AWTEvent -java/awt/event/NativeLibLoader +java/util/ServiceLoader +java/util/ServiceLoader$1 +java/util/ServiceLoader$LazyIterator +java/util/Set +java/util/SortedMap +java/util/SortedSet +java/util/Stack +java/util/StringTokenizer +java/util/TimSort +java/util/TimeZone +java/util/TimeZone$1 +java/util/TreeMap +java/util/TreeMap$Entry +java/util/TreeSet +java/util/Vector +java/util/Vector$1 +java/util/Vector$Itr +java/util/Vector$ListItr java/util/WeakHashMap java/util/WeakHashMap$Entry -java/awt/Component$DummyRequestFocusController -sun/awt/RequestFocusController -java/awt/LayoutManager -java/awt/LightweightDispatcher -java/awt/event/AWTEventListener -java/util/EventListener -java/awt/Dimension -java/awt/geom/Dimension2D +java/util/WeakHashMap$KeySet +java/util/concurrent/BlockingQueue +java/util/concurrent/ConcurrentHashMap +java/util/concurrent/ConcurrentHashMap$BaseIterator +java/util/concurrent/ConcurrentHashMap$CollectionView +java/util/concurrent/ConcurrentHashMap$CounterCell +java/util/concurrent/ConcurrentHashMap$EntrySetView +java/util/concurrent/ConcurrentHashMap$ForwardingNode +java/util/concurrent/ConcurrentHashMap$KeyIterator +java/util/concurrent/ConcurrentHashMap$KeySetView +java/util/concurrent/ConcurrentHashMap$Node +java/util/concurrent/ConcurrentHashMap$Segment +java/util/concurrent/ConcurrentHashMap$Traverser +java/util/concurrent/ConcurrentHashMap$ValueIterator +java/util/concurrent/ConcurrentHashMap$ValuesView +java/util/concurrent/ConcurrentMap +java/util/concurrent/ConcurrentNavigableMap +java/util/concurrent/ConcurrentSkipListMap +java/util/concurrent/ConcurrentSkipListMap$EntrySet +java/util/concurrent/ConcurrentSkipListMap$HeadIndex +java/util/concurrent/ConcurrentSkipListMap$Index +java/util/concurrent/ConcurrentSkipListMap$KeySet +java/util/concurrent/ConcurrentSkipListMap$Node +java/util/concurrent/ConcurrentSkipListMap$Values +java/util/concurrent/ConcurrentSkipListSet +java/util/concurrent/CopyOnWriteArrayList +java/util/concurrent/DelayQueue +java/util/concurrent/Delayed +java/util/concurrent/ThreadLocalRandom +java/util/concurrent/TimeUnit +java/util/concurrent/TimeUnit$1 +java/util/concurrent/TimeUnit$2 +java/util/concurrent/TimeUnit$3 +java/util/concurrent/TimeUnit$4 +java/util/concurrent/TimeUnit$5 +java/util/concurrent/TimeUnit$6 +java/util/concurrent/TimeUnit$7 java/util/concurrent/atomic/AtomicBoolean -java/awt/ComponentOrientation -java/awt/Component$2 -java/lang/NoSuchMethodException -sun/awt/AppContext -sun/awt/AppContext$1 -sun/awt/AppContext$2 -sun/awt/MostRecentKeyValue -java/awt/Cursor -sun/awt/X11GraphicsEnvironment -sun/java2d/SunGraphicsEnvironment -sun/java2d/FontSupport -sun/awt/DisplayChangedListener -java/io/FilenameFilter -sun/awt/X11GraphicsEnvironment$1 -sun/awt/SunToolkit -sun/awt/WindowClosingSupport -sun/awt/WindowClosingListener -sun/awt/ComponentFactory -sun/awt/InputMethodSupport +java/util/concurrent/atomic/AtomicInteger +java/util/concurrent/atomic/AtomicLong +java/util/concurrent/atomic/AtomicMarkableReference +java/util/concurrent/atomic/AtomicMarkableReference$Pair +java/util/concurrent/atomic/AtomicReferenceFieldUpdater +java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl +java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1 +java/util/concurrent/locks/AbstractOwnableSynchronizer +java/util/concurrent/locks/AbstractQueuedSynchronizer java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject +java/util/concurrent/locks/AbstractQueuedSynchronizer$Node java/util/concurrent/locks/Condition -sun/awt/AWTAutoShutdown -sun/awt/SunToolkit$6 -java/awt/Dialog$ModalExclusionType -java/lang/Enum -java/awt/Dialog -java/awt/Dialog$ModalityType -java/awt/ModalEventFilter -java/awt/EventFilter -sun/reflect/UnsafeFieldAccessorFactory -sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl -sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl -sun/awt/SunDisplayChanger -sun/java2d/SunGraphicsEnvironment$1 -sun/font/FontManager -sun/font/FileFont -sun/font/PhysicalFont -sun/font/Font2D -sun/font/CompositeFont -java/util/HashMap$Values -java/util/HashMap$ValueIterator -java/util/HashMap$HashIterator -java/awt/Font -java/awt/geom/AffineTransform -sun/font/AttributeValues -sun/font/EAttribute -java/text/AttributedCharacterIterator$Attribute -java/lang/Class$4 -sun/reflect/NativeMethodAccessorImpl -sun/reflect/DelegatingMethodAccessorImpl -java/awt/font/TextAttribute -java/lang/Integer$IntegerCache -sun/font/TrueTypeFont -java/awt/font/FontRenderContext -java/awt/RenderingHints -sun/awt/SunHints -sun/awt/SunHints$Key -java/awt/RenderingHints$Key -sun/awt/SunHints$Value -sun/awt/SunHints$LCDContrastKey -sun/font/Type1Font -java/awt/geom/Point2D$Float -java/awt/geom/Point2D -sun/font/StrikeMetrics -java/awt/geom/Rectangle2D$Float -java/awt/geom/Rectangle2D -java/awt/geom/RectangularShape -java/awt/Shape -java/awt/geom/GeneralPath -java/awt/geom/Path2D$Float -java/awt/geom/Path2D -sun/font/CharToGlyphMapper -sun/font/PhysicalStrike -sun/font/FontStrike -sun/font/GlyphList -sun/font/StrikeCache -sun/java2d/Disposer -sun/java2d/Disposer$1 -sun/font/StrikeCache$1 -sun/awt/motif/MFontConfiguration -sun/awt/FontConfiguration -sun/awt/FontDescriptor -java/io/DataInputStream -java/io/DataInput -java/lang/Short$ShortCache -java/util/HashMap$KeyIterator -sun/font/CompositeFontDescriptor -sun/font/Font2DHandle -sun/font/FontFamily -java/awt/GraphicsDevice -sun/awt/X11GraphicsDevice -sun/awt/X11GraphicsConfig -java/awt/GraphicsConfiguration -java/awt/ImageCapabilities -sun/java2d/x11/X11SurfaceData -sun/java2d/SurfaceData -java/awt/Transparency -sun/java2d/DisposerTarget -sun/java2d/InvalidPipeException -java/lang/IllegalStateException -sun/java2d/NullSurfaceData -sun/java2d/loops/SurfaceType -sun/awt/image/PixelConverter -sun/awt/image/PixelConverter$Xrgb -sun/awt/image/PixelConverter$Argb -sun/awt/image/PixelConverter$ArgbPre -sun/awt/image/PixelConverter$Xbgr -sun/awt/image/PixelConverter$Rgba -sun/awt/image/PixelConverter$RgbaPre -sun/awt/image/PixelConverter$Ushort565Rgb -sun/awt/image/PixelConverter$Ushort555Rgb -sun/awt/image/PixelConverter$Ushort555Rgbx -sun/awt/image/PixelConverter$Ushort4444Argb -sun/awt/image/PixelConverter$ByteGray -sun/awt/image/PixelConverter$UshortGray -sun/awt/image/PixelConverter$Rgbx -sun/awt/image/PixelConverter$Bgrx -sun/awt/image/PixelConverter$ArgbBm -java/awt/image/ColorModel -java/awt/image/DirectColorModel -java/awt/image/PackedColorModel -java/awt/color/ColorSpace -java/awt/color/ICC_Profile -java/awt/color/ICC_ProfileRGB -java/awt/color/ICC_Profile$1 -java/awt/color/ICC_ColorSpace -sun/java2d/pipe/NullPipe -sun/java2d/pipe/PixelDrawPipe -sun/java2d/pipe/PixelFillPipe -sun/java2d/pipe/ShapeDrawPipe -sun/java2d/pipe/TextPipe -sun/java2d/pipe/DrawImagePipe -java/awt/image/IndexColorModel -sun/java2d/pipe/LoopPipe -sun/java2d/pipe/OutlineTextRenderer -sun/java2d/pipe/SolidTextRenderer -sun/java2d/pipe/GlyphListLoopPipe -sun/java2d/pipe/GlyphListPipe -sun/java2d/pipe/AATextRenderer -sun/java2d/pipe/LCDTextRenderer -sun/java2d/pipe/AlphaColorPipe -sun/java2d/pipe/CompositePipe -sun/java2d/pipe/PixelToShapeConverter -sun/java2d/pipe/TextRenderer -sun/java2d/pipe/SpanClipRenderer -sun/java2d/pipe/Region -sun/java2d/pipe/RegionIterator -sun/java2d/pipe/AlphaPaintPipe -sun/java2d/pipe/SpanShapeRenderer$Composite -sun/java2d/pipe/SpanShapeRenderer -sun/java2d/pipe/GeneralCompositePipe -sun/java2d/pipe/DrawImage -sun/java2d/loops/RenderCache -sun/java2d/loops/RenderCache$Entry -sun/java2d/loops/XORComposite -java/awt/Composite -sun/font/X11TextRenderer -sun/java2d/loops/GraphicsPrimitive -sun/java2d/x11/X11PMBlitLoops -sun/java2d/loops/Blit -sun/java2d/loops/GraphicsPrimitiveMgr -sun/java2d/loops/CompositeType -sun/java2d/SunGraphics2D -sun/awt/ConstrainableGraphics -java/awt/Graphics2D -java/awt/Graphics -java/awt/Color -java/awt/Paint -java/awt/AlphaComposite -sun/java2d/loops/BlitBg -sun/java2d/loops/ScaledBlit -sun/java2d/loops/FillRect -sun/java2d/loops/FillSpans -sun/java2d/loops/DrawLine -sun/java2d/loops/DrawRect -sun/java2d/loops/DrawPolygons -sun/java2d/loops/DrawPath -sun/java2d/loops/FillPath -sun/java2d/loops/MaskBlit -sun/java2d/loops/MaskFill -sun/java2d/loops/DrawGlyphList -sun/java2d/loops/DrawGlyphListAA -sun/java2d/loops/DrawGlyphListLCD -sun/java2d/loops/TransformHelper -java/awt/BasicStroke -java/awt/Stroke -sun/misc/PerformanceLogger -sun/misc/PerformanceLogger$TimeData -sun/java2d/pipe/ValidatePipe -sun/java2d/loops/CustomComponent -sun/java2d/loops/GraphicsPrimitiveProxy -sun/java2d/loops/GeneralRenderer -sun/java2d/loops/GraphicsPrimitiveMgr$1 -sun/java2d/loops/GraphicsPrimitiveMgr$2 -sun/java2d/x11/X11PMBlitLoops$DelegateBlitLoop -sun/java2d/x11/X11PMBlitBgLoops -sun/java2d/x11/X11SurfaceData$LazyPipe -sun/awt/X11GraphicsConfig$X11GCDisposerRecord -sun/java2d/DisposerRecord -java/awt/BorderLayout -java/awt/LayoutManager2 -java/awt/Rectangle -java/awt/Toolkit$2 -sun/awt/X11/XToolkit -sun/awt/X11/XConstants -sun/awt/UNIXToolkit -java/util/TreeMap -java/util/NavigableMap -java/util/SortedMap -sun/awt/X11/XlibWrapper -sun/awt/X11/XUtilConstants -sun/awt/X11/XProtocolConstants -sun/awt/X11/XCursorFontConstants -sun/awt/X11/XlibWrapper$1 -sun/awt/X11/XToolkit$4 -sun/awt/X11/XModifierKeymap -sun/awt/X11/XWrapperBase -sun/awt/X11/Native -sun/awt/X11/Native$1 -java/awt/EventQueue -java/util/EmptyStackException -java/lang/reflect/InvocationTargetException -java/awt/EventDispatchThread -java/awt/event/PaintEvent -java/awt/event/MouseEvent -sun/awt/PeerEvent -java/awt/event/InvocationEvent -java/awt/ActiveEvent -sun/awt/X11/XToolkit$1 -sun/awt/X11/XEventDispatcher -sun/awt/SunToolkit$ModalityListenerList -sun/awt/ModalityListener -sun/awt/SunToolkit$1 -java/util/MissingResourceException -java/awt/Queue -sun/awt/PostEventQueue -java/util/LinkedList -java/util/Deque -java/util/Queue -java/util/AbstractSequentialList -sun/awt/X11/AwtScreenData -sun/awt/X11/XWM -sun/awt/X11/MWMConstants -sun/awt/X11/XAtom -java/awt/Insets -sun/awt/X11/XWM$1 -sun/awt/X11/XSetWindowAttributes -sun/awt/X11/XErrorEvent -sun/awt/X11/XNETProtocol -sun/awt/X11/XStateProtocol -sun/awt/X11/XLayerProtocol -sun/awt/X11/XProtocol -java/lang/Long$LongCache -sun/awt/X11/WindowPropertyGetter -sun/awt/X11/UnsafeXDisposerRecord -sun/awt/X11/XPropertyCache -sun/awt/X11/XWINProtocol -sun/awt/X11/XAtomList -sun/awt/X11/XToolkit$3 -java/awt/Window$WindowDisposerRecord -sun/awt/X11/XAnyEvent -java/awt/KeyboardFocusManager -java/awt/KeyEventDispatcher -java/awt/KeyEventPostProcessor -java/awt/AWTKeyStroke -java/awt/AWTKeyStroke$1 -java/awt/DefaultKeyboardFocusManager -java/awt/DefaultFocusTraversalPolicy -java/awt/ContainerOrderFocusTraversalPolicy -java/awt/FocusTraversalPolicy -java/util/Collections$UnmodifiableSet -sun/awt/HeadlessToolkit -sun/awt/X11/XKeyboardFocusManagerPeer -java/awt/peer/KeyboardFocusManagerPeer -sun/awt/X11/XKeyboardFocusManagerPeer$1 -sun/awt/X11/XFramePeer -java/awt/peer/FramePeer -java/awt/peer/WindowPeer -java/awt/peer/ContainerPeer -java/awt/peer/ComponentPeer -sun/awt/X11/XDecoratedPeer -sun/awt/X11/XWindowPeer -sun/awt/X11/XPanelPeer -java/awt/peer/PanelPeer -sun/awt/X11/XCanvasPeer -java/awt/peer/CanvasPeer -sun/awt/X11/XComponentPeer -java/awt/dnd/peer/DropTargetPeer -sun/awt/X11/XWindow -sun/awt/X11ComponentPeer -sun/awt/X11/XBaseWindow -sun/awt/X11/XCreateWindowParams -sun/awt/X11/XBaseWindow$InitialiseState -sun/awt/X11/XBaseWindow$StateLock -sun/awt/X11/AwtGraphicsConfigData -sun/awt/X11/XVisualInfo -java/awt/SystemColor -sun/awt/X11/MotifColorUtilities +java/util/concurrent/locks/Lock java/util/concurrent/locks/LockSupport -sun/nio/ch/Interruptible -java/lang/StringIndexOutOfBoundsException -java/lang/IndexOutOfBoundsException -java/lang/StrictMath -sun/awt/X11/XRepaintArea -sun/awt/RepaintArea -sun/awt/X11/XWindowAttributesData -sun/awt/X11/WindowDimensions -java/awt/Point -java/util/TreeMap$Entry -sun/awt/X11/XRootWindow -sun/nio/cs/ISO_8859_1 -sun/nio/cs/ISO_8859_1$Encoder -sun/nio/cs/ISO_8859_1$Decoder -sun/awt/X11/XPropertyEvent -sun/awt/X11/XDropTargetEventProcessor -sun/awt/X11/XDragSourceContextPeer -sun/awt/X11/XDragSourceProtocolListener -sun/awt/dnd/SunDragSourceContextPeer -java/awt/dnd/peer/DragSourceContextPeer -sun/awt/X11/XAwtState -sun/awt/X11/XBaseWindow$1 -sun/java2d/x11/X11SurfaceData$X11WindowSurfaceData -sun/java2d/loops/RenderLoops -sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec -sun/java2d/DefaultDisposerRecord -sun/java2d/x11/X11Renderer -sun/awt/X11/XGlobalCursorManager -sun/awt/GlobalCursorManager -java/awt/Cursor$CursorDisposer -java/awt/AWTException -java/awt/HeadlessException -java/lang/UnsupportedOperationException -sun/reflect/UnsafeLongFieldAccessorImpl -sun/reflect/UnsafeIntegerFieldAccessorImpl -sun/awt/X11/XClientMessageEvent -sun/awt/X11/XIconInfo -sun/awt/X11/XAWTIcon32_java_icon16_png -sun/awt/X11/XAWTIcon32_java_icon24_png -sun/awt/X11/XAWTIcon32_java_icon32_png -sun/awt/X11/XAWTIcon32_java_icon48_png -sun/awt/X11/XSizeHints -sun/awt/X11/XContentWindow -sun/awt/X11/XFocusProxyWindow -sun/awt/X11/XWMHints -java/util/LinkedList$ListItr -java/util/ListIterator -sun/awt/SunToolkit$2 -java/awt/image/BufferStrategy -java/awt/dnd/DropTarget -java/awt/dnd/DropTargetListener -java/awt/event/ComponentListener -java/awt/event/FocusListener -java/awt/event/HierarchyListener -java/awt/event/HierarchyBoundsListener -java/awt/event/KeyListener -java/awt/event/MouseListener -java/awt/event/MouseMotionListener -java/awt/event/MouseWheelListener -java/awt/event/InputMethodListener -java/awt/event/ContainerListener +java/util/concurrent/locks/ReentrantLock +java/util/concurrent/locks/ReentrantLock$NonfairSync +java/util/concurrent/locks/ReentrantLock$Sync +java/util/function/BiFunction +java/util/jar/Attributes +java/util/jar/Attributes$Name +java/util/jar/JarEntry +java/util/jar/JarFile +java/util/jar/JarFile$JarEntryIterator +java/util/jar/JarFile$JarFileEntry +java/util/jar/JarVerifier +java/util/jar/JarVerifier$3 +java/util/jar/JarVerifier$VerifierStream +java/util/jar/JavaUtilJarAccessImpl +java/util/jar/Manifest +java/util/jar/Manifest$FastInputStream +java/util/logging/Handler +java/util/logging/Level +java/util/logging/Level$KnownLevel +java/util/logging/LogManager +java/util/logging/LogManager$1 +java/util/logging/LogManager$2 +java/util/logging/LogManager$3 +java/util/logging/LogManager$5 +java/util/logging/LogManager$Cleaner +java/util/logging/LogManager$LogNode +java/util/logging/LogManager$LoggerContext +java/util/logging/LogManager$LoggerContext$1 +java/util/logging/LogManager$LoggerWeakRef +java/util/logging/LogManager$RootLogger +java/util/logging/LogManager$SystemLoggerContext +java/util/logging/Logger +java/util/logging/Logger$1 +java/util/logging/LoggingPermission +java/util/logging/LoggingProxyImpl +java/util/regex/MatchResult +java/util/regex/Matcher +java/util/regex/Pattern +java/util/regex/Pattern$4 +java/util/regex/Pattern$BnM +java/util/regex/Pattern$GroupHead +java/util/regex/Pattern$LastNode +java/util/regex/Pattern$Node +java/util/regex/Pattern$Slice +java/util/regex/Pattern$SliceNode +java/util/regex/Pattern$Start +java/util/regex/Pattern$TreeInfo +java/util/spi/CalendarDataProvider +java/util/spi/CurrencyNameProvider +java/util/spi/LocaleNameProvider +java/util/spi/LocaleServiceProvider +java/util/spi/ResourceBundleControlProvider +java/util/spi/TimeZoneNameProvider +java/util/zip/CRC32 +java/util/zip/Checksum +java/util/zip/DeflaterOutputStream +java/util/zip/GZIPInputStream +java/util/zip/Inflater +java/util/zip/InflaterInputStream +java/util/zip/ZStreamRef +java/util/zip/ZipCoder +java/util/zip/ZipConstants +java/util/zip/ZipEntry +java/util/zip/ZipFile +java/util/zip/ZipFile$1 +java/util/zip/ZipFile$ZipEntryIterator +java/util/zip/ZipFile$ZipFileInflaterInputStream +java/util/zip/ZipFile$ZipFileInputStream +java/util/zip/ZipInputStream +java/util/zip/ZipUtils +javax/accessibility/Accessible +javax/accessibility/AccessibleAction +javax/accessibility/AccessibleBundle +javax/accessibility/AccessibleComponent javax/accessibility/AccessibleContext -sun/reflect/UnsafeObjectFieldAccessorImpl -java/awt/peer/LightweightPeer -sun/awt/X11/XLabelPeer -java/awt/peer/LabelPeer -sun/awt/X11/XQueryTree -sun/awt/X11/XMapEvent -sun/awt/X11/XConfigureEvent -sun/awt/X11/PropMwmHints -sun/awt/GlobalCursorManager$NativeUpdater -javax/swing/JFrame -javax/swing/WindowConstants -javax/swing/RootPaneContainer -javax/swing/TransferHandler$HasGetTransferHandler -javax/swing/JLabel -javax/swing/SwingConstants +javax/accessibility/AccessibleExtendedComponent +javax/accessibility/AccessibleRelationSet +javax/accessibility/AccessibleState +javax/accessibility/AccessibleText +javax/accessibility/AccessibleValue +javax/crypto/SecretKey +javax/security/auth/Destroyable +javax/security/auth/login/FailedLoginException +javax/security/auth/login/LoginException +javax/security/auth/x500/X500Principal +javax/sound/sampled/Control$Type +javax/sound/sampled/DataLine +javax/sound/sampled/DataLine$Info +javax/sound/sampled/FloatControl$Type +javax/sound/sampled/Line +javax/sound/sampled/Line$Info +javax/sound/sampled/LineUnavailableException +javax/sound/sampled/UnsupportedAudioFileException +javax/swing/AbstractAction +javax/swing/AbstractButton +javax/swing/AbstractButton$AccessibleAbstractButton +javax/swing/AbstractButton$Handler +javax/swing/AbstractCellEditor +javax/swing/AbstractListModel +javax/swing/Action +javax/swing/ActionMap +javax/swing/AncestorNotifier +javax/swing/ArrayTable +javax/swing/BorderFactory +javax/swing/BoundedRangeModel +javax/swing/Box +javax/swing/Box$Filler +javax/swing/BoxLayout +javax/swing/BufferStrategyPaintManager +javax/swing/BufferStrategyPaintManager$BufferInfo +javax/swing/ButtonGroup +javax/swing/ButtonModel +javax/swing/CellEditor +javax/swing/CellRendererPane +javax/swing/ClientPropertyKey +javax/swing/ClientPropertyKey$1 +javax/swing/ComboBoxEditor +javax/swing/ComboBoxModel +javax/swing/ComponentInputMap +javax/swing/DefaultBoundedRangeModel +javax/swing/DefaultButtonModel +javax/swing/DefaultCellEditor +javax/swing/DefaultCellEditor$1 +javax/swing/DefaultCellEditor$EditorDelegate +javax/swing/DefaultComboBoxModel +javax/swing/DefaultListCellRenderer +javax/swing/DefaultListCellRenderer$UIResource +javax/swing/DefaultListModel +javax/swing/DefaultListSelectionModel +javax/swing/DefaultSingleSelectionModel +javax/swing/DropMode +javax/swing/FocusManager +javax/swing/GrayFilter +javax/swing/Icon +javax/swing/ImageIcon +javax/swing/ImageIcon$1 +javax/swing/ImageIcon$2 +javax/swing/ImageIcon$2$1 +javax/swing/ImageIcon$3 +javax/swing/InputMap +javax/swing/InternalFrameFocusTraversalPolicy +javax/swing/JButton +javax/swing/JCheckBox +javax/swing/JCheckBoxMenuItem +javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem +javax/swing/JComboBox +javax/swing/JComboBox$1 +javax/swing/JComboBox$KeySelectionManager javax/swing/JComponent javax/swing/JComponent$1 -javax/swing/SwingUtilities -javax/swing/JRootPane -sun/security/action/GetBooleanAction -javax/swing/event/EventListenerList +javax/swing/JComponent$2 +javax/swing/JComponent$AccessibleJComponent +javax/swing/JDialog +javax/swing/JEditorPane +javax/swing/JFrame +javax/swing/JInternalFrame +javax/swing/JLabel +javax/swing/JLayer +javax/swing/JLayeredPane +javax/swing/JList +javax/swing/JList$3 +javax/swing/JList$ListSelectionHandler +javax/swing/JMenu +javax/swing/JMenu$MenuChangeListener +javax/swing/JMenu$WinListener +javax/swing/JMenuBar +javax/swing/JMenuItem +javax/swing/JMenuItem$AccessibleJMenuItem +javax/swing/JMenuItem$MenuItemFocusListener javax/swing/JPanel -java/awt/FlowLayout -javax/swing/UIManager -javax/swing/UIManager$LookAndFeelInfo -sun/swing/SwingUtilities2 -sun/swing/SwingUtilities2$LSBCacheEntry -javax/swing/UIManager$LAFState -javax/swing/UIDefaults +javax/swing/JPopupMenu +javax/swing/JPopupMenu$Separator +javax/swing/JProgressBar +javax/swing/JProgressBar$ModelListener +javax/swing/JRadioButton +javax/swing/JRadioButtonMenuItem +javax/swing/JRootPane +javax/swing/JRootPane$1 +javax/swing/JRootPane$RootLayout +javax/swing/JScrollBar +javax/swing/JScrollBar$ModelListener +javax/swing/JScrollPane +javax/swing/JScrollPane$ScrollBar +javax/swing/JSeparator +javax/swing/JSlider +javax/swing/JSlider$ModelListener +javax/swing/JSplitPane +javax/swing/JTabbedPane +javax/swing/JTabbedPane$ModelListener +javax/swing/JTabbedPane$Page +javax/swing/JTable +javax/swing/JTable$2 +javax/swing/JTable$5 +javax/swing/JTable$Resizable2 +javax/swing/JTable$Resizable3 +javax/swing/JTextArea +javax/swing/JTextField +javax/swing/JTextField$NotifyAction +javax/swing/JTextField$ScrollRepainter +javax/swing/JToggleButton +javax/swing/JToggleButton$ToggleButtonModel +javax/swing/JToolBar +javax/swing/JToolBar$DefaultToolBarLayout +javax/swing/JToolBar$Separator +javax/swing/JToolTip +javax/swing/JTree +javax/swing/JTree$TreeModelHandler +javax/swing/JTree$TreeSelectionRedirector +javax/swing/JViewport +javax/swing/JViewport$ViewListener +javax/swing/JWindow +javax/swing/KeyStroke +javax/swing/KeyboardManager +javax/swing/KeyboardManager$ComponentKeyStrokePair +javax/swing/LayoutComparator +javax/swing/LayoutFocusTraversalPolicy +javax/swing/ListCellRenderer +javax/swing/ListModel +javax/swing/ListSelectionModel +javax/swing/LookAndFeel +javax/swing/MenuElement +javax/swing/MenuSelectionManager javax/swing/MultiUIDefaults +javax/swing/MutableComboBoxModel +javax/swing/RepaintManager +javax/swing/RepaintManager$2 +javax/swing/RepaintManager$3 +javax/swing/RepaintManager$DisplayChangedHandler +javax/swing/RepaintManager$PaintManager +javax/swing/RepaintManager$ProcessingRunnable +javax/swing/RootPaneContainer +javax/swing/ScrollPaneConstants +javax/swing/ScrollPaneLayout +javax/swing/ScrollPaneLayout$UIResource +javax/swing/Scrollable +javax/swing/SingleSelectionModel +javax/swing/SizeRequirements +javax/swing/SortingFocusTraversalPolicy +javax/swing/SwingConstants +javax/swing/SwingContainerOrderFocusTraversalPolicy +javax/swing/SwingDefaultFocusTraversalPolicy +javax/swing/SwingPaintEventDispatcher +javax/swing/SwingUtilities +javax/swing/SwingUtilities$SharedOwnerFrame +javax/swing/Timer +javax/swing/Timer$DoPostEvent +javax/swing/TimerQueue +javax/swing/TimerQueue$1 +javax/swing/TimerQueue$DelayedTimer +javax/swing/ToolTipManager +javax/swing/ToolTipManager$AccessibilityKeyListener +javax/swing/ToolTipManager$MoveBeforeEnterListener +javax/swing/ToolTipManager$insideTimerAction +javax/swing/ToolTipManager$outsideTimerAction +javax/swing/ToolTipManager$stillInsideTimerAction +javax/swing/TransferHandler +javax/swing/TransferHandler$DropHandler +javax/swing/TransferHandler$HasGetTransferHandler +javax/swing/TransferHandler$SwingDropTarget +javax/swing/TransferHandler$TransferAction +javax/swing/TransferHandler$TransferSupport +javax/swing/UIDefaults +javax/swing/UIDefaults$ActiveValue +javax/swing/UIDefaults$LazyInputMap +javax/swing/UIDefaults$LazyValue +javax/swing/UIDefaults$TextAndMnemonicHashMap +javax/swing/UIManager javax/swing/UIManager$1 -javax/swing/plaf/metal/MetalLookAndFeel -javax/swing/plaf/basic/BasicLookAndFeel -javax/swing/LookAndFeel -sun/swing/DefaultLookup -javax/swing/plaf/metal/OceanTheme -javax/swing/plaf/metal/DefaultMetalTheme -javax/swing/plaf/metal/MetalTheme +javax/swing/UIManager$2 +javax/swing/UIManager$LAFState +javax/swing/UIManager$LookAndFeelInfo +javax/swing/UnsupportedLookAndFeelException +javax/swing/ViewportLayout +javax/swing/WindowConstants +javax/swing/border/AbstractBorder +javax/swing/border/BevelBorder +javax/swing/border/Border +javax/swing/border/CompoundBorder +javax/swing/border/EmptyBorder +javax/swing/border/EtchedBorder +javax/swing/border/LineBorder +javax/swing/border/MatteBorder +javax/swing/border/TitledBorder +javax/swing/event/AncestorEvent +javax/swing/event/AncestorListener +javax/swing/event/CaretEvent +javax/swing/event/CaretListener +javax/swing/event/CellEditorListener +javax/swing/event/ChangeEvent +javax/swing/event/ChangeListener +javax/swing/event/DocumentEvent +javax/swing/event/DocumentEvent$ElementChange +javax/swing/event/DocumentEvent$EventType +javax/swing/event/DocumentListener +javax/swing/event/EventListenerList +javax/swing/event/ListDataEvent +javax/swing/event/ListDataListener +javax/swing/event/ListSelectionEvent +javax/swing/event/ListSelectionListener +javax/swing/event/MenuDragMouseListener +javax/swing/event/MenuEvent +javax/swing/event/MenuKeyListener +javax/swing/event/MenuListener +javax/swing/event/MouseInputAdapter +javax/swing/event/MouseInputListener +javax/swing/event/PopupMenuListener +javax/swing/event/RowSorterListener +javax/swing/event/SwingPropertyChangeSupport +javax/swing/event/TableColumnModelEvent +javax/swing/event/TableColumnModelListener +javax/swing/event/TableModelEvent +javax/swing/event/TableModelListener +javax/swing/event/TreeExpansionListener +javax/swing/event/TreeModelEvent +javax/swing/event/TreeModelListener +javax/swing/event/TreeSelectionEvent +javax/swing/event/TreeSelectionListener +javax/swing/event/UndoableEditEvent +javax/swing/event/UndoableEditListener +javax/swing/filechooser/FileFilter +javax/swing/plaf/ActionMapUIResource +javax/swing/plaf/BorderUIResource +javax/swing/plaf/BorderUIResource$CompoundBorderUIResource +javax/swing/plaf/BorderUIResource$EmptyBorderUIResource +javax/swing/plaf/BorderUIResource$LineBorderUIResource +javax/swing/plaf/ButtonUI javax/swing/plaf/ColorUIResource -javax/swing/plaf/UIResource -sun/swing/PrintColorUIResource -javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate +javax/swing/plaf/ComboBoxUI +javax/swing/plaf/ComponentInputMapUIResource +javax/swing/plaf/ComponentUI +javax/swing/plaf/DimensionUIResource javax/swing/plaf/FontUIResource -sun/swing/SwingLazyValue -javax/swing/UIDefaults$LazyValue -javax/swing/UIDefaults$ActiveValue +javax/swing/plaf/InputMapUIResource javax/swing/plaf/InsetsUIResource -sun/swing/SwingUtilities2$2 +javax/swing/plaf/LabelUI +javax/swing/plaf/ListUI +javax/swing/plaf/MenuBarUI +javax/swing/plaf/MenuItemUI +javax/swing/plaf/PanelUI +javax/swing/plaf/PopupMenuUI +javax/swing/plaf/ProgressBarUI +javax/swing/plaf/RootPaneUI +javax/swing/plaf/ScrollBarUI +javax/swing/plaf/ScrollPaneUI +javax/swing/plaf/SeparatorUI +javax/swing/plaf/SliderUI +javax/swing/plaf/SplitPaneUI +javax/swing/plaf/TabbedPaneUI +javax/swing/plaf/TableHeaderUI +javax/swing/plaf/TableUI +javax/swing/plaf/TextUI +javax/swing/plaf/ToolBarUI +javax/swing/plaf/TreeUI +javax/swing/plaf/UIResource +javax/swing/plaf/ViewportUI +javax/swing/plaf/basic/BasicArrowButton +javax/swing/plaf/basic/BasicBorders +javax/swing/plaf/basic/BasicBorders$ButtonBorder +javax/swing/plaf/basic/BasicBorders$MarginBorder +javax/swing/plaf/basic/BasicBorders$RadioButtonBorder +javax/swing/plaf/basic/BasicBorders$RolloverMarginBorder +javax/swing/plaf/basic/BasicBorders$SplitPaneBorder +javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder +javax/swing/plaf/basic/BasicButtonListener +javax/swing/plaf/basic/BasicButtonUI +javax/swing/plaf/basic/BasicCheckBoxMenuItemUI +javax/swing/plaf/basic/BasicComboBoxEditor +javax/swing/plaf/basic/BasicComboBoxEditor$BorderlessTextField +javax/swing/plaf/basic/BasicComboBoxEditor$UIResource +javax/swing/plaf/basic/BasicComboBoxRenderer +javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource +javax/swing/plaf/basic/BasicComboBoxUI +javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager +javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager +javax/swing/plaf/basic/BasicComboBoxUI$Handler +javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler +javax/swing/plaf/basic/BasicComboPopup +javax/swing/plaf/basic/BasicComboPopup$1 +javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass +javax/swing/plaf/basic/BasicComboPopup$Handler +javax/swing/plaf/basic/BasicGraphicsUtils +javax/swing/plaf/basic/BasicHTML +javax/swing/plaf/basic/BasicLabelUI +javax/swing/plaf/basic/BasicListUI +javax/swing/plaf/basic/BasicListUI$Handler +javax/swing/plaf/basic/BasicListUI$ListTransferHandler +javax/swing/plaf/basic/BasicLookAndFeel +javax/swing/plaf/basic/BasicLookAndFeel$1 javax/swing/plaf/basic/BasicLookAndFeel$2 -javax/swing/plaf/DimensionUIResource -javax/swing/UIDefaults$LazyInputMap -java/lang/Character$CharacterCache -javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue +javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper +javax/swing/plaf/basic/BasicMenuBarUI +javax/swing/plaf/basic/BasicMenuBarUI$Handler +javax/swing/plaf/basic/BasicMenuItemUI +javax/swing/plaf/basic/BasicMenuItemUI$Handler +javax/swing/plaf/basic/BasicMenuUI +javax/swing/plaf/basic/BasicMenuUI$Handler +javax/swing/plaf/basic/BasicPanelUI +javax/swing/plaf/basic/BasicPopupMenuUI +javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener +javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener +javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper +javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper$1 +javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber +javax/swing/plaf/basic/BasicProgressBarUI +javax/swing/plaf/basic/BasicProgressBarUI$Handler +javax/swing/plaf/basic/BasicRadioButtonMenuItemUI +javax/swing/plaf/basic/BasicRadioButtonUI +javax/swing/plaf/basic/BasicRootPaneUI +javax/swing/plaf/basic/BasicRootPaneUI$RootPaneInputMap +javax/swing/plaf/basic/BasicScrollBarUI +javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener +javax/swing/plaf/basic/BasicScrollBarUI$Handler +javax/swing/plaf/basic/BasicScrollBarUI$ModelListener +javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler +javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener +javax/swing/plaf/basic/BasicScrollBarUI$TrackListener +javax/swing/plaf/basic/BasicScrollPaneUI +javax/swing/plaf/basic/BasicScrollPaneUI$Handler +javax/swing/plaf/basic/BasicSeparatorUI +javax/swing/plaf/basic/BasicSliderUI +javax/swing/plaf/basic/BasicSliderUI$Actions +javax/swing/plaf/basic/BasicSliderUI$Handler +javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler +javax/swing/plaf/basic/BasicSliderUI$ScrollListener +javax/swing/plaf/basic/BasicSliderUI$TrackListener +javax/swing/plaf/basic/BasicSplitPaneDivider +javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout +javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler +javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchActionHandler +javax/swing/plaf/basic/BasicSplitPaneUI +javax/swing/plaf/basic/BasicSplitPaneUI$1 +javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager +javax/swing/plaf/basic/BasicSplitPaneUI$Handler +javax/swing/plaf/basic/BasicTabbedPaneUI +javax/swing/plaf/basic/BasicTabbedPaneUI$Handler +javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout +javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout +javax/swing/plaf/basic/BasicTableHeaderUI +javax/swing/plaf/basic/BasicTableHeaderUI$1 +javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler +javax/swing/plaf/basic/BasicTableUI +javax/swing/plaf/basic/BasicTableUI$Handler +javax/swing/plaf/basic/BasicTableUI$TableTransferHandler +javax/swing/plaf/basic/BasicTextAreaUI +javax/swing/plaf/basic/BasicTextFieldUI +javax/swing/plaf/basic/BasicTextUI +javax/swing/plaf/basic/BasicTextUI$BasicCaret +javax/swing/plaf/basic/BasicTextUI$BasicCursor +javax/swing/plaf/basic/BasicTextUI$BasicHighlighter +javax/swing/plaf/basic/BasicTextUI$DragListener +javax/swing/plaf/basic/BasicTextUI$FocusAction +javax/swing/plaf/basic/BasicTextUI$RootView +javax/swing/plaf/basic/BasicTextUI$TextActionWrapper +javax/swing/plaf/basic/BasicTextUI$TextTransferHandler +javax/swing/plaf/basic/BasicTextUI$UpdateHandler +javax/swing/plaf/basic/BasicToggleButtonUI +javax/swing/plaf/basic/BasicToolBarSeparatorUI +javax/swing/plaf/basic/BasicToolBarUI +javax/swing/plaf/basic/BasicToolBarUI$DockingListener +javax/swing/plaf/basic/BasicToolBarUI$Handler +javax/swing/plaf/basic/BasicTreeUI +javax/swing/plaf/basic/BasicTreeUI$Actions +javax/swing/plaf/basic/BasicTreeUI$Handler +javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler +javax/swing/plaf/basic/BasicTreeUI$TreeTransferHandler +javax/swing/plaf/basic/BasicViewportUI +javax/swing/plaf/basic/ComboPopup +javax/swing/plaf/basic/DefaultMenuLayout +javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag +javax/swing/plaf/basic/LazyActionMap +javax/swing/plaf/metal/DefaultMetalTheme +javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate +javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1 +javax/swing/plaf/metal/MetalBorders +javax/swing/plaf/metal/MetalBorders$ButtonBorder +javax/swing/plaf/metal/MetalBorders$Flush3DBorder +javax/swing/plaf/metal/MetalBorders$MenuBarBorder +javax/swing/plaf/metal/MetalBorders$MenuItemBorder +javax/swing/plaf/metal/MetalBorders$PopupMenuBorder +javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder +javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder +javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder +javax/swing/plaf/metal/MetalBorders$TextFieldBorder +javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder +javax/swing/plaf/metal/MetalBorders$ToolBarBorder +javax/swing/plaf/metal/MetalBumps +javax/swing/plaf/metal/MetalButtonUI +javax/swing/plaf/metal/MetalCheckBoxUI +javax/swing/plaf/metal/MetalComboBoxButton +javax/swing/plaf/metal/MetalComboBoxButton$1 +javax/swing/plaf/metal/MetalComboBoxEditor +javax/swing/plaf/metal/MetalComboBoxEditor$1 +javax/swing/plaf/metal/MetalComboBoxEditor$EditorBorder +javax/swing/plaf/metal/MetalComboBoxEditor$UIResource +javax/swing/plaf/metal/MetalComboBoxIcon +javax/swing/plaf/metal/MetalComboBoxUI +javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager +javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener +javax/swing/plaf/metal/MetalIconFactory +javax/swing/plaf/metal/MetalIconFactory$CheckBoxIcon +javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon +javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 +javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon +javax/swing/plaf/metal/MetalIconFactory$MenuArrowIcon +javax/swing/plaf/metal/MetalIconFactory$MenuItemArrowIcon +javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon +javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon +javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon +javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon +javax/swing/plaf/metal/MetalLabelUI +javax/swing/plaf/metal/MetalLookAndFeel +javax/swing/plaf/metal/MetalLookAndFeel$AATextListener javax/swing/plaf/metal/MetalLookAndFeel$FontActiveValue -java/awt/print/PrinterJob -sun/swing/SwingUtilities2$AATextInfo -sun/awt/X11/XAWTXSettings -sun/awt/X11/XMSelectionListener -sun/awt/XSettings -sun/awt/X11/XMSelection -sun/awt/X11/XMSelection$1 -sun/awt/X11/XMSelection$3 -sun/awt/XSettings$Update -java/util/HashMap$EntrySet -java/util/HashMap$EntryIterator -javax/swing/plaf/metal/MetalLookAndFeel$AATextListener -java/beans/PropertyChangeListener -java/beans/PropertyChangeListenerProxy -java/util/EventListenerProxy -sun/awt/EventListenerAggregate -javax/swing/UIDefaults$ProxyLazyValue +javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue +javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue$1 +javax/swing/plaf/metal/MetalPopupMenuSeparatorUI +javax/swing/plaf/metal/MetalProgressBarUI +javax/swing/plaf/metal/MetalRadioButtonUI +javax/swing/plaf/metal/MetalRootPaneUI +javax/swing/plaf/metal/MetalScrollBarUI +javax/swing/plaf/metal/MetalScrollBarUI$ScrollBarListener +javax/swing/plaf/metal/MetalScrollButton +javax/swing/plaf/metal/MetalScrollPaneUI +javax/swing/plaf/metal/MetalScrollPaneUI$1 +javax/swing/plaf/metal/MetalSeparatorUI +javax/swing/plaf/metal/MetalSliderUI +javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener +javax/swing/plaf/metal/MetalSplitPaneDivider +javax/swing/plaf/metal/MetalSplitPaneDivider$1 +javax/swing/plaf/metal/MetalSplitPaneDivider$2 +javax/swing/plaf/metal/MetalSplitPaneUI +javax/swing/plaf/metal/MetalTabbedPaneUI +javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout +javax/swing/plaf/metal/MetalTextFieldUI +javax/swing/plaf/metal/MetalTheme +javax/swing/plaf/metal/MetalToggleButtonUI +javax/swing/plaf/metal/MetalToolBarUI +javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener +javax/swing/plaf/metal/MetalTreeUI +javax/swing/plaf/metal/MetalTreeUI$LineListener +javax/swing/plaf/metal/OceanTheme javax/swing/plaf/metal/OceanTheme$1 javax/swing/plaf/metal/OceanTheme$2 javax/swing/plaf/metal/OceanTheme$3 javax/swing/plaf/metal/OceanTheme$4 javax/swing/plaf/metal/OceanTheme$5 javax/swing/plaf/metal/OceanTheme$6 -javax/swing/RepaintManager -javax/swing/RepaintManager$DisplayChangedHandler -javax/swing/SwingPaintEventDispatcher -sun/awt/PaintEventDispatcher -javax/swing/UIManager$2 -java/awt/PopupMenu -java/awt/Menu -java/awt/MenuItem -java/awt/MenuComponent -java/io/ObjectOutputStream -java/io/ObjectOutput -java/io/DataOutput -java/io/ObjectStreamConstants -java/io/PrintWriter -java/io/ObjectInputStream -java/io/ObjectInput -java/awt/Event -java/awt/im/InputContext -java/awt/event/MouseWheelEvent -java/awt/BufferCapabilities -sun/awt/CausedFocusEvent$Cause -java/awt/PointerInfo -java/awt/Component$BaselineResizeBehavior -java/awt/FontMetrics -java/awt/Image -java/awt/image/ImageProducer -java/awt/image/VolatileImage -java/awt/im/InputMethodRequests -java/awt/event/FocusEvent -java/awt/event/InputMethodEvent -java/awt/event/HierarchyEvent -javax/accessibility/AccessibleStateSet -com/sun/swing/internal/plaf/metal/resources/metal -sun/util/ResourceBundleEnumeration -com/sun/swing/internal/plaf/basic/resources/basic -javax/swing/plaf/basic/BasicPanelUI -javax/swing/plaf/PanelUI -javax/swing/plaf/ComponentUI -sun/reflect/misc/MethodUtil -sun/reflect/misc/MethodUtil$1 -sun/misc/Launcher$1 -sun/misc/URLClassPath$JarLoader$1 -sun/misc/FileURLMapper -java/util/jar/JarFile -java/util/zip/ZipFile -java/util/zip/ZipConstants -java/util/jar/JavaUtilJarAccessImpl -sun/misc/JavaUtilJarAccess -sun/misc/JarIndex -java/util/zip/ZipEntry -java/util/jar/JarFile$JarFileEntry -java/util/jar/JarEntry -sun/misc/URLClassPath$JarLoader$2 -sun/net/www/protocol/jar/JarURLConnection -java/net/JarURLConnection -sun/net/www/protocol/jar/JarFileFactory -sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController -java/net/HttpURLConnection -sun/net/www/protocol/jar/URLJarFile -sun/net/www/protocol/jar/URLJarFile$URLJarFileEntry -sun/net/www/protocol/jar/JarURLConnection$JarURLInputStream -java/util/zip/ZipFile$ZipFileInputStream -java/security/AllPermissionCollection -java/lang/IllegalAccessException -javax/swing/JPasswordField -javax/swing/JTextField +javax/swing/plaf/synth/SynthConstants +javax/swing/plaf/synth/SynthUI +javax/swing/table/AbstractTableModel +javax/swing/table/DefaultTableCellRenderer +javax/swing/table/DefaultTableColumnModel +javax/swing/table/DefaultTableModel +javax/swing/table/JTableHeader +javax/swing/table/TableCellEditor +javax/swing/table/TableCellRenderer +javax/swing/table/TableColumn +javax/swing/table/TableColumnModel +javax/swing/table/TableModel +javax/swing/text/AbstractDocument +javax/swing/text/AbstractDocument$1 +javax/swing/text/AbstractDocument$AbstractElement +javax/swing/text/AbstractDocument$AttributeContext +javax/swing/text/AbstractDocument$BidiElement +javax/swing/text/AbstractDocument$BidiRootElement +javax/swing/text/AbstractDocument$BranchElement +javax/swing/text/AbstractDocument$Content +javax/swing/text/AbstractDocument$DefaultDocumentEvent +javax/swing/text/AbstractDocument$ElementEdit +javax/swing/text/AbstractDocument$InsertStringResult +javax/swing/text/AbstractDocument$LeafElement +javax/swing/text/AttributeSet +javax/swing/text/AttributeSet$CharacterAttribute +javax/swing/text/AttributeSet$ColorAttribute +javax/swing/text/AttributeSet$FontAttribute +javax/swing/text/AttributeSet$ParagraphAttribute +javax/swing/text/Caret +javax/swing/text/DefaultCaret +javax/swing/text/DefaultCaret$Handler +javax/swing/text/DefaultEditorKit +javax/swing/text/DefaultEditorKit$BeepAction +javax/swing/text/DefaultEditorKit$BeginAction +javax/swing/text/DefaultEditorKit$BeginLineAction +javax/swing/text/DefaultEditorKit$BeginParagraphAction +javax/swing/text/DefaultEditorKit$BeginWordAction +javax/swing/text/DefaultEditorKit$CopyAction +javax/swing/text/DefaultEditorKit$CutAction +javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction +javax/swing/text/DefaultEditorKit$DeleteNextCharAction +javax/swing/text/DefaultEditorKit$DeletePrevCharAction +javax/swing/text/DefaultEditorKit$DeleteWordAction +javax/swing/text/DefaultEditorKit$DumpModelAction +javax/swing/text/DefaultEditorKit$EndAction +javax/swing/text/DefaultEditorKit$EndLineAction +javax/swing/text/DefaultEditorKit$EndParagraphAction +javax/swing/text/DefaultEditorKit$EndWordAction +javax/swing/text/DefaultEditorKit$InsertBreakAction +javax/swing/text/DefaultEditorKit$InsertContentAction +javax/swing/text/DefaultEditorKit$InsertTabAction +javax/swing/text/DefaultEditorKit$NextVisualPositionAction +javax/swing/text/DefaultEditorKit$NextWordAction +javax/swing/text/DefaultEditorKit$PageAction +javax/swing/text/DefaultEditorKit$PasteAction +javax/swing/text/DefaultEditorKit$PreviousWordAction +javax/swing/text/DefaultEditorKit$ReadOnlyAction +javax/swing/text/DefaultEditorKit$SelectAllAction +javax/swing/text/DefaultEditorKit$SelectLineAction +javax/swing/text/DefaultEditorKit$SelectParagraphAction +javax/swing/text/DefaultEditorKit$SelectWordAction +javax/swing/text/DefaultEditorKit$ToggleComponentOrientationAction +javax/swing/text/DefaultEditorKit$UnselectAction +javax/swing/text/DefaultEditorKit$VerticalPageAction +javax/swing/text/DefaultEditorKit$WritableAction +javax/swing/text/DefaultHighlighter +javax/swing/text/DefaultHighlighter$DefaultHighlightPainter +javax/swing/text/DefaultHighlighter$SafeDamager +javax/swing/text/Document +javax/swing/text/EditorKit +javax/swing/text/Element +javax/swing/text/FieldView +javax/swing/text/GapContent +javax/swing/text/GapContent$InsertUndo +javax/swing/text/GapContent$MarkData +javax/swing/text/GapContent$MarkVector +javax/swing/text/GapContent$StickyPosition +javax/swing/text/GapVector +javax/swing/text/Highlighter +javax/swing/text/Highlighter$Highlight +javax/swing/text/Highlighter$HighlightPainter javax/swing/text/JTextComponent -javax/swing/Scrollable -javax/swing/JLayeredPane -javax/swing/JRootPane$1 -javax/swing/ArrayTable -javax/swing/JInternalFrame -javax/swing/JRootPane$RootLayout -javax/swing/BufferStrategyPaintManager -javax/swing/RepaintManager$PaintManager -javax/swing/plaf/metal/MetalRootPaneUI -javax/swing/plaf/basic/BasicRootPaneUI -javax/swing/plaf/RootPaneUI -javax/swing/plaf/basic/BasicRootPaneUI$RootPaneInputMap -javax/swing/plaf/ComponentInputMapUIResource -javax/swing/ComponentInputMap -javax/swing/InputMap -javax/swing/plaf/InputMapUIResource -javax/swing/KeyStroke -java/awt/VKCollection -sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl -javax/swing/plaf/basic/LazyActionMap -javax/swing/plaf/ActionMapUIResource -javax/swing/ActionMap -javax/swing/LayoutFocusTraversalPolicy -javax/swing/SortingFocusTraversalPolicy -javax/swing/InternalFrameFocusTraversalPolicy -javax/swing/SwingContainerOrderFocusTraversalPolicy -javax/swing/SwingDefaultFocusTraversalPolicy -javax/swing/LayoutComparator -javax/swing/plaf/metal/MetalLabelUI -javax/swing/plaf/basic/BasicLabelUI -javax/swing/plaf/LabelUI -javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1 -javax/swing/plaf/basic/BasicHTML -sun/awt/NullComponentPeer -java/awt/event/WindowEvent -java/awt/EventQueue$1 -java/awt/EventDispatchThread$1 -java/awt/Conditional -java/awt/EventDispatchThread$HierarchyEventFilter -java/awt/EventFilter$FilterAction -sun/awt/dnd/SunDropTargetEvent -java/awt/event/ActionEvent -sun/awt/X11/XReparentEvent -sun/awt/X11/XWindowAttributes -sun/awt/EventQueueItem -sun/awt/SunToolkit$3 -java/applet/Applet -java/awt/Panel -com/sun/awt/AWTUtilities -sun/awt/X11/XExposeEvent -java/util/jar/Manifest -java/io/ByteArrayInputStream -java/util/jar/Attributes -java/util/jar/Manifest$FastInputStream -java/util/jar/Attributes$Name -sun/misc/ASCIICaseInsensitiveComparator -java/util/jar/JarVerifier -java/io/ByteArrayOutputStream -sun/misc/ExtensionDependency -java/lang/Package -sun/security/util/ManifestEntryVerifier -java/security/Provider -java/security/Provider$ServiceKey -java/security/Provider$EngineDescription -java/security/Security -java/security/Security$1 -sun/misc/FloatingDecimal -sun/misc/FloatingDecimal$1 -java/util/regex/Pattern -java/util/regex/Pattern$Node -java/util/regex/Pattern$LastNode -java/util/regex/Pattern$GroupHead -java/util/regex/Pattern$GroupTail -java/util/regex/Pattern$BitClass -java/util/regex/Pattern$BmpCharProperty -java/util/regex/Pattern$CharProperty -java/util/regex/Pattern$Ques -java/util/regex/Pattern$BranchConn -java/util/regex/Pattern$Branch -java/util/regex/Pattern$5 -java/util/regex/Pattern$CharPropertyNames -java/util/regex/Pattern$CharPropertyNames$1 -java/util/regex/Pattern$CharPropertyNames$CharPropertyFactory -java/util/regex/Pattern$CharPropertyNames$2 -java/util/regex/Pattern$CharPropertyNames$5 -java/util/regex/Pattern$CharPropertyNames$3 -java/util/regex/Pattern$CharPropertyNames$6 -java/util/regex/Pattern$CharPropertyNames$CloneableProperty -java/util/regex/Pattern$CharPropertyNames$4 -java/util/regex/Pattern$CharPropertyNames$7 -java/util/regex/Pattern$CharPropertyNames$8 -java/util/regex/Pattern$CharPropertyNames$9 -java/util/regex/Pattern$CharPropertyNames$10 -java/util/regex/Pattern$CharPropertyNames$11 -java/util/regex/Pattern$CharPropertyNames$12 -java/util/regex/Pattern$CharPropertyNames$13 -java/util/regex/Pattern$CharPropertyNames$14 -java/util/regex/Pattern$CharPropertyNames$15 -java/util/regex/Pattern$CharPropertyNames$16 -java/util/regex/Pattern$CharPropertyNames$17 -java/util/regex/Pattern$CharPropertyNames$18 -java/util/regex/Pattern$CharPropertyNames$19 -java/util/regex/Pattern$CharPropertyNames$20 -java/util/regex/Pattern$CharPropertyNames$21 -java/util/regex/Pattern$Ctype -java/util/regex/Pattern$Curly -java/util/regex/Pattern$6 -java/util/regex/Pattern$Slice -java/util/regex/Pattern$Begin -java/util/regex/Pattern$First -java/util/regex/Pattern$Start -java/util/regex/Pattern$TreeInfo -sun/security/provider/NativePRNG -java/security/SecureRandomSpi -sun/security/provider/NativePRNG$1 -sun/security/provider/NativePRNG$RandomIO -sun/misc/BASE64Decoder -sun/misc/CharacterDecoder -sun/security/util/SignatureFileVerifier -java/awt/event/KeyAdapter -java/lang/NumberFormatException -java/lang/IllegalArgumentException -java/io/FileWriter -java/net/Authenticator -java/net/MalformedURLException -javax/swing/text/Element -javax/swing/text/Document +javax/swing/text/JTextComponent$1 +javax/swing/text/JTextComponent$DefaultKeymap +javax/swing/text/JTextComponent$KeymapActionMap +javax/swing/text/JTextComponent$KeymapWrapper +javax/swing/text/JTextComponent$MutableCaretEvent +javax/swing/text/Keymap +javax/swing/text/LayeredHighlighter +javax/swing/text/LayeredHighlighter$LayerPainter +javax/swing/text/MutableAttributeSet javax/swing/text/PlainDocument -javax/swing/text/AbstractDocument -javax/swing/text/GapContent -javax/swing/text/AbstractDocument$Content -javax/swing/text/GapVector -javax/swing/text/GapContent$MarkVector -javax/swing/text/GapContent$MarkData -javax/swing/text/StyleContext -javax/swing/text/AbstractDocument$AttributeContext +javax/swing/text/PlainView +javax/swing/text/Position +javax/swing/text/Position$Bias +javax/swing/text/Segment +javax/swing/text/SegmentCache +javax/swing/text/SegmentCache$CachedSegment +javax/swing/text/SimpleAttributeSet +javax/swing/text/SimpleAttributeSet$EmptyAttributeSet +javax/swing/text/Style javax/swing/text/StyleConstants javax/swing/text/StyleConstants$CharacterConstants -javax/swing/text/AttributeSet$CharacterAttribute +javax/swing/text/StyleConstants$ColorConstants javax/swing/text/StyleConstants$FontConstants -javax/swing/text/AttributeSet$FontAttribute -javax/swing/text/StyleConstants$ColorConstants -javax/swing/text/AttributeSet$ColorAttribute javax/swing/text/StyleConstants$ParagraphConstants -javax/swing/text/AttributeSet$ParagraphAttribute +javax/swing/text/StyleContext javax/swing/text/StyleContext$FontKey -javax/swing/text/SimpleAttributeSet -javax/swing/text/MutableAttributeSet -javax/swing/text/AttributeSet -javax/swing/text/SimpleAttributeSet$EmptyAttributeSet +javax/swing/text/StyleContext$KeyEnumeration javax/swing/text/StyleContext$NamedStyle -javax/swing/text/Style javax/swing/text/StyleContext$SmallAttributeSet -javax/swing/text/AbstractDocument$BidiRootElement -javax/swing/text/AbstractDocument$BranchElement -javax/swing/text/AbstractDocument$AbstractElement -javax/swing/tree/TreeNode -javax/swing/text/AbstractDocument$1 -javax/swing/text/AbstractDocument$BidiElement -javax/swing/text/AbstractDocument$LeafElement -javax/swing/text/GapContent$StickyPosition -javax/swing/text/Position -javax/swing/text/StyleContext$KeyEnumeration -javax/swing/text/GapContent$InsertUndo -javax/swing/undo/AbstractUndoableEdit -javax/swing/undo/UndoableEdit -javax/swing/text/AbstractDocument$DefaultDocumentEvent -javax/swing/event/DocumentEvent -javax/swing/undo/CompoundEdit -javax/swing/event/DocumentEvent$EventType -javax/swing/text/Segment -java/text/CharacterIterator +javax/swing/text/TabExpander +javax/swing/text/TextAction javax/swing/text/Utilities -javax/swing/text/SegmentCache -javax/swing/text/SegmentCache$CachedSegment -javax/swing/event/UndoableEditEvent -javax/swing/text/AbstractDocument$ElementEdit -javax/swing/event/DocumentEvent$ElementChange -java/net/Socket -java/net/InetAddress -java/net/InetAddress$Cache -java/net/InetAddress$Cache$Type -java/net/InetAddressImplFactory -java/net/Inet6AddressImpl -java/net/InetAddressImpl -java/net/InetAddress$1 -sun/net/spi/nameservice/NameService -sun/net/util/IPAddressUtil -java/util/regex/Matcher -java/util/regex/MatchResult -java/util/RandomAccessSubList -java/util/SubList -java/util/SubList$1 -java/util/AbstractList$ListItr -java/net/Inet4Address -java/net/InetSocketAddress -java/net/SocketAddress -java/net/Inet4AddressImpl -java/net/SocksSocketImpl -java/net/SocksConsts -java/net/PlainSocketImpl -java/net/SocketImpl -java/net/SocketOptions -java/net/SocketException -java/net/SocksSocketImpl$5 -java/net/ProxySelector -sun/net/spi/DefaultProxySelector -sun/net/spi/DefaultProxySelector$1 -sun/net/NetProperties -sun/net/NetProperties$1 -sun/net/spi/DefaultProxySelector$NonProxyInfo -java/util/regex/ASCII -java/util/regex/Pattern$GroupCurly -java/net/Inet6Address -java/net/URI -java/net/URI$Parser -java/net/Proxy -java/net/Proxy$Type -java/net/ConnectException -javax/swing/JMenu -javax/swing/MenuElement -javax/swing/JMenuItem -javax/swing/AbstractButton -java/awt/ItemSelectable -javax/swing/event/MenuListener -javax/swing/JCheckBoxMenuItem -javax/swing/Icon -javax/swing/JButton -java/awt/event/WindowListener -java/net/URLClassLoader$2 -javax/swing/ImageIcon -javax/swing/ImageIcon$1 -java/awt/MediaTracker -sun/misc/SoftCache$ValueCell -sun/awt/image/URLImageSource -sun/awt/image/InputStreamImageSource +javax/swing/text/View +javax/swing/text/ViewFactory +javax/swing/tree/AbstractLayoutCache +javax/swing/tree/AbstractLayoutCache$NodeDimensions +javax/swing/tree/DefaultMutableTreeNode +javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration +javax/swing/tree/DefaultTreeCellEditor +javax/swing/tree/DefaultTreeCellEditor$1 +javax/swing/tree/DefaultTreeCellEditor$DefaultTextField +javax/swing/tree/DefaultTreeCellEditor$EditorContainer +javax/swing/tree/DefaultTreeCellRenderer +javax/swing/tree/DefaultTreeModel +javax/swing/tree/DefaultTreeSelectionModel +javax/swing/tree/MutableTreeNode +javax/swing/tree/PathPlaceHolder +javax/swing/tree/RowMapper +javax/swing/tree/TreeCellEditor +javax/swing/tree/TreeCellRenderer +javax/swing/tree/TreeModel +javax/swing/tree/TreeNode +javax/swing/tree/TreePath +javax/swing/tree/TreeSelectionModel +javax/swing/tree/VariableHeightLayoutCache +javax/swing/tree/VariableHeightLayoutCache$TreeStateNode +javax/swing/undo/AbstractUndoableEdit +javax/swing/undo/CompoundEdit +javax/swing/undo/UndoableEdit +javax/xml/parsers/DocumentBuilder +javax/xml/parsers/DocumentBuilderFactory +javax/xml/parsers/FactoryFinder +javax/xml/parsers/FactoryFinder$1 +javax/xml/parsers/ParserConfigurationException +javax/xml/parsers/SecuritySupport +javax/xml/parsers/SecuritySupport$2 +javax/xml/parsers/SecuritySupport$5 +org/w3c/dom/Attr +org/w3c/dom/CDATASection +org/w3c/dom/CharacterData +org/w3c/dom/Comment +org/w3c/dom/DOMException +org/w3c/dom/Document +org/w3c/dom/DocumentFragment +org/w3c/dom/DocumentType +org/w3c/dom/Element +org/w3c/dom/Entity +org/w3c/dom/EntityReference +org/w3c/dom/NamedNodeMap +org/w3c/dom/Node +org/w3c/dom/NodeList +org/w3c/dom/Notation +org/w3c/dom/ProcessingInstruction +org/w3c/dom/Text +org/w3c/dom/events/DocumentEvent +org/w3c/dom/events/Event +org/w3c/dom/events/EventException +org/w3c/dom/events/EventTarget +org/w3c/dom/events/MutationEvent +org/w3c/dom/ranges/DocumentRange +org/w3c/dom/ranges/Range +org/w3c/dom/traversal/DocumentTraversal +org/w3c/dom/traversal/NodeIterator +org/w3c/dom/traversal/TreeWalker +org/xml/sax/AttributeList +org/xml/sax/ContentHandler +org/xml/sax/DTDHandler +org/xml/sax/EntityResolver +org/xml/sax/ErrorHandler +org/xml/sax/InputSource +org/xml/sax/Locator +org/xml/sax/SAXException +org/xml/sax/SAXNotRecognizedException +org/xml/sax/SAXNotSupportedException +org/xml/sax/SAXParseException +org/xml/sax/helpers/DefaultHandler +sun/awt/AWTAccessor +sun/awt/AWTAccessor$AWTEventAccessor +sun/awt/AWTAccessor$ClientPropertyKeyAccessor +sun/awt/AWTAccessor$ComponentAccessor +sun/awt/AWTAccessor$ContainerAccessor +sun/awt/AWTAccessor$CursorAccessor +sun/awt/AWTAccessor$DefaultKeyboardFocusManagerAccessor +sun/awt/AWTAccessor$EventQueueAccessor +sun/awt/AWTAccessor$FrameAccessor +sun/awt/AWTAccessor$InputEventAccessor +sun/awt/AWTAccessor$InvocationEventAccessor +sun/awt/AWTAccessor$KeyEventAccessor +sun/awt/AWTAccessor$KeyboardFocusManagerAccessor +sun/awt/AWTAccessor$SequencedEventAccessor +sun/awt/AWTAccessor$ToolkitAccessor +sun/awt/AWTAccessor$WindowAccessor +sun/awt/AWTAutoShutdown +sun/awt/AWTIcon64_java_icon16_png +sun/awt/AWTIcon64_java_icon24_png +sun/awt/AWTIcon64_java_icon32_png +sun/awt/AWTIcon64_java_icon48_png +sun/awt/AppContext +sun/awt/AppContext$1 +sun/awt/AppContext$2 +sun/awt/AppContext$3 +sun/awt/AppContext$6 +sun/awt/AppContext$GetAppContextLock +sun/awt/AppContext$State +sun/awt/CausedFocusEvent +sun/awt/CausedFocusEvent$Cause +sun/awt/ComponentFactory +sun/awt/ConstrainableGraphics +sun/awt/DisplayChangedListener +sun/awt/EmbeddedFrame +sun/awt/EventQueueDelegate +sun/awt/EventQueueItem +sun/awt/FontConfiguration +sun/awt/FontConfiguration$1 +sun/awt/FontDescriptor +sun/awt/GlobalCursorManager +sun/awt/GlobalCursorManager$NativeUpdater +sun/awt/HeadlessToolkit +sun/awt/IconInfo +sun/awt/InputMethodSupport +sun/awt/KeyboardFocusManagerPeerImpl +sun/awt/KeyboardFocusManagerPeerProvider +sun/awt/LightweightFrame +sun/awt/ModalityListener +sun/awt/MostRecentKeyValue +sun/awt/NullComponentPeer +sun/awt/OSInfo +sun/awt/OSInfo$1 +sun/awt/OSInfo$OSType +sun/awt/OSInfo$WindowsVersion +sun/awt/PaintEventDispatcher +sun/awt/PeerEvent +sun/awt/PostEventQueue +sun/awt/RepaintArea +sun/awt/RequestFocusController +sun/awt/SubRegionShowable +sun/awt/SunDisplayChanger +sun/awt/SunGraphicsCallback +sun/awt/SunHints +sun/awt/SunHints$Key +sun/awt/SunHints$LCDContrastKey +sun/awt/SunHints$Value +sun/awt/SunToolkit +sun/awt/SunToolkit$ModalityListenerList +sun/awt/TimedWindowEvent +sun/awt/UNIXToolkit +sun/awt/WindowClosingListener +sun/awt/WindowClosingSupport +sun/awt/X11/AwtGraphicsConfigData +sun/awt/X11/AwtScreenData +sun/awt/X11/MotifColorUtilities +sun/awt/X11/MotifDnDConstants +sun/awt/X11/MotifDnDDragSourceProtocol +sun/awt/X11/MotifDnDDropTargetProtocol +sun/awt/X11/Native +sun/awt/X11/Native$1 +sun/awt/X11/OwnershipListener +sun/awt/X11/PropMwmHints +sun/awt/X11/UnsafeXDisposerRecord +sun/awt/X11/WindowDimensions +sun/awt/X11/WindowPropertyGetter +sun/awt/X11/XAWTXSettings +sun/awt/X11/XAnyEvent +sun/awt/X11/XAtom +sun/awt/X11/XAtomList +sun/awt/X11/XAwtState +sun/awt/X11/XBaseWindow +sun/awt/X11/XBaseWindow$1 +sun/awt/X11/XBaseWindow$InitialiseState +sun/awt/X11/XBaseWindow$StateLock +sun/awt/X11/XCanvasPeer +sun/awt/X11/XClientMessageEvent +sun/awt/X11/XClipboard +sun/awt/X11/XComponentPeer +sun/awt/X11/XComponentPeer$1 +sun/awt/X11/XConfigureEvent +sun/awt/X11/XContentWindow +sun/awt/X11/XCreateWindowParams +sun/awt/X11/XDecoratedPeer +sun/awt/X11/XDnDConstants +sun/awt/X11/XDnDDragSourceProtocol +sun/awt/X11/XDnDDropTargetProtocol +sun/awt/X11/XDragAndDropProtocols +sun/awt/X11/XDragSourceContextPeer +sun/awt/X11/XDragSourceProtocol +sun/awt/X11/XDragSourceProtocolListener +sun/awt/X11/XDropTargetContextPeer +sun/awt/X11/XDropTargetContextPeer$XDropTargetProtocolListenerImpl +sun/awt/X11/XDropTargetEventProcessor +sun/awt/X11/XDropTargetProtocol +sun/awt/X11/XDropTargetProtocolListener +sun/awt/X11/XDropTargetRegistry +sun/awt/X11/XEmbeddedFramePeer +sun/awt/X11/XErrorEvent +sun/awt/X11/XErrorHandler +sun/awt/X11/XErrorHandler$IgnoreBadWindowHandler +sun/awt/X11/XErrorHandler$VerifyChangePropertyHandler +sun/awt/X11/XErrorHandler$XBaseErrorHandler +sun/awt/X11/XErrorHandler$XErrorHandlerWithFlag +sun/awt/X11/XErrorHandler$XShmAttachHandler +sun/awt/X11/XErrorHandlerUtil +sun/awt/X11/XEvent +sun/awt/X11/XEventDispatcher +sun/awt/X11/XExposeEvent +sun/awt/X11/XFocusChangeEvent +sun/awt/X11/XFocusProxyWindow +sun/awt/X11/XFramePeer +sun/awt/X11/XGlobalCursorManager +sun/awt/X11/XInputMethod +sun/awt/X11/XInputMethodDescriptor +sun/awt/X11/XKeyboardFocusManagerPeer +sun/awt/X11/XLabelPeer +sun/awt/X11/XLayerProtocol +sun/awt/X11/XMSelection +sun/awt/X11/XMSelection$1 +sun/awt/X11/XMSelection$3 +sun/awt/X11/XMSelectionListener +sun/awt/X11/XModifierKeymap +sun/awt/X11/XNETProtocol +sun/awt/X11/XPanelPeer +sun/awt/X11/XPropertyCache +sun/awt/X11/XPropertyEvent +sun/awt/X11/XProtocol +sun/awt/X11/XRepaintArea +sun/awt/X11/XReparentEvent +sun/awt/X11/XRootWindow +sun/awt/X11/XSelection +sun/awt/X11/XSelection$IncrementalTransferHandler +sun/awt/X11/XSelection$SelectionEventHandler +sun/awt/X11/XSetWindowAttributes +sun/awt/X11/XSizeHints +sun/awt/X11/XStateProtocol +sun/awt/X11/XSystemTrayPeer +sun/awt/X11/XToolkit +sun/awt/X11/XToolkit$1 +sun/awt/X11/XToolkit$2 +sun/awt/X11/XToolkit$2$1 +sun/awt/X11/XToolkit$3 +sun/awt/X11/XToolkit$4 +sun/awt/X11/XToolkit$5 +sun/awt/X11/XTranslateCoordinates +sun/awt/X11/XUnmapEvent +sun/awt/X11/XVisibilityEvent +sun/awt/X11/XVisualInfo +sun/awt/X11/XWINProtocol +sun/awt/X11/XWM +sun/awt/X11/XWM$1 +sun/awt/X11/XWMHints +sun/awt/X11/XWindow +sun/awt/X11/XWindowAttributes +sun/awt/X11/XWindowAttributesData +sun/awt/X11/XWindowPeer +sun/awt/X11/XWindowPeer$2 +sun/awt/X11/XWindowPeer$4 +sun/awt/X11/XWrapperBase +sun/awt/X11/XlibUtil +sun/awt/X11/XlibWrapper +sun/awt/X11ComponentPeer +sun/awt/X11FontManager +sun/awt/X11GraphicsConfig +sun/awt/X11GraphicsConfig$X11GCDisposerRecord +sun/awt/X11GraphicsDevice +sun/awt/X11GraphicsEnvironment +sun/awt/X11GraphicsEnvironment$1 +sun/awt/X11InputMethod +sun/awt/X11InputMethodDescriptor +sun/awt/XSettings +sun/awt/XSettings$Update +sun/awt/datatransfer/SunClipboard +sun/awt/dnd/SunDragSourceContextPeer +sun/awt/dnd/SunDropTargetContextPeer +sun/awt/dnd/SunDropTargetEvent +sun/awt/event/IgnorePaintEvent +sun/awt/im/ExecutableInputMethodManager +sun/awt/im/ExecutableInputMethodManager$3 +sun/awt/im/InputContext +sun/awt/im/InputMethodAdapter +sun/awt/im/InputMethodContext +sun/awt/im/InputMethodLocator +sun/awt/im/InputMethodManager +sun/awt/image/BufImgSurfaceData +sun/awt/image/BufImgSurfaceData$ICMColorData +sun/awt/image/BufImgSurfaceManager +sun/awt/image/BufferedImageGraphicsConfig +sun/awt/image/ByteComponentRaster +sun/awt/image/ByteInterleavedRaster +sun/awt/image/BytePackedRaster +sun/awt/image/FetcherInfo +sun/awt/image/GifFrame +sun/awt/image/GifImageDecoder +sun/awt/image/ImageConsumerQueue +sun/awt/image/ImageDecoder +sun/awt/image/ImageDecoder$1 sun/awt/image/ImageFetchable -sun/awt/image/ToolkitImage -java/awt/Image$1 -sun/awt/image/SurfaceManager$ImageAccessor -sun/awt/image/SurfaceManager -sun/awt/image/NativeLibLoader -java/awt/ImageMediaEntry -java/awt/MediaEntry +sun/awt/image/ImageFetcher +sun/awt/image/ImageFetcher$1 sun/awt/image/ImageRepresentation -java/awt/image/ImageConsumer sun/awt/image/ImageWatched sun/awt/image/ImageWatched$Link sun/awt/image/ImageWatched$WeakLink -sun/awt/image/ImageConsumerQueue -sun/awt/image/ImageFetcher -sun/awt/image/FetcherInfo -sun/awt/image/ImageFetcher$1 -sun/awt/image/GifImageDecoder -sun/awt/image/ImageDecoder -sun/awt/image/GifFrame -java/awt/image/Raster -java/awt/image/DataBufferByte -java/awt/image/DataBuffer -java/awt/image/PixelInterleavedSampleModel -java/awt/image/ComponentSampleModel -java/awt/image/SampleModel -sun/awt/image/ByteInterleavedRaster -sun/awt/image/ByteComponentRaster +sun/awt/image/InputStreamImageSource +sun/awt/image/IntegerComponentRaster +sun/awt/image/IntegerInterleavedRaster +sun/awt/image/NativeLibLoader +sun/awt/image/NativeLibLoader$1 +sun/awt/image/OffScreenImage +sun/awt/image/PNGFilterInputStream +sun/awt/image/PNGImageDecoder +sun/awt/image/PixelConverter +sun/awt/image/PixelConverter$Argb +sun/awt/image/PixelConverter$ArgbBm +sun/awt/image/PixelConverter$ArgbPre +sun/awt/image/PixelConverter$Bgrx +sun/awt/image/PixelConverter$ByteGray +sun/awt/image/PixelConverter$Rgba +sun/awt/image/PixelConverter$RgbaPre +sun/awt/image/PixelConverter$Rgbx +sun/awt/image/PixelConverter$Ushort4444Argb +sun/awt/image/PixelConverter$Ushort555Rgb +sun/awt/image/PixelConverter$Ushort555Rgbx +sun/awt/image/PixelConverter$Ushort565Rgb +sun/awt/image/PixelConverter$UshortGray +sun/awt/image/PixelConverter$Xbgr +sun/awt/image/PixelConverter$Xrgb +sun/awt/image/SunVolatileImage sun/awt/image/SunWritableRaster -java/awt/image/WritableRaster -java/awt/image/BufferedImage -java/awt/image/WritableRenderedImage -java/awt/image/RenderedImage -sun/awt/image/IntegerComponentRaster -sun/awt/image/BytePackedRaster -java/awt/Canvas +sun/awt/image/SunWritableRaster$DataStealer +sun/awt/image/SurfaceManager +sun/awt/image/SurfaceManager$FlushableCacheData +sun/awt/image/SurfaceManager$ImageAccessor +sun/awt/image/SurfaceManager$ProxiedGraphicsConfig +sun/awt/image/ToolkitImage +sun/awt/image/URLImageSource +sun/awt/image/VolatileSurfaceManager +sun/awt/motif/MFontConfiguration +sun/awt/resources/awt +sun/awt/util/IdentityArrayList +sun/dc/DuctusRenderingEngine +sun/font/AttributeValues +sun/font/CMap +sun/font/CMap$CMapFormat12 +sun/font/CMap$NullCMapClass +sun/font/CharToGlyphMapper +sun/font/CompositeFont +sun/font/CompositeFontDescriptor +sun/font/CompositeGlyphMapper +sun/font/CompositeStrike +sun/font/CoreMetrics +sun/font/EAttribute +sun/font/FcFontConfiguration +sun/font/FileFont +sun/font/FileFontStrike +sun/font/Font2D +sun/font/Font2DHandle +sun/font/FontAccess +sun/font/FontConfigManager +sun/font/FontConfigManager$FcCompFont +sun/font/FontConfigManager$FontConfigFont +sun/font/FontConfigManager$FontConfigInfo sun/font/FontDesignMetrics +sun/font/FontDesignMetrics$KeyReference +sun/font/FontDesignMetrics$MetricsKey +sun/font/FontFamily +sun/font/FontLineMetrics +sun/font/FontManager +sun/font/FontManagerFactory +sun/font/FontManagerFactory$1 +sun/font/FontManagerForSGE +sun/font/FontManagerNativeLibrary +sun/font/FontManagerNativeLibrary$1 +sun/font/FontScaler +sun/font/FontStrike sun/font/FontStrikeDesc -sun/font/CompositeStrike sun/font/FontStrikeDisposer -sun/font/StrikeCache$SoftDisposerRef +sun/font/FontUtilities +sun/font/FontUtilities$1 +sun/font/GlyphDisposedListener +sun/font/GlyphList +sun/font/PhysicalFont +sun/font/PhysicalStrike +sun/font/StandardGlyphVector +sun/font/StandardGlyphVector$GlyphStrike +sun/font/StrikeCache +sun/font/StrikeCache$1 sun/font/StrikeCache$DisposableStrike -sun/font/TrueTypeFont$TTDisposerRecord +sun/font/StrikeCache$SoftDisposerRef +sun/font/StrikeMetrics +sun/font/SunFontManager +sun/font/SunFontManager$1 +sun/font/SunFontManager$11 +sun/font/SunFontManager$13 +sun/font/SunFontManager$2 +sun/font/SunFontManager$3 +sun/font/SunFontManager$FontRegistrationInfo +sun/font/SunFontManager$T1Filter +sun/font/SunFontManager$TTFilter +sun/font/T2KFontScaler +sun/font/T2KFontScaler$1 +sun/font/TrueTypeFont sun/font/TrueTypeFont$1 -java/io/RandomAccessFile +sun/font/TrueTypeFont$DirectoryEntry +sun/font/TrueTypeFont$TTDisposerRecord +sun/font/TrueTypeGlyphMapper +sun/font/Type1Font +sun/font/Type1Font$1 +sun/font/XRGlyphCache +sun/font/XRGlyphCacheEntry +sun/font/XRTextRenderer +sun/java2d/BackBufferCapsProvider +sun/java2d/DefaultDisposerRecord +sun/java2d/DestSurfaceProvider +sun/java2d/Disposer +sun/java2d/Disposer$1 +sun/java2d/Disposer$2 +sun/java2d/Disposer$PollDisposable +sun/java2d/DisposerRecord +sun/java2d/DisposerTarget +sun/java2d/FontSupport +sun/java2d/InvalidPipeException +sun/java2d/NullSurfaceData +sun/java2d/StateTrackable +sun/java2d/StateTrackable$State +sun/java2d/StateTrackableDelegate +sun/java2d/StateTrackableDelegate$1 +sun/java2d/StateTrackableDelegate$2 +sun/java2d/StateTracker +sun/java2d/StateTracker$1 +sun/java2d/StateTracker$2 +sun/java2d/SunGraphics2D +sun/java2d/SunGraphicsEnvironment +sun/java2d/SunGraphicsEnvironment$1 +sun/java2d/Surface +sun/java2d/SurfaceData +sun/java2d/SurfaceData$PixelToPgramLoopConverter +sun/java2d/SurfaceData$PixelToShapeLoopConverter +sun/java2d/SurfaceDataProxy +sun/java2d/SurfaceDataProxy$1 +sun/java2d/SurfaceManagerFactory +sun/java2d/UnixSurfaceManagerFactory +sun/java2d/cmm/CMSManager +sun/java2d/cmm/ProfileActivator +sun/java2d/cmm/ProfileDeferralInfo +sun/java2d/cmm/ProfileDeferralMgr +sun/java2d/jules/JulesPathBuf +sun/java2d/jules/JulesPathBuf$1 +sun/java2d/loops/Blit +sun/java2d/loops/BlitBg +sun/java2d/loops/CompositeType +sun/java2d/loops/CustomComponent +sun/java2d/loops/DrawGlyphList +sun/java2d/loops/DrawGlyphListAA +sun/java2d/loops/DrawGlyphListLCD +sun/java2d/loops/DrawLine +sun/java2d/loops/DrawParallelogram +sun/java2d/loops/DrawPath +sun/java2d/loops/DrawPolygons +sun/java2d/loops/DrawRect +sun/java2d/loops/FillParallelogram +sun/java2d/loops/FillPath +sun/java2d/loops/FillRect +sun/java2d/loops/FillSpans +sun/java2d/loops/FontInfo +sun/java2d/loops/GeneralRenderer +sun/java2d/loops/GraphicsPrimitive +sun/java2d/loops/GraphicsPrimitiveMgr +sun/java2d/loops/GraphicsPrimitiveMgr$1 +sun/java2d/loops/GraphicsPrimitiveMgr$2 +sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec +sun/java2d/loops/GraphicsPrimitiveProxy +sun/java2d/loops/MaskBlit +sun/java2d/loops/MaskFill +sun/java2d/loops/ProcessPath +sun/java2d/loops/ProcessPath$1 +sun/java2d/loops/ProcessPath$ActiveEdgeList +sun/java2d/loops/ProcessPath$DrawHandler +sun/java2d/loops/ProcessPath$Edge +sun/java2d/loops/ProcessPath$EndSubPathHandler +sun/java2d/loops/ProcessPath$FillData +sun/java2d/loops/ProcessPath$FillProcessHandler +sun/java2d/loops/ProcessPath$Point +sun/java2d/loops/ProcessPath$ProcessHandler +sun/java2d/loops/RenderCache +sun/java2d/loops/RenderCache$Entry +sun/java2d/loops/RenderLoops +sun/java2d/loops/ScaledBlit +sun/java2d/loops/SurfaceType +sun/java2d/loops/TransformBlit +sun/java2d/loops/TransformHelper +sun/java2d/loops/XORComposite +sun/java2d/opengl/GLXGraphicsConfig +sun/java2d/opengl/OGLGraphicsConfig +sun/java2d/pipe/AAShapePipe +sun/java2d/pipe/AATextRenderer +sun/java2d/pipe/AlphaColorPipe +sun/java2d/pipe/AlphaPaintPipe +sun/java2d/pipe/CompositePipe +sun/java2d/pipe/DrawImage +sun/java2d/pipe/DrawImagePipe +sun/java2d/pipe/GeneralCompositePipe +sun/java2d/pipe/GlyphListLoopPipe +sun/java2d/pipe/GlyphListPipe +sun/java2d/pipe/LCDTextRenderer +sun/java2d/pipe/LoopBasedPipe +sun/java2d/pipe/LoopPipe +sun/java2d/pipe/NullPipe +sun/java2d/pipe/OutlineTextRenderer +sun/java2d/pipe/ParallelogramPipe +sun/java2d/pipe/PixelDrawPipe +sun/java2d/pipe/PixelFillPipe +sun/java2d/pipe/PixelToParallelogramConverter +sun/java2d/pipe/PixelToShapeConverter +sun/java2d/pipe/Region +sun/java2d/pipe/Region$ImmutableRegion +sun/java2d/pipe/RegionIterator +sun/java2d/pipe/RenderingEngine +sun/java2d/pipe/RenderingEngine$1 +sun/java2d/pipe/ShapeDrawPipe +sun/java2d/pipe/SolidTextRenderer +sun/java2d/pipe/SpanClipRenderer +sun/java2d/pipe/SpanShapeRenderer +sun/java2d/pipe/SpanShapeRenderer$Composite +sun/java2d/pipe/TextPipe +sun/java2d/pipe/TextRenderer +sun/java2d/pipe/ValidatePipe +sun/java2d/pipe/hw/AccelGraphicsConfig +sun/java2d/pipe/hw/BufferedContextProvider +sun/java2d/x11/X11SurfaceData +sun/java2d/x11/X11SurfaceData$LazyPipe +sun/java2d/x11/XSurfaceData +sun/java2d/xr/DirtyRegion +sun/java2d/xr/GrowableEltArray +sun/java2d/xr/GrowableIntArray +sun/java2d/xr/GrowableRectArray +sun/java2d/xr/MaskTile +sun/java2d/xr/MaskTileManager +sun/java2d/xr/MutableInteger +sun/java2d/xr/XRBackend +sun/java2d/xr/XRBackendNative +sun/java2d/xr/XRColor +sun/java2d/xr/XRCompositeManager +sun/java2d/xr/XRCompositeManager$1 +sun/java2d/xr/XRDrawImage +sun/java2d/xr/XRDrawLine +sun/java2d/xr/XRGraphicsConfig +sun/java2d/xr/XRMaskBlit +sun/java2d/xr/XRMaskFill +sun/java2d/xr/XRMaskImage +sun/java2d/xr/XRPMBlit +sun/java2d/xr/XRPMBlitLoops +sun/java2d/xr/XRPMScaledBlit +sun/java2d/xr/XRPMTransformedBlit +sun/java2d/xr/XRPaints +sun/java2d/xr/XRPaints$XRGradient +sun/java2d/xr/XRPaints$XRLinearGradient +sun/java2d/xr/XRPaints$XRRadialGradient +sun/java2d/xr/XRPaints$XRTexture +sun/java2d/xr/XRRenderer +sun/java2d/xr/XRRenderer$XRDrawHandler +sun/java2d/xr/XRSolidSrcPict +sun/java2d/xr/XRSurfaceData +sun/java2d/xr/XRSurfaceData$XRInternalSurfaceData +sun/java2d/xr/XRSurfaceData$XRPixmapSurfaceData +sun/java2d/xr/XRSurfaceData$XRWindowSurfaceData +sun/java2d/xr/XRSurfaceDataProxy +sun/java2d/xr/XRUtils +sun/java2d/xr/XRVolatileSurfaceManager +sun/java2d/xr/XrSwToPMBlit +sun/java2d/xr/XrSwToPMScaledBlit +sun/java2d/xr/XrSwToPMTransformedBlit +sun/launcher/LauncherHelper +sun/launcher/LauncherHelper$FXHelper +sun/misc/ASCIICaseInsensitiveComparator +sun/misc/Cleaner +sun/misc/CompoundEnumeration +sun/misc/ExtensionDependency +sun/misc/FDBigInteger +sun/misc/FileURLMapper +sun/misc/FloatingDecimal +sun/misc/FloatingDecimal$1 +sun/misc/FloatingDecimal$ASCIIToBinaryBuffer +sun/misc/FloatingDecimal$ASCIIToBinaryConverter +sun/misc/FloatingDecimal$BinaryToASCIIBuffer +sun/misc/FloatingDecimal$BinaryToASCIIConverter +sun/misc/FloatingDecimal$ExceptionalBinaryToASCIIBuffer +sun/misc/FloatingDecimal$PreparedASCIIToBinaryBuffer +sun/misc/IOUtils +sun/misc/JarIndex +sun/misc/JavaAWTAccess +sun/misc/JavaIOFileDescriptorAccess +sun/misc/JavaLangAccess +sun/misc/JavaNetAccess +sun/misc/JavaNioAccess +sun/misc/JavaSecurityAccess +sun/misc/JavaSecurityProtectionDomainAccess +sun/misc/JavaUtilJarAccess +sun/misc/JavaUtilZipFileAccess +sun/misc/Launcher +sun/misc/Launcher$AppClassLoader +sun/misc/Launcher$AppClassLoader$1 +sun/misc/Launcher$BootClassPathHolder +sun/misc/Launcher$BootClassPathHolder$1 +sun/misc/Launcher$ExtClassLoader +sun/misc/Launcher$ExtClassLoader$1 +sun/misc/Launcher$Factory +sun/misc/MetaIndex +sun/misc/NativeSignalHandler +sun/misc/OSEnvironment +sun/misc/Perf +sun/misc/Perf$GetPerfAction +sun/misc/PerfCounter +sun/misc/PerfCounter$CoreCounters +sun/misc/PerformanceLogger +sun/misc/PerformanceLogger$TimeData +sun/misc/PostVMInitHook +sun/misc/Resource +sun/misc/SharedSecrets +sun/misc/Signal +sun/misc/SignalHandler +sun/misc/SoftCache +sun/misc/SoftCache$ValueCell +sun/misc/URLClassPath +sun/misc/URLClassPath$1 +sun/misc/URLClassPath$2 +sun/misc/URLClassPath$3 +sun/misc/URLClassPath$FileLoader +sun/misc/URLClassPath$JarLoader +sun/misc/URLClassPath$JarLoader$1 +sun/misc/URLClassPath$JarLoader$2 +sun/misc/URLClassPath$Loader +sun/misc/Unsafe +sun/misc/VM +sun/misc/Version +sun/net/DefaultProgressMeteringPolicy +sun/net/InetAddressCachePolicy +sun/net/InetAddressCachePolicy$1 +sun/net/InetAddressCachePolicy$2 +sun/net/NetHooks +sun/net/NetHooks$Provider +sun/net/NetProperties +sun/net/NetProperties$1 +sun/net/ProgressMeteringPolicy +sun/net/ProgressMonitor +sun/net/ResourceManager +sun/net/sdp/SdpProvider +sun/net/spi/DefaultProxySelector +sun/net/spi/DefaultProxySelector$1 +sun/net/spi/DefaultProxySelector$3 +sun/net/spi/DefaultProxySelector$NonProxyInfo +sun/net/spi/nameservice/NameService +sun/net/util/IPAddressUtil +sun/net/util/URLUtil +sun/net/www/MessageHeader +sun/net/www/MimeEntry +sun/net/www/MimeTable +sun/net/www/MimeTable$1 +sun/net/www/MimeTable$DefaultInstanceHolder +sun/net/www/MimeTable$DefaultInstanceHolder$1 +sun/net/www/ParseUtil +sun/net/www/URLConnection +sun/net/www/protocol/file/FileURLConnection +sun/net/www/protocol/file/Handler +sun/net/www/protocol/http/Handler +sun/net/www/protocol/jar/Handler +sun/net/www/protocol/jar/JarFileFactory +sun/net/www/protocol/jar/JarURLConnection +sun/net/www/protocol/jar/JarURLConnection$JarURLInputStream +sun/net/www/protocol/jar/URLJarFile +sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController +sun/net/www/protocol/jar/URLJarFile$URLJarFileEntry +sun/nio/ByteBuffered +sun/nio/ch/DirectBuffer sun/nio/ch/FileChannelImpl -java/nio/channels/FileChannel -java/nio/channels/ByteChannel -java/nio/channels/ReadableByteChannel -java/nio/channels/Channel -java/nio/channels/WritableByteChannel -java/nio/channels/GatheringByteChannel -java/nio/channels/ScatteringByteChannel -java/nio/channels/spi/AbstractInterruptibleChannel -java/nio/channels/InterruptibleChannel -sun/nio/ch/Util +sun/nio/ch/FileChannelImpl$Unmapper +sun/nio/ch/FileDispatcher +sun/nio/ch/FileDispatcherImpl +sun/nio/ch/IOStatus sun/nio/ch/IOUtil -sun/nio/ch/FileDispatcher +sun/nio/ch/IOUtil$1 +sun/nio/ch/Interruptible sun/nio/ch/NativeDispatcher -sun/nio/ch/Reflect -java/nio/MappedByteBuffer -sun/nio/ch/Reflect$1 +sun/nio/ch/NativeThread sun/nio/ch/NativeThreadSet -java/nio/channels/spi/AbstractInterruptibleChannel$1 -sun/nio/ch/NativeThread -sun/nio/ch/IOStatus -sun/nio/ch/DirectBuffer -java/nio/DirectByteBuffer -java/nio/DirectByteBuffer$Deallocator -sun/misc/Cleaner -java/nio/ByteBufferAsIntBufferB -java/nio/IntBuffer -sun/font/TrueTypeFont$DirectoryEntry -java/nio/ByteBufferAsShortBufferB -java/nio/ShortBuffer +sun/nio/ch/Util +sun/nio/ch/Util$1 +sun/nio/ch/Util$4 +sun/nio/ch/Util$BufferCache +sun/nio/cs/AbstractCharsetProvider +sun/nio/cs/ArrayDecoder +sun/nio/cs/ArrayEncoder +sun/nio/cs/FastCharsetProvider +sun/nio/cs/HistoricallyNamedCharset +sun/nio/cs/ISO_8859_1 +sun/nio/cs/ISO_8859_1$Decoder +sun/nio/cs/ISO_8859_1$Encoder +sun/nio/cs/StandardCharsets +sun/nio/cs/StandardCharsets$Aliases +sun/nio/cs/StandardCharsets$Cache +sun/nio/cs/StandardCharsets$Classes +sun/nio/cs/StreamDecoder +sun/nio/cs/StreamEncoder +sun/nio/cs/Surrogate +sun/nio/cs/Surrogate$Parser +sun/nio/cs/US_ASCII +sun/nio/cs/US_ASCII$Decoder sun/nio/cs/UTF_16 sun/nio/cs/UTF_16$Decoder +sun/nio/cs/UTF_16BE +sun/nio/cs/UTF_16LE +sun/nio/cs/UTF_8 +sun/nio/cs/UTF_8$Decoder +sun/nio/cs/UTF_8$Encoder +sun/nio/cs/Unicode sun/nio/cs/UnicodeDecoder -sun/font/FileFontStrike -sun/font/TrueTypeGlyphMapper -sun/font/CMap -sun/font/CMap$NullCMapClass -sun/font/CMap$CMapFormat4 -java/nio/ByteBufferAsCharBufferB -sun/font/CMap$CMapFormat12 -java/awt/FontFormatException -sun/java2d/HeadlessGraphicsEnvironment -java/nio/charset/Charset$3 -sun/nio/cs/AbstractCharsetProvider -sun/font/NativeFont -java/lang/CharacterData00 -sun/font/CMap$CMapFormat2 -sun/font/FontDesignMetrics$KeyReference -sun/awt/image/PNGImageDecoder -sun/awt/image/PNGFilterInputStream -java/util/zip/InflaterInputStream -java/util/zip/Inflater -sun/reflect/UnsafeBooleanFieldAccessorImpl -sun/awt/event/IgnorePaintEvent -java/awt/image/DataBufferInt -java/awt/image/SinglePixelPackedSampleModel -sun/awt/image/IntegerInterleavedRaster -sun/awt/image/OffScreenImage -sun/awt/image/BufImgSurfaceData -sun/java2d/opengl/GLXGraphicsConfig -sun/java2d/opengl/OGLGraphicsConfig -sun/java2d/x11/X11SurfaceData$X11PixmapSurfaceData -sun/awt/image/WritableRasterNative -sun/awt/image/DataBufferNative -sun/java2d/SurfaceManagerFactory -sun/java2d/opengl/GLXSurfaceData -sun/java2d/opengl/OGLSurfaceData -sun/font/CompositeGlyphMapper -sun/java2d/loops/FontInfo -java/util/Date +sun/nio/cs/ext/DelegatableDecoder +sun/nio/cs/ext/DoubleByte +sun/nio/cs/ext/DoubleByte$Decoder +sun/nio/cs/ext/EUC_KR +sun/nio/cs/ext/ExtendedCharsets +sun/print/PrinterGraphicsConfig +sun/reflect/AccessorGenerator +sun/reflect/BootstrapConstructorAccessorImpl +sun/reflect/ByteVector +sun/reflect/ByteVectorFactory +sun/reflect/ByteVectorImpl +sun/reflect/CallerSensitive +sun/reflect/ClassDefiner +sun/reflect/ClassDefiner$1 +sun/reflect/ClassFileAssembler +sun/reflect/ClassFileConstants +sun/reflect/ConstantPool +sun/reflect/ConstructorAccessor +sun/reflect/ConstructorAccessorImpl +sun/reflect/DelegatingClassLoader +sun/reflect/DelegatingConstructorAccessorImpl +sun/reflect/DelegatingMethodAccessorImpl +sun/reflect/FieldAccessor +sun/reflect/FieldAccessorImpl +sun/reflect/Label +sun/reflect/Label$PatchInfo +sun/reflect/LangReflectAccess +sun/reflect/MagicAccessorImpl +sun/reflect/MethodAccessor +sun/reflect/MethodAccessorGenerator +sun/reflect/MethodAccessorGenerator$1 +sun/reflect/MethodAccessorImpl +sun/reflect/NativeConstructorAccessorImpl +sun/reflect/NativeMethodAccessorImpl +sun/reflect/Reflection +sun/reflect/ReflectionFactory +sun/reflect/ReflectionFactory$1 +sun/reflect/ReflectionFactory$GetReflectionFactoryAction +sun/reflect/SerializationConstructorAccessorImpl +sun/reflect/UTF8 +sun/reflect/UnsafeFieldAccessorFactory +sun/reflect/UnsafeFieldAccessorImpl +sun/reflect/UnsafeObjectFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticLongFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl +sun/reflect/UnsafeStaticFieldAccessorImpl +sun/reflect/annotation/AnnotationType +sun/reflect/generics/repository/AbstractRepository +sun/reflect/generics/repository/ClassRepository +sun/reflect/generics/repository/GenericDeclRepository +sun/reflect/misc/MethodUtil +sun/reflect/misc/MethodUtil$1 +sun/reflect/misc/ReflectUtil +sun/security/action/GetBooleanAction +sun/security/action/GetIntegerAction +sun/security/action/GetPropertyAction +sun/security/action/PutAllAction +sun/security/jca/GetInstance +sun/security/jca/GetInstance$Instance +sun/security/jca/ProviderConfig +sun/security/jca/ProviderConfig$1 +sun/security/jca/ProviderConfig$2 +sun/security/jca/ProviderConfig$3 +sun/security/jca/ProviderList +sun/security/jca/ProviderList$1 +sun/security/jca/ProviderList$2 +sun/security/jca/ProviderList$3 +sun/security/jca/ProviderList$ServiceList +sun/security/jca/ProviderList$ServiceList$1 +sun/security/jca/Providers +sun/security/jca/ServiceId +sun/security/pkcs/ContentInfo +sun/security/pkcs/PKCS7 +sun/security/pkcs/PKCS8Key +sun/security/pkcs/PKCS9Attribute +sun/security/pkcs/SignerInfo +sun/security/provider/ByteArrayAccess +sun/security/provider/DSAKeyFactory +sun/security/provider/DSAParameters +sun/security/provider/DSAPublicKey +sun/security/provider/DSAPublicKeyImpl +sun/security/provider/DigestBase +sun/security/provider/NativePRNG +sun/security/provider/NativePRNG$1 +sun/security/provider/NativePRNG$2 +sun/security/provider/NativePRNG$Blocking +sun/security/provider/NativePRNG$NonBlocking +sun/security/provider/NativePRNG$RandomIO +sun/security/provider/NativePRNG$Variant +sun/security/provider/SHA2 +sun/security/provider/SHA2$SHA256 +sun/security/provider/Sun +sun/security/provider/SunEntries +sun/security/provider/SunEntries$1 +sun/security/provider/X509Factory +sun/security/provider/certpath/X509CertPath +sun/security/rsa/RSACore +sun/security/rsa/RSAKeyFactory +sun/security/rsa/RSAPadding +sun/security/rsa/RSAPrivateCrtKeyImpl +sun/security/rsa/RSAPrivateKeyImpl +sun/security/rsa/RSAPublicKeyImpl +sun/security/rsa/RSASignature +sun/security/rsa/RSASignature$SHA256withRSA +sun/security/rsa/SunRsaSign +sun/security/rsa/SunRsaSignEntries +sun/security/util/BitArray +sun/security/util/ByteArrayLexOrder +sun/security/util/ByteArrayTagOrder +sun/security/util/Cache +sun/security/util/Cache$EqualByteArray +sun/security/util/Debug +sun/security/util/DerEncoder +sun/security/util/DerIndefLenConverter +sun/security/util/DerInputBuffer +sun/security/util/DerInputStream +sun/security/util/DerOutputStream +sun/security/util/DerValue +sun/security/util/Length +sun/security/util/ManifestDigester +sun/security/util/ManifestDigester$Entry +sun/security/util/ManifestDigester$Position +sun/security/util/ManifestEntryVerifier +sun/security/util/ManifestEntryVerifier$SunProviderHolder +sun/security/util/MemoryCache +sun/security/util/MemoryCache$CacheEntry +sun/security/util/MemoryCache$HardCacheEntry +sun/security/util/MemoryCache$SoftCacheEntry +sun/security/util/ObjectIdentifier +sun/security/util/PropertyExpander +sun/security/util/SignatureFileVerifier +sun/security/x509/AVA +sun/security/x509/AVAKeyword +sun/security/x509/AlgorithmId +sun/security/x509/AuthorityKeyIdentifierExtension +sun/security/x509/BasicConstraintsExtension +sun/security/x509/CertAttrSet +sun/security/x509/CertificateAlgorithmId +sun/security/x509/CertificateExtensions +sun/security/x509/CertificateSerialNumber +sun/security/x509/CertificateValidity +sun/security/x509/CertificateVersion +sun/security/x509/CertificateX509Key +sun/security/x509/Extension +sun/security/x509/GeneralName +sun/security/x509/GeneralNameInterface +sun/security/x509/GeneralNames +sun/security/x509/KeyIdentifier +sun/security/x509/KeyUsageExtension +sun/security/x509/NetscapeCertTypeExtension +sun/security/x509/NetscapeCertTypeExtension$MapEntry +sun/security/x509/OIDMap +sun/security/x509/OIDMap$OIDInfo +sun/security/x509/PKIXExtensions +sun/security/x509/RDN +sun/security/x509/RFC822Name +sun/security/x509/SerialNumber +sun/security/x509/SubjectAlternativeNameExtension +sun/security/x509/SubjectKeyIdentifierExtension +sun/security/x509/X500Name +sun/security/x509/X500Name$1 +sun/security/x509/X509AttributeName +sun/security/x509/X509CertImpl +sun/security/x509/X509CertInfo +sun/security/x509/X509Key +sun/swing/DefaultLookup +sun/swing/ImageIconUIResource +sun/swing/JLightweightFrame +sun/swing/MenuItemLayoutHelper +sun/swing/MenuItemLayoutHelper$ColumnAlignment +sun/swing/MenuItemLayoutHelper$LayoutResult +sun/swing/MenuItemLayoutHelper$RectSize +sun/swing/PrintColorUIResource +sun/swing/StringUIClientPropertyKey +sun/swing/SwingAccessor +sun/swing/SwingAccessor$JTextComponentAccessor +sun/swing/SwingLazyValue +sun/swing/SwingLazyValue$1 +sun/swing/SwingUtilities2 +sun/swing/SwingUtilities2$2 +sun/swing/SwingUtilities2$AATextInfo +sun/swing/SwingUtilities2$LSBCacheEntry +sun/swing/UIAction +sun/swing/UIClientPropertyKey +sun/swing/table/DefaultTableCellHeaderRenderer +sun/swing/table/DefaultTableCellHeaderRenderer$EmptyIcon +sun/text/ComposedCharIter +sun/text/IntHashtable +sun/text/UCompactIntArray +sun/text/normalizer/CharTrie +sun/text/normalizer/CharTrie$FriendAgent +sun/text/normalizer/ICUBinary +sun/text/normalizer/ICUBinary$Authenticate +sun/text/normalizer/ICUData +sun/text/normalizer/IntTrie +sun/text/normalizer/NormalizerBase +sun/text/normalizer/NormalizerBase$1 +sun/text/normalizer/NormalizerBase$Mode +sun/text/normalizer/NormalizerBase$NFCMode +sun/text/normalizer/NormalizerBase$NFDMode +sun/text/normalizer/NormalizerBase$NFKCMode +sun/text/normalizer/NormalizerBase$NFKDMode +sun/text/normalizer/NormalizerBase$QuickCheckResult +sun/text/normalizer/NormalizerDataReader +sun/text/normalizer/NormalizerImpl +sun/text/normalizer/NormalizerImpl$AuxTrieImpl +sun/text/normalizer/NormalizerImpl$DecomposeArgs +sun/text/normalizer/NormalizerImpl$FCDTrieImpl +sun/text/normalizer/NormalizerImpl$NormTrieImpl +sun/text/normalizer/Trie +sun/text/normalizer/Trie$DataManipulate +sun/text/normalizer/UTF16 +sun/text/normalizer/UnicodeMatcher +sun/text/normalizer/UnicodeSet +sun/text/resources/CollationData +sun/text/resources/FormatData +sun/text/resources/en/FormatData_en +sun/text/resources/en/FormatData_en_US +sun/util/CoreResourceBundleControl +sun/util/PreHashedMap +sun/util/ResourceBundleEnumeration +sun/util/calendar/AbstractCalendar +sun/util/calendar/BaseCalendar +sun/util/calendar/BaseCalendar$Date +sun/util/calendar/CalendarDate sun/util/calendar/CalendarSystem +sun/util/calendar/CalendarUtils sun/util/calendar/Gregorian -sun/util/calendar/BaseCalendar -sun/util/calendar/AbstractCalendar -java/util/TimeZone -java/lang/InheritableThreadLocal +sun/util/calendar/Gregorian$Date sun/util/calendar/ZoneInfo sun/util/calendar/ZoneInfoFile sun/util/calendar/ZoneInfoFile$1 -java/util/TimeZone$1 -sun/util/calendar/Gregorian$Date -sun/util/calendar/BaseCalendar$Date -sun/util/calendar/CalendarDate -sun/util/calendar/CalendarUtils -java/util/TimeZone$DisplayNames -sun/util/TimeZoneNameUtility +sun/util/calendar/ZoneInfoFile$Checksum +sun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule +sun/util/locale/BaseLocale +sun/util/locale/BaseLocale$Cache +sun/util/locale/BaseLocale$Key +sun/util/locale/LanguageTag +sun/util/locale/LocaleObjectCache +sun/util/locale/LocaleObjectCache$CacheEntry +sun/util/locale/LocaleUtils +sun/util/locale/provider/AuxLocaleProviderAdapter +sun/util/locale/provider/AuxLocaleProviderAdapter$NullProvider +sun/util/locale/provider/AvailableLanguageTags +sun/util/locale/provider/CalendarDataProviderImpl +sun/util/locale/provider/CalendarDataUtility +sun/util/locale/provider/CalendarDataUtility$CalendarWeekParameterGetter +sun/util/locale/provider/CalendarProviderImpl +sun/util/locale/provider/CollatorProviderImpl +sun/util/locale/provider/CurrencyNameProviderImpl +sun/util/locale/provider/DateFormatSymbolsProviderImpl +sun/util/locale/provider/DecimalFormatSymbolsProviderImpl +sun/util/locale/provider/JRELocaleProviderAdapter +sun/util/locale/provider/JRELocaleProviderAdapter$1 +sun/util/locale/provider/LocaleDataMetaInfo +sun/util/locale/provider/LocaleProviderAdapter +sun/util/locale/provider/LocaleProviderAdapter$1 +sun/util/locale/provider/LocaleProviderAdapter$Type +sun/util/locale/provider/LocaleResources +sun/util/locale/provider/LocaleResources$ResourceReference +sun/util/locale/provider/LocaleServiceProviderPool +sun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter +sun/util/locale/provider/NumberFormatProviderImpl +sun/util/locale/provider/ResourceBundleBasedAdapter +sun/util/locale/provider/SPILocaleProviderAdapter +sun/util/locale/provider/SPILocaleProviderAdapter$1 +sun/util/locale/provider/TimeZoneNameProviderImpl +sun/util/locale/provider/TimeZoneNameUtility +sun/util/locale/provider/TimeZoneNameUtility$TimeZoneNameGetter +sun/util/logging/LoggingProxy +sun/util/logging/LoggingSupport +sun/util/logging/LoggingSupport$1 +sun/util/logging/LoggingSupport$2 +sun/util/logging/PlatformLogger +sun/util/logging/PlatformLogger$1 +sun/util/logging/PlatformLogger$DefaultLoggerProxy +sun/util/logging/PlatformLogger$JavaLoggerProxy +sun/util/logging/PlatformLogger$Level +sun/util/logging/PlatformLogger$LoggerProxy +sun/util/logging/resources/logging +sun/util/resources/CalendarData +sun/util/resources/CurrencyNames sun/util/resources/LocaleData sun/util/resources/LocaleData$1 sun/util/resources/LocaleData$LocaleDataResourceBundleControl -sun/util/LocaleDataMetaInfo +sun/util/resources/LocaleNamesBundle +sun/util/resources/OpenListResourceBundle +sun/util/resources/ParallelListResourceBundle +sun/util/resources/ParallelListResourceBundle$KeySet sun/util/resources/TimeZoneNames sun/util/resources/TimeZoneNamesBundle -sun/util/resources/OpenListResourceBundle -java/util/ResourceBundle$BundleReference -sun/util/resources/TimeZoneNames_en -java/util/spi/TimeZoneNameProvider -java/util/spi/LocaleServiceProvider -sun/util/LocaleServiceProviderPool -sun/util/LocaleServiceProviderPool$1 -java/util/ServiceLoader -java/util/ServiceLoader$LazyIterator -java/util/ServiceLoader$1 -java/util/LinkedHashMap$EntryIterator -sun/misc/URLClassPath$2 -java/lang/ClassLoader$2 -sun/misc/URLClassPath$1 -java/net/URLClassLoader$3 -sun/misc/CompoundEnumeration -java/net/URLClassLoader$3$1 -java/lang/ProcessBuilder -java/lang/ProcessImpl -java/lang/UNIXProcess -java/lang/Process -java/lang/UNIXProcess$1 -java/lang/UNIXProcess$DeferredCloseInputStream -java/lang/UNIXProcess$2 -java/lang/UNIXProcess$2$1 -java/net/ServerSocket -java/util/Random -java/util/concurrent/atomic/AtomicLong -java/lang/InternalError -java/io/StringReader -java/lang/SecurityException -java/io/FilterReader -java/lang/reflect/Proxy -java/lang/reflect/InvocationHandler -java/lang/NoSuchFieldException -java/lang/InstantiationException -java/lang/ArrayIndexOutOfBoundsException -javax/swing/JDialog -sun/awt/X11/XClipboard -sun/awt/datatransfer/SunClipboard -java/awt/datatransfer/Clipboard -java/awt/datatransfer/SystemFlavorMap -java/awt/datatransfer/FlavorMap -java/awt/datatransfer/FlavorTable -java/awt/datatransfer/SystemFlavorMap$1 -sun/net/ProgressMonitor -sun/net/DefaultProgressMeteringPolicy -sun/net/ProgressMeteringPolicy -java/awt/datatransfer/SystemFlavorMap$2 -java/awt/datatransfer/MimeType -java/io/Externalizable -java/awt/datatransfer/MimeTypeParameterList -sun/awt/datatransfer/DataTransferer -java/util/Collections$SynchronizedSet -java/util/Collections$SynchronizedCollection -java/awt/datatransfer/DataFlavor -java/awt/datatransfer/DataFlavor$1 -sun/awt/datatransfer/DataTransferer$CharsetComparator -sun/awt/datatransfer/DataTransferer$IndexedComparator -sun/nio/cs/UTF_16LE -sun/nio/cs/UTF_16BE -sun/nio/cs/US_ASCII -sun/awt/datatransfer/DataTransferer$DataFlavorComparator -java/rmi/Remote -sun/awt/datatransfer/DataTransferer$1 -sun/awt/X11/XDataTransferer -sun/awt/datatransfer/ToolkitThreadBlockedHandler -javax/imageio/ImageTypeSpecifier -sun/awt/X11/XSelection -sun/security/action/GetIntegerAction -sun/awt/X11/XSelection$IncrementalTransferHandler -sun/awt/X11/XSelection$SelectionEventHandler -java/awt/datatransfer/Transferable -java/io/EOFException -java/util/Vector$1 -java/util/zip/ZipFile$1 -java/util/zip/ZipFile$2 -java/util/jar/JarFile$1 -java/util/PropertyResourceBundle -java/util/ResourceBundle$Control$1 -java/util/Hashtable$EntrySet -java/lang/IllegalAccessError -java/text/MessageFormat -java/text/Format -java/text/FieldPosition -java/text/MessageFormat$Field -java/text/Format$Field -java/lang/CloneNotSupportedException -sun/reflect/MethodAccessorGenerator -sun/reflect/AccessorGenerator -sun/reflect/ClassFileConstants -java/lang/Void -sun/reflect/ByteVectorFactory -sun/reflect/ByteVectorImpl -sun/reflect/ByteVector -sun/reflect/ClassFileAssembler -sun/reflect/UTF8 -sun/reflect/Label -sun/reflect/Label$PatchInfo -sun/reflect/MethodAccessorGenerator$1 -sun/reflect/ClassDefiner -sun/reflect/ClassDefiner$1 -sun/reflect/BootstrapConstructorAccessorImpl -java/awt/event/ActionListener -javax/swing/Timer -javax/swing/Timer$DoPostEvent -javax/swing/TimerQueue -javax/swing/TimerQueue$1 -javax/swing/ToolTipManager -java/awt/event/MouseAdapter -javax/swing/ToolTipManager$insideTimerAction -javax/swing/ToolTipManager$outsideTimerAction -javax/swing/ToolTipManager$stillInsideTimerAction -sun/swing/UIAction -javax/swing/Action -javax/swing/ToolTipManager$MoveBeforeEnterListener -java/awt/event/MouseMotionAdapter -java/util/Hashtable$ValueCollection -javax/swing/event/CaretListener -javax/swing/JToolBar -javax/swing/JSplitPane -javax/swing/border/Border -javax/swing/JToggleButton -javax/swing/border/EmptyBorder -javax/swing/border/AbstractBorder -javax/swing/DefaultButtonModel -javax/swing/ButtonModel -javax/swing/AbstractButton$Handler -javax/swing/event/ChangeListener -java/awt/event/ItemListener -javax/swing/plaf/metal/MetalButtonUI -javax/swing/plaf/basic/BasicButtonUI -javax/swing/plaf/ButtonUI -javax/swing/plaf/metal/MetalBorders -javax/swing/plaf/BorderUIResource$CompoundBorderUIResource -javax/swing/border/CompoundBorder -javax/swing/plaf/metal/MetalBorders$ButtonBorder -javax/swing/plaf/basic/BasicBorders$MarginBorder -javax/swing/plaf/basic/BasicButtonListener -java/awt/AWTEventMulticaster -java/awt/event/WindowFocusListener -java/awt/event/WindowStateListener -java/awt/event/AdjustmentListener -java/awt/event/TextListener -javax/swing/event/AncestorListener -java/beans/VetoableChangeListener -javax/swing/ButtonGroup -javax/swing/JToggleButton$ToggleButtonModel -javax/swing/plaf/metal/MetalToggleButtonUI -javax/swing/plaf/basic/BasicToggleButtonUI -javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder -java/awt/CardLayout -javax/swing/Box -javax/swing/plaf/metal/MetalBorders$TextFieldBorder -javax/swing/plaf/metal/MetalBorders$Flush3DBorder -javax/swing/BoxLayout -javax/swing/JMenuBar -javax/swing/DefaultSingleSelectionModel -javax/swing/SingleSelectionModel -javax/swing/plaf/basic/BasicMenuBarUI -javax/swing/plaf/MenuBarUI -javax/swing/plaf/basic/DefaultMenuLayout -javax/swing/plaf/metal/MetalBorders$MenuBarBorder -javax/swing/plaf/basic/BasicMenuBarUI$Handler -javax/swing/KeyboardManager -javax/swing/event/MenuEvent -javax/swing/JMenu$MenuChangeListener -javax/swing/JMenuItem$MenuItemFocusListener -javax/swing/plaf/basic/BasicMenuUI -javax/swing/plaf/basic/BasicMenuItemUI -javax/swing/plaf/MenuItemUI -javax/swing/plaf/metal/MetalBorders$MenuItemBorder -javax/swing/plaf/metal/MetalIconFactory -javax/swing/plaf/metal/MetalIconFactory$MenuArrowIcon -javax/swing/plaf/basic/BasicMenuUI$Handler -javax/swing/event/MenuKeyListener -javax/swing/plaf/basic/BasicMenuItemUI$Handler -javax/swing/event/MenuDragMouseListener -javax/swing/event/MouseInputListener -javax/swing/event/ChangeEvent -java/awt/event/ContainerEvent -javax/swing/plaf/metal/MetalIconFactory$MenuItemArrowIcon -javax/swing/JPopupMenu -javax/swing/plaf/basic/BasicPopupMenuUI -javax/swing/plaf/PopupMenuUI -javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper -java/awt/event/AWTEventListenerProxy -java/awt/Toolkit$SelectiveAWTEventListener -java/awt/Toolkit$ToolkitEventMulticaster -javax/swing/plaf/basic/BasicLookAndFeel$1 -javax/swing/plaf/metal/MetalBorders$PopupMenuBorder -javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener -javax/swing/event/PopupMenuListener -javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener -javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber -javax/swing/MenuSelectionManager -javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper -javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper$1 -java/awt/event/FocusAdapter -javax/swing/JMenu$WinListener -java/awt/event/WindowAdapter -javax/swing/JPopupMenu$Separator -javax/swing/JSeparator -javax/swing/plaf/metal/MetalPopupMenuSeparatorUI -javax/swing/plaf/metal/MetalSeparatorUI -javax/swing/plaf/basic/BasicSeparatorUI -javax/swing/plaf/SeparatorUI -javax/swing/JComboBox -javax/swing/event/ListDataListener -javax/swing/event/CaretEvent -javax/swing/text/TabExpander -javax/swing/JScrollBar -java/awt/Adjustable -javax/swing/event/MouseInputAdapter -javax/swing/JScrollBar$ModelListener -javax/swing/DefaultBoundedRangeModel -javax/swing/BoundedRangeModel -javax/swing/plaf/metal/MetalScrollBarUI -javax/swing/plaf/basic/BasicScrollBarUI -javax/swing/plaf/ScrollBarUI -javax/swing/plaf/metal/MetalBumps -javax/swing/plaf/metal/MetalScrollButton -javax/swing/plaf/basic/BasicArrowButton -javax/swing/plaf/basic/BasicScrollBarUI$TrackListener -javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener -javax/swing/plaf/basic/BasicScrollBarUI$ModelListener -javax/swing/plaf/metal/MetalScrollBarUI$ScrollBarListener -javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler -javax/swing/plaf/basic/BasicScrollBarUI$Handler -javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener -javax/swing/CellRendererPane -javax/swing/border/MatteBorder -sun/font/StandardGlyphVector -java/awt/font/GlyphVector -sun/font/StandardGlyphVector$GlyphStrike -sun/font/CoreMetrics -sun/font/FontLineMetrics -java/awt/font/LineMetrics -javax/swing/ComboBoxModel -javax/swing/ListModel -javax/swing/ListCellRenderer -javax/swing/DefaultComboBoxModel -javax/swing/MutableComboBoxModel -javax/swing/AbstractListModel -javax/swing/JComboBox$1 -javax/swing/AncestorNotifier -javax/swing/plaf/metal/MetalComboBoxUI -javax/swing/plaf/basic/BasicComboBoxUI -javax/swing/plaf/ComboBoxUI -javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager -javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager -javax/swing/plaf/basic/BasicComboPopup -javax/swing/plaf/basic/ComboPopup -javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass -javax/swing/border/LineBorder -javax/swing/plaf/basic/BasicComboPopup$1 -javax/swing/JList -javax/swing/DropMode -javax/swing/DefaultListSelectionModel -javax/swing/ListSelectionModel -javax/swing/plaf/basic/BasicListUI -javax/swing/plaf/ListUI -javax/swing/plaf/basic/BasicListUI$ListTransferHandler -javax/swing/TransferHandler -javax/swing/TransferHandler$TransferAction -javax/swing/DefaultListCellRenderer$UIResource -javax/swing/DefaultListCellRenderer -javax/swing/TransferHandler$SwingDropTarget -java/awt/dnd/DropTargetContext -javax/swing/TransferHandler$DropHandler -javax/swing/TransferHandler$TransferSupport -javax/swing/plaf/basic/BasicListUI$Handler -javax/swing/event/ListSelectionListener -javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag -javax/swing/plaf/basic/BasicComboPopup$Handler -javax/swing/JScrollPane -javax/swing/ScrollPaneConstants -javax/swing/ScrollPaneLayout$UIResource -javax/swing/ScrollPaneLayout -javax/swing/JViewport -javax/swing/ViewportLayout -javax/swing/plaf/basic/BasicViewportUI -javax/swing/plaf/ViewportUI -javax/swing/JScrollPane$ScrollBar -javax/swing/JViewport$ViewListener -java/awt/event/ComponentAdapter -javax/swing/plaf/metal/MetalScrollPaneUI -javax/swing/plaf/basic/BasicScrollPaneUI -javax/swing/plaf/ScrollPaneUI -javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder -javax/swing/plaf/basic/BasicScrollPaneUI$Handler -javax/swing/plaf/metal/MetalScrollPaneUI$1 -javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource -javax/swing/plaf/basic/BasicComboBoxRenderer -javax/swing/plaf/metal/MetalComboBoxEditor$UIResource -javax/swing/plaf/metal/MetalComboBoxEditor -javax/swing/plaf/basic/BasicComboBoxEditor -javax/swing/ComboBoxEditor -javax/swing/plaf/basic/BasicComboBoxEditor$BorderlessTextField -javax/swing/JTextField$NotifyAction -javax/swing/text/TextAction -javax/swing/AbstractAction -javax/swing/text/JTextComponent$MutableCaretEvent -javax/swing/plaf/metal/MetalTextFieldUI -javax/swing/plaf/basic/BasicTextFieldUI -javax/swing/plaf/basic/BasicTextUI -javax/swing/text/ViewFactory -javax/swing/plaf/TextUI -javax/swing/plaf/basic/BasicTextUI$BasicCursor -javax/swing/text/DefaultEditorKit -javax/swing/text/EditorKit -javax/swing/text/DefaultEditorKit$InsertContentAction -javax/swing/text/DefaultEditorKit$DeletePrevCharAction -javax/swing/text/DefaultEditorKit$DeleteNextCharAction -javax/swing/text/DefaultEditorKit$ReadOnlyAction -javax/swing/text/DefaultEditorKit$DeleteWordAction -javax/swing/text/DefaultEditorKit$WritableAction -javax/swing/text/DefaultEditorKit$CutAction -javax/swing/text/DefaultEditorKit$CopyAction -javax/swing/text/DefaultEditorKit$PasteAction -javax/swing/text/DefaultEditorKit$VerticalPageAction -javax/swing/text/DefaultEditorKit$PageAction -javax/swing/text/DefaultEditorKit$InsertBreakAction -javax/swing/text/DefaultEditorKit$BeepAction -javax/swing/text/DefaultEditorKit$NextVisualPositionAction -javax/swing/text/DefaultEditorKit$BeginWordAction -javax/swing/text/DefaultEditorKit$EndWordAction -javax/swing/text/DefaultEditorKit$PreviousWordAction -javax/swing/text/DefaultEditorKit$NextWordAction -javax/swing/text/DefaultEditorKit$BeginLineAction -javax/swing/text/DefaultEditorKit$EndLineAction -javax/swing/text/DefaultEditorKit$BeginParagraphAction -javax/swing/text/DefaultEditorKit$EndParagraphAction -javax/swing/text/DefaultEditorKit$BeginAction -javax/swing/text/DefaultEditorKit$EndAction -javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction -javax/swing/text/DefaultEditorKit$InsertTabAction -javax/swing/text/DefaultEditorKit$SelectWordAction -javax/swing/text/DefaultEditorKit$SelectLineAction -javax/swing/text/DefaultEditorKit$SelectParagraphAction -javax/swing/text/DefaultEditorKit$SelectAllAction -javax/swing/text/DefaultEditorKit$UnselectAction -javax/swing/text/DefaultEditorKit$ToggleComponentOrientationAction -javax/swing/text/DefaultEditorKit$DumpModelAction -javax/swing/plaf/basic/BasicTextUI$TextTransferHandler -javax/swing/text/Position$Bias -javax/swing/plaf/basic/BasicTextUI$RootView -javax/swing/text/View -javax/swing/plaf/basic/BasicTextUI$UpdateHandler -javax/swing/event/DocumentListener -javax/swing/plaf/basic/BasicTextUI$DragListener -javax/swing/plaf/basic/BasicComboBoxEditor$UIResource -javax/swing/plaf/basic/BasicTextUI$BasicCaret -javax/swing/text/DefaultCaret -javax/swing/text/Caret -javax/swing/text/DefaultCaret$Handler -java/awt/datatransfer/ClipboardOwner -javax/swing/plaf/basic/BasicTextUI$BasicHighlighter -javax/swing/text/DefaultHighlighter -javax/swing/text/LayeredHighlighter -javax/swing/text/Highlighter -javax/swing/text/Highlighter$Highlight -javax/swing/text/DefaultHighlighter$DefaultHighlightPainter -javax/swing/text/LayeredHighlighter$LayerPainter -javax/swing/text/Highlighter$HighlightPainter -javax/swing/text/DefaultHighlighter$SafeDamager -javax/swing/text/FieldView -javax/swing/text/PlainView -javax/swing/text/JTextComponent$DefaultKeymap -javax/swing/text/Keymap -javax/swing/text/JTextComponent$KeymapWrapper -javax/swing/text/JTextComponent$KeymapActionMap -javax/swing/plaf/basic/BasicTextUI$FocusAction -javax/swing/plaf/basic/BasicTextUI$TextActionWrapper -javax/swing/JTextArea -javax/swing/JEditorPane -javax/swing/JTextField$ScrollRepainter -javax/swing/plaf/metal/MetalComboBoxEditor$1 -javax/swing/plaf/metal/MetalComboBoxEditor$EditorBorder -javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener -javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler -javax/swing/plaf/basic/BasicComboBoxUI$Handler -javax/swing/plaf/metal/MetalComboBoxButton -javax/swing/plaf/metal/MetalComboBoxIcon -javax/swing/plaf/metal/MetalComboBoxButton$1 -javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager -javax/swing/JComboBox$KeySelectionManager -javax/swing/JToolBar$DefaultToolBarLayout -javax/swing/plaf/metal/MetalToolBarUI -javax/swing/plaf/basic/BasicToolBarUI -javax/swing/plaf/ToolBarUI -javax/swing/plaf/metal/MetalBorders$ToolBarBorder -javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue$1 -javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder -javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder -javax/swing/plaf/basic/BasicBorders$RadioButtonBorder -javax/swing/plaf/basic/BasicBorders$ButtonBorder -javax/swing/plaf/basic/BasicBorders$RolloverMarginBorder -javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener -javax/swing/plaf/basic/BasicToolBarUI$DockingListener -javax/swing/plaf/basic/BasicToolBarUI$Handler -javax/swing/border/EtchedBorder -javax/swing/JToolBar$Separator -javax/swing/plaf/basic/BasicToolBarSeparatorUI -sun/font/FontDesignMetrics$MetricsKey -javax/swing/KeyboardManager$ComponentKeyStrokePair -sun/awt/EmbeddedFrame -sun/awt/im/InputMethodContext -java/awt/im/spi/InputMethodContext -sun/awt/im/InputContext -sun/awt/im/InputMethodManager -sun/awt/im/ExecutableInputMethodManager -sun/awt/X11/XInputMethodDescriptor -sun/awt/X11InputMethodDescriptor -java/awt/im/spi/InputMethodDescriptor -sun/awt/im/InputMethodLocator -sun/awt/im/ExecutableInputMethodManager$2 -sun/misc/Service -sun/misc/Service$LazyIterator -java/util/TreeSet -java/util/NavigableSet -java/util/SortedSet -javax/swing/SizeRequirements -javax/swing/plaf/basic/BasicGraphicsUtils -java/awt/event/AdjustmentEvent -java/awt/MenuBar -sun/awt/X11/XComponentPeer$2 -java/awt/SequencedEvent -java/beans/PropertyVetoException -java/awt/DefaultKeyboardFocusManager$TypeAheadMarker -java/awt/KeyboardFocusManager$HeavyweightFocusRequest -java/awt/KeyboardFocusManager$LightweightFocusRequest -sun/awt/X11/XFocusChangeEvent -sun/awt/X11/XComponentPeer$1 -sun/awt/X11/XTranslateCoordinates -sun/awt/KeyboardFocusManagerPeerImpl -sun/awt/SunToolkit$7 -java/awt/Window$1DisposeAction -java/awt/LightweightDispatcher$2 -sun/awt/X11/XUnmapEvent -java/io/StringWriter -javax/swing/JWindow -java/io/UnsupportedEncodingException -java/net/UnknownHostException -java/nio/channels/SocketChannel -java/nio/channels/spi/AbstractSelectableChannel -java/nio/channels/SelectableChannel -java/net/SocketImplFactory -javax/swing/UnsupportedLookAndFeelException -java/lang/UnsatisfiedLinkError -javax/swing/Box$Filler -javax/swing/JComponent$2 -sun/net/www/MimeTable -java/net/FileNameMap -sun/net/www/MimeTable$1 -sun/net/www/MimeEntry -java/net/URLConnection$1 -java/text/SimpleDateFormat -java/text/DateFormat -java/text/DateFormat$Field -java/util/Calendar -java/util/GregorianCalendar -sun/util/resources/CalendarData -sun/util/resources/LocaleNamesBundle -sun/util/resources/CalendarData_en -java/text/DateFormatSymbols -java/text/spi/DateFormatSymbolsProvider -sun/text/resources/FormatData -sun/text/resources/FormatData_en -sun/text/resources/FormatData_en_US -java/text/NumberFormat -java/text/spi/NumberFormatProvider -java/text/DecimalFormatSymbols -java/text/spi/DecimalFormatSymbolsProvider -java/util/Currency -java/util/Currency$1 -java/util/spi/CurrencyNameProvider -sun/util/resources/CurrencyNames -sun/util/resources/CurrencyNames_en_US -java/text/DecimalFormat -java/text/DigitList -java/math/RoundingMode -java/text/DontCareFieldPosition -java/text/DontCareFieldPosition$1 -java/text/Format$FieldDelegate -javax/swing/plaf/BorderUIResource -javax/swing/BorderFactory -javax/swing/border/BevelBorder -javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon -javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 -java/util/zip/ZipInputStream -java/io/PushbackInputStream -java/util/zip/CRC32 -java/util/zip/Checksum -java/lang/Thread$State -javax/swing/SwingUtilities$SharedOwnerFrame -javax/swing/JTable -javax/swing/event/TableModelListener -javax/swing/event/TableColumnModelListener -javax/swing/event/CellEditorListener -javax/swing/event/RowSorterListener -java/awt/GraphicsCallback$PaintCallback -java/awt/GraphicsCallback -sun/awt/SunGraphicsCallback -javax/swing/BufferStrategyPaintManager$BufferInfo -java/awt/Component$BltSubRegionBufferStrategy -sun/awt/SubRegionShowable -java/awt/Component$BltBufferStrategy -sun/awt/image/SunVolatileImage -sun/awt/image/BufferedImageGraphicsConfig -sun/print/PrinterGraphicsConfig -sun/awt/image/VolatileSurfaceManager -javax/swing/JRadioButton -java/lang/ClassFormatError -java/awt/print/PrinterGraphics -java/awt/PrintGraphics -javax/swing/JTabbedPane -javax/swing/JTabbedPane$ModelListener -javax/swing/plaf/metal/MetalTabbedPaneUI -javax/swing/plaf/basic/BasicTabbedPaneUI -javax/swing/plaf/TabbedPaneUI -javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$Handler -sun/swing/ImageIconUIResource -javax/swing/GrayFilter -java/awt/image/RGBImageFilter -java/awt/image/ImageFilter -java/awt/image/FilteredImageSource -org/w3c/dom/Node -org/xml/sax/SAXException -javax/xml/parsers/ParserConfigurationException -org/xml/sax/EntityResolver -java/security/NoSuchAlgorithmException -java/security/GeneralSecurityException -java/util/zip/GZIPInputStream -java/util/zip/DeflaterOutputStream -org/xml/sax/InputSource -javax/xml/parsers/DocumentBuilderFactory -javax/xml/parsers/FactoryFinder -javax/xml/parsers/SecuritySupport -javax/xml/parsers/SecuritySupport$2 -javax/xml/parsers/SecuritySupport$5 -javax/xml/parsers/SecuritySupport$1 -javax/xml/parsers/SecuritySupport$4 -javax/xml/parsers/DocumentBuilder -org/w3c/dom/Document -org/xml/sax/helpers/DefaultHandler -org/xml/sax/DTDHandler -org/xml/sax/ContentHandler -org/xml/sax/ErrorHandler -org/xml/sax/SAXNotSupportedException -org/xml/sax/Locator -org/xml/sax/SAXNotRecognizedException -org/xml/sax/SAXParseException -org/w3c/dom/NodeList -org/w3c/dom/events/EventTarget -org/w3c/dom/traversal/DocumentTraversal -org/w3c/dom/events/DocumentEvent -org/w3c/dom/ranges/DocumentRange -org/w3c/dom/Entity -org/w3c/dom/Element -org/w3c/dom/CharacterData -org/w3c/dom/CDATASection -org/w3c/dom/Text -org/xml/sax/AttributeList -org/w3c/dom/DOMException -org/w3c/dom/Notation -org/w3c/dom/DocumentType -org/w3c/dom/Attr -org/w3c/dom/EntityReference -org/w3c/dom/ProcessingInstruction -org/w3c/dom/Comment -org/w3c/dom/DocumentFragment -org/w3c/dom/events/Event -org/w3c/dom/events/MutationEvent -org/w3c/dom/traversal/TreeWalker -org/w3c/dom/ranges/Range -org/w3c/dom/traversal/NodeIterator -org/w3c/dom/events/EventException -org/w3c/dom/NamedNodeMap -java/awt/GridLayout -javax/swing/plaf/metal/MetalRadioButtonUI -javax/swing/plaf/basic/BasicRadioButtonUI -javax/swing/plaf/basic/BasicBorders -javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon -java/awt/event/ItemEvent -java/awt/CardLayout$Card -javax/swing/JCheckBox -javax/swing/event/ListSelectionEvent -javax/swing/plaf/metal/MetalCheckBoxUI -javax/swing/plaf/metal/MetalIconFactory$CheckBoxIcon -java/lang/ExceptionInInitializerError -com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI -javax/swing/JProgressBar -javax/swing/JProgressBar$ModelListener -javax/swing/plaf/metal/MetalProgressBarUI -javax/swing/plaf/basic/BasicProgressBarUI -javax/swing/plaf/ProgressBarUI -javax/swing/plaf/BorderUIResource$LineBorderUIResource -javax/swing/plaf/basic/BasicProgressBarUI$Handler -javax/swing/tree/TreeModel -javax/swing/table/TableCellRenderer -javax/swing/table/JTableHeader -javax/swing/event/TreeExpansionListener -javax/swing/table/AbstractTableModel -javax/swing/table/TableModel -javax/swing/table/DefaultTableCellRenderer -javax/swing/JTree -javax/swing/tree/TreeSelectionModel -javax/swing/tree/DefaultTreeCellRenderer -javax/swing/tree/TreeCellRenderer -javax/swing/table/TableCellEditor -javax/swing/CellEditor -javax/swing/JToolTip -javax/swing/table/TableColumn -javax/swing/table/DefaultTableColumnModel -javax/swing/table/TableColumnModel -javax/swing/table/DefaultTableModel -javax/swing/event/TableModelEvent -sun/swing/table/DefaultTableCellHeaderRenderer -javax/swing/plaf/basic/BasicTableHeaderUI -javax/swing/plaf/TableHeaderUI -javax/swing/plaf/basic/BasicTableHeaderUI$1 -javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler -javax/swing/DefaultCellEditor -javax/swing/tree/TreeCellEditor -javax/swing/AbstractCellEditor -javax/swing/plaf/basic/BasicTableUI -javax/swing/plaf/TableUI -javax/swing/plaf/basic/BasicTableUI$TableTransferHandler -javax/swing/plaf/basic/BasicTableUI$Handler -javax/swing/tree/DefaultTreeSelectionModel -javax/swing/tree/TreePath -javax/swing/plaf/metal/MetalTreeUI -javax/swing/plaf/basic/BasicTreeUI -javax/swing/plaf/TreeUI -javax/swing/plaf/basic/BasicTreeUI$Actions -javax/swing/plaf/basic/BasicTreeUI$TreeTransferHandler -javax/swing/plaf/metal/MetalTreeUI$LineListener -javax/swing/plaf/basic/BasicTreeUI$Handler -javax/swing/event/TreeModelListener -javax/swing/event/TreeSelectionListener -javax/swing/event/SwingPropertyChangeSupport -javax/swing/tree/VariableHeightLayoutCache -javax/swing/tree/AbstractLayoutCache -javax/swing/tree/RowMapper -javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler -javax/swing/tree/AbstractLayoutCache$NodeDimensions -javax/swing/JTree$TreeModelHandler -javax/swing/tree/VariableHeightLayoutCache$TreeStateNode -javax/swing/tree/DefaultMutableTreeNode -javax/swing/tree/MutableTreeNode -javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration -javax/swing/event/TableColumnModelEvent -java/text/ParseException -java/text/NumberFormat$Field -javax/swing/event/UndoableEditListener -javax/swing/filechooser/FileFilter -javax/swing/tree/DefaultTreeModel -javax/swing/tree/DefaultTreeCellEditor -javax/swing/tree/DefaultTreeCellEditor$1 -javax/swing/tree/DefaultTreeCellEditor$DefaultTextField -javax/swing/DefaultCellEditor$1 -javax/swing/DefaultCellEditor$EditorDelegate -javax/swing/tree/DefaultTreeCellEditor$EditorContainer -javax/swing/JTree$TreeSelectionRedirector -javax/swing/event/TreeModelEvent -javax/swing/plaf/metal/MetalSplitPaneUI -javax/swing/plaf/basic/BasicSplitPaneUI -javax/swing/plaf/SplitPaneUI -javax/swing/plaf/basic/BasicSplitPaneDivider -javax/swing/plaf/basic/BasicBorders$SplitPaneBorder -javax/swing/plaf/metal/MetalSplitPaneDivider -javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout -javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler -javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder -javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager -javax/swing/plaf/basic/BasicSplitPaneUI$1 -javax/swing/plaf/basic/BasicSplitPaneUI$Handler -javax/swing/plaf/metal/MetalSplitPaneDivider$1 -javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchActionHandler -javax/swing/plaf/metal/MetalSplitPaneDivider$2 -javax/swing/border/TitledBorder -javax/swing/plaf/basic/BasicTextAreaUI -java/util/Collections$UnmodifiableCollection$1 -java/io/InterruptedIOException -java/net/NoRouteToHostException -java/net/BindException -javax/swing/tree/PathPlaceHolder -javax/swing/event/TreeSelectionEvent -javax/swing/JList$3 -javax/swing/JList$ListSelectionHandler -javax/swing/JSlider -javax/swing/JSlider$ModelListener -javax/swing/plaf/metal/MetalSliderUI -javax/swing/plaf/basic/BasicSliderUI -javax/swing/plaf/SliderUI -javax/swing/plaf/basic/BasicSliderUI$Actions -javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon -javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon -javax/swing/plaf/basic/BasicSliderUI$TrackListener -javax/swing/plaf/basic/BasicSliderUI$Handler -javax/swing/plaf/basic/BasicSliderUI$ScrollListener -javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener -javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler -java/util/Hashtable$KeySet -sun/font/Type1Font$1 -java/nio/channels/FileChannel$MapMode -sun/nio/ch/FileChannelImpl$Unmapper -sun/nio/ch/Util$3 -java/nio/DirectByteBufferR -sun/nio/cs/US_ASCII$Decoder -sun/font/Type1Font$2 -sun/font/Type1GlyphMapper -javax/swing/DefaultListModel -javax/swing/event/ListDataEvent -javax/sound/sampled/DataLine -javax/sound/sampled/Line -javax/sound/sampled/Line$Info -javax/sound/sampled/DataLine$Info -javax/sound/sampled/Control$Type -javax/sound/sampled/FloatControl$Type -javax/sound/sampled/LineUnavailableException -javax/sound/sampled/UnsupportedAudioFileException -javax/swing/JRadioButtonMenuItem -javax/swing/JMenuItem$AccessibleJMenuItem -javax/swing/AbstractButton$AccessibleAbstractButton -javax/accessibility/AccessibleAction -javax/accessibility/AccessibleValue -javax/accessibility/AccessibleText -javax/accessibility/AccessibleExtendedComponent -javax/accessibility/AccessibleComponent -javax/swing/JComponent$AccessibleJComponent -java/awt/Container$AccessibleAWTContainer -java/awt/Component$AccessibleAWTComponent -javax/accessibility/AccessibleRelationSet -javax/accessibility/AccessibleState -javax/accessibility/AccessibleBundle -javax/swing/plaf/basic/BasicCheckBoxMenuItemUI -javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon -javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem -javax/swing/plaf/basic/BasicRadioButtonMenuItemUI -javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon -sun/awt/image/ImageDecoder$1 -javax/swing/JTabbedPane$Page -java/net/DatagramSocket -java/net/MulticastSocket -java/net/DatagramPacket -sun/net/InetAddressCachePolicy -sun/net/InetAddressCachePolicy$1 -sun/net/InetAddressCachePolicy$2 -java/net/InetAddress$CacheEntry -java/net/PlainDatagramSocketImpl -java/net/DatagramSocketImpl -java/net/NetworkInterface -java/net/InterfaceAddress -java/text/Collator -java/text/spi/CollatorProvider -sun/text/resources/CollationData -sun/text/resources/CollationData_en -sun/util/EmptyListResourceBundle -java/text/RuleBasedCollator -java/text/CollationRules -java/text/RBCollationTables -java/text/RBTableBuilder -java/text/RBCollationTables$BuildAPI -sun/text/IntHashtable -sun/text/UCompactIntArray -sun/text/normalizer/NormalizerImpl -sun/text/normalizer/ICUData -sun/text/normalizer/NormalizerDataReader -sun/text/normalizer/ICUBinary$Authenticate -sun/text/normalizer/ICUBinary -sun/text/normalizer/NormalizerImpl$FCDTrieImpl -sun/text/normalizer/Trie$DataManipulate -sun/text/normalizer/NormalizerImpl$NormTrieImpl -sun/text/normalizer/NormalizerImpl$AuxTrieImpl -sun/text/normalizer/IntTrie -sun/text/normalizer/Trie -sun/text/normalizer/CharTrie -sun/text/normalizer/CharTrie$FriendAgent -sun/text/normalizer/UnicodeSet -sun/text/normalizer/UnicodeMatcher -sun/text/normalizer/NormalizerImpl$DecomposeArgs -java/text/MergeCollation -java/text/PatternEntry$Parser -java/text/PatternEntry -java/text/EntryPair -sun/text/ComposedCharIter -sun/text/normalizer/UTF16 -sun/net/www/protocol/http/Handler -java/io/ObjectInputStream$BlockDataInputStream -java/io/ObjectInputStream$PeekInputStream -java/io/ObjectInputStream$HandleTable -java/io/ObjectInputStream$HandleTable$HandleList -java/io/ObjectInputStream$ValidationList -java/io/Bits -java/io/ObjectStreamClass$Caches -java/io/ObjectStreamClass$WeakClassKey -java/io/ObjectStreamClass$EntryFuture -java/io/ObjectStreamClass$2 -sun/reflect/SerializationConstructorAccessorImpl -java/io/ObjectStreamClass$FieldReflectorKey -java/io/ObjectStreamClass$FieldReflector -java/io/ObjectStreamClass$1 -java/io/DataOutputStream -java/io/ObjectStreamClass$MemberSignature -java/io/ObjectStreamClass$3 -java/io/ObjectStreamClass$4 -java/io/ObjectStreamClass$5 -java/security/MessageDigest -java/security/MessageDigestSpi -sun/security/jca/GetInstance -sun/security/jca/Providers -sun/security/jca/ProviderList -sun/security/jca/ProviderConfig -sun/security/jca/ProviderList$3 -sun/security/jca/ProviderList$1 -sun/security/jca/ProviderList$2 -sun/security/jca/ProviderConfig$2 -sun/security/util/PropertyExpander -sun/security/jca/ProviderConfig$1 -sun/security/jca/ProviderConfig$3 -sun/security/util/ManifestDigester -sun/security/util/ManifestDigester$Position -sun/security/util/ManifestDigester$Entry -sun/security/pkcs/PKCS7 -sun/security/util/DerInputStream -sun/security/util/DerIndefLenConverter -sun/security/util/DerInputBuffer -sun/security/pkcs/ContentInfo -sun/security/util/ObjectIdentifier -sun/security/util/DerValue -sun/security/util/DerOutputStream -sun/security/util/DerEncoder -sun/security/util/ByteArrayLexOrder -sun/security/util/ByteArrayTagOrder -java/math/BigInteger -sun/security/x509/AlgorithmId -java/security/cert/CertificateFactory -java/security/cert/CertificateFactorySpi -java/security/Provider$Service -java/security/Provider$UString -sun/security/provider/X509Factory -sun/security/util/Cache -sun/security/util/MemoryCache -sun/security/jca/GetInstance$Instance -java/security/cert/X509Certificate -java/security/cert/X509Extension -sun/security/util/Cache$EqualByteArray -sun/security/x509/X509CertImpl -sun/security/x509/X509CertInfo -sun/security/x509/CertAttrSet -sun/security/x509/CertificateVersion -sun/security/x509/CertificateSerialNumber -sun/security/x509/SerialNumber -sun/security/x509/CertificateAlgorithmId -sun/security/x509/CertificateIssuerName -sun/security/x509/X500Name -sun/security/x509/GeneralNameInterface -sun/security/x509/X500Name$1 -javax/security/auth/x500/X500Principal -sun/security/x509/RDN -sun/security/x509/AVA -sun/security/x509/CertificateValidity -sun/security/x509/CertificateSubjectName -sun/security/x509/CertificateX509Key -sun/security/x509/X509Key -java/security/PublicKey -java/security/Key -sun/security/util/BitArray -java/security/spec/X509EncodedKeySpec -java/security/spec/EncodedKeySpec -java/security/spec/KeySpec -java/security/KeyFactory -sun/security/jca/ProviderList$ServiceList -sun/security/jca/ProviderList$ServiceList$1 -sun/security/rsa/RSAKeyFactory -java/security/KeyFactorySpi -java/security/spec/RSAPublicKeySpec -java/security/spec/RSAPrivateKeySpec -java/security/spec/RSAPrivateCrtKeySpec -java/security/spec/PKCS8EncodedKeySpec -sun/security/rsa/RSAPublicKeyImpl -java/security/interfaces/RSAPublicKey -java/security/interfaces/RSAKey -sun/security/rsa/RSAPrivateCrtKeyImpl -java/security/interfaces/RSAPrivateCrtKey -java/security/interfaces/RSAPrivateKey -java/security/PrivateKey -sun/security/pkcs/PKCS8Key -sun/security/x509/CertificateExtensions -sun/security/x509/Extension -sun/security/x509/OIDMap -sun/security/x509/PKIXExtensions -sun/security/x509/OIDMap$OIDInfo -sun/security/x509/NetscapeCertTypeExtension -sun/security/x509/NetscapeCertTypeExtension$MapEntry -sun/security/x509/KeyUsageExtension -sun/security/x509/SubjectKeyIdentifierExtension -sun/security/x509/KeyIdentifier -sun/security/x509/AuthorityKeyIdentifierExtension -sun/security/x509/GeneralNames -sun/security/x509/SubjectAlternativeNameExtension -sun/security/x509/GeneralName -sun/security/x509/RFC822Name -sun/security/x509/X509AttributeName -sun/security/util/MemoryCache$SoftCacheEntry -sun/security/util/MemoryCache$CacheEntry -java/security/AlgorithmParameters -java/security/AlgorithmParametersSpi -sun/security/provider/DSAParameters -sun/security/provider/DSAKeyFactory -java/security/spec/DSAPublicKeySpec -sun/security/provider/DSAPublicKeyImpl -sun/security/provider/DSAPublicKey -java/security/interfaces/DSAPublicKey -java/security/interfaces/DSAKey -sun/security/x509/BasicConstraintsExtension -sun/security/pkcs/SignerInfo -java/security/Signature -java/security/SignatureSpi -sun/security/jca/ServiceId -java/security/Signature$Delegate -sun/security/x509/AVAKeyword -sun/security/pkcs/PKCS9Attribute -java/text/Normalizer$Form -java/text/Normalizer -sun/text/normalizer/NormalizerBase -sun/text/normalizer/NormalizerBase$Mode -sun/text/normalizer/NormalizerBase$NFDMode -sun/text/normalizer/NormalizerBase$NFKDMode -sun/text/normalizer/NormalizerBase$NFCMode -sun/text/normalizer/NormalizerBase$NFKCMode -sun/text/normalizer/NormalizerBase$QuickCheckResult -sun/text/normalizer/NormalizerBase$1 -sun/security/rsa/RSASignature$SHA1withRSA -sun/security/rsa/RSASignature -sun/security/provider/SHA -sun/security/provider/DigestBase -java/security/MessageDigest$Delegate -sun/security/rsa/RSACore -sun/security/rsa/RSAPadding -sun/security/provider/ByteArrayAccess -java/math/MutableBigInteger -sun/security/provider/certpath/X509CertPath -java/security/cert/CertPath -java/security/CodeSigner -sun/misc/CEStreamExhausted -java/util/jar/JarVerifier$VerifierStream -java/security/AuthProvider -java/security/SecurityPermission -javax/security/auth/login/LoginException -javax/security/auth/login/FailedLoginException -java/security/ProviderException -java/io/StreamTokenizer -java/lang/AssertionError -java/io/NotSerializableException -java/io/ObjectStreamException -java/security/InvalidParameterException -java/io/ObjectStreamClass$ClassDataSlot -sun/reflect/UnsafeQualifiedStaticLongFieldAccessorImpl -java/io/ObjectOutputStream$BlockDataOutputStream -java/io/ObjectOutputStream$HandleTable -java/io/ObjectOutputStream$ReplaceTable -java/security/SignatureException -java/security/InvalidKeyException -java/security/KeyException -java/security/interfaces/DSAParams -java/io/InvalidClassException -java/io/ObjectInputStream$GetFieldImpl -java/io/ObjectInputStream$GetField -java/security/interfaces/DSAPrivateKey -java/security/spec/InvalidKeySpecException -java/security/spec/DSAParameterSpec -java/security/spec/AlgorithmParameterSpec -sun/security/util/MemoryCache$HardCacheEntry -java/awt/EventQueue$1AWTInvocationLock -java/awt/Component$FlipBufferStrategy -java/awt/SentEvent -sun/awt/X11/XDestroyWindowEvent -sun/awt/X11/XDropTargetRegistry -sun/awt/X11/XEmbeddedFramePeer -sun/awt/X11/XDragAndDropProtocols -sun/awt/X11/XDropTargetContextPeer -sun/awt/dnd/SunDropTargetContextPeer -java/awt/dnd/peer/DropTargetContextPeer -sun/awt/X11/XDropTargetContextPeer$XDropTargetProtocolListenerImpl -sun/awt/X11/XDropTargetProtocolListener -sun/awt/X11/XDnDDragSourceProtocol -sun/awt/X11/XDragSourceProtocol -sun/awt/X11/MotifDnDDragSourceProtocol -sun/awt/X11/XDnDDropTargetProtocol -sun/awt/X11/XDropTargetProtocol -sun/awt/X11/MotifDnDDropTargetProtocol -sun/awt/X11/XDnDConstants -sun/awt/X11/MotifDnDConstants -javax/swing/JTable$2 -javax/swing/JTable$Resizable3 -javax/swing/JTable$Resizable2 -javax/swing/JTable$5 -javax/swing/event/AncestorEvent -com/sun/java/swing/plaf/gtk/GTKLookAndFeel -javax/swing/plaf/synth/SynthLookAndFeel -javax/swing/plaf/synth/DefaultSynthStyleFactory -javax/swing/plaf/synth/SynthStyleFactory -sun/swing/BakedArrayList -javax/swing/plaf/synth/SynthLookAndFeel$Handler -javax/swing/plaf/synth/SynthDefaultLookup -com/sun/java/swing/plaf/gtk/GTKEngine -javax/swing/plaf/synth/Region -com/sun/java/swing/plaf/gtk/GTKRegion -sun/swing/ImageCache -com/sun/java/swing/plaf/gtk/GTKEngine$Settings -com/sun/java/swing/plaf/gtk/GTKStyleFactory -com/sun/java/swing/plaf/gtk/PangoFonts -com/sun/java/swing/plaf/gtk/GTKLookAndFeel$WeakPCL -javax/swing/plaf/synth/SynthLookAndFeel$AATextListener -com/sun/java/swing/plaf/gtk/GTKStyle -com/sun/java/swing/plaf/gtk/GTKConstants -javax/swing/plaf/synth/SynthStyle -javax/swing/plaf/synth/SynthGraphicsUtils -com/sun/java/swing/plaf/gtk/GTKGraphicsUtils -com/sun/java/swing/plaf/gtk/GTKStyle$GTKStockIcon -sun/swing/plaf/synth/SynthIcon -com/sun/java/swing/plaf/gtk/GTKColorType -javax/swing/plaf/synth/ColorType -com/sun/java/swing/plaf/gtk/GTKConstants$StateType -com/sun/java/swing/plaf/gtk/resources/gtk -com/sun/swing/internal/plaf/synth/resources/synth -com/sun/java/swing/plaf/gtk/GTKStyle$GTKLazyValue -com/sun/java/swing/plaf/gtk/GTKLookAndFeel$1FontLazyValue -com/sun/java/swing/plaf/gtk/GTKLookAndFeel$2 -com/sun/java/swing/plaf/gtk/GTKLookAndFeel$3 -javax/swing/plaf/synth/SynthPanelUI -javax/swing/plaf/synth/SynthConstants -javax/swing/plaf/synth/SynthContext -javax/swing/plaf/synth/SynthBorder -javax/swing/plaf/synth/SynthRootPaneUI -javax/swing/plaf/synth/SynthLabelUI -sun/java2d/x11/X11VolatileSurfaceManager -javax/swing/plaf/synth/SynthButtonUI -javax/swing/plaf/synth/SynthToggleButtonUI -javax/swing/plaf/basic/BasicBorders$FieldBorder -javax/swing/plaf/synth/SynthMenuBarUI -javax/swing/plaf/synth/SynthMenuUI -javax/swing/plaf/synth/SynthUI -com/sun/java/swing/plaf/gtk/GTKIconFactory -com/sun/java/swing/plaf/gtk/GTKIconFactory$MenuArrowIcon -com/sun/java/swing/plaf/gtk/GTKIconFactory$DelegatingIcon -com/sun/java/swing/plaf/gtk/GTKConstants$ArrowType -javax/swing/plaf/basic/BasicIconFactory -javax/swing/plaf/basic/BasicIconFactory$MenuItemCheckIcon -javax/swing/plaf/synth/SynthMenuItemUI -javax/swing/plaf/synth/SynthPopupMenuUI -javax/swing/plaf/synth/SynthSeparatorUI -javax/swing/plaf/synth/SynthScrollBarUI -javax/swing/plaf/synth/SynthArrowButton -javax/swing/plaf/synth/SynthArrowButton$SynthArrowButtonUI -javax/swing/plaf/synth/SynthComboBoxUI -javax/swing/plaf/synth/SynthComboPopup -javax/swing/plaf/synth/SynthListUI -javax/swing/plaf/synth/SynthListUI$SynthListCellRenderer -javax/swing/plaf/synth/SynthViewportUI -javax/swing/plaf/synth/SynthScrollPaneUI -javax/swing/plaf/synth/SynthScrollPaneUI$ViewportBorder -javax/swing/plaf/synth/SynthComboBoxUI$SynthComboBoxRenderer -javax/swing/plaf/synth/SynthComboBoxUI$SynthComboBoxEditor -javax/swing/plaf/synth/SynthTextFieldUI -javax/swing/plaf/synth/SynthToolBarUI -javax/swing/plaf/synth/SynthToolBarUI$SynthToolBarLayoutManager -com/sun/java/swing/plaf/gtk/GTKIconFactory$ToolBarHandleIcon -com/sun/java/swing/plaf/gtk/GTKConstants$Orientation -com/sun/java/swing/plaf/gtk/GTKPainter -javax/swing/plaf/synth/SynthPainter -javax/swing/plaf/synth/SynthPainter$1 -com/sun/java/swing/plaf/gtk/GTKConstants$PositionType -com/sun/java/swing/plaf/gtk/GTKConstants$ShadowType -sun/applet/Main -sun/applet/AppletMessageHandler -sun/applet/resources/MsgAppletViewer -sun/applet/AppletSecurity -sun/awt/AWTSecurityManager -java/lang/SecurityManager -java/security/DomainCombiner -sun/applet/AppletSecurity$1 -java/lang/SecurityManager$1 -java/util/PropertyPermission -sun/applet/AppletViewer -java/applet/AppletContext -java/awt/print/Printable -sun/security/util/SecurityConstants -java/awt/AWTPermission -java/net/NetPermission -java/net/SocketPermission -javax/security/auth/AuthPermission -java/lang/Thread$1 -java/util/logging/LogManager$5 -sun/applet/StdAppletViewerFactory -sun/applet/AppletViewerFactory -sun/applet/AppletViewer$UserActionListener -sun/applet/AppletViewerPanel -sun/applet/AppletPanel -java/applet/AppletStub -sun/misc/MessageUtils -sun/applet/AppletPanel$10 -java/security/Policy$1 -sun/security/provider/PolicyFile$1 -sun/security/provider/PolicyFile$3 -sun/security/provider/PolicyParser -sun/security/util/PolicyUtil -sun/security/provider/PolicyParser$GrantEntry -sun/security/provider/PolicyParser$PermissionEntry -sun/security/provider/PolicyFile$PolicyEntry -sun/security/provider/PolicyFile$6 -sun/security/provider/PolicyFile$7 -java/net/SocketPermissionCollection -java/util/PropertyPermissionCollection -sun/applet/AppletPanel$9 -sun/applet/AppletClassLoader -sun/applet/AppletThreadGroup -sun/applet/AppContextCreator -sun/applet/AppletPanel$1 -sun/awt/X11/XMenuBarPeer -java/awt/peer/MenuBarPeer -java/awt/peer/MenuComponentPeer -sun/awt/X11/XBaseMenuWindow -sun/awt/X11/XMenuPeer -java/awt/peer/MenuPeer -java/awt/peer/MenuItemPeer -sun/awt/X11/XMenuItemPeer -java/awt/MenuShortcut -sun/awt/X11/XMenuWindow -sun/awt/AppContext$3 -sun/awt/X11/XMenuItemPeer$TextMetrics -sun/awt/X11/XMenuBarPeer$MappingData -sun/awt/X11/XBaseMenuWindow$MappingData -sun/applet/AppletViewer$1 -sun/applet/AppletViewer$1AppletEventListener -sun/applet/AppletListener -sun/applet/AppletEventMulticaster -sun/awt/X11/XBaseMenuWindow$3 -java/awt/DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent -sun/awt/CausedFocusEvent -sun/awt/X11/XWindow$1 -sun/misc/Queue -sun/misc/QueueElement -sun/applet/AppletEvent -sun/applet/AppletClassLoader$1 -java/net/URLClassLoader$4 -sun/applet/AppletClassLoader$2 -javax/swing/JApplet -java/lang/ClassLoader$1 -sun/security/provider/PolicyFile$5 -java/security/PermissionsEnumerator -java/util/Collections$1 -sun/applet/AppletPanel$11 -sun/applet/AppletPanel$8 -sun/applet/AppletPanel$2 -sun/applet/AppletPanel$3 -sun/applet/AppletPanel$6 -javax/swing/BufferStrategyPaintManager$1 -# 8662ff6d6adccb91 +sun/util/resources/en/CalendarData_en +sun/util/resources/en/CurrencyNames_en_US +sun/util/resources/en/TimeZoneNames_en +sun/util/spi/CalendarProvider +# fcfd7386dfd2b3ad
--- a/make/tools/sharing/classlist.windows Thu Nov 14 23:32:31 2013 -0800 +++ b/make/tools/sharing/classlist.windows Fri Nov 15 07:14:23 2013 -0800 @@ -1,2203 +1,2378 @@ -java/lang/Object -java/lang/String +com/sun/java/swing/SwingUtilities3 +com/sun/java/swing/plaf/windows/WindowsPopupWindow +com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI +com/sun/swing/internal/plaf/basic/resources/basic +com/sun/swing/internal/plaf/metal/resources/metal +java/applet/Applet +java/awt/AWTEvent +java/awt/AWTEvent$1 +java/awt/AWTEventMulticaster +java/awt/AWTKeyStroke +java/awt/AWTKeyStroke$1 +java/awt/ActiveEvent +java/awt/Adjustable +java/awt/AlphaComposite +java/awt/BasicStroke +java/awt/BorderLayout +java/awt/BufferCapabilities +java/awt/Canvas +java/awt/CardLayout +java/awt/CardLayout$Card +java/awt/Color +java/awt/Component +java/awt/Component$1 +java/awt/Component$3 +java/awt/Component$AWTTreeLock +java/awt/Component$AccessibleAWTComponent +java/awt/Component$BaselineResizeBehavior +java/awt/Component$BltBufferStrategy +java/awt/Component$BltSubRegionBufferStrategy +java/awt/Component$DummyRequestFocusController +java/awt/Component$FlipBufferStrategy +java/awt/ComponentOrientation +java/awt/Composite +java/awt/Conditional +java/awt/Container +java/awt/Container$1 +java/awt/Container$AccessibleAWTContainer +java/awt/ContainerOrderFocusTraversalPolicy +java/awt/Cursor +java/awt/Cursor$1 +java/awt/Cursor$CursorDisposer +java/awt/DefaultFocusTraversalPolicy +java/awt/DefaultKeyboardFocusManager +java/awt/DefaultKeyboardFocusManager$1 +java/awt/DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent +java/awt/DefaultKeyboardFocusManager$TypeAheadMarker +java/awt/Dialog +java/awt/Dialog$ModalExclusionType +java/awt/Dialog$ModalityType +java/awt/Dimension +java/awt/Event +java/awt/EventDispatchThread +java/awt/EventDispatchThread$1 +java/awt/EventDispatchThread$HierarchyEventFilter +java/awt/EventFilter +java/awt/EventFilter$FilterAction +java/awt/EventQueue +java/awt/EventQueue$1 +java/awt/EventQueue$1AWTInvocationLock +java/awt/EventQueue$2 +java/awt/EventQueue$3 +java/awt/EventQueue$4 +java/awt/EventQueue$5 +java/awt/FlowLayout +java/awt/FocusTraversalPolicy +java/awt/Font +java/awt/Font$FontAccessImpl +java/awt/FontMetrics +java/awt/Frame +java/awt/Frame$1 +java/awt/Graphics +java/awt/Graphics2D +java/awt/GraphicsCallback +java/awt/GraphicsCallback$PaintCallback +java/awt/GraphicsConfiguration +java/awt/GraphicsDevice +java/awt/GraphicsEnvironment +java/awt/GraphicsEnvironment$1 +java/awt/GridLayout +java/awt/Image +java/awt/Image$1 +java/awt/ImageCapabilities +java/awt/ImageMediaEntry +java/awt/Insets +java/awt/ItemSelectable +java/awt/KeyEventDispatcher +java/awt/KeyEventPostProcessor +java/awt/KeyboardFocusManager +java/awt/KeyboardFocusManager$1 +java/awt/KeyboardFocusManager$3 +java/awt/KeyboardFocusManager$HeavyweightFocusRequest +java/awt/KeyboardFocusManager$LightweightFocusRequest +java/awt/Label +java/awt/LayoutManager +java/awt/LayoutManager2 +java/awt/LightweightDispatcher +java/awt/LightweightDispatcher$2 +java/awt/MediaEntry +java/awt/MediaTracker +java/awt/MenuBar +java/awt/MenuComponent +java/awt/MenuContainer +java/awt/ModalEventFilter +java/awt/Paint +java/awt/Panel +java/awt/Point +java/awt/PrintGraphics +java/awt/Queue +java/awt/Rectangle +java/awt/RenderingHints +java/awt/RenderingHints$Key +java/awt/SentEvent +java/awt/SequencedEvent +java/awt/SequencedEvent$1 +java/awt/Shape +java/awt/SplashScreen +java/awt/Stroke +java/awt/Toolkit +java/awt/Toolkit$1 +java/awt/Toolkit$2 +java/awt/Toolkit$3 +java/awt/Toolkit$4 +java/awt/Toolkit$5 +java/awt/Toolkit$DesktopPropertyChangeSupport +java/awt/Toolkit$DesktopPropertyChangeSupport$1 +java/awt/Toolkit$SelectiveAWTEventListener +java/awt/Toolkit$ToolkitEventMulticaster +java/awt/Transparency +java/awt/TrayIcon +java/awt/VKCollection +java/awt/Window +java/awt/Window$1 +java/awt/Window$1DisposeAction +java/awt/Window$Type +java/awt/Window$WindowDisposerRecord +java/awt/color/ColorSpace +java/awt/color/ICC_ColorSpace +java/awt/color/ICC_Profile +java/awt/color/ICC_Profile$1 +java/awt/color/ICC_ProfileRGB +java/awt/datatransfer/ClipboardOwner +java/awt/datatransfer/FlavorMap +java/awt/datatransfer/FlavorTable +java/awt/datatransfer/SystemFlavorMap +java/awt/dnd/DropTarget +java/awt/dnd/DropTargetContext +java/awt/dnd/DropTargetListener +java/awt/dnd/peer/DragSourceContextPeer +java/awt/dnd/peer/DropTargetPeer +java/awt/event/AWTEventListener +java/awt/event/AWTEventListenerProxy +java/awt/event/ActionEvent +java/awt/event/ActionListener +java/awt/event/AdjustmentEvent +java/awt/event/AdjustmentListener +java/awt/event/ComponentAdapter +java/awt/event/ComponentEvent +java/awt/event/ComponentListener +java/awt/event/ContainerEvent +java/awt/event/ContainerListener +java/awt/event/FocusAdapter +java/awt/event/FocusEvent +java/awt/event/FocusListener +java/awt/event/HierarchyBoundsListener +java/awt/event/HierarchyListener +java/awt/event/InputEvent +java/awt/event/InputEvent$1 +java/awt/event/InputMethodEvent +java/awt/event/InputMethodListener +java/awt/event/InvocationEvent +java/awt/event/InvocationEvent$1 +java/awt/event/ItemEvent +java/awt/event/ItemListener +java/awt/event/KeyAdapter +java/awt/event/KeyEvent +java/awt/event/KeyEvent$1 +java/awt/event/KeyListener +java/awt/event/MouseAdapter +java/awt/event/MouseEvent +java/awt/event/MouseListener +java/awt/event/MouseMotionAdapter +java/awt/event/MouseMotionListener +java/awt/event/MouseWheelListener +java/awt/event/NativeLibLoader +java/awt/event/NativeLibLoader$1 +java/awt/event/PaintEvent +java/awt/event/TextListener +java/awt/event/WindowAdapter +java/awt/event/WindowEvent +java/awt/event/WindowFocusListener +java/awt/event/WindowListener +java/awt/event/WindowStateListener +java/awt/font/FontRenderContext +java/awt/font/GlyphVector +java/awt/font/LineMetrics +java/awt/font/TextAttribute +java/awt/geom/AffineTransform +java/awt/geom/Dimension2D +java/awt/geom/GeneralPath +java/awt/geom/Line2D +java/awt/geom/Line2D$Float +java/awt/geom/LineIterator +java/awt/geom/Path2D +java/awt/geom/Path2D$Float +java/awt/geom/PathIterator +java/awt/geom/Point2D +java/awt/geom/Point2D$Float +java/awt/geom/RectIterator +java/awt/geom/Rectangle2D +java/awt/geom/Rectangle2D$Float +java/awt/geom/RectangularShape +java/awt/im/InputContext +java/awt/im/InputMethodRequests +java/awt/im/spi/InputMethod +java/awt/im/spi/InputMethodContext +java/awt/im/spi/InputMethodDescriptor +java/awt/image/BufferStrategy +java/awt/image/BufferedImage +java/awt/image/BufferedImage$1 +java/awt/image/ColorModel +java/awt/image/ColorModel$1 +java/awt/image/ComponentSampleModel +java/awt/image/DataBuffer +java/awt/image/DataBuffer$1 +java/awt/image/DataBufferByte +java/awt/image/DataBufferInt +java/awt/image/DirectColorModel +java/awt/image/FilteredImageSource +java/awt/image/ImageConsumer +java/awt/image/ImageFilter +java/awt/image/ImageObserver +java/awt/image/ImageProducer +java/awt/image/IndexColorModel +java/awt/image/PackedColorModel +java/awt/image/PixelInterleavedSampleModel +java/awt/image/RGBImageFilter +java/awt/image/Raster +java/awt/image/RenderedImage +java/awt/image/SampleModel +java/awt/image/SinglePixelPackedSampleModel +java/awt/image/VolatileImage +java/awt/image/WritableRaster +java/awt/image/WritableRenderedImage +java/awt/peer/CanvasPeer +java/awt/peer/ComponentPeer +java/awt/peer/ContainerPeer +java/awt/peer/FontPeer +java/awt/peer/FramePeer +java/awt/peer/KeyboardFocusManagerPeer +java/awt/peer/LabelPeer +java/awt/peer/LightweightPeer +java/awt/peer/PanelPeer +java/awt/peer/WindowPeer +java/awt/print/PrinterGraphics +java/beans/ChangeListenerMap +java/beans/PropertyChangeEvent +java/beans/PropertyChangeListener +java/beans/PropertyChangeListenerProxy +java/beans/PropertyChangeSupport +java/beans/PropertyChangeSupport$PropertyChangeListenerMap +java/beans/VetoableChangeListener +java/io/Bits +java/io/BufferedInputStream +java/io/BufferedOutputStream +java/io/BufferedReader +java/io/BufferedWriter +java/io/ByteArrayInputStream +java/io/ByteArrayOutputStream +java/io/Closeable +java/io/DataInput +java/io/DataInputStream +java/io/DataOutput +java/io/DataOutputStream +java/io/DefaultFileSystem +java/io/EOFException +java/io/ExpiringCache +java/io/ExpiringCache$1 +java/io/ExpiringCache$Entry +java/io/Externalizable +java/io/File +java/io/File$PathStatus +java/io/FileDescriptor +java/io/FileDescriptor$1 +java/io/FileInputStream +java/io/FileInputStream$1 +java/io/FileNotFoundException +java/io/FileOutputStream +java/io/FileOutputStream$1 +java/io/FilePermission +java/io/FilePermission$1 +java/io/FilePermissionCollection +java/io/FileReader +java/io/FileSystem +java/io/FileWriter +java/io/FilenameFilter +java/io/FilterInputStream +java/io/FilterOutputStream +java/io/FilterReader +java/io/Flushable +java/io/IOException +java/io/InputStream +java/io/InputStreamReader +java/io/InterruptedIOException +java/io/ObjectInput +java/io/ObjectInputStream +java/io/ObjectInputStream$BlockDataInputStream +java/io/ObjectInputStream$GetField +java/io/ObjectInputStream$GetFieldImpl +java/io/ObjectInputStream$HandleTable +java/io/ObjectInputStream$HandleTable$HandleList +java/io/ObjectInputStream$PeekInputStream +java/io/ObjectInputStream$ValidationList +java/io/ObjectOutput +java/io/ObjectOutputStream +java/io/ObjectOutputStream$BlockDataOutputStream +java/io/ObjectOutputStream$HandleTable +java/io/ObjectOutputStream$ReplaceTable +java/io/ObjectStreamClass +java/io/ObjectStreamClass$1 +java/io/ObjectStreamClass$2 +java/io/ObjectStreamClass$3 +java/io/ObjectStreamClass$4 +java/io/ObjectStreamClass$5 +java/io/ObjectStreamClass$Caches +java/io/ObjectStreamClass$ClassDataSlot +java/io/ObjectStreamClass$EntryFuture +java/io/ObjectStreamClass$ExceptionInfo +java/io/ObjectStreamClass$FieldReflector +java/io/ObjectStreamClass$FieldReflectorKey +java/io/ObjectStreamClass$MemberSignature +java/io/ObjectStreamClass$WeakClassKey +java/io/ObjectStreamConstants +java/io/ObjectStreamField +java/io/OutputStream +java/io/OutputStreamWriter +java/io/PrintStream +java/io/PushbackInputStream +java/io/RandomAccessFile +java/io/RandomAccessFile$1 +java/io/Reader +java/io/SerialCallbackContext java/io/Serializable -java/lang/Comparable -java/lang/CharSequence -java/lang/Class -java/lang/reflect/GenericDeclaration -java/lang/reflect/Type -java/lang/reflect/AnnotatedElement -java/lang/Cloneable -java/lang/ClassLoader -java/lang/System -java/lang/Throwable -java/lang/Error -java/lang/ThreadDeath -java/lang/Exception -java/lang/RuntimeException -java/security/ProtectionDomain -java/security/AccessControlContext -java/lang/ClassNotFoundException -java/lang/NoClassDefFoundError -java/lang/LinkageError -java/lang/ClassCastException -java/lang/ArrayStoreException -java/lang/VirtualMachineError -java/lang/OutOfMemoryError -java/lang/StackOverflowError -java/lang/IllegalMonitorStateException -java/lang/ref/Reference -java/lang/ref/SoftReference -java/lang/ref/WeakReference -java/lang/ref/FinalReference -java/lang/ref/PhantomReference -java/lang/ref/Finalizer -java/lang/Thread -java/lang/Runnable -java/lang/ThreadGroup -java/lang/Thread$UncaughtExceptionHandler -java/util/Properties -java/util/Hashtable -java/util/Map -java/util/Dictionary -java/lang/reflect/AccessibleObject -java/lang/reflect/Field -java/lang/reflect/Member -java/lang/reflect/Method -java/lang/reflect/Constructor -sun/reflect/MagicAccessorImpl -sun/reflect/MethodAccessorImpl -sun/reflect/MethodAccessor -sun/reflect/ConstructorAccessorImpl -sun/reflect/ConstructorAccessor -sun/reflect/DelegatingClassLoader -sun/reflect/ConstantPool -sun/reflect/UnsafeStaticFieldAccessorImpl -sun/reflect/UnsafeFieldAccessorImpl -sun/reflect/FieldAccessorImpl -sun/reflect/FieldAccessor -java/util/Vector -java/util/List -java/util/Collection -java/lang/Iterable -java/util/RandomAccess -java/util/AbstractList -java/util/AbstractCollection -java/lang/StringBuffer +java/io/StringReader +java/io/StringWriter +java/io/UnsupportedEncodingException +java/io/WinNTFileSystem +java/io/Writer java/lang/AbstractStringBuilder java/lang/Appendable -java/lang/StackTraceElement -java/nio/Buffer +java/lang/ApplicationShutdownHooks +java/lang/ApplicationShutdownHooks$1 +java/lang/ArithmeticException +java/lang/ArrayIndexOutOfBoundsException +java/lang/ArrayStoreException +java/lang/AutoCloseable java/lang/Boolean -java/lang/Character -java/lang/Float -java/lang/Number -java/lang/Double +java/lang/BootstrapMethodError java/lang/Byte -java/lang/Short +java/lang/CharSequence +java/lang/Character +java/lang/Character$CharacterCache +java/lang/CharacterData +java/lang/CharacterData00 +java/lang/CharacterDataLatin1 +java/lang/Class +java/lang/Class$1 +java/lang/Class$3 +java/lang/Class$4 +java/lang/Class$AnnotationData +java/lang/Class$Atomic +java/lang/Class$ReflectionData +java/lang/ClassCastException +java/lang/ClassFormatError +java/lang/ClassLoader +java/lang/ClassLoader$2 +java/lang/ClassLoader$3 +java/lang/ClassLoader$NativeLibrary +java/lang/ClassLoader$ParallelLoaders +java/lang/ClassLoaderHelper +java/lang/ClassNotFoundException +java/lang/ClassValue$ClassValueMap +java/lang/CloneNotSupportedException +java/lang/Cloneable +java/lang/Comparable +java/lang/Compiler +java/lang/Compiler$1 +java/lang/Double +java/lang/Enum +java/lang/Error +java/lang/Exception +java/lang/ExceptionInInitializerError +java/lang/Float +java/lang/IllegalAccessError +java/lang/IllegalAccessException +java/lang/IllegalArgumentException +java/lang/IllegalMonitorStateException +java/lang/IllegalStateException +java/lang/IncompatibleClassChangeError +java/lang/IndexOutOfBoundsException +java/lang/InheritableThreadLocal +java/lang/InstantiationException java/lang/Integer +java/lang/Integer$IntegerCache +java/lang/InternalError +java/lang/InterruptedException +java/lang/Iterable +java/lang/LinkageError java/lang/Long +java/lang/Long$LongCache +java/lang/Math +java/lang/NoClassDefFoundError +java/lang/NoSuchFieldException +java/lang/NoSuchMethodError +java/lang/NoSuchMethodException java/lang/NullPointerException -java/lang/ArithmeticException -java/io/ObjectStreamField -java/lang/String$CaseInsensitiveComparator -java/util/Comparator +java/lang/Number +java/lang/NumberFormatException +java/lang/Object +java/lang/OutOfMemoryError +java/lang/Package +java/lang/ProcessEnvironment +java/lang/ProcessEnvironment$CheckedEntry +java/lang/ProcessEnvironment$CheckedEntrySet +java/lang/ProcessEnvironment$CheckedEntrySet$1 +java/lang/ProcessEnvironment$EntryComparator +java/lang/ProcessEnvironment$NameComparator +java/lang/Readable +java/lang/ReflectiveOperationException +java/lang/Runnable +java/lang/Runtime +java/lang/RuntimeException java/lang/RuntimePermission -java/security/BasicPermission -java/security/Permission -java/security/Guard -sun/misc/SoftCache -java/util/AbstractMap -java/lang/ref/ReferenceQueue -java/lang/ref/ReferenceQueue$Null -java/lang/ref/ReferenceQueue$Lock -java/util/HashMap +java/lang/SecurityException +java/lang/SecurityManager +java/lang/Short +java/lang/Short$ShortCache +java/lang/Shutdown +java/lang/Shutdown$Lock +java/lang/StackOverflowError +java/lang/StackTraceElement +java/lang/StrictMath +java/lang/String +java/lang/String$CaseInsensitiveComparator +java/lang/StringBuffer +java/lang/StringBuilder +java/lang/StringCoding +java/lang/StringCoding$StringDecoder +java/lang/StringCoding$StringEncoder +java/lang/StringIndexOutOfBoundsException +java/lang/System +java/lang/System$2 +java/lang/SystemClassLoaderAction +java/lang/Terminator +java/lang/Terminator$1 +java/lang/Thread +java/lang/Thread$State +java/lang/Thread$UncaughtExceptionHandler +java/lang/ThreadDeath +java/lang/ThreadGroup +java/lang/ThreadLocal +java/lang/ThreadLocal$ThreadLocalMap +java/lang/ThreadLocal$ThreadLocalMap$Entry +java/lang/Throwable +java/lang/Throwable$PrintStreamOrWriter +java/lang/Throwable$WrappedPrintStream +java/lang/UnsatisfiedLinkError +java/lang/UnsupportedOperationException +java/lang/VirtualMachineError +java/lang/Void java/lang/annotation/Annotation -java/util/HashMap$Entry -java/util/Map$Entry -java/security/AccessController -java/lang/reflect/ReflectPermission -sun/reflect/ReflectionFactory$GetReflectionFactoryAction -java/security/PrivilegedAction -java/util/Stack -sun/reflect/ReflectionFactory +java/lang/invoke/CallSite +java/lang/invoke/ConstantCallSite +java/lang/invoke/DirectMethodHandle +java/lang/invoke/Invokers +java/lang/invoke/LambdaForm +java/lang/invoke/LambdaForm$NamedFunction +java/lang/invoke/MemberName +java/lang/invoke/MemberName$Factory +java/lang/invoke/MethodHandle +java/lang/invoke/MethodHandleImpl +java/lang/invoke/MethodHandleNatives +java/lang/invoke/MethodHandleStatics +java/lang/invoke/MethodHandleStatics$1 +java/lang/invoke/MethodType +java/lang/invoke/MethodType$ConcurrentWeakInternSet +java/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry +java/lang/invoke/MethodTypeForm +java/lang/invoke/MutableCallSite +java/lang/invoke/VolatileCallSite +java/lang/ref/FinalReference +java/lang/ref/Finalizer +java/lang/ref/Finalizer$FinalizerThread +java/lang/ref/PhantomReference +java/lang/ref/Reference java/lang/ref/Reference$Lock java/lang/ref/Reference$ReferenceHandler -java/lang/ref/Finalizer$FinalizerThread -java/util/Enumeration -java/util/Iterator -java/util/Hashtable$Entry -sun/misc/Version -java/io/FileInputStream -java/io/InputStream -java/io/Closeable -java/io/FileDescriptor -java/io/FileOutputStream -java/io/OutputStream -java/io/Flushable -java/io/BufferedInputStream -java/io/FilterInputStream -java/util/concurrent/atomic/AtomicReferenceFieldUpdater -java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl -sun/misc/Unsafe -java/lang/NoSuchMethodError -java/lang/IncompatibleClassChangeError -sun/reflect/Reflection -java/util/Collections -java/util/Collections$EmptySet -java/util/AbstractSet -java/util/Set -java/util/Collections$EmptyList -java/util/Collections$EmptyMap -java/util/Collections$ReverseComparator -java/util/Collections$SynchronizedMap -java/lang/Class$3 +java/lang/ref/ReferenceQueue +java/lang/ref/ReferenceQueue$Lock +java/lang/ref/ReferenceQueue$Null +java/lang/ref/SoftReference +java/lang/ref/WeakReference +java/lang/reflect/AccessibleObject +java/lang/reflect/AnnotatedElement +java/lang/reflect/Array +java/lang/reflect/Constructor +java/lang/reflect/Executable +java/lang/reflect/Field +java/lang/reflect/GenericDeclaration +java/lang/reflect/InvocationHandler +java/lang/reflect/InvocationTargetException +java/lang/reflect/Member +java/lang/reflect/Method java/lang/reflect/Modifier +java/lang/reflect/Parameter +java/lang/reflect/Proxy +java/lang/reflect/Proxy$KeyFactory +java/lang/reflect/Proxy$ProxyClassFactory java/lang/reflect/ReflectAccess -sun/reflect/LangReflectAccess -sun/reflect/misc/ReflectUtil -java/io/PrintStream -java/io/FilterOutputStream -java/io/BufferedOutputStream -java/io/OutputStreamWriter -java/io/Writer -sun/nio/cs/StreamEncoder -java/nio/charset/Charset -sun/nio/cs/StandardCharsets -sun/nio/cs/FastCharsetProvider -java/nio/charset/spi/CharsetProvider -sun/nio/cs/StandardCharsets$Aliases -sun/util/PreHashedMap -sun/nio/cs/StandardCharsets$Classes -sun/nio/cs/StandardCharsets$Cache -java/lang/ThreadLocal -java/util/concurrent/atomic/AtomicInteger -sun/security/action/GetPropertyAction -java/util/Arrays -java/lang/Math -java/lang/StringBuilder -sun/nio/cs/MS1252 -sun/nio/cs/HistoricallyNamedCharset -java/lang/Class$1 -sun/reflect/ReflectionFactory$1 -sun/reflect/NativeConstructorAccessorImpl -sun/reflect/DelegatingConstructorAccessorImpl -sun/misc/VM -sun/nio/cs/SingleByteEncoder -java/nio/charset/CharsetEncoder -java/nio/charset/CodingErrorAction -sun/nio/cs/SingleByteDecoder -java/nio/charset/CharsetDecoder +java/lang/reflect/ReflectPermission +java/lang/reflect/Type +java/lang/reflect/WeakCache +java/math/BigInteger +java/math/BigInteger$UnsafeHolder +java/math/MutableBigInteger +java/math/RoundingMode +java/math/SignedMutableBigInteger +java/net/AbstractPlainDatagramSocketImpl +java/net/AbstractPlainDatagramSocketImpl$1 +java/net/AbstractPlainSocketImpl +java/net/AbstractPlainSocketImpl$1 +java/net/Authenticator +java/net/BindException +java/net/ConnectException +java/net/DatagramPacket +java/net/DatagramPacket$1 +java/net/DatagramSocket +java/net/DatagramSocket$1 +java/net/DatagramSocketImpl +java/net/DefaultDatagramSocketImplFactory$1 +java/net/DefaultInterface +java/net/DualStackPlainDatagramSocketImpl +java/net/DualStackPlainSocketImpl +java/net/FileNameMap +java/net/HttpURLConnection +java/net/Inet4Address +java/net/Inet4AddressImpl +java/net/Inet6Address +java/net/Inet6Address$Inet6AddressHolder +java/net/Inet6AddressImpl +java/net/InetAddress +java/net/InetAddress$1 +java/net/InetAddress$2 +java/net/InetAddress$Cache +java/net/InetAddress$Cache$Type +java/net/InetAddress$CacheEntry +java/net/InetAddress$InetAddressHolder +java/net/InetAddressImpl +java/net/InetAddressImplFactory +java/net/InetSocketAddress +java/net/InetSocketAddress$InetSocketAddressHolder +java/net/InterfaceAddress +java/net/JarURLConnection +java/net/MalformedURLException +java/net/MulticastSocket +java/net/NetworkInterface +java/net/NetworkInterface$1 +java/net/NoRouteToHostException +java/net/Parts +java/net/PlainSocketImpl +java/net/PlainSocketImpl$1 +java/net/Proxy +java/net/Proxy$Type +java/net/ProxySelector +java/net/ServerSocket +java/net/Socket +java/net/SocketAddress +java/net/SocketException +java/net/SocketImpl +java/net/SocketImplFactory +java/net/SocketOptions +java/net/SocketTimeoutException +java/net/SocksConsts +java/net/SocksSocketImpl +java/net/SocksSocketImpl$3 +java/net/TwoStacksPlainDatagramSocketImpl +java/net/URI +java/net/URI$Parser +java/net/URL +java/net/URLClassLoader +java/net/URLClassLoader$1 +java/net/URLClassLoader$2 +java/net/URLClassLoader$3 +java/net/URLClassLoader$3$1 +java/net/URLClassLoader$7 +java/net/URLConnection +java/net/URLConnection$1 +java/net/URLStreamHandler +java/net/URLStreamHandlerFactory +java/net/UnknownHostException +java/nio/Bits +java/nio/Bits$1 +java/nio/Buffer java/nio/ByteBuffer -java/nio/HeapByteBuffer -java/nio/Bits -java/lang/Runtime +java/nio/ByteBufferAsCharBufferB +java/nio/ByteBufferAsIntBufferB +java/nio/ByteBufferAsShortBufferB java/nio/ByteOrder java/nio/CharBuffer -java/lang/Readable +java/nio/DirectByteBuffer +java/nio/DirectByteBuffer$Deallocator +java/nio/DirectLongBufferU +java/nio/HeapByteBuffer java/nio/HeapCharBuffer +java/nio/IntBuffer +java/nio/LongBuffer +java/nio/MappedByteBuffer +java/nio/ShortBuffer +java/nio/channels/ByteChannel +java/nio/channels/Channel +java/nio/channels/FileChannel +java/nio/channels/GatheringByteChannel +java/nio/channels/InterruptibleChannel +java/nio/channels/NetworkChannel +java/nio/channels/ReadableByteChannel +java/nio/channels/ScatteringByteChannel +java/nio/channels/SeekableByteChannel +java/nio/channels/SelectableChannel +java/nio/channels/SocketChannel +java/nio/channels/WritableByteChannel +java/nio/channels/spi/AbstractInterruptibleChannel +java/nio/channels/spi/AbstractInterruptibleChannel$1 +java/nio/channels/spi/AbstractSelectableChannel +java/nio/charset/Charset +java/nio/charset/CharsetDecoder +java/nio/charset/CharsetEncoder java/nio/charset/CoderResult java/nio/charset/CoderResult$1 +java/nio/charset/CoderResult$2 java/nio/charset/CoderResult$Cache -java/nio/charset/CoderResult$2 -sun/nio/cs/Surrogate$Parser -sun/nio/cs/Surrogate -java/io/BufferedWriter -java/io/File -java/io/FileSystem -java/io/WinNTFileSystem -java/io/Win32FileSystem -java/io/ExpiringCache -java/io/ExpiringCache$1 +java/nio/charset/CodingErrorAction +java/nio/charset/StandardCharsets +java/nio/charset/spi/CharsetProvider +java/nio/file/Path +java/nio/file/Watchable +java/nio/file/attribute/FileAttribute +java/security/AccessControlContext +java/security/AccessController +java/security/AlgorithmParameters +java/security/AlgorithmParametersSpi +java/security/AllPermission +java/security/AllPermissionCollection +java/security/BasicPermission +java/security/BasicPermissionCollection +java/security/CodeSigner +java/security/CodeSource +java/security/GeneralSecurityException +java/security/Guard +java/security/InvalidKeyException +java/security/Key +java/security/KeyException +java/security/MessageDigest +java/security/MessageDigest$Delegate +java/security/MessageDigestSpi +java/security/NoSuchAlgorithmException +java/security/Permission +java/security/PermissionCollection +java/security/Permissions +java/security/Principal +java/security/PrivateKey +java/security/PrivilegedAction +java/security/PrivilegedActionException +java/security/PrivilegedExceptionAction +java/security/ProtectionDomain +java/security/ProtectionDomain$1 +java/security/ProtectionDomain$3 +java/security/ProtectionDomain$Key +java/security/Provider +java/security/Provider$EngineDescription +java/security/Provider$Service +java/security/Provider$ServiceKey +java/security/Provider$UString +java/security/PublicKey +java/security/SecureClassLoader +java/security/Security +java/security/Security$1 +java/security/Signature +java/security/Signature$Delegate +java/security/SignatureException +java/security/SignatureSpi +java/security/UnresolvedPermission +java/security/cert/Certificate +java/security/interfaces/DSAKey +java/security/interfaces/DSAParams +java/security/interfaces/DSAPrivateKey +java/security/interfaces/DSAPublicKey +java/security/spec/AlgorithmParameterSpec +java/security/spec/DSAParameterSpec +java/text/AttributedCharacterIterator$Attribute +java/text/CharacterIterator +java/text/Collator +java/text/DateFormat +java/text/DateFormat$Field +java/text/DateFormatSymbols +java/text/DecimalFormat +java/text/DecimalFormatSymbols +java/text/DigitList +java/text/DontCareFieldPosition +java/text/DontCareFieldPosition$1 +java/text/EntryPair +java/text/FieldPosition +java/text/Format +java/text/Format$Field +java/text/Format$FieldDelegate +java/text/MergeCollation +java/text/MessageFormat +java/text/MessageFormat$Field +java/text/NumberFormat +java/text/NumberFormat$Field +java/text/ParseException +java/text/PatternEntry +java/text/PatternEntry$Parser +java/text/RBCollationTables +java/text/RBCollationTables$BuildAPI +java/text/RuleBasedCollator +java/text/SimpleDateFormat +java/text/spi/BreakIteratorProvider +java/text/spi/CollatorProvider +java/text/spi/DateFormatProvider +java/text/spi/DateFormatSymbolsProvider +java/text/spi/DecimalFormatSymbolsProvider +java/text/spi/NumberFormatProvider +java/util/AbstractCollection +java/util/AbstractList +java/util/AbstractList$Itr +java/util/AbstractList$ListItr +java/util/AbstractMap +java/util/AbstractQueue +java/util/AbstractSequentialList +java/util/AbstractSet +java/util/ArrayDeque +java/util/ArrayList +java/util/ArrayList$Itr +java/util/ArrayList$ListItr +java/util/ArrayList$SubList +java/util/ArrayList$SubList$1 +java/util/Arrays +java/util/Arrays$ArrayList +java/util/Arrays$LegacyMergeSort +java/util/BitSet +java/util/Calendar +java/util/Calendar$Builder +java/util/Collection +java/util/Collections +java/util/Collections$3 +java/util/Collections$EmptyEnumeration +java/util/Collections$EmptyIterator +java/util/Collections$EmptyList +java/util/Collections$EmptyMap +java/util/Collections$EmptySet +java/util/Collections$SetFromMap +java/util/Collections$SynchronizedCollection +java/util/Collections$SynchronizedMap +java/util/Collections$SynchronizedSet +java/util/Collections$UnmodifiableCollection +java/util/Collections$UnmodifiableCollection$1 +java/util/Collections$UnmodifiableList +java/util/Collections$UnmodifiableList$1 +java/util/Collections$UnmodifiableMap +java/util/Collections$UnmodifiableRandomAccessList +java/util/Collections$UnmodifiableSet +java/util/ComparableTimSort +java/util/Comparator +java/util/Currency +java/util/Currency$1 +java/util/Currency$CurrencyNameGetter +java/util/Date +java/util/Deque +java/util/Dictionary +java/util/Enumeration +java/util/EventListener +java/util/EventListenerProxy +java/util/EventObject +java/util/GregorianCalendar +java/util/HashMap +java/util/HashMap$EntryIterator +java/util/HashMap$EntrySet +java/util/HashMap$HashIterator +java/util/HashMap$KeyIterator +java/util/HashMap$KeySet +java/util/HashMap$Node +java/util/HashMap$TreeNode +java/util/HashMap$ValueIterator +java/util/HashMap$Values +java/util/HashSet +java/util/Hashtable +java/util/Hashtable$Entry +java/util/Hashtable$EntrySet +java/util/Hashtable$Enumerator +java/util/Hashtable$ValueCollection +java/util/IdentityHashMap +java/util/IdentityHashMap$IdentityHashMapIterator +java/util/IdentityHashMap$KeyIterator +java/util/IdentityHashMap$KeySet +java/util/IdentityHashMap$ValueIterator +java/util/IdentityHashMap$Values +java/util/Iterator java/util/LinkedHashMap java/util/LinkedHashMap$Entry -sun/misc/SharedSecrets -java/lang/ClassLoader$3 -java/io/ExpiringCache$Entry -java/lang/ClassLoader$NativeLibrary -java/lang/Terminator -java/lang/Terminator$1 -sun/misc/SignalHandler -sun/misc/Signal -sun/misc/NativeSignalHandler -java/io/Console -java/io/Console$1 -sun/misc/JavaIOAccess -java/lang/Shutdown -java/util/ArrayList -java/lang/Shutdown$Lock -java/lang/ApplicationShutdownHooks -java/util/IdentityHashMap -sun/misc/OSEnvironment -sun/io/Win32ErrorMode -java/lang/System$2 -sun/misc/JavaLangAccess -java/lang/Compiler -java/lang/Compiler$1 -sun/misc/Launcher -sun/misc/Launcher$Factory -java/net/URLStreamHandlerFactory -sun/misc/Launcher$ExtClassLoader -java/net/URLClassLoader -java/security/SecureClassLoader -sun/security/util/Debug -java/net/URLClassLoader$7 -sun/misc/JavaNetAccess -java/util/StringTokenizer -sun/misc/Launcher$ExtClassLoader$1 -java/security/PrivilegedExceptionAction -sun/misc/MetaIndex -java/io/BufferedReader -java/io/Reader -java/io/FileReader -java/io/InputStreamReader -sun/nio/cs/StreamDecoder -java/lang/reflect/Array +java/util/LinkedHashMap$LinkedEntryIterator +java/util/LinkedHashMap$LinkedEntrySet +java/util/LinkedHashMap$LinkedHashIterator +java/util/LinkedHashMap$LinkedKeyIterator +java/util/LinkedHashMap$LinkedKeySet +java/util/LinkedList +java/util/LinkedList$ListItr +java/util/LinkedList$Node +java/util/List +java/util/ListIterator +java/util/ListResourceBundle java/util/Locale -java/util/concurrent/ConcurrentHashMap -java/util/concurrent/ConcurrentMap -java/util/concurrent/ConcurrentHashMap$Segment -java/util/concurrent/locks/ReentrantLock -java/util/concurrent/locks/Lock -java/util/concurrent/locks/ReentrantLock$NonfairSync -java/util/concurrent/locks/ReentrantLock$Sync -java/util/concurrent/locks/AbstractQueuedSynchronizer -java/util/concurrent/locks/AbstractOwnableSynchronizer -java/util/concurrent/locks/AbstractQueuedSynchronizer$Node -java/util/concurrent/ConcurrentHashMap$HashEntry -java/lang/CharacterDataLatin1 -java/io/ObjectStreamClass -sun/net/www/ParseUtil -java/util/BitSet -java/net/URL -java/net/Parts -sun/net/www/protocol/file/Handler -java/net/URLStreamHandler -java/util/HashSet -sun/misc/URLClassPath -sun/net/www/protocol/jar/Handler -sun/misc/Launcher$AppClassLoader -sun/misc/Launcher$AppClassLoader$1 -java/lang/SystemClassLoaderAction -java/lang/StringCoding -java/lang/ThreadLocal$ThreadLocalMap -java/lang/ThreadLocal$ThreadLocalMap$Entry -java/lang/StringCoding$StringDecoder -java/net/URLClassLoader$1 -sun/misc/URLClassPath$3 -sun/misc/URLClassPath$JarLoader -sun/misc/URLClassPath$Loader -java/security/PrivilegedActionException -sun/misc/URLClassPath$FileLoader -sun/misc/URLClassPath$FileLoader$1 -sun/misc/Resource -sun/nio/ByteBuffered -java/security/CodeSource -java/security/Permissions -java/security/PermissionCollection -sun/net/www/protocol/file/FileURLConnection -sun/net/www/URLConnection -java/net/URLConnection -java/net/UnknownContentHandler -java/net/ContentHandler -sun/net/www/MessageHeader -java/io/FilePermission -java/io/FilePermission$1 -sun/security/provider/PolicyFile -java/security/Policy -java/security/Policy$UnsupportedEmptyCollection -java/io/FilePermissionCollection -java/security/AllPermission -java/security/UnresolvedPermission -java/security/BasicPermissionCollection -java/security/Principal -java/security/cert/Certificate -java/util/AbstractList$Itr -java/util/IdentityHashMap$KeySet -java/util/IdentityHashMap$KeyIterator -java/util/IdentityHashMap$IdentityHashMapIterator -java/io/DeleteOnExitHook -java/util/LinkedHashSet -java/util/HashMap$KeySet -java/util/LinkedHashMap$KeyIterator -java/util/LinkedHashMap$LinkedHashIterator -java/awt/Frame -java/awt/MenuContainer -java/awt/Window -javax/accessibility/Accessible -java/awt/Container -java/awt/Component -java/awt/image/ImageObserver -java/lang/InterruptedException -java/awt/Label -java/util/logging/Logger -java/util/logging/Handler -java/util/logging/Level -java/util/logging/LogManager -java/util/logging/LogManager$1 -java/beans/PropertyChangeSupport -java/util/logging/LogManager$LogNode -java/util/logging/LoggingPermission -java/util/logging/LogManager$Cleaner -java/util/logging/LogManager$RootLogger -java/util/logging/LogManager$2 +java/util/Locale$1 +java/util/Locale$Cache +java/util/Locale$Category +java/util/Locale$LocaleKey +java/util/Map +java/util/Map$Entry +java/util/MissingResourceException +java/util/NavigableMap +java/util/Objects +java/util/PriorityQueue +java/util/Properties java/util/Properties$LineReader -java/util/Hashtable$Enumerator -java/beans/PropertyChangeEvent -java/util/EventObject -java/awt/Component$AWTTreeLock -sun/awt/NativeLibLoader -sun/security/action/LoadLibraryAction -java/awt/Toolkit -java/awt/Toolkit$3 -sun/util/CoreResourceBundleControl -java/util/ResourceBundle$Control -java/util/Arrays$ArrayList -java/util/Collections$UnmodifiableRandomAccessList -java/util/Collections$UnmodifiableList -java/util/Collections$UnmodifiableCollection +java/util/PropertyResourceBundle +java/util/Queue +java/util/Random +java/util/RandomAccess java/util/ResourceBundle java/util/ResourceBundle$1 +java/util/ResourceBundle$BundleReference +java/util/ResourceBundle$CacheKey +java/util/ResourceBundle$CacheKeyReference +java/util/ResourceBundle$Control +java/util/ResourceBundle$Control$1 +java/util/ResourceBundle$Control$CandidateListCache +java/util/ResourceBundle$LoaderReference java/util/ResourceBundle$RBClassLoader java/util/ResourceBundle$RBClassLoader$1 -java/util/ResourceBundle$CacheKey -java/util/ResourceBundle$LoaderReference -java/util/ResourceBundle$CacheKeyReference java/util/ResourceBundle$SingleFormatControl -sun/awt/resources/awt -java/util/ListResourceBundle -java/awt/Toolkit$1 -java/io/FileNotFoundException -java/io/IOException -java/awt/GraphicsEnvironment -java/awt/GraphicsEnvironment$1 -java/awt/Insets -sun/awt/windows/WComponentPeer -java/awt/peer/ComponentPeer -java/awt/dnd/peer/DropTargetPeer -sun/awt/DisplayChangedListener -java/util/EventListener -sun/awt/windows/WObjectPeer -java/awt/Font -java/awt/geom/AffineTransform -sun/font/AttributeValues -sun/font/EAttribute -java/lang/Enum -java/text/AttributedCharacterIterator$Attribute -java/lang/Class$4 -sun/reflect/NativeMethodAccessorImpl -sun/reflect/DelegatingMethodAccessorImpl -java/awt/font/TextAttribute -java/lang/Integer$IntegerCache +java/util/ServiceLoader +java/util/ServiceLoader$1 +java/util/ServiceLoader$LazyIterator +java/util/Set +java/util/SortedMap +java/util/Stack +java/util/StringTokenizer +java/util/TimSort +java/util/TimeZone +java/util/TimeZone$1 +java/util/TreeMap +java/util/TreeMap$Entry +java/util/Vector +java/util/Vector$1 +java/util/Vector$Itr +java/util/Vector$ListItr java/util/WeakHashMap java/util/WeakHashMap$Entry -java/awt/AWTEvent -java/awt/Component$DummyRequestFocusController -sun/awt/RequestFocusController -java/awt/LayoutManager -java/awt/LightweightDispatcher -java/awt/event/AWTEventListener -java/awt/Dimension -java/awt/geom/Dimension2D +java/util/WeakHashMap$KeySet +java/util/concurrent/BlockingQueue +java/util/concurrent/ConcurrentHashMap +java/util/concurrent/ConcurrentHashMap$BaseIterator +java/util/concurrent/ConcurrentHashMap$CollectionView +java/util/concurrent/ConcurrentHashMap$CounterCell +java/util/concurrent/ConcurrentHashMap$EntrySetView +java/util/concurrent/ConcurrentHashMap$ForwardingNode +java/util/concurrent/ConcurrentHashMap$KeyIterator +java/util/concurrent/ConcurrentHashMap$KeySetView +java/util/concurrent/ConcurrentHashMap$Node +java/util/concurrent/ConcurrentHashMap$Segment +java/util/concurrent/ConcurrentHashMap$Traverser +java/util/concurrent/ConcurrentHashMap$ValueIterator +java/util/concurrent/ConcurrentHashMap$ValuesView +java/util/concurrent/ConcurrentMap +java/util/concurrent/CopyOnWriteArrayList +java/util/concurrent/DelayQueue +java/util/concurrent/Delayed +java/util/concurrent/TimeUnit +java/util/concurrent/TimeUnit$1 +java/util/concurrent/TimeUnit$2 +java/util/concurrent/TimeUnit$3 +java/util/concurrent/TimeUnit$4 +java/util/concurrent/TimeUnit$5 +java/util/concurrent/TimeUnit$6 +java/util/concurrent/TimeUnit$7 java/util/concurrent/atomic/AtomicBoolean -java/awt/ComponentOrientation -java/awt/Component$2 -java/lang/NoSuchMethodException -sun/awt/AppContext -sun/awt/AppContext$1 -sun/awt/AppContext$2 -sun/awt/MostRecentKeyValue -java/awt/Cursor -java/awt/Point -java/awt/geom/Point2D -sun/awt/Win32GraphicsEnvironment -sun/java2d/SunGraphicsEnvironment -sun/java2d/FontSupport -java/io/FilenameFilter -sun/awt/windows/WToolkit -sun/awt/SunToolkit -sun/awt/WindowClosingSupport -sun/awt/WindowClosingListener -sun/awt/ComponentFactory -sun/awt/InputMethodSupport +java/util/concurrent/atomic/AtomicInteger +java/util/concurrent/atomic/AtomicLong +java/util/concurrent/atomic/AtomicMarkableReference +java/util/concurrent/atomic/AtomicMarkableReference$Pair +java/util/concurrent/atomic/AtomicReferenceFieldUpdater +java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl +java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1 +java/util/concurrent/locks/AbstractOwnableSynchronizer +java/util/concurrent/locks/AbstractQueuedSynchronizer java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject +java/util/concurrent/locks/AbstractQueuedSynchronizer$Node java/util/concurrent/locks/Condition -sun/awt/AWTAutoShutdown -sun/awt/SunToolkit$6 -java/awt/Dialog$ModalExclusionType -java/awt/Dialog -java/awt/Dialog$ModalityType -java/awt/ModalEventFilter -java/awt/EventFilter -sun/reflect/UnsafeFieldAccessorFactory -sun/awt/windows/WWindowPeer -java/awt/peer/WindowPeer -java/awt/peer/ContainerPeer -sun/awt/windows/WPanelPeer -java/awt/peer/PanelPeer -sun/awt/windows/WCanvasPeer -java/awt/peer/CanvasPeer -java/awt/Color -java/awt/Paint -java/awt/Transparency -java/awt/GraphicsConfiguration -java/awt/image/BufferStrategy -java/awt/dnd/DropTarget -java/awt/dnd/DropTargetListener -java/awt/event/ComponentListener -java/awt/event/FocusListener -java/awt/event/HierarchyListener -java/awt/event/HierarchyBoundsListener -java/awt/event/KeyListener -java/awt/event/MouseListener -java/awt/event/MouseMotionListener -java/awt/event/MouseWheelListener -java/awt/event/InputMethodListener -java/awt/event/ContainerListener +java/util/concurrent/locks/Lock +java/util/concurrent/locks/LockSupport +java/util/concurrent/locks/ReadWriteLock +java/util/concurrent/locks/ReentrantLock +java/util/concurrent/locks/ReentrantLock$NonfairSync +java/util/concurrent/locks/ReentrantLock$Sync +java/util/concurrent/locks/ReentrantReadWriteLock +java/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync +java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock +java/util/concurrent/locks/ReentrantReadWriteLock$Sync +java/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter +java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock +java/util/function/BiFunction +java/util/jar/Attributes +java/util/jar/Attributes$Name +java/util/jar/JarEntry +java/util/jar/JarFile +java/util/jar/JarFile$JarEntryIterator +java/util/jar/JarFile$JarFileEntry +java/util/jar/JarVerifier +java/util/jar/JarVerifier$3 +java/util/jar/JavaUtilJarAccessImpl +java/util/jar/Manifest +java/util/jar/Manifest$FastInputStream +java/util/logging/Handler +java/util/logging/Level +java/util/logging/Level$KnownLevel +java/util/logging/LogManager +java/util/logging/LogManager$1 +java/util/logging/LogManager$2 +java/util/logging/LogManager$3 +java/util/logging/LogManager$5 +java/util/logging/LogManager$Cleaner +java/util/logging/LogManager$LogNode +java/util/logging/LogManager$LoggerContext +java/util/logging/LogManager$LoggerContext$1 +java/util/logging/LogManager$LoggerWeakRef +java/util/logging/LogManager$RootLogger +java/util/logging/LogManager$SystemLoggerContext +java/util/logging/Logger +java/util/logging/Logger$1 +java/util/logging/LoggingPermission +java/util/logging/LoggingProxyImpl +java/util/spi/CalendarDataProvider +java/util/spi/CurrencyNameProvider +java/util/spi/LocaleNameProvider +java/util/spi/LocaleServiceProvider +java/util/spi/ResourceBundleControlProvider +java/util/spi/TimeZoneNameProvider +java/util/zip/CRC32 +java/util/zip/Checksum +java/util/zip/DeflaterOutputStream +java/util/zip/GZIPInputStream +java/util/zip/Inflater +java/util/zip/InflaterInputStream +java/util/zip/ZStreamRef +java/util/zip/ZipCoder +java/util/zip/ZipConstants +java/util/zip/ZipEntry +java/util/zip/ZipFile +java/util/zip/ZipFile$1 +java/util/zip/ZipFile$ZipEntryIterator +java/util/zip/ZipFile$ZipFileInflaterInputStream +java/util/zip/ZipFile$ZipFileInputStream +java/util/zip/ZipInputStream +java/util/zip/ZipUtils +javax/accessibility/Accessible +javax/accessibility/AccessibleAction +javax/accessibility/AccessibleBundle +javax/accessibility/AccessibleComponent javax/accessibility/AccessibleContext -java/io/ObjectOutputStream -java/io/ObjectOutput -java/io/DataOutput -java/io/ObjectStreamConstants -java/io/ObjectInputStream -java/io/ObjectInput -java/io/DataInput -java/awt/HeadlessException -java/lang/UnsupportedOperationException -java/awt/Rectangle -java/awt/Shape -java/awt/geom/Rectangle2D -java/awt/geom/RectangularShape -java/awt/Image -java/awt/event/KeyEvent -java/awt/event/InputEvent -java/awt/event/ComponentEvent -java/awt/Event -java/awt/im/InputContext -java/awt/event/WindowListener -java/awt/event/WindowStateListener -java/awt/event/WindowFocusListener -java/awt/event/WindowEvent -java/lang/SecurityException -java/beans/PropertyChangeListener -java/awt/event/MouseWheelEvent -java/awt/event/MouseEvent -java/awt/BufferCapabilities -java/awt/AWTException -sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl -sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl -sun/java2d/SurfaceData -sun/java2d/DisposerTarget -sun/java2d/InvalidPipeException -java/lang/IllegalStateException -sun/java2d/NullSurfaceData -sun/java2d/loops/SurfaceType -sun/awt/image/PixelConverter -sun/awt/image/PixelConverter$Xrgb -sun/awt/image/PixelConverter$Argb -sun/awt/image/PixelConverter$ArgbPre -sun/awt/image/PixelConverter$Xbgr -sun/awt/image/PixelConverter$Rgba -sun/awt/image/PixelConverter$RgbaPre -sun/awt/image/PixelConverter$Ushort565Rgb -sun/awt/image/PixelConverter$Ushort555Rgb -sun/awt/image/PixelConverter$Ushort555Rgbx -sun/awt/image/PixelConverter$Ushort4444Argb -sun/awt/image/PixelConverter$ByteGray -sun/awt/image/PixelConverter$UshortGray -sun/awt/image/PixelConverter$Rgbx -sun/awt/image/PixelConverter$Bgrx -sun/awt/image/PixelConverter$ArgbBm -java/awt/image/ColorModel -java/awt/image/DirectColorModel -java/awt/image/PackedColorModel -java/awt/color/ColorSpace -java/awt/color/ICC_Profile -java/awt/color/ICC_ProfileRGB -java/awt/color/ICC_Profile$1 -java/awt/color/ICC_ColorSpace -sun/java2d/pipe/NullPipe -sun/java2d/pipe/PixelDrawPipe -sun/java2d/pipe/PixelFillPipe -sun/java2d/pipe/ShapeDrawPipe -sun/java2d/pipe/TextPipe -sun/java2d/pipe/DrawImagePipe -java/awt/image/IndexColorModel -sun/java2d/pipe/LoopPipe -sun/java2d/pipe/OutlineTextRenderer -sun/java2d/pipe/SolidTextRenderer -sun/java2d/pipe/GlyphListLoopPipe -sun/java2d/pipe/GlyphListPipe -sun/java2d/pipe/AATextRenderer -sun/java2d/pipe/LCDTextRenderer -sun/java2d/pipe/AlphaColorPipe -sun/java2d/pipe/CompositePipe -sun/java2d/pipe/PixelToShapeConverter -sun/java2d/pipe/TextRenderer -sun/java2d/pipe/SpanClipRenderer -sun/java2d/pipe/Region -sun/java2d/pipe/RegionIterator -sun/java2d/pipe/AlphaPaintPipe -sun/java2d/pipe/SpanShapeRenderer$Composite -sun/java2d/pipe/SpanShapeRenderer -sun/java2d/pipe/GeneralCompositePipe -sun/java2d/pipe/DrawImage -sun/java2d/loops/RenderCache -sun/java2d/loops/RenderCache$Entry -sun/awt/image/SunVolatileImage -java/awt/image/VolatileImage -java/awt/ImageCapabilities -java/awt/Image$1 -sun/awt/image/SurfaceManager$ImageAccessor -sun/awt/image/SurfaceManager -sun/awt/image/VolatileSurfaceManager -sun/java2d/windows/WindowsFlags -sun/java2d/windows/WindowsFlags$1 -sun/java2d/loops/Blit -sun/java2d/loops/GraphicsPrimitive -sun/java2d/loops/GraphicsPrimitiveMgr -sun/java2d/loops/CompositeType -sun/java2d/SunGraphics2D -sun/awt/ConstrainableGraphics -java/awt/Graphics2D -java/awt/Graphics -sun/java2d/loops/XORComposite -java/awt/Composite -java/awt/AlphaComposite -java/awt/geom/Path2D -java/awt/geom/Path2D$Float -sun/awt/SunHints -sun/java2d/loops/BlitBg -sun/java2d/loops/ScaledBlit -sun/java2d/loops/FillRect -sun/java2d/loops/FillSpans -sun/java2d/loops/DrawLine -sun/java2d/loops/DrawRect -sun/java2d/loops/DrawPolygons -sun/java2d/loops/DrawPath -sun/java2d/loops/FillPath -sun/java2d/loops/MaskBlit -sun/java2d/loops/MaskFill -sun/java2d/loops/DrawGlyphList -sun/java2d/loops/DrawGlyphListAA -sun/java2d/loops/DrawGlyphListLCD -sun/java2d/loops/TransformHelper -java/awt/BasicStroke -java/awt/Stroke -sun/misc/PerformanceLogger -sun/misc/PerformanceLogger$TimeData -sun/java2d/pipe/ValidatePipe -sun/awt/SunHints$Key -java/awt/RenderingHints$Key -sun/awt/SunHints$Value -sun/awt/SunHints$LCDContrastKey -sun/java2d/loops/CustomComponent -sun/java2d/loops/GraphicsPrimitiveProxy -sun/java2d/loops/GeneralRenderer -sun/java2d/loops/GraphicsPrimitiveMgr$1 -sun/java2d/loops/GraphicsPrimitiveMgr$2 -sun/java2d/windows/GDIBlitLoops -sun/java2d/windows/GDIRenderer -sun/awt/windows/WToolkit$1 -sun/awt/SunDisplayChanger -sun/java2d/SunGraphicsEnvironment$1 -sun/font/FontManager -sun/font/FileFont -sun/font/PhysicalFont -sun/font/Font2D -sun/font/CompositeFont -java/util/HashMap$Values -java/util/HashMap$ValueIterator -java/util/HashMap$HashIterator -sun/font/TrueTypeFont -java/awt/font/FontRenderContext -java/awt/RenderingHints -sun/font/Type1Font -java/awt/geom/Point2D$Float -sun/font/StrikeMetrics -java/awt/geom/Rectangle2D$Float -java/awt/geom/GeneralPath -sun/font/CharToGlyphMapper -sun/font/PhysicalStrike -sun/font/FontStrike -sun/font/GlyphList -sun/font/StrikeCache -sun/java2d/Disposer -sun/java2d/Disposer$1 -sun/font/StrikeCache$1 -sun/awt/windows/WFontConfiguration -sun/awt/FontConfiguration -sun/awt/FontDescriptor -java/io/DataInputStream -java/lang/Short$ShortCache -java/util/HashMap$KeyIterator -sun/font/CompositeFontDescriptor -sun/font/Font2DHandle -sun/font/FontFamily -java/awt/GraphicsDevice -sun/awt/Win32GraphicsDevice -sun/awt/Win32GraphicsConfig -java/awt/BorderLayout -java/awt/LayoutManager2 -java/awt/Toolkit$2 -sun/awt/SunToolkit$ModalityListenerList -sun/awt/ModalityListener -sun/awt/SunToolkit$1 -java/util/MissingResourceException -java/awt/EventQueue -java/awt/Queue -sun/awt/PostEventQueue -sun/awt/windows/WToolkit$ToolkitDisposer -sun/java2d/DisposerRecord -sun/awt/windows/WToolkit$2 -sun/awt/windows/WToolkit$3 -java/awt/Window$WindowDisposerRecord -java/awt/KeyboardFocusManager -java/awt/KeyEventDispatcher -java/awt/KeyEventPostProcessor -java/awt/event/NativeLibLoader -java/awt/AWTKeyStroke -java/awt/AWTKeyStroke$1 -java/util/LinkedList -java/util/Deque -java/util/Queue -java/util/AbstractSequentialList -java/awt/DefaultKeyboardFocusManager -java/awt/DefaultFocusTraversalPolicy -java/awt/ContainerOrderFocusTraversalPolicy -java/awt/FocusTraversalPolicy -java/util/Collections$UnmodifiableSet -sun/awt/HeadlessToolkit -sun/awt/KeyboardFocusManagerPeerImpl -java/awt/peer/KeyboardFocusManagerPeer -sun/awt/windows/WFramePeer -java/awt/peer/FramePeer -sun/awt/RepaintArea -sun/awt/EmbeddedFrame -sun/awt/im/InputMethodWindow -sun/awt/windows/WComponentPeer$2 -sun/awt/PaintEventDispatcher -java/awt/event/InvocationEvent -java/awt/ActiveEvent -java/awt/MenuComponent -sun/awt/SunToolkit$3 -java/util/EmptyStackException -java/lang/reflect/InvocationTargetException -java/awt/event/PaintEvent -java/awt/EventDispatchThread -sun/awt/PeerEvent -java/awt/EventQueue$1 -sun/java2d/loops/RenderLoops -java/awt/EventDispatchThread$1 -java/awt/Conditional -java/awt/EventDispatchThread$HierarchyEventFilter -java/awt/EventFilter$FilterAction -sun/awt/dnd/SunDragSourceContextPeer -java/awt/dnd/peer/DragSourceContextPeer -java/awt/event/InputMethodEvent -java/awt/event/ActionEvent -sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec -sun/awt/windows/WFileDialogPeer -java/awt/peer/FileDialogPeer -java/awt/peer/DialogPeer -sun/awt/windows/WPrintDialogPeer -sun/java2d/DefaultDisposerRecord -sun/awt/windows/WColor -sun/awt/windows/WFontPeer -sun/awt/PlatformFont -java/awt/peer/FontPeer -sun/awt/FontConfiguration$1 -sun/awt/windows/WingDings -sun/awt/windows/WingDings$Encoder -sun/awt/Symbol -sun/awt/Symbol$Encoder -sun/awt/im/InputMethodManager -sun/awt/im/ExecutableInputMethodManager -sun/awt/windows/WInputMethodDescriptor -java/awt/im/spi/InputMethodDescriptor -sun/awt/im/InputMethodLocator -sun/awt/im/ExecutableInputMethodManager$2 -sun/misc/Service -sun/misc/Service$LazyIterator -java/util/TreeSet -java/util/NavigableSet -java/util/SortedSet -java/util/TreeMap -java/util/NavigableMap -java/util/SortedMap -sun/misc/Launcher$1 -sun/misc/URLClassPath$2 -java/lang/ClassLoader$2 -sun/misc/URLClassPath$1 -java/net/URLClassLoader$3 -sun/misc/CompoundEnumeration -sun/misc/URLClassPath$JarLoader$1 -sun/misc/FileURLMapper -java/net/URLClassLoader$3$1 -sun/awt/SunToolkit$2 -sun/reflect/UnsafeObjectFieldAccessorImpl -java/awt/peer/LightweightPeer -sun/awt/windows/WLabelPeer -java/awt/peer/LabelPeer -java/awt/PopupMenu -java/awt/Menu -java/awt/MenuItem -java/io/PrintWriter -sun/awt/CausedFocusEvent$Cause -java/awt/PointerInfo -java/awt/Component$BaselineResizeBehavior -java/awt/FontMetrics -java/awt/image/ImageProducer -java/awt/im/InputMethodRequests -java/awt/event/FocusEvent -java/awt/event/HierarchyEvent -javax/accessibility/AccessibleStateSet -java/awt/SequencedEvent -sun/awt/PlatformFont$PlatformFontCache -sun/awt/windows/WGlobalCursorManager -sun/awt/GlobalCursorManager -sun/awt/GlobalCursorManager$NativeUpdater -sun/nio/cs/UTF_16LE -sun/nio/cs/Unicode -sun/nio/cs/UTF_16LE$Encoder -sun/nio/cs/UnicodeEncoder -sun/nio/cs/UTF_16LE$Decoder -sun/nio/cs/UnicodeDecoder -sun/awt/event/IgnorePaintEvent -sun/awt/dnd/SunDropTargetEvent -java/awt/DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent -java/awt/SentEvent -java/awt/KeyboardFocusManager$HeavyweightFocusRequest -java/util/LinkedList$ListItr -java/util/ListIterator -java/awt/DefaultKeyboardFocusManager$TypeAheadMarker -java/awt/KeyboardFocusManager$LightweightFocusRequest -javax/swing/JFrame -javax/swing/WindowConstants -javax/swing/RootPaneContainer -javax/swing/TransferHandler$HasGetTransferHandler -javax/swing/JLabel -javax/swing/SwingConstants +javax/accessibility/AccessibleExtendedComponent +javax/accessibility/AccessibleRelationSet +javax/accessibility/AccessibleState +javax/accessibility/AccessibleText +javax/accessibility/AccessibleValue +javax/security/auth/Destroyable +javax/sound/sampled/Control$Type +javax/sound/sampled/DataLine +javax/sound/sampled/DataLine$Info +javax/sound/sampled/FloatControl$Type +javax/sound/sampled/Line +javax/sound/sampled/Line$Info +javax/sound/sampled/LineUnavailableException +javax/sound/sampled/UnsupportedAudioFileException +javax/swing/AbstractAction +javax/swing/AbstractButton +javax/swing/AbstractButton$AccessibleAbstractButton +javax/swing/AbstractButton$Handler +javax/swing/AbstractCellEditor +javax/swing/AbstractListModel +javax/swing/Action +javax/swing/ActionMap +javax/swing/AncestorNotifier +javax/swing/ArrayTable +javax/swing/BorderFactory +javax/swing/BoundedRangeModel +javax/swing/Box +javax/swing/Box$Filler +javax/swing/BoxLayout +javax/swing/BufferStrategyPaintManager +javax/swing/BufferStrategyPaintManager$BufferInfo +javax/swing/ButtonGroup +javax/swing/ButtonModel +javax/swing/CellEditor +javax/swing/CellRendererPane +javax/swing/ClientPropertyKey +javax/swing/ClientPropertyKey$1 +javax/swing/ComboBoxEditor +javax/swing/ComboBoxModel +javax/swing/ComponentInputMap +javax/swing/DefaultBoundedRangeModel +javax/swing/DefaultButtonModel +javax/swing/DefaultCellEditor +javax/swing/DefaultCellEditor$1 +javax/swing/DefaultCellEditor$EditorDelegate +javax/swing/DefaultComboBoxModel +javax/swing/DefaultListCellRenderer +javax/swing/DefaultListCellRenderer$UIResource +javax/swing/DefaultListModel +javax/swing/DefaultListSelectionModel +javax/swing/DefaultSingleSelectionModel +javax/swing/DropMode +javax/swing/FocusManager +javax/swing/GrayFilter +javax/swing/Icon +javax/swing/ImageIcon +javax/swing/ImageIcon$1 +javax/swing/ImageIcon$2 +javax/swing/ImageIcon$2$1 +javax/swing/ImageIcon$3 +javax/swing/InputMap +javax/swing/InternalFrameFocusTraversalPolicy +javax/swing/JButton +javax/swing/JCheckBox +javax/swing/JCheckBoxMenuItem +javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem +javax/swing/JComboBox +javax/swing/JComboBox$1 +javax/swing/JComboBox$KeySelectionManager javax/swing/JComponent javax/swing/JComponent$1 -javax/swing/SwingUtilities +javax/swing/JComponent$2 +javax/swing/JComponent$AccessibleJComponent +javax/swing/JDialog +javax/swing/JEditorPane +javax/swing/JFrame +javax/swing/JInternalFrame +javax/swing/JLabel +javax/swing/JLayer +javax/swing/JLayeredPane +javax/swing/JList +javax/swing/JList$3 +javax/swing/JList$ListSelectionHandler +javax/swing/JMenu +javax/swing/JMenu$MenuChangeListener +javax/swing/JMenu$WinListener +javax/swing/JMenuBar +javax/swing/JMenuItem +javax/swing/JMenuItem$AccessibleJMenuItem +javax/swing/JMenuItem$MenuItemFocusListener +javax/swing/JPanel +javax/swing/JPopupMenu +javax/swing/JPopupMenu$Separator +javax/swing/JProgressBar +javax/swing/JProgressBar$ModelListener +javax/swing/JRadioButton +javax/swing/JRadioButtonMenuItem javax/swing/JRootPane -sun/security/action/GetBooleanAction -javax/swing/event/EventListenerList -javax/swing/JPanel -java/awt/FlowLayout +javax/swing/JRootPane$1 +javax/swing/JRootPane$RootLayout +javax/swing/JScrollBar +javax/swing/JScrollBar$ModelListener +javax/swing/JScrollPane +javax/swing/JScrollPane$ScrollBar +javax/swing/JSeparator +javax/swing/JSlider +javax/swing/JSlider$ModelListener +javax/swing/JSplitPane +javax/swing/JTabbedPane +javax/swing/JTabbedPane$ModelListener +javax/swing/JTabbedPane$Page +javax/swing/JTable +javax/swing/JTable$2 +javax/swing/JTable$5 +javax/swing/JTable$Resizable2 +javax/swing/JTable$Resizable3 +javax/swing/JTextArea +javax/swing/JTextField +javax/swing/JTextField$NotifyAction +javax/swing/JTextField$ScrollRepainter +javax/swing/JToggleButton +javax/swing/JToggleButton$ToggleButtonModel +javax/swing/JToolBar +javax/swing/JToolBar$DefaultToolBarLayout +javax/swing/JToolBar$Separator +javax/swing/JToolTip +javax/swing/JTree +javax/swing/JTree$TreeModelHandler +javax/swing/JTree$TreeSelectionRedirector +javax/swing/JViewport +javax/swing/JViewport$ViewListener +javax/swing/JWindow +javax/swing/KeyStroke +javax/swing/KeyboardManager +javax/swing/KeyboardManager$ComponentKeyStrokePair +javax/swing/LayoutComparator +javax/swing/LayoutFocusTraversalPolicy +javax/swing/ListCellRenderer +javax/swing/ListModel +javax/swing/ListSelectionModel +javax/swing/LookAndFeel +javax/swing/MenuElement +javax/swing/MenuSelectionManager +javax/swing/MultiUIDefaults +javax/swing/MutableComboBoxModel +javax/swing/Popup$HeavyWeightWindow +javax/swing/RepaintManager +javax/swing/RepaintManager$1 +javax/swing/RepaintManager$1$1 +javax/swing/RepaintManager$2 +javax/swing/RepaintManager$3 +javax/swing/RepaintManager$DisplayChangedHandler +javax/swing/RepaintManager$PaintManager +javax/swing/RepaintManager$ProcessingRunnable +javax/swing/RootPaneContainer +javax/swing/ScrollPaneConstants +javax/swing/ScrollPaneLayout +javax/swing/ScrollPaneLayout$UIResource +javax/swing/Scrollable +javax/swing/SingleSelectionModel +javax/swing/SizeRequirements +javax/swing/SortingFocusTraversalPolicy +javax/swing/SwingConstants +javax/swing/SwingContainerOrderFocusTraversalPolicy +javax/swing/SwingDefaultFocusTraversalPolicy +javax/swing/SwingPaintEventDispatcher +javax/swing/SwingUtilities +javax/swing/SwingUtilities$SharedOwnerFrame +javax/swing/Timer +javax/swing/Timer$DoPostEvent +javax/swing/TimerQueue +javax/swing/TimerQueue$1 +javax/swing/TimerQueue$DelayedTimer +javax/swing/ToolTipManager +javax/swing/ToolTipManager$AccessibilityKeyListener +javax/swing/ToolTipManager$MoveBeforeEnterListener +javax/swing/ToolTipManager$insideTimerAction +javax/swing/ToolTipManager$outsideTimerAction +javax/swing/ToolTipManager$stillInsideTimerAction +javax/swing/TransferHandler +javax/swing/TransferHandler$DropHandler +javax/swing/TransferHandler$HasGetTransferHandler +javax/swing/TransferHandler$SwingDropTarget +javax/swing/TransferHandler$TransferAction +javax/swing/TransferHandler$TransferSupport +javax/swing/UIDefaults +javax/swing/UIDefaults$ActiveValue +javax/swing/UIDefaults$LazyInputMap +javax/swing/UIDefaults$LazyValue +javax/swing/UIDefaults$TextAndMnemonicHashMap javax/swing/UIManager +javax/swing/UIManager$1 +javax/swing/UIManager$2 +javax/swing/UIManager$LAFState javax/swing/UIManager$LookAndFeelInfo -sun/awt/windows/WDesktopProperties -sun/awt/windows/WDesktopProperties$WinPlaySound -sun/awt/shell/Win32ShellFolderManager2 -sun/awt/shell/ShellFolderManager -sun/swing/SwingUtilities2 -sun/swing/SwingUtilities2$LSBCacheEntry -javax/swing/UIManager$LAFState -javax/swing/UIDefaults -javax/swing/MultiUIDefaults -javax/swing/UIManager$1 +javax/swing/UnsupportedLookAndFeelException +javax/swing/ViewportLayout +javax/swing/WindowConstants +javax/swing/border/AbstractBorder +javax/swing/border/BevelBorder +javax/swing/border/Border +javax/swing/border/CompoundBorder +javax/swing/border/EmptyBorder +javax/swing/border/EtchedBorder +javax/swing/border/LineBorder +javax/swing/border/MatteBorder +javax/swing/border/TitledBorder +javax/swing/event/AncestorListener +javax/swing/event/CaretEvent +javax/swing/event/CaretListener +javax/swing/event/CellEditorListener +javax/swing/event/ChangeEvent +javax/swing/event/ChangeListener +javax/swing/event/DocumentEvent +javax/swing/event/DocumentEvent$ElementChange +javax/swing/event/DocumentEvent$EventType +javax/swing/event/DocumentListener +javax/swing/event/EventListenerList +javax/swing/event/ListDataEvent +javax/swing/event/ListDataListener +javax/swing/event/ListSelectionEvent +javax/swing/event/ListSelectionListener +javax/swing/event/MenuDragMouseListener +javax/swing/event/MenuEvent +javax/swing/event/MenuKeyListener +javax/swing/event/MenuListener +javax/swing/event/MouseInputAdapter +javax/swing/event/MouseInputListener +javax/swing/event/PopupMenuListener +javax/swing/event/RowSorterListener +javax/swing/event/SwingPropertyChangeSupport +javax/swing/event/TableColumnModelEvent +javax/swing/event/TableColumnModelListener +javax/swing/event/TableModelEvent +javax/swing/event/TableModelListener +javax/swing/event/TreeExpansionListener +javax/swing/event/TreeModelEvent +javax/swing/event/TreeModelListener +javax/swing/event/TreeSelectionEvent +javax/swing/event/TreeSelectionListener +javax/swing/event/UndoableEditEvent +javax/swing/event/UndoableEditListener +javax/swing/filechooser/FileFilter +javax/swing/filechooser/FileSystemView +javax/swing/filechooser/FileSystemView$1 +javax/swing/filechooser/WindowsFileSystemView +javax/swing/plaf/ActionMapUIResource +javax/swing/plaf/BorderUIResource +javax/swing/plaf/BorderUIResource$CompoundBorderUIResource +javax/swing/plaf/BorderUIResource$EmptyBorderUIResource +javax/swing/plaf/BorderUIResource$LineBorderUIResource +javax/swing/plaf/ButtonUI +javax/swing/plaf/ColorUIResource +javax/swing/plaf/ComboBoxUI +javax/swing/plaf/ComponentInputMapUIResource +javax/swing/plaf/ComponentUI +javax/swing/plaf/DimensionUIResource +javax/swing/plaf/FontUIResource +javax/swing/plaf/InputMapUIResource +javax/swing/plaf/InsetsUIResource +javax/swing/plaf/LabelUI +javax/swing/plaf/ListUI +javax/swing/plaf/MenuBarUI +javax/swing/plaf/MenuItemUI +javax/swing/plaf/PanelUI +javax/swing/plaf/PopupMenuUI +javax/swing/plaf/ProgressBarUI +javax/swing/plaf/RootPaneUI +javax/swing/plaf/ScrollBarUI +javax/swing/plaf/ScrollPaneUI +javax/swing/plaf/SeparatorUI +javax/swing/plaf/SliderUI +javax/swing/plaf/SplitPaneUI +javax/swing/plaf/TabbedPaneUI +javax/swing/plaf/TableHeaderUI +javax/swing/plaf/TableUI +javax/swing/plaf/TextUI +javax/swing/plaf/ToolBarUI +javax/swing/plaf/TreeUI +javax/swing/plaf/UIResource +javax/swing/plaf/ViewportUI +javax/swing/plaf/basic/BasicArrowButton +javax/swing/plaf/basic/BasicBorders +javax/swing/plaf/basic/BasicBorders$ButtonBorder +javax/swing/plaf/basic/BasicBorders$MarginBorder +javax/swing/plaf/basic/BasicBorders$RadioButtonBorder +javax/swing/plaf/basic/BasicBorders$RolloverMarginBorder +javax/swing/plaf/basic/BasicBorders$SplitPaneBorder +javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder +javax/swing/plaf/basic/BasicButtonListener +javax/swing/plaf/basic/BasicButtonUI +javax/swing/plaf/basic/BasicCheckBoxMenuItemUI +javax/swing/plaf/basic/BasicComboBoxEditor +javax/swing/plaf/basic/BasicComboBoxEditor$BorderlessTextField +javax/swing/plaf/basic/BasicComboBoxEditor$UIResource +javax/swing/plaf/basic/BasicComboBoxRenderer +javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource +javax/swing/plaf/basic/BasicComboBoxUI +javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager +javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager +javax/swing/plaf/basic/BasicComboBoxUI$Handler +javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler +javax/swing/plaf/basic/BasicComboPopup +javax/swing/plaf/basic/BasicComboPopup$1 +javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass +javax/swing/plaf/basic/BasicComboPopup$Handler +javax/swing/plaf/basic/BasicGraphicsUtils +javax/swing/plaf/basic/BasicHTML +javax/swing/plaf/basic/BasicLabelUI +javax/swing/plaf/basic/BasicListUI +javax/swing/plaf/basic/BasicListUI$Handler +javax/swing/plaf/basic/BasicListUI$ListTransferHandler +javax/swing/plaf/basic/BasicLookAndFeel +javax/swing/plaf/basic/BasicLookAndFeel$1 +javax/swing/plaf/basic/BasicLookAndFeel$2 +javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper +javax/swing/plaf/basic/BasicMenuBarUI +javax/swing/plaf/basic/BasicMenuBarUI$Handler +javax/swing/plaf/basic/BasicMenuItemUI +javax/swing/plaf/basic/BasicMenuItemUI$Handler +javax/swing/plaf/basic/BasicMenuUI +javax/swing/plaf/basic/BasicMenuUI$Handler +javax/swing/plaf/basic/BasicPanelUI +javax/swing/plaf/basic/BasicPopupMenuUI +javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener +javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener +javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper +javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper$1 +javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber +javax/swing/plaf/basic/BasicProgressBarUI +javax/swing/plaf/basic/BasicProgressBarUI$Handler +javax/swing/plaf/basic/BasicRadioButtonMenuItemUI +javax/swing/plaf/basic/BasicRadioButtonUI +javax/swing/plaf/basic/BasicRootPaneUI +javax/swing/plaf/basic/BasicRootPaneUI$RootPaneInputMap +javax/swing/plaf/basic/BasicScrollBarUI +javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener +javax/swing/plaf/basic/BasicScrollBarUI$Handler +javax/swing/plaf/basic/BasicScrollBarUI$ModelListener +javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler +javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener +javax/swing/plaf/basic/BasicScrollBarUI$TrackListener +javax/swing/plaf/basic/BasicScrollPaneUI +javax/swing/plaf/basic/BasicScrollPaneUI$Handler +javax/swing/plaf/basic/BasicSeparatorUI +javax/swing/plaf/basic/BasicSliderUI +javax/swing/plaf/basic/BasicSliderUI$Actions +javax/swing/plaf/basic/BasicSliderUI$Handler +javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler +javax/swing/plaf/basic/BasicSliderUI$ScrollListener +javax/swing/plaf/basic/BasicSliderUI$TrackListener +javax/swing/plaf/basic/BasicSplitPaneDivider +javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout +javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler +javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchActionHandler +javax/swing/plaf/basic/BasicSplitPaneUI +javax/swing/plaf/basic/BasicSplitPaneUI$1 +javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager +javax/swing/plaf/basic/BasicSplitPaneUI$Handler +javax/swing/plaf/basic/BasicTabbedPaneUI +javax/swing/plaf/basic/BasicTabbedPaneUI$Handler +javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout +javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout +javax/swing/plaf/basic/BasicTableHeaderUI +javax/swing/plaf/basic/BasicTableHeaderUI$1 +javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler +javax/swing/plaf/basic/BasicTableUI +javax/swing/plaf/basic/BasicTableUI$Handler +javax/swing/plaf/basic/BasicTableUI$TableTransferHandler +javax/swing/plaf/basic/BasicTextAreaUI +javax/swing/plaf/basic/BasicTextFieldUI +javax/swing/plaf/basic/BasicTextUI +javax/swing/plaf/basic/BasicTextUI$BasicCaret +javax/swing/plaf/basic/BasicTextUI$BasicCursor +javax/swing/plaf/basic/BasicTextUI$BasicHighlighter +javax/swing/plaf/basic/BasicTextUI$DragListener +javax/swing/plaf/basic/BasicTextUI$FocusAction +javax/swing/plaf/basic/BasicTextUI$RootView +javax/swing/plaf/basic/BasicTextUI$TextActionWrapper +javax/swing/plaf/basic/BasicTextUI$TextTransferHandler +javax/swing/plaf/basic/BasicTextUI$UpdateHandler +javax/swing/plaf/basic/BasicToggleButtonUI +javax/swing/plaf/basic/BasicToolBarSeparatorUI +javax/swing/plaf/basic/BasicToolBarUI +javax/swing/plaf/basic/BasicToolBarUI$DockingListener +javax/swing/plaf/basic/BasicToolBarUI$Handler +javax/swing/plaf/basic/BasicTreeUI +javax/swing/plaf/basic/BasicTreeUI$Actions +javax/swing/plaf/basic/BasicTreeUI$Handler +javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler +javax/swing/plaf/basic/BasicTreeUI$TreeTransferHandler +javax/swing/plaf/basic/BasicViewportUI +javax/swing/plaf/basic/ComboPopup +javax/swing/plaf/basic/DefaultMenuLayout +javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag +javax/swing/plaf/basic/LazyActionMap +javax/swing/plaf/metal/BumpBuffer +javax/swing/plaf/metal/DefaultMetalTheme +javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate +javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1 +javax/swing/plaf/metal/MetalBorders +javax/swing/plaf/metal/MetalBorders$ButtonBorder +javax/swing/plaf/metal/MetalBorders$Flush3DBorder +javax/swing/plaf/metal/MetalBorders$MenuBarBorder +javax/swing/plaf/metal/MetalBorders$MenuItemBorder +javax/swing/plaf/metal/MetalBorders$PopupMenuBorder +javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder +javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder +javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder +javax/swing/plaf/metal/MetalBorders$TextFieldBorder +javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder +javax/swing/plaf/metal/MetalBorders$ToolBarBorder +javax/swing/plaf/metal/MetalBumps +javax/swing/plaf/metal/MetalButtonUI +javax/swing/plaf/metal/MetalCheckBoxUI +javax/swing/plaf/metal/MetalComboBoxButton +javax/swing/plaf/metal/MetalComboBoxButton$1 +javax/swing/plaf/metal/MetalComboBoxEditor +javax/swing/plaf/metal/MetalComboBoxEditor$1 +javax/swing/plaf/metal/MetalComboBoxEditor$EditorBorder +javax/swing/plaf/metal/MetalComboBoxEditor$UIResource +javax/swing/plaf/metal/MetalComboBoxIcon +javax/swing/plaf/metal/MetalComboBoxUI +javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager +javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener +javax/swing/plaf/metal/MetalIconFactory +javax/swing/plaf/metal/MetalIconFactory$CheckBoxIcon +javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon +javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 +javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon +javax/swing/plaf/metal/MetalIconFactory$MenuArrowIcon +javax/swing/plaf/metal/MetalIconFactory$MenuItemArrowIcon +javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon +javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon +javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon +javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon +javax/swing/plaf/metal/MetalLabelUI javax/swing/plaf/metal/MetalLookAndFeel -javax/swing/plaf/basic/BasicLookAndFeel -javax/swing/LookAndFeel -sun/swing/DefaultLookup -javax/swing/plaf/metal/OceanTheme -javax/swing/plaf/metal/DefaultMetalTheme +javax/swing/plaf/metal/MetalLookAndFeel$AATextListener +javax/swing/plaf/metal/MetalLookAndFeel$FontActiveValue +javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue +javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue$1 +javax/swing/plaf/metal/MetalPopupMenuSeparatorUI +javax/swing/plaf/metal/MetalProgressBarUI +javax/swing/plaf/metal/MetalRadioButtonUI +javax/swing/plaf/metal/MetalRootPaneUI +javax/swing/plaf/metal/MetalScrollBarUI +javax/swing/plaf/metal/MetalScrollBarUI$ScrollBarListener +javax/swing/plaf/metal/MetalScrollButton +javax/swing/plaf/metal/MetalScrollPaneUI +javax/swing/plaf/metal/MetalScrollPaneUI$1 +javax/swing/plaf/metal/MetalSeparatorUI +javax/swing/plaf/metal/MetalSliderUI +javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener +javax/swing/plaf/metal/MetalSplitPaneDivider +javax/swing/plaf/metal/MetalSplitPaneDivider$1 +javax/swing/plaf/metal/MetalSplitPaneDivider$2 +javax/swing/plaf/metal/MetalSplitPaneUI +javax/swing/plaf/metal/MetalTabbedPaneUI +javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout +javax/swing/plaf/metal/MetalTextFieldUI javax/swing/plaf/metal/MetalTheme -javax/swing/plaf/ColorUIResource -javax/swing/plaf/UIResource -sun/swing/PrintColorUIResource -javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate -javax/swing/plaf/FontUIResource -sun/swing/SwingLazyValue -javax/swing/UIDefaults$LazyValue -javax/swing/UIDefaults$ActiveValue -javax/swing/plaf/InsetsUIResource -sun/swing/SwingUtilities2$2 -javax/swing/plaf/basic/BasicLookAndFeel$2 -javax/swing/plaf/DimensionUIResource -javax/swing/UIDefaults$LazyInputMap -java/lang/Character$CharacterCache -javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue -javax/swing/plaf/metal/MetalLookAndFeel$FontActiveValue -sun/swing/SwingUtilities2$AATextInfo -java/util/HashMap$EntrySet -java/util/HashMap$EntryIterator -javax/swing/plaf/metal/MetalLookAndFeel$AATextListener -java/beans/PropertyChangeListenerProxy -java/util/EventListenerProxy -sun/awt/EventListenerAggregate -javax/swing/UIDefaults$ProxyLazyValue +javax/swing/plaf/metal/MetalToggleButtonUI +javax/swing/plaf/metal/MetalToolBarUI +javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener +javax/swing/plaf/metal/MetalTreeUI +javax/swing/plaf/metal/MetalTreeUI$LineListener +javax/swing/plaf/metal/MetalUtils +javax/swing/plaf/metal/OceanTheme javax/swing/plaf/metal/OceanTheme$1 javax/swing/plaf/metal/OceanTheme$2 javax/swing/plaf/metal/OceanTheme$3 javax/swing/plaf/metal/OceanTheme$4 javax/swing/plaf/metal/OceanTheme$5 javax/swing/plaf/metal/OceanTheme$6 -javax/swing/FocusManager -javax/swing/LayoutFocusTraversalPolicy -javax/swing/SortingFocusTraversalPolicy -javax/swing/InternalFrameFocusTraversalPolicy -javax/swing/SwingContainerOrderFocusTraversalPolicy -javax/swing/SwingDefaultFocusTraversalPolicy -javax/swing/LayoutComparator -javax/swing/RepaintManager -javax/swing/RepaintManager$DisplayChangedHandler -javax/swing/SwingPaintEventDispatcher -javax/swing/UIManager$2 -com/sun/swing/internal/plaf/metal/resources/metal -sun/util/ResourceBundleEnumeration -com/sun/swing/internal/plaf/basic/resources/basic -javax/swing/plaf/basic/BasicPanelUI -javax/swing/plaf/PanelUI -javax/swing/plaf/ComponentUI -sun/reflect/misc/MethodUtil -sun/reflect/misc/MethodUtil$1 -java/util/jar/JarFile -java/util/zip/ZipFile -java/util/zip/ZipConstants -java/util/jar/JavaUtilJarAccessImpl -sun/misc/JavaUtilJarAccess -sun/misc/JarIndex -java/util/zip/ZipEntry -java/util/jar/JarFile$JarFileEntry -java/util/jar/JarEntry -sun/misc/URLClassPath$JarLoader$2 -sun/net/www/protocol/jar/JarURLConnection -java/net/JarURLConnection -sun/net/www/protocol/jar/JarFileFactory -sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController -java/net/HttpURLConnection -sun/net/www/protocol/jar/URLJarFile -sun/net/www/protocol/jar/URLJarFile$URLJarFileEntry -sun/net/www/protocol/jar/JarURLConnection$JarURLInputStream -java/util/zip/ZipFile$ZipFileInputStream -java/security/AllPermissionCollection -java/lang/IllegalAccessException -javax/swing/JPasswordField -javax/swing/JTextField +javax/swing/plaf/synth/SynthConstants +javax/swing/plaf/synth/SynthUI +javax/swing/table/AbstractTableModel +javax/swing/table/DefaultTableCellRenderer +javax/swing/table/DefaultTableColumnModel +javax/swing/table/DefaultTableModel +javax/swing/table/JTableHeader +javax/swing/table/TableCellEditor +javax/swing/table/TableCellRenderer +javax/swing/table/TableColumn +javax/swing/table/TableColumnModel +javax/swing/table/TableModel +javax/swing/text/AbstractDocument +javax/swing/text/AbstractDocument$1 +javax/swing/text/AbstractDocument$AbstractElement +javax/swing/text/AbstractDocument$AttributeContext +javax/swing/text/AbstractDocument$BidiElement +javax/swing/text/AbstractDocument$BidiRootElement +javax/swing/text/AbstractDocument$BranchElement +javax/swing/text/AbstractDocument$Content +javax/swing/text/AbstractDocument$DefaultDocumentEvent +javax/swing/text/AbstractDocument$ElementEdit +javax/swing/text/AbstractDocument$InsertStringResult +javax/swing/text/AbstractDocument$LeafElement +javax/swing/text/AttributeSet +javax/swing/text/AttributeSet$CharacterAttribute +javax/swing/text/AttributeSet$ColorAttribute +javax/swing/text/AttributeSet$FontAttribute +javax/swing/text/AttributeSet$ParagraphAttribute +javax/swing/text/Caret +javax/swing/text/DefaultCaret +javax/swing/text/DefaultCaret$Handler +javax/swing/text/DefaultEditorKit +javax/swing/text/DefaultEditorKit$BeepAction +javax/swing/text/DefaultEditorKit$BeginAction +javax/swing/text/DefaultEditorKit$BeginLineAction +javax/swing/text/DefaultEditorKit$BeginParagraphAction +javax/swing/text/DefaultEditorKit$BeginWordAction +javax/swing/text/DefaultEditorKit$CopyAction +javax/swing/text/DefaultEditorKit$CutAction +javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction +javax/swing/text/DefaultEditorKit$DeleteNextCharAction +javax/swing/text/DefaultEditorKit$DeletePrevCharAction +javax/swing/text/DefaultEditorKit$DeleteWordAction +javax/swing/text/DefaultEditorKit$DumpModelAction +javax/swing/text/DefaultEditorKit$EndAction +javax/swing/text/DefaultEditorKit$EndLineAction +javax/swing/text/DefaultEditorKit$EndParagraphAction +javax/swing/text/DefaultEditorKit$EndWordAction +javax/swing/text/DefaultEditorKit$InsertBreakAction +javax/swing/text/DefaultEditorKit$InsertContentAction +javax/swing/text/DefaultEditorKit$InsertTabAction +javax/swing/text/DefaultEditorKit$NextVisualPositionAction +javax/swing/text/DefaultEditorKit$NextWordAction +javax/swing/text/DefaultEditorKit$PageAction +javax/swing/text/DefaultEditorKit$PasteAction +javax/swing/text/DefaultEditorKit$PreviousWordAction +javax/swing/text/DefaultEditorKit$ReadOnlyAction +javax/swing/text/DefaultEditorKit$SelectAllAction +javax/swing/text/DefaultEditorKit$SelectLineAction +javax/swing/text/DefaultEditorKit$SelectParagraphAction +javax/swing/text/DefaultEditorKit$SelectWordAction +javax/swing/text/DefaultEditorKit$ToggleComponentOrientationAction +javax/swing/text/DefaultEditorKit$UnselectAction +javax/swing/text/DefaultEditorKit$VerticalPageAction +javax/swing/text/DefaultEditorKit$WritableAction +javax/swing/text/DefaultHighlighter +javax/swing/text/DefaultHighlighter$DefaultHighlightPainter +javax/swing/text/DefaultHighlighter$SafeDamager +javax/swing/text/Document +javax/swing/text/EditorKit +javax/swing/text/Element +javax/swing/text/FieldView +javax/swing/text/GapContent +javax/swing/text/GapContent$InsertUndo +javax/swing/text/GapContent$MarkData +javax/swing/text/GapContent$MarkVector +javax/swing/text/GapContent$StickyPosition +javax/swing/text/GapVector +javax/swing/text/Highlighter +javax/swing/text/Highlighter$Highlight +javax/swing/text/Highlighter$HighlightPainter javax/swing/text/JTextComponent -javax/swing/Scrollable -javax/swing/JLayeredPane -javax/swing/JRootPane$1 -javax/swing/ArrayTable -javax/swing/JInternalFrame -javax/swing/JRootPane$RootLayout -javax/swing/BufferStrategyPaintManager -javax/swing/RepaintManager$PaintManager -javax/swing/plaf/metal/MetalRootPaneUI -javax/swing/plaf/basic/BasicRootPaneUI -javax/swing/plaf/RootPaneUI -javax/swing/plaf/basic/BasicRootPaneUI$RootPaneInputMap -javax/swing/plaf/ComponentInputMapUIResource -javax/swing/ComponentInputMap -javax/swing/InputMap -javax/swing/plaf/InputMapUIResource -javax/swing/KeyStroke -java/awt/VKCollection -sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl -javax/swing/plaf/basic/LazyActionMap -javax/swing/plaf/ActionMapUIResource -javax/swing/ActionMap -javax/swing/plaf/metal/MetalLabelUI -javax/swing/plaf/basic/BasicLabelUI -javax/swing/plaf/LabelUI -javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1 -java/util/Hashtable$ValueCollection -java/util/Collections$SynchronizedCollection -javax/swing/plaf/basic/BasicHTML -sun/awt/AppContext$PostShutdownEventRunnable -sun/awt/AWTAutoShutdown$1 -sun/awt/NullComponentPeer -java/awt/GraphicsCallback$PaintCallback -java/awt/GraphicsCallback -sun/awt/SunGraphicsCallback -java/util/jar/Manifest -java/io/ByteArrayInputStream -java/util/jar/Attributes -java/util/jar/Manifest$FastInputStream -sun/nio/cs/UTF_8 -sun/nio/cs/UTF_8$Decoder -sun/nio/cs/Surrogate$Generator -java/util/jar/Attributes$Name -sun/misc/ASCIICaseInsensitiveComparator -java/util/jar/JarVerifier -java/io/ByteArrayOutputStream -sun/misc/ExtensionDependency -java/lang/Package -sun/security/util/ManifestEntryVerifier -java/security/Provider -java/security/Provider$ServiceKey -java/security/Provider$EngineDescription -java/security/Security -java/security/Security$1 -sun/misc/FloatingDecimal -sun/misc/FloatingDecimal$1 -java/util/regex/Pattern -java/util/regex/Pattern$Node -java/util/regex/Pattern$LastNode -java/util/regex/Pattern$GroupHead -java/util/regex/Pattern$GroupTail -java/util/regex/Pattern$BitClass -java/util/regex/Pattern$BmpCharProperty -java/util/regex/Pattern$CharProperty -java/util/regex/Pattern$Ques -java/util/regex/Pattern$BranchConn -java/util/regex/Pattern$Branch -java/util/regex/Pattern$5 -java/util/regex/Pattern$CharPropertyNames -java/util/regex/Pattern$CharPropertyNames$1 -java/util/regex/Pattern$CharPropertyNames$CharPropertyFactory -java/util/regex/Pattern$CharPropertyNames$2 -java/util/regex/Pattern$CharPropertyNames$5 -java/util/regex/Pattern$CharPropertyNames$3 -java/util/regex/Pattern$CharPropertyNames$6 -java/util/regex/Pattern$CharPropertyNames$CloneableProperty -java/util/regex/Pattern$CharPropertyNames$4 -java/util/regex/Pattern$CharPropertyNames$7 -java/util/regex/Pattern$CharPropertyNames$8 -java/util/regex/Pattern$CharPropertyNames$9 -java/util/regex/Pattern$CharPropertyNames$10 -java/util/regex/Pattern$CharPropertyNames$11 -java/util/regex/Pattern$CharPropertyNames$12 -java/util/regex/Pattern$CharPropertyNames$13 -java/util/regex/Pattern$CharPropertyNames$14 -java/util/regex/Pattern$CharPropertyNames$15 -java/util/regex/Pattern$CharPropertyNames$16 -java/util/regex/Pattern$CharPropertyNames$17 -java/util/regex/Pattern$CharPropertyNames$18 -java/util/regex/Pattern$CharPropertyNames$19 -java/util/regex/Pattern$CharPropertyNames$20 -java/util/regex/Pattern$CharPropertyNames$21 -java/util/regex/Pattern$Ctype -java/util/regex/Pattern$Curly -java/util/regex/Pattern$6 -java/util/regex/Pattern$Slice -java/util/regex/Pattern$Begin -java/util/regex/Pattern$First -java/util/regex/Pattern$Start -java/util/regex/Pattern$TreeInfo -java/lang/StrictMath -sun/security/provider/NativePRNG -sun/misc/BASE64Decoder -sun/misc/CharacterDecoder -sun/security/util/SignatureFileVerifier -java/awt/event/KeyAdapter -java/lang/NumberFormatException -java/lang/IllegalArgumentException -java/io/FileWriter -java/net/Authenticator -java/net/MalformedURLException -javax/swing/text/Element -javax/swing/text/Document +javax/swing/text/JTextComponent$1 +javax/swing/text/JTextComponent$DefaultKeymap +javax/swing/text/JTextComponent$KeymapActionMap +javax/swing/text/JTextComponent$KeymapWrapper +javax/swing/text/JTextComponent$MutableCaretEvent +javax/swing/text/Keymap +javax/swing/text/LayeredHighlighter +javax/swing/text/LayeredHighlighter$LayerPainter +javax/swing/text/MutableAttributeSet javax/swing/text/PlainDocument -javax/swing/text/AbstractDocument -javax/swing/text/GapContent -javax/swing/text/AbstractDocument$Content -javax/swing/text/GapVector -javax/swing/text/GapContent$MarkVector -javax/swing/text/GapContent$MarkData -javax/swing/text/StyleContext -javax/swing/text/AbstractDocument$AttributeContext +javax/swing/text/PlainView +javax/swing/text/Position +javax/swing/text/Position$Bias +javax/swing/text/Segment +javax/swing/text/SegmentCache +javax/swing/text/SegmentCache$CachedSegment +javax/swing/text/SimpleAttributeSet +javax/swing/text/SimpleAttributeSet$EmptyAttributeSet +javax/swing/text/Style javax/swing/text/StyleConstants javax/swing/text/StyleConstants$CharacterConstants -javax/swing/text/AttributeSet$CharacterAttribute +javax/swing/text/StyleConstants$ColorConstants javax/swing/text/StyleConstants$FontConstants -javax/swing/text/AttributeSet$FontAttribute -javax/swing/text/StyleConstants$ColorConstants -javax/swing/text/AttributeSet$ColorAttribute javax/swing/text/StyleConstants$ParagraphConstants -javax/swing/text/AttributeSet$ParagraphAttribute +javax/swing/text/StyleContext javax/swing/text/StyleContext$FontKey -javax/swing/text/SimpleAttributeSet -javax/swing/text/MutableAttributeSet -javax/swing/text/AttributeSet -javax/swing/text/SimpleAttributeSet$EmptyAttributeSet +javax/swing/text/StyleContext$KeyEnumeration javax/swing/text/StyleContext$NamedStyle -javax/swing/text/Style javax/swing/text/StyleContext$SmallAttributeSet -javax/swing/text/AbstractDocument$BidiRootElement -javax/swing/text/AbstractDocument$BranchElement -javax/swing/text/AbstractDocument$AbstractElement +javax/swing/text/TabExpander +javax/swing/text/TextAction +javax/swing/text/Utilities +javax/swing/text/View +javax/swing/text/ViewFactory +javax/swing/tree/AbstractLayoutCache +javax/swing/tree/AbstractLayoutCache$NodeDimensions +javax/swing/tree/DefaultMutableTreeNode +javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration +javax/swing/tree/DefaultTreeCellEditor +javax/swing/tree/DefaultTreeCellEditor$1 +javax/swing/tree/DefaultTreeCellEditor$DefaultTextField +javax/swing/tree/DefaultTreeCellEditor$EditorContainer +javax/swing/tree/DefaultTreeCellRenderer +javax/swing/tree/DefaultTreeModel +javax/swing/tree/DefaultTreeSelectionModel +javax/swing/tree/MutableTreeNode +javax/swing/tree/PathPlaceHolder +javax/swing/tree/RowMapper +javax/swing/tree/TreeCellEditor +javax/swing/tree/TreeCellRenderer +javax/swing/tree/TreeModel javax/swing/tree/TreeNode -javax/swing/text/AbstractDocument$1 -javax/swing/text/AbstractDocument$BidiElement -javax/swing/text/AbstractDocument$LeafElement -javax/swing/text/GapContent$StickyPosition -javax/swing/text/Position -javax/swing/text/StyleContext$KeyEnumeration -javax/swing/text/GapContent$InsertUndo +javax/swing/tree/TreePath +javax/swing/tree/TreeSelectionModel +javax/swing/tree/VariableHeightLayoutCache +javax/swing/tree/VariableHeightLayoutCache$TreeStateNode javax/swing/undo/AbstractUndoableEdit -javax/swing/undo/UndoableEdit -javax/swing/text/AbstractDocument$DefaultDocumentEvent -javax/swing/event/DocumentEvent javax/swing/undo/CompoundEdit -javax/swing/event/DocumentEvent$EventType -javax/swing/text/Segment -java/text/CharacterIterator -javax/swing/text/Utilities -javax/swing/text/SegmentCache -javax/swing/text/SegmentCache$CachedSegment -javax/swing/event/UndoableEditEvent -javax/swing/text/AbstractDocument$ElementEdit -javax/swing/event/DocumentEvent$ElementChange -javax/swing/JMenu -javax/swing/MenuElement -javax/swing/JMenuItem -javax/swing/AbstractButton -java/awt/ItemSelectable -javax/swing/event/MenuListener -javax/swing/JCheckBoxMenuItem -javax/swing/Icon -javax/swing/JButton -java/net/URLClassLoader$2 -javax/swing/ImageIcon -javax/swing/ImageIcon$1 -java/awt/MediaTracker -sun/misc/SoftCache$ValueCell -sun/awt/image/URLImageSource -sun/awt/image/InputStreamImageSource +javax/swing/undo/UndoableEdit +javax/xml/parsers/DocumentBuilder +javax/xml/parsers/DocumentBuilderFactory +javax/xml/parsers/FactoryFinder +javax/xml/parsers/FactoryFinder$1 +javax/xml/parsers/ParserConfigurationException +javax/xml/parsers/SecuritySupport +javax/xml/parsers/SecuritySupport$2 +javax/xml/parsers/SecuritySupport$5 +org/w3c/dom/Attr +org/w3c/dom/CDATASection +org/w3c/dom/CharacterData +org/w3c/dom/Comment +org/w3c/dom/DOMException +org/w3c/dom/Document +org/w3c/dom/DocumentFragment +org/w3c/dom/DocumentType +org/w3c/dom/Element +org/w3c/dom/Entity +org/w3c/dom/EntityReference +org/w3c/dom/NamedNodeMap +org/w3c/dom/Node +org/w3c/dom/NodeList +org/w3c/dom/Notation +org/w3c/dom/ProcessingInstruction +org/w3c/dom/Text +org/w3c/dom/events/DocumentEvent +org/w3c/dom/events/Event +org/w3c/dom/events/EventException +org/w3c/dom/events/EventTarget +org/w3c/dom/events/MutationEvent +org/w3c/dom/ranges/DocumentRange +org/w3c/dom/ranges/Range +org/w3c/dom/traversal/DocumentTraversal +org/w3c/dom/traversal/NodeIterator +org/w3c/dom/traversal/TreeWalker +org/xml/sax/AttributeList +org/xml/sax/ContentHandler +org/xml/sax/DTDHandler +org/xml/sax/EntityResolver +org/xml/sax/ErrorHandler +org/xml/sax/InputSource +org/xml/sax/Locator +org/xml/sax/SAXException +org/xml/sax/SAXNotRecognizedException +org/xml/sax/SAXNotSupportedException +org/xml/sax/SAXParseException +org/xml/sax/helpers/DefaultHandler +sun/awt/AWTAccessor +sun/awt/AWTAccessor$AWTEventAccessor +sun/awt/AWTAccessor$ClientPropertyKeyAccessor +sun/awt/AWTAccessor$ComponentAccessor +sun/awt/AWTAccessor$ContainerAccessor +sun/awt/AWTAccessor$CursorAccessor +sun/awt/AWTAccessor$DefaultKeyboardFocusManagerAccessor +sun/awt/AWTAccessor$EventQueueAccessor +sun/awt/AWTAccessor$FrameAccessor +sun/awt/AWTAccessor$InputEventAccessor +sun/awt/AWTAccessor$InvocationEventAccessor +sun/awt/AWTAccessor$KeyEventAccessor +sun/awt/AWTAccessor$KeyboardFocusManagerAccessor +sun/awt/AWTAccessor$SequencedEventAccessor +sun/awt/AWTAccessor$ToolkitAccessor +sun/awt/AWTAccessor$WindowAccessor +sun/awt/AWTAutoShutdown +sun/awt/AWTAutoShutdown$1 +sun/awt/AppContext +sun/awt/AppContext$1 +sun/awt/AppContext$2 +sun/awt/AppContext$3 +sun/awt/AppContext$6 +sun/awt/AppContext$GetAppContextLock +sun/awt/AppContext$PostShutdownEventRunnable +sun/awt/AppContext$State +sun/awt/CausedFocusEvent +sun/awt/CausedFocusEvent$Cause +sun/awt/ComponentFactory +sun/awt/ConstrainableGraphics +sun/awt/DisplayChangedListener +sun/awt/EmbeddedFrame +sun/awt/EventQueueDelegate +sun/awt/EventQueueItem +sun/awt/ExtendedKeyCodes +sun/awt/FontConfiguration +sun/awt/FontConfiguration$2 +sun/awt/FontDescriptor +sun/awt/GlobalCursorManager +sun/awt/GlobalCursorManager$NativeUpdater +sun/awt/HeadlessToolkit +sun/awt/InputMethodSupport +sun/awt/KeyboardFocusManagerPeerImpl +sun/awt/KeyboardFocusManagerPeerProvider +sun/awt/LightweightFrame +sun/awt/ModalExclude +sun/awt/ModalityListener +sun/awt/MostRecentKeyValue +sun/awt/NativeLibLoader +sun/awt/NativeLibLoader$1 +sun/awt/NullComponentPeer +sun/awt/OSInfo +sun/awt/OSInfo$1 +sun/awt/OSInfo$OSType +sun/awt/OSInfo$WindowsVersion +sun/awt/PaintEventDispatcher +sun/awt/PeerEvent +sun/awt/PlatformFont +sun/awt/PostEventQueue +sun/awt/RepaintArea +sun/awt/RequestFocusController +sun/awt/SubRegionShowable +sun/awt/SunDisplayChanger +sun/awt/SunGraphicsCallback +sun/awt/SunHints +sun/awt/SunHints$Key +sun/awt/SunHints$LCDContrastKey +sun/awt/SunHints$Value +sun/awt/SunToolkit +sun/awt/SunToolkit$ModalityListenerList +sun/awt/Symbol +sun/awt/Symbol$Encoder +sun/awt/TimedWindowEvent +sun/awt/Win32FontManager +sun/awt/Win32FontManager$1 +sun/awt/Win32FontManager$2 +sun/awt/Win32GraphicsConfig +sun/awt/Win32GraphicsDevice +sun/awt/Win32GraphicsEnvironment +sun/awt/WindowClosingListener +sun/awt/WindowClosingSupport +sun/awt/dnd/SunDragSourceContextPeer +sun/awt/dnd/SunDropTargetEvent +sun/awt/event/IgnorePaintEvent +sun/awt/geom/PathConsumer2D +sun/awt/im/ExecutableInputMethodManager +sun/awt/im/ExecutableInputMethodManager$3 +sun/awt/im/InputContext +sun/awt/im/InputMethodAdapter +sun/awt/im/InputMethodContext +sun/awt/im/InputMethodLocator +sun/awt/im/InputMethodManager +sun/awt/im/InputMethodWindow +sun/awt/image/BufImgSurfaceData +sun/awt/image/BufImgSurfaceData$ICMColorData +sun/awt/image/BufImgSurfaceManager +sun/awt/image/BufImgVolatileSurfaceManager +sun/awt/image/BufferedImageDevice +sun/awt/image/BufferedImageGraphicsConfig +sun/awt/image/ByteComponentRaster +sun/awt/image/ByteInterleavedRaster +sun/awt/image/BytePackedRaster +sun/awt/image/FetcherInfo +sun/awt/image/GifFrame +sun/awt/image/GifImageDecoder +sun/awt/image/ImageConsumerQueue +sun/awt/image/ImageDecoder +sun/awt/image/ImageDecoder$1 sun/awt/image/ImageFetchable -sun/awt/image/ToolkitImage -sun/awt/image/NativeLibLoader -java/awt/ImageMediaEntry -java/awt/MediaEntry +sun/awt/image/ImageFetcher +sun/awt/image/ImageFetcher$1 sun/awt/image/ImageRepresentation -java/awt/image/ImageConsumer sun/awt/image/ImageWatched sun/awt/image/ImageWatched$Link sun/awt/image/ImageWatched$WeakLink -sun/awt/image/ImageConsumerQueue -sun/awt/image/ImageFetcher -sun/awt/image/FetcherInfo -sun/awt/image/ImageFetcher$1 -sun/awt/image/GifImageDecoder -sun/awt/image/ImageDecoder -sun/awt/image/GifFrame -java/awt/image/Raster -java/awt/image/DataBufferByte -java/awt/image/DataBuffer -java/awt/image/PixelInterleavedSampleModel -java/awt/image/ComponentSampleModel -java/awt/image/SampleModel -sun/awt/image/ByteInterleavedRaster -sun/awt/image/ByteComponentRaster +sun/awt/image/InputStreamImageSource +sun/awt/image/IntegerComponentRaster +sun/awt/image/IntegerInterleavedRaster +sun/awt/image/NativeLibLoader +sun/awt/image/NativeLibLoader$1 +sun/awt/image/OffScreenImage +sun/awt/image/PNGFilterInputStream +sun/awt/image/PNGImageDecoder +sun/awt/image/PixelConverter +sun/awt/image/PixelConverter$Argb +sun/awt/image/PixelConverter$ArgbBm +sun/awt/image/PixelConverter$ArgbPre +sun/awt/image/PixelConverter$Bgrx +sun/awt/image/PixelConverter$ByteGray +sun/awt/image/PixelConverter$Rgba +sun/awt/image/PixelConverter$RgbaPre +sun/awt/image/PixelConverter$Rgbx +sun/awt/image/PixelConverter$Ushort4444Argb +sun/awt/image/PixelConverter$Ushort555Rgb +sun/awt/image/PixelConverter$Ushort555Rgbx +sun/awt/image/PixelConverter$Ushort565Rgb +sun/awt/image/PixelConverter$UshortGray +sun/awt/image/PixelConverter$Xbgr +sun/awt/image/PixelConverter$Xrgb +sun/awt/image/SunVolatileImage sun/awt/image/SunWritableRaster -java/awt/image/WritableRaster -java/awt/image/BufferedImage -java/awt/image/WritableRenderedImage -java/awt/image/RenderedImage -sun/awt/image/IntegerComponentRaster -sun/awt/image/BytePackedRaster -java/awt/Canvas +sun/awt/image/SunWritableRaster$DataStealer +sun/awt/image/SurfaceManager +sun/awt/image/SurfaceManager$FlushableCacheData +sun/awt/image/SurfaceManager$ImageAccessor +sun/awt/image/SurfaceManager$ProxiedGraphicsConfig +sun/awt/image/ToolkitImage +sun/awt/image/URLImageSource +sun/awt/image/VolatileSurfaceManager +sun/awt/resources/awt +sun/awt/util/IdentityArrayList +sun/awt/windows/ThemeReader +sun/awt/windows/WCanvasPeer +sun/awt/windows/WColor +sun/awt/windows/WComponentPeer +sun/awt/windows/WComponentPeer$2 +sun/awt/windows/WDesktopProperties +sun/awt/windows/WDesktopProperties$WinPlaySound +sun/awt/windows/WFontConfiguration +sun/awt/windows/WFontPeer +sun/awt/windows/WFramePeer +sun/awt/windows/WGlobalCursorManager +sun/awt/windows/WInputMethod +sun/awt/windows/WInputMethodDescriptor +sun/awt/windows/WKeyboardFocusManagerPeer +sun/awt/windows/WLabelPeer +sun/awt/windows/WObjectPeer +sun/awt/windows/WPanelPeer +sun/awt/windows/WToolkit +sun/awt/windows/WToolkit$1 +sun/awt/windows/WToolkit$2 +sun/awt/windows/WToolkit$3 +sun/awt/windows/WToolkit$3$1 +sun/awt/windows/WToolkit$ToolkitDisposer +sun/awt/windows/WWindowPeer +sun/awt/windows/WWindowPeer$ActiveWindowListener +sun/awt/windows/WWindowPeer$GuiDisposedListener +sun/awt/windows/WingDings +sun/awt/windows/WingDings$Encoder +sun/dc/DuctusRenderingEngine +sun/dc/path/PathConsumer +sun/dc/pr/PathDasher +sun/dc/pr/PathDasher$1 +sun/dc/pr/PathStroker +sun/dc/pr/PathStroker$1 +sun/font/AttributeValues +sun/font/CMap +sun/font/CMap$CMapFormat4 +sun/font/CMap$NullCMapClass +sun/font/CharToGlyphMapper +sun/font/CompositeFont +sun/font/CompositeFontDescriptor +sun/font/CompositeGlyphMapper +sun/font/CompositeStrike +sun/font/CoreMetrics +sun/font/EAttribute +sun/font/FileFont +sun/font/FileFontStrike +sun/font/Font2D +sun/font/Font2DHandle +sun/font/FontAccess sun/font/FontDesignMetrics +sun/font/FontDesignMetrics$KeyReference +sun/font/FontDesignMetrics$MetricsKey +sun/font/FontFamily +sun/font/FontLineMetrics +sun/font/FontManager +sun/font/FontManagerFactory +sun/font/FontManagerFactory$1 +sun/font/FontManagerForSGE +sun/font/FontManagerNativeLibrary +sun/font/FontManagerNativeLibrary$1 +sun/font/FontScaler +sun/font/FontStrike sun/font/FontStrikeDesc -sun/font/CompositeStrike sun/font/FontStrikeDisposer -sun/font/StrikeCache$SoftDisposerRef +sun/font/FontUtilities +sun/font/FontUtilities$1 +sun/font/GlyphList +sun/font/PhysicalFont +sun/font/PhysicalStrike +sun/font/StandardGlyphVector +sun/font/StandardGlyphVector$GlyphStrike +sun/font/StrikeCache +sun/font/StrikeCache$1 sun/font/StrikeCache$DisposableStrike -sun/font/TrueTypeFont$TTDisposerRecord +sun/font/StrikeCache$SoftDisposerRef +sun/font/StrikeMetrics +sun/font/SunFontManager +sun/font/SunFontManager$1 +sun/font/SunFontManager$11 +sun/font/SunFontManager$12 +sun/font/SunFontManager$2 +sun/font/SunFontManager$3 +sun/font/SunFontManager$FamilyDescription +sun/font/SunFontManager$FontRegistrationInfo +sun/font/SunFontManager$T1Filter +sun/font/SunFontManager$TTFilter +sun/font/T2KFontScaler +sun/font/T2KFontScaler$1 +sun/font/TrueTypeFont sun/font/TrueTypeFont$1 -java/io/RandomAccessFile +sun/font/TrueTypeFont$DirectoryEntry +sun/font/TrueTypeFont$TTDisposerRecord +sun/font/TrueTypeGlyphMapper +sun/font/Type1Font +sun/io/Win32ErrorMode +sun/java2d/DefaultDisposerRecord +sun/java2d/DestSurfaceProvider +sun/java2d/Disposer +sun/java2d/Disposer$1 +sun/java2d/Disposer$2 +sun/java2d/Disposer$PollDisposable +sun/java2d/DisposerRecord +sun/java2d/DisposerTarget +sun/java2d/FontSupport +sun/java2d/InvalidPipeException +sun/java2d/NullSurfaceData +sun/java2d/ScreenUpdateManager +sun/java2d/StateTrackable +sun/java2d/StateTrackable$State +sun/java2d/StateTrackableDelegate +sun/java2d/StateTrackableDelegate$2 +sun/java2d/StateTracker +sun/java2d/StateTracker$1 +sun/java2d/StateTracker$2 +sun/java2d/SunGraphics2D +sun/java2d/SunGraphicsEnvironment +sun/java2d/SunGraphicsEnvironment$1 +sun/java2d/Surface +sun/java2d/SurfaceData +sun/java2d/SurfaceData$PixelToPgramLoopConverter +sun/java2d/SurfaceData$PixelToShapeLoopConverter +sun/java2d/SurfaceDataProxy +sun/java2d/SurfaceDataProxy$1 +sun/java2d/SurfaceManagerFactory +sun/java2d/WindowsSurfaceManagerFactory +sun/java2d/cmm/ProfileActivator +sun/java2d/cmm/ProfileDeferralInfo +sun/java2d/cmm/ProfileDeferralMgr +sun/java2d/d3d/D3DContext$D3DContextCaps +sun/java2d/d3d/D3DGraphicsConfig +sun/java2d/d3d/D3DGraphicsDevice +sun/java2d/d3d/D3DGraphicsDevice$1 +sun/java2d/d3d/D3DGraphicsDevice$1Result +sun/java2d/d3d/D3DRenderQueue +sun/java2d/d3d/D3DRenderQueue$1 +sun/java2d/d3d/D3DScreenUpdateManager +sun/java2d/d3d/D3DScreenUpdateManager$1 +sun/java2d/d3d/D3DScreenUpdateManager$1$1 +sun/java2d/d3d/D3DSurfaceData +sun/java2d/d3d/D3DSurfaceData$D3DWindowSurfaceData +sun/java2d/loops/Blit +sun/java2d/loops/BlitBg +sun/java2d/loops/CompositeType +sun/java2d/loops/CustomComponent +sun/java2d/loops/DrawGlyphList +sun/java2d/loops/DrawGlyphListAA +sun/java2d/loops/DrawGlyphListLCD +sun/java2d/loops/DrawLine +sun/java2d/loops/DrawParallelogram +sun/java2d/loops/DrawPath +sun/java2d/loops/DrawPolygons +sun/java2d/loops/DrawRect +sun/java2d/loops/FillParallelogram +sun/java2d/loops/FillPath +sun/java2d/loops/FillRect +sun/java2d/loops/FillSpans +sun/java2d/loops/FontInfo +sun/java2d/loops/GeneralRenderer +sun/java2d/loops/GraphicsPrimitive +sun/java2d/loops/GraphicsPrimitiveMgr +sun/java2d/loops/GraphicsPrimitiveMgr$1 +sun/java2d/loops/GraphicsPrimitiveMgr$2 +sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec +sun/java2d/loops/GraphicsPrimitiveProxy +sun/java2d/loops/MaskBlit +sun/java2d/loops/MaskFill +sun/java2d/loops/RenderCache +sun/java2d/loops/RenderCache$Entry +sun/java2d/loops/RenderLoops +sun/java2d/loops/ScaledBlit +sun/java2d/loops/SurfaceType +sun/java2d/loops/TransformHelper +sun/java2d/loops/XORComposite +sun/java2d/opengl/OGLGraphicsConfig +sun/java2d/opengl/WGLGraphicsConfig +sun/java2d/pipe/AAShapePipe +sun/java2d/pipe/AATextRenderer +sun/java2d/pipe/AlphaColorPipe +sun/java2d/pipe/AlphaPaintPipe +sun/java2d/pipe/CompositePipe +sun/java2d/pipe/DrawImage +sun/java2d/pipe/DrawImagePipe +sun/java2d/pipe/GeneralCompositePipe +sun/java2d/pipe/GlyphListLoopPipe +sun/java2d/pipe/GlyphListPipe +sun/java2d/pipe/LCDTextRenderer +sun/java2d/pipe/LoopBasedPipe +sun/java2d/pipe/LoopPipe +sun/java2d/pipe/NullPipe +sun/java2d/pipe/OutlineTextRenderer +sun/java2d/pipe/ParallelogramPipe +sun/java2d/pipe/PixelDrawPipe +sun/java2d/pipe/PixelFillPipe +sun/java2d/pipe/PixelToParallelogramConverter +sun/java2d/pipe/PixelToShapeConverter +sun/java2d/pipe/Region +sun/java2d/pipe/Region$ImmutableRegion +sun/java2d/pipe/RegionIterator +sun/java2d/pipe/RenderBuffer +sun/java2d/pipe/RenderQueue +sun/java2d/pipe/RenderingEngine +sun/java2d/pipe/RenderingEngine$1 +sun/java2d/pipe/ShapeDrawPipe +sun/java2d/pipe/ShapeSpanIterator +sun/java2d/pipe/SolidTextRenderer +sun/java2d/pipe/SpanClipRenderer +sun/java2d/pipe/SpanIterator +sun/java2d/pipe/SpanShapeRenderer +sun/java2d/pipe/SpanShapeRenderer$Composite +sun/java2d/pipe/TextPipe +sun/java2d/pipe/TextRenderer +sun/java2d/pipe/ValidatePipe +sun/java2d/pipe/hw/AccelGraphicsConfig +sun/java2d/pipe/hw/AccelSurface +sun/java2d/pipe/hw/BufferedContextProvider +sun/java2d/pipe/hw/ContextCapabilities +sun/java2d/windows/GDIBlitLoops +sun/java2d/windows/GDIRenderer +sun/java2d/windows/GDIWindowSurfaceData +sun/java2d/windows/WindowsFlags +sun/java2d/windows/WindowsFlags$1 +sun/launcher/LauncherHelper +sun/launcher/LauncherHelper$FXHelper +sun/misc/ASCIICaseInsensitiveComparator +sun/misc/Cleaner +sun/misc/CompoundEnumeration +sun/misc/ExtensionDependency +sun/misc/FDBigInteger +sun/misc/FileURLMapper +sun/misc/FloatingDecimal +sun/misc/FloatingDecimal$1 +sun/misc/FloatingDecimal$ASCIIToBinaryBuffer +sun/misc/FloatingDecimal$ASCIIToBinaryConverter +sun/misc/FloatingDecimal$BinaryToASCIIBuffer +sun/misc/FloatingDecimal$BinaryToASCIIConverter +sun/misc/FloatingDecimal$ExceptionalBinaryToASCIIBuffer +sun/misc/FloatingDecimal$PreparedASCIIToBinaryBuffer +sun/misc/IOUtils +sun/misc/JarIndex +sun/misc/JavaAWTAccess +sun/misc/JavaIOFileDescriptorAccess +sun/misc/JavaLangAccess +sun/misc/JavaNetAccess +sun/misc/JavaNioAccess +sun/misc/JavaSecurityAccess +sun/misc/JavaSecurityProtectionDomainAccess +sun/misc/JavaUtilJarAccess +sun/misc/JavaUtilZipFileAccess +sun/misc/Launcher +sun/misc/Launcher$AppClassLoader +sun/misc/Launcher$AppClassLoader$1 +sun/misc/Launcher$BootClassPathHolder +sun/misc/Launcher$BootClassPathHolder$1 +sun/misc/Launcher$ExtClassLoader +sun/misc/Launcher$ExtClassLoader$1 +sun/misc/Launcher$Factory +sun/misc/MetaIndex +sun/misc/NativeSignalHandler +sun/misc/OSEnvironment +sun/misc/Perf +sun/misc/Perf$GetPerfAction +sun/misc/PerfCounter +sun/misc/PerfCounter$CoreCounters +sun/misc/PerfCounter$WindowsClientCounters +sun/misc/PerformanceLogger +sun/misc/PerformanceLogger$TimeData +sun/misc/PostVMInitHook +sun/misc/Resource +sun/misc/SharedSecrets +sun/misc/Signal +sun/misc/SignalHandler +sun/misc/SoftCache +sun/misc/SoftCache$ValueCell +sun/misc/URLClassPath +sun/misc/URLClassPath$1 +sun/misc/URLClassPath$2 +sun/misc/URLClassPath$3 +sun/misc/URLClassPath$FileLoader +sun/misc/URLClassPath$JarLoader +sun/misc/URLClassPath$JarLoader$1 +sun/misc/URLClassPath$JarLoader$2 +sun/misc/URLClassPath$Loader +sun/misc/Unsafe +sun/misc/VM +sun/misc/Version +sun/net/DefaultProgressMeteringPolicy +sun/net/InetAddressCachePolicy +sun/net/InetAddressCachePolicy$1 +sun/net/InetAddressCachePolicy$2 +sun/net/NetHooks +sun/net/NetProperties +sun/net/NetProperties$1 +sun/net/ProgressMeteringPolicy +sun/net/ProgressMonitor +sun/net/ResourceManager +sun/net/spi/DefaultProxySelector +sun/net/spi/DefaultProxySelector$1 +sun/net/spi/DefaultProxySelector$3 +sun/net/spi/DefaultProxySelector$NonProxyInfo +sun/net/spi/nameservice/NameService +sun/net/util/IPAddressUtil +sun/net/util/URLUtil +sun/net/www/MessageHeader +sun/net/www/MimeEntry +sun/net/www/MimeTable +sun/net/www/MimeTable$1 +sun/net/www/MimeTable$DefaultInstanceHolder +sun/net/www/MimeTable$DefaultInstanceHolder$1 +sun/net/www/ParseUtil +sun/net/www/URLConnection +sun/net/www/protocol/file/FileURLConnection +sun/net/www/protocol/file/Handler +sun/net/www/protocol/http/Handler +sun/net/www/protocol/jar/Handler +sun/net/www/protocol/jar/JarFileFactory +sun/net/www/protocol/jar/JarURLConnection +sun/net/www/protocol/jar/JarURLConnection$JarURLInputStream +sun/net/www/protocol/jar/URLJarFile +sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController +sun/net/www/protocol/jar/URLJarFile$URLJarFileEntry +sun/nio/ByteBuffered +sun/nio/ch/DirectBuffer sun/nio/ch/FileChannelImpl -java/nio/channels/FileChannel -java/nio/channels/ByteChannel -java/nio/channels/ReadableByteChannel -java/nio/channels/Channel -java/nio/channels/WritableByteChannel -java/nio/channels/GatheringByteChannel -java/nio/channels/ScatteringByteChannel -java/nio/channels/spi/AbstractInterruptibleChannel -java/nio/channels/InterruptibleChannel -sun/nio/ch/Util +sun/nio/ch/FileDispatcher +sun/nio/ch/FileDispatcherImpl +sun/nio/ch/IOStatus sun/nio/ch/IOUtil -sun/nio/ch/FileDispatcher +sun/nio/ch/IOUtil$1 +sun/nio/ch/Interruptible sun/nio/ch/NativeDispatcher -sun/nio/ch/Reflect -java/nio/MappedByteBuffer -sun/nio/ch/Reflect$1 +sun/nio/ch/NativeThread sun/nio/ch/NativeThreadSet -java/nio/channels/spi/AbstractInterruptibleChannel$1 -sun/nio/ch/Interruptible -sun/nio/ch/NativeThread -sun/nio/ch/IOStatus -sun/nio/ch/DirectBuffer -java/nio/DirectByteBuffer -java/nio/DirectByteBuffer$Deallocator -sun/misc/Cleaner -java/nio/ByteBufferAsIntBufferB -java/nio/IntBuffer -sun/font/TrueTypeFont$DirectoryEntry -java/nio/ByteBufferAsShortBufferB -java/nio/ShortBuffer +sun/nio/ch/Util +sun/nio/ch/Util$1 +sun/nio/ch/Util$BufferCache +sun/nio/cs/ArrayDecoder +sun/nio/cs/ArrayEncoder +sun/nio/cs/FastCharsetProvider +sun/nio/cs/HistoricallyNamedCharset +sun/nio/cs/ISO_8859_1 +sun/nio/cs/MS1252 +sun/nio/cs/SingleByte +sun/nio/cs/SingleByte$Decoder +sun/nio/cs/SingleByte$Encoder +sun/nio/cs/StandardCharsets +sun/nio/cs/StandardCharsets$Aliases +sun/nio/cs/StandardCharsets$Cache +sun/nio/cs/StandardCharsets$Classes +sun/nio/cs/StreamDecoder +sun/nio/cs/StreamEncoder +sun/nio/cs/Surrogate +sun/nio/cs/Surrogate$Parser +sun/nio/cs/US_ASCII sun/nio/cs/UTF_16 sun/nio/cs/UTF_16$Decoder -sun/font/FileFontStrike -sun/font/TrueTypeGlyphMapper -sun/font/CMap -sun/font/CMap$NullCMapClass -sun/font/CMap$CMapFormat4 -java/nio/ByteBufferAsCharBufferB -sun/font/FontDesignMetrics$KeyReference -sun/awt/image/PNGImageDecoder -sun/awt/image/PNGFilterInputStream -java/util/zip/InflaterInputStream -java/util/zip/Inflater -javax/swing/Popup$HeavyWeightWindow -sun/awt/ModalExclude -javax/swing/JWindow -com/sun/java/swing/plaf/windows/WindowsPopupWindow -java/awt/Cursor$CursorDisposer -java/awt/AWTEvent$1 -sun/reflect/UnsafeBooleanFieldAccessorImpl -java/awt/image/DataBufferInt -java/awt/image/SinglePixelPackedSampleModel -sun/awt/image/IntegerInterleavedRaster -java/util/Date +sun/nio/cs/UTF_16BE +sun/nio/cs/UTF_16LE +sun/nio/cs/UTF_16LE$Decoder +sun/nio/cs/UTF_16LE$Encoder +sun/nio/cs/UTF_8 +sun/nio/cs/UTF_8$Decoder +sun/nio/cs/UTF_8$Encoder +sun/nio/cs/Unicode +sun/nio/cs/UnicodeDecoder +sun/nio/cs/UnicodeEncoder +sun/print/PrinterGraphicsConfig +sun/reflect/AccessorGenerator +sun/reflect/BootstrapConstructorAccessorImpl +sun/reflect/ByteVector +sun/reflect/ByteVectorFactory +sun/reflect/ByteVectorImpl +sun/reflect/CallerSensitive +sun/reflect/ClassDefiner +sun/reflect/ClassDefiner$1 +sun/reflect/ClassFileAssembler +sun/reflect/ClassFileConstants +sun/reflect/ConstantPool +sun/reflect/ConstructorAccessor +sun/reflect/ConstructorAccessorImpl +sun/reflect/DelegatingClassLoader +sun/reflect/DelegatingConstructorAccessorImpl +sun/reflect/DelegatingMethodAccessorImpl +sun/reflect/FieldAccessor +sun/reflect/FieldAccessorImpl +sun/reflect/Label +sun/reflect/Label$PatchInfo +sun/reflect/LangReflectAccess +sun/reflect/MagicAccessorImpl +sun/reflect/MethodAccessor +sun/reflect/MethodAccessorGenerator +sun/reflect/MethodAccessorGenerator$1 +sun/reflect/MethodAccessorImpl +sun/reflect/NativeConstructorAccessorImpl +sun/reflect/NativeMethodAccessorImpl +sun/reflect/Reflection +sun/reflect/ReflectionFactory +sun/reflect/ReflectionFactory$1 +sun/reflect/ReflectionFactory$GetReflectionFactoryAction +sun/reflect/SerializationConstructorAccessorImpl +sun/reflect/UTF8 +sun/reflect/UnsafeFieldAccessorFactory +sun/reflect/UnsafeFieldAccessorImpl +sun/reflect/UnsafeObjectFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticLongFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl +sun/reflect/UnsafeStaticFieldAccessorImpl +sun/reflect/annotation/AnnotationType +sun/reflect/generics/repository/AbstractRepository +sun/reflect/generics/repository/ClassRepository +sun/reflect/generics/repository/GenericDeclRepository +sun/reflect/misc/MethodUtil +sun/reflect/misc/MethodUtil$1 +sun/reflect/misc/ReflectUtil +sun/security/action/GetBooleanAction +sun/security/action/GetIntegerAction +sun/security/action/GetPropertyAction +sun/security/jca/GetInstance +sun/security/jca/GetInstance$Instance +sun/security/jca/ProviderConfig +sun/security/jca/ProviderConfig$2 +sun/security/jca/ProviderList +sun/security/jca/ProviderList$1 +sun/security/jca/ProviderList$2 +sun/security/jca/ProviderList$3 +sun/security/jca/ProviderList$ServiceList +sun/security/jca/ProviderList$ServiceList$1 +sun/security/jca/Providers +sun/security/jca/ServiceId +sun/security/provider/ByteArrayAccess +sun/security/provider/DSA +sun/security/provider/DSA$LegacyDSA +sun/security/provider/DSA$SHA1withDSA +sun/security/provider/DSAParameters +sun/security/provider/DSAPublicKey +sun/security/provider/DigestBase +sun/security/provider/NativePRNG +sun/security/provider/NativePRNG$Blocking +sun/security/provider/NativePRNG$NonBlocking +sun/security/provider/SHA +sun/security/provider/Sun +sun/security/provider/SunEntries +sun/security/provider/SunEntries$1 +sun/security/util/ByteArrayLexOrder +sun/security/util/ByteArrayTagOrder +sun/security/util/Debug +sun/security/util/DerEncoder +sun/security/util/DerIndefLenConverter +sun/security/util/DerInputBuffer +sun/security/util/DerInputStream +sun/security/util/DerOutputStream +sun/security/util/DerValue +sun/security/util/ManifestEntryVerifier +sun/security/util/ObjectIdentifier +sun/security/util/SignatureFileVerifier +sun/security/x509/AlgorithmId +sun/security/x509/X509Key +sun/swing/DefaultLookup +sun/swing/ImageIconUIResource +sun/swing/JLightweightFrame +sun/swing/MenuItemLayoutHelper +sun/swing/MenuItemLayoutHelper$ColumnAlignment +sun/swing/MenuItemLayoutHelper$LayoutResult +sun/swing/MenuItemLayoutHelper$RectSize +sun/swing/PrintColorUIResource +sun/swing/StringUIClientPropertyKey +sun/swing/SwingAccessor +sun/swing/SwingAccessor$JTextComponentAccessor +sun/swing/SwingLazyValue +sun/swing/SwingLazyValue$1 +sun/swing/SwingUtilities2 +sun/swing/SwingUtilities2$2 +sun/swing/SwingUtilities2$AATextInfo +sun/swing/SwingUtilities2$LSBCacheEntry +sun/swing/UIAction +sun/swing/UIClientPropertyKey +sun/swing/table/DefaultTableCellHeaderRenderer +sun/swing/table/DefaultTableCellHeaderRenderer$EmptyIcon +sun/text/ComposedCharIter +sun/text/IntHashtable +sun/text/UCompactIntArray +sun/text/normalizer/CharTrie +sun/text/normalizer/CharTrie$FriendAgent +sun/text/normalizer/ICUBinary +sun/text/normalizer/ICUBinary$Authenticate +sun/text/normalizer/ICUData +sun/text/normalizer/IntTrie +sun/text/normalizer/NormalizerDataReader +sun/text/normalizer/NormalizerImpl +sun/text/normalizer/NormalizerImpl$AuxTrieImpl +sun/text/normalizer/NormalizerImpl$DecomposeArgs +sun/text/normalizer/NormalizerImpl$FCDTrieImpl +sun/text/normalizer/NormalizerImpl$NormTrieImpl +sun/text/normalizer/Trie +sun/text/normalizer/Trie$DataManipulate +sun/text/normalizer/UTF16 +sun/text/normalizer/UnicodeMatcher +sun/text/normalizer/UnicodeSet +sun/text/resources/CollationData +sun/text/resources/FormatData +sun/text/resources/en/FormatData_en +sun/text/resources/en/FormatData_en_US +sun/util/CoreResourceBundleControl +sun/util/PreHashedMap +sun/util/ResourceBundleEnumeration +sun/util/calendar/AbstractCalendar +sun/util/calendar/BaseCalendar +sun/util/calendar/BaseCalendar$Date +sun/util/calendar/CalendarDate sun/util/calendar/CalendarSystem -sun/awt/image/OffScreenImage -sun/java2d/SurfaceManagerFactory +sun/util/calendar/CalendarUtils sun/util/calendar/Gregorian -sun/util/calendar/BaseCalendar -sun/util/calendar/AbstractCalendar -java/util/TimeZone -java/lang/InheritableThreadLocal -sun/awt/image/BufImgSurfaceData -sun/font/CompositeGlyphMapper +sun/util/calendar/Gregorian$Date sun/util/calendar/ZoneInfo sun/util/calendar/ZoneInfoFile sun/util/calendar/ZoneInfoFile$1 -sun/java2d/loops/FontInfo -java/util/TimeZone$1 -sun/util/calendar/Gregorian$Date -sun/util/calendar/BaseCalendar$Date -sun/util/calendar/CalendarDate -sun/util/calendar/CalendarUtils -java/util/TimeZone$DisplayNames -sun/util/TimeZoneNameUtility +sun/util/calendar/ZoneInfoFile$Checksum +sun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule +sun/util/locale/BaseLocale +sun/util/locale/BaseLocale$Cache +sun/util/locale/BaseLocale$Key +sun/util/locale/InternalLocaleBuilder +sun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar +sun/util/locale/LanguageTag +sun/util/locale/LocaleObjectCache +sun/util/locale/LocaleObjectCache$CacheEntry +sun/util/locale/LocaleUtils +sun/util/locale/ParseStatus +sun/util/locale/StringTokenIterator +sun/util/locale/provider/AuxLocaleProviderAdapter +sun/util/locale/provider/AuxLocaleProviderAdapter$NullProvider +sun/util/locale/provider/AvailableLanguageTags +sun/util/locale/provider/CalendarDataProviderImpl +sun/util/locale/provider/CalendarDataUtility +sun/util/locale/provider/CalendarDataUtility$CalendarWeekParameterGetter +sun/util/locale/provider/CalendarProviderImpl +sun/util/locale/provider/CollatorProviderImpl +sun/util/locale/provider/CurrencyNameProviderImpl +sun/util/locale/provider/DateFormatSymbolsProviderImpl +sun/util/locale/provider/DecimalFormatSymbolsProviderImpl +sun/util/locale/provider/JRELocaleProviderAdapter +sun/util/locale/provider/JRELocaleProviderAdapter$1 +sun/util/locale/provider/LocaleDataMetaInfo +sun/util/locale/provider/LocaleProviderAdapter +sun/util/locale/provider/LocaleProviderAdapter$1 +sun/util/locale/provider/LocaleProviderAdapter$Type +sun/util/locale/provider/LocaleResources +sun/util/locale/provider/LocaleResources$ResourceReference +sun/util/locale/provider/LocaleServiceProviderPool +sun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter +sun/util/locale/provider/NumberFormatProviderImpl +sun/util/locale/provider/ResourceBundleBasedAdapter +sun/util/locale/provider/SPILocaleProviderAdapter +sun/util/locale/provider/SPILocaleProviderAdapter$1 +sun/util/locale/provider/TimeZoneNameProviderImpl +sun/util/locale/provider/TimeZoneNameUtility +sun/util/locale/provider/TimeZoneNameUtility$TimeZoneNameGetter +sun/util/logging/LoggingProxy +sun/util/logging/LoggingSupport +sun/util/logging/LoggingSupport$1 +sun/util/logging/LoggingSupport$2 +sun/util/logging/PlatformLogger +sun/util/logging/PlatformLogger$1 +sun/util/logging/PlatformLogger$DefaultLoggerProxy +sun/util/logging/PlatformLogger$JavaLoggerProxy +sun/util/logging/PlatformLogger$Level +sun/util/logging/PlatformLogger$LoggerProxy +sun/util/logging/resources/logging +sun/util/resources/CalendarData +sun/util/resources/CurrencyNames sun/util/resources/LocaleData sun/util/resources/LocaleData$1 sun/util/resources/LocaleData$LocaleDataResourceBundleControl -sun/util/LocaleDataMetaInfo +sun/util/resources/LocaleNamesBundle +sun/util/resources/OpenListResourceBundle +sun/util/resources/ParallelListResourceBundle +sun/util/resources/ParallelListResourceBundle$KeySet sun/util/resources/TimeZoneNames sun/util/resources/TimeZoneNamesBundle -sun/util/resources/OpenListResourceBundle -java/util/ResourceBundle$BundleReference -sun/util/resources/TimeZoneNames_en -java/util/spi/TimeZoneNameProvider -java/util/spi/LocaleServiceProvider -sun/util/LocaleServiceProviderPool -sun/util/LocaleServiceProviderPool$1 -java/util/ServiceLoader -java/util/ServiceLoader$LazyIterator -java/util/ServiceLoader$1 -java/util/LinkedHashMap$EntryIterator -java/net/ServerSocket -java/net/InetAddress -java/net/InetAddress$Cache -java/net/InetAddress$Cache$Type -java/net/InetAddressImplFactory -java/net/Inet4AddressImpl -java/net/InetAddressImpl -java/net/InetAddress$1 -sun/net/spi/nameservice/NameService -sun/net/util/IPAddressUtil -java/util/regex/Matcher -java/util/regex/MatchResult -java/util/RandomAccessSubList -java/util/SubList -java/util/SubList$1 -java/util/AbstractList$ListItr -java/net/Inet4Address -java/net/SocksSocketImpl -java/net/SocksConsts -java/net/PlainSocketImpl -java/net/SocketImpl -java/net/SocketOptions -java/net/InetSocketAddress -java/net/SocketAddress -java/util/Random -java/util/concurrent/atomic/AtomicLong -java/lang/InternalError -java/io/StringReader -java/io/FilterReader -java/lang/reflect/Proxy -java/lang/reflect/InvocationHandler -java/lang/NoSuchFieldException -java/lang/InstantiationException -java/lang/ArrayIndexOutOfBoundsException -java/lang/IndexOutOfBoundsException -javax/swing/JDialog -java/io/EOFException -java/util/Vector$1 -javax/swing/filechooser/FileSystemView -javax/swing/filechooser/FileSystemView$1 -javax/swing/event/SwingPropertyChangeSupport -javax/swing/filechooser/WindowsFileSystemView -java/util/zip/ZipFile$1 -java/util/zip/ZipFile$2 -java/util/jar/JarFile$1 -java/util/PropertyResourceBundle -java/util/ResourceBundle$Control$1 -java/util/Hashtable$EntrySet -java/util/Collections$SynchronizedSet -java/lang/IllegalAccessError -java/text/MessageFormat -java/text/Format -java/text/FieldPosition -java/text/MessageFormat$Field -java/text/Format$Field -java/lang/CloneNotSupportedException -sun/reflect/MethodAccessorGenerator -sun/reflect/AccessorGenerator -sun/reflect/ClassFileConstants -java/lang/Void -sun/reflect/ByteVectorFactory -sun/reflect/ByteVectorImpl -sun/reflect/ByteVector -sun/reflect/ClassFileAssembler -sun/reflect/UTF8 -sun/reflect/Label -sun/reflect/Label$PatchInfo -sun/reflect/MethodAccessorGenerator$1 -sun/reflect/ClassDefiner -sun/reflect/ClassDefiner$1 -sun/reflect/BootstrapConstructorAccessorImpl -java/awt/event/ActionListener -javax/swing/Timer -javax/swing/Timer$DoPostEvent -javax/swing/TimerQueue -javax/swing/TimerQueue$1 -javax/swing/ToolTipManager -java/awt/event/MouseAdapter -javax/swing/ToolTipManager$insideTimerAction -javax/swing/ToolTipManager$outsideTimerAction -javax/swing/ToolTipManager$stillInsideTimerAction -sun/swing/UIAction -javax/swing/Action -javax/swing/ToolTipManager$MoveBeforeEnterListener -java/awt/event/MouseMotionAdapter -javax/swing/event/CaretListener -javax/swing/JToolBar -javax/swing/JSplitPane -javax/swing/border/Border -javax/swing/JToggleButton -javax/swing/border/EmptyBorder -javax/swing/border/AbstractBorder -javax/swing/DefaultButtonModel -javax/swing/ButtonModel -javax/swing/AbstractButton$Handler -javax/swing/event/ChangeListener -java/awt/event/ItemListener -javax/swing/plaf/metal/MetalButtonUI -javax/swing/plaf/basic/BasicButtonUI -javax/swing/plaf/ButtonUI -javax/swing/plaf/metal/MetalBorders -javax/swing/plaf/BorderUIResource$CompoundBorderUIResource -javax/swing/border/CompoundBorder -javax/swing/plaf/metal/MetalBorders$ButtonBorder -javax/swing/plaf/basic/BasicBorders$MarginBorder -javax/swing/plaf/basic/BasicButtonListener -java/awt/AWTEventMulticaster -java/awt/event/AdjustmentListener -java/awt/event/TextListener -javax/swing/event/AncestorListener -java/beans/VetoableChangeListener -javax/swing/ButtonGroup -javax/swing/JToggleButton$ToggleButtonModel -javax/swing/plaf/metal/MetalToggleButtonUI -javax/swing/plaf/basic/BasicToggleButtonUI -javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder -java/awt/CardLayout -javax/swing/Box -javax/swing/plaf/metal/MetalBorders$TextFieldBorder -javax/swing/plaf/metal/MetalBorders$Flush3DBorder -javax/swing/BoxLayout -javax/swing/JMenuBar -javax/swing/DefaultSingleSelectionModel -javax/swing/SingleSelectionModel -javax/swing/plaf/basic/BasicMenuBarUI -javax/swing/plaf/MenuBarUI -javax/swing/plaf/basic/DefaultMenuLayout -javax/swing/plaf/metal/MetalBorders$MenuBarBorder -javax/swing/plaf/basic/BasicMenuBarUI$Handler -javax/swing/KeyboardManager -javax/swing/event/MenuEvent -javax/swing/JMenu$MenuChangeListener -javax/swing/JMenuItem$MenuItemFocusListener -javax/swing/plaf/basic/BasicMenuUI -javax/swing/plaf/basic/BasicMenuItemUI -javax/swing/plaf/MenuItemUI -javax/swing/plaf/metal/MetalBorders$MenuItemBorder -javax/swing/plaf/metal/MetalIconFactory -javax/swing/plaf/metal/MetalIconFactory$MenuArrowIcon -javax/swing/plaf/basic/BasicMenuUI$Handler -javax/swing/event/MenuKeyListener -javax/swing/plaf/basic/BasicMenuItemUI$Handler -javax/swing/event/MenuDragMouseListener -javax/swing/event/MouseInputListener -javax/swing/event/ChangeEvent -java/awt/event/ContainerEvent -javax/swing/plaf/metal/MetalIconFactory$MenuItemArrowIcon -javax/swing/JPopupMenu -javax/swing/plaf/basic/BasicPopupMenuUI -javax/swing/plaf/PopupMenuUI -javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper -java/awt/event/AWTEventListenerProxy -java/awt/Toolkit$SelectiveAWTEventListener -java/awt/Toolkit$ToolkitEventMulticaster -javax/swing/plaf/basic/BasicLookAndFeel$1 -javax/swing/plaf/metal/MetalBorders$PopupMenuBorder -javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener -javax/swing/event/PopupMenuListener -javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener -javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber -javax/swing/MenuSelectionManager -javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper -javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper$1 -java/awt/event/FocusAdapter -javax/swing/JMenu$WinListener -java/awt/event/WindowAdapter -javax/swing/JPopupMenu$Separator -javax/swing/JSeparator -javax/swing/plaf/metal/MetalPopupMenuSeparatorUI -javax/swing/plaf/metal/MetalSeparatorUI -javax/swing/plaf/basic/BasicSeparatorUI -javax/swing/plaf/SeparatorUI -javax/swing/JComboBox -javax/swing/event/ListDataListener -javax/swing/event/CaretEvent -javax/swing/text/TabExpander -javax/swing/JScrollBar -java/awt/Adjustable -javax/swing/event/MouseInputAdapter -javax/swing/JScrollBar$ModelListener -javax/swing/DefaultBoundedRangeModel -javax/swing/BoundedRangeModel -javax/swing/plaf/metal/MetalScrollBarUI -javax/swing/plaf/basic/BasicScrollBarUI -javax/swing/plaf/ScrollBarUI -javax/swing/plaf/metal/MetalBumps -javax/swing/plaf/metal/MetalScrollButton -javax/swing/plaf/basic/BasicArrowButton -javax/swing/plaf/basic/BasicScrollBarUI$TrackListener -javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener -javax/swing/plaf/basic/BasicScrollBarUI$ModelListener -javax/swing/plaf/metal/MetalScrollBarUI$ScrollBarListener -javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler -javax/swing/plaf/basic/BasicScrollBarUI$Handler -javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener -javax/swing/CellRendererPane -javax/swing/border/MatteBorder -sun/font/StandardGlyphVector -java/awt/font/GlyphVector -sun/font/StandardGlyphVector$GlyphStrike -sun/font/CoreMetrics -sun/font/FontLineMetrics -java/awt/font/LineMetrics -javax/swing/ComboBoxModel -javax/swing/ListModel -javax/swing/ListCellRenderer -javax/swing/DefaultComboBoxModel -javax/swing/MutableComboBoxModel -javax/swing/AbstractListModel -javax/swing/JComboBox$1 -javax/swing/AncestorNotifier -javax/swing/plaf/metal/MetalComboBoxUI -javax/swing/plaf/basic/BasicComboBoxUI -javax/swing/plaf/ComboBoxUI -javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager -javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager -javax/swing/plaf/basic/BasicComboPopup -javax/swing/plaf/basic/ComboPopup -javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass -javax/swing/border/LineBorder -javax/swing/plaf/basic/BasicComboPopup$1 -javax/swing/JList -javax/swing/DropMode -javax/swing/DefaultListSelectionModel -javax/swing/ListSelectionModel -javax/swing/plaf/basic/BasicListUI -javax/swing/plaf/ListUI -javax/swing/plaf/basic/BasicListUI$ListTransferHandler -javax/swing/TransferHandler -javax/swing/TransferHandler$TransferAction -javax/swing/DefaultListCellRenderer$UIResource -javax/swing/DefaultListCellRenderer -javax/swing/TransferHandler$SwingDropTarget -java/awt/dnd/DropTargetContext -java/awt/datatransfer/SystemFlavorMap -java/awt/datatransfer/FlavorMap -java/awt/datatransfer/FlavorTable -java/awt/datatransfer/SystemFlavorMap$1 -java/net/URI -java/net/URI$Parser -sun/net/ProgressMonitor -sun/net/DefaultProgressMeteringPolicy -sun/net/ProgressMeteringPolicy -sun/nio/cs/ISO_8859_1 -sun/nio/cs/ISO_8859_1$Decoder -java/awt/datatransfer/SystemFlavorMap$2 -java/awt/datatransfer/MimeType -java/io/Externalizable -java/awt/datatransfer/MimeTypeParameterList -sun/awt/datatransfer/DataTransferer -java/awt/datatransfer/DataFlavor -java/awt/datatransfer/DataFlavor$1 -sun/awt/datatransfer/DataTransferer$CharsetComparator -sun/awt/datatransfer/DataTransferer$IndexedComparator -sun/nio/cs/UTF_16BE -sun/nio/cs/US_ASCII -java/util/Collections$UnmodifiableMap -sun/awt/datatransfer/DataTransferer$DataFlavorComparator -java/rmi/Remote -sun/awt/datatransfer/DataTransferer$1 -sun/awt/windows/WDataTransferer -java/lang/Long$LongCache -java/awt/datatransfer/Transferable -sun/awt/datatransfer/ToolkitThreadBlockedHandler -sun/awt/windows/WToolkitThreadBlockedHandler -sun/awt/Mutex -javax/swing/TransferHandler$DropHandler -javax/swing/TransferHandler$TransferSupport -javax/swing/plaf/basic/BasicListUI$Handler -javax/swing/event/ListSelectionListener -javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag -javax/swing/plaf/basic/BasicComboPopup$Handler -javax/swing/JScrollPane -javax/swing/ScrollPaneConstants -javax/swing/ScrollPaneLayout$UIResource -javax/swing/ScrollPaneLayout -javax/swing/JViewport -javax/swing/ViewportLayout -javax/swing/plaf/basic/BasicViewportUI -javax/swing/plaf/ViewportUI -javax/swing/JScrollPane$ScrollBar -javax/swing/JViewport$ViewListener -java/awt/event/ComponentAdapter -javax/swing/plaf/metal/MetalScrollPaneUI -javax/swing/plaf/basic/BasicScrollPaneUI -javax/swing/plaf/ScrollPaneUI -javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder -javax/swing/plaf/basic/BasicScrollPaneUI$Handler -javax/swing/plaf/metal/MetalScrollPaneUI$1 -javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource -javax/swing/plaf/basic/BasicComboBoxRenderer -javax/swing/plaf/metal/MetalComboBoxEditor$UIResource -javax/swing/plaf/metal/MetalComboBoxEditor -javax/swing/plaf/basic/BasicComboBoxEditor -javax/swing/ComboBoxEditor -javax/swing/plaf/basic/BasicComboBoxEditor$BorderlessTextField -javax/swing/JTextField$NotifyAction -javax/swing/text/TextAction -javax/swing/AbstractAction -javax/swing/text/JTextComponent$MutableCaretEvent -javax/swing/plaf/metal/MetalTextFieldUI -javax/swing/plaf/basic/BasicTextFieldUI -javax/swing/plaf/basic/BasicTextUI -javax/swing/text/ViewFactory -javax/swing/plaf/TextUI -javax/swing/plaf/basic/BasicTextUI$BasicCursor -javax/swing/text/DefaultEditorKit -javax/swing/text/EditorKit -javax/swing/text/DefaultEditorKit$InsertContentAction -javax/swing/text/DefaultEditorKit$DeletePrevCharAction -javax/swing/text/DefaultEditorKit$DeleteNextCharAction -javax/swing/text/DefaultEditorKit$ReadOnlyAction -javax/swing/text/DefaultEditorKit$DeleteWordAction -javax/swing/text/DefaultEditorKit$WritableAction -javax/swing/text/DefaultEditorKit$CutAction -javax/swing/text/DefaultEditorKit$CopyAction -javax/swing/text/DefaultEditorKit$PasteAction -javax/swing/text/DefaultEditorKit$VerticalPageAction -javax/swing/text/DefaultEditorKit$PageAction -javax/swing/text/DefaultEditorKit$InsertBreakAction -javax/swing/text/DefaultEditorKit$BeepAction -javax/swing/text/DefaultEditorKit$NextVisualPositionAction -javax/swing/text/DefaultEditorKit$BeginWordAction -javax/swing/text/DefaultEditorKit$EndWordAction -javax/swing/text/DefaultEditorKit$PreviousWordAction -javax/swing/text/DefaultEditorKit$NextWordAction -javax/swing/text/DefaultEditorKit$BeginLineAction -javax/swing/text/DefaultEditorKit$EndLineAction -javax/swing/text/DefaultEditorKit$BeginParagraphAction -javax/swing/text/DefaultEditorKit$EndParagraphAction -javax/swing/text/DefaultEditorKit$BeginAction -javax/swing/text/DefaultEditorKit$EndAction -javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction -javax/swing/text/DefaultEditorKit$InsertTabAction -javax/swing/text/DefaultEditorKit$SelectWordAction -javax/swing/text/DefaultEditorKit$SelectLineAction -javax/swing/text/DefaultEditorKit$SelectParagraphAction -javax/swing/text/DefaultEditorKit$SelectAllAction -javax/swing/text/DefaultEditorKit$UnselectAction -javax/swing/text/DefaultEditorKit$ToggleComponentOrientationAction -javax/swing/text/DefaultEditorKit$DumpModelAction -javax/swing/plaf/basic/BasicTextUI$TextTransferHandler -javax/swing/text/Position$Bias -javax/swing/plaf/basic/BasicTextUI$RootView -javax/swing/text/View -javax/swing/plaf/basic/BasicTextUI$UpdateHandler -javax/swing/event/DocumentListener -javax/swing/plaf/basic/BasicTextUI$DragListener -javax/swing/plaf/basic/BasicComboBoxEditor$UIResource -javax/swing/plaf/basic/BasicTextUI$BasicCaret -javax/swing/text/DefaultCaret -javax/swing/text/Caret -javax/swing/text/DefaultCaret$Handler -java/awt/datatransfer/ClipboardOwner -javax/swing/plaf/basic/BasicTextUI$BasicHighlighter -javax/swing/text/DefaultHighlighter -javax/swing/text/LayeredHighlighter -javax/swing/text/Highlighter -javax/swing/text/Highlighter$Highlight -javax/swing/text/DefaultHighlighter$DefaultHighlightPainter -javax/swing/text/LayeredHighlighter$LayerPainter -javax/swing/text/Highlighter$HighlightPainter -javax/swing/text/DefaultHighlighter$SafeDamager -javax/swing/text/FieldView -javax/swing/text/PlainView -javax/swing/text/JTextComponent$DefaultKeymap -javax/swing/text/Keymap -javax/swing/text/JTextComponent$KeymapWrapper -javax/swing/text/JTextComponent$KeymapActionMap -javax/swing/plaf/basic/BasicTextUI$FocusAction -javax/swing/plaf/basic/BasicTextUI$TextActionWrapper -javax/swing/JTextArea -javax/swing/JEditorPane -javax/swing/JTextField$ScrollRepainter -javax/swing/plaf/metal/MetalComboBoxEditor$1 -javax/swing/plaf/metal/MetalComboBoxEditor$EditorBorder -javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener -javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler -javax/swing/plaf/basic/BasicComboBoxUI$Handler -javax/swing/plaf/metal/MetalComboBoxButton -javax/swing/plaf/metal/MetalComboBoxIcon -javax/swing/plaf/metal/MetalComboBoxButton$1 -javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager -javax/swing/JComboBox$KeySelectionManager -javax/swing/JToolBar$DefaultToolBarLayout -javax/swing/plaf/metal/MetalToolBarUI -javax/swing/plaf/basic/BasicToolBarUI -javax/swing/plaf/ToolBarUI -javax/swing/plaf/metal/MetalBorders$ToolBarBorder -javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue$1 -javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder -javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder -javax/swing/plaf/basic/BasicBorders$RadioButtonBorder -javax/swing/plaf/basic/BasicBorders$ButtonBorder -javax/swing/plaf/basic/BasicBorders$RolloverMarginBorder -javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener -javax/swing/plaf/basic/BasicToolBarUI$DockingListener -javax/swing/plaf/basic/BasicToolBarUI$Handler -javax/swing/border/EtchedBorder -javax/swing/JToolBar$Separator -javax/swing/plaf/basic/BasicToolBarSeparatorUI -sun/font/FontDesignMetrics$MetricsKey -java/applet/Applet -java/awt/Panel -com/sun/awt/AWTUtilities -javax/swing/KeyboardManager$ComponentKeyStrokePair -sun/awt/im/InputMethodContext -java/awt/im/spi/InputMethodContext -sun/awt/im/InputContext -sun/awt/windows/WInputMethod -sun/awt/im/InputMethodAdapter -java/awt/im/spi/InputMethod -javax/swing/SizeRequirements -javax/swing/plaf/basic/BasicGraphicsUtils -java/awt/event/AdjustmentEvent -java/awt/MenuBar -java/awt/Window$1DisposeAction -java/io/StringWriter -java/io/UnsupportedEncodingException -java/lang/StringCoding$StringEncoder -java/net/UnknownHostException -java/net/Socket -java/nio/channels/SocketChannel -java/nio/channels/spi/AbstractSelectableChannel -java/nio/channels/SelectableChannel -java/net/SocketException -java/net/SocketImplFactory -java/net/Proxy -java/net/SocksSocketImpl$5 -java/net/ProxySelector -sun/net/spi/DefaultProxySelector -sun/net/spi/DefaultProxySelector$1 -sun/net/NetProperties -sun/net/NetProperties$1 -sun/net/spi/DefaultProxySelector$NonProxyInfo -java/util/regex/ASCII -java/util/regex/Pattern$GroupCurly -java/net/Inet6Address -java/net/Proxy$Type -java/net/SocketTimeoutException -java/io/InterruptedIOException -javax/swing/UnsupportedLookAndFeelException -java/lang/UnsatisfiedLinkError -javax/swing/Box$Filler -javax/swing/JComponent$2 -sun/net/www/MimeTable -java/net/FileNameMap -sun/net/www/MimeTable$1 -sun/net/www/MimeEntry -java/net/URLConnection$1 -java/text/SimpleDateFormat -java/text/DateFormat -java/text/DateFormat$Field -java/util/Calendar -java/util/GregorianCalendar -sun/util/resources/CalendarData -sun/util/resources/LocaleNamesBundle -sun/util/resources/CalendarData_en -java/text/DateFormatSymbols -java/text/spi/DateFormatSymbolsProvider -sun/text/resources/FormatData -sun/text/resources/FormatData_en -sun/text/resources/FormatData_en_US -java/text/NumberFormat -java/text/spi/NumberFormatProvider -java/text/DecimalFormatSymbols -java/text/spi/DecimalFormatSymbolsProvider -java/util/Currency -java/util/Currency$1 -java/util/spi/CurrencyNameProvider -sun/util/resources/CurrencyNames -sun/util/resources/CurrencyNames_en_US -java/text/DecimalFormat -java/text/DigitList -java/math/RoundingMode -java/text/DontCareFieldPosition -java/text/DontCareFieldPosition$1 -java/text/Format$FieldDelegate -javax/swing/plaf/BorderUIResource -javax/swing/BorderFactory -javax/swing/border/BevelBorder -javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon -javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 -java/util/zip/ZipInputStream -java/io/PushbackInputStream -java/util/zip/CRC32 -java/util/zip/Checksum -java/awt/TrayIcon -java/lang/Thread$State -javax/swing/SwingUtilities$SharedOwnerFrame -javax/swing/JTable -javax/swing/event/TableModelListener -javax/swing/event/TableColumnModelListener -javax/swing/event/CellEditorListener -javax/swing/event/RowSorterListener -java/awt/Component$BltSubRegionBufferStrategy -sun/awt/SubRegionShowable -java/awt/Component$BltBufferStrategy -sun/print/PrinterGraphicsConfig -javax/swing/JRadioButton -java/lang/ClassFormatError -sun/java2d/opengl/OGLGraphicsConfig -java/awt/print/PrinterGraphics -java/awt/PrintGraphics -javax/swing/JTabbedPane -javax/swing/JTabbedPane$ModelListener -javax/swing/plaf/metal/MetalTabbedPaneUI -javax/swing/plaf/basic/BasicTabbedPaneUI -javax/swing/plaf/TabbedPaneUI -javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$Handler -sun/swing/ImageIconUIResource -javax/swing/GrayFilter -java/awt/image/RGBImageFilter -java/awt/image/ImageFilter -java/awt/image/FilteredImageSource -org/w3c/dom/Node -org/xml/sax/SAXException -javax/xml/parsers/ParserConfigurationException -org/xml/sax/EntityResolver -java/security/NoSuchAlgorithmException -java/security/GeneralSecurityException -java/util/zip/GZIPInputStream -java/util/zip/DeflaterOutputStream -org/xml/sax/InputSource -javax/xml/parsers/DocumentBuilderFactory -javax/xml/parsers/FactoryFinder -javax/xml/parsers/SecuritySupport -javax/xml/parsers/SecuritySupport$2 -javax/xml/parsers/SecuritySupport$5 -javax/xml/parsers/SecuritySupport$1 -javax/xml/parsers/SecuritySupport$4 -javax/xml/parsers/DocumentBuilder -org/w3c/dom/Document -org/xml/sax/helpers/DefaultHandler -org/xml/sax/DTDHandler -org/xml/sax/ContentHandler -org/xml/sax/ErrorHandler -org/xml/sax/SAXNotSupportedException -org/xml/sax/Locator -org/xml/sax/SAXNotRecognizedException -org/xml/sax/SAXParseException -org/w3c/dom/NodeList -org/w3c/dom/events/EventTarget -org/w3c/dom/traversal/DocumentTraversal -org/w3c/dom/events/DocumentEvent -org/w3c/dom/ranges/DocumentRange -org/w3c/dom/Entity -org/w3c/dom/Element -org/w3c/dom/CharacterData -org/w3c/dom/CDATASection -org/w3c/dom/Text -org/xml/sax/AttributeList -org/w3c/dom/DOMException -org/w3c/dom/Notation -org/w3c/dom/DocumentType -org/w3c/dom/Attr -org/w3c/dom/EntityReference -org/w3c/dom/ProcessingInstruction -org/w3c/dom/Comment -org/w3c/dom/DocumentFragment -org/w3c/dom/events/Event -org/w3c/dom/events/MutationEvent -org/w3c/dom/traversal/TreeWalker -org/w3c/dom/ranges/Range -org/w3c/dom/traversal/NodeIterator -org/w3c/dom/events/EventException -org/w3c/dom/NamedNodeMap -java/lang/StringIndexOutOfBoundsException -java/awt/GridLayout -javax/swing/plaf/metal/MetalRadioButtonUI -javax/swing/plaf/basic/BasicRadioButtonUI -javax/swing/plaf/basic/BasicBorders -javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon -java/awt/event/ItemEvent -java/awt/CardLayout$Card -javax/swing/JCheckBox -javax/swing/event/ListSelectionEvent -javax/swing/plaf/metal/MetalCheckBoxUI -javax/swing/plaf/metal/MetalIconFactory$CheckBoxIcon -java/lang/ExceptionInInitializerError -com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI -javax/swing/JProgressBar -javax/swing/JProgressBar$ModelListener -javax/swing/plaf/metal/MetalProgressBarUI -javax/swing/plaf/basic/BasicProgressBarUI -javax/swing/plaf/ProgressBarUI -javax/swing/plaf/BorderUIResource$LineBorderUIResource -javax/swing/plaf/basic/BasicProgressBarUI$Handler -javax/swing/tree/TreeModel -javax/swing/table/TableCellRenderer -javax/swing/table/JTableHeader -javax/swing/event/TreeExpansionListener -javax/swing/table/AbstractTableModel -javax/swing/table/TableModel -javax/swing/table/DefaultTableCellRenderer -javax/swing/JTree -javax/swing/tree/TreeSelectionModel -javax/swing/tree/DefaultTreeCellRenderer -javax/swing/tree/TreeCellRenderer -javax/swing/table/TableCellEditor -javax/swing/CellEditor -javax/swing/JToolTip -javax/swing/table/TableColumn -javax/swing/table/DefaultTableColumnModel -javax/swing/table/TableColumnModel -javax/swing/table/DefaultTableModel -javax/swing/event/TableModelEvent -sun/swing/table/DefaultTableCellHeaderRenderer -javax/swing/plaf/basic/BasicTableHeaderUI -javax/swing/plaf/TableHeaderUI -javax/swing/plaf/basic/BasicTableHeaderUI$1 -javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler -javax/swing/DefaultCellEditor -javax/swing/tree/TreeCellEditor -javax/swing/AbstractCellEditor -javax/swing/plaf/basic/BasicTableUI -javax/swing/plaf/TableUI -javax/swing/plaf/basic/BasicTableUI$TableTransferHandler -javax/swing/plaf/basic/BasicTableUI$Handler -javax/swing/tree/DefaultTreeSelectionModel -javax/swing/tree/TreePath -javax/swing/plaf/metal/MetalTreeUI -javax/swing/plaf/basic/BasicTreeUI -javax/swing/plaf/TreeUI -javax/swing/plaf/basic/BasicTreeUI$Actions -javax/swing/plaf/basic/BasicTreeUI$TreeTransferHandler -javax/swing/plaf/metal/MetalTreeUI$LineListener -javax/swing/plaf/basic/BasicTreeUI$Handler -javax/swing/event/TreeModelListener -javax/swing/event/TreeSelectionListener -javax/swing/tree/VariableHeightLayoutCache -javax/swing/tree/AbstractLayoutCache -javax/swing/tree/RowMapper -javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler -javax/swing/tree/AbstractLayoutCache$NodeDimensions -javax/swing/JTree$TreeModelHandler -javax/swing/tree/VariableHeightLayoutCache$TreeStateNode -javax/swing/tree/DefaultMutableTreeNode -javax/swing/tree/MutableTreeNode -javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration -javax/swing/event/TableColumnModelEvent -java/text/ParseException -java/text/NumberFormat$Field -javax/swing/event/UndoableEditListener -javax/swing/filechooser/FileFilter -javax/swing/tree/DefaultTreeModel -javax/swing/tree/DefaultTreeCellEditor -javax/swing/tree/DefaultTreeCellEditor$1 -javax/swing/tree/DefaultTreeCellEditor$DefaultTextField -javax/swing/DefaultCellEditor$1 -javax/swing/DefaultCellEditor$EditorDelegate -javax/swing/tree/DefaultTreeCellEditor$EditorContainer -javax/swing/JTree$TreeSelectionRedirector -javax/swing/event/TreeModelEvent -javax/swing/plaf/metal/MetalSplitPaneUI -javax/swing/plaf/basic/BasicSplitPaneUI -javax/swing/plaf/SplitPaneUI -javax/swing/plaf/basic/BasicSplitPaneDivider -javax/swing/plaf/basic/BasicBorders$SplitPaneBorder -javax/swing/plaf/metal/MetalSplitPaneDivider -javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout -javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler -javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder -javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager -javax/swing/plaf/basic/BasicSplitPaneUI$1 -javax/swing/plaf/basic/BasicSplitPaneUI$Handler -javax/swing/plaf/metal/MetalSplitPaneDivider$1 -javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchActionHandler -javax/swing/plaf/metal/MetalSplitPaneDivider$2 -javax/swing/border/TitledBorder -javax/swing/plaf/basic/BasicTextAreaUI -java/util/Collections$UnmodifiableCollection$1 -java/net/NoRouteToHostException -java/net/BindException -javax/swing/tree/PathPlaceHolder -javax/swing/event/TreeSelectionEvent -javax/swing/JList$3 -javax/swing/JList$ListSelectionHandler -javax/swing/JSlider -javax/swing/JSlider$ModelListener -javax/swing/plaf/metal/MetalSliderUI -javax/swing/plaf/basic/BasicSliderUI -javax/swing/plaf/SliderUI -javax/swing/plaf/basic/BasicSliderUI$Actions -javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon -javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon -javax/swing/plaf/basic/BasicSliderUI$TrackListener -javax/swing/plaf/basic/BasicSliderUI$Handler -javax/swing/plaf/basic/BasicSliderUI$ScrollListener -javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener -javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler -sun/java2d/HeadlessGraphicsEnvironment -java/util/Hashtable$KeySet -javax/swing/DefaultListModel -javax/swing/event/ListDataEvent -javax/sound/sampled/DataLine -javax/sound/sampled/Line -javax/sound/sampled/Line$Info -javax/sound/sampled/DataLine$Info -javax/sound/sampled/Control$Type -javax/sound/sampled/FloatControl$Type -javax/sound/sampled/LineUnavailableException -javax/sound/sampled/UnsupportedAudioFileException -javax/swing/JRadioButtonMenuItem -javax/swing/JMenuItem$AccessibleJMenuItem -javax/swing/AbstractButton$AccessibleAbstractButton -javax/accessibility/AccessibleAction -javax/accessibility/AccessibleValue -javax/accessibility/AccessibleText -javax/accessibility/AccessibleExtendedComponent -javax/accessibility/AccessibleComponent -javax/swing/JComponent$AccessibleJComponent -java/awt/Container$AccessibleAWTContainer -java/awt/Component$AccessibleAWTComponent -javax/accessibility/AccessibleRelationSet -javax/accessibility/AccessibleState -javax/accessibility/AccessibleBundle -javax/swing/plaf/basic/BasicCheckBoxMenuItemUI -javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon -javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem -javax/swing/plaf/basic/BasicRadioButtonMenuItemUI -javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon -sun/awt/image/ImageDecoder$1 -javax/swing/JTabbedPane$Page -java/net/DatagramSocket -java/net/MulticastSocket -java/net/DatagramPacket -sun/net/InetAddressCachePolicy$1 -sun/security/action/GetIntegerAction -sun/net/InetAddressCachePolicy$2 -java/net/InetAddress$CacheEntry -java/net/DatagramSocketImpl -java/text/Collator -java/text/spi/CollatorProvider -sun/text/resources/CollationData -sun/text/resources/CollationData_en -sun/util/EmptyListResourceBundle -java/text/RuleBasedCollator -java/text/CollationRules -java/text/RBCollationTables -java/text/RBTableBuilder -java/text/RBCollationTables$BuildAPI -sun/text/IntHashtable -sun/text/UCompactIntArray -sun/text/normalizer/NormalizerImpl -sun/text/normalizer/ICUData -sun/text/normalizer/NormalizerDataReader -sun/text/normalizer/ICUBinary$Authenticate -sun/text/normalizer/ICUBinary -sun/text/normalizer/NormalizerImpl$FCDTrieImpl -sun/text/normalizer/Trie$DataManipulate -sun/text/normalizer/NormalizerImpl$NormTrieImpl -sun/text/normalizer/NormalizerImpl$AuxTrieImpl -sun/text/normalizer/IntTrie -sun/text/normalizer/Trie -sun/text/normalizer/CharTrie -sun/text/normalizer/CharTrie$FriendAgent -sun/text/normalizer/UnicodeSet -sun/text/normalizer/UnicodeMatcher -sun/text/normalizer/NormalizerImpl$DecomposeArgs -java/text/MergeCollation -java/text/PatternEntry$Parser -java/text/PatternEntry -java/text/EntryPair -sun/text/ComposedCharIter -sun/text/normalizer/UTF16 -sun/net/www/protocol/http/Handler -java/security/SignatureException -java/security/InvalidKeyException -java/security/KeyException -java/security/Signature -java/security/SignatureSpi -java/io/ObjectInputStream$BlockDataInputStream -java/io/ObjectInputStream$PeekInputStream -java/io/ObjectInputStream$HandleTable -java/io/ObjectInputStream$HandleTable$HandleList -java/io/ObjectInputStream$ValidationList -sun/security/provider/DSAPublicKey -java/security/interfaces/DSAPublicKey -java/security/interfaces/DSAKey -java/security/PublicKey -java/security/Key -sun/security/x509/X509Key -java/io/ObjectStreamClass$Caches -java/io/ObjectStreamClass$WeakClassKey -java/io/ObjectStreamClass$EntryFuture -java/io/ObjectStreamClass$2 -sun/security/x509/AlgorithmId -sun/security/util/DerEncoder -sun/security/util/BitArray -sun/reflect/UnsafeQualifiedStaticLongFieldAccessorImpl -sun/security/util/DerOutputStream -sun/security/util/DerValue -java/io/ObjectStreamClass$FieldReflectorKey -java/io/ObjectStreamClass$FieldReflector -java/io/ObjectStreamClass$1 -java/io/DataOutputStream -java/io/ObjectStreamClass$MemberSignature -java/math/BigInteger -java/security/interfaces/DSAParams -java/io/ObjectStreamClass$ClassDataSlot -java/io/ObjectStreamClass$4 -java/io/ObjectStreamClass$5 -java/security/MessageDigest -java/security/MessageDigestSpi -sun/security/jca/GetInstance -sun/security/util/DerInputStream -sun/security/jca/Providers -sun/security/jca/ProviderList -sun/security/jca/ProviderConfig -sun/security/jca/ProviderList$3 -sun/security/jca/ProviderList$1 -sun/security/util/DerInputBuffer -sun/security/jca/ProviderList$2 -sun/security/jca/ProviderConfig$1 -sun/security/util/ObjectIdentifier -sun/security/jca/ProviderConfig$3 -java/security/Provider$Service -java/security/Provider$UString -java/security/AlgorithmParameters -java/security/AlgorithmParametersSpi -sun/security/provider/DSAParameters -sun/security/provider/SHA -sun/security/provider/DigestBase -sun/security/jca/GetInstance$Instance -sun/security/util/ByteArrayLexOrder -sun/security/util/ByteArrayTagOrder -java/security/MessageDigest$Delegate -sun/security/provider/ByteArrayAccess -sun/security/util/DerIndefLenConverter -java/io/InvalidClassException -java/io/ObjectStreamException -java/io/ObjectInputStream$GetFieldImpl -java/io/ObjectInputStream$GetField -java/io/ObjectOutputStream$ReplaceTable -sun/security/jca/ServiceId -sun/security/jca/ProviderList$ServiceList -sun/security/jca/ProviderList$ServiceList$1 -java/security/Signature$Delegate -java/security/interfaces/DSAPrivateKey -sun/security/provider/DSA$SHA1withDSA -sun/security/provider/DSA -java/security/spec/DSAParameterSpec -java/math/MutableBigInteger -java/math/SignedMutableBigInteger -java/awt/EventQueue$1AWTInvocationLock -java/awt/LightweightDispatcher$2 -java/awt/Component$FlipBufferStrategy -javax/swing/JTable$2 -javax/swing/JTable$Resizable3 -javax/swing/JTable$Resizable2 -javax/swing/JTable$5 -javax/swing/event/AncestorEvent -com/sun/java/swing/plaf/windows/WindowsLookAndFeel -com/sun/java/swing/plaf/windows/XPStyle -com/sun/java/swing/plaf/windows/XPStyle$SkinPainter -sun/swing/CachedPainter -sun/swing/ImageCache -com/sun/java/swing/plaf/windows/WindowsRootPaneUI -com/sun/java/swing/plaf/windows/WindowsRootPaneUI$AltProcessor -java/awt/SystemColor -com/sun/java/swing/plaf/windows/WindowsTreeUI$ExpandedIcon -com/sun/java/swing/plaf/windows/WindowsTreeUI$CollapsedIcon -com/sun/java/swing/plaf/windows/DesktopProperty -com/sun/java/swing/plaf/windows/WindowsLookAndFeel$XPColorValue -com/sun/java/swing/plaf/windows/WindowsLookAndFeel$XPValue -com/sun/java/swing/plaf/windows/TMSchema$Part -com/sun/java/swing/plaf/windows/TMSchema$Control -com/sun/java/swing/plaf/windows/TMSchema$Prop -com/sun/java/swing/plaf/windows/WindowsLookAndFeel$XPColorValue$XPColorValueKey -com/sun/java/swing/plaf/windows/XPStyle$Skin -com/sun/java/swing/plaf/windows/WindowsLookAndFeel$WindowsFontProperty -com/sun/java/swing/plaf/windows/WindowsLookAndFeel$FontDesktopProperty -com/sun/java/swing/plaf/windows/WindowsLookAndFeel$TriggerDesktopProperty -com/sun/java/swing/plaf/windows/DesktopProperty$WeakPCL -com/sun/java/swing/plaf/windows/WindowsClassicLookAndFeel -com/sun/java/swing/plaf/windows/TMSchema$State -com/sun/java/swing/plaf/windows/WindowsLookAndFeel$LazyWindowsIcon -com/sun/java/swing/plaf/windows/WindowsLookAndFeel$XPBorderValue -com/sun/java/swing/plaf/windows/WindowsIconFactory -com/sun/java/swing/plaf/windows/WindowsIconFactory$FrameButtonIcon -com/sun/java/swing/plaf/windows/WindowsLookAndFeel$XPDLUValue -com/sun/java/swing/plaf/windows/WindowsLookAndFeel$ActiveWindowsIcon -sun/swing/SwingUtilities2$2$1 -sun/awt/image/ByteArrayImageSource -com/sun/java/swing/plaf/windows/resources/windows -com/sun/java/swing/plaf/windows/WindowsLabelUI -com/sun/java/swing/plaf/windows/WindowsButtonUI -sun/awt/windows/ThemeReader -java/util/EnumMap -com/sun/java/swing/plaf/windows/TMSchema$TypeEnum -com/sun/java/swing/plaf/windows/XPStyle$XPEmptyBorder -com/sun/java/swing/plaf/windows/WindowsToggleButtonUI -com/sun/java/swing/plaf/windows/XPStyle$XPFillBorder -com/sun/java/swing/plaf/windows/WindowsMenuBarUI -javax/swing/plaf/basic/BasicBorders$MenuBarBorder -com/sun/java/swing/plaf/windows/WindowsMenuBarUI$TakeFocus -javax/swing/plaf/basic/BasicMenuBarUI$Actions -com/sun/java/swing/plaf/windows/WindowsMenuUI -com/sun/java/swing/plaf/windows/WindowsIconFactory$MenuArrowIcon -javax/swing/plaf/basic/BasicIconFactory -javax/swing/plaf/basic/BasicIconFactory$MenuItemCheckIcon -com/sun/java/swing/plaf/windows/WindowsMenuUI$WindowsMouseInputHandler -javax/swing/plaf/basic/BasicMenuUI$MouseInputHandler -com/sun/java/swing/plaf/windows/WindowsMenuItemUI -com/sun/java/swing/plaf/windows/WindowsIconFactory$MenuItemArrowIcon -com/sun/java/swing/plaf/windows/WindowsIconFactory$MenuItemCheckIcon -com/sun/java/swing/plaf/windows/WindowsPopupMenuUI -javax/swing/Popup -com/sun/java/swing/plaf/windows/WindowsPopupMenuUI$MnemonicListener -com/sun/java/swing/plaf/windows/WindowsPopupMenuSeparatorUI -javax/swing/plaf/basic/BasicPopupMenuSeparatorUI -com/sun/java/swing/plaf/windows/WindowsScrollBarUI -com/sun/java/swing/plaf/windows/WindowsScrollBarUI$Grid -com/sun/java/swing/plaf/windows/WindowsScrollBarUI$WindowsArrowButton -com/sun/java/swing/plaf/windows/WindowsComboBoxUI -com/sun/java/swing/plaf/windows/WindowsComboBoxUI$1 -com/sun/java/swing/plaf/windows/WindowsComboBoxUI$2 -com/sun/java/swing/plaf/windows/XPStyle$XPStatefulFillBorder -com/sun/java/swing/plaf/windows/WindowsComboBoxUI$WindowsComboBoxEditor -com/sun/java/swing/plaf/windows/WindowsTextFieldUI -com/sun/java/swing/plaf/windows/WindowsTextFieldUI$WindowsFieldCaret -com/sun/java/swing/plaf/windows/WindowsComboBoxUI$XPComboBoxButton -com/sun/java/swing/plaf/windows/XPStyle$GlyphButton -com/sun/java/swing/plaf/windows/WindowsComboBoxUI$3 -com/sun/java/swing/plaf/windows/WindowsToolBarUI -com/sun/java/swing/plaf/windows/WindowsBorders -com/sun/java/swing/plaf/windows/WindowsBorders$ToolBarBorder -com/sun/java/swing/plaf/windows/WindowsToolBarSeparatorUI -com/sun/java/swing/plaf/windows/WindowsGraphicsUtils -sun/awt/image/BufferedImageGraphicsConfig -sun/reflect/SerializationConstructorAccessorImpl -java/io/ObjectStreamClass$3 -java/io/ObjectOutputStream$BlockDataOutputStream -java/io/ObjectOutputStream$HandleTable -java/security/PrivateKey -java/security/spec/AlgorithmParameterSpec -sun/applet/Main -sun/applet/AppletMessageHandler -sun/applet/resources/MsgAppletViewer -sun/applet/AppletSecurity -sun/awt/AWTSecurityManager -java/lang/SecurityManager -java/security/DomainCombiner -sun/applet/AppletSecurity$1 -java/lang/SecurityManager$1 -sun/net/InetAddressCachePolicy -java/security/SecurityPermission -java/util/PropertyPermission -sun/applet/AppletViewer -java/applet/AppletContext -java/awt/print/Printable -sun/security/util/SecurityConstants -java/awt/AWTPermission -java/net/NetPermission -java/net/SocketPermission -javax/security/auth/AuthPermission -java/lang/Thread$1 -java/util/logging/LogManager$5 -sun/applet/StdAppletViewerFactory -sun/applet/AppletViewerFactory -sun/applet/AppletViewer$UserActionListener -sun/applet/AppletViewerPanel -sun/applet/AppletPanel -java/applet/AppletStub -sun/misc/MessageUtils -sun/applet/AppletPanel$10 -java/security/Policy$1 -sun/security/provider/PolicyFile$1 -sun/security/provider/PolicyFile$3 -sun/security/util/PropertyExpander -sun/security/provider/PolicyParser -sun/security/util/PolicyUtil -java/io/StreamTokenizer -sun/security/provider/PolicyParser$GrantEntry -sun/security/provider/PolicyParser$PermissionEntry -sun/security/provider/PolicyFile$PolicyEntry -sun/security/provider/PolicyParser$ParsingException -sun/security/provider/PolicyFile$6 -sun/security/provider/PolicyFile$7 -java/net/SocketPermissionCollection -java/util/PropertyPermissionCollection -sun/applet/AppletPanel$9 -sun/applet/AppletClassLoader -sun/applet/AppletThreadGroup -sun/applet/AppContextCreator -sun/applet/AppletPanel$1 -sun/awt/AppContext$3 -sun/awt/windows/WMenuBarPeer -java/awt/peer/MenuBarPeer -java/awt/peer/MenuComponentPeer -sun/awt/windows/WMenuPeer -java/awt/peer/MenuPeer -java/awt/peer/MenuItemPeer -sun/awt/windows/WMenuItemPeer -sun/awt/windows/WMenuItemPeer$2 -sun/awt/windows/awtLocalization -sun/awt/windows/WFontMetrics -sun/applet/AppletViewer$1 -sun/applet/AppletViewer$1AppletEventListener -sun/applet/AppletListener -sun/applet/AppletEventMulticaster -sun/awt/CausedFocusEvent -sun/misc/Queue -sun/misc/QueueElement -sun/applet/AppletEvent -sun/applet/AppletClassLoader$1 -java/net/URLClassLoader$4 -sun/applet/AppletClassLoader$2 -javax/swing/JApplet -java/lang/ClassLoader$1 -sun/security/provider/PolicyFile$5 -java/security/PermissionsEnumerator -java/util/Collections$1 -sun/applet/AppletPanel$11 -javax/swing/SwingHeavyWeight -sun/applet/AppletPanel$8 -sun/applet/AppletPanel$2 -sun/applet/AppletPanel$3 -sun/applet/AppletPanel$6 -java/beans/PropertyVetoException -javax/swing/BufferStrategyPaintManager$BufferInfo -javax/swing/BufferStrategyPaintManager$1 -sun/java2d/opengl/WGLGraphicsConfig -# dabe0c65d3c79925 +sun/util/resources/en/CalendarData_en +sun/util/resources/en/CurrencyNames_en_US +sun/util/resources/en/TimeZoneNames_en +sun/util/spi/CalendarProvider +# 729efa63b41fc759
--- a/makefiles/lib/CoreLibraries.gmk Thu Nov 14 23:32:31 2013 -0800 +++ b/makefiles/lib/CoreLibraries.gmk Fri Nov 15 07:14:23 2013 -0800 @@ -115,7 +115,6 @@ LIBJAVA_SRC_DIRS := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/lang \ $(JDK_TOPDIR)/src/share/native/java/lang \ - $(JDK_TOPDIR)/src/share/native/java/lang/ref \ $(JDK_TOPDIR)/src/share/native/java/lang/reflect \ $(JDK_TOPDIR)/src/share/native/java/io \ $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/io \
--- a/makefiles/lib/ServiceabilityLibraries.gmk Thu Nov 14 23:32:31 2013 -0800 +++ b/makefiles/lib/ServiceabilityLibraries.gmk Fri Nov 15 07:14:23 2013 -0800 @@ -275,19 +275,12 @@ ########################################################################################## BUILD_LIBMANAGEMENT_SRC := $(JDK_TOPDIR)/src/share/native/sun/management \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/management \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/com/sun/management + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/management BUILD_LIBMANAGEMENT_EXCLUDES := BUILD_LIBMANAGEMENT_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/management -ifneq ($(OPENJDK_TARGET_OS), windows) - BUILD_LIBMANAGEMENT_EXCLUDES += OperatingSystem_md.c -else - BUILD_LIBMANAGEMENT_EXCLUDES += UnixOperatingSystem_md.c -endif - ifneq ($(OPENJDK_TARGET_OS), solaris) BUILD_LIBMANAGEMENT_EXCLUDES += SolarisOperatingSystem.c endif
--- a/makefiles/mapfiles/libjava/mapfile-vers Thu Nov 14 23:32:31 2013 -0800 +++ b/makefiles/mapfiles/libjava/mapfile-vers Fri Nov 15 07:14:23 2013 -0800 @@ -140,7 +140,6 @@ Java_java_lang_Double_doubleToRawLongBits; Java_java_lang_reflect_Proxy_defineClass0; Java_java_lang_Shutdown_runAllFinalizers; - Java_java_lang_ref_Finalizer_invokeFinalizeMethod; Java_java_lang_Float_intBitsToFloat; Java_java_lang_Float_floatToRawIntBits; Java_java_lang_StrictMath_IEEEremainder;
--- a/makefiles/mapfiles/libjava/reorder-sparc Thu Nov 14 23:32:31 2013 -0800 +++ b/makefiles/mapfiles/libjava/reorder-sparc Fri Nov 15 07:14:23 2013 -0800 @@ -88,7 +88,6 @@ text: .text%throwFileNotFoundException; text: .text%JNU_NotifyAll; # Test LoadFrame -text: .text%Java_java_lang_ref_Finalizer_invokeFinalizeMethod; text: .text%JNU_CallMethodByName; text: .text%JNU_CallMethodByNameV; text: .text%Java_java_io_UnixFileSystem_createDirectory;
--- a/makefiles/mapfiles/libjava/reorder-sparcv9 Thu Nov 14 23:32:31 2013 -0800 +++ b/makefiles/mapfiles/libjava/reorder-sparcv9 Fri Nov 15 07:14:23 2013 -0800 @@ -78,7 +78,6 @@ text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2Ljava_security_AccessControlContext_2; text: .text%JNU_GetEnv; text: .text%Java_java_io_UnixFileSystem_checkAccess; -text: .text%Java_java_lang_ref_Finalizer_invokeFinalizeMethod; text: .text%Java_java_lang_reflect_Array_newArray; text: .text%Java_java_lang_Throwable_getStackTraceDepth; text: .text%Java_java_lang_Throwable_getStackTraceElement;
--- a/makefiles/mapfiles/libjava/reorder-x86 Thu Nov 14 23:32:31 2013 -0800 +++ b/makefiles/mapfiles/libjava/reorder-x86 Fri Nov 15 07:14:23 2013 -0800 @@ -78,7 +78,6 @@ text: .text%JNU_GetEnv; text: .text%Java_java_io_UnixFileSystem_checkAccess; text: .text%Java_sun_reflect_NativeMethodAccessorImpl_invoke0; -text: .text%Java_java_lang_ref_Finalizer_invokeFinalizeMethod; text: .text%Java_java_io_FileInputStream_available; text: .text%Java_java_lang_reflect_Array_newArray; text: .text%Java_java_lang_Throwable_getStackTraceDepth;
--- a/makefiles/mapfiles/libmanagement/mapfile-vers Thu Nov 14 23:32:31 2013 -0800 +++ b/makefiles/mapfiles/libmanagement/mapfile-vers Fri Nov 15 07:14:23 2013 -0800 @@ -27,17 +27,17 @@ SUNWprivate_1.1 { global: - Java_com_sun_management_UnixOperatingSystem_getCommittedVirtualMemorySize; - Java_com_sun_management_UnixOperatingSystem_getFreePhysicalMemorySize; - Java_com_sun_management_UnixOperatingSystem_getFreeSwapSpaceSize; - Java_com_sun_management_UnixOperatingSystem_getMaxFileDescriptorCount; - Java_com_sun_management_UnixOperatingSystem_getOpenFileDescriptorCount; - Java_com_sun_management_UnixOperatingSystem_getProcessCpuLoad; - Java_com_sun_management_UnixOperatingSystem_getProcessCpuTime; - Java_com_sun_management_UnixOperatingSystem_getSystemCpuLoad; - Java_com_sun_management_UnixOperatingSystem_getTotalPhysicalMemorySize; - Java_com_sun_management_UnixOperatingSystem_getTotalSwapSpaceSize; - Java_com_sun_management_UnixOperatingSystem_initialize; + Java_sun_management_OperatingSystemImpl_getCommittedVirtualMemorySize; + Java_sun_management_OperatingSystemImpl_getFreePhysicalMemorySize; + Java_sun_management_OperatingSystemImpl_getFreeSwapSpaceSize; + Java_sun_management_OperatingSystemImpl_getMaxFileDescriptorCount; + Java_sun_management_OperatingSystemImpl_getOpenFileDescriptorCount; + Java_sun_management_OperatingSystemImpl_getProcessCpuLoad; + Java_sun_management_OperatingSystemImpl_getProcessCpuTime; + Java_sun_management_OperatingSystemImpl_getSystemCpuLoad; + Java_sun_management_OperatingSystemImpl_getTotalPhysicalMemorySize; + Java_sun_management_OperatingSystemImpl_getTotalSwapSpaceSize; + Java_sun_management_OperatingSystemImpl_initialize; Java_sun_management_ClassLoadingImpl_setVerboseClass; Java_sun_management_DiagnosticCommandImpl_executeDiagnosticCommand; Java_sun_management_DiagnosticCommandImpl_getDiagnosticCommands; @@ -103,6 +103,7 @@ Java_sun_management_VMManagementImpl_getSafepointCount; Java_sun_management_VMManagementImpl_getSafepointSyncTime; Java_sun_management_VMManagementImpl_getStartupTime; + Java_sun_management_VMManagementImpl_getUptime0; Java_sun_management_VMManagementImpl_getTotalApplicationNonStoppedTime; Java_sun_management_VMManagementImpl_getTotalClassCount; Java_sun_management_VMManagementImpl_getTotalCompileTime;
--- a/src/share/classes/com/sun/rowset/CachedRowSetImpl.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/com/sun/rowset/CachedRowSetImpl.java Fri Nov 15 07:14:23 2013 -0800 @@ -541,7 +541,7 @@ if (rowSetWriter != null) { Class<?> c = rowSetWriter.getClass(); if (c != null) { - Class[] theInterfaces = c.getInterfaces(); + Class<?>[] theInterfaces = c.getInterfaces(); for (int i = 0; i < theInterfaces.length; i++) { if ((theInterfaces[i].getName()).indexOf("TransactionalWriter") > 0) { tXWriter = true;
--- a/src/share/classes/com/sun/rowset/internal/BaseRow.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/com/sun/rowset/internal/BaseRow.java Fri Nov 15 07:14:23 2013 -0800 @@ -52,6 +52,11 @@ public abstract class BaseRow implements Serializable, Cloneable { /** + * Specify the serialVersionUID + */ +private static final long serialVersionUID = 4152013523511412238L; + +/** * The array containing the original values for this <code>BaseRow</code> * object. * @serial @@ -77,7 +82,7 @@ * @param idx the index of the element to return * @return the <code>Object</code> value at the given index into this * row's array of original values - * @throws <code>SQLException</code> if there is an error + * @throws SQLException if there is an error */ public abstract Object getColumnObject(int idx) throws SQLException; @@ -90,7 +95,7 @@ * @param idx the index of the element to be set * @param obj the <code>Object</code> to which the element at index * <code>idx</code> to be set - * @throws <code>SQLException</code> if there is an error + * @throws SQLException if there is an error */ public abstract void setColumnObject(int idx, Object obj) throws SQLException; }
--- a/src/share/classes/java/io/DataInput.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/io/DataInput.java Fri Nov 15 07:14:23 2013 -0800 @@ -444,7 +444,7 @@ * a {@code double} value. It does this * by first constructing a {@code long} * value in exactly the manner - * of the {@code readlong} + * of the {@code readLong} * method, then converting this {@code long} * value to a {@code double} in exactly * the manner of the method {@code Double.longBitsToDouble}.
--- a/src/share/classes/java/io/ObjectOutputStream.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/io/ObjectOutputStream.java Fri Nov 15 07:14:23 2013 -0800 @@ -1248,7 +1248,7 @@ handles.assign(unshared ? null : desc); Class<?> cl = desc.forClass(); - Class[] ifaces = cl.getInterfaces(); + Class<?>[] ifaces = cl.getInterfaces(); bout.writeInt(ifaces.length); for (int i = 0; i < ifaces.length; i++) { bout.writeUTF(ifaces[i].getName());
--- a/src/share/classes/java/io/ObjectStreamClass.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/io/ObjectStreamClass.java Fri Nov 15 07:14:23 2013 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -1746,7 +1746,7 @@ dout.writeUTF("()V"); } - Constructor[] cons = cl.getDeclaredConstructors(); + Constructor<?>[] cons = cl.getDeclaredConstructors(); MemberSignature[] consSigs = new MemberSignature[cons.length]; for (int i = 0; i < cons.length; i++) { consSigs[i] = new MemberSignature(cons[i]);
--- a/src/share/classes/java/lang/String.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/lang/String.java Fri Nov 15 07:14:23 2013 -0800 @@ -122,14 +122,9 @@ /** * Class String is special cased within the Serialization Stream Protocol. * - * A String instance is written initially into an ObjectOutputStream in the - * following format: - * <pre> - * {@code TC_STRING} (utf String) - * </pre> - * The String is written by method {@code DataOutput.writeUTF}. - * A new handle is generated to refer to all future references to the - * string instance within the stream. + * A String instance is written into an ObjectOutputStream according to + * <a href="{@docroot}../platform/serialization/spec/output.html"> + * Object Serialization Specification, Section 6.2, "Stream Elements"</a> */ private static final ObjectStreamField[] serialPersistentFields = new ObjectStreamField[0]; @@ -2242,6 +2237,11 @@ * expression does not match any part of the input then the resulting array * has just one element, namely this string. * + * <p> When there is a positive-width match at the beginning of this + * string then an empty leading substring is included at the beginning + * of the resulting array. A zero-width match at the beginning however + * never produces such empty leading substring. + * * <p> The {@code limit} parameter controls the number of times the * pattern is applied and therefore affects the length of the resulting * array. If the limit <i>n</i> is greater than zero then the pattern
--- a/src/share/classes/java/lang/System.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/lang/System.java Fri Nov 15 07:14:23 2013 -0800 @@ -1263,6 +1263,9 @@ public Thread newThreadWithAcc(Runnable target, AccessControlContext acc) { return new Thread(target, acc); } + public void invokeFinalize(Object o) throws Throwable { + o.finalize(); + } }); } }
--- a/src/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java Fri Nov 15 07:14:23 2013 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -51,7 +51,7 @@ /* package */ final class InnerClassLambdaMetafactory extends AbstractValidatingLambdaMetafactory { private static final Unsafe UNSAFE = Unsafe.getUnsafe(); - private static final int CLASSFILE_VERSION = 51; + private static final int CLASSFILE_VERSION = 52; private static final String METHOD_DESCRIPTOR_VOID = Type.getMethodDescriptor(Type.VOID_TYPE); private static final String JAVA_LANG_OBJECT = "java/lang/Object"; private static final String NAME_CTOR = "<init>"; @@ -465,7 +465,9 @@ convertArgumentTypes(methodType); // Invoke the method we want to forward to - visitMethodInsn(invocationOpcode(), implMethodClassName, implMethodName, implMethodDesc); + visitMethodInsn(invocationOpcode(), implMethodClassName, + implMethodName, implMethodDesc, + implDefiningClass.isInterface()); // Convert the return value (if any) and return it // Note: if adapting from non-void to void, the 'return'
--- a/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java Fri Nov 15 07:14:23 2013 -0800 @@ -275,7 +275,7 @@ */ private void classFilePrologue() { cw = new ClassWriter(ClassWriter.COMPUTE_MAXS + ClassWriter.COMPUTE_FRAMES); - cw.visit(Opcodes.V1_6, Opcodes.ACC_PUBLIC + Opcodes.ACC_FINAL + Opcodes.ACC_SUPER, className, null, superName, null); + cw.visit(Opcodes.V1_8, Opcodes.ACC_PUBLIC + Opcodes.ACC_FINAL + Opcodes.ACC_SUPER, className, null, superName, null); cw.visitSource(sourceFile, null); String invokerDesc = invokerType.toMethodDescriptorString(); @@ -646,7 +646,8 @@ // invocation if (member.isMethod()) { mtype = member.getMethodType().toMethodDescriptorString(); - mv.visitMethodInsn(refKindOpcode(refKind), cname, mname, mtype); + mv.visitMethodInsn(refKindOpcode(refKind), cname, mname, mtype, + member.getDeclaringClass().isInterface()); } else { mtype = MethodType.toFieldDescriptorString(member.getFieldType()); mv.visitFieldInsn(refKindOpcode(refKind), cname, mname, mtype);
--- a/src/share/classes/java/lang/invoke/MethodHandleImpl.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/lang/invoke/MethodHandleImpl.java Fri Nov 15 07:14:23 2013 -0800 @@ -744,8 +744,11 @@ MethodHandle ginvoker = GuardWithCatch.INVOKES[nargs].bindReceiver(gguard); return makePairwiseConvert(ginvoker, type, 2); } else { + target = target.asType(type.changeReturnType(Object.class)); MethodHandle gtarget = makeSpreadArguments(target, Object[].class, 0, nargs); - catcher = catcher.asType(ctype.changeParameterType(0, Throwable.class)); + MethodType catcherType = ctype.changeParameterType(0, Throwable.class) + .changeReturnType(Object.class); + catcher = catcher.asType(catcherType); MethodHandle gcatcher = makeSpreadArguments(catcher, Object[].class, 1, nargs); GuardWithCatch gguard = new GuardWithCatch(gtarget, exType, gcatcher); if (gtarget == null || gcatcher == null) throw new InternalError();
--- a/src/share/classes/java/lang/invoke/MethodType.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/lang/invoke/MethodType.java Fri Nov 15 07:14:23 2013 -0800 @@ -32,6 +32,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.Objects; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.ConcurrentHashMap; import sun.invoke.util.BytecodeDescriptor; @@ -98,14 +99,26 @@ private @Stable MethodTypeForm form; // erased form, plus cached data about primitives private @Stable MethodType wrapAlt; // alternative wrapped/unwrapped version private @Stable Invokers invokers; // cache of handy higher-order adapters + private @Stable String methodDescriptor; // cache for toMethodDescriptorString /** * Check the given parameters for validity and store them into the final fields. */ - private MethodType(Class<?> rtype, Class<?>[] ptypes) { + private MethodType(Class<?> rtype, Class<?>[] ptypes, boolean trusted) { checkRtype(rtype); checkPtypes(ptypes); this.rtype = rtype; + // defensively copy the array passed in by the user + this.ptypes = trusted ? ptypes : Arrays.copyOf(ptypes, ptypes.length); + } + + /** + * Construct a temporary unchecked instance of MethodType for use only as a key to the intern table. + * Does not check the given parameters for validity, and must be discarded after it is used as a searching key. + * The parameters are reversed for this constructor, so that is is not accidentally used. + */ + private MethodType(Class<?>[] ptypes, Class<?> rtype) { + this.rtype = rtype; this.ptypes = ptypes; } @@ -146,20 +159,21 @@ /*non-public*/ static final int MAX_MH_INVOKER_ARITY = MAX_MH_ARITY-1; // deduct one more for invoker private static void checkRtype(Class<?> rtype) { - rtype.equals(rtype); // null check + Objects.requireNonNull(rtype); } - private static int checkPtype(Class<?> ptype) { - ptype.getClass(); //NPE + private static void checkPtype(Class<?> ptype) { + Objects.requireNonNull(ptype); if (ptype == void.class) throw newIllegalArgumentException("parameter type cannot be void"); - if (ptype == double.class || ptype == long.class) return 1; - return 0; } /** Return number of extra slots (count of long/double args). */ private static int checkPtypes(Class<?>[] ptypes) { int slots = 0; for (Class<?> ptype : ptypes) { - slots += checkPtype(ptype); + checkPtype(ptype); + if (ptype == double.class || ptype == long.class) { + slots++; + } } checkSlotCount(ptypes.length + slots); return slots; @@ -284,20 +298,16 @@ */ /*trusted*/ static MethodType makeImpl(Class<?> rtype, Class<?>[] ptypes, boolean trusted) { + MethodType mt = internTable.get(new MethodType(ptypes, rtype)); + if (mt != null) + return mt; if (ptypes.length == 0) { ptypes = NO_PTYPES; trusted = true; } - MethodType mt1 = new MethodType(rtype, ptypes); - MethodType mt0 = internTable.get(mt1); - if (mt0 != null) - return mt0; - if (!trusted) - // defensively copy the array passed in by the user - mt1 = new MethodType(rtype, ptypes.clone()); + mt = new MethodType(rtype, ptypes, trusted); // promote the object to the Real Thing, and reprobe - MethodTypeForm form = MethodTypeForm.findForm(mt1); - mt1.form = form; - return internTable.add(mt1); + mt.form = MethodTypeForm.findForm(mt); + return internTable.add(mt); } private static final MethodType[] objectOnlyTypes = new MethodType[20]; @@ -919,7 +929,12 @@ * @return the bytecode type descriptor representation */ public String toMethodDescriptorString() { - return BytecodeDescriptor.unparse(this); + String desc = methodDescriptor; + if (desc == null) { + desc = BytecodeDescriptor.unparse(this); + methodDescriptor = desc; + } + return desc; } /*non-public*/ static String toFieldDescriptorString(Class<?> cls) {
--- a/src/share/classes/java/lang/invoke/TypeConvertingMethodAdapter.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/lang/invoke/TypeConvertingMethodAdapter.java Fri Nov 15 07:14:23 2013 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -35,7 +35,7 @@ class TypeConvertingMethodAdapter extends MethodVisitor { TypeConvertingMethodAdapter(MethodVisitor mv) { - super(Opcodes.ASM4, mv); + super(Opcodes.ASM5, mv); } private static final int NUM_WRAPPERS = Wrapper.values().length;
--- a/src/share/classes/java/lang/ref/Finalizer.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/lang/ref/Finalizer.java Fri Nov 15 07:14:23 2013 -0800 @@ -27,17 +27,14 @@ import java.security.PrivilegedAction; import java.security.AccessController; - +import sun.misc.JavaLangAccess; +import sun.misc.SharedSecrets; +import sun.misc.VM; final class Finalizer extends FinalReference<Object> { /* Package-private; must be in same package as the Reference class */ - /* A native method that invokes an arbitrary object's finalize method is - required since the finalize method is protected - */ - static native void invokeFinalizeMethod(Object o) throws Throwable; - private static ReferenceQueue<Object> queue = new ReferenceQueue<>(); private static Finalizer unfinalized = null; private static final Object lock = new Object(); @@ -90,7 +87,7 @@ new Finalizer(finalizee); } - private void runFinalizer() { + private void runFinalizer(JavaLangAccess jla) { synchronized (this) { if (hasBeenFinalized()) return; remove(); @@ -98,7 +95,8 @@ try { Object finalizee = this.get(); if (finalizee != null && !(finalizee instanceof java.lang.Enum)) { - invokeFinalizeMethod(finalizee); + jla.invokeFinalize(finalizee); + /* Clear stack slot containing this variable, to decrease the chances of false retention with a conservative GC */ finalizee = null; @@ -141,16 +139,21 @@ /* Called by Runtime.runFinalization() */ static void runFinalization() { + if (!VM.isBooted()) { + return; + } + forkSecondaryFinalizer(new Runnable() { private volatile boolean running; public void run() { if (running) return; + final JavaLangAccess jla = SharedSecrets.getJavaLangAccess(); running = true; for (;;) { Finalizer f = (Finalizer)queue.poll(); if (f == null) break; - f.runFinalizer(); + f.runFinalizer(jla); } } }); @@ -158,11 +161,16 @@ /* Invoked by java.lang.Shutdown */ static void runAllFinalizers() { + if (!VM.isBooted()) { + return; + } + forkSecondaryFinalizer(new Runnable() { private volatile boolean running; public void run() { if (running) return; + final JavaLangAccess jla = SharedSecrets.getJavaLangAccess(); running = true; for (;;) { Finalizer f; @@ -171,7 +179,7 @@ if (f == null) break; unfinalized = f.next; } - f.runFinalizer(); + f.runFinalizer(jla); }}}); } @@ -183,13 +191,25 @@ public void run() { if (running) return; + + // Finalizer thread starts before System.initializeSystemClass + // is called. Wait until JavaLangAccess is available + while (!VM.isBooted()) { + // delay until VM completes initialization + try { + VM.awaitBooted(); + } catch (InterruptedException x) { + // ignore and continue + } + } + final JavaLangAccess jla = SharedSecrets.getJavaLangAccess(); running = true; for (;;) { try { Finalizer f = (Finalizer)queue.remove(); - f.runFinalizer(); + f.runFinalizer(jla); } catch (InterruptedException x) { - continue; + // ignore and continue } } }
--- a/src/share/classes/java/lang/reflect/Executable.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/lang/reflect/Executable.java Fri Nov 15 07:14:23 2013 -0800 @@ -240,6 +240,7 @@ * declared or implicitly declared or neither) for the executable * represented by this object. * + * @since 1.8 * @return The number of formal parameters for the executable this * object represents */ @@ -290,6 +291,7 @@ * have unique names, or names that are legal identifiers in the * Java programming language (JLS 3.8). * + * @since 1.8 * @throws MalformedParametersException if the class file contains * a MethodParameters attribute that is improperly formatted. * @return an array of {@code Parameter} objects representing all
--- a/src/share/classes/java/lang/reflect/Proxy.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/lang/reflect/Proxy.java Fri Nov 15 07:14:23 2013 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -494,9 +494,10 @@ private final int hash; private final WeakReference<Class<?>>[] refs; + @SuppressWarnings("unchecked") KeyX(Class<?>[] interfaces) { hash = Arrays.hashCode(interfaces); - refs = new WeakReference[interfaces.length]; + refs = (WeakReference<Class<?>>[])new WeakReference<?>[interfaces.length]; for (int i = 0; i < interfaces.length; i++) { refs[i] = new WeakReference<>(interfaces[i]); }
--- a/src/share/classes/java/net/HostPortrange.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/net/HostPortrange.java Fri Nov 15 07:14:23 2013 -0800 @@ -114,7 +114,7 @@ if (hoststr.equals("*")) { hoststr = ""; } else if (hoststr.startsWith("*.")) { - hoststr = hoststr.substring(1).toLowerCase(); // leave the '.' ? + hoststr = toLowerCase(hoststr.substring(1)); } else { throw new IllegalArgumentException("invalid host wildcard specification"); } @@ -147,7 +147,7 @@ hoststr = sb.toString(); } else { // regular domain name - hoststr = hoststr.toLowerCase(); + hoststr = toLowerCase(hoststr); } } } @@ -161,6 +161,38 @@ } } + static final int CASE_DIFF = 'A' - 'a'; + + /** + * Convert to lower case, and check that all chars are ascii + * alphanumeric, '-' or '.' only. + */ + static String toLowerCase(String s) { + int len = s.length(); + StringBuilder sb = null; + + for (int i=0; i<len; i++) { + char c = s.charAt(i); + if ((c >= 'a' && c <= 'z') || (c == '.')) { + if (sb != null) + sb.append(c); + } else if ((c >= '0' && c <= '9') || (c == '-')) { + if (sb != null) + sb.append(c); + } else if (c >= 'A' && c <= 'Z') { + if (sb == null) { + sb = new StringBuilder(len); + sb.append(s, 0, i); + } + sb.append((char)(c - CASE_DIFF)); + } else { + throw new IllegalArgumentException("Invalid characters in hostname"); + } + } + return sb == null ? s : sb.toString(); + } + + public boolean literal() { return literal; }
--- a/src/share/classes/java/net/InetAddress.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/net/InetAddress.java Fri Nov 15 07:14:23 2013 -0800 @@ -1135,7 +1135,7 @@ // see if it is IPv4 address addr = IPAddressUtil.textToNumericFormatV4(host); if (addr == null) { - // see if it is IPv6 address + // This is supposed to be an IPv6 literal // Check if a numeric or string zone id is present int pos; if ((pos=host.indexOf ("%")) != -1) { @@ -1144,7 +1144,9 @@ ifname = host.substring (pos+1); } } - addr = IPAddressUtil.textToNumericFormatV6(host); + if ((addr = IPAddressUtil.textToNumericFormatV6(host)) == null && host.contains(":")) { + throw new UnknownHostException(host + ": invalid IPv6 address"); + } } else if (ipv6Expected) { // Means an IPv4 litteral between brackets! throw new UnknownHostException("["+host+"]"); @@ -1162,10 +1164,10 @@ } return ret; } - } else if (ipv6Expected) { - // We were expecting an IPv6 Litteral, but got something else - throw new UnknownHostException("["+host+"]"); - } + } else if (ipv6Expected) { + // We were expecting an IPv6 Litteral, but got something else + throw new UnknownHostException("["+host+"]"); + } return getAllByName0(host, reqAddr, true); }
--- a/src/share/classes/java/net/URLPermission.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/net/URLPermission.java Fri Nov 15 07:14:23 2013 -0800 @@ -426,7 +426,10 @@ this.ssp = url.substring(delim + 1); if (!ssp.startsWith("//")) { - this.authority = new Authority(scheme, ssp.toLowerCase()); + if (!ssp.equals("*")) { + throw new IllegalArgumentException("invalid URL string"); + } + this.authority = new Authority(scheme, "*"); return; } String authpath = ssp.substring(2);
--- a/src/share/classes/java/nio/file/TempFileHelper.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/nio/file/TempFileHelper.java Fri Nov 15 07:14:23 2013 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -81,7 +81,7 @@ String prefix, String suffix, boolean createDirectory, - FileAttribute[] attrs) + FileAttribute<?>[] attrs) throws IOException { if (prefix == null) @@ -155,7 +155,7 @@ static Path createTempFile(Path dir, String prefix, String suffix, - FileAttribute[] attrs) + FileAttribute<?>[] attrs) throws IOException { return create(dir, prefix, suffix, false, attrs); @@ -167,7 +167,7 @@ */ static Path createTempDirectory(Path dir, String prefix, - FileAttribute[] attrs) + FileAttribute<?>[] attrs) throws IOException { return create(dir, prefix, null, true, attrs);
--- a/src/share/classes/java/time/format/DateTimeParseContext.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/time/format/DateTimeParseContext.java Fri Nov 15 07:14:23 2013 -0800 @@ -369,7 +369,8 @@ Objects.requireNonNull(chrono, "chrono"); currentParsed().chrono = chrono; if (chronoListeners != null && !chronoListeners.isEmpty()) { - Consumer[] tmp = new Consumer[1]; + @SuppressWarnings({"rawtypes", "unchecked"}) + Consumer<Chronology>[] tmp = new Consumer[1]; Consumer<Chronology>[] listeners = chronoListeners.toArray(tmp); chronoListeners.clear(); for (Consumer<Chronology> l : listeners) {
--- a/src/share/classes/java/time/format/Parsed.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/time/format/Parsed.java Fri Nov 15 07:14:23 2013 -0800 @@ -266,14 +266,14 @@ TemporalAccessor resolvedObject = targetField.resolve(fieldValues, this, resolverStyle); if (resolvedObject != null) { if (resolvedObject instanceof ChronoZonedDateTime) { - ChronoZonedDateTime czdt = (ChronoZonedDateTime) resolvedObject; + ChronoZonedDateTime<?> czdt = (ChronoZonedDateTime) resolvedObject; if (zone.equals(czdt.getZone()) == false) { throw new DateTimeException("ChronoZonedDateTime must use the effective parsed zone: " + zone); } resolvedObject = czdt.toLocalDateTime(); } if (resolvedObject instanceof ChronoLocalDateTime) { - ChronoLocalDateTime cldt = (ChronoLocalDateTime) resolvedObject; + ChronoLocalDateTime<?> cldt = (ChronoLocalDateTime) resolvedObject; updateCheckConflict(cldt.toLocalTime(), Period.ZERO); updateCheckConflict(cldt.toLocalDate()); changedCount++;
--- a/src/share/classes/java/util/Base64.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/util/Base64.java Fri Nov 15 07:14:23 2013 -0800 @@ -138,7 +138,7 @@ if (lineLength <= 0) { return Encoder.RFC4648; } - return new Encoder(false, lineSeparator, lineLength >> 2 << 2); + return new Encoder(false, lineSeparator, lineLength >> 2 << 2, true); } /** @@ -192,11 +192,13 @@ private final byte[] newline; private final int linemax; private final boolean isURL; + private final boolean doPadding; - private Encoder(boolean isURL, byte[] newline, int linemax) { + private Encoder(boolean isURL, byte[] newline, int linemax, boolean doPadding) { this.isURL = isURL; this.newline = newline; this.linemax = linemax; + this.doPadding = doPadding; } /** @@ -228,9 +230,22 @@ private static final int MIMELINEMAX = 76; private static final byte[] CRLF = new byte[] {'\r', '\n'}; - static final Encoder RFC4648 = new Encoder(false, null, -1); - static final Encoder RFC4648_URLSAFE = new Encoder(true, null, -1); - static final Encoder RFC2045 = new Encoder(false, CRLF, MIMELINEMAX); + static final Encoder RFC4648 = new Encoder(false, null, -1, true); + static final Encoder RFC4648_URLSAFE = new Encoder(true, null, -1, true); + static final Encoder RFC2045 = new Encoder(false, CRLF, MIMELINEMAX, true); + + private final int outLength(int srclen) { + int len = 0; + if (doPadding) { + len = 4 * ((srclen + 2) / 3); + } else { + int n = srclen % 3; + len = 4 * (srclen / 3) + (n == 0 ? 0 : n + 1); + } + if (linemax > 0) // line separators + len += (len - 1) / linemax * newline.length; + return len; + } /** * Encodes all bytes from the specified byte array into a newly-allocated @@ -243,9 +258,7 @@ * encoded bytes. */ public byte[] encode(byte[] src) { - int len = 4 * ((src.length + 2) / 3); // dst array size - if (linemax > 0) // line separators - len += (len - 1) / linemax * newline.length; + int len = outLength(src.length); // dst array size byte[] dst = new byte[len]; int ret = encode0(src, 0, src.length, dst); if (ret != dst.length) @@ -273,10 +286,7 @@ * space for encoding all input bytes. */ public int encode(byte[] src, byte[] dst) { - int len = 4 * ((src.length + 2) / 3); // dst array size - if (linemax > 0) { - len += (len - 1) / linemax * newline.length; - } + int len = outLength(src.length); // dst array size if (dst.length < len) throw new IllegalArgumentException( "Output byte array is too small for encoding all input bytes"); @@ -321,9 +331,7 @@ * @return A newly-allocated byte buffer containing the encoded bytes. */ public ByteBuffer encode(ByteBuffer buffer) { - int len = 4 * ((buffer.remaining() + 2) / 3); - if (linemax > 0) - len += (len - 1) / linemax * newline.length; + int len = outLength(buffer.remaining()); byte[] dst = new byte[len]; int ret = 0; if (buffer.hasArray()) { @@ -415,7 +423,25 @@ public OutputStream wrap(OutputStream os) { Objects.requireNonNull(os); return new EncOutputStream(os, isURL ? toBase64URL : toBase64, - newline, linemax); + newline, linemax, doPadding); + } + + /** + * Returns an encoder instance that encodes equivalently to this one, + * but without adding any padding character at the end of the encoded + * byte data. + * + * <p> The encoding scheme of this encoder instance is unaffected by + * this invocation. The returned encoder instance should be used for + * non-padding encoding operation. + * + * @return an equivalent encoder that encodes without adding any + * padding character at the end + */ + public Encoder withoutPadding() { + if (!doPadding) + return this; + return new Encoder(isURL, newline, linemax, false); } private int encodeArray(ByteBuffer src, ByteBuffer dst, int bytesOut) { @@ -476,13 +502,17 @@ da[dp++] = (byte)base64[b0 >> 2]; if (sp == sl) { da[dp++] = (byte)base64[(b0 << 4) & 0x3f]; - da[dp++] = '='; - da[dp++] = '='; + if (doPadding) { + da[dp++] = '='; + da[dp++] = '='; + } } else { int b1 = sa[sp++] & 0xff; da[dp++] = (byte)base64[(b0 << 4) & 0x3f | (b1 >> 4)]; da[dp++] = (byte)base64[(b1 << 2) & 0x3f]; - da[dp++] = '='; + if (doPadding) { + da[dp++] = '='; + } } } return dp - dp00 + bytesOut; @@ -548,13 +578,17 @@ dst.put(dp++, (byte)base64[b0 >> 2]); if (sp == src.limit()) { dst.put(dp++, (byte)base64[(b0 << 4) & 0x3f]); - dst.put(dp++, (byte)'='); - dst.put(dp++, (byte)'='); + if (doPadding) { + dst.put(dp++, (byte)'='); + dst.put(dp++, (byte)'='); + } } else { int b1 = src.get(sp++) & 0xff; dst.put(dp++, (byte)base64[(b0 << 4) & 0x3f | (b1 >> 4)]); dst.put(dp++, (byte)base64[(b1 << 2) & 0x3f]); - dst.put(dp++, (byte)'='); + if (doPadding) { + dst.put(dp++, (byte)'='); + } } } return dp - dp00 + bytesOut; @@ -597,13 +631,17 @@ dst[dp++] = (byte)base64[b0 >> 2]; if (sp == end) { dst[dp++] = (byte)base64[(b0 << 4) & 0x3f]; - dst[dp++] = '='; - dst[dp++] = '='; + if (doPadding) { + dst[dp++] = '='; + dst[dp++] = '='; + } } else { int b1 = src[sp++] & 0xff; dst[dp++] = (byte)base64[(b0 << 4) & 0x3f | (b1 >> 4)]; dst[dp++] = (byte)base64[(b1 << 2) & 0x3f]; - dst[dp++] = '='; + if (doPadding) { + dst[dp++] = '='; + } } } return dp; @@ -1149,14 +1187,16 @@ private final char[] base64; // byte->base64 mapping private final byte[] newline; // line separator, if needed private final int linemax; + private final boolean doPadding;// whether or not to pad private int linepos = 0; - EncOutputStream(OutputStream os, - char[] base64, byte[] newline, int linemax) { + EncOutputStream(OutputStream os, char[] base64, + byte[] newline, int linemax, boolean doPadding) { super(os); this.base64 = base64; this.newline = newline; this.linemax = linemax; + this.doPadding = doPadding; } @Override @@ -1228,14 +1268,18 @@ checkNewline(); out.write(base64[b0 >> 2]); out.write(base64[(b0 << 4) & 0x3f]); - out.write('='); - out.write('='); + if (doPadding) { + out.write('='); + out.write('='); + } } else if (leftover == 2) { checkNewline(); out.write(base64[b0 >> 2]); out.write(base64[(b0 << 4) & 0x3f | (b1 >> 4)]); out.write(base64[(b1 << 2) & 0x3f]); - out.write('='); + if (doPadding) { + out.write('='); + } } leftover = 0; out.close();
--- a/src/share/classes/java/util/IdentityHashMap.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/util/IdentityHashMap.java Fri Nov 15 07:14:23 2013 -0800 @@ -1243,7 +1243,7 @@ if (ti >= size) { throw new ConcurrentModificationException(); } - a[ti++] = (T) new AbstractMap.SimpleEntry(unmaskNull(key), tab[si + 1]); + a[ti++] = (T) new AbstractMap.SimpleEntry<>(unmaskNull(key), tab[si + 1]); } } // fewer elements than expected or concurrent modification from other thread detected
--- a/src/share/classes/java/util/concurrent/ForkJoinPool.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/util/concurrent/ForkJoinPool.java Fri Nov 15 07:14:23 2013 -0800 @@ -1820,7 +1820,7 @@ } } for (;;) { // help stealer or descend to its stealer - ForkJoinTask[] a; int b; + ForkJoinTask<?>[] a; int b; if (subtask.status < 0) // surround probes with continue restart; // consistency checks if ((b = v.base) - v.top < 0 && (a = v.array) != null) {
--- a/src/share/classes/java/util/concurrent/ScheduledThreadPoolExecutor.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/util/concurrent/ScheduledThreadPoolExecutor.java Fri Nov 15 07:14:23 2013 -0800 @@ -1253,11 +1253,11 @@ * Snapshot iterator that works off copy of underlying q array. */ private class Itr implements Iterator<Runnable> { - final RunnableScheduledFuture[] array; + final RunnableScheduledFuture<?>[] array; int cursor = 0; // index of next element to return int lastRet = -1; // index of last element, or -1 if no such - Itr(RunnableScheduledFuture[] array) { + Itr(RunnableScheduledFuture<?>[] array) { this.array = array; }
--- a/src/share/classes/java/util/logging/Logger.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/util/logging/Logger.java Fri Nov 15 07:14:23 2013 -0800 @@ -351,7 +351,7 @@ ? caller.getClassLoader() : null); if (callersClassLoader != null) { - this.callersClassLoaderRef = new WeakReference(callersClassLoader); + this.callersClassLoaderRef = new WeakReference<>(callersClassLoader); } }
--- a/src/share/classes/java/util/logging/Logging.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/util/logging/Logging.java Fri Nov 15 07:14:23 2013 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -55,11 +55,11 @@ } public List<String> getLoggerNames() { - Enumeration loggers = logManager.getLoggerNames(); + Enumeration<String> loggers = logManager.getLoggerNames(); ArrayList<String> array = new ArrayList<>(); for (; loggers.hasMoreElements();) { - array.add((String) loggers.nextElement()); + array.add(loggers.nextElement()); } return array; }
--- a/src/share/classes/java/util/regex/Pattern.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/java/util/regex/Pattern.java Fri Nov 15 07:14:23 2013 -0800 @@ -1142,10 +1142,15 @@ * input sequence that is terminated by another subsequence that matches * this pattern or is terminated by the end of the input sequence. The * substrings in the array are in the order in which they occur in the - * input. If this pattern does not match any subsequence of the input then + * input. If this pattern does not match any subsequence of the input then * the resulting array has just one element, namely the input sequence in * string form. * + * <p> When there is a positive-width match at the beginning of the input + * sequence then an empty leading substring is included at the beginning + * of the resulting array. A zero-width match at the beginning however + * never produces such empty leading substring. + * * <p> The <tt>limit</tt> parameter controls the number of times the * pattern is applied and therefore affects the length of the resulting * array. If the limit <i>n</i> is greater than zero then the pattern @@ -1185,7 +1190,6 @@ * <td><tt>{ "b", "", ":and:f" }</tt></td></tr> * </table></blockquote> * - * * @param input * The character sequence to be split * @@ -1204,6 +1208,11 @@ // Add segments before each match found while(m.find()) { if (!matchLimited || matchList.size() < limit - 1) { + if (index == 0 && index == m.start() && m.start() == m.end()) { + // no empty leading substring included for zero-width match + // at the beginning of the input char sequence. + continue; + } String match = input.subSequence(index, m.start()).toString(); matchList.add(match); index = m.end(); @@ -5755,13 +5764,18 @@ * input sequence that is terminated by another subsequence that matches * this pattern or is terminated by the end of the input sequence. The * substrings in the stream are in the order in which they occur in the - * input. Trailing empty strings will be discarded and not encountered in + * input. Trailing empty strings will be discarded and not encountered in * the stream. * * <p> If this pattern does not match any subsequence of the input then * the resulting stream has just one element, namely the input sequence in * string form. * + * <p> When there is a positive-width match at the beginning of the input + * sequence then an empty leading substring is included at the beginning + * of the stream. A zero-width match at the beginning however never produces + * such empty leading substring. + * * <p> If the input sequence is mutable, it must remain constant during the * execution of the terminal stream operation. Otherwise, the result of the * terminal stream operation is undefined. @@ -5817,7 +5831,8 @@ current = matcher.end(); if (!nextElement.isEmpty()) { return true; - } else { + } else if (current > 0) { // no empty leading substring for zero-width + // match at the beginning of the input emptyElementCount++; } }
--- a/src/share/classes/javax/management/AttributeList.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/AttributeList.java Fri Nov 15 07:14:23 2013 -0800 @@ -178,8 +178,8 @@ /** * Inserts the attribute specified as an element at the position specified. * Elements with an index greater than or equal to the current position are - * shifted up. If the index is out of range (index < 0 || index > - * size()) a RuntimeOperationsException should be raised, wrapping the + * shifted up. If the index is out of range {@literal (index < 0 || index > + * size())} a RuntimeOperationsException should be raised, wrapping the * java.lang.IndexOutOfBoundsException thrown. * * @param object The <CODE>Attribute</CODE> object to be inserted. @@ -199,7 +199,7 @@ /** * Sets the element at the position specified to be the attribute specified. * The previous element at that position is discarded. If the index is - * out of range (index < 0 || index > size() a RuntimeOperationsException + * out of range {@literal (index < 0 || index > size())} a RuntimeOperationsException * should be raised, wrapping the java.lang.IndexOutOfBoundsException thrown. * * @param object The value to which the attribute element should be set. @@ -234,7 +234,7 @@ * Inserts all of the elements in the <CODE>AttributeList</CODE> specified * into this list, starting at the specified position, in the order in which * they are returned by the Iterator of the {@code AttributeList} specified. - * If the index is out of range (index < 0 || index > size() a + * If the index is out of range {@literal (index < 0 || index > size())} a * RuntimeOperationsException should be raised, wrapping the * java.lang.IndexOutOfBoundsException thrown. *
--- a/src/share/classes/javax/management/BooleanValueExp.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/BooleanValueExp.java Fri Nov 15 07:14:23 2013 -0800 @@ -44,12 +44,12 @@ private boolean val = false; - /** Creates a new BooleanValueExp representing the boolean literal <val>.*/ + /** Creates a new BooleanValueExp representing the boolean literal {@code val}.*/ BooleanValueExp(boolean val) { this.val = val; } - /**Creates a new BooleanValueExp representing the Boolean object <val>.*/ + /**Creates a new BooleanValueExp representing the Boolean object {@code val}.*/ BooleanValueExp(Boolean val) { this.val = val.booleanValue(); }
--- a/src/share/classes/javax/management/Descriptor.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/Descriptor.java Fri Nov 15 07:14:23 2013 -0800 @@ -96,7 +96,7 @@ * of the mapped Java type, called <em>opendata</em>(J) in the <a * href="MXBean.html#mapping-rules">MXBean type mapping rules</a>.</p> * - * <table border="1" cellpadding="5"> + * <table border="1" cellpadding="5" summary="Descriptor Fields"> * * <tr><th>Name</th><th>Type</th><th>Used in</th><th>Meaning</th></tr> * @@ -330,7 +330,7 @@ * interest outside Model MBeans, for example. But only Model MBeans have * a predefined behavior for these fields.</p> * - * <table border="1" cellpadding="5"> + * <table border="1" cellpadding="5" summary="ModelMBean Fields"> * * <tr><th>Name</th><th>Type</th><th>Used in</th><th>Meaning</th></tr> *
--- a/src/share/classes/javax/management/DescriptorKey.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/DescriptorKey.java Fri Nov 15 07:14:23 2013 -0800 @@ -94,7 +94,7 @@ * <p>then the resulting {@code Descriptor} will contain the following * fields:</p> * - * <table border="2"> + * <table border="2" summary="Descriptor Fields"> * <tr><th>Name</th><th>Value</th></tr> * <tr><td>units</td><td>"bytes"</td></tr> * <tr><td>descriptionResourceKey</td><td>"bytes.key"</td></tr> @@ -143,7 +143,7 @@ * or an array of annotations. The value of the field is derived from * the value of the annotation element as follows:</p> * - * <table border="2"> + * <table border="2" summary="Descriptor Field Types"> * <tr><th>Annotation element</th><th>Descriptor field</th></tr> * <tr><td>Primitive value ({@code 5}, {@code false}, etc)</td> * <td>Wrapped value ({@code Integer.valueOf(5)},
--- a/src/share/classes/javax/management/ImmutableDescriptor.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/ImmutableDescriptor.java Fri Nov 15 07:14:23 2013 -0800 @@ -344,7 +344,7 @@ * the given object is also a Descriptor, and if the two Descriptors have * the same field names (possibly differing in case) and the same * associated values. The respective values for a field in the two - * Descriptors are equal if the following conditions hold:</p> + * Descriptors are equal if the following conditions hold: * * <ul> * <li>If one value is null then the other must be too.</li>
--- a/src/share/classes/javax/management/JMX.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/JMX.java Fri Nov 15 07:14:23 2013 -0800 @@ -217,8 +217,7 @@ } /** - * <p>Make a proxy for an MXBean in a local or remote - * MBean Server.</p> + * Make a proxy for an MXBean in a local or remote MBean Server. * * <p>If you have an MBean Server {@code mbs} containing an * MXBean with {@link ObjectName} {@code name}, and if the @@ -253,7 +252,7 @@ * <li><p>{@code proxy.setSimpleAttribute("whatever")} will result * in a call to {@code mbs.}{@link * MBeanServerConnection#setAttribute setAttribute}<code>(name, - * new Attribute("SimpleAttribute", "whatever"))</code>.<p> + * new Attribute("SimpleAttribute", "whatever"))</code>.</p> * * <p>Because {@code String} is a <em>simple type</em>, in the * sense of {@link javax.management.openmbean.SimpleType}, it
--- a/src/share/classes/javax/management/MBeanFeatureInfo.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/MBeanFeatureInfo.java Fri Nov 15 07:14:23 2013 -0800 @@ -162,7 +162,7 @@ * Serializes an {@link MBeanFeatureInfo} to an {@link ObjectOutputStream}. * @serialData * For compatibility reasons, an object of this class is serialized as follows. - * <ul> + * <p> * The method {@link ObjectOutputStream#defaultWriteObject defaultWriteObject()} * is called first to serialize the object except the field {@code descriptor} * which is declared as transient. The field {@code descriptor} is serialized @@ -180,7 +180,7 @@ * {@link ObjectOutputStream#writeObject writeObject(Object obj)} is called * to serialize directly the field {@code descriptor}. * </ul> - * </ul> + * * @since 1.6 */ private void writeObject(ObjectOutputStream out) throws IOException { @@ -206,7 +206,7 @@ * Deserializes an {@link MBeanFeatureInfo} from an {@link ObjectInputStream}. * @serialData * For compatibility reasons, an object of this class is deserialized as follows. - * <ul> + * <p> * The method {@link ObjectInputStream#defaultReadObject defaultReadObject()} * is called first to deserialize the object except the field * {@code descriptor}, which is not serialized in the default way. Then the method @@ -228,7 +228,7 @@ * to {@link ImmutableDescriptor#EMPTY_DESCRIPTOR EMPTY_DESCRIPTOR}</li> * <li>Any other value. A {@link StreamCorruptedException} is thrown.</li> * </ul> - * </ul> + * * @since 1.6 */ private void readObject(ObjectInputStream in)
--- a/src/share/classes/javax/management/MBeanInfo.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/MBeanInfo.java Fri Nov 15 07:14:23 2013 -0800 @@ -619,7 +619,7 @@ * Serializes an {@link MBeanInfo} to an {@link ObjectOutputStream}. * @serialData * For compatibility reasons, an object of this class is serialized as follows. - * <ul> + * <p> * The method {@link ObjectOutputStream#defaultWriteObject defaultWriteObject()} * is called first to serialize the object except the field {@code descriptor} * which is declared as transient. The field {@code descriptor} is serialized @@ -637,7 +637,7 @@ * {@link ObjectOutputStream#writeObject writeObject(Object obj)} is called * to serialize the field {@code descriptor} directly. * </ul> - * </ul> + * * @since 1.6 */ private void writeObject(ObjectOutputStream out) throws IOException { @@ -661,7 +661,7 @@ * Deserializes an {@link MBeanInfo} from an {@link ObjectInputStream}. * @serialData * For compatibility reasons, an object of this class is deserialized as follows. - * <ul> + * <p> * The method {@link ObjectInputStream#defaultReadObject defaultReadObject()} * is called first to deserialize the object except the field * {@code descriptor}, which is not serialized in the default way. Then the method @@ -683,7 +683,7 @@ * {@link ImmutableDescriptor#EMPTY_DESCRIPTOR EMPTY_DESCRIPTOR}.</li> * <li>Any other value. A {@link StreamCorruptedException} is thrown.</li> * </ul> - * </ul> + * * @since 1.6 */
--- a/src/share/classes/javax/management/MBeanServer.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/MBeanServer.java Fri Nov 15 07:14:23 2013 -0800 @@ -244,7 +244,6 @@ * the caller's permissions must imply {@link * MBeanPermission#MBeanPermission(String,String,ObjectName,String) * MBeanPermission(className, null, name, "unregisterMBean")}.</p> - * </p> * * </ul> *
--- a/src/share/classes/javax/management/MBeanServerConnection.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/MBeanServerConnection.java Fri Nov 15 07:14:23 2013 -0800 @@ -627,7 +627,7 @@ * for that attribute, although this is not guaranteed to work. (For * example, the values of two attributes may have been rejected because * they were inconsistent with each other. Setting one of them alone might - * be allowed.)<p> + * be allowed.) * * <p>Here is an example of calling this method and checking that it * succeeded in setting all the requested attributes:</p>
--- a/src/share/classes/javax/management/MBeanServerNotification.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/MBeanServerNotification.java Fri Nov 15 07:14:23 2013 -0800 @@ -86,7 +86,7 @@ * be set to an array of ObjectNames containing the names of all MBeans * being registered or unregistered.</li> * </ul> - * </p> + * * <p> * MBeans which emit these group registration/unregistration notifications will * declare them in their {@link MBeanInfo#getNotifications()
--- a/src/share/classes/javax/management/MXBean.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/MXBean.java Fri Nov 15 07:14:23 2013 -0800 @@ -79,7 +79,7 @@ public interface MisleadingMXBean {} </pre> - <h3 id="MXBean-spec">MXBean specification</a></h3> + <h3 id="MXBean-spec">MXBean specification</h3> <p>The MXBean concept provides a simple way to code an MBean that only references a predefined set of types, the ones defined @@ -93,7 +93,7 @@ Standard MBean concept. Here is how a managed object might be represented as a Standard MBean, and as an MXBean:</p> - <table border="1" cellpadding="5"> + <table border="1" cellpadding="5" summary="Standard Bean vs. MXBean"> <tr> <th>Standard MBean</th><th>MXBean</th> </tr> @@ -133,7 +133,7 @@ <p>So, we might define <code>MemoryUsage</code> like this:</p> - <table border="1" cellpadding="5"> + <table border="1" cellpadding="5" summary="Standard Bean vs. MXBean"> <tr> <th>Standard MBean</th><th>MXBean</th> </tr> @@ -195,7 +195,7 @@ <p>This becomes clearer if we compare what the clients of the two models might look like:</p> - <table border="1" cellpadding="5"> + <table border="1" cellpadding="5" summary="Standard Bean vs. MXBean"> <tr> <th>Standard MBean</th><th>MXBean</th> </tr> @@ -232,7 +232,7 @@ managed objects when you know the model beforehand, regardless of whether you are using Standard MBeans or MXBeans:</p> - <table border="1" cellpadding="5"> + <table border="1" cellpadding="5" summary="Standard Bean vs. MXBean"> <tr> <th>Standard MBean</th><th>MXBean</th> </tr> @@ -265,7 +265,7 @@ <p>Implementing the MemoryPool object works similarly for both Standard MBeans and MXBeans.</p> - <table border="1" cellpadding="5"> + <table border="1" cellpadding="5" summary="Standard Bean vs. MXBean"> <tr> <th>Standard MBean</th><th>MXBean</th> </tr> @@ -292,7 +292,7 @@ <p>Registering the MBean in the MBean Server works in the same way in both cases:</p> - <table border="1" cellpadding="5"> + <table border="1" cellpadding="5" summary="Standard Bean vs. MXBean"> <tr> <th>Standard MBean</th><th>MXBean</th> </tr> @@ -478,13 +478,13 @@ <p>The following table summarizes the type mapping rules.</p> - <table border="1" cellpadding="5"> + <table border="1" cellpadding="5" summary="Type Mapping Rules"> <tr> <th>Java type <em>J</em></th> <th><em>opentype(J)</em></th> <th><em>opendata(J)</em></th> </tr> - <tbody cellvalign="top"> + <tbody valign="top"> <tr> <td>{@code int}, {@code boolean}, etc<br> (the 8 primitive Java types)</td> @@ -785,7 +785,7 @@ </blockquote> then the item in the {@code CompositeType} is called {@code name} - and has type {@code SimpleType.BOOLEAN}.</p> + and has type {@code SimpleType.BOOLEAN}. <p>Notice that the first character (or code point) is converted to lower case. This follows the Java Beans convention, which for
--- a/src/share/classes/javax/management/NumericValueExp.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/NumericValueExp.java Fri Nov 15 07:14:23 2013 -0800 @@ -112,7 +112,7 @@ public NumericValueExp() { } - /** Creates a new NumericValue representing the numeric literal <val>.*/ + /** Creates a new NumericValue representing the numeric literal @{code val}.*/ NumericValueExp(Number val) { this.val = val;
--- a/src/share/classes/javax/management/ObjectName.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/ObjectName.java Fri Nov 15 07:14:23 2013 -0800 @@ -195,7 +195,7 @@ * represents an ObjectName with two keys. The name of each key * contains six characters, of which the first and last are spaces. * The value associated with the key <code>" key1 "</code> - * also begins and ends with a space.</p> + * also begins and ends with a space. * * <p>In addition to the restrictions on characters spelt out above, * no part of an ObjectName may contain a newline character @@ -665,7 +665,7 @@ * Construct an ObjectName from a domain and a Hashtable. * * @param domain Domain of the ObjectName. - * @param props Map containing couples <i>key</i> -> <i>value</i>. + * @param props Map containing couples <i>key</i> {@literal ->} <i>value</i>. * * @exception MalformedObjectNameException The <code>domain</code> * contains an illegal character, or one of the keys or values in @@ -1549,7 +1549,7 @@ * <li>a comma and an * asterisk (<code>,*</code>) for an ObjectName that is a property * list pattern with at least one key. - * </ul></p> + * </ul> * * @return The canonical form of the name. */
--- a/src/share/classes/javax/management/PersistentMBean.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/PersistentMBean.java Fri Nov 15 07:14:23 2013 -0800 @@ -70,17 +70,19 @@ * <P> * Persistence policy from the MBean and attribute descriptor is used to guide execution * of this method. The MBean should be stored if 'persistPolicy' field is: - * <PRE> != "never" + * <PRE>{@literal != "never" * = "always" * = "onTimer" and now > 'lastPersistTime' + 'persistPeriod' * = "NoMoreOftenThan" and now > 'lastPersistTime' + 'persistPeriod' * = "onUnregister" - * <P> + * }</PRE> + * <p> * Do not store the MBean if 'persistPolicy' field is: + * <PRE>{@literal * = "never" * = "onUpdate" * = "onTimer" && now < 'lastPersistTime' + 'persistPeriod' - * <P></PRE> + * }</PRE> * * @exception MBeanException Wraps another exception or persistence is not supported * @exception RuntimeOperationsException Wraps exceptions from the persistence mechanism
--- a/src/share/classes/javax/management/Query.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/Query.java Fri Nov 15 07:14:23 2013 -0800 @@ -127,9 +127,9 @@ * @param q2 Another query expression. * * @return The conjunction of the two arguments. The returned object - * will be serialized as an instance of the non-public class {@link + * will be serialized as an instance of the non-public class * <a href="../../serialized-form.html#javax.management.AndQueryExp"> - * javax.management.AndQueryExp</a>}. + * javax.management.AndQueryExp</a>. */ public static QueryExp and(QueryExp q1, QueryExp q2) { return new AndQueryExp(q1, q2); @@ -143,9 +143,9 @@ * @param q2 Another query expression. * * @return The disjunction of the two arguments. The returned object - * will be serialized as an instance of the non-public class {@link + * will be serialized as an instance of the non-public class * <a href="../../serialized-form.html#javax.management.OrQueryExp"> - * javax.management.OrQueryExp</a>}. + * javax.management.OrQueryExp</a>. */ public static QueryExp or(QueryExp q1, QueryExp q2) { return new OrQueryExp(q1, q2); @@ -160,9 +160,9 @@ * * @return A "greater than" constraint on the arguments. The * returned object will be serialized as an instance of the - * non-public class {@link <a - * href="../../serialized-form.html#javax.management.BinaryRelQueryExp"> - * javax.management.BinaryRelQueryExp</a>} with a {@code relOp} equal + * non-public class + * <a href="../../serialized-form.html#javax.management.BinaryRelQueryExp"> + * javax.management.BinaryRelQueryExp</a> with a {@code relOp} equal * to {@link #GT}. */ public static QueryExp gt(ValueExp v1, ValueExp v2) { @@ -178,9 +178,9 @@ * * @return A "greater than or equal to" constraint on the * arguments. The returned object will be serialized as an - * instance of the non-public class {@link <a - * href="../../serialized-form.html#javax.management.BinaryRelQueryExp"> - * javax.management.BinaryRelQueryExp</a>} with a {@code relOp} equal + * instance of the non-public class + * <a href="../../serialized-form.html#javax.management.BinaryRelQueryExp"> + * javax.management.BinaryRelQueryExp</a> with a {@code relOp} equal * to {@link #GE}. */ public static QueryExp geq(ValueExp v1, ValueExp v2) { @@ -196,9 +196,9 @@ * * @return A "less than or equal to" constraint on the arguments. * The returned object will be serialized as an instance of the - * non-public class {@link <a - * href="../../serialized-form.html#javax.management.BinaryRelQueryExp"> - * javax.management.BinaryRelQueryExp</a>} with a {@code relOp} equal + * non-public class + * <a href="../../serialized-form.html#javax.management.BinaryRelQueryExp"> + * javax.management.BinaryRelQueryExp</a> with a {@code relOp} equal * to {@link #LE}. */ public static QueryExp leq(ValueExp v1, ValueExp v2) { @@ -214,9 +214,9 @@ * * @return A "less than" constraint on the arguments. The * returned object will be serialized as an instance of the - * non-public class {@link <a - * href="../../serialized-form.html#javax.management.BinaryRelQueryExp"> - * javax.management.BinaryRelQueryExp</a>} with a {@code relOp} equal + * non-public class + * <a href="../../serialized-form.html#javax.management.BinaryRelQueryExp"> + * javax.management.BinaryRelQueryExp</a> with a {@code relOp} equal * to {@link #LT}. */ public static QueryExp lt(ValueExp v1, ValueExp v2) { @@ -232,9 +232,9 @@ * * @return A "equal to" constraint on the arguments. The * returned object will be serialized as an instance of the - * non-public class {@link <a - * href="../../serialized-form.html#javax.management.BinaryRelQueryExp"> - * javax.management.BinaryRelQueryExp</a>} with a {@code relOp} equal + * non-public class + * <a href="../../serialized-form.html#javax.management.BinaryRelQueryExp"> + * javax.management.BinaryRelQueryExp</a> with a {@code relOp} equal * to {@link #EQ}. */ public static QueryExp eq(ValueExp v1, ValueExp v2) { @@ -251,9 +251,9 @@ * * @return The constraint that v1 lies between v2 and v3. The * returned object will be serialized as an instance of the - * non-public class {@link <a - * href="../../serialized-form.html#javax.management.BetweenQueryExp"> - * javax.management.BetweenQueryExp</a>}. + * non-public class + * <a href="../../serialized-form.html#javax.management.BetweenQueryExp"> + * javax.management.BetweenQueryExp</a>. */ public static QueryExp between(ValueExp v1, ValueExp v2, ValueExp v3) { return new BetweenQueryExp(v1, v2, v3); @@ -279,9 +279,9 @@ * * @return A query expression that represents the matching * constraint on the string argument. The returned object will - * be serialized as an instance of the non-public class {@link <a - * href="../../serialized-form.html#javax.management.MatchQueryExp"> - * javax.management.MatchQueryExp</a>}. + * be serialized as an instance of the non-public class + * <a href="../../serialized-form.html#javax.management.MatchQueryExp"> + * javax.management.MatchQueryExp</a>. */ public static QueryExp match(AttributeValueExp a, StringValueExp s) { return new MatchQueryExp(a, s); @@ -319,9 +319,9 @@ * * @return An attribute expression for the attribute named name. * The returned object will be serialized as an instance of the - * non-public class {@link <a - * href="../../serialized-form.html#javax.management.QualifiedAttributeValueExp"> - * javax.management.QualifiedAttributeValueExp</a>}. + * non-public class + * <a href="../../serialized-form.html#javax.management.QualifiedAttributeValueExp"> + * javax.management.QualifiedAttributeValueExp</a>. */ public static AttributeValueExp attr(String className, String name) { return new QualifiedAttributeValueExp(className, name); @@ -338,9 +338,8 @@ * * @return A class attribute expression. The returned object * will be serialized as an instance of the non-public class - * {@link <a - * href="../../serialized-form.html#javax.management.ClassAttributeValueExp"> - * javax.management.ClassAttributeValueExp</a>}. + * <a href="../../serialized-form.html#javax.management.ClassAttributeValueExp"> + * javax.management.ClassAttributeValueExp</a>. */ public static AttributeValueExp classattr() { return new ClassAttributeValueExp(); @@ -352,9 +351,9 @@ * @param queryExp The constraint to negate. * * @return A negated constraint. The returned object will be - * serialized as an instance of the non-public class {@link <a - * href="../../serialized-form.html#javax.management.NotQueryExp"> - * javax.management.NotQueryExp</a>}. + * serialized as an instance of the non-public class + * <a href="../../serialized-form.html#javax.management.NotQueryExp"> + * javax.management.NotQueryExp</a>. */ public static QueryExp not(QueryExp queryExp) { return new NotQueryExp(queryExp); @@ -368,9 +367,9 @@ * * @return A QueryExp that represents the constraint. The * returned object will be serialized as an instance of the - * non-public class {@link <a - * href="../../serialized-form.html#javax.management.InQueryExp"> - * javax.management.InQueryExp</a>}. + * non-public class + * <a href="../../serialized-form.html#javax.management.InQueryExp"> + * javax.management.InQueryExp</a>. */ public static QueryExp in(ValueExp val, ValueExp valueList[]) { return new InQueryExp(val, valueList); @@ -395,9 +394,9 @@ * * @return A ValueExp object containing the argument. The * returned object will be serialized as an instance of the - * non-public class {@link <a - * href="../../serialized-form.html#javax.management.NumericValueExp"> - * javax.management.NumericValueExp</a>}. + * non-public class + * <a href="../../serialized-form.html#javax.management.NumericValueExp"> + * javax.management.NumericValueExp</a>. */ public static ValueExp value(Number val) { return new NumericValueExp(val); @@ -411,9 +410,9 @@ * * @return A ValueExp object containing the argument. The * returned object will be serialized as an instance of the - * non-public class {@link <a - * href="../../serialized-form.html#javax.management.NumericValueExp"> - * javax.management.NumericValueExp</a>}. + * non-public class + * <a href="../../serialized-form.html#javax.management.NumericValueExp"> + * javax.management.NumericValueExp</a>. */ public static ValueExp value(int val) { return new NumericValueExp((long) val); @@ -427,9 +426,9 @@ * * @return A ValueExp object containing the argument. The * returned object will be serialized as an instance of the - * non-public class {@link <a - * href="../../serialized-form.html#javax.management.NumericValueExp"> - * javax.management.NumericValueExp</a>}. + * non-public class + * <a href="../../serialized-form.html#javax.management.NumericValueExp"> + * javax.management.NumericValueExp</a>. */ public static ValueExp value(long val) { return new NumericValueExp(val); @@ -443,9 +442,9 @@ * * @return A ValueExp object containing the argument. The * returned object will be serialized as an instance of the - * non-public class {@link <a - * href="../../serialized-form.html#javax.management.NumericValueExp"> - * javax.management.NumericValueExp</a>}. + * non-public class + * <a href="../../serialized-form.html#javax.management.NumericValueExp"> + * javax.management.NumericValueExp</a>. */ public static ValueExp value(float val) { return new NumericValueExp((double) val); @@ -459,9 +458,9 @@ * * @return A ValueExp object containing the argument. The * returned object will be serialized as an instance of the - * non-public class {@link <a - * href="../../serialized-form.html#javax.management.NumericValueExp"> - * javax.management.NumericValueExp</a>}. + * non-public class + * <a href="../../serialized-form.html#javax.management.NumericValueExp"> + * javax.management.NumericValueExp</a>. */ public static ValueExp value(double val) { return new NumericValueExp(val); @@ -475,9 +474,9 @@ * * @return A ValueExp object containing the argument. The * returned object will be serialized as an instance of the - * non-public class {@link <a - * href="../../serialized-form.html#javax.management.BooleanValueExp"> - * javax.management.BooleanValueExp</a>}. + * non-public class + * <a href="../../serialized-form.html#javax.management.BooleanValueExp"> + * javax.management.BooleanValueExp</a>. */ public static ValueExp value(boolean val) { return new BooleanValueExp(val); @@ -492,9 +491,9 @@ * * @return A ValueExp representing the sum or concatenation of * the two arguments. The returned object will be serialized as - * an instance of the non-public class {@link <a - * href="../../serialized-form.html#javax.management.BinaryOpValueExp"> - * javax.management.BinaryOpValueExp</a>} with an {@code op} equal to + * an instance of the non-public class + * <a href="../../serialized-form.html#javax.management.BinaryOpValueExp"> + * javax.management.BinaryOpValueExp</a> with an {@code op} equal to * {@link #PLUS}. */ public static ValueExp plus(ValueExp value1, ValueExp value2) { @@ -510,9 +509,9 @@ * * @return A ValueExp representing the product. The returned * object will be serialized as an instance of the non-public - * class {@link <a - * href="../../serialized-form.html#javax.management.BinaryOpValueExp"> - * javax.management.BinaryOpValueExp</a>} with an {@code op} equal to + * class + * <a href="../../serialized-form.html#javax.management.BinaryOpValueExp"> + * javax.management.BinaryOpValueExp</a> with an {@code op} equal to * {@link #TIMES}. */ public static ValueExp times(ValueExp value1,ValueExp value2) { @@ -528,9 +527,9 @@ * * @return A ValueExp representing the difference between two * arguments. The returned object will be serialized as an - * instance of the non-public class {@link <a - * href="../../serialized-form.html#javax.management.BinaryOpValueExp"> - * javax.management.BinaryOpValueExp</a>} with an {@code op} equal to + * instance of the non-public class + * <a href="../../serialized-form.html#javax.management.BinaryOpValueExp"> + * javax.management.BinaryOpValueExp</a> with an {@code op} equal to * {@link #MINUS}. */ public static ValueExp minus(ValueExp value1, ValueExp value2) { @@ -546,9 +545,9 @@ * * @return A ValueExp representing the quotient of two arguments. * The returned object will be serialized as an instance of the - * non-public class {@link <a - * href="../../serialized-form.html#javax.management.BinaryOpValueExp"> - * javax.management.BinaryOpValueExp</a>} with an {@code op} equal to + * non-public class + * <a href="../../serialized-form.html#javax.management.BinaryOpValueExp"> + * javax.management.BinaryOpValueExp</a> with an {@code op} equal to * {@link #DIV}. */ public static ValueExp div(ValueExp value1, ValueExp value2) { @@ -566,9 +565,9 @@ * * @return The constraint that a matches s. The returned object * will be serialized as an instance of the non-public class - * {@link <a - * href="../../serialized-form.html#javax.management.MatchQueryExp"> - * javax.management.MatchQueryExp</a>}. + * + * <a href="../../serialized-form.html#javax.management.MatchQueryExp"> + * javax.management.MatchQueryExp</a>. */ public static QueryExp initialSubString(AttributeValueExp a, StringValueExp s) { return new MatchQueryExp(a, @@ -585,9 +584,9 @@ * * @return The constraint that a matches s. The returned object * will be serialized as an instance of the non-public class - * {@link <a - * href="../../serialized-form.html#javax.management.MatchQueryExp"> - * javax.management.MatchQueryExp</a>}. + * + * <a href="../../serialized-form.html#javax.management.MatchQueryExp"> + * javax.management.MatchQueryExp</a>. */ public static QueryExp anySubString(AttributeValueExp a, StringValueExp s) { return new MatchQueryExp(a, @@ -605,9 +604,9 @@ * * @return The constraint that a matches s. The returned object * will be serialized as an instance of the non-public class - * {@link <a - * href="../../serialized-form.html#javax.management.MatchQueryExp"> - * javax.management.MatchQueryExp</a>}. + * + * <a href="../../serialized-form.html#javax.management.MatchQueryExp"> + * javax.management.MatchQueryExp</a>. */ public static QueryExp finalSubString(AttributeValueExp a, StringValueExp s) { return new MatchQueryExp(a, @@ -630,9 +629,9 @@ * of the class of which selected MBeans should be instances. * @return a query expression that represents an inheritance * constraint on an MBean class. The returned object will be - * serialized as an instance of the non-public class {@link <a - * href="../../serialized-form.html#javax.management.InstanceOfQueryExp"> - * javax.management.InstanceOfQueryExp</a>}. + * serialized as an instance of the non-public class + * <a href="../../serialized-form.html#javax.management.InstanceOfQueryExp"> + * javax.management.InstanceOfQueryExp</a>. * @since 1.6 */ public static QueryExp isInstanceOf(StringValueExp classNameValue) {
--- a/src/share/classes/javax/management/loading/MLet.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/loading/MLet.java Fri Nov 15 07:14:23 2013 -0800 @@ -145,17 +145,17 @@ * This optional attribute specifies a list of one or more parameters for the * MBean to be instantiated. This list describes the parameters to be passed the MBean's constructor. * Use the following syntax to specify each item in - * <VAR>arglist</VAR>:</DD> + * <VAR>arglist</VAR>: * <DL> - * <P> * <DT><<CODE>ARG TYPE=</CODE><VAR>argumentType</VAR> <CODE>VALUE=</CODE><VAR>value</VAR>></DT> - * <P> - * <DD>where:</DD> + * <DD>where: * <UL> * <LI><VAR>argumentType</VAR> is the type of the argument that will be passed as parameter to the MBean's constructor.</UL> + * </DD> * </DL> * <P>The arguments' type in the argument list should be a Java primitive type or a Java basic type * (<CODE>java.lang.Boolean, java.lang.Byte, java.lang.Short, java.lang.Long, java.lang.Integer, java.lang.Float, java.lang.Double, java.lang.String</CODE>). + * </DD> * </DL> * * When an m-let text file is loaded, an
--- a/src/share/classes/javax/management/loading/MLetParser.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/loading/MLetParser.java Fri Nov 15 07:14:23 2013 -0800 @@ -149,7 +149,7 @@ } /** - * Scan an html file for <mlet> tags + * Scan an html file for {@literal <mlet>} tags. */ public List<MLetContent> parse(URL url) throws IOException { String mth = "parse";
--- a/src/share/classes/javax/management/modelmbean/DescriptorSupport.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/modelmbean/DescriptorSupport.java Fri Nov 15 07:14:23 2013 -0800 @@ -799,7 +799,7 @@ * the given object is also a Descriptor, and if the two Descriptors have * the same field names (possibly differing in case) and the same * associated values. The respective values for a field in the two - * Descriptors are equal if the following conditions hold:</p> + * Descriptors are equal if the following conditions hold: * * <ul> * <li>If one value is null then the other must be too.</li> @@ -871,7 +871,6 @@ * done on the <i>"export"</i> field. * <P> * Otherwise this implementation returns false if: - * <P> * <UL> * <LI> name and descriptorType fieldNames are not defined, or * null, or empty, or not String @@ -879,14 +878,14 @@ * are null or not String * <LI> persistPeriod, currencyTimeLimit, lastUpdatedTimeStamp, * lastReturnedTimeStamp if defined, are null, or not a Numeric - * String or not a Numeric Value >= -1 + * String or not a Numeric Value {@literal >= -1} * <LI> log fieldName, if defined, is null, or not a Boolean or * not a String with value "t", "f", "true", "false". These String * values must not be case sensitive. * <LI> visibility fieldName, if defined, is null, or not a - * Numeric String or a not Numeric Value >= 1 and <= 4 + * Numeric String or a not Numeric Value {@literal >= 1 and <= 4} * <LI> severity fieldName, if defined, is null, or not a Numeric - * String or not a Numeric Value >= 0 and <= 6<br> + * String or not a Numeric Value {@literal >= 0 and <= 6}<br> * <LI> persistPolicy fieldName, if defined, is null, or not one of * the following strings:<br> * "OnUpdate", "OnTimer", "NoMoreOftenThan", "OnUnregister", "Always", @@ -1270,8 +1269,8 @@ } /** - * Returns <pv>a human readable string representing the - * descriptor</pv>. The string will be in the format of + * Returns a human readable string representing the + * descriptor. The string will be in the format of * "fieldName=fieldValue,fieldName2=fieldValue2,..."<br> * * If there are no fields in the descriptor, then an empty String
--- a/src/share/classes/javax/management/modelmbean/ModelMBeanAttributeInfo.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/modelmbean/ModelMBeanAttributeInfo.java Fri Nov 15 07:14:23 2013 -0800 @@ -57,7 +57,7 @@ * Note that when the Type in this table is Number, a String that is the decimal * representation of a Long can also be used.</P> * - * <table border="1" cellpadding="5"> + * <table border="1" cellpadding="5" summary="ModelMBeanAttributeInfo Fields"> * <tr><th>Name</th><th>Type</th><th>Meaning</th></tr> * <tr><td>name</td><td>String</td> * <td>Attribute name.</td></tr>
--- a/src/share/classes/javax/management/modelmbean/ModelMBeanConstructorInfo.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/modelmbean/ModelMBeanConstructorInfo.java Fri Nov 15 07:14:23 2013 -0800 @@ -58,7 +58,7 @@ * Note that when the Type in this table is Number, a String that is the decimal * representation of a Long can also be used.</P> * - * <table border="1" cellpadding="5"> + * <table border="1" cellpadding="5" summary="ModelMBeanConstructorInfo Fields"> * <tr><th>Name</th><th>Type</th><th>Meaning</th></tr> * <tr><td>name</td><td>String</td> * <td>Constructor name.</td></tr>
--- a/src/share/classes/javax/management/modelmbean/ModelMBeanInfo.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/modelmbean/ModelMBeanInfo.java Fri Nov 15 07:14:23 2013 -0800 @@ -165,7 +165,7 @@ * following. Note that when the Type in this table is Number, a String * that is the decimal representation of a Long can also be used.</P> * - * <table border="1" cellpadding="5"> + * <table border="1" cellpadding="5" summary="ModelMBean Fields"> * <tr><th>Name</th><th>Type</th><th>Meaning</th></tr> * <tr><td>name</td><td>String</td> * <td>MBean name.</td></tr>
--- a/src/share/classes/javax/management/modelmbean/ModelMBeanNotificationBroadcaster.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/modelmbean/ModelMBeanNotificationBroadcaster.java Fri Nov 15 07:14:23 2013 -0800 @@ -127,7 +127,6 @@ * <P> * @param oldValue The original value for the Attribute * @param newValue The current value for the Attribute - *<P> * <PRE> * The constructed attributeChangeNotification will be: * type "jmx.attribute.change"
--- a/src/share/classes/javax/management/modelmbean/ModelMBeanNotificationInfo.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/modelmbean/ModelMBeanNotificationInfo.java Fri Nov 15 07:14:23 2013 -0800 @@ -56,7 +56,7 @@ * Note that when the Type in this table is Number, a String that is the decimal * representation of a Long can also be used.</P> * - * <table border="1" cellpadding="5"> + * <table border="1" cellpadding="5" summary="ModelMBeanNotificationInfo Fields"> * <tr><th>Name</th><th>Type</th><th>Meaning</th></tr> * <tr><td>name</td><td>String</td> * <td>Notification name.</td></tr>
--- a/src/share/classes/javax/management/modelmbean/ModelMBeanOperationInfo.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/modelmbean/ModelMBeanOperationInfo.java Fri Nov 15 07:14:23 2013 -0800 @@ -59,7 +59,7 @@ * Note that when the Type in this table is Number, a String that is the decimal * representation of a Long can also be used.</P> * - * <table border="1" cellpadding="5"> + * <table border="1" cellpadding="5" summary="ModelMBeanOperationInfo Fields"> * <tr><th>Name</th><th>Type</th><th>Meaning</th></tr> * <tr><td>name</td><td>String</td> * <td>Operation name.</td></tr>
--- a/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java Fri Nov 15 07:14:23 2013 -0800 @@ -421,19 +421,19 @@ * is used to guide execution of this method. The MBean should be * stored if 'persistPolicy' field is:</p> * - * <PRE> != "never" + * <PRE>{@literal != "never" * = "always" * = "onTimer" and now > 'lastPersistTime' + 'persistPeriod' * = "NoMoreOftenThan" and now > 'lastPersistTime' + 'persistPeriod' * = "onUnregister" - * </PRE> + * }</PRE> * * <p>Do not store the MBean if 'persistPolicy' field is:</p> - * <PRE> + * <PRE>{@literal * = "never" * = "onUpdate" * = "onTimer" && now < 'lastPersistTime' + 'persistPeriod' - * </PRE> + * }</PRE> * * @exception MBeanException Wraps another exception, or * persistence is not supported @@ -469,11 +469,14 @@ * <li><b>>0</b> Represents the number of seconds that the * 'value' field is valid. * The 'value' field is no longer valid when - * 'lastUpdatedTimeStamp' + 'currencyTimeLimit' > Now.</li> + * 'lastUpdatedTimeStamp' + 'currencyTimeLimit' > Now. + * <ul> + * <li>When 'value' is valid, 'valid' is returned.</li> + * <li>When 'value' is no longer valid then null is returned and + * 'value' and 'lastUpdatedTimeStamp' fields are cleared.</li> + * </ul> + * </li> * </ul> - * <li>When 'value' is valid, 'valid' is returned.</li> - * <li>When 'value' is no longer valid then null is returned and - * 'value' and 'lastUpdatedTimeStamp' fields are cleared.</li> * **/ private Object resolveForCacheValue(Descriptor descr) @@ -1842,17 +1845,17 @@ * <Li> != "never"</Li> * <Li> = "always"</Li> * <Li> = "onUpdate"</Li> - * <Li> = "onTimer" and now > 'lastPersistTime' + 'persistPeriod'</Li> - * <Li> = "NoMoreOftenThan" and now > 'lastPersistTime' + - * 'persistPeriod'</Li> + * <Li> {@literal = "onTimer" and now > 'lastPersistTime' + 'persistPeriod'}</Li> + * <Li> {@literal = "NoMoreOftenThan" and now > 'lastPersistTime' + + * 'persistPeriod'}</Li> * </UL> * Do not store the MBean if 'persistPolicy' field is: * <UL> * <Li> = "never"</Li> - * <Li> = "onTimer" && now < 'lastPersistTime' + 'persistPeriod'</Li> + * <Li> = {@literal = "onTimer" && now < 'lastPersistTime' + 'persistPeriod'}</Li> * <Li> = "onUnregister"</Li> - * <Li> = "NoMoreOftenThan" and now < 'lastPersistTime' + - * 'persistPeriod'</Li> + * <Li> = {@literal = "NoMoreOftenThan" and now < 'lastPersistTime' + + * 'persistPeriod'}</Li> * </UL> * * <p>The ModelMBeanInfo of the Model MBean is stored in a file.
--- a/src/share/classes/javax/management/monitor/Monitor.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/monitor/Monitor.java Fri Nov 15 07:14:23 2013 -0800 @@ -1609,7 +1609,7 @@ * the thread instantiating this DaemonThreadFactory. Each new * thread is created as a daemon thread with priority * Thread.NORM_PRIORITY. New threads have names accessible via - * Thread.getName() of "JMX Monitor <pool-name> Pool [Thread-M]", + * Thread.getName() of "{@literal JMX Monitor <pool-name> Pool [Thread-M]}", * where M is the sequence number of the thread created by this * factory. */
--- a/src/share/classes/javax/management/openmbean/ArrayType.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/openmbean/ArrayType.java Fri Nov 15 07:14:23 2013 -0800 @@ -33,7 +33,7 @@ * all <i>open data</i> values which are n-dimensional arrays of <i>open data</i> values. * <p> * Examples of valid {@code ArrayType} instances are: - * <pre> + * <pre>{@code * // 2-dimension array of java.lang.String * ArrayType<String[][]> a1 = new ArrayType<String[][]>(2, SimpleType.STRING); * @@ -90,7 +90,7 @@ * * // 3-dimension array of java.lang.String * ArrayType<String[][][]> a19 = new ArrayType<String[][][]>(1, a18); - * </pre> + * }</pre> * * * @since 1.5 @@ -241,23 +241,23 @@ * </ul> * <p> * As an example, the following piece of code: - * <pre> + * <pre>{@code * ArrayType<String[][][]> t = new ArrayType<String[][][]>(3, SimpleType.STRING); * System.out.println("array class name = " + t.getClassName()); * System.out.println("element class name = " + t.getElementOpenType().getClassName()); * System.out.println("array type name = " + t.getTypeName()); * System.out.println("array type description = " + t.getDescription()); - * </pre> + * }</pre> * would produce the following output: - * <pre> + * <pre>{@code * array class name = [[[Ljava.lang.String; * element class name = java.lang.String * array type name = [[[Ljava.lang.String; * array type description = 3-dimension array of java.lang.String - * </pre> + * }</pre> * And the following piece of code which is equivalent to the one listed * above would also produce the same output: - * <pre> + * <pre>{@code * ArrayType<String[]> t1 = new ArrayType<String[]>(1, SimpleType.STRING); * ArrayType<String[][]> t2 = new ArrayType<String[][]>(1, t1); * ArrayType<String[][][]> t3 = new ArrayType<String[][][]>(1, t2); @@ -265,7 +265,7 @@ * System.out.println("element class name = " + t3.getElementOpenType().getClassName()); * System.out.println("array type name = " + t3.getTypeName()); * System.out.println("array type description = " + t3.getDescription()); - * </pre> + * }</pre> * * @param dimension the dimension of arrays described by this <tt>ArrayType</tt> instance; * must be greater than or equal to 1. @@ -334,20 +334,20 @@ * </ul> * <p> * As an example, the following piece of code: - * <pre> + * <pre>{@code * ArrayType<int[]> t = new ArrayType<int[]>(SimpleType.INTEGER, true); * System.out.println("array class name = " + t.getClassName()); * System.out.println("element class name = " + t.getElementOpenType().getClassName()); * System.out.println("array type name = " + t.getTypeName()); * System.out.println("array type description = " + t.getDescription()); - * </pre> + * }</pre> * would produce the following output: - * <pre> + * <pre>{@code * array class name = [I * element class name = java.lang.Integer * array type name = [I * array type description = 1-dimension array of int - * </pre> + * }</pre> * * @param elementType the {@code SimpleType} of the element values * contained in the arrays described by this @@ -533,7 +533,7 @@ * <li>if this <code>ArrayType</code> instance describes an array of * classes implementing the {@code TabularData} interface or the * {@code CompositeData} interface, <var>obj</var> is assignable to - * such a declared array, and each element contained in <var>obj</var> + * such a declared array, and each element contained in {<var>obj</var> * is either null or a valid value for the element's open type specified * by this <code>ArrayType</code> instance.</li> * </ul> @@ -776,7 +776,7 @@ * object or two equal but not identical objects. * <p> * As an example, the following piece of code: - * <pre> + * <pre>{@code * ArrayType<String[]> t1 = ArrayType.getArrayType(SimpleType.STRING); * ArrayType<String[][]> t2 = ArrayType.getArrayType(t1); * ArrayType<String[][][]> t3 = ArrayType.getArrayType(t2); @@ -784,14 +784,14 @@ * System.out.println("element class name = " + t3.getElementOpenType().getClassName()); * System.out.println("array type name = " + t3.getTypeName()); * System.out.println("array type description = " + t3.getDescription()); - * </pre> + * }</pre> * would produce the following output: - * <pre> + * <pre>{@code * array class name = [[[Ljava.lang.String; * element class name = java.lang.String * array type name = [[[Ljava.lang.String; * array type description = 3-dimension array of java.lang.String - * </pre> + * }</pre> * * @param elementType the <i>open type</i> of element values contained * in the arrays described by this <tt>ArrayType</tt> @@ -819,20 +819,20 @@ * same object or two equal but not identical objects. * <p> * As an example, the following piece of code: - * <pre> + * <pre>{@code * ArrayType<int[][][]> t = ArrayType.getPrimitiveArrayType(int[][][].class); * System.out.println("array class name = " + t.getClassName()); * System.out.println("element class name = " + t.getElementOpenType().getClassName()); * System.out.println("array type name = " + t.getTypeName()); * System.out.println("array type description = " + t.getDescription()); - * </pre> + * }</pre> * would produce the following output: - * <pre> + * <pre>{@code * array class name = [[[I * element class name = java.lang.Integer * array type name = [[[I * array type description = 3-dimension array of int - * </pre> + * }</pre> * * @param arrayClass a primitive array class such as {@code int[].class}, * {@code boolean[][].class}, etc. The {@link
--- a/src/share/classes/javax/management/openmbean/CompositeDataInvocationHandler.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/openmbean/CompositeDataInvocationHandler.java Fri Nov 15 07:14:23 2013 -0800 @@ -80,7 +80,7 @@ </pre> </blockquote> - A call to {@code nn.getNumber()} will then return <b>5</b>.</p> + A call to {@code nn.getNumber()} will then return <b>5</b>. <p>If the first letter of the property defined by a getter is a capital, then this handler will look first for an item in the
--- a/src/share/classes/javax/management/openmbean/CompositeType.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/openmbean/CompositeType.java Fri Nov 15 07:14:23 2013 -0800 @@ -40,7 +40,7 @@ /** * The <code>CompositeType</code> class is the <i>open type</i> class - * whose instances describe the types of {@link CompositeData <code>CompositeData</code>} values. + * whose instances describe the types of {@link CompositeData CompositeData} values. * * * @since 1.5
--- a/src/share/classes/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java Fri Nov 15 07:14:23 2013 -0800 @@ -138,8 +138,8 @@ * * <p>The {@code descriptor} can contain entries that will define * the values returned by certain methods of this class, as - * explained in the {@link <a href="package-summary.html#constraints"> - * package description</a>}. + * explained in the <a href="package-summary.html#constraints"> + * package description</a>. * * @param name cannot be a null or empty string. * @@ -162,8 +162,7 @@ * @throws IllegalArgumentException if {@code name} or {@code * description} are null or empty string, or {@code openType} is * null, or the descriptor entries are invalid as described in the - * {@link <a href="package-summary.html#constraints">package - * description</a>}. + * <a href="package-summary.html#constraints">package description</a>. * * @since 1.6 */
--- a/src/share/classes/javax/management/openmbean/OpenMBeanParameterInfoSupport.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/openmbean/OpenMBeanParameterInfoSupport.java Fri Nov 15 07:14:23 2013 -0800 @@ -111,16 +111,16 @@ } /** - * <p>Constructs an {@code OpenMBeanParameterInfoSupport} instance, + * Constructs an {@code OpenMBeanParameterInfoSupport} instance, * which describes the parameter used in one or more operations or * constructors of a class of open MBeans, with the specified * {@code name}, {@code openType}, {@code description}, - * and {@code descriptor}.</p> + * and {@code descriptor}. * * <p>The {@code descriptor} can contain entries that will define * the values returned by certain methods of this class, as - * explained in the {@link <a href="package-summary.html#constraints"> - * package description</a>}. + * explained in the <a href="package-summary.html#constraints"> + * package description</a>. * * @param name cannot be a null or empty string. * @@ -134,8 +134,8 @@ * @throws IllegalArgumentException if {@code name} or {@code * description} are null or empty string, or {@code openType} is * null, or the descriptor entries are invalid as described in the - * {@link <a href="package-summary.html#constraints">package - * description</a>}. + * <a href="package-summary.html#constraints">package + * description</a>. * * @since 1.6 */
--- a/src/share/classes/javax/management/openmbean/SimpleType.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/openmbean/SimpleType.java Fri Nov 15 07:14:23 2013 -0800 @@ -45,8 +45,8 @@ /** * The <code>SimpleType</code> class is the <i>open type</i> class whose instances describe * all <i>open data</i> values which are neither arrays, - * nor {@link CompositeData <code>CompositeData</code>} values, - * nor {@link TabularData <code>TabularData</code>} values. + * nor {@link CompositeData CompositeData} values, + * nor {@link TabularData TabularData} values. * It predefines all its possible instances as static fields, and has no public constructor. * <p> * Given a <code>SimpleType</code> instance describing values whose Java class name is <i>className</i>,
--- a/src/share/classes/javax/management/openmbean/TabularType.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/openmbean/TabularType.java Fri Nov 15 07:14:23 2013 -0800 @@ -40,7 +40,7 @@ /** * The <code>TabularType</code> class is the <i> open type</i> class - * whose instances describe the types of {@link TabularData <code>TabularData</code>} values. + * whose instances describe the types of {@link TabularData TabularData} values. * * @since 1.5 */ @@ -89,8 +89,8 @@ * cannot be null or empty. Each element should be an item name defined in <var>rowType</var> * (no null or empty string allowed). * It is important to note that the <b>order</b> of the item names in <var>indexNames</var> - * is used by the methods {@link TabularData#get(java.lang.Object[]) <code>get</code>} and - * {@link TabularData#remove(java.lang.Object[]) <code>remove</code>} of class + * is used by the methods {@link TabularData#get(java.lang.Object[]) get} and + * {@link TabularData#remove(java.lang.Object[]) remove} of class * <code>TabularData</code> to match their array of values parameter to items. * <br> * @throws IllegalArgumentException if <var>rowType</var> is null,
--- a/src/share/classes/javax/management/relation/Relation.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/relation/Relation.java Fri Nov 15 07:14:23 2013 -0800 @@ -236,7 +236,7 @@ * Retrieves MBeans referenced in the various roles of the relation. * * @return a HashMap mapping: - * <P> ObjectName -> ArrayList of String (role names) + * <P> ObjectName {@literal ->} ArrayList of String (role names) */ public Map<ObjectName,List<String>> getReferencedMBeans();
--- a/src/share/classes/javax/management/relation/RelationService.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/relation/RelationService.java Fri Nov 15 07:14:23 2013 -0800 @@ -2306,8 +2306,7 @@ * @param relationId relation id * * @return a HashMap mapping: - * <P> ObjectName -> ArrayList of String (role - * names) + * <P> ObjectName {@literal ->} ArrayList of String (role names) * * @exception IllegalArgumentException if null parameter * @exception RelationNotFoundException if no relation for given
--- a/src/share/classes/javax/management/relation/RelationServiceMBean.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/relation/RelationServiceMBean.java Fri Nov 15 07:14:23 2013 -0800 @@ -770,7 +770,7 @@ * @param relationId relation id * * @return a HashMap mapping: - * <P> ObjectName -> ArrayList of String (role + * <P> ObjectName {@literal ->} ArrayList of String (role * names) * * @exception IllegalArgumentException if null parameter
--- a/src/share/classes/javax/management/relation/RelationSupport.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/relation/RelationSupport.java Fri Nov 15 07:14:23 2013 -0800 @@ -590,7 +590,7 @@ * Retrieves MBeans referenced in the various roles of the relation. * * @return a HashMap mapping: - * <P> ObjectName -> ArrayList of String (role names) + * <P> ObjectName {@literal ->} ArrayList of String (role names) */ public Map<ObjectName,List<String>> getReferencedMBeans() {
--- a/src/share/classes/javax/management/remote/JMXConnectionNotification.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/remote/JMXConnectionNotification.java Fri Nov 15 07:14:23 2013 -0800 @@ -40,7 +40,7 @@ * * <p>The notification type is one of the following:</p> * - * <table> + * <table summary="JMXConnectionNotification Types"> * * <tr> * <th align=left>Type</th>
--- a/src/share/classes/javax/management/remote/JMXConnector.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/remote/JMXConnector.java Fri Nov 15 07:14:23 2013 -0800 @@ -76,7 +76,7 @@ * <p>If <code>connect</code> has already been called successfully * on this object, calling it again has no effect. If, however, * {@link #close} was called after <code>connect</code>, the new - * <code>connect</code> will throw an <code>IOException</code>.<p> + * <code>connect</code> will throw an <code>IOException</code>. * * <p>Otherwise, either <code>connect</code> has never been called * on this object, or it has been called but produced an
--- a/src/share/classes/javax/management/remote/JMXConnectorProvider.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/remote/JMXConnectorProvider.java Fri Nov 15 07:14:23 2013 -0800 @@ -50,7 +50,7 @@ * @param environment a read-only Map containing named attributes * to determine how the connection is made. Keys in this map must * be Strings. The appropriate type of each associated value - * depends on the attribute.</p> + * depends on the attribute. * * @return a <code>JMXConnector</code> representing the new * connector client. Each successful call to this method produces
--- a/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java Fri Nov 15 07:14:23 2013 -0800 @@ -1613,7 +1613,7 @@ /** * Construct a new IOException with a nested exception. - * The nested exception is set only if JDK >= 1.4 + * The nested exception is set only if JDK {@literal >= 1.4} */ private static IOException newIOException(String message, Throwable cause) {
--- a/src/share/classes/javax/management/remote/rmi/RMIConnector.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/remote/rmi/RMIConnector.java Fri Nov 15 07:14:23 2013 -0800 @@ -1688,17 +1688,17 @@ * this method will attempt to connect the stub to an ORB as * follows: * <ul> - * <p>This method looks in the provided <var>environment</var> for + * <li>This method looks in the provided <var>environment</var> for * the "java.naming.corba.orb" property. If it is found, the * referenced object (an {@link org.omg.CORBA.ORB ORB}) is used to * connect the stub. Otherwise, a new org.omg.CORBA.ORB is created * by calling {@link * org.omg.CORBA.ORB#init(String[], Properties) - * org.omg.CORBA.ORB.init((String[])null,(Properties)null)} - * <p>The new created ORB is kept in a static + * org.omg.CORBA.ORB.init((String[])null,(Properties)null)}</li> + * <li>The new created ORB is kept in a static * {@link WeakReference} and can be reused for connecting other * stubs. However, no reference is ever kept on the ORB provided - * in the <var>environment</var> map, if any. + * in the <var>environment</var> map, if any.</li> * </ul> * @param rmiServer A RMI Server Stub. * @param environment An environment map, possibly containing an ORB.
--- a/src/share/classes/javax/management/remote/rmi/RMIConnectorServer.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/remote/rmi/RMIConnectorServer.java Fri Nov 15 07:14:23 2013 -0800 @@ -820,7 +820,7 @@ /** * Construct a new IOException with a nested exception. - * The nested exception is set only if JDK >= 1.4 + * The nested exception is set only if JDK {@literal >= 1.4} */ private static IOException newIOException(String message, Throwable cause) {
--- a/src/share/classes/javax/management/remote/rmi/RMIServerImpl.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/javax/management/remote/rmi/RMIServerImpl.java Fri Nov 15 07:14:23 2013 -0800 @@ -117,7 +117,7 @@ * server.</p> * * @return the default <code>ClassLoader</code> used by this - * connector server.</p> + * connector server. * * @see #setDefaultClassLoader */
--- a/src/share/classes/jdk/internal/org/objectweb/asm/ByteVector.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/ByteVector.java Fri Nov 15 07:14:23 2013 -0800 @@ -233,11 +233,14 @@ * automatically enlarged if necessary. * * @param s - * a String. + * a String whose UTF8 encoded length must be less than 65536. * @return this byte vector. */ public ByteVector putUTF8(final String s) { int charLength = s.length(); + if (charLength > 65535) { + throw new IllegalArgumentException(); + } int len = length; if (len + 2 + charLength > data.length) { enlarge(2 + charLength); @@ -267,6 +270,9 @@ byteLength += 2; } } + if (byteLength > 65535) { + throw new IllegalArgumentException(); + } data[length] = (byte) (byteLength >>> 8); data[length + 1] = (byte) byteLength; if (length + 2 + byteLength > data.length) {
--- a/src/share/classes/jdk/internal/org/objectweb/asm/ClassReader.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/ClassReader.java Fri Nov 15 07:14:23 2013 -0800 @@ -1266,7 +1266,7 @@ u += 2; // generates the first (implicit) stack map frame - if (FRAMES && (stackMap != 0 || unzip)) { + if (FRAMES && stackMap != 0) { /* * for the first explicit frame the offset is not offset_delta + 1 * but only offset_delta; setting the implicit frame offset to -1 @@ -1283,8 +1283,6 @@ if (unzip) { getImplicitFrame(context); } - } - if (FRAMES && stackMap != 0) { /* * Finds labels for UNINITIALIZED frame types. Instead of decoding * each element of the stack map table, we look for 3 consecutive @@ -1322,17 +1320,19 @@ } } - // visits the frame(s) for this offset, if any + // visits the frame for this offset, if any while (FRAMES && frame != null && (frame.offset == offset || frame.offset == -1)) { // if there is a frame for this offset, makes the visitor visit // it, and reads the next frame if there is one. - if (!zip || unzip) { - mv.visitFrame(Opcodes.F_NEW, frame.localCount, frame.local, - frame.stackCount, frame.stack); - } else if (frame.offset != -1) { - mv.visitFrame(frame.mode, frame.localDiff, frame.local, - frame.stackCount, frame.stack); + if (frame.offset != -1) { + if (!zip || unzip) { + mv.visitFrame(Opcodes.F_NEW, frame.localCount, + frame.local, frame.stackCount, frame.stack); + } else { + mv.visitFrame(frame.mode, frame.localDiff, frame.local, + frame.stackCount, frame.stack); + } } if (frameCount > 0) { stackMap = readFrame(stackMap, zip, unzip, frame); @@ -1434,6 +1434,7 @@ case ClassWriter.FIELDORMETH_INSN: case ClassWriter.ITFMETH_INSN: { int cpIndex = items[readUnsignedShort(u + 1)]; + boolean itf = b[cpIndex - 1] == ClassWriter.IMETH; String iowner = readClass(cpIndex, c); cpIndex = items[readUnsignedShort(cpIndex + 2)]; String iname = readUTF8(cpIndex, c); @@ -1441,7 +1442,7 @@ if (opcode < Opcodes.INVOKEVIRTUAL) { mv.visitFieldInsn(opcode, iowner, iname, idesc); } else { - mv.visitMethodInsn(opcode, iowner, iname, idesc); + mv.visitMethodInsn(opcode, iowner, iname, idesc, itf); } if (opcode == Opcodes.INVOKEINTERFACE) { u += 5;
--- a/src/share/classes/jdk/internal/org/objectweb/asm/ClassWriter.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/ClassWriter.java Fri Nov 15 07:14:23 2013 -0800 @@ -516,12 +516,12 @@ * <tt>true</tt> if the maximum stack size and number of local variables * must be automatically computed. */ - private final boolean computeMaxs; + private boolean computeMaxs; /** * <tt>true</tt> if the stack map frames must be recomputed from scratch. */ - private final boolean computeFrames; + private boolean computeFrames; /** * <tt>true</tt> if the stack map tables of this class are invalid. The @@ -988,9 +988,22 @@ attrs.put(this, null, 0, -1, -1, out); } if (invalidFrames) { - ClassWriter cw = new ClassWriter(COMPUTE_FRAMES); - new ClassReader(out.data).accept(cw, ClassReader.SKIP_FRAMES); - return cw.toByteArray(); + anns = null; + ianns = null; + attrs = null; + innerClassesCount = 0; + innerClasses = null; + bootstrapMethodsCount = 0; + bootstrapMethods = null; + firstField = null; + lastField = null; + firstMethod = null; + lastMethod = null; + computeMaxs = false; + computeFrames = true; + invalidFrames = false; + new ClassReader(out.data).accept(this, ClassReader.SKIP_FRAMES); + return toByteArray(); } return out.data; }
--- a/src/share/classes/jdk/internal/org/objectweb/asm/Handle.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/Handle.java Fri Nov 15 07:14:23 2013 -0800 @@ -78,7 +78,8 @@ final int tag; /** - * The internal name of the field or method designed by this handle. + * The internal name of the class that owns the field or method designated + * by this handle. */ final String owner; @@ -105,8 +106,8 @@ * {@link Opcodes#H_NEWINVOKESPECIAL} or * {@link Opcodes#H_INVOKEINTERFACE}. * @param owner - * the internal name of the field or method designed by this - * handle. + * the internal name of the class that owns the field or method + * designated by this handle. * @param name * the name of the field or method designated by this handle. * @param desc @@ -135,9 +136,11 @@ } /** - * Returns the internal name of the field or method designed by this handle. + * Returns the internal name of the class that owns the field or method + * designated by this handle. * - * @return the internal name of the field or method designed by this handle. + * @return the internal name of the class that owns the field or method + * designated by this handle. */ public String getOwner() { return owner;
--- a/src/share/classes/jdk/internal/org/objectweb/asm/MethodVisitor.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/MethodVisitor.java Fri Nov 15 07:14:23 2013 -0800 @@ -68,11 +68,11 @@ * <tt>visitTryCatchBlock</tt> | <tt>visitTryCatchBlockAnnotation</tt> | * <tt>visitLocalVariable</tt> | <tt>visitLocalVariableAnnotation</tt> | * <tt>visitLineNumber</tt> )* <tt>visitMaxs</tt> ] <tt>visitEnd</tt>. In - * addition, the <tt>visit<i>X</i>Insn</tt> and <tt>visitLabel</tt> - * methods must be called in the sequential order of the bytecode instructions - * of the visited code, <tt>visitInsnAnnotation</tt> must be called <i>after</i> - * the annotated instruction, <tt>visitTryCatchBlock</tt> must be called - * <i>before</i> the labels passed as arguments have been visited, + * addition, the <tt>visit<i>X</i>Insn</tt> and <tt>visitLabel</tt> methods must + * be called in the sequential order of the bytecode instructions of the visited + * code, <tt>visitInsnAnnotation</tt> must be called <i>after</i> the annotated + * instruction, <tt>visitTryCatchBlock</tt> must be called <i>before</i> the + * labels passed as arguments have been visited, * <tt>visitTryCatchBlockAnnotation</tt> must be called <i>after</i> the * corresponding try catch block has been visited, and the * <tt>visitLocalVariable</tt>, <tt>visitLocalVariableAnnotation</tt> and @@ -274,13 +274,9 @@ * compressed form (all frames must use the same format, i.e. you must not * mix expanded and compressed frames within a single method): * <ul> - * <li>In expanded form, all frames must have the F_NEW type, and a first - * frame corresponding to the method signature must be explicitly visited - * before the first instruction.</li> + * <li>In expanded form, all frames must have the F_NEW type.</li> * <li>In compressed form, frames are basically "deltas" from the state of - * the previous frame (the first frame, corresponding to the method's - * parameters and access flags, is implicit in this form, and must not be - * visited): + * the previous frame: * <ul> * <li>{@link Opcodes#F_SAME} representing frame with exactly the same * locals as the previous frame and with the empty stack.</li> @@ -296,8 +292,14 @@ * same as the locals in the previous frame, except that the last 1-3 locals * are absent and with the empty stack (<code>nLocals</code> is 1, 2 or 3).</li> * <li>{@link Opcodes#F_FULL} representing complete frame data.</li> - * </ul></li> + * </ul> + * </li> * </ul> + * <br> + * In both cases the first frame, corresponding to the method's parameters + * and access flags, is implicit and must not be visited. Also, it is + * illegal to visit two or more frames for the same code location (i.e., at + * least one instruction must be visited between two calls to visitFrame). * * @param type * the type of this stack map frame. Must be @@ -466,14 +468,53 @@ * @param desc * the method's descriptor (see {@link Type Type}). */ + @Deprecated public void visitMethodInsn(int opcode, String owner, String name, String desc) { + if (api >= Opcodes.ASM5) { + boolean itf = opcode == Opcodes.INVOKEINTERFACE; + visitMethodInsn(opcode, owner, name, desc, itf); + return; + } if (mv != null) { mv.visitMethodInsn(opcode, owner, name, desc); } } /** + * Visits a method instruction. A method instruction is an instruction that + * invokes a method. + * + * @param opcode + * the opcode of the type instruction to be visited. This opcode + * is either INVOKEVIRTUAL, INVOKESPECIAL, INVOKESTATIC or + * INVOKEINTERFACE. + * @param owner + * the internal name of the method's owner class (see + * {@link Type#getInternalName() getInternalName}). + * @param name + * the method's name. + * @param desc + * the method's descriptor (see {@link Type Type}). + * @param itf + * if the method's owner class is an interface. + */ + public void visitMethodInsn(int opcode, String owner, String name, + String desc, boolean itf) { + if (api < Opcodes.ASM5) { + if (itf != (opcode == Opcodes.INVOKEINTERFACE)) { + throw new IllegalArgumentException( + "INVOKESPECIAL/STATIC on interfaces require ASM 5"); + } + visitMethodInsn(opcode, owner, name, desc); + return; + } + if (mv != null) { + mv.visitMethodInsn(opcode, owner, name, desc, itf); + } + } + + /** * Visits an invokedynamic instruction. * * @param name
--- a/src/share/classes/jdk/internal/org/objectweb/asm/MethodWriter.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/MethodWriter.java Fri Nov 15 07:14:23 2013 -0800 @@ -71,7 +71,7 @@ /** * Pseudo access flag used to denote constructors. */ - static final int ACC_CONSTRUCTOR = 262144; + static final int ACC_CONSTRUCTOR = 0x80000; /** * Frame has exactly the same locals as the previous stack map frame and @@ -298,11 +298,6 @@ private int[] previousFrame; /** - * Index of the next element to be added in {@link #frame}. - */ - private int frameIndex; - - /** * The current stack map frame. The first element contains the offset of the * instruction to which the frame corresponds, the second element is the * number of locals and the third one is the number of stack elements. The @@ -496,6 +491,9 @@ cw.lastMethod = this; this.cw = cw; this.access = access; + if ("<init>".equals(name)) { + this.access |= ACC_CONSTRUCTOR; + } this.name = cw.newUTF8(name); this.desc = cw.newUTF8(desc); this.descriptor = desc; @@ -511,9 +509,6 @@ } this.compute = computeFrames ? FRAMES : (computeMaxs ? MAXS : NOTHING); if (computeMaxs || computeFrames) { - if (computeFrames && "<init>".equals(name)) { - this.access |= ACC_CONSTRUCTOR; - } // updates maxLocals int size = Type.getArgumentsAndReturnSizes(descriptor) >> 2; if ((access & Opcodes.ACC_STATIC) != 0) { @@ -649,8 +644,11 @@ } if (type == Opcodes.F_NEW) { + if (previousFrame == null) { + visitImplicitFirstFrame(); + } currentLocals = nLocal; - startFrame(code.length, nLocal, nStack); + int frameIndex = startFrame(code.length, nLocal, nStack); for (int i = 0; i < nLocal; ++i) { if (local[i] instanceof String) { frame[frameIndex++] = Frame.OBJECT @@ -914,9 +912,8 @@ @Override public void visitMethodInsn(final int opcode, final String owner, - final String name, final String desc) { + final String name, final String desc, final boolean itf) { lastCodeOffset = code.length; - boolean itf = opcode == Opcodes.INVOKEINTERFACE; Item i = cw.newMethodItem(owner, name, desc, itf); int argSize = i.intVal; // Label currentBlock = this.currentBlock; @@ -954,7 +951,7 @@ } } // adds the instruction to the bytecode of the method - if (itf) { + if (opcode == Opcodes.INVOKEINTERFACE) { if (argSize == 0) { argSize = Type.getArgumentsAndReturnSizes(desc); i.intVal = argSize; @@ -1528,8 +1525,8 @@ } code.data[end] = (byte) Opcodes.ATHROW; // emits a frame for this unreachable block - startFrame(start, 0, 1); - frame[frameIndex++] = Frame.OBJECT + int frameIndex = startFrame(start, 0, 1); + frame[frameIndex] = Frame.OBJECT | cw.addType("java/lang/Throwable"); endFrame(); // removes the start-end range from the exception @@ -1756,7 +1753,7 @@ } } // visits the frame and its content - startFrame(f.owner.position, nLocal, nStack); + int frameIndex = startFrame(f.owner.position, nLocal, nStack); for (i = 0; nLocal > 0; ++i, --nLocal) { t = locals[i]; frame[frameIndex++] = t; @@ -1775,6 +1772,67 @@ } /** + * Visit the implicit first frame of this method. + */ + private void visitImplicitFirstFrame() { + // There can be at most descriptor.length() + 1 locals + int frameIndex = startFrame(0, descriptor.length() + 1, 0); + if ((access & Opcodes.ACC_STATIC) == 0) { + if ((access & ACC_CONSTRUCTOR) == 0) { + frame[frameIndex++] = Frame.OBJECT | cw.addType(cw.thisName); + } else { + frame[frameIndex++] = 6; // Opcodes.UNINITIALIZED_THIS; + } + } + int i = 1; + loop: while (true) { + int j = i; + switch (descriptor.charAt(i++)) { + case 'Z': + case 'C': + case 'B': + case 'S': + case 'I': + frame[frameIndex++] = 1; // Opcodes.INTEGER; + break; + case 'F': + frame[frameIndex++] = 2; // Opcodes.FLOAT; + break; + case 'J': + frame[frameIndex++] = 4; // Opcodes.LONG; + break; + case 'D': + frame[frameIndex++] = 3; // Opcodes.DOUBLE; + break; + case '[': + while (descriptor.charAt(i) == '[') { + ++i; + } + if (descriptor.charAt(i) == 'L') { + ++i; + while (descriptor.charAt(i) != ';') { + ++i; + } + } + frame[frameIndex++] = Frame.OBJECT + | cw.addType(descriptor.substring(j, ++i)); + break; + case 'L': + while (descriptor.charAt(i) != ';') { + ++i; + } + frame[frameIndex++] = Frame.OBJECT + | cw.addType(descriptor.substring(j + 1, i++)); + break; + default: + break loop; + } + } + frame[1] = frameIndex - 3; + endFrame(); + } + + /** * Starts the visit of a stack map frame. * * @param offset @@ -1783,8 +1841,9 @@ * the number of local variables in the frame. * @param nStack * the number of stack elements in the frame. + * @return the index of the next element to be written in this frame. */ - private void startFrame(final int offset, final int nLocal, final int nStack) { + private int startFrame(final int offset, final int nLocal, final int nStack) { int n = 3 + nLocal + nStack; if (frame == null || frame.length < n) { frame = new int[n]; @@ -1792,7 +1851,7 @@ frame[0] = offset; frame[1] = nLocal; frame[2] = nStack; - frameIndex = 3; + return 3; } /** @@ -2110,7 +2169,8 @@ */ final void put(final ByteVector out) { final int FACTOR = ClassWriter.TO_ACC_SYNTHETIC; - int mask = Opcodes.ACC_DEPRECATED | ClassWriter.ACC_SYNTHETIC_ATTRIBUTE + int mask = ACC_CONSTRUCTOR | Opcodes.ACC_DEPRECATED + | ClassWriter.ACC_SYNTHETIC_ATTRIBUTE | ((access & ClassWriter.ACC_SYNTHETIC_ATTRIBUTE) / FACTOR); out.putShort(access & ~mask).putShort(name).putShort(desc); if (classReaderOffset != 0) {
--- a/src/share/classes/jdk/internal/org/objectweb/asm/commons/AdviceAdapter.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/commons/AdviceAdapter.java Fri Nov 15 07:14:23 2013 -0800 @@ -442,10 +442,31 @@ } } + @Deprecated @Override public void visitMethodInsn(final int opcode, final String owner, final String name, final String desc) { - mv.visitMethodInsn(opcode, owner, name, desc); + if (api >= Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, + opcode == Opcodes.INVOKEINTERFACE); + } + + @Override + public void visitMethodInsn(final int opcode, final String owner, + final String name, final String desc, final boolean itf) { + if (api < Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc, itf); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, itf); + } + + private void doVisitMethodInsn(int opcode, final String owner, + final String name, final String desc, final boolean itf) { + mv.visitMethodInsn(opcode, owner, name, desc, itf); if (constructor) { Type[] types = Type.getArgumentTypes(desc); for (int i = 0; i < types.length; i++) {
--- a/src/share/classes/jdk/internal/org/objectweb/asm/commons/AnalyzerAdapter.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/commons/AnalyzerAdapter.java Fri Nov 15 07:14:23 2013 -0800 @@ -165,10 +165,15 @@ * @param mv * the method visitor to which this adapter delegates calls. May * be <tt>null</tt>. + * @throws IllegalStateException + * If a subclass calls this constructor. */ public AnalyzerAdapter(final String owner, final int access, final String name, final String desc, final MethodVisitor mv) { this(Opcodes.ASM5, owner, access, name, desc, mv); + if (getClass() != AnalyzerAdapter.class) { + throw new IllegalStateException(); + } } /** @@ -331,11 +336,32 @@ execute(opcode, 0, desc); } + @Deprecated @Override public void visitMethodInsn(final int opcode, final String owner, final String name, final String desc) { + if (api >= Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, + opcode == Opcodes.INVOKEINTERFACE); + } + + @Override + public void visitMethodInsn(final int opcode, final String owner, + final String name, final String desc, final boolean itf) { + if (api < Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc, itf); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, itf); + } + + private void doVisitMethodInsn(int opcode, final String owner, + final String name, final String desc, final boolean itf) { if (mv != null) { - mv.visitMethodInsn(opcode, owner, name, desc); + mv.visitMethodInsn(opcode, owner, name, desc, itf); } if (this.locals == null) { labels = null;
--- a/src/share/classes/jdk/internal/org/objectweb/asm/commons/CodeSizeEvaluator.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/commons/CodeSizeEvaluator.java Fri Nov 15 07:14:23 2013 -0800 @@ -149,9 +149,30 @@ } } + @Deprecated @Override public void visitMethodInsn(final int opcode, final String owner, final String name, final String desc) { + if (api >= Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, + opcode == Opcodes.INVOKEINTERFACE); + } + + @Override + public void visitMethodInsn(final int opcode, final String owner, + final String name, final String desc, final boolean itf) { + if (api < Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc, itf); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, itf); + } + + private void doVisitMethodInsn(int opcode, final String owner, + final String name, final String desc, final boolean itf) { if (opcode == INVOKEINTERFACE) { minSize += 5; maxSize += 5; @@ -160,7 +181,7 @@ maxSize += 3; } if (mv != null) { - mv.visitMethodInsn(opcode, owner, name, desc); + mv.visitMethodInsn(opcode, owner, name, desc, itf); } }
--- a/src/share/classes/jdk/internal/org/objectweb/asm/commons/GeneratorAdapter.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/commons/GeneratorAdapter.java Fri Nov 15 07:14:23 2013 -0800 @@ -284,10 +284,15 @@ * the method's name. * @param desc * the method's descriptor (see {@link Type Type}). + * @throws IllegalStateException + * If a subclass calls this constructor. */ public GeneratorAdapter(final MethodVisitor mv, final int access, final String name, final String desc) { this(Opcodes.ASM5, mv, access, name, desc); + if (getClass() != GeneratorAdapter.class) { + throw new IllegalStateException(); + } } /** @@ -1400,11 +1405,11 @@ * the method to be invoked. */ private void invokeInsn(final int opcode, final Type type, - final Method method) { + final Method method, final boolean itf) { String owner = type.getSort() == Type.ARRAY ? type.getDescriptor() : type.getInternalName(); mv.visitMethodInsn(opcode, owner, method.getName(), - method.getDescriptor()); + method.getDescriptor(), itf); } /** @@ -1416,7 +1421,7 @@ * the method to be invoked. */ public void invokeVirtual(final Type owner, final Method method) { - invokeInsn(Opcodes.INVOKEVIRTUAL, owner, method); + invokeInsn(Opcodes.INVOKEVIRTUAL, owner, method, false); } /** @@ -1428,7 +1433,7 @@ * the constructor to be invoked. */ public void invokeConstructor(final Type type, final Method method) { - invokeInsn(Opcodes.INVOKESPECIAL, type, method); + invokeInsn(Opcodes.INVOKESPECIAL, type, method, false); } /** @@ -1440,7 +1445,7 @@ * the method to be invoked. */ public void invokeStatic(final Type owner, final Method method) { - invokeInsn(Opcodes.INVOKESTATIC, owner, method); + invokeInsn(Opcodes.INVOKESTATIC, owner, method, false); } /** @@ -1452,7 +1457,7 @@ * the method to be invoked. */ public void invokeInterface(final Type owner, final Method method) { - invokeInsn(Opcodes.INVOKEINTERFACE, owner, method); + invokeInsn(Opcodes.INVOKEINTERFACE, owner, method, true); } /**
--- a/src/share/classes/jdk/internal/org/objectweb/asm/commons/InstructionAdapter.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/commons/InstructionAdapter.java Fri Nov 15 07:14:23 2013 -0800 @@ -82,9 +82,14 @@ * * @param mv * the method visitor to which this adapter delegates calls. + * @throws IllegalStateException + * If a subclass calls this constructor. */ public InstructionAdapter(final MethodVisitor mv) { this(Opcodes.ASM5, mv); + if (getClass() != InstructionAdapter.class) { + throw new IllegalStateException(); + } } /** @@ -536,18 +541,39 @@ } } + @Deprecated @Override public void visitMethodInsn(final int opcode, final String owner, final String name, final String desc) { + if (api >= Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, + opcode == Opcodes.INVOKEINTERFACE); + } + + @Override + public void visitMethodInsn(final int opcode, final String owner, + final String name, final String desc, final boolean itf) { + if (api < Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc, itf); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, itf); + } + + private void doVisitMethodInsn(int opcode, final String owner, + final String name, final String desc, final boolean itf) { switch (opcode) { case Opcodes.INVOKESPECIAL: - invokespecial(owner, name, desc); + invokespecial(owner, name, desc, itf); break; case Opcodes.INVOKEVIRTUAL: - invokevirtual(owner, name, desc); + invokevirtual(owner, name, desc, itf); break; case Opcodes.INVOKESTATIC: - invokestatic(owner, name, desc); + invokestatic(owner, name, desc, itf); break; case Opcodes.INVOKEINTERFACE: invokeinterface(owner, name, desc); @@ -1014,24 +1040,78 @@ mv.visitFieldInsn(Opcodes.PUTFIELD, owner, name, desc); } + @Deprecated public void invokevirtual(final String owner, final String name, final String desc) { + if (api >= Opcodes.ASM5) { + invokevirtual(owner, name, desc, false); + return; + } mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, owner, name, desc); } + public void invokevirtual(final String owner, final String name, + final String desc, final boolean itf) { + if (api < Opcodes.ASM5) { + if (itf) { + throw new IllegalArgumentException( + "INVOKEVIRTUAL on interfaces require ASM 5"); + } + invokevirtual(owner, name, desc); + return; + } + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, owner, name, desc, itf); + } + + @Deprecated + public void invokespecial(final String owner, final String name, + final String desc) { + if (api >= Opcodes.ASM5) { + invokespecial(owner, name, desc, false); + return; + } + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, owner, name, desc, false); + } + public void invokespecial(final String owner, final String name, + final String desc, final boolean itf) { + if (api < Opcodes.ASM5) { + if (itf) { + throw new IllegalArgumentException( + "INVOKESPECIAL on interfaces require ASM 5"); + } + invokespecial(owner, name, desc); + return; + } + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, owner, name, desc, itf); + } + + @Deprecated + public void invokestatic(final String owner, final String name, final String desc) { - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, owner, name, desc); + if (api < Opcodes.ASM5) { + invokestatic(owner, name, desc, false); + return; + } + mv.visitMethodInsn(Opcodes.INVOKESTATIC, owner, name, desc, false); } public void invokestatic(final String owner, final String name, - final String desc) { - mv.visitMethodInsn(Opcodes.INVOKESTATIC, owner, name, desc); + final String desc, final boolean itf) { + if (api < Opcodes.ASM5) { + if (itf) { + throw new IllegalArgumentException( + "INVOKESTATIC on interfaces require ASM 5"); + } + invokestatic(owner, name, desc); + return; + } + mv.visitMethodInsn(Opcodes.INVOKESTATIC, owner, name, desc, itf); } public void invokeinterface(final String owner, final String name, final String desc) { - mv.visitMethodInsn(Opcodes.INVOKEINTERFACE, owner, name, desc); + mv.visitMethodInsn(Opcodes.INVOKEINTERFACE, owner, name, desc, true); } public void invokedynamic(String name, String desc, Handle bsm,
--- a/src/share/classes/jdk/internal/org/objectweb/asm/commons/JSRInlinerAdapter.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/commons/JSRInlinerAdapter.java Fri Nov 15 07:14:23 2013 -0800 @@ -136,11 +136,16 @@ * the internal names of the method's exception classes (see * {@link Type#getInternalName() getInternalName}). May be * <tt>null</tt>. + * @throws IllegalStateException + * If a subclass calls this constructor. */ public JSRInlinerAdapter(final MethodVisitor mv, final int access, final String name, final String desc, final String signature, final String[] exceptions) { this(Opcodes.ASM5, mv, access, name, desc, signature, exceptions); + if (getClass() != JSRInlinerAdapter.class) { + throw new IllegalStateException(); + } } /** @@ -381,6 +386,17 @@ // Use tail recursion here in the form of an outer while loop to // avoid our stack growing needlessly: index++; + + // We implicitly assumed above that execution can always fall + // through to the next instruction after a JSR. But a subroutine may + // never return, in which case the code after the JSR is unreachable + // and can be anything. In particular, it can seem to fall off the + // end of the method, so we must handle this case here (we could + // instead detect whether execution can return or not from a JSR, + // but this is more complicated). + if (index >= instructions.size()) { + return; + } } }
--- a/src/share/classes/jdk/internal/org/objectweb/asm/commons/LocalVariablesSorter.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/commons/LocalVariablesSorter.java Fri Nov 15 07:14:23 2013 -0800 @@ -120,10 +120,15 @@ * the method's descriptor (see {@link Type Type}). * @param mv * the method visitor to which this adapter delegates calls. + * @throws IllegalStateException + * If a subclass calls this constructor. */ public LocalVariablesSorter(final int access, final String desc, final MethodVisitor mv) { this(Opcodes.ASM5, access, desc, mv); + if (getClass() != LocalVariablesSorter.class) { + throw new IllegalStateException(); + } } /** @@ -323,6 +328,7 @@ int local = newLocalMapping(type); setLocalType(local, type); setFrameLocal(local, t); + changed = true; return local; }
--- a/src/share/classes/jdk/internal/org/objectweb/asm/commons/RemappingMethodAdapter.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/commons/RemappingMethodAdapter.java Fri Nov 15 07:14:23 2013 -0800 @@ -148,12 +148,41 @@ remapper.mapDesc(desc)); } + @Deprecated @Override - public void visitMethodInsn(int opcode, String owner, String name, - String desc) { - super.visitMethodInsn(opcode, remapper.mapType(owner), - remapper.mapMethodName(owner, name, desc), - remapper.mapMethodDesc(desc)); + public void visitMethodInsn(final int opcode, final String owner, + final String name, final String desc) { + if (api >= Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, + opcode == Opcodes.INVOKEINTERFACE); + } + + @Override + public void visitMethodInsn(final int opcode, final String owner, + final String name, final String desc, final boolean itf) { + if (api < Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc, itf); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, itf); + } + + private void doVisitMethodInsn(int opcode, String owner, String name, + String desc, boolean itf) { + // Calling super.visitMethodInsn requires to call the correct version + // depending on this.api (otherwise infinite loops can occur). To + // simplify and to make it easier to automatically remove the backward + // compatibility code, we inline the code of the overridden method here. + // IMPORTANT: THIS ASSUMES THAT visitMethodInsn IS NOT OVERRIDDEN IN + // LocalVariableSorter. + if (mv != null) { + mv.visitMethodInsn(opcode, remapper.mapType(owner), + remapper.mapMethodName(owner, name, desc), + remapper.mapMethodDesc(desc), itf); + } } @Override
--- a/src/share/classes/jdk/internal/org/objectweb/asm/commons/RemappingSignatureAdapter.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/commons/RemappingSignatureAdapter.java Fri Nov 15 07:14:23 2013 -0800 @@ -95,10 +95,12 @@ @Override public void visitInnerClassType(String name) { + String remappedOuter = remapper.mapType(className) + '$'; className = className + '$' + name; String remappedName = remapper.mapType(className); - v.visitInnerClassType(remappedName.substring(remappedName - .lastIndexOf('$') + 1)); + int index = remappedName.startsWith(remappedOuter) ? remappedOuter + .length() : remappedName.lastIndexOf('$') + 1; + v.visitInnerClassType(remappedName.substring(index)); } @Override
--- a/src/share/classes/jdk/internal/org/objectweb/asm/commons/SerialVersionUIDAdder.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/commons/SerialVersionUIDAdder.java Fri Nov 15 07:14:23 2013 -0800 @@ -195,9 +195,14 @@ * @param cv * a {@link ClassVisitor} to which this visitor will delegate * calls. + * @throws IllegalStateException + * If a subclass calls this constructor. */ public SerialVersionUIDAdder(final ClassVisitor cv) { this(Opcodes.ASM5, cv); + if (getClass() != SerialVersionUIDAdder.class) { + throw new IllegalStateException(); + } } /** @@ -218,7 +223,7 @@ } // ------------------------------------------------------------------------ - // Overriden methods + // Overridden methods // ------------------------------------------------------------------------ /* @@ -234,7 +239,7 @@ if (computeSVUID) { this.name = name; this.access = access; - this.interfaces = interfaces; + this.interfaces = Arrays.copyOf(interfaces, interfaces.length); } super.visit(version, access, name, signature, superName, interfaces);
--- a/src/share/classes/jdk/internal/org/objectweb/asm/commons/StaticInitMerger.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/commons/StaticInitMerger.java Fri Nov 15 07:14:23 2013 -0800 @@ -107,7 +107,8 @@ if (clinit == null) { clinit = cv.visitMethod(a, name, desc, null, null); } - clinit.visitMethodInsn(Opcodes.INVOKESTATIC, this.name, n, desc); + clinit.visitMethodInsn(Opcodes.INVOKESTATIC, this.name, n, desc, + false); } else { mv = cv.visitMethod(access, name, desc, signature, exceptions); }
--- a/src/share/classes/jdk/internal/org/objectweb/asm/commons/TryCatchBlockSorter.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/commons/TryCatchBlockSorter.java Fri Nov 15 07:14:23 2013 -0800 @@ -66,7 +66,6 @@ import jdk.internal.org.objectweb.asm.Opcodes; import jdk.internal.org.objectweb.asm.tree.MethodNode; import jdk.internal.org.objectweb.asm.tree.TryCatchBlockNode; -import jdk.internal.org.objectweb.asm.tree.TypeAnnotationNode; /** * A {@link MethodVisitor} adapter to sort the exception handlers. The handlers
--- a/src/share/classes/jdk/internal/org/objectweb/asm/tree/AnnotationNode.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/tree/AnnotationNode.java Fri Nov 15 07:14:23 2013 -0800 @@ -96,9 +96,14 @@ * * @param desc * the class descriptor of the annotation class. + * @throws IllegalStateException + * If a subclass calls this constructor. */ public AnnotationNode(final String desc) { this(Opcodes.ASM5, desc); + if (getClass() != AnnotationNode.class) { + throw new IllegalStateException(); + } } /**
--- a/src/share/classes/jdk/internal/org/objectweb/asm/tree/ClassNode.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/tree/ClassNode.java Fri Nov 15 07:14:23 2013 -0800 @@ -216,9 +216,15 @@ * Constructs a new {@link ClassNode}. <i>Subclasses must not use this * constructor</i>. Instead, they must use the {@link #ClassNode(int)} * version. + * + * @throws IllegalStateException + * If a subclass calls this constructor. */ public ClassNode() { this(Opcodes.ASM5); + if (getClass() != ClassNode.class) { + throw new IllegalStateException(); + } } /**
--- a/src/share/classes/jdk/internal/org/objectweb/asm/tree/FieldNode.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/tree/FieldNode.java Fri Nov 15 07:14:23 2013 -0800 @@ -168,16 +168,20 @@ * <tt>null</tt> if the field does not have an initial value, * must be an {@link Integer}, a {@link Float}, a {@link Long}, a * {@link Double} or a {@link String}. + * @throws IllegalStateException + * If a subclass calls this constructor. */ public FieldNode(final int access, final String name, final String desc, final String signature, final Object value) { this(Opcodes.ASM5, access, name, desc, signature, value); + if (getClass() != FieldNode.class) { + throw new IllegalStateException(); + } } /** * Constructs a new {@link FieldNode}. <i>Subclasses must not use this - * constructor</i>. Instead, they must use the - * {@link #FieldNode(int, int, String, String, String, Object)} version. + * constructor</i>. * * @param api * the ASM API version implemented by this visitor. Must be one
--- a/src/share/classes/jdk/internal/org/objectweb/asm/tree/MethodInsnNode.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/tree/MethodInsnNode.java Fri Nov 15 07:14:23 2013 -0800 @@ -61,6 +61,7 @@ import java.util.Map; import jdk.internal.org.objectweb.asm.MethodVisitor; +import jdk.internal.org.objectweb.asm.Opcodes; /** * A node that represents a method instruction. A method instruction is an @@ -87,6 +88,11 @@ public String desc; /** + * If the method's owner class if an interface. + */ + public boolean itf; + + /** * Constructs a new {@link MethodInsnNode}. * * @param opcode @@ -102,12 +108,37 @@ * @param desc * the method's descriptor (see {@link jdk.internal.org.objectweb.asm.Type}). */ + @Deprecated public MethodInsnNode(final int opcode, final String owner, final String name, final String desc) { + this(opcode, owner, name, desc, opcode == Opcodes.INVOKEINTERFACE); + } + + /** + * Constructs a new {@link MethodInsnNode}. + * + * @param opcode + * the opcode of the type instruction to be constructed. This + * opcode must be INVOKEVIRTUAL, INVOKESPECIAL, INVOKESTATIC or + * INVOKEINTERFACE. + * @param owner + * the internal name of the method's owner class (see + * {@link jdk.internal.org.objectweb.asm.Type#getInternalName() + * getInternalName}). + * @param name + * the method's name. + * @param desc + * the method's descriptor (see {@link jdk.internal.org.objectweb.asm.Type}). + * @param itf + * if the method's owner class is an interface. + */ + public MethodInsnNode(final int opcode, final String owner, + final String name, final String desc, final boolean itf) { super(opcode); this.owner = owner; this.name = name; this.desc = desc; + this.itf = itf; } /** @@ -128,11 +159,11 @@ @Override public void accept(final MethodVisitor mv) { - mv.visitMethodInsn(opcode, owner, name, desc); + mv.visitMethodInsn(opcode, owner, name, desc, itf); } @Override public AbstractInsnNode clone(final Map<LabelNode, LabelNode> labels) { - return new MethodInsnNode(opcode, owner, name, desc); + return new MethodInsnNode(opcode, owner, name, desc, itf); } }
--- a/src/share/classes/jdk/internal/org/objectweb/asm/tree/MethodNode.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/tree/MethodNode.java Fri Nov 15 07:14:23 2013 -0800 @@ -71,7 +71,6 @@ import jdk.internal.org.objectweb.asm.Opcodes; import jdk.internal.org.objectweb.asm.Type; import jdk.internal.org.objectweb.asm.TypePath; -import jdk.internal.org.objectweb.asm.TypeReference; /** * A node that represents a method. @@ -245,9 +244,15 @@ * Constructs an uninitialized {@link MethodNode}. <i>Subclasses must not * use this constructor</i>. Instead, they must use the * {@link #MethodNode(int)} version. + * + * @throws IllegalStateException + * If a subclass calls this constructor. */ public MethodNode() { this(Opcodes.ASM5); + if (getClass() != MethodNode.class) { + throw new IllegalStateException(); + } } /** @@ -281,10 +286,15 @@ * the internal names of the method's exception classes (see * {@link Type#getInternalName() getInternalName}). May be * <tt>null</tt>. + * @throws IllegalStateException + * If a subclass calls this constructor. */ public MethodNode(final int access, final String name, final String desc, final String signature, final String[] exceptions) { this(Opcodes.ASM5, access, name, desc, signature, exceptions); + if (getClass() != MethodNode.class) { + throw new IllegalStateException(); + } } /** @@ -461,13 +471,28 @@ instructions.add(new FieldInsnNode(opcode, owner, name, desc)); } + @Deprecated @Override - public void visitMethodInsn(final int opcode, final String owner, - final String name, final String desc) { + public void visitMethodInsn(int opcode, String owner, String name, + String desc) { + if (api >= Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc); + return; + } instructions.add(new MethodInsnNode(opcode, owner, name, desc)); } @Override + public void visitMethodInsn(int opcode, String owner, String name, + String desc, boolean itf) { + if (api < Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc, itf); + return; + } + instructions.add(new MethodInsnNode(opcode, owner, name, desc, itf)); + } + + @Override public void visitInvokeDynamicInsn(String name, String desc, Handle bsm, Object... bsmArgs) { instructions.add(new InvokeDynamicInsnNode(name, desc, bsm, bsmArgs)); @@ -696,6 +721,12 @@ && insn.invisibleTypeAnnotations.size() > 0) { throw new RuntimeException(); } + if (insn instanceof MethodInsnNode) { + boolean itf = ((MethodInsnNode) insn).itf; + if (itf != (insn.opcode == Opcodes.INVOKEINTERFACE)) { + throw new RuntimeException(); + } + } } if (visibleLocalVariableAnnotations != null && visibleLocalVariableAnnotations.size() > 0) { @@ -705,7 +736,6 @@ && invisibleLocalVariableAnnotations.size() > 0) { throw new RuntimeException(); } - } }
--- a/src/share/classes/jdk/internal/org/objectweb/asm/tree/TypeAnnotationNode.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/tree/TypeAnnotationNode.java Fri Nov 15 07:14:23 2013 -0800 @@ -94,10 +94,15 @@ * <tt>null</tt> if the annotation targets 'typeRef' as a whole. * @param desc * the class descriptor of the annotation class. + * @throws IllegalStateException + * If a subclass calls this constructor. */ public TypeAnnotationNode(final int typeRef, final TypePath typePath, final String desc) { this(Opcodes.ASM5, typeRef, typePath, desc); + if (getClass() != TypeAnnotationNode.class) { + throw new IllegalStateException(); + } } /**
--- a/src/share/classes/jdk/internal/org/objectweb/asm/tree/analysis/Frame.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/tree/analysis/Frame.java Fri Nov 15 07:14:23 2013 -0800 @@ -163,6 +163,15 @@ } /** + * Returns the maximum stack size of this frame. + * + * @return the maximum stack size of this frame. + */ + public int getMaxStackSize() { + return values.length - locals; + } + + /** * Returns the value of the given local variable. * * @param i
--- a/src/share/classes/jdk/internal/org/objectweb/asm/util/ASMifier.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/util/ASMifier.java Fri Nov 15 07:14:23 2013 -0800 @@ -113,9 +113,15 @@ * Constructs a new {@link ASMifier}. <i>Subclasses must not use this * constructor</i>. Instead, they must use the * {@link #ASMifier(int, String, int)} version. + * + * @throws IllegalStateException + * If a subclass calls this constructor. */ public ASMifier() { this(Opcodes.ASM5, "cw", 0); + if (getClass() != ASMifier.class) { + throw new IllegalStateException(); + } } /** @@ -483,8 +489,9 @@ @Override public void visitParameter(String parameterName, int access) { buf.setLength(0); - buf.append(name).append(".visitParameter(").append(parameterName) - .append(", "); + buf.append(name).append(".visitParameter("); + appendString(buf, parameterName); + buf.append(", "); appendAccess(access); text.add(buf.append(");\n").toString()); } @@ -639,9 +646,30 @@ text.add(buf.toString()); } + @Deprecated @Override public void visitMethodInsn(final int opcode, final String owner, final String name, final String desc) { + if (api >= Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, + opcode == Opcodes.INVOKEINTERFACE); + } + + @Override + public void visitMethodInsn(final int opcode, final String owner, + final String name, final String desc, final boolean itf) { + if (api < Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc, itf); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, itf); + } + + private void doVisitMethodInsn(final int opcode, final String owner, + final String name, final String desc, final boolean itf) { buf.setLength(0); buf.append(this.name).append(".visitMethodInsn(") .append(OPCODES[opcode]).append(", "); @@ -650,6 +678,8 @@ appendConstant(name); buf.append(", "); appendConstant(desc); + buf.append(", "); + buf.append(itf ? "true" : "false"); buf.append(");\n"); text.add(buf.toString()); } @@ -1076,6 +1106,13 @@ buf.append("ACC_DEPRECATED"); first = false; } + if ((access & Opcodes.ACC_MANDATED) != 0) { + if (!first) { + buf.append(" + "); + } + buf.append("ACC_MANDATED"); + first = false; + } if (first) { buf.append('0'); }
--- a/src/share/classes/jdk/internal/org/objectweb/asm/util/CheckClassAdapter.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/util/CheckClassAdapter.java Fri Nov 15 07:14:23 2013 -0800 @@ -246,7 +246,7 @@ List<Type> interfaces = new ArrayList<Type>(); for (Iterator<String> i = cn.interfaces.iterator(); i.hasNext();) { - interfaces.add(Type.getObjectType(i.next().toString())); + interfaces.add(Type.getObjectType(i.next())); } for (int i = 0; i < methods.size(); ++i) { @@ -359,9 +359,14 @@ * <tt>false</tt> to not perform any data flow check (see * {@link CheckMethodAdapter}). This option requires valid * maxLocals and maxStack values. + * @throws IllegalStateException + * If a subclass calls this constructor. */ public CheckClassAdapter(final ClassVisitor cv, final boolean checkDataFlow) { this(Opcodes.ASM5, cv, checkDataFlow); + if (getClass() != CheckClassAdapter.class) { + throw new IllegalStateException(); + } } /** @@ -471,7 +476,15 @@ CheckMethodAdapter.checkInternalName(outerName, "outer class name"); } if (innerName != null) { - CheckMethodAdapter.checkIdentifier(innerName, "inner class name"); + int start = 0; + while (start < innerName.length() + && Character.isDigit(innerName.charAt(start))) { + start++; + } + if (start == 0 || start < innerName.length()) { + CheckMethodAdapter.checkIdentifier(innerName, start, -1, + "inner class name"); + } } checkAccess(access, Opcodes.ACC_PUBLIC + Opcodes.ACC_PRIVATE + Opcodes.ACC_PROTECTED + Opcodes.ACC_STATIC
--- a/src/share/classes/jdk/internal/org/objectweb/asm/util/CheckFieldAdapter.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/util/CheckFieldAdapter.java Fri Nov 15 07:14:23 2013 -0800 @@ -79,9 +79,14 @@ * * @param fv * the field visitor to which this adapter must delegate calls. + * @throws IllegalStateException + * If a subclass calls this constructor. */ public CheckFieldAdapter(final FieldVisitor fv) { this(Opcodes.ASM5, fv); + if (getClass() != CheckFieldAdapter.class) { + throw new IllegalStateException(); + } } /**
--- a/src/share/classes/jdk/internal/org/objectweb/asm/util/CheckMethodAdapter.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/util/CheckMethodAdapter.java Fri Nov 15 07:14:23 2013 -0800 @@ -143,11 +143,6 @@ private Set<Label> usedLabels; /** - * If an explicit first frame has been visited before the first instruction. - */ - private boolean hasExplicitFirstFrame; - - /** * Number of visited frames in expanded form. */ private int expandedFrames; @@ -158,6 +153,11 @@ private int compressedFrames; /** + * Number of instructions before the last visited frame. + */ + private int lastFrame = -1; + + /** * The exception handler ranges. Each pair of list element contains the * start and end labels of an exception handler block. */ @@ -421,10 +421,15 @@ * the method visitor to which this adapter must delegate calls. * @param labels * a map of already visited labels (in other methods). + * @throws IllegalStateException + * If a subclass calls this constructor. */ public CheckMethodAdapter(final MethodVisitor mv, final Map<Label, Integer> labels) { this(Opcodes.ASM5, mv, labels); + if (getClass() != CheckMethodAdapter.class) { + throw new IllegalStateException(); + } } /** @@ -465,7 +470,7 @@ public CheckMethodAdapter(final int access, final String name, final String desc, final MethodVisitor cmv, final Map<Label, Integer> labels) { - this(new MethodNode(access, name, desc, null, null) { + this(new MethodNode(Opcodes.ASM5, access, name, desc, null, null) { @Override public void visitEnd() { Analyzer<BasicValue> a = new Analyzer<BasicValue>( @@ -499,6 +504,7 @@ } CheckClassAdapter.checkAccess(access, Opcodes.ACC_FINAL + Opcodes.ACC_MANDATED + Opcodes.ACC_SYNTHETIC); + super.visitParameter(name, access); } @Override @@ -566,6 +572,11 @@ @Override public void visitFrame(final int type, final int nLocal, final Object[] local, final int nStack, final Object[] stack) { + if (insnCount == lastFrame) { + throw new IllegalStateException( + "At most one frame can be visited at a given code location."); + } + lastFrame = insnCount; int mLocal; int mStack; switch (type) { @@ -621,13 +632,6 @@ checkFrameValue(stack[i]); } if (type == Opcodes.F_NEW) { - if (insnCount == 0) { - hasExplicitFirstFrame = true; - } else if (!hasExplicitFirstFrame) { - throw new RuntimeException( - "In expanded form, a first frame must be explicitly " - + "visited before the first instruction."); - } ++expandedFrames; } else { ++compressedFrames; @@ -709,9 +713,30 @@ ++insnCount; } + @Deprecated @Override - public void visitMethodInsn(final int opcode, final String owner, - final String name, final String desc) { + public void visitMethodInsn(int opcode, String owner, String name, + String desc) { + if (api >= Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, + opcode == Opcodes.INVOKEINTERFACE); + } + + @Override + public void visitMethodInsn(int opcode, String owner, String name, + String desc, boolean itf) { + if (api < Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc, itf); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, itf); + } + + private void doVisitMethodInsn(int opcode, final String owner, + final String name, final String desc, final boolean itf) { checkStartCode(); checkEndCode(); checkOpcode(opcode, 5); @@ -720,7 +745,21 @@ } checkInternalName(owner, "owner"); checkMethodDesc(desc); - super.visitMethodInsn(opcode, owner, name, desc); + if (opcode == Opcodes.INVOKEVIRTUAL && itf) { + throw new IllegalArgumentException( + "INVOKEVIRTUAL can't be used with interfaces"); + } + if (opcode == Opcodes.INVOKEINTERFACE && !itf) { + throw new IllegalArgumentException( + "INVOKEINTERFACE can't be used with classes"); + } + // Calling super.visitMethodInsn requires to call the correct version + // depending on this.api (otherwise infinite loops can occur). To + // simplify and to make it easier to automatically remove the backward + // compatibility code, we inline the code of the overridden method here. + if (mv != null) { + mv.visitMethodInsn(opcode, owner, name, desc, itf); + } ++insnCount; }
--- a/src/share/classes/jdk/internal/org/objectweb/asm/util/Printer.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/util/Printer.java Fri Nov 15 07:14:23 2013 -0800 @@ -401,8 +401,33 @@ * Method instruction. See * {@link jdk.internal.org.objectweb.asm.MethodVisitor#visitMethodInsn}. */ - public abstract void visitMethodInsn(final int opcode, final String owner, - final String name, final String desc); + @Deprecated + public void visitMethodInsn(final int opcode, final String owner, + final String name, final String desc) { + if (api >= Opcodes.ASM5) { + boolean itf = opcode == Opcodes.INVOKEINTERFACE; + visitMethodInsn(opcode, owner, name, desc, itf); + return; + } + throw new RuntimeException("Must be overriden"); + } + + /** + * Method instruction. See + * {@link jdk.internal.org.objectweb.asm.MethodVisitor#visitMethodInsn}. + */ + public void visitMethodInsn(final int opcode, final String owner, + final String name, final String desc, final boolean itf) { + if (api < Opcodes.ASM5) { + if (itf != (opcode == Opcodes.INVOKEINTERFACE)) { + throw new IllegalArgumentException( + "INVOKESPECIAL/STATIC on interfaces require ASM 5"); + } + visitMethodInsn(opcode, owner, name, desc); + return; + } + throw new RuntimeException("Must be overriden"); + } /** * Method instruction. See
--- a/src/share/classes/jdk/internal/org/objectweb/asm/util/Textifier.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/util/Textifier.java Fri Nov 15 07:14:23 2013 -0800 @@ -172,9 +172,15 @@ * Constructs a new {@link Textifier}. <i>Subclasses must not use this * constructor</i>. Instead, they must use the {@link #Textifier(int)} * version. + * + * @throws IllegalStateException + * If a subclass calls this constructor. */ public Textifier() { this(Opcodes.ASM5); + if (getClass() != Textifier.class) { + throw new IllegalStateException(); + } } /** @@ -821,14 +827,36 @@ text.add(buf.toString()); } + @Deprecated @Override public void visitMethodInsn(final int opcode, final String owner, final String name, final String desc) { + if (api >= Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, + opcode == Opcodes.INVOKEINTERFACE); + } + + @Override + public void visitMethodInsn(final int opcode, final String owner, + final String name, final String desc, final boolean itf) { + if (api < Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc, itf); + return; + } + doVisitMethodInsn(opcode, owner, name, desc, itf); + } + + private void doVisitMethodInsn(final int opcode, final String owner, + final String name, final String desc, final boolean itf) { buf.setLength(0); buf.append(tab2).append(OPCODES[opcode]).append(' '); appendDescriptor(INTERNAL_NAME, owner); buf.append('.').append(name).append(' '); appendDescriptor(METHOD_DESCRIPTOR, desc); + buf.append(' ').append(itf ? "itf" : ""); buf.append('\n'); text.add(buf.toString()); }
--- a/src/share/classes/jdk/internal/org/objectweb/asm/util/TraceMethodVisitor.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/util/TraceMethodVisitor.java Fri Nov 15 07:14:23 2013 -0800 @@ -176,11 +176,31 @@ super.visitFieldInsn(opcode, owner, name, desc); } + @Deprecated @Override - public void visitMethodInsn(final int opcode, final String owner, - final String name, final String desc) { + public void visitMethodInsn(int opcode, String owner, String name, + String desc) { + if (api >= Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc); + return; + } p.visitMethodInsn(opcode, owner, name, desc); - super.visitMethodInsn(opcode, owner, name, desc); + if (mv != null) { + mv.visitMethodInsn(opcode, owner, name, desc); + } + } + + @Override + public void visitMethodInsn(int opcode, String owner, String name, + String desc, boolean itf) { + if (api < Opcodes.ASM5) { + super.visitMethodInsn(opcode, owner, name, desc, itf); + return; + } + p.visitMethodInsn(opcode, owner, name, desc, itf); + if (mv != null) { + mv.visitMethodInsn(opcode, owner, name, desc, itf); + } } @Override
--- a/src/share/classes/jdk/internal/org/objectweb/asm/version.txt Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/version.txt Fri Nov 15 07:14:23 2013 -0800 @@ -1,12 +1,12 @@ Path: . -Working Copy Root Path: /w/lthudson/hudson-data/jobs/objectweb-cr-pull/workspace/ASM_5_FUTURE -URL: svn://svn.forge.objectweb.org/svnroot/asm/branches/ASM_5_FUTURE +Working Copy Root Path: /hudson/jobs/objectweb-pull/workspace/ASM_5_0_BETA +URL: svn://svn.forge.objectweb.org/svnroot/asm/trunk/asm Repository Root: svn://svn.forge.objectweb.org/svnroot/asm Repository UUID: 271bd773-ee82-43a6-9b2b-1890ed8ce7f9 -Revision: 1681 +Revision: 1700 Node Kind: directory Schedule: normal -Last Changed Author: forax -Last Changed Rev: 1681 -Last Changed Date: 2013-04-01 11:28:58 -0700 (Mon, 01 Apr 2013) +Last Changed Author: ebruneton +Last Changed Rev: 1700 +Last Changed Date: 2013-10-29 20:22:52 +0100 (Tue, 29 Oct 2013)
--- a/src/share/classes/sun/awt/AppContext.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/awt/AppContext.java Fri Nov 15 07:14:23 2013 -0800 @@ -820,30 +820,6 @@ // Set up JavaAWTAccess in SharedSecrets static { sun.misc.SharedSecrets.setJavaAWTAccess(new sun.misc.JavaAWTAccess() { - public Object get(Object key) { - AppContext ac = getAppContext(); - return (ac == null) ? null : ac.get(key); - } - public void put(Object key, Object value) { - AppContext ac = getAppContext(); - if (ac != null) { - ac.put(key, value); - } - } - public void remove(Object key) { - AppContext ac = getAppContext(); - if (ac != null) { - ac.remove(key); - } - } - public boolean isDisposed() { - AppContext ac = getAppContext(); - return (ac == null) ? true : ac.isDisposed(); - } - public boolean isMainAppContext() { - return (numAppContexts.get() == 1 && mainAppContext != null); - } - private boolean hasRootThreadGroup(final AppContext ecx) { return AccessController.doPrivileged(new PrivilegedAction<Boolean>() { @Override
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/share/classes/sun/management/BaseOperatingSystemImpl.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2003, 2008, 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.OperatingSystemMXBean; +import java.lang.management.ManagementFactory; +import javax.management.ObjectName; +import sun.misc.Unsafe; + +/** + * Implementation class for the operating system. + * Standard and committed hotspot-specific metrics if any. + * + * ManagementFactory.getOperatingSystemMXBean() returns an instance + * of this class. + */ +public class BaseOperatingSystemImpl implements OperatingSystemMXBean { + + private final VMManagement jvm; + + /** + * Constructor of BaseOperatingSystemImpl class. + */ + protected BaseOperatingSystemImpl(VMManagement vm) { + this.jvm = vm; + } + + public String getName() { + return jvm.getOsName(); + } + + public String getArch() { + return jvm.getOsArch(); + } + + public String getVersion() { + return jvm.getOsVersion(); + } + + public int getAvailableProcessors() { + return jvm.getAvailableProcessors(); + } + + private static final Unsafe unsafe = Unsafe.getUnsafe(); + private double[] loadavg = new double[1]; + public double getSystemLoadAverage() { + if (unsafe.getLoadAverage(loadavg, 1) == 1) { + return loadavg[0]; + } else { + return -1.0; + } + } + public ObjectName getObjectName() { + return Util.newObjectName(ManagementFactory.OPERATING_SYSTEM_MXBEAN_NAME); + } + +}
--- a/src/share/classes/sun/management/ManagementFactoryHelper.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/management/ManagementFactoryHelper.java Fri Nov 15 07:14:23 2013 -0800 @@ -46,7 +46,6 @@ import java.util.HashMap; import java.util.List; import com.sun.management.DiagnosticCommandMBean; -import com.sun.management.OSMBeanFactory; import com.sun.management.HotSpotDiagnosticMXBean; import static java.lang.management.ManagementFactory.*; @@ -104,8 +103,7 @@ public static synchronized OperatingSystemMXBean getOperatingSystemMXBean() { if (osMBean == null) { - osMBean = (OperatingSystemImpl) - OSMBeanFactory.getOperatingSystemMXBean(jvm); + osMBean = new OperatingSystemImpl(jvm); } return osMBean; }
--- a/src/share/classes/sun/management/OperatingSystemImpl.java Thu Nov 14 23:32:31 2013 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2003, 2008, 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.OperatingSystemMXBean; -import java.lang.management.ManagementFactory; -import javax.management.ObjectName; -import sun.misc.Unsafe; - -/** - * Implementation class for the operating system. - * Standard and committed hotspot-specific metrics if any. - * - * ManagementFactory.getOperatingSystemMXBean() returns an instance - * of this class. - */ -public class OperatingSystemImpl implements OperatingSystemMXBean { - - private final VMManagement jvm; - - /** - * Constructor of OperatingSystemImpl class. - */ - protected OperatingSystemImpl(VMManagement vm) { - this.jvm = vm; - } - - public String getName() { - return jvm.getOsName(); - } - - public String getArch() { - return jvm.getOsArch(); - } - - public String getVersion() { - return jvm.getOsVersion(); - } - - public int getAvailableProcessors() { - return jvm.getAvailableProcessors(); - } - - private static final Unsafe unsafe = Unsafe.getUnsafe(); - private double[] loadavg = new double[1]; - public double getSystemLoadAverage() { - if (unsafe.getLoadAverage(loadavg, 1) == 1) { - return loadavg[0]; - } else { - return -1.0; - } - } - public ObjectName getObjectName() { - return Util.newObjectName(ManagementFactory.OPERATING_SYSTEM_MXBEAN_NAME); - } - -}
--- a/src/share/classes/sun/management/RuntimeImpl.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/management/RuntimeImpl.java Fri Nov 15 07:14:23 2013 -0800 @@ -110,12 +110,7 @@ } public long getUptime() { - long current = System.currentTimeMillis(); - - // TODO: If called from client side when we support - // MBean proxy to read performance counters from shared memory, - // need to check if the monitored VM exitd. - return (current - vmStartupTime); + return jvm.getUptime(); } public long getStartTime() {
--- a/src/share/classes/sun/management/VMManagement.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/management/VMManagement.java Fri Nov 15 07:14:23 2013 -0800 @@ -71,6 +71,7 @@ public String getBootClassPath(); public List<String> getVmArguments(); public long getStartupTime(); + public long getUptime(); public int getAvailableProcessors(); // Compilation Subsystem
--- a/src/share/classes/sun/management/VMManagementImpl.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/management/VMManagementImpl.java Fri Nov 15 07:14:23 2013 -0800 @@ -179,6 +179,10 @@ return result; } + public long getUptime() { + return getUptime0(); + } + private List<String> vmArgs = null; public synchronized List<String> getVmArguments() { if (vmArgs == null) { @@ -192,6 +196,7 @@ public native String[] getVmArguments0(); public native long getStartupTime(); + private native long getUptime0(); public native int getAvailableProcessors(); // Compilation Subsystem
--- a/src/share/classes/sun/misc/Cleaner.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/misc/Cleaner.java Fri Nov 15 07:14:23 2013 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -57,14 +57,14 @@ */ public class Cleaner - extends PhantomReference + extends PhantomReference<Object> { // Dummy reference queue, needed because the PhantomReference constructor // insists that we pass a queue. Nothing will ever be placed on this queue // since the reference handler invokes cleaners explicitly. // - private static final ReferenceQueue dummyQueue = new ReferenceQueue(); + private static final ReferenceQueue<Object> dummyQueue = new ReferenceQueue<>(); // Doubly-linked list of live cleaners, which prevents the cleaners // themselves from being GC'd before their referents @@ -119,6 +119,7 @@ /** * Creates a new cleaner. * + * @param ob the referent object to be cleaned * @param thunk * The cleanup code to be run when the cleaner is invoked. The * cleanup code is run directly from the reference-handler thread,
--- a/src/share/classes/sun/misc/JavaAWTAccess.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/misc/JavaAWTAccess.java Fri Nov 15 07:14:23 2013 -0800 @@ -33,12 +33,4 @@ // or running in the main app context, returns null. // Otherwise, returns the AppContext of the calling applet. public Object getAppletContext(); - - // convenience methods to cache objects in the current thread group's - // AppContext - public Object get(Object key); - public void put(Object key, Object value); - public void remove(Object key); - public boolean isDisposed(); - public boolean isMainAppContext(); }
--- a/src/share/classes/sun/misc/JavaLangAccess.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/misc/JavaLangAccess.java Fri Nov 15 07:14:23 2013 -0800 @@ -127,4 +127,9 @@ * inherited AccessControlContext. */ Thread newThreadWithAcc(Runnable target, AccessControlContext acc); + + /** + * Invokes the finalize method of the given object. + */ + void invokeFinalize(Object o) throws Throwable; }
--- a/src/share/classes/sun/misc/ProxyGenerator.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/misc/ProxyGenerator.java Fri Nov 15 07:14:23 2013 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -384,7 +384,7 @@ private String className; /** proxy interfaces */ - private Class[] interfaces; + private Class<?>[] interfaces; /** proxy class access flags */ private int accessFlags;
--- a/src/share/classes/sun/misc/VM.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/misc/VM.java Fri Nov 15 07:14:23 2013 -0800 @@ -148,6 +148,7 @@ private static volatile boolean booted = false; + private static final Object lock = new Object(); // Invoked by by System.initializeSystemClass just before returning. // Subsystems that are invoked during initialization can check this @@ -155,13 +156,27 @@ // application class loader has been set up. // public static void booted() { - booted = true; + synchronized (lock) { + booted = true; + lock.notifyAll(); + } } public static boolean isBooted() { return booted; } + // Waits until VM completes initialization + // + // This method is invoked by the Finalizer thread + public static void awaitBooted() throws InterruptedException { + synchronized (lock) { + while (!booted) { + lock.wait(); + } + } + } + // A user-settable upper limit on the maximum amount of allocatable direct // buffer memory. This value may be changed during VM initialization if // "java" is launched with "-XX:MaxDirectMemorySize=<size>".
--- a/src/share/classes/sun/reflect/NativeConstructorAccessorImpl.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/reflect/NativeConstructorAccessorImpl.java Fri Nov 15 07:14:23 2013 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,6 +26,7 @@ package sun.reflect; import java.lang.reflect.*; +import sun.reflect.misc.ReflectUtil; /** Used only for the first few invocations of a Constructor; afterward, switches to bytecode-based implementation */ @@ -44,7 +45,11 @@ IllegalArgumentException, InvocationTargetException { - if (++numInvocations > ReflectionFactory.inflationThreshold()) { + // We can't inflate a constructor belonging to a vm-anonymous class + // because that kind of class can't be referred to by name, hence can't + // be found from the generated bytecode. + if (++numInvocations > ReflectionFactory.inflationThreshold() + && !ReflectUtil.isVMAnonymousClass(c.getDeclaringClass())) { ConstructorAccessorImpl acc = (ConstructorAccessorImpl) new MethodAccessorGenerator(). generateConstructor(c.getDeclaringClass(),
--- a/src/share/classes/sun/reflect/NativeMethodAccessorImpl.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/reflect/NativeMethodAccessorImpl.java Fri Nov 15 07:14:23 2013 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,6 +26,7 @@ package sun.reflect; import java.lang.reflect.*; +import sun.reflect.misc.ReflectUtil; /** Used only for the first few invocations of a Method; afterward, switches to bytecode-based implementation */ @@ -42,7 +43,11 @@ public Object invoke(Object obj, Object[] args) throws IllegalArgumentException, InvocationTargetException { - if (++numInvocations > ReflectionFactory.inflationThreshold()) { + // We can't inflate methods belonging to vm-anonymous classes because + // that kind of class can't be referred to by name, hence can't be + // found from the generated bytecode. + if (++numInvocations > ReflectionFactory.inflationThreshold() + && !ReflectUtil.isVMAnonymousClass(method.getDeclaringClass())) { MethodAccessorImpl acc = (MethodAccessorImpl) new MethodAccessorGenerator(). generateMethod(method.getDeclaringClass(),
--- a/src/share/classes/sun/reflect/ReflectionFactory.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/reflect/ReflectionFactory.java Fri Nov 15 07:14:23 2013 -0800 @@ -33,6 +33,7 @@ import java.security.AccessController; import java.security.Permission; import java.security.PrivilegedAction; +import sun.reflect.misc.ReflectUtil; /** <P> The master factory for all reflective objects, both those in java.lang.reflect (Fields, Methods, Constructors) as well as their @@ -144,7 +145,7 @@ public MethodAccessor newMethodAccessor(Method method) { checkInitted(); - if (noInflation) { + if (noInflation && !ReflectUtil.isVMAnonymousClass(method.getDeclaringClass())) { return new MethodAccessorGenerator(). generateMethod(method.getDeclaringClass(), method.getName(), @@ -181,7 +182,7 @@ return new BootstrapConstructorAccessorImpl(c); } - if (noInflation) { + if (noInflation && !ReflectUtil.isVMAnonymousClass(c.getDeclaringClass())) { return new MethodAccessorGenerator(). generateConstructor(c.getDeclaringClass(), c.getParameterTypes(),
--- a/src/share/classes/sun/reflect/annotation/AnnotatedTypeFactory.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/reflect/annotation/AnnotatedTypeFactory.java Fri Nov 15 07:14:23 2013 -0800 @@ -34,7 +34,7 @@ import static sun.reflect.annotation.TypeAnnotation.*; -public class AnnotatedTypeFactory { +public final class AnnotatedTypeFactory { /** * Create an AnnotatedType. * @@ -47,10 +47,10 @@ * corresponds to */ public static AnnotatedType buildAnnotatedType(Type type, - LocationInfo currentLoc, - TypeAnnotation[] actualTypeAnnos, - TypeAnnotation[] allOnSameTarget, - AnnotatedElement decl) { + LocationInfo currentLoc, + TypeAnnotation[] actualTypeAnnos, + TypeAnnotation[] allOnSameTarget, + AnnotatedElement decl) { if (type == null) { return EMPTY_ANNOTATED_TYPE; } @@ -156,40 +156,40 @@ } @Override - public Annotation[] getDeclaredAnnotations() { + public final Annotation[] getDeclaredAnnotations() { return annotations.values().toArray(new Annotation[0]); } @Override @SuppressWarnings("unchecked") - public <T extends Annotation> T getDeclaredAnnotation(Class<T> annotation) { + public final <T extends Annotation> T getDeclaredAnnotation(Class<T> annotation) { return (T)annotations.get(annotation); } @Override - public <T extends Annotation> T[] getDeclaredAnnotationsByType(Class<T> annotation) { + public final <T extends Annotation> T[] getDeclaredAnnotationsByType(Class<T> annotation) { return AnnotationSupport.getDirectlyAndIndirectlyPresent(annotations, annotation); } // AnnotatedType @Override - public Type getType() { + public final Type getType() { return type; } // Implementation details - LocationInfo getLocation() { + final LocationInfo getLocation() { return location; } - TypeAnnotation[] getTypeAnnotations() { + final TypeAnnotation[] getTypeAnnotations() { return allOnSameTargetTypeAnnotations; } - AnnotatedElement getDecl() { + final AnnotatedElement getDecl() { return decl; } } - private static class AnnotatedArrayTypeImpl extends AnnotatedTypeBaseImpl implements AnnotatedArrayType { + private static final class AnnotatedArrayTypeImpl extends AnnotatedTypeBaseImpl implements AnnotatedArrayType { AnnotatedArrayTypeImpl(Type type, LocationInfo location, TypeAnnotation[] actualTypeAnnotations, TypeAnnotation[] allOnSameTargetTypeAnnotations, AnnotatedElement decl) { @@ -215,7 +215,7 @@ } } - private static class AnnotatedTypeVariableImpl extends AnnotatedTypeBaseImpl implements AnnotatedTypeVariable { + private static final class AnnotatedTypeVariableImpl extends AnnotatedTypeBaseImpl implements AnnotatedTypeVariable { AnnotatedTypeVariableImpl(TypeVariable<?> type, LocationInfo location, TypeAnnotation[] actualTypeAnnotations, TypeAnnotation[] allOnSameTargetTypeAnnotations, AnnotatedElement decl) { @@ -232,7 +232,8 @@ } } - private static class AnnotatedParameterizedTypeImpl extends AnnotatedTypeBaseImpl implements AnnotatedParameterizedType { + private static final class AnnotatedParameterizedTypeImpl extends AnnotatedTypeBaseImpl + implements AnnotatedParameterizedType { AnnotatedParameterizedTypeImpl(ParameterizedType type, LocationInfo location, TypeAnnotation[] actualTypeAnnotations, TypeAnnotation[] allOnSameTargetTypeAnnotations, AnnotatedElement decl) { @@ -265,7 +266,7 @@ } } - private static class AnnotatedWildcardTypeImpl extends AnnotatedTypeBaseImpl implements AnnotatedWildcardType { + private static final class AnnotatedWildcardTypeImpl extends AnnotatedTypeBaseImpl implements AnnotatedWildcardType { private final boolean hasUpperBounds; AnnotatedWildcardTypeImpl(WildcardType type, LocationInfo location, TypeAnnotation[] actualTypeAnnotations, TypeAnnotation[] allOnSameTargetTypeAnnotations,
--- a/src/share/classes/sun/reflect/annotation/TypeAnnotation.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/reflect/annotation/TypeAnnotation.java Fri Nov 15 07:14:23 2013 -0800 @@ -40,7 +40,7 @@ * distinguish between '@A Inner.@B Outer' in for example nested types), * target info and the declaration the TypeAnnotaiton was parsed from. */ -public class TypeAnnotation { +public final class TypeAnnotation { private final TypeAnnotationTargetInfo targetInfo; private final LocationInfo loc; private final Annotation annotation; @@ -92,7 +92,8 @@ METHOD_FORMAL_PARAMETER, THROWS; } - public static class TypeAnnotationTargetInfo { + + public static final class TypeAnnotationTargetInfo { private final TypeAnnotationTarget target; private final int count; private final int secondaryIndex; @@ -131,7 +132,7 @@ } } - public static class LocationInfo { + public static final class LocationInfo { private final int depth; private final Location[] locations; @@ -204,7 +205,7 @@ return true; } - public static class Location { + public static final class Location { public final byte tag; public final byte index;
--- a/src/share/classes/sun/reflect/annotation/TypeAnnotationParser.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/reflect/annotation/TypeAnnotationParser.java Fri Nov 15 07:14:23 2013 -0800 @@ -43,7 +43,7 @@ * TypeAnnotationParser implements the logic needed to parse * TypeAnnotations from an array of bytes. */ -public class TypeAnnotationParser { +public final class TypeAnnotationParser { private static final TypeAnnotation[] EMPTY_TYPE_ANNOTATION_ARRAY = new TypeAnnotation[0]; /** @@ -237,7 +237,7 @@ return parseAnnotatedBounds(bounds, decl, typeVarIndex, LocationInfo.BASE_LOCATION); } //helper for above - static <D extends GenericDeclaration> AnnotatedType[] parseAnnotatedBounds(Type[] bounds, + private static <D extends GenericDeclaration> AnnotatedType[] parseAnnotatedBounds(Type[] bounds, D decl, int typeVarIndex, LocationInfo loc) {
--- a/src/share/classes/sun/reflect/generics/reflectiveObjects/ParameterizedTypeImpl.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/reflect/generics/reflectiveObjects/ParameterizedTypeImpl.java Fri Nov 15 07:14:23 2013 -0800 @@ -52,7 +52,7 @@ } private void validateConstructorArguments() { - TypeVariable/*<?>*/[] formals = rawType.getTypeParameters(); + TypeVariable<?>[] formals = rawType.getTypeParameters(); // check correct arity of actual type args if (formals.length != actualTypeArguments.length){ throw new MalformedParameterizedTypeException();
--- a/src/share/classes/sun/reflect/generics/repository/GenericDeclRepository.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/reflect/generics/repository/GenericDeclRepository.java Fri Nov 15 07:14:23 2013 -0800 @@ -42,7 +42,7 @@ public abstract class GenericDeclRepository<S extends Signature> extends AbstractRepository<S> { - private TypeVariable[] typeParams; // caches the formal type parameters + private TypeVariable<?>[] typeParams; // caches the formal type parameters protected GenericDeclRepository(String rawSig, GenericsFactory f) { super(rawSig, f); @@ -64,7 +64,7 @@ * Return the formal type parameters of this generic declaration. * @return the formal type parameters of this generic declaration */ - public TypeVariable/*<?>*/[] getTypeParameters(){ + public TypeVariable<?>[] getTypeParameters(){ if (typeParams == null) { // lazily initialize type parameters // first, extract type parameter subtree(s) from AST FormalTypeParameter[] ftps = getTree().getFormalTypeParameters();
--- a/src/share/classes/sun/reflect/misc/ReflectUtil.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/reflect/misc/ReflectUtil.java Fri Nov 15 07:14:23 2013 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -298,4 +298,13 @@ } return false; } + + /** + * Checks if {@code Class cls} is a VM-anonymous class + * as defined by {@link sun.misc.Unsafe#defineAnonymousClass} + * (not to be confused with a Java Language anonymous inner class). + */ + public static boolean isVMAnonymousClass(Class<?> cls) { + return cls.getName().indexOf("/") > -1; + } }
--- a/src/share/classes/sun/rmi/rmic/Main.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/rmi/rmic/Main.java Fri Nov 15 07:14:23 2013 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -494,7 +494,7 @@ extDirsArg); BatchEnvironment result = null; try { - Class[] ctorArgTypes = {OutputStream.class,ClassPath.class,Main.class}; + Class<?>[] ctorArgTypes = {OutputStream.class,ClassPath.class,Main.class}; Object[] ctorArgs = {out,classPath,this}; Constructor<? extends BatchEnvironment> constructor = environmentClass.getConstructor(ctorArgTypes);
--- a/src/share/classes/sun/rmi/server/LoaderHandler.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/rmi/server/LoaderHandler.java Fri Nov 15 07:14:23 2013 -0800 @@ -692,7 +692,7 @@ * Define a proxy class in the given class loader. The proxy * class will implement the given interfaces Classes. */ - private static Class<?> loadProxyClass(ClassLoader loader, Class[] interfaces) + private static Class<?> loadProxyClass(ClassLoader loader, Class<?>[] interfaces) throws ClassNotFoundException { try { @@ -719,7 +719,7 @@ */ private static ClassLoader loadProxyInterfaces(String[] interfaces, ClassLoader loader, - Class[] classObjs, + Class<?>[] classObjs, boolean[] nonpublic) throws ClassNotFoundException {
--- a/src/share/classes/sun/rmi/server/UnicastServerRef.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/rmi/server/UnicastServerRef.java Fri Nov 15 07:14:23 2013 -0800 @@ -299,7 +299,7 @@ logCall(obj, method); // unmarshal parameters - Class[] types = method.getParameterTypes(); + Class<?>[] types = method.getParameterTypes(); Object[] params = new Object[types.length]; try {
--- a/src/share/classes/sun/rmi/server/Util.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/rmi/server/Util.java Fri Nov 15 07:14:23 2013 -0800 @@ -87,7 +87,7 @@ Collections.synchronizedMap(new WeakHashMap<Class<?>, Void>(11)); /** parameter types for stub constructor */ - private static final Class[] stubConsParamTypes = { RemoteRef.class }; + private static final Class<?>[] stubConsParamTypes = { RemoteRef.class }; private Util() { } @@ -143,7 +143,7 @@ } final ClassLoader loader = implClass.getClassLoader(); - final Class[] interfaces = getRemoteInterfaces(implClass); + final Class<?>[] interfaces = getRemoteInterfaces(implClass); final InvocationHandler handler = new RemoteObjectInvocationHandler(clientRef);
--- a/src/share/classes/sun/security/tools/jarsigner/Main.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/security/tools/jarsigner/Main.java Fri Nov 15 07:14:23 2013 -0800 @@ -1781,14 +1781,14 @@ try { java.security.cert.Certificate[] cs = null; if (altCertChain != null) { - try { + try (FileInputStream fis = new FileInputStream(altCertChain)) { cs = CertificateFactory.getInstance("X.509"). - generateCertificates(new FileInputStream(altCertChain)). + generateCertificates(fis). toArray(new Certificate[0]); - } catch (CertificateException ex) { - error(rb.getString("Cannot.restore.certchain.from.file.specified")); } catch (FileNotFoundException ex) { error(rb.getString("File.specified.by.certchain.does.not.exist")); + } catch (CertificateException | IOException ex) { + error(rb.getString("Cannot.restore.certchain.from.file.specified")); } } else { try {
--- a/src/share/classes/sun/text/resources/sv/FormatData_sv_SE.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/text/resources/sv/FormatData_sv_SE.java Fri Nov 15 07:14:23 2013 -0800 @@ -52,7 +52,7 @@ new String[] { "#,##0.###;-#,##0.###", // decimal pattern "#,##0.00 \u00A4;-#,##0.00 \u00A4", // currency pattern - "#,##0%" // percent pattern + "#,##0 %" // percent pattern } }, };
--- a/src/share/classes/sun/tools/jinfo/JInfo.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/tools/jinfo/JInfo.java Fri Nov 15 07:14:23 2013 -0800 @@ -26,7 +26,6 @@ package sun.tools.jinfo; import java.lang.reflect.Method; -import java.io.File; import java.io.IOException; import java.io.InputStream; @@ -44,7 +43,7 @@ public static void main(String[] args) throws Exception { if (args.length == 0) { - usage(); // no arguments + usage(1); // no arguments } boolean useSA = true; @@ -56,14 +55,20 @@ // (<executable> and <code file>). So, total // argument count including option has to 2 or 3. if (args.length != 2 && args.length != 3) { - usage(); + usage(1); } } else if (arg1.equals("-flag")) { // do not use SA, use attach-on-demand useSA = false; } else { // unknown option or -h or -help, print help - usage(); + int exit; + if (arg1.equals("-help") || arg1.equals("-h")) { + exit = 0; + } else { + exit = 1; + } + usage(exit); } } @@ -75,7 +80,13 @@ String option = args[1]; flag(pid, option); } else { - usage(); + int exit; + if (arg1.equals("-help") || arg1.equals("-h")) { + exit = 0; + } else { + exit = 1; + } + usage(exit); } } } @@ -86,7 +97,7 @@ // Tool not available on this platform. Class<?> c = loadClass(tool); if (c == null) { - usage(); + usage(1); } // invoke the main method with the arguments @@ -176,39 +187,39 @@ // print usage message - private static void usage() { + private static void usage(int exit) { Class<?> c = loadClass("sun.jvm.hotspot.tools.JInfo"); boolean usageSA = (c != null); - System.out.println("Usage:"); + System.err.println("Usage:"); if (usageSA) { - System.out.println(" jinfo [option] <pid>"); - System.out.println(" (to connect to running process)"); - System.out.println(" jinfo [option] <executable <core>"); - System.out.println(" (to connect to a core file)"); - System.out.println(" jinfo [option] [server_id@]<remote server IP or hostname>"); - System.out.println(" (to connect to remote debug server)"); - System.out.println(""); - System.out.println("where <option> is one of:"); - System.out.println(" -flag <name> to print the value of the named VM flag"); - System.out.println(" -flag [+|-]<name> to enable or disable the named VM flag"); - System.out.println(" -flag <name>=<value> to set the named VM flag to the given value"); - System.out.println(" -flags to print VM flags"); - System.out.println(" -sysprops to print Java system properties"); - System.out.println(" <no option> to print both of the above"); - System.out.println(" -h | -help to print this help message"); + System.err.println(" jinfo [option] <pid>"); + System.err.println(" (to connect to running process)"); + System.err.println(" jinfo [option] <executable <core>"); + System.err.println(" (to connect to a core file)"); + System.err.println(" jinfo [option] [server_id@]<remote server IP or hostname>"); + System.err.println(" (to connect to remote debug server)"); + System.err.println(""); + System.err.println("where <option> is one of:"); + System.err.println(" -flag <name> to print the value of the named VM flag"); + System.err.println(" -flag [+|-]<name> to enable or disable the named VM flag"); + System.err.println(" -flag <name>=<value> to set the named VM flag to the given value"); + System.err.println(" -flags to print VM flags"); + System.err.println(" -sysprops to print Java system properties"); + System.err.println(" <no option> to print both of the above"); + System.err.println(" -h | -help to print this help message"); } else { - System.out.println(" jinfo <option> <pid>"); - System.out.println(" (to connect to a running process)"); - System.out.println(""); - System.out.println("where <option> is one of:"); - System.out.println(" -flag <name> to print the value of the named VM flag"); - System.out.println(" -flag [+|-]<name> to enable or disable the named VM flag"); - System.out.println(" -flag <name>=<value> to set the named VM flag to the given value"); - System.out.println(" -h | -help to print this help message"); + System.err.println(" jinfo <option> <pid>"); + System.err.println(" (to connect to a running process)"); + System.err.println(""); + System.err.println("where <option> is one of:"); + System.err.println(" -flag <name> to print the value of the named VM flag"); + System.err.println(" -flag [+|-]<name> to enable or disable the named VM flag"); + System.err.println(" -flag <name>=<value> to set the named VM flag to the given value"); + System.err.println(" -h | -help to print this help message"); } - System.exit(1); + System.exit(exit); } }
--- a/src/share/classes/sun/tools/jmap/JMap.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/tools/jmap/JMap.java Fri Nov 15 07:14:23 2013 -0800 @@ -60,7 +60,7 @@ public static void main(String[] args) throws Exception { if (args.length == 0) { - usage(); // no arguments + usage(1); // no arguments } // used to indicate if we should use SA @@ -77,11 +77,13 @@ if (!arg.startsWith("-")) { break; } - if (arg.equals(FORCE_SA_OPTION)) { + if (arg.equals("-help") || arg.equals("-h")) { + usage(0); + } else if (arg.equals(FORCE_SA_OPTION)) { useSA = true; } else { if (option != null) { - usage(); // option already specified + usage(1); // option already specified } option = arg; } @@ -101,7 +103,7 @@ // only one parameter (the process-id) int paramCount = args.length - optionCount; if (paramCount == 0 || paramCount > 2) { - usage(); + usage(1); } if (optionCount == 0 || paramCount != 1) { @@ -139,7 +141,7 @@ } else if (option.startsWith(DUMP_OPTION_PREFIX)) { dump(pid, option); } else { - usage(); + usage(1); } } } @@ -161,7 +163,9 @@ if (option.startsWith(DUMP_OPTION_PREFIX)) { // first check that the option can be parsed String fn = parseDumpOptions(option); - if (fn == null) usage(); + if (fn == null) { + usage(1); + } // tool for heap dumping tool = "sun.jvm.hotspot.tools.HeapDumper"; @@ -180,13 +184,13 @@ } } if (tool == null) { - usage(); // no mapping to tool + usage(1); // no mapping to tool } // Tool not available on this platform. Class<?> c = loadClass(tool); if (c == null) { - usage(); + usage(1); } // invoke the main method with the arguments @@ -225,7 +229,7 @@ // parse the options to get the dump filename String filename = parseDumpOptions(options); if (filename == null) { - usage(); // invalid options or no filename + usage(1); // invalid options or no filename } // get the canonical path - important to avoid just passing @@ -341,49 +345,49 @@ } // print usage message - private static void usage() { - System.out.println("Usage:"); + private static void usage(int exit) { + System.err.println("Usage:"); if (haveSA()) { - System.out.println(" jmap [option] <pid>"); - System.out.println(" (to connect to running process)"); - System.out.println(" jmap [option] <executable <core>"); - System.out.println(" (to connect to a core file)"); - System.out.println(" jmap [option] [server_id@]<remote server IP or hostname>"); - System.out.println(" (to connect to remote debug server)"); - System.out.println(""); - System.out.println("where <option> is one of:"); - System.out.println(" <none> to print same info as Solaris pmap"); - System.out.println(" -heap to print java heap summary"); - System.out.println(" -histo[:live] to print histogram of java object heap; if the \"live\""); - System.out.println(" suboption is specified, only count live objects"); - System.out.println(" -clstats to print class loader statistics"); - System.out.println(" -finalizerinfo to print information on objects awaiting finalization"); - System.out.println(" -dump:<dump-options> to dump java heap in hprof binary format"); - System.out.println(" dump-options:"); - System.out.println(" live dump only live objects; if not specified,"); - System.out.println(" all objects in the heap are dumped."); - System.out.println(" format=b binary format"); - System.out.println(" file=<file> dump heap to <file>"); - System.out.println(" Example: jmap -dump:live,format=b,file=heap.bin <pid>"); - System.out.println(" -F force. Use with -dump:<dump-options> <pid> or -histo"); - System.out.println(" to force a heap dump or histogram when <pid> does not"); - System.out.println(" respond. The \"live\" suboption is not supported"); - System.out.println(" in this mode."); - System.out.println(" -h | -help to print this help message"); - System.out.println(" -J<flag> to pass <flag> directly to the runtime system"); + System.err.println(" jmap [option] <pid>"); + System.err.println(" (to connect to running process)"); + System.err.println(" jmap [option] <executable <core>"); + System.err.println(" (to connect to a core file)"); + System.err.println(" jmap [option] [server_id@]<remote server IP or hostname>"); + System.err.println(" (to connect to remote debug server)"); + System.err.println(""); + System.err.println("where <option> is one of:"); + System.err.println(" <none> to print same info as Solaris pmap"); + System.err.println(" -heap to print java heap summary"); + System.err.println(" -histo[:live] to print histogram of java object heap; if the \"live\""); + System.err.println(" suboption is specified, only count live objects"); + System.err.println(" -clstats to print class loader statistics"); + System.err.println(" -finalizerinfo to print information on objects awaiting finalization"); + System.err.println(" -dump:<dump-options> to dump java heap in hprof binary format"); + System.err.println(" dump-options:"); + System.err.println(" live dump only live objects; if not specified,"); + System.err.println(" all objects in the heap are dumped."); + System.err.println(" format=b binary format"); + System.err.println(" file=<file> dump heap to <file>"); + System.err.println(" Example: jmap -dump:live,format=b,file=heap.bin <pid>"); + System.err.println(" -F force. Use with -dump:<dump-options> <pid> or -histo"); + System.err.println(" to force a heap dump or histogram when <pid> does not"); + System.err.println(" respond. The \"live\" suboption is not supported"); + System.err.println(" in this mode."); + System.err.println(" -h | -help to print this help message"); + System.err.println(" -J<flag> to pass <flag> directly to the runtime system"); } else { - System.out.println(" jmap -histo <pid>"); - System.out.println(" (to connect to running process and print histogram of java object heap"); - System.out.println(" jmap -dump:<dump-options> <pid>"); - System.out.println(" (to connect to running process and dump java heap)"); - System.out.println(""); - System.out.println(" dump-options:"); - System.out.println(" format=b binary default"); - System.out.println(" file=<file> dump heap to <file>"); - System.out.println(""); - System.out.println(" Example: jmap -dump:format=b,file=heap.bin <pid>"); + System.err.println(" jmap -histo <pid>"); + System.err.println(" (to connect to running process and print histogram of java object heap"); + System.err.println(" jmap -dump:<dump-options> <pid>"); + System.err.println(" (to connect to running process and dump java heap)"); + System.err.println(""); + System.err.println(" dump-options:"); + System.err.println(" format=b binary default"); + System.err.println(" file=<file> dump heap to <file>"); + System.err.println(""); + System.err.println(" Example: jmap -dump:format=b,file=heap.bin <pid>"); } - System.exit(1); + System.exit(exit); } }
--- a/src/share/classes/sun/tools/jps/Jps.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/tools/jps/Jps.java Fri Nov 15 07:14:23 2013 -0800 @@ -45,11 +45,11 @@ } catch (IllegalArgumentException e) { System.err.println(e.getMessage()); Arguments.printUsage(System.err); - return; + System.exit(1); } if (arguments.isHelp()) { - Arguments.printUsage(System.out); + Arguments.printUsage(System.err); System.exit(0); } @@ -165,6 +165,7 @@ e.printStackTrace(); } } + System.exit(1); } } }
--- a/src/share/classes/sun/tools/jstack/JStack.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/tools/jstack/JStack.java Fri Nov 15 07:14:23 2013 -0800 @@ -42,7 +42,7 @@ public class JStack { public static void main(String[] args) throws Exception { if (args.length == 0) { - usage(); // no arguments + usage(1); // no arguments } boolean useSA = false; @@ -56,16 +56,20 @@ if (!arg.startsWith("-")) { break; } - if (arg.equals("-F")) { + if (arg.equals("-help") || arg.equals("-h")) { + usage(0); + } + else if (arg.equals("-F")) { useSA = true; - } else { + } + else { if (arg.equals("-m")) { mixed = true; } else { if (arg.equals("-l")) { locks = true; } else { - usage(); + usage(1); } } } @@ -81,7 +85,7 @@ // we assume core file and executable so we use SA. int paramCount = args.length - optionCount; if (paramCount == 0 || paramCount > 2) { - usage(); + usage(1); } if (paramCount == 2) { useSA = true; @@ -118,7 +122,7 @@ private static void runJStackTool(boolean mixed, boolean locks, String args[]) throws Exception { Class<?> cl = loadSAClass(); if (cl == null) { - usage(); // SA not available + usage(1); // SA not available } // JStack tool also takes -m and -l arguments @@ -199,31 +203,31 @@ } // print usage message - private static void usage() { - System.out.println("Usage:"); - System.out.println(" jstack [-l] <pid>"); - System.out.println(" (to connect to running process)"); + private static void usage(int exit) { + System.err.println("Usage:"); + System.err.println(" jstack [-l] <pid>"); + System.err.println(" (to connect to running process)"); if (loadSAClass() != null) { - System.out.println(" jstack -F [-m] [-l] <pid>"); - System.out.println(" (to connect to a hung process)"); - System.out.println(" jstack [-m] [-l] <executable> <core>"); - System.out.println(" (to connect to a core file)"); - System.out.println(" jstack [-m] [-l] [server_id@]<remote server IP or hostname>"); - System.out.println(" (to connect to a remote debug server)"); + System.err.println(" jstack -F [-m] [-l] <pid>"); + System.err.println(" (to connect to a hung process)"); + System.err.println(" jstack [-m] [-l] <executable> <core>"); + System.err.println(" (to connect to a core file)"); + System.err.println(" jstack [-m] [-l] [server_id@]<remote server IP or hostname>"); + System.err.println(" (to connect to a remote debug server)"); } - System.out.println(""); - System.out.println("Options:"); + System.err.println(""); + System.err.println("Options:"); if (loadSAClass() != null) { - System.out.println(" -F to force a thread dump. Use when jstack <pid> does not respond" + + System.err.println(" -F to force a thread dump. Use when jstack <pid> does not respond" + " (process is hung)"); - System.out.println(" -m to print both java and native frames (mixed mode)"); + System.err.println(" -m to print both java and native frames (mixed mode)"); } - System.out.println(" -l long listing. Prints additional information about locks"); - System.out.println(" -h or -help to print this help message"); - System.exit(1); + System.err.println(" -l long listing. Prints additional information about locks"); + System.err.println(" -h or -help to print this help message"); + System.exit(exit); } }
--- a/src/share/classes/sun/tools/serialver/SerialVer.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/classes/sun/tools/serialver/SerialVer.java Fri Nov 15 07:14:23 2013 -0800 @@ -211,7 +211,7 @@ Class<?> cl = Class.forName(classname, false, loader); ObjectStreamClass desc = ObjectStreamClass.lookup(cl); if (desc != null) { - return " static final long serialVersionUID = " + + return " private static final long serialVersionUID = " + desc.getSerialVersionUID() + "L;"; } else { return null;
--- a/src/share/demo/jvmti/java_crw_demo/java_crw_demo.c Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/demo/jvmti/java_crw_demo/java_crw_demo.c Fri Nov 15 07:14:23 2013 -0800 @@ -263,8 +263,8 @@ /* Normal operation should NEVER reach here */ /* NO CRW FATAL ERROR HANDLER! */ (void)fprintf(stderr, "CRW: %s [%s:%d]\n", message, file, line); - abort(); } + abort(); } #if defined(DEBUG) || !defined(NDEBUG)
--- a/src/share/javavm/export/jmm.h Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/javavm/export/jmm.h Fri Nov 15 07:14:23 2013 -0800 @@ -78,6 +78,7 @@ JMM_COMPILE_TOTAL_TIME_MS = 8, /* Total accumulated time spent in compilation */ JMM_GC_TIME_MS = 9, /* Total accumulated time spent in collection */ JMM_GC_COUNT = 10, /* Total number of collections */ + JMM_JVM_UPTIME_MS = 11, /* The JVM uptime in milliseconds */ JMM_INTERNAL_ATTRIBUTE_INDEX = 100, JMM_CLASS_LOADED_BYTES = 101, /* Number of bytes loaded instance classes */
--- a/src/share/native/java/lang/ref/Finalizer.c Thu Nov 14 23:32:31 2013 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* - * Copyright (c) 1997, 1998, 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. - */ - -#include "jni.h" -#include "java_lang_ref_Finalizer.h" - - -JNIEXPORT void JNICALL -Java_java_lang_ref_Finalizer_invokeFinalizeMethod(JNIEnv *env, jclass clazz, - jobject ob) -{ - jclass cls; - jmethodID mid; - - cls = (*env)->GetObjectClass(env, ob); - if (cls == NULL) return; - mid = (*env)->GetMethodID(env, cls, "finalize", "()V"); - if (mid == NULL) return; - (*env)->CallVoidMethod(env, ob, mid); -}
--- a/src/share/native/java/net/Inet4Address.c Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/native/java/net/Inet4Address.c Fri Nov 15 07:14:23 2013 -0800 @@ -46,5 +46,4 @@ ia4_class = (*env)->NewGlobalRef(env, c); CHECK_NULL(ia4_class); ia4_ctrID = (*env)->GetMethodID(env, ia4_class, "<init>", "()V"); - CHECK_NULL(ia4_ctrID); }
--- a/src/share/native/java/net/Inet6Address.c Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/native/java/net/Inet6Address.c Fri Nov 15 07:14:23 2013 -0800 @@ -65,9 +65,8 @@ ia6_cachedscopeidID = (*env)->GetFieldID(env, ia6_class, "cached_scope_id", "I"); CHECK_NULL(ia6_cachedscopeidID); ia6_scopeidsetID = (*env)->GetFieldID(env, ia6h_class, "scope_id_set", "Z"); - CHECK_NULL(ia6_scopeidID); + CHECK_NULL(ia6_scopeidsetID); ia6_scopeifnameID = (*env)->GetFieldID(env, ia6h_class, "scope_ifname", "Ljava/net/NetworkInterface;"); CHECK_NULL(ia6_scopeifnameID); ia6_ctrID = (*env)->GetMethodID(env, ia6_class, "<init>", "()V"); - CHECK_NULL(ia6_ctrID); }
--- a/src/share/native/java/net/InetAddress.c Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/native/java/net/InetAddress.c Fri Nov 15 07:14:23 2013 -0800 @@ -64,5 +64,4 @@ iac_familyID = (*env)->GetFieldID(env, iac_class, "family", "I"); CHECK_NULL(iac_familyID); iac_hostNameID = (*env)->GetFieldID(env, iac_class, "hostName", "Ljava/lang/String;"); - CHECK_NULL(iac_hostNameID); }
--- a/src/share/native/sun/management/VMManagementImpl.c Thu Nov 14 23:32:31 2013 -0800 +++ b/src/share/native/sun/management/VMManagementImpl.c Fri Nov 15 07:14:23 2013 -0800 @@ -200,6 +200,13 @@ JMM_JVM_INIT_DONE_TIME_MS); } +JNIEXPORT jlong JNICALL +Java_sun_management_VMManagementImpl_getUptime0 + (JNIEnv *env, jobject dummy) +{ + return jmm_interface->GetLongAttribute(env, NULL, JMM_JVM_UPTIME_MS); +} + JNIEXPORT jboolean JNICALL Java_sun_management_VMManagementImpl_isThreadContentionMonitoringEnabled (JNIEnv *env, jobject dummy)
--- a/src/solaris/classes/com/sun/management/OSMBeanFactory.java Thu Nov 14 23:32:31 2013 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2003, 2004, 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 com.sun.management; - -import java.lang.management.OperatingSystemMXBean; -import sun.management.VMManagement; - -/** - * Operating system dependent MBean factory. - * <p> - * <b>WARNING:</b> While this class is public, it should not be treated as - * public API and its API may change in incompatable ways between dot dot - * releases and even patch releases. You should not rely on this class. - */ -@jdk.Exported(false) -public class OSMBeanFactory { - /* static factory class */ - private OSMBeanFactory() {}; - - private static UnixOperatingSystem osMBean = null; - - public static synchronized OperatingSystemMXBean - getOperatingSystemMXBean(VMManagement jvm) { - - if (osMBean == null) { - osMBean = new UnixOperatingSystem(jvm); - } - return (OperatingSystemMXBean) osMBean; - } -}
--- a/src/solaris/classes/com/sun/management/UnixOperatingSystem.java Thu Nov 14 23:32:31 2013 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. 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 com.sun.management; - -import sun.management.VMManagement; - -/** - * Implementation class for the operating system. - * Standard and committed hotspot-specific metrics if any. - * - * ManagementFactory.getOperatingSystemMXBean() returns an instance - * of this class. - */ -class UnixOperatingSystem - extends sun.management.OperatingSystemImpl - implements UnixOperatingSystemMXBean { - - UnixOperatingSystem(VMManagement vm) { - super(vm); - } - - public native long getCommittedVirtualMemorySize(); - public native long getTotalSwapSpaceSize(); - public native long getFreeSwapSpaceSize(); - public native long getProcessCpuTime(); - public native long getFreePhysicalMemorySize(); - public native long getTotalPhysicalMemorySize(); - public native long getOpenFileDescriptorCount(); - public native long getMaxFileDescriptorCount(); - public native double getSystemCpuLoad(); - public native double getProcessCpuLoad(); - - static { - initialize(); - } - private static native void initialize(); -}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/solaris/classes/sun/management/OperatingSystemImpl.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. 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; + +/** + * Implementation class for the operating system. + * Standard and committed hotspot-specific metrics if any. + * + * ManagementFactory.getOperatingSystemMXBean() returns an instance + * of this class. + */ +class OperatingSystemImpl extends BaseOperatingSystemImpl + implements com.sun.management.UnixOperatingSystemMXBean { + + OperatingSystemImpl(VMManagement vm) { + super(vm); + } + + public native long getCommittedVirtualMemorySize(); + public native long getTotalSwapSpaceSize(); + public native long getFreeSwapSpaceSize(); + public native long getProcessCpuTime(); + public native long getFreePhysicalMemorySize(); + public native long getTotalPhysicalMemorySize(); + public native long getOpenFileDescriptorCount(); + public native long getMaxFileDescriptorCount(); + public native double getSystemCpuLoad(); + public native double getProcessCpuLoad(); + + static { + initialize(); + } + private static native void initialize(); +}
--- a/src/solaris/classes/sun/nio/fs/UnixFileSystemProvider.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/solaris/classes/sun/nio/fs/UnixFileSystemProvider.java Fri Nov 15 07:14:23 2013 -0800 @@ -484,7 +484,7 @@ if (sm != null) { FilePermission perm = new FilePermission(link.getPathForPermissionCheck(), SecurityConstants.FILE_READLINK_ACTION); - AccessController.checkPermission(perm); + sm.checkPermission(perm); } try { byte[] target = readlink(link);
--- a/src/solaris/classes/sun/nio/fs/UnixPath.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/solaris/classes/sun/nio/fs/UnixPath.java Fri Nov 15 07:14:23 2013 -0800 @@ -145,7 +145,7 @@ } if (error) { throw new InvalidPathException(input, - "Malformed input or input contains unmappable chacraters"); + "Malformed input or input contains unmappable characters"); } // trim result to actual length if required
--- a/src/solaris/native/com/sun/management/LinuxOperatingSystem.c Thu Nov 14 23:32:31 2013 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,332 +0,0 @@ -/* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. 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. - */ - -#include <stdio.h> -#include <stdint.h> -#include <stdarg.h> -#include <unistd.h> -#include <errno.h> -#include <string.h> -#include <sys/resource.h> -#include <sys/types.h> -#include <dirent.h> -#include <stdlib.h> -#include <dlfcn.h> -#include <pthread.h> -#include "com_sun_management_UnixOperatingSystem.h" - -struct ticks { - uint64_t used; - uint64_t usedKernel; - uint64_t total; -}; - -typedef struct ticks ticks; - -typedef enum { - CPU_LOAD_VM_ONLY, - CPU_LOAD_GLOBAL, -} CpuLoadTarget; - -static struct perfbuf { - int nProcs; - ticks jvmTicks; - ticks cpuTicks; - ticks *cpus; -} counters; - -#define DEC_64 "%lld" - -static void next_line(FILE *f) { - while (fgetc(f) != '\n'); -} - -/** - * Return the total number of ticks since the system was booted. - * If the usedTicks parameter is not NULL, it will be filled with - * the number of ticks spent on actual processes (user, system or - * nice processes) since system boot. Note that this is the total number - * of "executed" ticks on _all_ CPU:s, that is on a n-way system it is - * n times the number of ticks that has passed in clock time. - * - * Returns a negative value if the reading of the ticks failed. - */ -static int get_totalticks(int which, ticks *pticks) { - FILE *fh; - uint64_t userTicks, niceTicks, systemTicks, idleTicks; - int n; - - if((fh = fopen("/proc/stat", "r")) == NULL) { - return -1; - } - - n = fscanf(fh, "cpu " DEC_64 " " DEC_64 " " DEC_64 " " DEC_64, - &userTicks, &niceTicks, &systemTicks, &idleTicks); - - // Move to next line - next_line(fh); - - //find the line for requested cpu faster to just iterate linefeeds? - if (which != -1) { - int i; - for (i = 0; i < which; i++) { - if (fscanf(fh, "cpu%*d " DEC_64 " " DEC_64 " " DEC_64 " " DEC_64, &userTicks, &niceTicks, &systemTicks, &idleTicks) != 4) { - fclose(fh); - return -2; - } - next_line(fh); - } - n = fscanf(fh, "cpu%*d " DEC_64 " " DEC_64 " " DEC_64 " " DEC_64 "\n", - &userTicks, &niceTicks, &systemTicks, &idleTicks); - } - - fclose(fh); - if (n != 4) { - return -2; - } - - pticks->used = userTicks + niceTicks; - pticks->usedKernel = systemTicks; - pticks->total = userTicks + niceTicks + systemTicks + idleTicks; - - return 0; -} - -static int vread_statdata(const char *procfile, const char *fmt, va_list args) { - FILE *f; - int n; - char buf[2048]; - - if ((f = fopen(procfile, "r")) == NULL) { - return -1; - } - - if ((n = fread(buf, 1, sizeof(buf), f)) != -1) { - char *tmp; - - buf[n-1] = '\0'; - /** skip through pid and exec name. the exec name _could be wacky_ (renamed) and - * make scanf go mupp. - */ - if ((tmp = strrchr(buf, ')')) != NULL) { - // skip the ')' and the following space but check that the buffer is long enough - tmp += 2; - if (tmp < buf + n) { - n = vsscanf(tmp, fmt, args); - } - } - } - - fclose(f); - - return n; -} - -static int read_statdata(const char *procfile, const char *fmt, ...) { - int n; - va_list args; - - va_start(args, fmt); - n = vread_statdata(procfile, fmt, args); - va_end(args); - return n; -} - -/** read user and system ticks from a named procfile, assumed to be in 'stat' format then. */ -static int read_ticks(const char *procfile, uint64_t *userTicks, uint64_t *systemTicks) { - return read_statdata(procfile, "%*c %*d %*d %*d %*d %*d %*u %*u %*u %*u %*u "DEC_64" "DEC_64, - userTicks, systemTicks - ); -} - -/** - * Return the number of ticks spent in any of the processes belonging - * to the JVM on any CPU. - */ -static int get_jvmticks(ticks *pticks) { - uint64_t userTicks; - uint64_t systemTicks; - - if (read_ticks("/proc/self/stat", &userTicks, &systemTicks) < 0) { - return -1; - } - - // get the total - if (get_totalticks(-1, pticks) < 0) { - return -1; - } - - pticks->used = userTicks; - pticks->usedKernel = systemTicks; - - return 0; -} - -/** - * This method must be called first, before any data can be gathererd. - */ -int perfInit() { - static int initialized=1; - - if (!initialized) { - int i; - - int n = sysconf(_SC_NPROCESSORS_ONLN); - if (n <= 0) { - n = 1; - } - - counters.cpus = calloc(n,sizeof(ticks)); - if (counters.cpus != NULL) { - // For the CPU load - get_totalticks(-1, &counters.cpuTicks); - - for (i = 0; i < n; i++) { - get_totalticks(i, &counters.cpus[i]); - } - // For JVM load - get_jvmticks(&counters.jvmTicks); - initialized = 1; - } - } - - return initialized ? 0 : -1; -} - -#define MAX(a,b) (a>b?a:b) -#define MIN(a,b) (a<b?a:b) - -static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; - -/** - * Return the load of the CPU as a double. 1.0 means the CPU process uses all - * available time for user or system processes, 0.0 means the CPU uses all time - * being idle. - * - * Returns a negative value if there is a problem in determining the CPU load. - */ - -static double get_cpuload_internal(int which, double *pkernelLoad, CpuLoadTarget target) { - uint64_t udiff, kdiff, tdiff; - ticks *pticks, tmp; - double user_load = -1.0; - int failed = 0; - - *pkernelLoad = 0.0; - - pthread_mutex_lock(&lock); - - if(perfInit() == 0) { - - if (target == CPU_LOAD_VM_ONLY) { - pticks = &counters.jvmTicks; - } else if (which == -1) { - pticks = &counters.cpuTicks; - } else { - pticks = &counters.cpus[which]; - } - - tmp = *pticks; - - if (target == CPU_LOAD_VM_ONLY) { - if (get_jvmticks(pticks) != 0) { - failed = 1; - } - } else if (get_totalticks(which, pticks) < 0) { - failed = 1; - } - - if(!failed) { - // seems like we sometimes end up with less kernel ticks when - // reading /proc/self/stat a second time, timing issue between cpus? - if (pticks->usedKernel < tmp.usedKernel) { - kdiff = 0; - } else { - kdiff = pticks->usedKernel - tmp.usedKernel; - } - tdiff = pticks->total - tmp.total; - udiff = pticks->used - tmp.used; - - if (tdiff == 0) { - user_load = 0; - } else { - if (tdiff < (udiff + kdiff)) { - tdiff = udiff + kdiff; - } - *pkernelLoad = (kdiff / (double)tdiff); - // BUG9044876, normalize return values to sane values - *pkernelLoad = MAX(*pkernelLoad, 0.0); - *pkernelLoad = MIN(*pkernelLoad, 1.0); - - user_load = (udiff / (double)tdiff); - user_load = MAX(user_load, 0.0); - user_load = MIN(user_load, 1.0); - } - } - } - pthread_mutex_unlock(&lock); - return user_load; -} - -double get_cpu_load(int which) { - double u, s; - u = get_cpuload_internal(which, &s, CPU_LOAD_GLOBAL); - if (u < 0) { - return -1.0; - } - // Cap total systemload to 1.0 - return MIN((u + s), 1.0); -} - -double get_process_load() { - double u, s; - u = get_cpuload_internal(-1, &s, CPU_LOAD_VM_ONLY); - if (u < 0) { - return -1.0; - } - return u + s; -} - -JNIEXPORT jdouble JNICALL -Java_com_sun_management_UnixOperatingSystem_getSystemCpuLoad -(JNIEnv *env, jobject dummy) -{ - if(perfInit() == 0) { - return get_cpu_load(-1); - } else { - return -1.0; - } -} - -JNIEXPORT jdouble JNICALL -Java_com_sun_management_UnixOperatingSystem_getProcessCpuLoad -(JNIEnv *env, jobject dummy) -{ - if(perfInit() == 0) { - return get_process_load(); - } else { - return -1.0; - } -}
--- a/src/solaris/native/com/sun/management/MacosxOperatingSystem.c Thu Nov 14 23:32:31 2013 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,160 +0,0 @@ -/* - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * 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. - */ - -#include "com_sun_management_UnixOperatingSystem.h" - -#include <sys/time.h> -#include <mach/mach.h> -#include <mach/task_info.h> - - -JNIEXPORT jdouble JNICALL -Java_com_sun_management_UnixOperatingSystem_getSystemCpuLoad -(JNIEnv *env, jobject dummy) -{ - // This code is influenced by the darwin top source - - kern_return_t kr; - mach_msg_type_number_t count; - host_cpu_load_info_data_t load; - - static jlong last_used = 0; - static jlong last_total = 0; - - count = HOST_CPU_LOAD_INFO_COUNT; - kr = host_statistics(mach_host_self(), HOST_CPU_LOAD_INFO, (host_info_t)&load, &count); - if (kr != KERN_SUCCESS) { - return -1; - } - - jlong used = load.cpu_ticks[CPU_STATE_USER] + load.cpu_ticks[CPU_STATE_NICE] + load.cpu_ticks[CPU_STATE_SYSTEM]; - jlong total = used + load.cpu_ticks[CPU_STATE_IDLE]; - - if (last_used == 0 || last_total == 0) { - // First call, just set the last values - last_used = used; - last_total = total; - // return 0 since we have no data, not -1 which indicates error - return 0; - } - - jlong used_delta = used - last_used; - jlong total_delta = total - last_total; - - jdouble cpu = (jdouble) used_delta / total_delta; - - last_used = used; - last_total = total; - - return cpu; -} - - -#define TIME_VALUE_TO_TIMEVAL(a, r) do { \ - (r)->tv_sec = (a)->seconds; \ - (r)->tv_usec = (a)->microseconds; \ -} while (0) - - -#define TIME_VALUE_TO_MICROSECONDS(TV) \ - ((TV).tv_sec * 1000 * 1000 + (TV).tv_usec) - - -JNIEXPORT jdouble JNICALL -Java_com_sun_management_UnixOperatingSystem_getProcessCpuLoad -(JNIEnv *env, jobject dummy) -{ - // This code is influenced by the darwin top source - - struct task_basic_info_64 task_info_data; - struct task_thread_times_info thread_info_data; - struct timeval user_timeval, system_timeval, task_timeval; - struct timeval now; - mach_port_t task = mach_task_self(); - kern_return_t kr; - - static jlong last_task_time = 0; - static jlong last_time = 0; - - mach_msg_type_number_t thread_info_count = TASK_THREAD_TIMES_INFO_COUNT; - kr = task_info(task, - TASK_THREAD_TIMES_INFO, - (task_info_t)&thread_info_data, - &thread_info_count); - if (kr != KERN_SUCCESS) { - // Most likely cause: |task| is a zombie. - return -1; - } - - mach_msg_type_number_t count = TASK_BASIC_INFO_64_COUNT; - kr = task_info(task, - TASK_BASIC_INFO_64, - (task_info_t)&task_info_data, - &count); - if (kr != KERN_SUCCESS) { - // Most likely cause: |task| is a zombie. - return -1; - } - - /* Set total_time. */ - // thread info contains live time... - TIME_VALUE_TO_TIMEVAL(&thread_info_data.user_time, &user_timeval); - TIME_VALUE_TO_TIMEVAL(&thread_info_data.system_time, &system_timeval); - timeradd(&user_timeval, &system_timeval, &task_timeval); - - // ... task info contains terminated time. - TIME_VALUE_TO_TIMEVAL(&task_info_data.user_time, &user_timeval); - TIME_VALUE_TO_TIMEVAL(&task_info_data.system_time, &system_timeval); - timeradd(&user_timeval, &task_timeval, &task_timeval); - timeradd(&system_timeval, &task_timeval, &task_timeval); - - if (gettimeofday(&now, NULL) < 0) { - return -1; - } - jint ncpus = JVM_ActiveProcessorCount(); - jlong time = TIME_VALUE_TO_MICROSECONDS(now) * ncpus; - jlong task_time = TIME_VALUE_TO_MICROSECONDS(task_timeval); - - if ((last_task_time == 0) || (last_time == 0)) { - // First call, just set the last values. - last_task_time = task_time; - last_time = time; - // return 0 since we have no data, not -1 which indicates error - return 0; - } - - jlong task_time_delta = task_time - last_task_time; - jlong time_delta = time - last_time; - if (time_delta == 0) { - return -1; - } - - jdouble cpu = (jdouble) task_time_delta / time_delta; - - last_task_time = task_time; - last_time = time; - - return cpu; - }
--- a/src/solaris/native/com/sun/management/SolarisOperatingSystem.c Thu Nov 14 23:32:31 2013 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,241 +0,0 @@ -/* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. 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. - */ - -#include <fcntl.h> -#include <kstat.h> -#include <procfs.h> -#include <unistd.h> -#include <stdlib.h> -#include <stdio.h> -#include <string.h> -#include <sys/sysinfo.h> -#include <sys/lwp.h> -#include <pthread.h> -#include <utmpx.h> -#include <dlfcn.h> -#include <sys/loadavg.h> -#include <jni.h> -#include "jvm.h" -#include "com_sun_management_UnixOperatingSystem.h" - -typedef struct { - kstat_t *kstat; - uint64_t last_idle; - uint64_t last_total; - double last_ratio; -} cpuload_t; - -static cpuload_t *cpu_loads = NULL; -static unsigned int num_cpus; -static kstat_ctl_t *kstat_ctrl = NULL; - -static void map_cpu_kstat_counters() { - kstat_t *kstat; - int i; - - // Get number of CPU(s) - if ((num_cpus = sysconf(_SC_NPROCESSORS_ONLN)) == -1) { - num_cpus = 1; - } - - // Data structure for saving CPU load - if ((cpu_loads = calloc(num_cpus,sizeof(cpuload_t))) == NULL) { - return; - } - - // Get kstat cpu_stat counters for every CPU - // (loop over kstat to find our cpu_stat(s) - i = 0; - for (kstat = kstat_ctrl->kc_chain; kstat != NULL; kstat = kstat->ks_next) { - if (strncmp(kstat->ks_module, "cpu_stat", 8) == 0) { - - if (kstat_read(kstat_ctrl, kstat, NULL) == -1) { - // Failed to initialize kstat for this CPU so ignore it - continue; - } - - if (i == num_cpus) { - // Found more cpu_stats than reported CPUs - break; - } - - cpu_loads[i++].kstat = kstat; - } - } -} - -static int init_cpu_kstat_counters() { - static int initialized = 0; - - // Concurrence in this method is prevented by the lock in - // the calling method get_cpu_load(); - if(!initialized) { - if ((kstat_ctrl = kstat_open()) != NULL) { - map_cpu_kstat_counters(); - initialized = 1; - } - } - return initialized ? 0 : -1; -} - -static void update_cpu_kstat_counters() { - if(kstat_chain_update(kstat_ctrl) != 0) { - free(cpu_loads); - map_cpu_kstat_counters(); - } -} - -int read_cpustat(cpuload_t *load, cpu_stat_t *cpu_stat) { - if (load->kstat == NULL) { - // no handle. - return -1; - } - if (kstat_read(kstat_ctrl, load->kstat, cpu_stat) == -1) { - // disabling for now, a kstat chain update is likely to happen next time - load->kstat = NULL; - return -1; - } - return 0; -} - -double get_single_cpu_load(unsigned int n) { - cpuload_t *load; - cpu_stat_t cpu_stat; - uint_t *usage; - uint64_t c_idle; - uint64_t c_total; - uint64_t d_idle; - uint64_t d_total; - int i; - - if (n >= num_cpus) { - return -1.0; - } - - load = &cpu_loads[n]; - if (read_cpustat(load, &cpu_stat) < 0) { - return -1.0; - } - - usage = cpu_stat.cpu_sysinfo.cpu; - c_idle = usage[CPU_IDLE]; - - for (c_total = 0, i = 0; i < CPU_STATES; i++) { - c_total += usage[i]; - } - - // Calculate diff against previous snapshot - d_idle = c_idle - load->last_idle; - d_total = c_total - load->last_total; - - /** update if weve moved */ - if (d_total > 0) { - // Save current values for next time around - load->last_idle = c_idle; - load->last_total = c_total; - load->last_ratio = (double) (d_total - d_idle) / d_total; - } - - return load->last_ratio; -} - -int get_info(const char *path, void *info, size_t s, off_t o) { - int fd; - int ret = 0; - if ((fd = open(path, O_RDONLY)) < 0) { - return -1; - } - if (pread(fd, info, s, o) != s) { - ret = -1; - } - close(fd); - return ret; -} - -#define MIN(a, b) ((a < b) ? a : b) - -static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; - -/** - * Return the cpu load (0-1) for proc number 'which' (or average all if which == -1) - */ -double get_cpu_load(int which) { - double load =.0; - - pthread_mutex_lock(&lock); - if(init_cpu_kstat_counters()==0) { - - update_cpu_kstat_counters(); - - if (which == -1) { - unsigned int i; - double t; - - for (t = .0, i = 0; i < num_cpus; i++) { - t += get_single_cpu_load(i); - } - - // Cap total systemload to 1.0 - load = MIN((t / num_cpus), 1.0); - } else { - load = MIN(get_single_cpu_load(which), 1.0); - } - } else { - load = -1.0; - } - pthread_mutex_unlock(&lock); - - return load; -} - -/** - * Return the cpu load (0-1) for the current process (i.e the JVM) - * or -1.0 if the get_info() call failed - */ -double get_process_load(void) { - psinfo_t info; - - // Get the percentage of "recent cpu usage" from all the lwp:s in the JVM:s - // process. This is returned as a value between 0.0 and 1.0 multiplied by 0x8000. - if (get_info("/proc/self/psinfo",&info.pr_pctcpu, sizeof(info.pr_pctcpu), offsetof(psinfo_t, pr_pctcpu)) == 0) { - return (double) info.pr_pctcpu / 0x8000; - } - return -1.0; -} - -JNIEXPORT jdouble JNICALL -Java_com_sun_management_UnixOperatingSystem_getSystemCpuLoad -(JNIEnv *env, jobject dummy) -{ - return get_cpu_load(-1); -} - -JNIEXPORT jdouble JNICALL -Java_com_sun_management_UnixOperatingSystem_getProcessCpuLoad -(JNIEnv *env, jobject dummy) -{ - return get_process_load(); -} -
--- a/src/solaris/native/com/sun/management/UnixOperatingSystem_md.c Thu Nov 14 23:32:31 2013 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,451 +0,0 @@ -/* - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * 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. - */ - -#include "jni.h" -#include "jni_util.h" -#include "jlong.h" -#include "jvm.h" -#include "management.h" -#include "com_sun_management_UnixOperatingSystem.h" - -#include <sys/types.h> -#include <sys/stat.h> -#if defined(_ALLBSD_SOURCE) -#include <sys/sysctl.h> -#ifdef __APPLE__ -#include <sys/param.h> -#include <sys/mount.h> -#include <mach/mach.h> -#include <sys/proc_info.h> -#include <libproc.h> -#endif -#else -#include <sys/swap.h> -#endif -#include <sys/resource.h> -#include <sys/times.h> -#ifndef _ALLBSD_SOURCE -#include <sys/sysinfo.h> -#endif -#include <ctype.h> -#include <dirent.h> -#include <errno.h> -#include <fcntl.h> -#include <limits.h> -#include <stdlib.h> -#include <unistd.h> - -static jlong page_size = 0; - -#if defined(_ALLBSD_SOURCE) -#define MB (1024UL * 1024UL) -#else - -/* This gets us the new structured proc interfaces of 5.6 & later */ -/* - see comment in <sys/procfs.h> */ -#define _STRUCTURED_PROC 1 -#include <sys/procfs.h> - -#endif /* _ALLBSD_SOURCE */ - -static struct dirent* read_dir(DIR* dirp, struct dirent* entry) { -#ifdef __solaris__ - struct dirent* dbuf = readdir(dirp); - return dbuf; -#else /* __linux__ || _ALLBSD_SOURCE */ - struct dirent* p; - if (readdir_r(dirp, entry, &p) == 0) { - return p; - } else { - return NULL; - } -#endif -} - -// true = get available swap in bytes -// false = get total swap in bytes -static jlong get_total_or_available_swap_space_size(JNIEnv* env, jboolean available) { -#ifdef __solaris__ - long total, avail; - int nswap, i, count; - swaptbl_t *stbl; - char *strtab; - - // First get the number of swap resource entries - if ((nswap = swapctl(SC_GETNSWP, NULL)) == -1) { - throw_internal_error(env, "swapctl failed to get nswap"); - return -1; - } - if (nswap == 0) { - return 0; - } - - // Allocate storage for resource entries - stbl = (swaptbl_t*) malloc(nswap * sizeof(swapent_t) + - sizeof(struct swaptable)); - if (stbl == NULL) { - JNU_ThrowOutOfMemoryError(env, 0); - return -1; - } - - // Allocate storage for the table - strtab = (char*) malloc((nswap + 1) * MAXPATHLEN); - if (strtab == NULL) { - free(stbl); - JNU_ThrowOutOfMemoryError(env, 0); - return -1; - } - - for (i = 0; i < (nswap + 1); i++) { - stbl->swt_ent[i].ste_path = strtab + (i * MAXPATHLEN); - } - stbl->swt_n = nswap + 1; - - // Get the entries - if ((count = swapctl(SC_LIST, stbl)) < 0) { - free(stbl); - free(strtab); - throw_internal_error(env, "swapctl failed to get swap list"); - return -1; - } - - // Sum the entries to get total and free swap - total = 0; - avail = 0; - for (i = 0; i < count; i++) { - total += stbl->swt_ent[i].ste_pages; - avail += stbl->swt_ent[i].ste_free; - } - - free(stbl); - free(strtab); - return available ? ((jlong)avail * page_size) : - ((jlong)total * page_size); -#elif defined(__linux__) - int ret; - FILE *fp; - jlong total = 0, avail = 0; - - struct sysinfo si; - ret = sysinfo(&si); - if (ret != 0) { - throw_internal_error(env, "sysinfo failed to get swap size"); - } - total = (jlong)si.totalswap * si.mem_unit; - avail = (jlong)si.freeswap * si.mem_unit; - - return available ? avail : total; -#elif defined(__APPLE__) - struct xsw_usage vmusage; - size_t size = sizeof(vmusage); - if (sysctlbyname("vm.swapusage", &vmusage, &size, NULL, 0) != 0) { - throw_internal_error(env, "sysctlbyname failed"); - } - return available ? (jlong)vmusage.xsu_avail : (jlong)vmusage.xsu_total; -#else /* _ALLBSD_SOURCE */ - /* - * XXXBSD: there's no way available to get swap info in - * FreeBSD. Usage of libkvm is not an option here - */ - // throw_internal_error(env, "Unimplemented in FreeBSD"); - return (0); -#endif -} - -JNIEXPORT void JNICALL -Java_com_sun_management_UnixOperatingSystem_initialize - (JNIEnv *env, jclass cls) -{ - page_size = sysconf(_SC_PAGESIZE); -} - -JNIEXPORT jlong JNICALL -Java_com_sun_management_UnixOperatingSystem_getCommittedVirtualMemorySize - (JNIEnv *env, jobject mbean) -{ -#ifdef __solaris__ - psinfo_t psinfo; - ssize_t result; - size_t remaining; - char* addr; - int fd; - - fd = JVM_Open("/proc/self/psinfo", O_RDONLY, 0); - if (fd < 0) { - throw_internal_error(env, "Unable to open /proc/self/psinfo"); - return -1; - } - - addr = (char *)&psinfo; - for (remaining = sizeof(psinfo_t); remaining > 0;) { - result = JVM_Read(fd, addr, remaining); - if (result < 0) { - JVM_Close(fd); - throw_internal_error(env, "Unable to read /proc/self/psinfo"); - return -1; - } - remaining -= result; - addr += result; - } - - JVM_Close(fd); - return (jlong) psinfo.pr_size * 1024; -#elif defined(__linux__) - FILE *fp; - unsigned long vsize = 0; - - if ((fp = fopen("/proc/self/stat", "r")) == NULL) { - throw_internal_error(env, "Unable to open /proc/self/stat"); - return -1; - } - - // Ignore everything except the vsize entry - if (fscanf(fp, "%*d %*s %*c %*d %*d %*d %*d %*d %*u %*u %*u %*u %*u %*d %*d %*d %*d %*d %*d %*u %*u %*d %lu %*[^\n]\n", &vsize) == EOF) { - throw_internal_error(env, "Unable to get virtual memory usage"); - fclose(fp); - return -1; - } - - fclose(fp); - return (jlong)vsize; -#elif defined(__APPLE__) - struct task_basic_info t_info; - mach_msg_type_number_t t_info_count = TASK_BASIC_INFO_COUNT; - - kern_return_t res = task_info(mach_task_self(), TASK_BASIC_INFO, (task_info_t)&t_info, &t_info_count); - if (res != KERN_SUCCESS) { - throw_internal_error(env, "task_info failed"); - } - return t_info.virtual_size; -#else /* _ALLBSD_SOURCE */ - /* - * XXXBSD: there's no way available to do it in FreeBSD, AFAIK. - */ - // throw_internal_error(env, "Unimplemented in FreeBSD"); - return (64 * MB); -#endif -} - -JNIEXPORT jlong JNICALL -Java_com_sun_management_UnixOperatingSystem_getTotalSwapSpaceSize - (JNIEnv *env, jobject mbean) -{ - return get_total_or_available_swap_space_size(env, JNI_FALSE); -} - -JNIEXPORT jlong JNICALL -Java_com_sun_management_UnixOperatingSystem_getFreeSwapSpaceSize - (JNIEnv *env, jobject mbean) -{ - return get_total_or_available_swap_space_size(env, JNI_TRUE); -} - -JNIEXPORT jlong JNICALL -Java_com_sun_management_UnixOperatingSystem_getProcessCpuTime - (JNIEnv *env, jobject mbean) -{ -#ifdef __APPLE__ - struct rusage usage; - if (getrusage(RUSAGE_SELF, &usage) != 0) { - throw_internal_error(env, "getrusage failed"); - return -1; - } - jlong microsecs = - usage.ru_utime.tv_sec * 1000 * 1000 + usage.ru_utime.tv_usec + - usage.ru_stime.tv_sec * 1000 * 1000 + usage.ru_stime.tv_usec; - return microsecs * 1000; -#else - jlong clk_tck, ns_per_clock_tick; - jlong cpu_time_ns; - struct tms time; - - /* - * BSDNOTE: FreeBSD implements _SC_CLK_TCK since FreeBSD 5, so - * add a magic to handle it - */ -#if defined(__solaris__) || defined(_SC_CLK_TCK) - clk_tck = (jlong) sysconf(_SC_CLK_TCK); -#elif defined(__linux__) || defined(_ALLBSD_SOURCE) - clk_tck = 100; -#endif - if (clk_tck == -1) { - throw_internal_error(env, - "sysconf failed - not able to get clock tick"); - return -1; - } - - times(&time); - ns_per_clock_tick = (jlong) 1000 * 1000 * 1000 / (jlong) clk_tck; - cpu_time_ns = ((jlong)time.tms_utime + (jlong) time.tms_stime) * - ns_per_clock_tick; - return cpu_time_ns; -#endif -} - -JNIEXPORT jlong JNICALL -Java_com_sun_management_UnixOperatingSystem_getFreePhysicalMemorySize - (JNIEnv *env, jobject mbean) -{ -#ifdef __APPLE__ - mach_msg_type_number_t count; - vm_statistics_data_t vm_stats; - kern_return_t res; - - count = HOST_VM_INFO_COUNT; - res = host_statistics(mach_host_self(), HOST_VM_INFO, (host_info_t)&vm_stats, &count); - if (res != KERN_SUCCESS) { - throw_internal_error(env, "host_statistics failed"); - return -1; - } - return (jlong)vm_stats.free_count * page_size; -#elif defined(_ALLBSD_SOURCE) - /* - * XXBSDL no way to do it in FreeBSD - */ - // throw_internal_error(env, "unimplemented in FreeBSD") - return (128 * MB); -#else // solaris / linux - jlong num_avail_physical_pages = sysconf(_SC_AVPHYS_PAGES); - return (num_avail_physical_pages * page_size); -#endif -} - -JNIEXPORT jlong JNICALL -Java_com_sun_management_UnixOperatingSystem_getTotalPhysicalMemorySize - (JNIEnv *env, jobject mbean) -{ -#ifdef _ALLBSD_SOURCE - jlong result = 0; - int mib[2]; - size_t rlen; - - mib[0] = CTL_HW; - mib[1] = HW_MEMSIZE; - rlen = sizeof(result); - if (sysctl(mib, 2, &result, &rlen, NULL, 0) != 0) { - throw_internal_error(env, "sysctl failed"); - return -1; - } - return result; -#else // solaris / linux - jlong num_physical_pages = sysconf(_SC_PHYS_PAGES); - return (num_physical_pages * page_size); -#endif -} - - - -JNIEXPORT jlong JNICALL -Java_com_sun_management_UnixOperatingSystem_getOpenFileDescriptorCount - (JNIEnv *env, jobject mbean) -{ -#ifdef __APPLE__ - // This code is influenced by the darwin lsof source - pid_t my_pid; - struct proc_bsdinfo bsdinfo; - struct proc_fdinfo *fds; - int nfiles; - kern_return_t kres; - int res; - size_t fds_size; - - kres = pid_for_task(mach_task_self(), &my_pid); - if (kres != KERN_SUCCESS) { - throw_internal_error(env, "pid_for_task failed"); - return -1; - } - - // get the maximum number of file descriptors - res = proc_pidinfo(my_pid, PROC_PIDTBSDINFO, 0, &bsdinfo, PROC_PIDTBSDINFO_SIZE); - if (res <= 0) { - throw_internal_error(env, "proc_pidinfo with PROC_PIDTBSDINFO failed"); - return -1; - } - - // allocate memory to hold the fd information (we don't acutally use this information - // but need it to get the number of open files) - fds_size = bsdinfo.pbi_nfiles * sizeof(struct proc_fdinfo); - fds = malloc(fds_size); - if (fds == NULL) { - JNU_ThrowOutOfMemoryError(env, "could not allocate space for file descriptors"); - return -1; - } - - // get the list of open files - the return value is the number of bytes - // proc_pidinfo filled in - res = proc_pidinfo(my_pid, PROC_PIDLISTFDS, 0, fds, fds_size); - if (res <= 0) { - free(fds); - throw_internal_error(env, "proc_pidinfo failed for PROC_PIDLISTFDS"); - return -1; - } - nfiles = res / sizeof(struct proc_fdinfo); - free(fds); - - return nfiles; -#elif defined(_ALLBSD_SOURCE) - /* - * XXXBSD: there's no way available to do it in FreeBSD, AFAIK. - */ - // throw_internal_error(env, "Unimplemented in FreeBSD"); - return (100); -#else /* solaris/linux */ - DIR *dirp; - struct dirent dbuf; - struct dirent* dentp; - jlong fds = 0; - - dirp = opendir("/proc/self/fd"); - if (dirp == NULL) { - throw_internal_error(env, "Unable to open directory /proc/self/fd"); - return -1; - } - - // iterate through directory entries, skipping '.' and '..' - // each entry represents an open file descriptor. - while ((dentp = read_dir(dirp, &dbuf)) != NULL) { - if (isdigit(dentp->d_name[0])) { - fds++; - } - } - - closedir(dirp); - // subtract by 1 which was the fd open for this implementation - return (fds - 1); -#endif -} - -JNIEXPORT jlong JNICALL -Java_com_sun_management_UnixOperatingSystem_getMaxFileDescriptorCount - (JNIEnv *env, jobject mbean) -{ - struct rlimit rlp; - - if (getrlimit(RLIMIT_NOFILE, &rlp) == -1) { - throw_internal_error(env, "getrlimit failed"); - return -1; - } - return (jlong) rlp.rlim_cur; -}
--- a/src/solaris/native/java/net/Inet4AddressImpl.c Thu Nov 14 23:32:31 2013 -0800 +++ b/src/solaris/native/java/net/Inet4AddressImpl.c Fri Nov 15 07:14:23 2013 -0800 @@ -55,17 +55,23 @@ static jclass ni_ia4cls; static jmethodID ni_ia4ctrID; -static void initializeInetClasses(JNIEnv *env) +static jboolean initializeInetClasses(JNIEnv *env) { static int initialized = 0; if (!initialized) { ni_iacls = (*env)->FindClass(env, "java/net/InetAddress"); + CHECK_NULL_RETURN(ni_iacls, JNI_FALSE); ni_iacls = (*env)->NewGlobalRef(env, ni_iacls); + CHECK_NULL_RETURN(ni_iacls, JNI_FALSE); ni_ia4cls = (*env)->FindClass(env, "java/net/Inet4Address"); + CHECK_NULL_RETURN(ni_ia4cls, JNI_FALSE); ni_ia4cls = (*env)->NewGlobalRef(env, ni_ia4cls); + CHECK_NULL_RETURN(ni_ia4cls, JNI_FALSE); ni_ia4ctrID = (*env)->GetMethodID(env, ni_ia4cls, "<init>", "()V"); + CHECK_NULL_RETURN(ni_ia4ctrID, JNI_FALSE); initialized = 1; } + return JNI_TRUE; } @@ -141,7 +147,8 @@ int error=0; struct addrinfo hints, *res, *resNew = NULL; - initializeInetClasses(env); + if (!initializeInetClasses(env)) + return NULL; if (IS_NULL(host)) { JNU_ThrowNullPointerException(env, "host is null"); @@ -400,7 +407,8 @@ int error = 0; struct addrinfo hints, *res, *resNew = NULL; - initializeInetClasses(env); + if (!initializeInetClasses(env)) + return NULL; if (IS_NULL(host)) { JNU_ThrowNullPointerException(env, "host is null");
--- a/src/solaris/native/java/net/Inet6AddressImpl.c Thu Nov 14 23:32:31 2013 -0800 +++ b/src/solaris/native/java/net/Inet6AddressImpl.c Fri Nov 15 07:14:23 2013 -0800 @@ -124,25 +124,35 @@ static jmethodID ni_ia6ctrID; static jboolean preferIPv6Address; -static void initializeInetClasses(JNIEnv *env) +static jboolean initializeInetClasses(JNIEnv *env) { jfieldID ni_preferIPv6AddressID; static int initialized = 0; if (!initialized) { ni_iacls = (*env)->FindClass(env, "java/net/InetAddress"); + CHECK_NULL_RETURN(ni_iacls, JNI_FALSE); ni_iacls = (*env)->NewGlobalRef(env, ni_iacls); + CHECK_NULL_RETURN(ni_iacls, JNI_FALSE); ni_ia4cls = (*env)->FindClass(env, "java/net/Inet4Address"); + CHECK_NULL_RETURN(ni_ia4cls, JNI_FALSE); ni_ia4cls = (*env)->NewGlobalRef(env, ni_ia4cls); + CHECK_NULL_RETURN(ni_ia4cls, JNI_FALSE); ni_ia6cls = (*env)->FindClass(env, "java/net/Inet6Address"); + CHECK_NULL_RETURN(ni_ia6cls, JNI_FALSE); ni_ia6cls = (*env)->NewGlobalRef(env, ni_ia6cls); + CHECK_NULL_RETURN(ni_ia6cls, JNI_FALSE); ni_ia4ctrID = (*env)->GetMethodID(env, ni_ia4cls, "<init>", "()V"); + CHECK_NULL_RETURN(ni_ia4ctrID, JNI_FALSE); ni_ia6ctrID = (*env)->GetMethodID(env, ni_ia6cls, "<init>", "()V"); + CHECK_NULL_RETURN(ni_ia6ctrID, JNI_FALSE); ni_preferIPv6AddressID = (*env)->GetStaticFieldID(env, ni_iacls, "preferIPv6Address", "Z"); + CHECK_NULL_RETURN(ni_preferIPv6AddressID, JNI_FALSE); preferIPv6Address = (*env)->GetStaticBooleanField(env, ia_class, ia_preferIPv6AddressID); initialized = 1; } + return JNI_TRUE; } #ifdef MACOSX @@ -160,7 +170,8 @@ jobject name; // Make sure static variables we need are set. - initializeInetClasses(env); + if (!initializeInetClasses(env)) + return NULL; /* If the requested name matches this host's hostname, return IP addresses * from all attached interfaces. (#2844683 et al) This prevents undesired @@ -286,7 +297,8 @@ struct addrinfo hints, *res, *resNew = NULL; #endif /* AF_INET6 */ - initializeInetClasses(env); + if (!initializeInetClasses(env)) + return NULL; if (IS_NULL(host)) { JNU_ThrowNullPointerException(env, "host is null");
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/solaris/native/sun/management/LinuxOperatingSystem.c Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,332 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. 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. + */ + +#include <stdio.h> +#include <stdint.h> +#include <stdarg.h> +#include <unistd.h> +#include <errno.h> +#include <string.h> +#include <sys/resource.h> +#include <sys/types.h> +#include <dirent.h> +#include <stdlib.h> +#include <dlfcn.h> +#include <pthread.h> +#include "sun_management_OperatingSystemImpl.h" + +struct ticks { + uint64_t used; + uint64_t usedKernel; + uint64_t total; +}; + +typedef struct ticks ticks; + +typedef enum { + CPU_LOAD_VM_ONLY, + CPU_LOAD_GLOBAL, +} CpuLoadTarget; + +static struct perfbuf { + int nProcs; + ticks jvmTicks; + ticks cpuTicks; + ticks *cpus; +} counters; + +#define DEC_64 "%lld" + +static void next_line(FILE *f) { + while (fgetc(f) != '\n'); +} + +/** + * Return the total number of ticks since the system was booted. + * If the usedTicks parameter is not NULL, it will be filled with + * the number of ticks spent on actual processes (user, system or + * nice processes) since system boot. Note that this is the total number + * of "executed" ticks on _all_ CPU:s, that is on a n-way system it is + * n times the number of ticks that has passed in clock time. + * + * Returns a negative value if the reading of the ticks failed. + */ +static int get_totalticks(int which, ticks *pticks) { + FILE *fh; + uint64_t userTicks, niceTicks, systemTicks, idleTicks; + int n; + + if((fh = fopen("/proc/stat", "r")) == NULL) { + return -1; + } + + n = fscanf(fh, "cpu " DEC_64 " " DEC_64 " " DEC_64 " " DEC_64, + &userTicks, &niceTicks, &systemTicks, &idleTicks); + + // Move to next line + next_line(fh); + + //find the line for requested cpu faster to just iterate linefeeds? + if (which != -1) { + int i; + for (i = 0; i < which; i++) { + if (fscanf(fh, "cpu%*d " DEC_64 " " DEC_64 " " DEC_64 " " DEC_64, &userTicks, &niceTicks, &systemTicks, &idleTicks) != 4) { + fclose(fh); + return -2; + } + next_line(fh); + } + n = fscanf(fh, "cpu%*d " DEC_64 " " DEC_64 " " DEC_64 " " DEC_64 "\n", + &userTicks, &niceTicks, &systemTicks, &idleTicks); + } + + fclose(fh); + if (n != 4) { + return -2; + } + + pticks->used = userTicks + niceTicks; + pticks->usedKernel = systemTicks; + pticks->total = userTicks + niceTicks + systemTicks + idleTicks; + + return 0; +} + +static int vread_statdata(const char *procfile, const char *fmt, va_list args) { + FILE *f; + int n; + char buf[2048]; + + if ((f = fopen(procfile, "r")) == NULL) { + return -1; + } + + if ((n = fread(buf, 1, sizeof(buf), f)) != -1) { + char *tmp; + + buf[n-1] = '\0'; + /** skip through pid and exec name. the exec name _could be wacky_ (renamed) and + * make scanf go mupp. + */ + if ((tmp = strrchr(buf, ')')) != NULL) { + // skip the ')' and the following space but check that the buffer is long enough + tmp += 2; + if (tmp < buf + n) { + n = vsscanf(tmp, fmt, args); + } + } + } + + fclose(f); + + return n; +} + +static int read_statdata(const char *procfile, const char *fmt, ...) { + int n; + va_list args; + + va_start(args, fmt); + n = vread_statdata(procfile, fmt, args); + va_end(args); + return n; +} + +/** read user and system ticks from a named procfile, assumed to be in 'stat' format then. */ +static int read_ticks(const char *procfile, uint64_t *userTicks, uint64_t *systemTicks) { + return read_statdata(procfile, "%*c %*d %*d %*d %*d %*d %*u %*u %*u %*u %*u "DEC_64" "DEC_64, + userTicks, systemTicks + ); +} + +/** + * Return the number of ticks spent in any of the processes belonging + * to the JVM on any CPU. + */ +static int get_jvmticks(ticks *pticks) { + uint64_t userTicks; + uint64_t systemTicks; + + if (read_ticks("/proc/self/stat", &userTicks, &systemTicks) < 0) { + return -1; + } + + // get the total + if (get_totalticks(-1, pticks) < 0) { + return -1; + } + + pticks->used = userTicks; + pticks->usedKernel = systemTicks; + + return 0; +} + +/** + * This method must be called first, before any data can be gathererd. + */ +int perfInit() { + static int initialized=1; + + if (!initialized) { + int i; + + int n = sysconf(_SC_NPROCESSORS_ONLN); + if (n <= 0) { + n = 1; + } + + counters.cpus = calloc(n,sizeof(ticks)); + if (counters.cpus != NULL) { + // For the CPU load + get_totalticks(-1, &counters.cpuTicks); + + for (i = 0; i < n; i++) { + get_totalticks(i, &counters.cpus[i]); + } + // For JVM load + get_jvmticks(&counters.jvmTicks); + initialized = 1; + } + } + + return initialized ? 0 : -1; +} + +#define MAX(a,b) (a>b?a:b) +#define MIN(a,b) (a<b?a:b) + +static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; + +/** + * Return the load of the CPU as a double. 1.0 means the CPU process uses all + * available time for user or system processes, 0.0 means the CPU uses all time + * being idle. + * + * Returns a negative value if there is a problem in determining the CPU load. + */ + +static double get_cpuload_internal(int which, double *pkernelLoad, CpuLoadTarget target) { + uint64_t udiff, kdiff, tdiff; + ticks *pticks, tmp; + double user_load = -1.0; + int failed = 0; + + *pkernelLoad = 0.0; + + pthread_mutex_lock(&lock); + + if(perfInit() == 0) { + + if (target == CPU_LOAD_VM_ONLY) { + pticks = &counters.jvmTicks; + } else if (which == -1) { + pticks = &counters.cpuTicks; + } else { + pticks = &counters.cpus[which]; + } + + tmp = *pticks; + + if (target == CPU_LOAD_VM_ONLY) { + if (get_jvmticks(pticks) != 0) { + failed = 1; + } + } else if (get_totalticks(which, pticks) < 0) { + failed = 1; + } + + if(!failed) { + // seems like we sometimes end up with less kernel ticks when + // reading /proc/self/stat a second time, timing issue between cpus? + if (pticks->usedKernel < tmp.usedKernel) { + kdiff = 0; + } else { + kdiff = pticks->usedKernel - tmp.usedKernel; + } + tdiff = pticks->total - tmp.total; + udiff = pticks->used - tmp.used; + + if (tdiff == 0) { + user_load = 0; + } else { + if (tdiff < (udiff + kdiff)) { + tdiff = udiff + kdiff; + } + *pkernelLoad = (kdiff / (double)tdiff); + // BUG9044876, normalize return values to sane values + *pkernelLoad = MAX(*pkernelLoad, 0.0); + *pkernelLoad = MIN(*pkernelLoad, 1.0); + + user_load = (udiff / (double)tdiff); + user_load = MAX(user_load, 0.0); + user_load = MIN(user_load, 1.0); + } + } + } + pthread_mutex_unlock(&lock); + return user_load; +} + +double get_cpu_load(int which) { + double u, s; + u = get_cpuload_internal(which, &s, CPU_LOAD_GLOBAL); + if (u < 0) { + return -1.0; + } + // Cap total systemload to 1.0 + return MIN((u + s), 1.0); +} + +double get_process_load() { + double u, s; + u = get_cpuload_internal(-1, &s, CPU_LOAD_VM_ONLY); + if (u < 0) { + return -1.0; + } + return u + s; +} + +JNIEXPORT jdouble JNICALL +Java_sun_management_OperatingSystemImpl_getSystemCpuLoad +(JNIEnv *env, jobject dummy) +{ + if(perfInit() == 0) { + return get_cpu_load(-1); + } else { + return -1.0; + } +} + +JNIEXPORT jdouble JNICALL +Java_sun_management_OperatingSystemImpl_getProcessCpuLoad +(JNIEnv *env, jobject dummy) +{ + if(perfInit() == 0) { + return get_process_load(); + } else { + return -1.0; + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/solaris/native/sun/management/MacosxOperatingSystem.c Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,160 @@ +/* + * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * 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. + */ + +#include "sun_management_OperatingSystemImpl.h" + +#include <sys/time.h> +#include <mach/mach.h> +#include <mach/task_info.h> + + +JNIEXPORT jdouble JNICALL +Java_sun_management_OperatingSystemImpl_getSystemCpuLoad +(JNIEnv *env, jobject dummy) +{ + // This code is influenced by the darwin top source + + kern_return_t kr; + mach_msg_type_number_t count; + host_cpu_load_info_data_t load; + + static jlong last_used = 0; + static jlong last_total = 0; + + count = HOST_CPU_LOAD_INFO_COUNT; + kr = host_statistics(mach_host_self(), HOST_CPU_LOAD_INFO, (host_info_t)&load, &count); + if (kr != KERN_SUCCESS) { + return -1; + } + + jlong used = load.cpu_ticks[CPU_STATE_USER] + load.cpu_ticks[CPU_STATE_NICE] + load.cpu_ticks[CPU_STATE_SYSTEM]; + jlong total = used + load.cpu_ticks[CPU_STATE_IDLE]; + + if (last_used == 0 || last_total == 0) { + // First call, just set the last values + last_used = used; + last_total = total; + // return 0 since we have no data, not -1 which indicates error + return 0; + } + + jlong used_delta = used - last_used; + jlong total_delta = total - last_total; + + jdouble cpu = (jdouble) used_delta / total_delta; + + last_used = used; + last_total = total; + + return cpu; +} + + +#define TIME_VALUE_TO_TIMEVAL(a, r) do { \ + (r)->tv_sec = (a)->seconds; \ + (r)->tv_usec = (a)->microseconds; \ +} while (0) + + +#define TIME_VALUE_TO_MICROSECONDS(TV) \ + ((TV).tv_sec * 1000 * 1000 + (TV).tv_usec) + + +JNIEXPORT jdouble JNICALL +Java_sun_management_OperatingSystemImpl_getProcessCpuLoad +(JNIEnv *env, jobject dummy) +{ + // This code is influenced by the darwin top source + + struct task_basic_info_64 task_info_data; + struct task_thread_times_info thread_info_data; + struct timeval user_timeval, system_timeval, task_timeval; + struct timeval now; + mach_port_t task = mach_task_self(); + kern_return_t kr; + + static jlong last_task_time = 0; + static jlong last_time = 0; + + mach_msg_type_number_t thread_info_count = TASK_THREAD_TIMES_INFO_COUNT; + kr = task_info(task, + TASK_THREAD_TIMES_INFO, + (task_info_t)&thread_info_data, + &thread_info_count); + if (kr != KERN_SUCCESS) { + // Most likely cause: |task| is a zombie. + return -1; + } + + mach_msg_type_number_t count = TASK_BASIC_INFO_64_COUNT; + kr = task_info(task, + TASK_BASIC_INFO_64, + (task_info_t)&task_info_data, + &count); + if (kr != KERN_SUCCESS) { + // Most likely cause: |task| is a zombie. + return -1; + } + + /* Set total_time. */ + // thread info contains live time... + TIME_VALUE_TO_TIMEVAL(&thread_info_data.user_time, &user_timeval); + TIME_VALUE_TO_TIMEVAL(&thread_info_data.system_time, &system_timeval); + timeradd(&user_timeval, &system_timeval, &task_timeval); + + // ... task info contains terminated time. + TIME_VALUE_TO_TIMEVAL(&task_info_data.user_time, &user_timeval); + TIME_VALUE_TO_TIMEVAL(&task_info_data.system_time, &system_timeval); + timeradd(&user_timeval, &task_timeval, &task_timeval); + timeradd(&system_timeval, &task_timeval, &task_timeval); + + if (gettimeofday(&now, NULL) < 0) { + return -1; + } + jint ncpus = JVM_ActiveProcessorCount(); + jlong time = TIME_VALUE_TO_MICROSECONDS(now) * ncpus; + jlong task_time = TIME_VALUE_TO_MICROSECONDS(task_timeval); + + if ((last_task_time == 0) || (last_time == 0)) { + // First call, just set the last values. + last_task_time = task_time; + last_time = time; + // return 0 since we have no data, not -1 which indicates error + return 0; + } + + jlong task_time_delta = task_time - last_task_time; + jlong time_delta = time - last_time; + if (time_delta == 0) { + return -1; + } + + jdouble cpu = (jdouble) task_time_delta / time_delta; + + last_task_time = task_time; + last_time = time; + + return cpu; + }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/solaris/native/sun/management/OperatingSystemImpl.c Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,451 @@ +/* + * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * 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. + */ + +#include "jni.h" +#include "jni_util.h" +#include "jlong.h" +#include "jvm.h" +#include "management.h" +#include "sun_management_OperatingSystemImpl.h" + +#include <sys/types.h> +#include <sys/stat.h> +#if defined(_ALLBSD_SOURCE) +#include <sys/sysctl.h> +#ifdef __APPLE__ +#include <sys/param.h> +#include <sys/mount.h> +#include <mach/mach.h> +#include <sys/proc_info.h> +#include <libproc.h> +#endif +#else +#include <sys/swap.h> +#endif +#include <sys/resource.h> +#include <sys/times.h> +#ifndef _ALLBSD_SOURCE +#include <sys/sysinfo.h> +#endif +#include <ctype.h> +#include <dirent.h> +#include <errno.h> +#include <fcntl.h> +#include <limits.h> +#include <stdlib.h> +#include <unistd.h> + +static jlong page_size = 0; + +#if defined(_ALLBSD_SOURCE) +#define MB (1024UL * 1024UL) +#else + +/* This gets us the new structured proc interfaces of 5.6 & later */ +/* - see comment in <sys/procfs.h> */ +#define _STRUCTURED_PROC 1 +#include <sys/procfs.h> + +#endif /* _ALLBSD_SOURCE */ + +static struct dirent* read_dir(DIR* dirp, struct dirent* entry) { +#ifdef __solaris__ + struct dirent* dbuf = readdir(dirp); + return dbuf; +#else /* __linux__ || _ALLBSD_SOURCE */ + struct dirent* p; + if (readdir_r(dirp, entry, &p) == 0) { + return p; + } else { + return NULL; + } +#endif +} + +// true = get available swap in bytes +// false = get total swap in bytes +static jlong get_total_or_available_swap_space_size(JNIEnv* env, jboolean available) { +#ifdef __solaris__ + long total, avail; + int nswap, i, count; + swaptbl_t *stbl; + char *strtab; + + // First get the number of swap resource entries + if ((nswap = swapctl(SC_GETNSWP, NULL)) == -1) { + throw_internal_error(env, "swapctl failed to get nswap"); + return -1; + } + if (nswap == 0) { + return 0; + } + + // Allocate storage for resource entries + stbl = (swaptbl_t*) malloc(nswap * sizeof(swapent_t) + + sizeof(struct swaptable)); + if (stbl == NULL) { + JNU_ThrowOutOfMemoryError(env, 0); + return -1; + } + + // Allocate storage for the table + strtab = (char*) malloc((nswap + 1) * MAXPATHLEN); + if (strtab == NULL) { + free(stbl); + JNU_ThrowOutOfMemoryError(env, 0); + return -1; + } + + for (i = 0; i < (nswap + 1); i++) { + stbl->swt_ent[i].ste_path = strtab + (i * MAXPATHLEN); + } + stbl->swt_n = nswap + 1; + + // Get the entries + if ((count = swapctl(SC_LIST, stbl)) < 0) { + free(stbl); + free(strtab); + throw_internal_error(env, "swapctl failed to get swap list"); + return -1; + } + + // Sum the entries to get total and free swap + total = 0; + avail = 0; + for (i = 0; i < count; i++) { + total += stbl->swt_ent[i].ste_pages; + avail += stbl->swt_ent[i].ste_free; + } + + free(stbl); + free(strtab); + return available ? ((jlong)avail * page_size) : + ((jlong)total * page_size); +#elif defined(__linux__) + int ret; + FILE *fp; + jlong total = 0, avail = 0; + + struct sysinfo si; + ret = sysinfo(&si); + if (ret != 0) { + throw_internal_error(env, "sysinfo failed to get swap size"); + } + total = (jlong)si.totalswap * si.mem_unit; + avail = (jlong)si.freeswap * si.mem_unit; + + return available ? avail : total; +#elif defined(__APPLE__) + struct xsw_usage vmusage; + size_t size = sizeof(vmusage); + if (sysctlbyname("vm.swapusage", &vmusage, &size, NULL, 0) != 0) { + throw_internal_error(env, "sysctlbyname failed"); + } + return available ? (jlong)vmusage.xsu_avail : (jlong)vmusage.xsu_total; +#else /* _ALLBSD_SOURCE */ + /* + * XXXBSD: there's no way available to get swap info in + * FreeBSD. Usage of libkvm is not an option here + */ + // throw_internal_error(env, "Unimplemented in FreeBSD"); + return (0); +#endif +} + +JNIEXPORT void JNICALL +Java_sun_management_OperatingSystemImpl_initialize + (JNIEnv *env, jclass cls) +{ + page_size = sysconf(_SC_PAGESIZE); +} + +JNIEXPORT jlong JNICALL +Java_sun_management_OperatingSystemImpl_getCommittedVirtualMemorySize + (JNIEnv *env, jobject mbean) +{ +#ifdef __solaris__ + psinfo_t psinfo; + ssize_t result; + size_t remaining; + char* addr; + int fd; + + fd = JVM_Open("/proc/self/psinfo", O_RDONLY, 0); + if (fd < 0) { + throw_internal_error(env, "Unable to open /proc/self/psinfo"); + return -1; + } + + addr = (char *)&psinfo; + for (remaining = sizeof(psinfo_t); remaining > 0;) { + result = JVM_Read(fd, addr, remaining); + if (result < 0) { + JVM_Close(fd); + throw_internal_error(env, "Unable to read /proc/self/psinfo"); + return -1; + } + remaining -= result; + addr += result; + } + + JVM_Close(fd); + return (jlong) psinfo.pr_size * 1024; +#elif defined(__linux__) + FILE *fp; + unsigned long vsize = 0; + + if ((fp = fopen("/proc/self/stat", "r")) == NULL) { + throw_internal_error(env, "Unable to open /proc/self/stat"); + return -1; + } + + // Ignore everything except the vsize entry + if (fscanf(fp, "%*d %*s %*c %*d %*d %*d %*d %*d %*u %*u %*u %*u %*u %*d %*d %*d %*d %*d %*d %*u %*u %*d %lu %*[^\n]\n", &vsize) == EOF) { + throw_internal_error(env, "Unable to get virtual memory usage"); + fclose(fp); + return -1; + } + + fclose(fp); + return (jlong)vsize; +#elif defined(__APPLE__) + struct task_basic_info t_info; + mach_msg_type_number_t t_info_count = TASK_BASIC_INFO_COUNT; + + kern_return_t res = task_info(mach_task_self(), TASK_BASIC_INFO, (task_info_t)&t_info, &t_info_count); + if (res != KERN_SUCCESS) { + throw_internal_error(env, "task_info failed"); + } + return t_info.virtual_size; +#else /* _ALLBSD_SOURCE */ + /* + * XXXBSD: there's no way available to do it in FreeBSD, AFAIK. + */ + // throw_internal_error(env, "Unimplemented in FreeBSD"); + return (64 * MB); +#endif +} + +JNIEXPORT jlong JNICALL +Java_sun_management_OperatingSystemImpl_getTotalSwapSpaceSize + (JNIEnv *env, jobject mbean) +{ + return get_total_or_available_swap_space_size(env, JNI_FALSE); +} + +JNIEXPORT jlong JNICALL +Java_sun_management_OperatingSystemImpl_getFreeSwapSpaceSize + (JNIEnv *env, jobject mbean) +{ + return get_total_or_available_swap_space_size(env, JNI_TRUE); +} + +JNIEXPORT jlong JNICALL +Java_sun_management_OperatingSystemImpl_getProcessCpuTime + (JNIEnv *env, jobject mbean) +{ +#ifdef __APPLE__ + struct rusage usage; + if (getrusage(RUSAGE_SELF, &usage) != 0) { + throw_internal_error(env, "getrusage failed"); + return -1; + } + jlong microsecs = + usage.ru_utime.tv_sec * 1000 * 1000 + usage.ru_utime.tv_usec + + usage.ru_stime.tv_sec * 1000 * 1000 + usage.ru_stime.tv_usec; + return microsecs * 1000; +#else + jlong clk_tck, ns_per_clock_tick; + jlong cpu_time_ns; + struct tms time; + + /* + * BSDNOTE: FreeBSD implements _SC_CLK_TCK since FreeBSD 5, so + * add a magic to handle it + */ +#if defined(__solaris__) || defined(_SC_CLK_TCK) + clk_tck = (jlong) sysconf(_SC_CLK_TCK); +#elif defined(__linux__) || defined(_ALLBSD_SOURCE) + clk_tck = 100; +#endif + if (clk_tck == -1) { + throw_internal_error(env, + "sysconf failed - not able to get clock tick"); + return -1; + } + + times(&time); + ns_per_clock_tick = (jlong) 1000 * 1000 * 1000 / (jlong) clk_tck; + cpu_time_ns = ((jlong)time.tms_utime + (jlong) time.tms_stime) * + ns_per_clock_tick; + return cpu_time_ns; +#endif +} + +JNIEXPORT jlong JNICALL +Java_sun_management_OperatingSystemImpl_getFreePhysicalMemorySize + (JNIEnv *env, jobject mbean) +{ +#ifdef __APPLE__ + mach_msg_type_number_t count; + vm_statistics_data_t vm_stats; + kern_return_t res; + + count = HOST_VM_INFO_COUNT; + res = host_statistics(mach_host_self(), HOST_VM_INFO, (host_info_t)&vm_stats, &count); + if (res != KERN_SUCCESS) { + throw_internal_error(env, "host_statistics failed"); + return -1; + } + return (jlong)vm_stats.free_count * page_size; +#elif defined(_ALLBSD_SOURCE) + /* + * XXBSDL no way to do it in FreeBSD + */ + // throw_internal_error(env, "unimplemented in FreeBSD") + return (128 * MB); +#else // solaris / linux + jlong num_avail_physical_pages = sysconf(_SC_AVPHYS_PAGES); + return (num_avail_physical_pages * page_size); +#endif +} + +JNIEXPORT jlong JNICALL +Java_sun_management_OperatingSystemImpl_getTotalPhysicalMemorySize + (JNIEnv *env, jobject mbean) +{ +#ifdef _ALLBSD_SOURCE + jlong result = 0; + int mib[2]; + size_t rlen; + + mib[0] = CTL_HW; + mib[1] = HW_MEMSIZE; + rlen = sizeof(result); + if (sysctl(mib, 2, &result, &rlen, NULL, 0) != 0) { + throw_internal_error(env, "sysctl failed"); + return -1; + } + return result; +#else // solaris / linux + jlong num_physical_pages = sysconf(_SC_PHYS_PAGES); + return (num_physical_pages * page_size); +#endif +} + + + +JNIEXPORT jlong JNICALL +Java_sun_management_OperatingSystemImpl_getOpenFileDescriptorCount + (JNIEnv *env, jobject mbean) +{ +#ifdef __APPLE__ + // This code is influenced by the darwin lsof source + pid_t my_pid; + struct proc_bsdinfo bsdinfo; + struct proc_fdinfo *fds; + int nfiles; + kern_return_t kres; + int res; + size_t fds_size; + + kres = pid_for_task(mach_task_self(), &my_pid); + if (kres != KERN_SUCCESS) { + throw_internal_error(env, "pid_for_task failed"); + return -1; + } + + // get the maximum number of file descriptors + res = proc_pidinfo(my_pid, PROC_PIDTBSDINFO, 0, &bsdinfo, PROC_PIDTBSDINFO_SIZE); + if (res <= 0) { + throw_internal_error(env, "proc_pidinfo with PROC_PIDTBSDINFO failed"); + return -1; + } + + // allocate memory to hold the fd information (we don't acutally use this information + // but need it to get the number of open files) + fds_size = bsdinfo.pbi_nfiles * sizeof(struct proc_fdinfo); + fds = malloc(fds_size); + if (fds == NULL) { + JNU_ThrowOutOfMemoryError(env, "could not allocate space for file descriptors"); + return -1; + } + + // get the list of open files - the return value is the number of bytes + // proc_pidinfo filled in + res = proc_pidinfo(my_pid, PROC_PIDLISTFDS, 0, fds, fds_size); + if (res <= 0) { + free(fds); + throw_internal_error(env, "proc_pidinfo failed for PROC_PIDLISTFDS"); + return -1; + } + nfiles = res / sizeof(struct proc_fdinfo); + free(fds); + + return nfiles; +#elif defined(_ALLBSD_SOURCE) + /* + * XXXBSD: there's no way available to do it in FreeBSD, AFAIK. + */ + // throw_internal_error(env, "Unimplemented in FreeBSD"); + return (100); +#else /* solaris/linux */ + DIR *dirp; + struct dirent dbuf; + struct dirent* dentp; + jlong fds = 0; + + dirp = opendir("/proc/self/fd"); + if (dirp == NULL) { + throw_internal_error(env, "Unable to open directory /proc/self/fd"); + return -1; + } + + // iterate through directory entries, skipping '.' and '..' + // each entry represents an open file descriptor. + while ((dentp = read_dir(dirp, &dbuf)) != NULL) { + if (isdigit(dentp->d_name[0])) { + fds++; + } + } + + closedir(dirp); + // subtract by 1 which was the fd open for this implementation + return (fds - 1); +#endif +} + +JNIEXPORT jlong JNICALL +Java_sun_management_OperatingSystemImpl_getMaxFileDescriptorCount + (JNIEnv *env, jobject mbean) +{ + struct rlimit rlp; + + if (getrlimit(RLIMIT_NOFILE, &rlp) == -1) { + throw_internal_error(env, "getrlimit failed"); + return -1; + } + return (jlong) rlp.rlim_cur; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/solaris/native/sun/management/SolarisOperatingSystem.c Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,241 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. 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. + */ + +#include <fcntl.h> +#include <kstat.h> +#include <procfs.h> +#include <unistd.h> +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <sys/sysinfo.h> +#include <sys/lwp.h> +#include <pthread.h> +#include <utmpx.h> +#include <dlfcn.h> +#include <sys/loadavg.h> +#include <jni.h> +#include "jvm.h" +#include "sun_management_OperatingSystemImpl.h" + +typedef struct { + kstat_t *kstat; + uint64_t last_idle; + uint64_t last_total; + double last_ratio; +} cpuload_t; + +static cpuload_t *cpu_loads = NULL; +static unsigned int num_cpus; +static kstat_ctl_t *kstat_ctrl = NULL; + +static void map_cpu_kstat_counters() { + kstat_t *kstat; + int i; + + // Get number of CPU(s) + if ((num_cpus = sysconf(_SC_NPROCESSORS_ONLN)) == -1) { + num_cpus = 1; + } + + // Data structure for saving CPU load + if ((cpu_loads = calloc(num_cpus,sizeof(cpuload_t))) == NULL) { + return; + } + + // Get kstat cpu_stat counters for every CPU + // (loop over kstat to find our cpu_stat(s) + i = 0; + for (kstat = kstat_ctrl->kc_chain; kstat != NULL; kstat = kstat->ks_next) { + if (strncmp(kstat->ks_module, "cpu_stat", 8) == 0) { + + if (kstat_read(kstat_ctrl, kstat, NULL) == -1) { + // Failed to initialize kstat for this CPU so ignore it + continue; + } + + if (i == num_cpus) { + // Found more cpu_stats than reported CPUs + break; + } + + cpu_loads[i++].kstat = kstat; + } + } +} + +static int init_cpu_kstat_counters() { + static int initialized = 0; + + // Concurrence in this method is prevented by the lock in + // the calling method get_cpu_load(); + if(!initialized) { + if ((kstat_ctrl = kstat_open()) != NULL) { + map_cpu_kstat_counters(); + initialized = 1; + } + } + return initialized ? 0 : -1; +} + +static void update_cpu_kstat_counters() { + if(kstat_chain_update(kstat_ctrl) != 0) { + free(cpu_loads); + map_cpu_kstat_counters(); + } +} + +int read_cpustat(cpuload_t *load, cpu_stat_t *cpu_stat) { + if (load->kstat == NULL) { + // no handle. + return -1; + } + if (kstat_read(kstat_ctrl, load->kstat, cpu_stat) == -1) { + // disabling for now, a kstat chain update is likely to happen next time + load->kstat = NULL; + return -1; + } + return 0; +} + +double get_single_cpu_load(unsigned int n) { + cpuload_t *load; + cpu_stat_t cpu_stat; + uint_t *usage; + uint64_t c_idle; + uint64_t c_total; + uint64_t d_idle; + uint64_t d_total; + int i; + + if (n >= num_cpus) { + return -1.0; + } + + load = &cpu_loads[n]; + if (read_cpustat(load, &cpu_stat) < 0) { + return -1.0; + } + + usage = cpu_stat.cpu_sysinfo.cpu; + c_idle = usage[CPU_IDLE]; + + for (c_total = 0, i = 0; i < CPU_STATES; i++) { + c_total += usage[i]; + } + + // Calculate diff against previous snapshot + d_idle = c_idle - load->last_idle; + d_total = c_total - load->last_total; + + /** update if weve moved */ + if (d_total > 0) { + // Save current values for next time around + load->last_idle = c_idle; + load->last_total = c_total; + load->last_ratio = (double) (d_total - d_idle) / d_total; + } + + return load->last_ratio; +} + +int get_info(const char *path, void *info, size_t s, off_t o) { + int fd; + int ret = 0; + if ((fd = open(path, O_RDONLY)) < 0) { + return -1; + } + if (pread(fd, info, s, o) != s) { + ret = -1; + } + close(fd); + return ret; +} + +#define MIN(a, b) ((a < b) ? a : b) + +static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; + +/** + * Return the cpu load (0-1) for proc number 'which' (or average all if which == -1) + */ +double get_cpu_load(int which) { + double load =.0; + + pthread_mutex_lock(&lock); + if(init_cpu_kstat_counters()==0) { + + update_cpu_kstat_counters(); + + if (which == -1) { + unsigned int i; + double t; + + for (t = .0, i = 0; i < num_cpus; i++) { + t += get_single_cpu_load(i); + } + + // Cap total systemload to 1.0 + load = MIN((t / num_cpus), 1.0); + } else { + load = MIN(get_single_cpu_load(which), 1.0); + } + } else { + load = -1.0; + } + pthread_mutex_unlock(&lock); + + return load; +} + +/** + * Return the cpu load (0-1) for the current process (i.e the JVM) + * or -1.0 if the get_info() call failed + */ +double get_process_load(void) { + psinfo_t info; + + // Get the percentage of "recent cpu usage" from all the lwp:s in the JVM:s + // process. This is returned as a value between 0.0 and 1.0 multiplied by 0x8000. + if (get_info("/proc/self/psinfo",&info.pr_pctcpu, sizeof(info.pr_pctcpu), offsetof(psinfo_t, pr_pctcpu)) == 0) { + return (double) info.pr_pctcpu / 0x8000; + } + return -1.0; +} + +JNIEXPORT jdouble JNICALL +Java_sun_management_OperatingSystemImpl_getSystemCpuLoad +(JNIEnv *env, jobject dummy) +{ + return get_cpu_load(-1); +} + +JNIEXPORT jdouble JNICALL +Java_sun_management_OperatingSystemImpl_getProcessCpuLoad +(JNIEnv *env, jobject dummy) +{ + return get_process_load(); +} +
--- a/src/windows/classes/com/sun/management/OSMBeanFactory.java Thu Nov 14 23:32:31 2013 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2003, 2004, 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 com.sun.management; - -import java.lang.management.OperatingSystemMXBean; -import sun.management.VMManagement; - -/** - * Operating system dependent MBean factory. - * <p> - * <b>WARNING:</b> While this class is public, it should not be treated as - * public API and its API may change in incompatable ways between dot dot - * releases and even patch releases. You should not rely on this class. - */ -public class OSMBeanFactory { - /* static factory class */ - private OSMBeanFactory() {}; - - private static OperatingSystem osMBean = null; - - public static synchronized OperatingSystemMXBean - getOperatingSystemMXBean(VMManagement jvm) { - - if (osMBean == null) { - osMBean = new OperatingSystem(jvm); - } - return (OperatingSystemMXBean) osMBean; - } -}
--- a/src/windows/classes/com/sun/management/OperatingSystem.java Thu Nov 14 23:32:31 2013 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -/* - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. 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 com.sun.management; - -import sun.management.VMManagement; - -/** - * Implementation class for the operating system. - * Standard and committed hotspot-specific metrics if any. - * - * ManagementFactory.getOperatingSystemMXBean() returns an instance - * of this class. - */ -class OperatingSystem - extends sun.management.OperatingSystemImpl - implements OperatingSystemMXBean { - - // psapiLock is a lock to make sure only one thread loading - // PSAPI DLL. - private static Object psapiLock = new Object(); - - OperatingSystem(VMManagement vm) { - super(vm); - } - - public long getCommittedVirtualMemorySize() { - synchronized (psapiLock) { - return getCommittedVirtualMemorySize0(); - } - } - private native long getCommittedVirtualMemorySize0(); - - public native long getTotalSwapSpaceSize(); - public native long getFreeSwapSpaceSize(); - public native long getProcessCpuTime(); - public native long getFreePhysicalMemorySize(); - public native long getTotalPhysicalMemorySize(); - public native double getSystemCpuLoad(); - public native double getProcessCpuLoad(); - - static { - initialize(); - } - private static native void initialize(); -}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/windows/classes/sun/management/OperatingSystemImpl.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. 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 com.sun.management.OperatingSystemMXBean; + +/** + * Implementation class for the operating system. + * Standard and committed hotspot-specific metrics if any. + * + * ManagementFactory.getOperatingSystemMXBean() returns an instance + * of this class. + */ +class OperatingSystemImpl extends BaseOperatingSystemImpl + implements OperatingSystemMXBean { + + // psapiLock is a lock to make sure only one thread loading + // PSAPI DLL. + private static Object psapiLock = new Object(); + + OperatingSystemImpl(VMManagement vm) { + super(vm); + } + + public long getCommittedVirtualMemorySize() { + synchronized (psapiLock) { + return getCommittedVirtualMemorySize0(); + } + } + private native long getCommittedVirtualMemorySize0(); + + public native long getTotalSwapSpaceSize(); + public native long getFreeSwapSpaceSize(); + public native long getProcessCpuTime(); + public native long getFreePhysicalMemorySize(); + public native long getTotalPhysicalMemorySize(); + public native double getSystemCpuLoad(); + public native double getProcessCpuLoad(); + + static { + initialize(); + } + private static native void initialize(); +}
--- a/src/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java Fri Nov 15 07:14:23 2013 -0800 @@ -228,6 +228,7 @@ @Override public void run() { long overlapped = 0L; + boolean pending = false; try { begin(); @@ -241,6 +242,7 @@ overlapped); if (n == IOStatus.UNAVAILABLE) { // I/O is pending + pending = true; return; } // acquired lock immediately @@ -250,10 +252,10 @@ } catch (Throwable x) { // lock failed or channel closed removeFromFileLockTable(fli); - if (overlapped != 0L) - ioCache.remove(overlapped); result.setFailure(toIOException(x)); } finally { + if (!pending && overlapped != 0L) + ioCache.remove(overlapped); end(); }
--- a/src/windows/classes/sun/nio/fs/WindowsFileSystemProvider.java Thu Nov 14 23:32:31 2013 -0800 +++ b/src/windows/classes/sun/nio/fs/WindowsFileSystemProvider.java Fri Nov 15 07:14:23 2013 -0800 @@ -614,7 +614,7 @@ if (sm != null) { FilePermission perm = new FilePermission(link.getPathForPermissionCheck(), SecurityConstants.FILE_READLINK_ACTION); - AccessController.checkPermission(perm); + sm.checkPermission(perm); } String target = WindowsLinkSupport.readLink(link);
--- a/src/windows/native/com/sun/management/OperatingSystem_md.c Thu Nov 14 23:32:31 2013 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,941 +0,0 @@ -/* - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. 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. - */ - -#include "jni.h" -#include "jni_util.h" -#include "jlong.h" -#include "jvm.h" -#include "management.h" -#include "com_sun_management_OperatingSystem.h" - -#include <psapi.h> -#include <errno.h> -#include <stdlib.h> - -#include <malloc.h> -#pragma warning (push,0) -#include <windows.h> -#pragma warning (pop) -#include <stdio.h> -#include <time.h> -#include <stdint.h> -#include <assert.h> - -/* Disable warnings due to broken header files from Microsoft... */ -#pragma warning(push, 3) -#include <pdh.h> -#include <pdhmsg.h> -#include <process.h> -#pragma warning(pop) - -typedef unsigned __int32 juint; -typedef unsigned __int64 julong; - -typedef enum boolean_values { false=0, true=1}; - -static void set_low(jlong* value, jint low) { - *value &= (jlong)0xffffffff << 32; - *value |= (jlong)(julong)(juint)low; -} - -static void set_high(jlong* value, jint high) { - *value &= (jlong)(julong)(juint)0xffffffff; - *value |= (jlong)high << 32; -} - -static jlong jlong_from(jint h, jint l) { - jlong result = 0; // initialization to avoid warning - set_high(&result, h); - set_low(&result, l); - return result; -} - -static HANDLE main_process; - -int perfiInit(void); - -JNIEXPORT void JNICALL -Java_com_sun_management_OperatingSystem_initialize - (JNIEnv *env, jclass cls) -{ - main_process = GetCurrentProcess(); - perfiInit(); -} - -JNIEXPORT jlong JNICALL -Java_com_sun_management_OperatingSystem_getCommittedVirtualMemorySize0 - (JNIEnv *env, jobject mbean) -{ - PROCESS_MEMORY_COUNTERS pmc; - if (GetProcessMemoryInfo(main_process, &pmc, sizeof(PROCESS_MEMORY_COUNTERS)) == 0) { - return (jlong)-1L; - } else { - return (jlong) pmc.PagefileUsage; - } -} - -JNIEXPORT jlong JNICALL -Java_com_sun_management_OperatingSystem_getTotalSwapSpaceSize - (JNIEnv *env, jobject mbean) -{ - MEMORYSTATUSEX ms; - ms.dwLength = sizeof(ms); - GlobalMemoryStatusEx(&ms); - return (jlong) ms.ullTotalPageFile; -} - -JNIEXPORT jlong JNICALL -Java_com_sun_management_OperatingSystem_getFreeSwapSpaceSize - (JNIEnv *env, jobject mbean) -{ - MEMORYSTATUSEX ms; - ms.dwLength = sizeof(ms); - GlobalMemoryStatusEx(&ms); - return (jlong) ms.ullAvailPageFile; -} - -JNIEXPORT jlong JNICALL -Java_com_sun_management_OperatingSystem_getProcessCpuTime - (JNIEnv *env, jobject mbean) -{ - - FILETIME process_creation_time, process_exit_time, - process_user_time, process_kernel_time; - - // Using static variables declared above - // Units are 100-ns intervals. Convert to ns. - GetProcessTimes(main_process, &process_creation_time, - &process_exit_time, - &process_kernel_time, &process_user_time); - return (jlong_from(process_user_time.dwHighDateTime, - process_user_time.dwLowDateTime) + - jlong_from(process_kernel_time.dwHighDateTime, - process_kernel_time.dwLowDateTime)) * 100; -} - -JNIEXPORT jlong JNICALL -Java_com_sun_management_OperatingSystem_getFreePhysicalMemorySize - (JNIEnv *env, jobject mbean) -{ - MEMORYSTATUSEX ms; - ms.dwLength = sizeof(ms); - GlobalMemoryStatusEx(&ms); - return (jlong) ms.ullAvailPhys; -} - -JNIEXPORT jlong JNICALL -Java_com_sun_management_OperatingSystem_getTotalPhysicalMemorySize - (JNIEnv *env, jobject mbean) -{ - MEMORYSTATUSEX ms; - ms.dwLength = sizeof(ms); - GlobalMemoryStatusEx(&ms); - return (jlong) ms.ullTotalPhys; -} - -// Seems WinXP PDH returns PDH_MORE_DATA whenever we send in a NULL buffer. -// Let's just ignore it, since we make sure we have enough buffer anyway. -static int -pdh_fail(PDH_STATUS pdhStat) { - return pdhStat != ERROR_SUCCESS && pdhStat != PDH_MORE_DATA; -} - -// INFO: Using PDH APIs Correctly in a Localized Language (Q287159) -// http://support.microsoft.com/default.aspx?scid=kb;EN-US;q287159 -// The index value for the base system counters and objects like processor, -// process, thread, memory, and so forth are always the same irrespective -// of the localized version of the operating system or service pack installed. -#define PDH_PROCESSOR_IDX ((DWORD) 238) -#define PDH_PROCESSOR_TIME_IDX ((DWORD) 6) -#define PDH_PRIV_PROCESSOR_TIME_IDX ((DWORD) 144) -#define PDH_PROCESS_IDX ((DWORD) 230) -#define PDH_ID_PROCESS_IDX ((DWORD) 784) -#define PDH_CONTEXT_SWITCH_RATE_IDX ((DWORD) 146) -#define PDH_SYSTEM_IDX ((DWORD) 2) -#define PDH_VIRTUAL_BYTES_IDX ((DWORD) 174) - -typedef PDH_STATUS (WINAPI *PdhAddCounterFunc)( - HQUERY hQuery, - LPCSTR szFullCounterPath, - DWORD dwUserData, - HCOUNTER *phCounter - ); -typedef PDH_STATUS (WINAPI *PdhOpenQueryFunc)( - LPCWSTR szDataSource, - DWORD dwUserData, - HQUERY *phQuery - ); -typedef DWORD (WINAPI *PdhCloseQueryFunc)( - HQUERY hQuery - ); -typedef PDH_STATUS (WINAPI *PdhCollectQueryDataFunc)( - HQUERY hQuery - ); -typedef DWORD (WINAPI *PdhGetFormattedCounterValueFunc)( - HCOUNTER hCounter, - DWORD dwFormat, - LPDWORD lpdwType, - PPDH_FMT_COUNTERVALUE pValue - ); -typedef PDH_STATUS (WINAPI *PdhEnumObjectItemsFunc)( - LPCTSTR szDataSource, - LPCTSTR szMachineName, - LPCTSTR szObjectName, - LPTSTR mszCounterList, - LPDWORD pcchCounterListLength, - LPTSTR mszInstanceList, - LPDWORD pcchInstanceListLength, - DWORD dwDetailLevel, - DWORD dwFlags - ); -typedef PDH_STATUS (WINAPI *PdhRemoveCounterFunc)( - HCOUNTER hCounter - ); -typedef PDH_STATUS (WINAPI *PdhLookupPerfNameByIndexFunc)( - LPCSTR szMachineName, - DWORD dwNameIndex, - LPSTR szNameBuffer, - LPDWORD pcchNameBufferSize - ); -typedef PDH_STATUS (WINAPI *PdhMakeCounterPathFunc)( - PDH_COUNTER_PATH_ELEMENTS *pCounterPathElements, - LPTSTR szFullPathBuffer, - LPDWORD pcchBufferSize, - DWORD dwFlags - ); - -static PdhAddCounterFunc PdhAddCounter_i; -static PdhOpenQueryFunc PdhOpenQuery_i; -static PdhCloseQueryFunc PdhCloseQuery_i; -static PdhCollectQueryDataFunc PdhCollectQueryData_i; -static PdhGetFormattedCounterValueFunc PdhGetFormattedCounterValue_i; -static PdhEnumObjectItemsFunc PdhEnumObjectItems_i; -static PdhRemoveCounterFunc PdhRemoveCounter_i; -static PdhLookupPerfNameByIndexFunc PdhLookupPerfNameByIndex_i; -static PdhMakeCounterPathFunc PdhMakeCounterPath_i; - -static HANDLE thisProcess; -static double cpuFactor; -static DWORD num_cpus; - -#define FT2JLONG(X) ((((jlong)X.dwHighDateTime) << 32) | ((jlong)X.dwLowDateTime)) -#define COUNTER_BUF_SIZE 256 -// Min time between query updates. -#define MIN_UPDATE_INTERVAL 500 -#define CONFIG_SUCCESSFUL 0 - -/** - * Struct for PDH queries. - */ -typedef struct { - HQUERY query; - uint64_t lastUpdate; // Last time query was updated (current millis). -} UpdateQueryS, *UpdateQueryP; - -/** - * Struct for the processor load counters. - */ -typedef struct { - UpdateQueryS query; - HCOUNTER* counters; - int noOfCounters; -} MultipleCounterQueryS, *MultipleCounterQueryP; - -/** - * Struct for the jvm process load counter. - */ -typedef struct { - UpdateQueryS query; - HCOUNTER counter; -} SingleCounterQueryS, *SingleCounterQueryP; - -static char* getProcessPDHHeader(void); - -/** - * Currently available counters. - */ -static SingleCounterQueryS cntCtxtSwitchRate; -static SingleCounterQueryS cntVirtualSize; -static SingleCounterQueryS cntProcLoad; -static SingleCounterQueryS cntProcSystemLoad; -static MultipleCounterQueryS multiCounterCPULoad; - -static CRITICAL_SECTION processHeaderLock; -static CRITICAL_SECTION initializationLock; - -/** - * Initialize the perf module at startup. - */ -int -perfiInit(void) -{ - InitializeCriticalSection(&processHeaderLock); - InitializeCriticalSection(&initializationLock); - return 0; -} - -/** - * Dynamically sets up function pointers to the PDH library. - * - * @return CONFIG_SUCCESSFUL on success, negative on failure. - */ -static int -get_functions(HMODULE h, char *ebuf, size_t elen) { - // The 'A' at the end means the ANSI (not the UNICODE) vesions of the methods - PdhAddCounter_i = (PdhAddCounterFunc)GetProcAddress(h, "PdhAddCounterA"); - PdhOpenQuery_i = (PdhOpenQueryFunc)GetProcAddress(h, "PdhOpenQueryA"); - PdhCloseQuery_i = (PdhCloseQueryFunc)GetProcAddress(h, "PdhCloseQuery"); - PdhCollectQueryData_i = (PdhCollectQueryDataFunc)GetProcAddress(h, "PdhCollectQueryData"); - PdhGetFormattedCounterValue_i = (PdhGetFormattedCounterValueFunc)GetProcAddress(h, "PdhGetFormattedCounterValue"); - PdhEnumObjectItems_i = (PdhEnumObjectItemsFunc)GetProcAddress(h, "PdhEnumObjectItemsA"); - PdhRemoveCounter_i = (PdhRemoveCounterFunc)GetProcAddress(h, "PdhRemoveCounter"); - PdhLookupPerfNameByIndex_i = (PdhLookupPerfNameByIndexFunc)GetProcAddress(h, "PdhLookupPerfNameByIndexA"); - PdhMakeCounterPath_i = (PdhMakeCounterPathFunc)GetProcAddress(h, "PdhMakeCounterPathA"); - - if (PdhAddCounter_i == NULL || PdhOpenQuery_i == NULL || - PdhCloseQuery_i == NULL || PdhCollectQueryData_i == NULL || - PdhGetFormattedCounterValue_i == NULL || PdhEnumObjectItems_i == NULL || - PdhRemoveCounter_i == NULL || PdhLookupPerfNameByIndex_i == NULL || PdhMakeCounterPath_i == NULL) - { - _snprintf(ebuf, elen, "Required method could not be found."); - return -1; - } - return CONFIG_SUCCESSFUL; -} - -/** - * Returns the counter value as a double for the specified query. - * Will collect the query data and update the counter values as necessary. - * - * @param query the query to update (if needed). - * @param c the counter to read. - * @param value where to store the formatted value. - * @param format the format to use (i.e. PDH_FMT_DOUBLE, PDH_FMT_LONG etc) - * @return CONFIG_SUCCESSFUL if no error - * -1 if PdhCollectQueryData fails - * -2 if PdhGetFormattedCounterValue fails - */ -static int -getPerformanceData(UpdateQueryP query, HCOUNTER c, PDH_FMT_COUNTERVALUE* value, DWORD format) { - clock_t now; - now = clock(); - - // Need to limit how often we update the query - // to mimise the heisenberg effect. - // (PDH behaves erratically if the counters are - // queried too often, especially counters that - // store and use values from two consecutive updates, - // like cpu load.) - if (now - query->lastUpdate > MIN_UPDATE_INTERVAL) { - if (PdhCollectQueryData_i(query->query) != ERROR_SUCCESS) { - return -1; - } - query->lastUpdate = now; - } - - if (PdhGetFormattedCounterValue_i(c, format, NULL, value) != ERROR_SUCCESS) { - return -2; - } - return CONFIG_SUCCESSFUL; -} - -/** - * Places the resolved counter name of the counter at the specified index in the - * supplied buffer. There must be enough space in the buffer to hold the counter name. - * - * @param index the counter index as specified in the registry. - * @param buf the buffer in which to place the counter name. - * @param size the size of the counter name buffer. - * @param ebuf the error message buffer. - * @param elen the length of the error buffer. - * @return CONFIG_SUCCESSFUL if successful, negative on failure. - */ -static int -find_name(DWORD index, char *buf, DWORD size) { - PDH_STATUS res; - - if ((res = PdhLookupPerfNameByIndex_i(NULL, index, buf, &size)) != ERROR_SUCCESS) { - - /* printf("Could not open counter %d: error=0x%08x", index, res); */ - /* if (res == PDH_CSTATUS_NO_MACHINE) { */ - /* printf("User probably does not have sufficient privileges to use"); */ - /* printf("performance counters. If you are running on Windows 2003"); */ - /* printf("or Windows Vista, make sure the user is in the"); */ - /* printf("Performance Logs user group."); */ - /* } */ - return -1; - } - - if (size == 0) { - /* printf("Failed to get counter name for %d: empty string", index); */ - return -1; - } - - // windows vista does not null-terminate the string (allthough the docs says it will) - buf[size - 1] = '\0'; - return CONFIG_SUCCESSFUL; -} - -/** - * Sets up the supplied SingleCounterQuery to listen for the specified counter. - * initPDH() must have been run prior to calling this function! - * - * @param counterQuery the counter query to set up. - * @param counterString the string specifying the path to the counter. - * @param ebuf the error buffer. - * @param elen the length of the error buffer. - * @returns CONFIG_SUCCESSFUL if successful, negative on failure. - */ -static int -initSingleCounterQuery(SingleCounterQueryP counterQuery, char *counterString) { - if (PdhOpenQuery_i(NULL, 0, &counterQuery->query.query) != ERROR_SUCCESS) { - /* printf("Could not open query for %s", counterString); */ - return -1; - } - if (PdhAddCounter_i(counterQuery->query.query, counterString, 0, &counterQuery->counter) != ERROR_SUCCESS) { - /* printf("Could not add counter %s for query", counterString); */ - if (counterQuery->counter != NULL) { - PdhRemoveCounter_i(counterQuery->counter); - } - if (counterQuery->query.query != NULL) { - PdhCloseQuery_i(counterQuery->query.query); - } - memset(counterQuery, 0, sizeof(SingleCounterQueryS)); - return -1; - } - return CONFIG_SUCCESSFUL; -} - -/** - * Sets up the supplied SingleCounterQuery to listen for the time spent - * by the HotSpot process. - * - * @param counterQuery the counter query to set up as a process counter. - * @param ebuf the error buffer. - * @param elen the length of the error buffer. - * @returns CONFIG_SUCCESSFUL if successful, negative on failure. - */ -static int -initProcLoadCounter(void) { - char time[COUNTER_BUF_SIZE]; - char counter[COUNTER_BUF_SIZE*2]; - - if (find_name(PDH_PROCESSOR_TIME_IDX, time, sizeof(time)-1) < 0) { - return -1; - } - _snprintf(counter, sizeof(counter)-1, "%s\\%s", getProcessPDHHeader(), time); - return initSingleCounterQuery(&cntProcLoad, counter); -} - -static int -initProcSystemLoadCounter(void) { - char time[COUNTER_BUF_SIZE]; - char counter[COUNTER_BUF_SIZE*2]; - - if (find_name(PDH_PRIV_PROCESSOR_TIME_IDX, time, sizeof(time)-1) < 0) { - return -1; - } - _snprintf(counter, sizeof(counter)-1, "%s\\%s", getProcessPDHHeader(), time); - return initSingleCounterQuery(&cntProcSystemLoad, counter); -} - -/** - * Sets up the supplied MultipleCounterQuery to check on the processors. - * (Comment: Refactor and prettify as with the the SingleCounter queries - * if more MultipleCounterQueries are discovered.) - * - * initPDH() must have been run prior to calling this function. - * - * @param multiQuery a pointer to a MultipleCounterQueryS, will be filled in with - * the necessary info to check the PDH processor counters. - * @return CONFIG_SUCCESSFUL if successful, negative on failure. - */ -static int -initProcessorCounters(void) { - char processor[COUNTER_BUF_SIZE]; //'Processor' == #238 - char time[COUNTER_BUF_SIZE]; //'Time' == 6 - DWORD c_size, i_size; - HQUERY tmpQuery; - DWORD i, p_count; - BOOL error; - char *instances, *tmp; - PDH_STATUS pdhStat; - - c_size = i_size = 0; - tmpQuery = NULL; - error = false; - - // This __try / __except stuff is there since Windows 2000 beta (or so) sometimes triggered - // an access violation when the user had insufficient privileges to use the performance - // counters. This was previously guarded by a very ugly piece of code which disabled the - // global trap handling in JRockit. Don't know if this really is needed anymore, but otoh, - // if we keep it we don't crash on Win2k beta. /Ihse, 2005-05-30 - __try { - if (find_name(PDH_PROCESSOR_IDX, processor, sizeof(processor)-1) < 0) { - return -1; - } - } __except (EXCEPTION_EXECUTE_HANDLER) { // We'll catch all exceptions here. - /* printf("User does not have sufficient privileges to use performance counters"); */ - return -1; - } - - if (find_name(PDH_PROCESSOR_TIME_IDX, time, sizeof(time)-1) < 0) { - return -1; - } - //ok, now we have enough to enumerate all processors. - pdhStat = PdhEnumObjectItems_i ( - NULL, // reserved - NULL, // local machine - processor, // object to enumerate - NULL, // pass in NULL buffers - &c_size, // and 0 length to get - NULL, // required size - &i_size, // of the buffers in chars - PERF_DETAIL_WIZARD, // counter detail level - 0); - if (pdh_fail(pdhStat)) { - /* printf("could not enumerate processors (1) error=%d", pdhStat); */ - return -1; - } - - // use calloc because windows vista does not null terminate the instance names (allthough the docs says it will) - instances = calloc(i_size, 1); - if (instances == NULL) { - /* printf("could not allocate memory (1) %d bytes", i_size); */ - error = true; - goto end; - } - - c_size = 0; - pdhStat = PdhEnumObjectItems_i ( - NULL, // reserved - NULL, // local machine - processor, // object to enumerate - NULL, // pass in NULL buffers - &c_size, // and 0 length to get - instances, // required size - &i_size, // of the buffers in chars - PERF_DETAIL_WIZARD, // counter detail level - 0); - - if (pdh_fail(pdhStat)) { - /* printf("could not enumerate processors (2) error=%d", pdhStat); */ - error = true; - goto end; - } - //count perf count instances. - for (p_count = 0, tmp = instances; *tmp != 0; tmp = &tmp[lstrlen(tmp)+1], p_count++); - - //is this correct for HT? - assert(p_count == num_cpus+1); - - //ok, have number of perf counters. - multiCounterCPULoad.counters = calloc(p_count, sizeof(HCOUNTER)); - if (multiCounterCPULoad.counters == NULL) { - /* printf("could not allocate memory (2) count=%d", p_count); */ - error = true; - goto end; - } - - multiCounterCPULoad.noOfCounters = p_count; - - if (PdhOpenQuery_i(NULL, 0, &multiCounterCPULoad.query.query) != ERROR_SUCCESS) { - /* printf("could not create query"); */ - error = true; - goto end; - } - //now, fetch the counters. - for (i = 0, tmp = instances; *tmp != '\0'; tmp = &tmp[lstrlen(tmp)+1], i++) { - char counter[2*COUNTER_BUF_SIZE]; - - _snprintf(counter, sizeof(counter)-1, "\\%s(%s)\\%s", processor, tmp, time); - - if (PdhAddCounter_i(multiCounterCPULoad.query.query, counter, 0, &multiCounterCPULoad.counters[i]) != ERROR_SUCCESS) { - /* printf("error adding processor counter %s", counter); */ - error = true; - goto end; - } - } - - free(instances); - instances = NULL; - - // Query once to initialize the counters needing at least two queries - // (like the % CPU usage) to calculate correctly. - if (PdhCollectQueryData_i(multiCounterCPULoad.query.query) != ERROR_SUCCESS) - error = true; - - end: - if (instances != NULL) { - free(instances); - } - if (tmpQuery != NULL) { - PdhCloseQuery_i(tmpQuery); - } - if (error) { - int i; - - if (multiCounterCPULoad.counters != NULL) { - for (i = 0; i < multiCounterCPULoad.noOfCounters; i++) { - if (multiCounterCPULoad.counters[i] != NULL) { - PdhRemoveCounter_i(multiCounterCPULoad.counters[i]); - } - } - free(multiCounterCPULoad.counters[i]); - } - if (multiCounterCPULoad.query.query != NULL) { - PdhCloseQuery_i(multiCounterCPULoad.query.query); - } - memset(&multiCounterCPULoad, 0, sizeof(MultipleCounterQueryS)); - return -1; - } - return CONFIG_SUCCESSFUL; -} - -/** - * Help function that initializes the PDH process header for the JRockit process. - * (You should probably use getProcessPDHHeader() instead!) - * - * initPDH() must have been run prior to calling this function. - * - * @param ebuf the error buffer. - * @param elen the length of the error buffer. - * - * @return the PDH instance description corresponding to the JVM process. - */ -static char* -initProcessPDHHeader(void) { - static char hotspotheader[2*COUNTER_BUF_SIZE]; - - char counter[2*COUNTER_BUF_SIZE]; - char processes[COUNTER_BUF_SIZE]; //'Process' == #230 - char pid[COUNTER_BUF_SIZE]; //'ID Process' == 784 - char module_name[MAX_PATH]; - PDH_STATUS pdhStat; - DWORD c_size = 0, i_size = 0; - HQUERY tmpQuery = NULL; - int i, myPid = _getpid(); - BOOL error = false; - char *instances, *tmp, *instance_name, *dot_pos; - - tmpQuery = NULL; - myPid = _getpid(); - error = false; - - if (find_name(PDH_PROCESS_IDX, processes, sizeof(processes) - 1) < 0) { - return NULL; - } - - if (find_name(PDH_ID_PROCESS_IDX, pid, sizeof(pid) - 1) < 0) { - return NULL; - } - //time is same. - - c_size = 0; - i_size = 0; - - pdhStat = PdhEnumObjectItems_i ( - NULL, // reserved - NULL, // local machine - processes, // object to enumerate - NULL, // pass in NULL buffers - &c_size, // and 0 length to get - NULL, // required size - &i_size, // of the buffers in chars - PERF_DETAIL_WIZARD, // counter detail level - 0); - - //ok, now we have enough to enumerate all processes - if (pdh_fail(pdhStat)) { - /* printf("Could not enumerate processes (1) error=%d", pdhStat); */ - return NULL; - } - - // use calloc because windows vista does not null terminate the instance names (allthough the docs says it will) - if ((instances = calloc(i_size, 1)) == NULL) { - /* printf("Could not allocate memory %d bytes", i_size); */ - error = true; - goto end; - } - - c_size = 0; - - pdhStat = PdhEnumObjectItems_i ( - NULL, // reserved - NULL, // local machine - processes, // object to enumerate - NULL, // pass in NULL buffers - &c_size, // and 0 length to get - instances, // required size - &i_size, // of the buffers in chars - PERF_DETAIL_WIZARD, // counter detail level - 0); - - // ok, now we have enough to enumerate all processes - if (pdh_fail(pdhStat)) { - /* printf("Could not enumerate processes (2) error=%d", pdhStat); */ - error = true; - goto end; - } - - if (PdhOpenQuery_i(NULL, 0, &tmpQuery) != ERROR_SUCCESS) { - /* printf("Could not create temporary query"); */ - error = true; - goto end; - } - - // Find our module name and use it to extract the instance name used by PDH - if (GetModuleFileName(NULL, module_name, MAX_PATH) >= MAX_PATH-1) { - /* printf("Module name truncated"); */ - error = true; - goto end; - } - instance_name = strrchr(module_name, '\\'); //drop path - instance_name++; //skip slash - dot_pos = strchr(instance_name, '.'); //drop .exe - dot_pos[0] = '\0'; - - //now, fetch the counters. - for (tmp = instances; *tmp != 0 && !error; tmp = &tmp[lstrlen(tmp)+1]) { - HCOUNTER hc = NULL; - BOOL done = false; - - // Skip until we find our own process name - if (strcmp(tmp, instance_name) != 0) { - continue; - } - - // iterate over all instance indexes and try to find our own pid - for (i = 0; !done && !error; i++){ - PDH_STATUS res; - _snprintf(counter, sizeof(counter)-1, "\\%s(%s#%d)\\%s", processes, tmp, i, pid); - - if (PdhAddCounter_i(tmpQuery, counter, 0, &hc) != ERROR_SUCCESS) { - /* printf("Failed to create process id query"); */ - error = true; - goto end; - } - - res = PdhCollectQueryData_i(tmpQuery); - - if (res == PDH_INVALID_HANDLE) { - /* printf("Failed to query process id"); */ - res = -1; - done = true; - } else if (res == PDH_NO_DATA) { - done = true; - } else { - PDH_FMT_COUNTERVALUE cv; - - PdhGetFormattedCounterValue_i(hc, PDH_FMT_LONG, NULL, &cv); - /* - * This check seems to be needed for Win2k SMP boxes, since - * they for some reason don't return PDH_NO_DATA for non existing - * counters. - */ - if (cv.CStatus != PDH_CSTATUS_VALID_DATA) { - done = true; - } else if (cv.longValue == myPid) { - _snprintf(hotspotheader, sizeof(hotspotheader)-1, "\\%s(%s#%d)\0", processes, tmp, i); - PdhRemoveCounter_i(hc); - goto end; - } - } - PdhRemoveCounter_i(hc); - } - } - end: - if (instances != NULL) { - free(instances); - } - if (tmpQuery != NULL) { - PdhCloseQuery_i(tmpQuery); - } - if (error) { - return NULL; - } - return hotspotheader; -} - -/** - * Returns the PDH string prefix identifying the HotSpot process. Use this prefix when getting - * counters from the PDH process object representing HotSpot. - * - * Note: this call may take some time to complete. - * - * @param ebuf error buffer. - * @param elen error buffer length. - * - * @return the header to be used when retrieving PDH counters from the HotSpot process. - * Will return NULL if the call failed. - */ -static char * -getProcessPDHHeader(void) { - static char *processHeader = NULL; - - EnterCriticalSection(&processHeaderLock); { - if (processHeader == NULL) { - processHeader = initProcessPDHHeader(); - } - } LeaveCriticalSection(&processHeaderLock); - return processHeader; -} - -int perfInit(void); - -double -perfGetCPULoad(int which) -{ - PDH_FMT_COUNTERVALUE cv; - HCOUNTER c; - - if (perfInit() < 0) { - // warn? - return -1.0; - } - - if (multiCounterCPULoad.query.query == NULL) { - // warn? - return -1.0; - } - - if (which == -1) { - c = multiCounterCPULoad.counters[multiCounterCPULoad.noOfCounters - 1]; - } else { - if (which < multiCounterCPULoad.noOfCounters) { - c = multiCounterCPULoad.counters[which]; - } else { - return -1.0; - } - } - if (getPerformanceData(&multiCounterCPULoad.query, c, &cv, PDH_FMT_DOUBLE ) == CONFIG_SUCCESSFUL) { - return cv.doubleValue / 100; - } - return -1.0; -} - -double -perfGetProcessLoad(void) -{ - PDH_FMT_COUNTERVALUE cv; - - if (perfInit() < 0) { - // warn? - return -1.0; - } - - if (cntProcLoad.query.query == NULL) { - // warn? - return -1.0; - } - - if (getPerformanceData(&cntProcLoad.query, cntProcLoad.counter, &cv, PDH_FMT_DOUBLE | PDH_FMT_NOCAP100) == CONFIG_SUCCESSFUL) { - double d = cv.doubleValue / cpuFactor; - d = min(1, d); - d = max(0, d); - return d; - } - return -1.0; -} - -/** - * Helper to initialize the PDH library. Loads the library and sets up the functions. - * Note that once loaded, we will never unload the PDH library. - * - * @return CONFIG_SUCCESSFUL if successful, negative on failure. - */ -int -perfInit(void) { - static HMODULE h; - static BOOL running, inited; - - int error; - - if (running) { - return CONFIG_SUCCESSFUL; - } - - error = CONFIG_SUCCESSFUL; - - // this is double checked locking again, but we try to bypass the worst by - // implicit membar at end of lock. - EnterCriticalSection(&initializationLock); { - if (!inited) { - char buf[64] = ""; - SYSTEM_INFO si; - - // CMH. But windows will not care about our affinity when giving - // us measurements. Need the real, raw num cpus. - - GetSystemInfo(&si); - num_cpus = si.dwNumberOfProcessors; - // Initialize the denominator for the jvm load calculations - cpuFactor = num_cpus * 100; - - /** - * Do this dynamically, so we don't fail to start on systems without pdh. - */ - if ((h = LoadLibrary("pdh.dll")) == NULL) { - /* printf("Could not load pdh.dll (%d)", GetLastError()); */ - error = -2; - } else if (get_functions(h, buf, sizeof(buf)) < 0) { - FreeLibrary(h); - h = NULL; - error = -2; - /* printf("Failed to init pdh functions: %s.\n", buf); */ - } else { - if (initProcessorCounters() != 0) { - /* printf("Failed to init system load counters.\n"); */ - } else if (initProcLoadCounter() != 0) { - /* printf("Failed to init process load counter.\n"); */ - } else if (initProcSystemLoadCounter() != 0) { - /* printf("Failed to init process system load counter.\n"); */ - } else { - inited = true; - } - } - } - } LeaveCriticalSection(&initializationLock); - - if (inited && error == CONFIG_SUCCESSFUL) { - running = true; - } - - return error; -} - -JNIEXPORT jdouble JNICALL -Java_com_sun_management_OperatingSystem_getSystemCpuLoad -(JNIEnv *env, jobject dummy) -{ - return perfGetCPULoad(-1); -} - -JNIEXPORT jdouble JNICALL -Java_com_sun_management_OperatingSystem_getProcessCpuLoad -(JNIEnv *env, jobject dummy) -{ - return perfGetProcessLoad(); -}
--- a/src/windows/native/java/net/Inet4AddressImpl.c Thu Nov 14 23:32:31 2013 -0800 +++ b/src/windows/native/java/net/Inet4AddressImpl.c Fri Nov 15 07:14:23 2013 -0800 @@ -142,10 +142,15 @@ if (!initialized) { ni_iacls = (*env)->FindClass(env, "java/net/InetAddress"); + CHECK_NULL_RETURN(ni_iacls, NULL); ni_iacls = (*env)->NewGlobalRef(env, ni_iacls); + CHECK_NULL_RETURN(ni_iacls, NULL); ni_ia4cls = (*env)->FindClass(env, "java/net/Inet4Address"); + CHECK_NULL_RETURN(ni_ia4cls, NULL); ni_ia4cls = (*env)->NewGlobalRef(env, ni_ia4cls); + CHECK_NULL_RETURN(ni_ia4cls, NULL); ni_ia4ctrID = (*env)->GetMethodID(env, ni_ia4cls, "<init>", "()V"); + CHECK_NULL_RETURN(ni_ia4ctrID, NULL); initialized = 1; }
--- a/src/windows/native/java/net/Inet6AddressImpl.c Thu Nov 14 23:32:31 2013 -0800 +++ b/src/windows/native/java/net/Inet6AddressImpl.c Fri Nov 15 07:14:23 2013 -0800 @@ -93,13 +93,21 @@ if (!initialized) { ni_iacls = (*env)->FindClass(env, "java/net/InetAddress"); + CHECK_NULL_RETURN(ni_iacls, NULL); ni_iacls = (*env)->NewGlobalRef(env, ni_iacls); + CHECK_NULL_RETURN(ni_iacls, NULL); ni_ia4cls = (*env)->FindClass(env, "java/net/Inet4Address"); + CHECK_NULL_RETURN(ni_ia4cls, NULL); ni_ia4cls = (*env)->NewGlobalRef(env, ni_ia4cls); + CHECK_NULL_RETURN(ni_ia4cls, NULL); ni_ia6cls = (*env)->FindClass(env, "java/net/Inet6Address"); + CHECK_NULL_RETURN(ni_ia6cls, NULL); ni_ia6cls = (*env)->NewGlobalRef(env, ni_ia6cls); + CHECK_NULL_RETURN(ni_ia6cls, NULL); ni_ia4ctrID = (*env)->GetMethodID(env, ni_ia4cls, "<init>", "()V"); + CHECK_NULL_RETURN(ni_ia4ctrID, NULL); ni_ia6ctrID = (*env)->GetMethodID(env, ni_ia6cls, "<init>", "()V"); + CHECK_NULL_RETURN(ni_ia6ctrID, NULL); initialized = 1; } if (IS_NULL(host)) {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/windows/native/sun/management/OperatingSystemImpl.c Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,941 @@ +/* + * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. 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. + */ + +#include "jni.h" +#include "jni_util.h" +#include "jlong.h" +#include "jvm.h" +#include "management.h" +#include "sun_management_OperatingSystemImpl.h" + +#include <psapi.h> +#include <errno.h> +#include <stdlib.h> + +#include <malloc.h> +#pragma warning (push,0) +#include <windows.h> +#pragma warning (pop) +#include <stdio.h> +#include <time.h> +#include <stdint.h> +#include <assert.h> + +/* Disable warnings due to broken header files from Microsoft... */ +#pragma warning(push, 3) +#include <pdh.h> +#include <pdhmsg.h> +#include <process.h> +#pragma warning(pop) + +typedef unsigned __int32 juint; +typedef unsigned __int64 julong; + +typedef enum boolean_values { false=0, true=1}; + +static void set_low(jlong* value, jint low) { + *value &= (jlong)0xffffffff << 32; + *value |= (jlong)(julong)(juint)low; +} + +static void set_high(jlong* value, jint high) { + *value &= (jlong)(julong)(juint)0xffffffff; + *value |= (jlong)high << 32; +} + +static jlong jlong_from(jint h, jint l) { + jlong result = 0; // initialization to avoid warning + set_high(&result, h); + set_low(&result, l); + return result; +} + +static HANDLE main_process; + +int perfiInit(void); + +JNIEXPORT void JNICALL +Java_sun_management_OperatingSystemImpl_initialize + (JNIEnv *env, jclass cls) +{ + main_process = GetCurrentProcess(); + perfiInit(); +} + +JNIEXPORT jlong JNICALL +Java_sun_management_OperatingSystemImpl_getCommittedVirtualMemorySize0 + (JNIEnv *env, jobject mbean) +{ + PROCESS_MEMORY_COUNTERS pmc; + if (GetProcessMemoryInfo(main_process, &pmc, sizeof(PROCESS_MEMORY_COUNTERS)) == 0) { + return (jlong)-1L; + } else { + return (jlong) pmc.PagefileUsage; + } +} + +JNIEXPORT jlong JNICALL +Java_sun_management_OperatingSystemImpl_getTotalSwapSpaceSize + (JNIEnv *env, jobject mbean) +{ + MEMORYSTATUSEX ms; + ms.dwLength = sizeof(ms); + GlobalMemoryStatusEx(&ms); + return (jlong) ms.ullTotalPageFile; +} + +JNIEXPORT jlong JNICALL +Java_sun_management_OperatingSystemImpl_getFreeSwapSpaceSize + (JNIEnv *env, jobject mbean) +{ + MEMORYSTATUSEX ms; + ms.dwLength = sizeof(ms); + GlobalMemoryStatusEx(&ms); + return (jlong) ms.ullAvailPageFile; +} + +JNIEXPORT jlong JNICALL +Java_sun_management_OperatingSystemImpl_getProcessCpuTime + (JNIEnv *env, jobject mbean) +{ + + FILETIME process_creation_time, process_exit_time, + process_user_time, process_kernel_time; + + // Using static variables declared above + // Units are 100-ns intervals. Convert to ns. + GetProcessTimes(main_process, &process_creation_time, + &process_exit_time, + &process_kernel_time, &process_user_time); + return (jlong_from(process_user_time.dwHighDateTime, + process_user_time.dwLowDateTime) + + jlong_from(process_kernel_time.dwHighDateTime, + process_kernel_time.dwLowDateTime)) * 100; +} + +JNIEXPORT jlong JNICALL +Java_sun_management_OperatingSystemImpl_getFreePhysicalMemorySize + (JNIEnv *env, jobject mbean) +{ + MEMORYSTATUSEX ms; + ms.dwLength = sizeof(ms); + GlobalMemoryStatusEx(&ms); + return (jlong) ms.ullAvailPhys; +} + +JNIEXPORT jlong JNICALL +Java_sun_management_OperatingSystemImpl_getTotalPhysicalMemorySize + (JNIEnv *env, jobject mbean) +{ + MEMORYSTATUSEX ms; + ms.dwLength = sizeof(ms); + GlobalMemoryStatusEx(&ms); + return (jlong) ms.ullTotalPhys; +} + +// Seems WinXP PDH returns PDH_MORE_DATA whenever we send in a NULL buffer. +// Let's just ignore it, since we make sure we have enough buffer anyway. +static int +pdh_fail(PDH_STATUS pdhStat) { + return pdhStat != ERROR_SUCCESS && pdhStat != PDH_MORE_DATA; +} + +// INFO: Using PDH APIs Correctly in a Localized Language (Q287159) +// http://support.microsoft.com/default.aspx?scid=kb;EN-US;q287159 +// The index value for the base system counters and objects like processor, +// process, thread, memory, and so forth are always the same irrespective +// of the localized version of the operating system or service pack installed. +#define PDH_PROCESSOR_IDX ((DWORD) 238) +#define PDH_PROCESSOR_TIME_IDX ((DWORD) 6) +#define PDH_PRIV_PROCESSOR_TIME_IDX ((DWORD) 144) +#define PDH_PROCESS_IDX ((DWORD) 230) +#define PDH_ID_PROCESS_IDX ((DWORD) 784) +#define PDH_CONTEXT_SWITCH_RATE_IDX ((DWORD) 146) +#define PDH_SYSTEM_IDX ((DWORD) 2) +#define PDH_VIRTUAL_BYTES_IDX ((DWORD) 174) + +typedef PDH_STATUS (WINAPI *PdhAddCounterFunc)( + HQUERY hQuery, + LPCSTR szFullCounterPath, + DWORD dwUserData, + HCOUNTER *phCounter + ); +typedef PDH_STATUS (WINAPI *PdhOpenQueryFunc)( + LPCWSTR szDataSource, + DWORD dwUserData, + HQUERY *phQuery + ); +typedef DWORD (WINAPI *PdhCloseQueryFunc)( + HQUERY hQuery + ); +typedef PDH_STATUS (WINAPI *PdhCollectQueryDataFunc)( + HQUERY hQuery + ); +typedef DWORD (WINAPI *PdhGetFormattedCounterValueFunc)( + HCOUNTER hCounter, + DWORD dwFormat, + LPDWORD lpdwType, + PPDH_FMT_COUNTERVALUE pValue + ); +typedef PDH_STATUS (WINAPI *PdhEnumObjectItemsFunc)( + LPCTSTR szDataSource, + LPCTSTR szMachineName, + LPCTSTR szObjectName, + LPTSTR mszCounterList, + LPDWORD pcchCounterListLength, + LPTSTR mszInstanceList, + LPDWORD pcchInstanceListLength, + DWORD dwDetailLevel, + DWORD dwFlags + ); +typedef PDH_STATUS (WINAPI *PdhRemoveCounterFunc)( + HCOUNTER hCounter + ); +typedef PDH_STATUS (WINAPI *PdhLookupPerfNameByIndexFunc)( + LPCSTR szMachineName, + DWORD dwNameIndex, + LPSTR szNameBuffer, + LPDWORD pcchNameBufferSize + ); +typedef PDH_STATUS (WINAPI *PdhMakeCounterPathFunc)( + PDH_COUNTER_PATH_ELEMENTS *pCounterPathElements, + LPTSTR szFullPathBuffer, + LPDWORD pcchBufferSize, + DWORD dwFlags + ); + +static PdhAddCounterFunc PdhAddCounter_i; +static PdhOpenQueryFunc PdhOpenQuery_i; +static PdhCloseQueryFunc PdhCloseQuery_i; +static PdhCollectQueryDataFunc PdhCollectQueryData_i; +static PdhGetFormattedCounterValueFunc PdhGetFormattedCounterValue_i; +static PdhEnumObjectItemsFunc PdhEnumObjectItems_i; +static PdhRemoveCounterFunc PdhRemoveCounter_i; +static PdhLookupPerfNameByIndexFunc PdhLookupPerfNameByIndex_i; +static PdhMakeCounterPathFunc PdhMakeCounterPath_i; + +static HANDLE thisProcess; +static double cpuFactor; +static DWORD num_cpus; + +#define FT2JLONG(X) ((((jlong)X.dwHighDateTime) << 32) | ((jlong)X.dwLowDateTime)) +#define COUNTER_BUF_SIZE 256 +// Min time between query updates. +#define MIN_UPDATE_INTERVAL 500 +#define CONFIG_SUCCESSFUL 0 + +/** + * Struct for PDH queries. + */ +typedef struct { + HQUERY query; + uint64_t lastUpdate; // Last time query was updated (current millis). +} UpdateQueryS, *UpdateQueryP; + +/** + * Struct for the processor load counters. + */ +typedef struct { + UpdateQueryS query; + HCOUNTER* counters; + int noOfCounters; +} MultipleCounterQueryS, *MultipleCounterQueryP; + +/** + * Struct for the jvm process load counter. + */ +typedef struct { + UpdateQueryS query; + HCOUNTER counter; +} SingleCounterQueryS, *SingleCounterQueryP; + +static char* getProcessPDHHeader(void); + +/** + * Currently available counters. + */ +static SingleCounterQueryS cntCtxtSwitchRate; +static SingleCounterQueryS cntVirtualSize; +static SingleCounterQueryS cntProcLoad; +static SingleCounterQueryS cntProcSystemLoad; +static MultipleCounterQueryS multiCounterCPULoad; + +static CRITICAL_SECTION processHeaderLock; +static CRITICAL_SECTION initializationLock; + +/** + * Initialize the perf module at startup. + */ +int +perfiInit(void) +{ + InitializeCriticalSection(&processHeaderLock); + InitializeCriticalSection(&initializationLock); + return 0; +} + +/** + * Dynamically sets up function pointers to the PDH library. + * + * @return CONFIG_SUCCESSFUL on success, negative on failure. + */ +static int +get_functions(HMODULE h, char *ebuf, size_t elen) { + // The 'A' at the end means the ANSI (not the UNICODE) vesions of the methods + PdhAddCounter_i = (PdhAddCounterFunc)GetProcAddress(h, "PdhAddCounterA"); + PdhOpenQuery_i = (PdhOpenQueryFunc)GetProcAddress(h, "PdhOpenQueryA"); + PdhCloseQuery_i = (PdhCloseQueryFunc)GetProcAddress(h, "PdhCloseQuery"); + PdhCollectQueryData_i = (PdhCollectQueryDataFunc)GetProcAddress(h, "PdhCollectQueryData"); + PdhGetFormattedCounterValue_i = (PdhGetFormattedCounterValueFunc)GetProcAddress(h, "PdhGetFormattedCounterValue"); + PdhEnumObjectItems_i = (PdhEnumObjectItemsFunc)GetProcAddress(h, "PdhEnumObjectItemsA"); + PdhRemoveCounter_i = (PdhRemoveCounterFunc)GetProcAddress(h, "PdhRemoveCounter"); + PdhLookupPerfNameByIndex_i = (PdhLookupPerfNameByIndexFunc)GetProcAddress(h, "PdhLookupPerfNameByIndexA"); + PdhMakeCounterPath_i = (PdhMakeCounterPathFunc)GetProcAddress(h, "PdhMakeCounterPathA"); + + if (PdhAddCounter_i == NULL || PdhOpenQuery_i == NULL || + PdhCloseQuery_i == NULL || PdhCollectQueryData_i == NULL || + PdhGetFormattedCounterValue_i == NULL || PdhEnumObjectItems_i == NULL || + PdhRemoveCounter_i == NULL || PdhLookupPerfNameByIndex_i == NULL || PdhMakeCounterPath_i == NULL) + { + _snprintf(ebuf, elen, "Required method could not be found."); + return -1; + } + return CONFIG_SUCCESSFUL; +} + +/** + * Returns the counter value as a double for the specified query. + * Will collect the query data and update the counter values as necessary. + * + * @param query the query to update (if needed). + * @param c the counter to read. + * @param value where to store the formatted value. + * @param format the format to use (i.e. PDH_FMT_DOUBLE, PDH_FMT_LONG etc) + * @return CONFIG_SUCCESSFUL if no error + * -1 if PdhCollectQueryData fails + * -2 if PdhGetFormattedCounterValue fails + */ +static int +getPerformanceData(UpdateQueryP query, HCOUNTER c, PDH_FMT_COUNTERVALUE* value, DWORD format) { + clock_t now; + now = clock(); + + // Need to limit how often we update the query + // to mimise the heisenberg effect. + // (PDH behaves erratically if the counters are + // queried too often, especially counters that + // store and use values from two consecutive updates, + // like cpu load.) + if (now - query->lastUpdate > MIN_UPDATE_INTERVAL) { + if (PdhCollectQueryData_i(query->query) != ERROR_SUCCESS) { + return -1; + } + query->lastUpdate = now; + } + + if (PdhGetFormattedCounterValue_i(c, format, NULL, value) != ERROR_SUCCESS) { + return -2; + } + return CONFIG_SUCCESSFUL; +} + +/** + * Places the resolved counter name of the counter at the specified index in the + * supplied buffer. There must be enough space in the buffer to hold the counter name. + * + * @param index the counter index as specified in the registry. + * @param buf the buffer in which to place the counter name. + * @param size the size of the counter name buffer. + * @param ebuf the error message buffer. + * @param elen the length of the error buffer. + * @return CONFIG_SUCCESSFUL if successful, negative on failure. + */ +static int +find_name(DWORD index, char *buf, DWORD size) { + PDH_STATUS res; + + if ((res = PdhLookupPerfNameByIndex_i(NULL, index, buf, &size)) != ERROR_SUCCESS) { + + /* printf("Could not open counter %d: error=0x%08x", index, res); */ + /* if (res == PDH_CSTATUS_NO_MACHINE) { */ + /* printf("User probably does not have sufficient privileges to use"); */ + /* printf("performance counters. If you are running on Windows 2003"); */ + /* printf("or Windows Vista, make sure the user is in the"); */ + /* printf("Performance Logs user group."); */ + /* } */ + return -1; + } + + if (size == 0) { + /* printf("Failed to get counter name for %d: empty string", index); */ + return -1; + } + + // windows vista does not null-terminate the string (allthough the docs says it will) + buf[size - 1] = '\0'; + return CONFIG_SUCCESSFUL; +} + +/** + * Sets up the supplied SingleCounterQuery to listen for the specified counter. + * initPDH() must have been run prior to calling this function! + * + * @param counterQuery the counter query to set up. + * @param counterString the string specifying the path to the counter. + * @param ebuf the error buffer. + * @param elen the length of the error buffer. + * @returns CONFIG_SUCCESSFUL if successful, negative on failure. + */ +static int +initSingleCounterQuery(SingleCounterQueryP counterQuery, char *counterString) { + if (PdhOpenQuery_i(NULL, 0, &counterQuery->query.query) != ERROR_SUCCESS) { + /* printf("Could not open query for %s", counterString); */ + return -1; + } + if (PdhAddCounter_i(counterQuery->query.query, counterString, 0, &counterQuery->counter) != ERROR_SUCCESS) { + /* printf("Could not add counter %s for query", counterString); */ + if (counterQuery->counter != NULL) { + PdhRemoveCounter_i(counterQuery->counter); + } + if (counterQuery->query.query != NULL) { + PdhCloseQuery_i(counterQuery->query.query); + } + memset(counterQuery, 0, sizeof(SingleCounterQueryS)); + return -1; + } + return CONFIG_SUCCESSFUL; +} + +/** + * Sets up the supplied SingleCounterQuery to listen for the time spent + * by the HotSpot process. + * + * @param counterQuery the counter query to set up as a process counter. + * @param ebuf the error buffer. + * @param elen the length of the error buffer. + * @returns CONFIG_SUCCESSFUL if successful, negative on failure. + */ +static int +initProcLoadCounter(void) { + char time[COUNTER_BUF_SIZE]; + char counter[COUNTER_BUF_SIZE*2]; + + if (find_name(PDH_PROCESSOR_TIME_IDX, time, sizeof(time)-1) < 0) { + return -1; + } + _snprintf(counter, sizeof(counter)-1, "%s\\%s", getProcessPDHHeader(), time); + return initSingleCounterQuery(&cntProcLoad, counter); +} + +static int +initProcSystemLoadCounter(void) { + char time[COUNTER_BUF_SIZE]; + char counter[COUNTER_BUF_SIZE*2]; + + if (find_name(PDH_PRIV_PROCESSOR_TIME_IDX, time, sizeof(time)-1) < 0) { + return -1; + } + _snprintf(counter, sizeof(counter)-1, "%s\\%s", getProcessPDHHeader(), time); + return initSingleCounterQuery(&cntProcSystemLoad, counter); +} + +/** + * Sets up the supplied MultipleCounterQuery to check on the processors. + * (Comment: Refactor and prettify as with the the SingleCounter queries + * if more MultipleCounterQueries are discovered.) + * + * initPDH() must have been run prior to calling this function. + * + * @param multiQuery a pointer to a MultipleCounterQueryS, will be filled in with + * the necessary info to check the PDH processor counters. + * @return CONFIG_SUCCESSFUL if successful, negative on failure. + */ +static int +initProcessorCounters(void) { + char processor[COUNTER_BUF_SIZE]; //'Processor' == #238 + char time[COUNTER_BUF_SIZE]; //'Time' == 6 + DWORD c_size, i_size; + HQUERY tmpQuery; + DWORD i, p_count; + BOOL error; + char *instances, *tmp; + PDH_STATUS pdhStat; + + c_size = i_size = 0; + tmpQuery = NULL; + error = false; + + // This __try / __except stuff is there since Windows 2000 beta (or so) sometimes triggered + // an access violation when the user had insufficient privileges to use the performance + // counters. This was previously guarded by a very ugly piece of code which disabled the + // global trap handling in JRockit. Don't know if this really is needed anymore, but otoh, + // if we keep it we don't crash on Win2k beta. /Ihse, 2005-05-30 + __try { + if (find_name(PDH_PROCESSOR_IDX, processor, sizeof(processor)-1) < 0) { + return -1; + } + } __except (EXCEPTION_EXECUTE_HANDLER) { // We'll catch all exceptions here. + /* printf("User does not have sufficient privileges to use performance counters"); */ + return -1; + } + + if (find_name(PDH_PROCESSOR_TIME_IDX, time, sizeof(time)-1) < 0) { + return -1; + } + //ok, now we have enough to enumerate all processors. + pdhStat = PdhEnumObjectItems_i ( + NULL, // reserved + NULL, // local machine + processor, // object to enumerate + NULL, // pass in NULL buffers + &c_size, // and 0 length to get + NULL, // required size + &i_size, // of the buffers in chars + PERF_DETAIL_WIZARD, // counter detail level + 0); + if (pdh_fail(pdhStat)) { + /* printf("could not enumerate processors (1) error=%d", pdhStat); */ + return -1; + } + + // use calloc because windows vista does not null terminate the instance names (allthough the docs says it will) + instances = calloc(i_size, 1); + if (instances == NULL) { + /* printf("could not allocate memory (1) %d bytes", i_size); */ + error = true; + goto end; + } + + c_size = 0; + pdhStat = PdhEnumObjectItems_i ( + NULL, // reserved + NULL, // local machine + processor, // object to enumerate + NULL, // pass in NULL buffers + &c_size, // and 0 length to get + instances, // required size + &i_size, // of the buffers in chars + PERF_DETAIL_WIZARD, // counter detail level + 0); + + if (pdh_fail(pdhStat)) { + /* printf("could not enumerate processors (2) error=%d", pdhStat); */ + error = true; + goto end; + } + //count perf count instances. + for (p_count = 0, tmp = instances; *tmp != 0; tmp = &tmp[lstrlen(tmp)+1], p_count++); + + //is this correct for HT? + assert(p_count == num_cpus+1); + + //ok, have number of perf counters. + multiCounterCPULoad.counters = calloc(p_count, sizeof(HCOUNTER)); + if (multiCounterCPULoad.counters == NULL) { + /* printf("could not allocate memory (2) count=%d", p_count); */ + error = true; + goto end; + } + + multiCounterCPULoad.noOfCounters = p_count; + + if (PdhOpenQuery_i(NULL, 0, &multiCounterCPULoad.query.query) != ERROR_SUCCESS) { + /* printf("could not create query"); */ + error = true; + goto end; + } + //now, fetch the counters. + for (i = 0, tmp = instances; *tmp != '\0'; tmp = &tmp[lstrlen(tmp)+1], i++) { + char counter[2*COUNTER_BUF_SIZE]; + + _snprintf(counter, sizeof(counter)-1, "\\%s(%s)\\%s", processor, tmp, time); + + if (PdhAddCounter_i(multiCounterCPULoad.query.query, counter, 0, &multiCounterCPULoad.counters[i]) != ERROR_SUCCESS) { + /* printf("error adding processor counter %s", counter); */ + error = true; + goto end; + } + } + + free(instances); + instances = NULL; + + // Query once to initialize the counters needing at least two queries + // (like the % CPU usage) to calculate correctly. + if (PdhCollectQueryData_i(multiCounterCPULoad.query.query) != ERROR_SUCCESS) + error = true; + + end: + if (instances != NULL) { + free(instances); + } + if (tmpQuery != NULL) { + PdhCloseQuery_i(tmpQuery); + } + if (error) { + int i; + + if (multiCounterCPULoad.counters != NULL) { + for (i = 0; i < multiCounterCPULoad.noOfCounters; i++) { + if (multiCounterCPULoad.counters[i] != NULL) { + PdhRemoveCounter_i(multiCounterCPULoad.counters[i]); + } + } + free(multiCounterCPULoad.counters[i]); + } + if (multiCounterCPULoad.query.query != NULL) { + PdhCloseQuery_i(multiCounterCPULoad.query.query); + } + memset(&multiCounterCPULoad, 0, sizeof(MultipleCounterQueryS)); + return -1; + } + return CONFIG_SUCCESSFUL; +} + +/** + * Help function that initializes the PDH process header for the JRockit process. + * (You should probably use getProcessPDHHeader() instead!) + * + * initPDH() must have been run prior to calling this function. + * + * @param ebuf the error buffer. + * @param elen the length of the error buffer. + * + * @return the PDH instance description corresponding to the JVM process. + */ +static char* +initProcessPDHHeader(void) { + static char hotspotheader[2*COUNTER_BUF_SIZE]; + + char counter[2*COUNTER_BUF_SIZE]; + char processes[COUNTER_BUF_SIZE]; //'Process' == #230 + char pid[COUNTER_BUF_SIZE]; //'ID Process' == 784 + char module_name[MAX_PATH]; + PDH_STATUS pdhStat; + DWORD c_size = 0, i_size = 0; + HQUERY tmpQuery = NULL; + int i, myPid = _getpid(); + BOOL error = false; + char *instances, *tmp, *instance_name, *dot_pos; + + tmpQuery = NULL; + myPid = _getpid(); + error = false; + + if (find_name(PDH_PROCESS_IDX, processes, sizeof(processes) - 1) < 0) { + return NULL; + } + + if (find_name(PDH_ID_PROCESS_IDX, pid, sizeof(pid) - 1) < 0) { + return NULL; + } + //time is same. + + c_size = 0; + i_size = 0; + + pdhStat = PdhEnumObjectItems_i ( + NULL, // reserved + NULL, // local machine + processes, // object to enumerate + NULL, // pass in NULL buffers + &c_size, // and 0 length to get + NULL, // required size + &i_size, // of the buffers in chars + PERF_DETAIL_WIZARD, // counter detail level + 0); + + //ok, now we have enough to enumerate all processes + if (pdh_fail(pdhStat)) { + /* printf("Could not enumerate processes (1) error=%d", pdhStat); */ + return NULL; + } + + // use calloc because windows vista does not null terminate the instance names (allthough the docs says it will) + if ((instances = calloc(i_size, 1)) == NULL) { + /* printf("Could not allocate memory %d bytes", i_size); */ + error = true; + goto end; + } + + c_size = 0; + + pdhStat = PdhEnumObjectItems_i ( + NULL, // reserved + NULL, // local machine + processes, // object to enumerate + NULL, // pass in NULL buffers + &c_size, // and 0 length to get + instances, // required size + &i_size, // of the buffers in chars + PERF_DETAIL_WIZARD, // counter detail level + 0); + + // ok, now we have enough to enumerate all processes + if (pdh_fail(pdhStat)) { + /* printf("Could not enumerate processes (2) error=%d", pdhStat); */ + error = true; + goto end; + } + + if (PdhOpenQuery_i(NULL, 0, &tmpQuery) != ERROR_SUCCESS) { + /* printf("Could not create temporary query"); */ + error = true; + goto end; + } + + // Find our module name and use it to extract the instance name used by PDH + if (GetModuleFileName(NULL, module_name, MAX_PATH) >= MAX_PATH-1) { + /* printf("Module name truncated"); */ + error = true; + goto end; + } + instance_name = strrchr(module_name, '\\'); //drop path + instance_name++; //skip slash + dot_pos = strchr(instance_name, '.'); //drop .exe + dot_pos[0] = '\0'; + + //now, fetch the counters. + for (tmp = instances; *tmp != 0 && !error; tmp = &tmp[lstrlen(tmp)+1]) { + HCOUNTER hc = NULL; + BOOL done = false; + + // Skip until we find our own process name + if (strcmp(tmp, instance_name) != 0) { + continue; + } + + // iterate over all instance indexes and try to find our own pid + for (i = 0; !done && !error; i++){ + PDH_STATUS res; + _snprintf(counter, sizeof(counter)-1, "\\%s(%s#%d)\\%s", processes, tmp, i, pid); + + if (PdhAddCounter_i(tmpQuery, counter, 0, &hc) != ERROR_SUCCESS) { + /* printf("Failed to create process id query"); */ + error = true; + goto end; + } + + res = PdhCollectQueryData_i(tmpQuery); + + if (res == PDH_INVALID_HANDLE) { + /* printf("Failed to query process id"); */ + res = -1; + done = true; + } else if (res == PDH_NO_DATA) { + done = true; + } else { + PDH_FMT_COUNTERVALUE cv; + + PdhGetFormattedCounterValue_i(hc, PDH_FMT_LONG, NULL, &cv); + /* + * This check seems to be needed for Win2k SMP boxes, since + * they for some reason don't return PDH_NO_DATA for non existing + * counters. + */ + if (cv.CStatus != PDH_CSTATUS_VALID_DATA) { + done = true; + } else if (cv.longValue == myPid) { + _snprintf(hotspotheader, sizeof(hotspotheader)-1, "\\%s(%s#%d)\0", processes, tmp, i); + PdhRemoveCounter_i(hc); + goto end; + } + } + PdhRemoveCounter_i(hc); + } + } + end: + if (instances != NULL) { + free(instances); + } + if (tmpQuery != NULL) { + PdhCloseQuery_i(tmpQuery); + } + if (error) { + return NULL; + } + return hotspotheader; +} + +/** + * Returns the PDH string prefix identifying the HotSpot process. Use this prefix when getting + * counters from the PDH process object representing HotSpot. + * + * Note: this call may take some time to complete. + * + * @param ebuf error buffer. + * @param elen error buffer length. + * + * @return the header to be used when retrieving PDH counters from the HotSpot process. + * Will return NULL if the call failed. + */ +static char * +getProcessPDHHeader(void) { + static char *processHeader = NULL; + + EnterCriticalSection(&processHeaderLock); { + if (processHeader == NULL) { + processHeader = initProcessPDHHeader(); + } + } LeaveCriticalSection(&processHeaderLock); + return processHeader; +} + +int perfInit(void); + +double +perfGetCPULoad(int which) +{ + PDH_FMT_COUNTERVALUE cv; + HCOUNTER c; + + if (perfInit() < 0) { + // warn? + return -1.0; + } + + if (multiCounterCPULoad.query.query == NULL) { + // warn? + return -1.0; + } + + if (which == -1) { + c = multiCounterCPULoad.counters[multiCounterCPULoad.noOfCounters - 1]; + } else { + if (which < multiCounterCPULoad.noOfCounters) { + c = multiCounterCPULoad.counters[which]; + } else { + return -1.0; + } + } + if (getPerformanceData(&multiCounterCPULoad.query, c, &cv, PDH_FMT_DOUBLE ) == CONFIG_SUCCESSFUL) { + return cv.doubleValue / 100; + } + return -1.0; +} + +double +perfGetProcessLoad(void) +{ + PDH_FMT_COUNTERVALUE cv; + + if (perfInit() < 0) { + // warn? + return -1.0; + } + + if (cntProcLoad.query.query == NULL) { + // warn? + return -1.0; + } + + if (getPerformanceData(&cntProcLoad.query, cntProcLoad.counter, &cv, PDH_FMT_DOUBLE | PDH_FMT_NOCAP100) == CONFIG_SUCCESSFUL) { + double d = cv.doubleValue / cpuFactor; + d = min(1, d); + d = max(0, d); + return d; + } + return -1.0; +} + +/** + * Helper to initialize the PDH library. Loads the library and sets up the functions. + * Note that once loaded, we will never unload the PDH library. + * + * @return CONFIG_SUCCESSFUL if successful, negative on failure. + */ +int +perfInit(void) { + static HMODULE h; + static BOOL running, inited; + + int error; + + if (running) { + return CONFIG_SUCCESSFUL; + } + + error = CONFIG_SUCCESSFUL; + + // this is double checked locking again, but we try to bypass the worst by + // implicit membar at end of lock. + EnterCriticalSection(&initializationLock); { + if (!inited) { + char buf[64] = ""; + SYSTEM_INFO si; + + // CMH. But windows will not care about our affinity when giving + // us measurements. Need the real, raw num cpus. + + GetSystemInfo(&si); + num_cpus = si.dwNumberOfProcessors; + // Initialize the denominator for the jvm load calculations + cpuFactor = num_cpus * 100; + + /** + * Do this dynamically, so we don't fail to start on systems without pdh. + */ + if ((h = LoadLibrary("pdh.dll")) == NULL) { + /* printf("Could not load pdh.dll (%d)", GetLastError()); */ + error = -2; + } else if (get_functions(h, buf, sizeof(buf)) < 0) { + FreeLibrary(h); + h = NULL; + error = -2; + /* printf("Failed to init pdh functions: %s.\n", buf); */ + } else { + if (initProcessorCounters() != 0) { + /* printf("Failed to init system load counters.\n"); */ + } else if (initProcLoadCounter() != 0) { + /* printf("Failed to init process load counter.\n"); */ + } else if (initProcSystemLoadCounter() != 0) { + /* printf("Failed to init process system load counter.\n"); */ + } else { + inited = true; + } + } + } + } LeaveCriticalSection(&initializationLock); + + if (inited && error == CONFIG_SUCCESSFUL) { + running = true; + } + + return error; +} + +JNIEXPORT jdouble JNICALL +Java_sun_management_OperatingSystemImpl_getSystemCpuLoad +(JNIEnv *env, jobject dummy) +{ + return perfGetCPULoad(-1); +} + +JNIEXPORT jdouble JNICALL +Java_sun_management_OperatingSystemImpl_getProcessCpuLoad +(JNIEnv *env, jobject dummy) +{ + return perfGetProcessLoad(); +}
--- a/test/Makefile Thu Nov 14 23:32:31 2013 -0800 +++ b/test/Makefile Fri Nov 15 07:14:23 2013 -0800 @@ -27,6 +27,8 @@ # Makefile to run various jdk tests # +.DEFAULT : all + # Empty these to get rid of some default rules .SUFFIXES: .SUFFIXES: .java @@ -55,150 +57,19 @@ WC = wc ZIP = zip -# Get OS name from uname -UNAME_S := $(shell $(UNAME) -s) +# Get OS name from uname (Cygwin inexplicably adds _NT-5.1) +UNAME_S := $(shell $(UNAME) -s | $(CUT) -f1 -d_) # Commands to run on paths to make mixed paths for java on windows -GETMIXEDPATH=$(ECHO) - -# Location of developer shared files -SLASH_JAVA = /java - -# Platform specific settings -ifeq ($(UNAME_S), SunOS) - OS_NAME = solaris - OS_ARCH := $(shell $(UNAME) -p) - OS_VERSION := $(shell $(UNAME) -r) -endif -ifeq ($(UNAME_S), Linux) - OS_NAME = linux - OS_ARCH := $(shell $(UNAME) -m) - # Check for unknown arch, try uname -p if uname -m says unknown - ifeq ($(OS_ARCH),unknown) - OS_ARCH := $(shell $(UNAME) -p) - endif - OS_VERSION := $(shell $(UNAME) -r) -endif -ifeq ($(UNAME_S), Darwin) - OS_NAME = macosx - OS_ARCH := $(shell $(UNAME) -m) - # Check for unknown arch, try uname -p if uname -m says unknown - ifeq ($(OS_ARCH),unknown) - OS_ARCH := $(shell $(UNAME) -p) - endif - OS_VERSION := $(shell $(UNAME) -r) -endif -ifeq ($(OS_NAME),) - OS_NAME = windows - # GNU Make or MKS overrides $(PROCESSOR_ARCHITECTURE) to always - # return "x86". Use the first word of $(PROCESSOR_IDENTIFIER) instead. - ifeq ($(PROCESSOR_IDENTIFIER),) - PROC_ARCH:=$(shell $(UNAME) -m) - else - PROC_ARCH:=$(word 1, $(PROCESSOR_IDENTIFIER)) - endif - OS_ARCH:=$(PROC_ARCH) +ifeq ($(UNAME_S), CYGWIN) + # Location of developer shared files SLASH_JAVA = J: - EXESUFFIX = .exe - # These need to be different depending on MKS or CYGWIN - ifeq ($(findstring cygdrive,$(shell ($(CD) C:/ && $(PWD)))), ) - GETMIXEDPATH = dosname -s - OS_VERSION := $(shell $(UNAME) -r) - else - GETMIXEDPATH = cygpath -m -s - OS_VERSION := $(shell $(UNAME) -s | $(CUT) -d'-' -f2) - endif -endif - -# Only want major and minor numbers from os version -OS_VERSION := $(shell $(ECHO) "$(OS_VERSION)" | $(CUT) -d'.' -f1,2) - -# Name to use for x86_64 arch (historically amd64, but should change someday) -OS_ARCH_X64_NAME:=amd64 -#OS_ARCH_X64_NAME:=x64 - -# Alternate arch names (in case this arch is known by a second name) -# PROBLEM_LISTS may use either name. -OS_ARCH2-amd64:=x64 -#OS_ARCH2-x64:=amd64 + GETMIXEDPATH = cygpath -m +else + # Location of developer shared files + SLASH_JAVA = /java -# Try and use the arch names consistently -OS_ARCH:=$(patsubst x64,$(OS_ARCH_X64_NAME),$(OS_ARCH)) -OS_ARCH:=$(patsubst X64,$(OS_ARCH_X64_NAME),$(OS_ARCH)) -OS_ARCH:=$(patsubst AMD64,$(OS_ARCH_X64_NAME),$(OS_ARCH)) -OS_ARCH:=$(patsubst amd64,$(OS_ARCH_X64_NAME),$(OS_ARCH)) -OS_ARCH:=$(patsubst x86_64,$(OS_ARCH_X64_NAME),$(OS_ARCH)) -OS_ARCH:=$(patsubst 8664,$(OS_ARCH_X64_NAME),$(OS_ARCH)) -OS_ARCH:=$(patsubst EM64T,$(OS_ARCH_X64_NAME),$(OS_ARCH)) -OS_ARCH:=$(patsubst em64t,$(OS_ARCH_X64_NAME),$(OS_ARCH)) -OS_ARCH:=$(patsubst intel64,$(OS_ARCH_X64_NAME),$(OS_ARCH)) -OS_ARCH:=$(patsubst Intel64,$(OS_ARCH_X64_NAME),$(OS_ARCH)) -OS_ARCH:=$(patsubst INTEL64,$(OS_ARCH_X64_NAME),$(OS_ARCH)) -OS_ARCH:=$(patsubst IA64,ia64,$(OS_ARCH)) -OS_ARCH:=$(patsubst X86,i586,$(OS_ARCH)) -OS_ARCH:=$(patsubst x86,i586,$(OS_ARCH)) -OS_ARCH:=$(patsubst i386,i586,$(OS_ARCH)) -OS_ARCH:=$(patsubst i486,i586,$(OS_ARCH)) -OS_ARCH:=$(patsubst i686,i586,$(OS_ARCH)) -OS_ARCH:=$(patsubst 386,i586,$(OS_ARCH)) -OS_ARCH:=$(patsubst 486,i586,$(OS_ARCH)) -OS_ARCH:=$(patsubst 586,i586,$(OS_ARCH)) -OS_ARCH:=$(patsubst 686,i586,$(OS_ARCH)) - -# Default ARCH_DATA_MODEL settings -ARCH_DATA_MODEL-i586 = 32 -ARCH_DATA_MODEL-$(OS_ARCH_X64_NAME) = 64 -ARCH_DATA_MODEL-ia64 = 64 -ARCH_DATA_MODEL-sparc = 32 -ARCH_DATA_MODEL-sparcv9 = 64 - -# If ARCH_DATA_MODEL is not defined, try and pick a reasonable default -ifndef ARCH_DATA_MODEL - ARCH_DATA_MODEL:=$(ARCH_DATA_MODEL-$(OS_ARCH)) -endif -ifndef ARCH_DATA_MODEL - ARCH_DATA_MODEL=32 -endif - -# Platform directory name -PLATFORM_OS = $(OS_NAME)-$(OS_ARCH) - -# Check ARCH_DATA_MODEL, adjust OS_ARCH accordingly on solaris -ARCH_DATA_MODEL_ERROR= \ - ARCH_DATA_MODEL=$(ARCH_DATA_MODEL) cannot be used with $(PLATFORM_OS) -ifeq ($(ARCH_DATA_MODEL),64) - ifeq ($(PLATFORM_OS),solaris-i586) - OS_ARCH=$(OS_ARCH_X64_NAME) - endif - ifeq ($(PLATFORM_OS),solaris-sparc) - OS_ARCH=sparcv9 - endif - ifeq ($(OS_ARCH),i586) - x:=$(warning "WARNING: $(ARCH_DATA_MODEL_ERROR)") - endif - ifeq ($(OS_ARCH),sparc) - x:=$(warning "WARNING: $(ARCH_DATA_MODEL_ERROR)") - endif -else - ifeq ($(ARCH_DATA_MODEL),32) - ifeq ($(OS_ARCH),$(OS_ARCH_X64_NAME)) - x:=$(warning "WARNING: $(ARCH_DATA_MODEL_ERROR)") - endif - ifeq ($(OS_ARCH),ia64) - x:=$(warning "WARNING: $(ARCH_DATA_MODEL_ERROR)") - endif - ifeq ($(OS_ARCH),sparcv9) - x:=$(warning "WARNING: $(ARCH_DATA_MODEL_ERROR)") - endif - else - x:=$(warning "WARNING: $(ARCH_DATA_MODEL_ERROR)") - endif -endif - -# Alternate OS_ARCH name (defaults to OS_ARCH) -OS_ARCH2:=$(OS_ARCH2-$(OS_ARCH)) -ifeq ($(OS_ARCH2),) - OS_ARCH2:=$(OS_ARCH) + GETMIXEDPATH=$(ECHO) endif # Root of this test area (important to use full paths in some places) @@ -206,17 +77,18 @@ # Root of all test results ifdef ALT_OUTPUTDIR - ABS_OUTPUTDIR = $(ALT_OUTPUTDIR) + ABS_OUTPUTDIR = $(shell $(CD) $(ALT_OUTPUTDIR) && $(PWD)) else - ABS_OUTPUTDIR = $(TEST_ROOT)/../build/$(PLATFORM_OS) + ABS_OUTPUTDIR = $(shell $(CD) $(TEST_ROOT)/.. && $(PWD)) endif + ABS_PLATFORM_BUILD_ROOT = $(ABS_OUTPUTDIR) ABS_TEST_OUTPUT_DIR := $(ABS_PLATFORM_BUILD_ROOT)/testoutput/$(UNIQUE_DIR) # Expect JPRT to set PRODUCT_HOME (the product or jdk in this case to test) ifndef PRODUCT_HOME # Try to use j2sdk-image if it exists - ABS_JDK_IMAGE = $(ABS_PLATFORM_BUILD_ROOT)/j2sdk-image + ABS_JDK_IMAGE = $(ABS_PLATFORM_BUILD_ROOT)/images/j2sdk-image PRODUCT_HOME := \ $(shell \ if [ -d $(ABS_JDK_IMAGE) ] ; then \ @@ -240,30 +112,11 @@ JAVA_VM_ARGS = $(JPRT_PRODUCT_VM_ARGS) endif -# Check JAVA_ARGS arguments based on ARCH_DATA_MODEL etc. -ifeq ($(OS_NAME),solaris) - D64_ERROR_MESSAGE=Mismatch between ARCH_DATA_MODEL=$(ARCH_DATA_MODEL) and use of -d64 in JAVA_ARGS=$(JAVA_ARGS) - ifeq ($(ARCH_DATA_MODEL),32) - ifneq ($(findstring -d64,$(JAVA_ARGS)),) - x:=$(warning "WARNING: $(D64_ERROR_MESSAGE)") - endif - endif - ifeq ($(ARCH_DATA_MODEL),64) - ifeq ($(findstring -d64,$(JAVA_ARGS)),) - x:=$(warning "WARNING: $(D64_ERROR_MESSAGE)") - endif - endif -endif - -# Macro to run make and set the shared library permissions -define SharedLibraryPermissions -$(MAKE) SHARED_LIBRARY_DIR=$1 UNIQUE_DIR=$@ shared_library_permissions -endef - # Expect JPRT to set JPRT_ARCHIVE_BUNDLE (path to zip bundle for results) -ARCHIVE_BUNDLE = $(ABS_TEST_OUTPUT_DIR)/ARCHIVE_BUNDLE.zip ifdef JPRT_ARCHIVE_BUNDLE ARCHIVE_BUNDLE = $(JPRT_ARCHIVE_BUNDLE) +else + ARCHIVE_BUNDLE = $(ABS_TEST_OUTPUT_DIR)/ARCHIVE_BUNDLE.zip endif # How to create the test bundle (pass or fail, we want to create this) @@ -272,13 +125,15 @@ && $(CD) $(ABS_TEST_OUTPUT_DIR) \ && $(CHMOD) -R a+r . \ && $(ZIP) -q -r $(ARCHIVE_BUNDLE) . ) -SUMMARY_TXT = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)")/JTreport/text/summary.txt + +# important results files +SUMMARY_TXT = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/JTreport/text/summary.txt") STATS_TXT_NAME = Stats.txt -STATS_TXT = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)")/$(STATS_TXT_NAME) -RUNLIST = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)")/runlist.txt -PASSLIST = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)")/passlist.txt -FAILLIST = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)")/faillist.txt -EXITCODE = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)")/exitcode.txt +STATS_TXT = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/$(STATS_TXT_NAME)") +RUNLIST = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/runlist.txt") +PASSLIST = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/passlist.txt") +FAILLIST = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/faillist.txt") +EXITCODE = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/exitcode.txt") TESTEXIT = \ if [ ! -s $(EXITCODE) ] ; then \ @@ -316,8 +171,8 @@ runc="`$(CAT) $(RUNLIST) | $(WC) -l | $(AWK) '{print $$1;}'`"; \ passc="`$(CAT) $(PASSLIST) | $(WC) -l | $(AWK) '{print $$1;}'`"; \ failc="`$(CAT) $(FAILLIST) | $(WC) -l | $(AWK) '{print $$1;}'`"; \ - exclc="`$(CAT) $(EXCLUDELIST) | $(WC) -l | $(AWK) '{print $$1;}'`"; \ - $(ECHO) "TEST STATS: name=$(UNIQUE_DIR) run=$${runc} pass=$${passc} fail=$${failc} excluded=$${exclc}" \ + exclc="FIXME CODETOOLS-7900176"; \ + $(ECHO) "TEST STATS: name=$(UNIQUE_DIR) run=$${runc} pass=$${passc} fail=$${failc}" \ >> $(STATS_TXT); \ else \ $(ECHO) "Missing file: $${_summary}" >> $(STATS_TXT); \ @@ -336,9 +191,24 @@ @$(ECHO) "Testing completed successfully" # Prep for output +# Change execute permissions on shared library files. +# Files in repositories should never have execute permissions, but +# there are some tests that have pre-built shared libraries, and these +# windows dll files must have execute permission. Adding execute +# permission may happen automatically on windows when using certain +# versions of mercurial but it cannot be guaranteed. And blindly +# adding execute permission might be seen as a mercurial 'change', so +# we avoid adding execute permission to repository files. But testing +# from a plain source tree needs the chmod a+rx. Applying the chmod to +# all shared libraries not just dll files. And with CYGWIN and sshd +# service, you may need CYGWIN=ntsec for this to work. prep: @$(MKDIR) -p $(ABS_TEST_OUTPUT_DIR) @$(MKDIR) -p `$(DIRNAME) $(ARCHIVE_BUNDLE)` + @if [ ! -d $(TEST_ROOT)/../.hg ] ; then \ + $(FIND) $(TEST_ROOT) \( -name \*.dll -o -name \*.DLL -o -name \*.so \) \ + -exec $(CHMOD) a+rx {} \; ; \ + fi # Cleanup clean: @@ -357,50 +227,21 @@ endif endif -# Expect JPRT to set TESTDIRS to the jtreg test dirs -ifndef TESTDIRS - TESTDIRS = demo -endif - -# Some tests annoy me and fail frequently -PROBLEM_LIST=ProblemList.txt -PROBLEM_LISTS=$(PROBLEM_LIST) $(wildcard closed/$(PROBLEM_LIST)) -EXCLUDELIST=$(ABS_TEST_OUTPUT_DIR)/excludelist.txt +# Problematic tests to be excluded +PROBLEM_LISTS=$(call MixedDirs,$(wildcard ProblemList.txt closed/ProblemList.txt)) # Create exclude list for this platform and arch ifdef NO_EXCLUDES -$(EXCLUDELIST): $(PROBLEM_LISTS) $(TEST_DEPENDENCIES) - @$(ECHO) "NOTHING_EXCLUDED" > $@ + JTREG_EXCLUSIONS = else -$(EXCLUDELIST): $(PROBLEM_LISTS) $(TEST_DEPENDENCIES) - @$(RM) $@ $@.temp1 $@.temp2 - @(($(CAT) $(PROBLEM_LISTS) | $(EGREP) -- '$(OS_NAME)-all' ) ;\ - ($(CAT) $(PROBLEM_LISTS) | $(EGREP) -- '$(PLATFORM_OS)' ) ;\ - ($(CAT) $(PROBLEM_LISTS) | $(EGREP) -- '$(OS_NAME)-$(OS_ARCH2)' ) ;\ - ($(CAT) $(PROBLEM_LISTS) | $(EGREP) -- '$(OS_NAME)-$(OS_VERSION)') ;\ - ($(CAT) $(PROBLEM_LISTS) | $(EGREP) -- 'generic-$(OS_ARCH)' ) ;\ - ($(CAT) $(PROBLEM_LISTS) | $(EGREP) -- 'generic-$(OS_ARCH2)' ) ;\ - ($(CAT) $(PROBLEM_LISTS) | $(EGREP) -- 'generic-all' ) ;\ - ($(ECHO) "#") ;\ - ) | $(SED) -e 's@^[\ ]*@@' \ - | $(EGREP) -v '^#' > $@.temp1 - @for tdir in $(TESTDIRS) SOLARIS_10_SH_BUG_NO_EMPTY_FORS ; do \ - ( ( $(CAT) $@.temp1 | $(EGREP) "^$${tdir}" ) ; $(ECHO) "#" ) >> $@.temp2 ; \ - done - @$(ECHO) "# at least one line" >> $@.temp2 - @( $(EGREP) -v '^#' $@.temp2 ; true ) > $@ - @$(ECHO) "Excluding list contains `$(EXPAND) $@ | $(WC) -l` items" + JTREG_EXCLUSIONS = $(PROBLEM_LISTS:%=-exclude:%) endif -# Select list of directories that exist -define TestDirs -$(foreach i,$1,$(wildcard ${i})) $(foreach i,$1,$(wildcard closed/${i})) +# convert list of directories to dos paths +define MixedDirs +$(foreach i,$1,$(shell $(GETMIXEDPATH) "${i}")) endef -# Running batches of tests with or without agentvm -define RunBatch -$(ECHO) "Running tests: $?" -$(MAKE) TEST_DEPENDENCIES="$?" TESTDIRS="$?" UNIQUE_DIR=$@ jtreg_tests -endef + define SummaryInfo $(ECHO) "########################################################" $(CAT) $(?:%=$(ABS_TEST_OUTPUT_DIR)/%/$(STATS_TXT_NAME)) @@ -409,178 +250,11 @@ # ------------------------------------------------------------------ -# Batches of tests (somewhat arbitrary assigments to jdk_* targets) -# NOTE: These *do not* run the same tests as make/jprt.properties -JDK_DEFAULT_TARGETS = -JDK_ALL_TARGETS = - -JDK_ALL_TARGETS += jdk_awt -jdk_awt: $(call TestDirs, com/sun/awt java/awt sun/awt \ - javax/imageio javax/print sun/pisces) - $(call RunBatch) - -JDK_ALL_TARGETS += jdk_beans1 -JDK_DEFAULT_TARGETS += jdk_beans1 -jdk_beans1: $(call TestDirs, \ - java/beans/beancontext java/beans/PropertyChangeSupport \ - java/beans/Introspector java/beans/Performance \ - java/beans/VetoableChangeSupport java/beans/Statement) - $(call RunBatch) - -JDK_ALL_TARGETS += jdk_beans2 -jdk_beans2: $(call TestDirs, \ - java/beans/Beans java/beans/EventHandler java/beans/XMLDecoder \ - java/beans/PropertyEditor) - $(call RunBatch) - -JDK_ALL_TARGETS += jdk_beans3 -jdk_beans3: $(call TestDirs, java/beans/XMLEncoder) - $(call RunBatch) - -# All beans tests -jdk_beans: jdk_beans1 jdk_beans2 jdk_beans3 - @$(SummaryInfo) - -JDK_ALL_TARGETS += jdk_io -JDK_DEFAULT_TARGETS += jdk_io -jdk_io: $(call TestDirs, java/io) - $(call RunBatch) - -JDK_ALL_TARGETS += jdk_lang -JDK_DEFAULT_TARGETS += jdk_lang -jdk_lang: $(call TestDirs, java/lang sun/invoke sun/misc sun/reflect vm) - $(call RunBatch) - -JDK_ALL_TARGETS += jdk_jmx -jdk_jmx: $(call TestDirs, javax/management com/sun/jmx) - $(call RunBatch) - -JDK_ALL_TARGETS += jdk_management -jdk_management: $(call TestDirs, com/sun/management sun/management) - $(call RunBatch) - -JDK_ALL_TARGETS += jdk_math -JDK_DEFAULT_TARGETS += jdk_math -jdk_math: $(call TestDirs, java/math) - $(call RunBatch) - -JDK_DEFAULT_TARGETS += jdk_time -jdk_time: $(call TestDirs, java/time) - $(call RunBatch) - -JDK_ALL_TARGETS += jdk_other -JDK_DEFAULT_TARGETS += jdk_other -jdk_other: $(call TestDirs, \ - demo/jvmti demo/zipfs sample \ - javax/naming com/sun/jndi \ - javax/script \ - java/sql javax/sql \ - javax/smartcardio \ - javax/xml/jaxp \ - javax/xml/soap \ - javax/xml/ws com/sun/internal/ws com/sun/org/glassfish \ - jdk/asm \ - jdk/lambda \ - com/sun/org/apache/xerces \ - com/sun/corba \ - com/sun/tracing \ - sun/usagetracker \ - misc) - $(call RunBatch) - -JDK_ALL_TARGETS += jdk_net -JDK_DEFAULT_TARGETS += jdk_net -jdk_net: $(call TestDirs, com/sun/net java/net sun/net com/oracle/net) - $(call RunBatch) - -jdk_nio: $(call TestDirs, java/nio sun/nio com/oracle/nio) - $(call SharedLibraryPermissions,java/nio/channels) - $(call RunBatch) - -jdk_sctp: $(call TestDirs, com/sun/nio/sctp) - $(call RunBatch) - -JDK_ALL_TARGETS += jdk_rmi -jdk_rmi: $(call TestDirs, java/rmi sun/rmi javax/rmi/ssl) - $(call RunBatch) - -JDK_ALL_TARGETS += jdk_security1 -JDK_DEFAULT_TARGETS += jdk_security1 -jdk_security1: $(call TestDirs, java/security) - $(call RunBatch) - -JDK_ALL_TARGETS += jdk_security2 -jdk_security2: $(call TestDirs, javax/crypto javax/xml/crypto com/sun/crypto) - $(call RunBatch) - -JDK_ALL_TARGETS += jdk_security3 -jdk_security3: $(call TestDirs, com/sun/security lib/security javax/security \ - sun/security com/sun/org/apache/xml/internal/security \ - com/oracle/security) - $(call SharedLibraryPermissions,sun/security) - $(call RunBatch) - -# All security tests -jdk_security: jdk_security1 jdk_security2 jdk_security3 - @$(SummaryInfo) - -JDK_ALL_TARGETS += jdk_sound -jdk_sound: $(call TestDirs, javax/sound) - $(call RunBatch) - -JDK_ALL_TARGETS += jdk_swing -jdk_swing: $(call TestDirs, javax/swing sun/java2d \ - demo/jfc com/sun/java/swing) - $(call RunBatch) - -JDK_ALL_TARGETS += jdk_text -JDK_DEFAULT_TARGETS += jdk_text -jdk_text: $(call TestDirs, java/text sun/text) - $(call RunBatch) - -JDK_ALL_TARGETS += jdk_jdi -jdk_jdi: $(call TestDirs, com/sun/jdi) - $(call RunBatch) - -JDK_ALL_TARGETS += jdk_tools -jdk_tools: $(call TestDirs, com/sun/tools sun/jvmstat sun/tools tools) - $(call SharedLibraryPermissions,tools/launcher) - $(call RunBatch) - -ifdef OPENJDK -jdk_jfr: -else -JDK_ALL_TARGETS += jdk_jfr -jdk_jfr: $(call TestDirs, com/oracle/jfr) - $(call RunBatch) -endif - -JDK_ALL_TARGETS += jdk_util -JDK_DEFAULT_TARGETS += jdk_util -jdk_util: $(call TestDirs, java/util sun/util) - $(call RunBatch) - -# ------------------------------------------------------------------ - -# Run default tests -# note that this *does not* have the same meaning as jprt.properties :: jprt.make.rule.default.test.targets -jdk_default: $(JDK_DEFAULT_TARGETS) - @$(SummaryInfo) - -# Run core tests -# please keep this in sync with jdk/make/jprt.properties :: jprt.make.rule.core.test.targets -jdk_core: jdk_lang jdk_math jdk_util jdk_io jdk_net jdk_nio \ - jdk_security1 jdk_security2 jdk_security3 jdk_rmi \ - jdk_management jdk_jmx jdk_text jdk_tools jdk_jfr jdk_other - @$(SummaryInfo) - -# Run all tests -# note that this *does not* have the same meaning as jprt.properties :: jprt.make.rule.all.test.targets -jdk_all: $(JDK_ALL_TARGETS) - @$(SummaryInfo) - -# These are all phony targets -PHONY_LIST += $(JDK_ALL_TARGETS) jdk_default jdk_core jdk_all +jdk_%: + $(ECHO) "Running tests: $@" + for each in $@; do \ + $(MAKE) -j 1 TEST_SELECTION=":$$each" UNIQUE_DIR=$$each jtreg_tests; \ + done # ------------------------------------------------------------------ @@ -625,44 +299,23 @@ $(JTREG): $(JT_HOME) # Run jtreg -jtreg_tests: prep $(PRODUCT_HOME) $(JTREG) $(EXCLUDELIST) - @$(EXPAND) $(EXCLUDELIST) \ - | $(CUT) -d' ' -f1 \ - | $(SED) -e 's@^@Excluding: @' +jtreg_tests: prep $(PRODUCT_HOME) $(JTREG) ( \ ( JT_HOME=$(shell $(GETMIXEDPATH) "$(JT_HOME)"); \ export JT_HOME; \ $(shell $(GETMIXEDPATH) "$(JTREG)") \ $(JTREG_BASIC_OPTIONS) \ - -r:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)")/JTreport \ - -w:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)")/JTwork \ + -r:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/JTreport") \ + -w:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/JTwork") \ -jdk:$(shell $(GETMIXEDPATH) "$(PRODUCT_HOME)") \ - -exclude:$(shell $(GETMIXEDPATH) "$(EXCLUDELIST)") \ + $(JTREG_EXCLUSIONS) \ $(JTREG_TEST_OPTIONS) \ - $(TESTDIRS) \ - ) ; $(BUNDLE_UP_AND_EXIT) \ + $(TEST_SELECTION) \ + ) ; \ + $(BUNDLE_UP_AND_EXIT) \ ) 2>&1 | $(TEE) $(ABS_TEST_OUTPUT_DIR)/output.txt ; $(TESTEXIT) -# Rule that may change execute permissions on shared library files. -# Files in repositories should never have execute permissions, but there -# are some tests that have pre-built shared libraries, and these windows -# dll files must have execute permission. Adding execute permission -# may happen automatically on windows when using certain versions of mercurial -# but it cannot be guaranteed. And blindly adding execute permission might -# be seen as a mercurial 'change', so we avoid adding execute permission to -# repository files. But testing from a plain source tree needs the chmod a+rx. -# Used on select directories and applying the chmod to all shared libraries -# not just dll files. On windows, this may not work with MKS if the files -# were installed with CYGWIN unzip or untar (MKS chmod may not do anything). -# And with CYGWIN and sshd service, you may need CYGWIN=ntsec for this to work. -# -shared_library_permissions: $(SHARED_LIBRARY_DIR) - if [ ! -d $(TEST_ROOT)/../.hg ] ; then \ - $(FIND) $< \( -name \*.dll -o -name \*.DLL -o -name \*.so \) \ - -exec $(CHMOD) a+rx {} \; ; \ - fi - -PHONY_LIST += jtreg_tests shared_library_permissions +PHONY_LIST += jtreg_tests ################################################################
--- a/test/ProblemList.txt Thu Nov 14 23:32:31 2013 -0800 +++ b/test/ProblemList.txt Fri Nov 15 07:14:23 2013 -0800 @@ -126,15 +126,6 @@ # 7067973 java/lang/management/MemoryMXBean/CollectionUsageThreshold.java generic-all -# 7196801 -java/lang/management/MemoryMXBean/LowMemoryTest2.sh generic-all - -# 8021230 -java/lang/ThreadLocal/ThreadLocalSupplierTest.java generic-all - -# 8026502 -java/lang/invoke/MethodHandleConstants.java generic-all - ############################################################################ # jdk_management @@ -142,13 +133,13 @@ # 8010897 sun/management/HotspotRuntimeMBean/GetSafepointSyncTime.java macosx-all +# 8028150 +sun/management/jmxremote/bootstrap/RmiSslBootstrapTest.sh windows-all + ############################################################################ # jdk_jmx -# 6959636 -javax/management/loading/LibraryLoader/LibraryLoaderTest.java windows-all - ############################################################################ # jdk_math @@ -163,13 +154,16 @@ # 7027502 demo/jvmti/hprof/MonitorTest.java generic-all -# 8024423 - JVMTI: GetLoadedClasses doesn't enumerate anonymous classes +# 8024423 - JVMTI: GetLoadedClasses doesn't enumerate anonymous classes demo/jvmti/hprof/HeapAllTest.java generic-all demo/jvmti/hprof/HeapBinaryFormatTest.java generic-all demo/jvmti/hprof/HeapDumpTest.java generic-all demo/jvmti/hprof/OptionsTest.java generic-all demo/jvmti/hprof/StackMapTableTest.java generic-all +# 8027973 +javax/xml/jaxp/transform/jdk8004476/XSLTExFuncTest.java windows-all + ############################################################################ # jdk_net @@ -201,9 +195,6 @@ # 7143960 java/net/DatagramSocket/SendDatagramToBadAddress.java macosx-all -# 8014719 -sun/net/www/http/HttpClient/ProxyTest.java generic-all - ############################################################################ # jdk_nio @@ -211,9 +202,6 @@ # 6963118 java/nio/channels/Selector/Wakeup.java windows-all -# 7052549 -java/nio/channels/FileChannel/ReleaseOnCloseDeadlock.java windows-all - # 7133499, 7133497 java/nio/channels/AsyncCloseAndInterrupt.java macosx-all java/nio/channels/AsynchronousFileChannel/Lock.java macosx-all @@ -225,6 +213,10 @@ # 7132677 java/nio/channels/Selector/OutOfBand.java macosx-all +# 7158947, Solaris 11 +java/nio/file/WatchService/Basic.java solaris-all +java/nio/file/WatchService/LotsOfEvents.java solaris-all + ############################################################################ # jdk_rmi @@ -260,10 +252,6 @@ sun/security/pkcs11/ec/ReadPKCS12.java solaris-all sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java solaris-all -# 8009438 -sun/security/pkcs11/Secmod/AddPrivateKey.java linux-all -sun/security/pkcs11/Secmod/TrustAnchors.java linux-all - # 7041639, Solaris DSA keypair generation bug java/security/KeyPairGenerator/SolarisShortDSA.java solaris-all sun/security/tools/keytool/standard.sh solaris-all @@ -333,7 +321,4 @@ # Filed 6772009 java/util/concurrent/locks/ReentrantLock/CancelledLockLoops.java generic-all -# 8026772: test/sun/util/resources/TimeZone/Bug6317929.java failing -sun/util/resources/TimeZone/Bug6317929.java generic-all - ############################################################################
--- a/test/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java Fri Nov 15 07:14:23 2013 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,7 +23,7 @@ /* * @test - * @bug 6578538 + * @bug 6578538 8027624 * @summary com.sun.crypto.provider.SunJCE instance leak using KRB5 and * LoginContext * @author Brad Wetmore @@ -89,10 +89,6 @@ } public static void main(String [] args) throws Exception { - // Eat up memory - Deque<byte []> dummyData = eatupMemory(); - assert (dummyData != null); - // Prepare the test final SecretKeyFactory skf = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1", "SunJCE"); @@ -107,6 +103,10 @@ } }; + // Eat up memory + Deque<byte []> dummyData = eatupMemory(); + assert (dummyData != null); + // Start testing iteration try { for (int i = 0; i <= 1000; i++) {
--- a/test/com/sun/jdi/BadHandshakeTest.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/com/sun/jdi/BadHandshakeTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -24,16 +24,12 @@ /* @test * @bug 6306165 6432567 * @summary Check that a bad handshake doesn't cause a debuggee to abort + * @library /lib/testlibrary * * @build VMConnection BadHandshakeTest Exit0 * @run main BadHandshakeTest * */ -import java.io.InputStream; -import java.io.IOException; -import java.io.File; -import java.io.BufferedInputStream; -import java.net.ServerSocket; import java.net.Socket; import java.net.InetAddress; import com.sun.jdi.Bootstrap; @@ -44,50 +40,13 @@ import java.util.Map; import java.util.List; import java.util.Iterator; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; + +import jdk.testlibrary.Utils; +import jdk.testlibrary.ProcessTools; public class BadHandshakeTest { - - static volatile boolean ready = false; - - /* - * Helper class to redirect process output/error - */ - static class IOHandler implements Runnable { - InputStream in; - - IOHandler(InputStream in) { - this.in = in; - } - - static void handle(InputStream in) { - IOHandler handler = new IOHandler(in); - Thread thr = new Thread(handler); - thr.setDaemon(true); - thr.start(); - } - - public void run() { - try { - byte b[] = new byte[100]; - for (;;) { - int n = in.read(b, 0, 100); - // The first thing that will get read is - // Listening for transport dt_socket at address: xxxxx - // which shows the debuggee is ready to accept connections. - ready = true; - if (n < 0) { - break; - } - String s = new String(b, 0, n, "UTF-8"); - System.out.print(s); - } - } catch (IOException ioe) { - ioe.printStackTrace(); - } - } - - } - /* * Find a connector by name */ @@ -106,22 +65,31 @@ /* * Launch a server debuggee with the given address */ - private static Process launch(String address, String class_name) throws IOException { - String exe = System.getProperty("java.home") - + File.separator + "bin" + File.separator + "java"; - String cmd = exe + " " + VMConnection.getDebuggeeVMOptions() + - " -agentlib:jdwp=transport=dt_socket" + - ",server=y" + ",suspend=y" + ",address=" + address + - " " + class_name; + private static Process launch(String address, String class_name) throws Exception { + String[] args = VMConnection.insertDebuggeeVMOptions(new String[] { + "-agentlib:jdwp=transport=dt_socket" + + ",server=y" + ",suspend=y" + ",address=" + address, + class_name + }); + + ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(args); - System.out.println("Starting: " + cmd); - - Process p = Runtime.getRuntime().exec(cmd); + final AtomicBoolean success = new AtomicBoolean(); + Process p = ProcessTools.startProcess( + class_name, + pb, + (line) -> { + // The first thing that will get read is + // Listening for transport dt_socket at address: xxxxx + // which shows the debuggee is ready to accept connections. + success.set(line.contains("Listening for transport dt_socket at address:")); + return true; + }, + 1500, + TimeUnit.MILLISECONDS + ); - IOHandler.handle(p.getInputStream()); - IOHandler.handle(p.getErrorStream()); - - return p; + return success.get() ? p : null; } /* @@ -131,23 +99,14 @@ * - verify we saw no error */ public static void main(String args[]) throws Exception { - // find a free port - ServerSocket ss = new ServerSocket(0); - int port = ss.getLocalPort(); - ss.close(); + int port = Utils.getFreePort(); String address = String.valueOf(port); // launch the server debuggee Process process = launch(address, "Exit0"); - - // wait for the debugge to be ready - while (!ready) { - try { - Thread.sleep(1000); - } catch(Exception ee) { - throw ee; - } + if (process == null) { + throw new RuntimeException("Unable to start debugee"); } // Connect to the debuggee and handshake with garbage
--- a/test/com/sun/jdi/BreakpointWithFullGC.sh Thu Nov 14 23:32:31 2013 -0800 +++ b/test/com/sun/jdi/BreakpointWithFullGC.sh Fri Nov 15 07:14:23 2013 -0800 @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2009, 2013 Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -62,6 +62,7 @@ System.out.println("top of loop"); // @1 breakpoint init(1000000); objList.clear(); + System.gc(); System.out.println("bottom of loop"); // @1 breakpoint } System.out.println("end of test"); // @1 breakpoint
--- a/test/com/sun/jdi/JdbMethodExitTest.sh Thu Nov 14 23:32:31 2013 -0800 +++ b/test/com/sun/jdi/JdbMethodExitTest.sh Fri Nov 15 07:14:23 2013 -0800 @@ -156,7 +156,7 @@ // a resume. $classname xx = new $classname(); - + System.out.println("threadid="+Thread.currentThread().getId()); bkpt(); // test all possible return types @@ -197,6 +197,8 @@ # test all possible return types runToBkpt @1 + debuggeeMatchRegexp "s/threadid=\(.*\)/\1/g" + threadid=$? cmd untrace cmd trace methods @@ -226,7 +228,7 @@ # trace exit of methods with all the return values # (but just check a couple of them) - cmd trace go exits + cmd trace go method exits $threadid cmd cont jdbFailIfNotPresent "instance of JdbMethodExitTest" jdbFailIfNotPresent "return value = 8" @@ -235,7 +237,7 @@ cmd step up - cmd trace methods + cmd trace methods $threadid cmd cont jdbFailIfNotPresent "Method entered:" cmd cont @@ -243,7 +245,9 @@ cmd step up - cmd trace go methods + cmd trace go methods $threadid + cmd cont + cmd cont cmd cont jdbFailIfNotPresent "Method entered: \"thread=main\", JdbMethodExitTest.traceMethods1" jdbFailIfNotPresent 'Method exited: .* JdbMethodExitTest.traceMethods1' @@ -251,14 +255,14 @@ cmd step up - cmd trace method exits + cmd trace method exits $threadid cmd cont jdbFailIfNotPresent "Method exited: return value = \"traceExits\"" cmd untrace cmd step up - cmd trace go method exits + cmd trace go method exits $threadid cmd cont jdbFailIfNotPresent 'Method exited: .* JdbMethodExitTest.traceExits1' cmd untrace @@ -266,7 +270,7 @@ cmd step # step into traceExit() - cmd trace method exit + cmd trace method exit $threadid cmd cont jdbFailIfNotPresent "Method exited: return value = \"traceExit\"" cmd untrace @@ -275,7 +279,7 @@ cmd step cmd step # skip over setting return value in caller :-( - cmd trace go method exit + cmd trace go method exit $threadid cmd cont jdbFailIfNotPresent 'Method exited: .*JdbMethodExitTest.traceExit1' cmd quit
--- a/test/com/sun/jdi/ShellScaffold.sh Thu Nov 14 23:32:31 2013 -0800 +++ b/test/com/sun/jdi/ShellScaffold.sh Fri Nov 15 07:14:23 2013 -0800 @@ -1004,6 +1004,50 @@ return $stat } +# $1 is the filename, $2 is the regexp to match and return, +# $3 is the number of lines to search (from the end) +matchRegexp() +{ + if [ -z "$3" ] ; then + theCmd=cat + else + theCmd="tail -$3" + fi + + case "$2" in + *\>*) + # Target string contains a '>' so we better not ignore it + res=`$theCmd $1 | sed -e "$2"` + ;; + *) + # Target string does not contain a '>'. + # NOTE: if $1 does not end with a new line, piping it to sed + # doesn't include the chars on the last line. Detect this + # case, and add a new line. + theFile="$1" + if [ `tail -1 "$theFile" | wc -l | sed -e 's@ @@g'` = 0 ] ; then + # The target file doesn't end with a new line so we have + # add one to a copy of the target file so the sed command + # below can filter that last line. + cp "$theFile" "$theFile.tmp" + theFile="$theFile.tmp" + echo >> "$theFile" + fi + + # See bug 6220903. Sometimes the jdb prompt chars ('> ') can + # get interleaved in the target file which can keep us from + # matching the target string. + res=`$theCmd "$theFile" | sed -e 's@> @@g' -e 's@>@@g' \ + | sed -e "$2"` + if [ "$theFile" != "$1" ]; then + # remove the copy of the target file + rm -f "$theFile" + fi + unset theFile + esac + return $res +} + # $1 is the filename, $2 is the string to look for, # $3 is the number of lines to search (from the end) failIfPresent() @@ -1058,6 +1102,14 @@ failIfPresent $debuggeeOutFile "$1" $2 } +# match and return the output from the regexp $1 in the debuggee output +# $2 is the number of lines to search (from the end) +debuggeeMatchRegexp() +{ + matchRegexp $debuggeeOutFile "$1" $2 +} + + # This should really be named 'done' instead of pass. pass() {
--- a/test/com/sun/net/httpserver/bugs/B6433018.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/com/sun/net/httpserver/bugs/B6433018.java Fri Nov 15 07:14:23 2013 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2013 Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -29,20 +29,19 @@ import com.sun.net.httpserver.*; -import java.util.*; import java.util.concurrent.*; import java.io.*; import java.net.*; public class B6433018 { - static String CRLF = "\r\n"; + static final String CRLF = "\r\n"; /* invalid HTTP POST with extra CRLF at end */ /* This checks that the server is able to handle it * and recognise the second request */ - static String cmd = + static final String cmd = "POST /test/item HTTP/1.1"+CRLF+ "Keep-Alive: 300"+CRLF+ "Proxy-Connection: keep-alive"+CRLF+ @@ -61,45 +60,47 @@ "Pragma: no-cache"+CRLF+ "Cache-Control: no-cache"+CRLF+CRLF; - public static void main (String[] args) throws Exception { - Handler handler = new Handler(); - InetSocketAddress addr = new InetSocketAddress (0); - HttpServer server = HttpServer.create (addr, 0); - HttpContext ctx = server.createContext ("/test", handler); - - server.start (); - - Socket s = new Socket ("localhost", server.getAddress().getPort()); + public static void main(String[] args) throws Exception { + CountDownLatch finished = new CountDownLatch(2); + Handler handler = new Handler(finished); + InetSocketAddress addr = new InetSocketAddress(0); + HttpServer server = HttpServer.create(addr, 0); + HttpContext ctx = server.createContext("/test", handler); - try { - OutputStream os = s.getOutputStream(); - os.write (cmd.getBytes()); - Thread.sleep (3000); - s.close(); - } catch (IOException e) { } - server.stop(2); - if (requests != 2) { - throw new RuntimeException ("did not receive the 2 requests"); + server.start(); + int port = server.getAddress().getPort(); + try (Socket s = new Socket("localhost", port); + OutputStream os = s.getOutputStream()) { + os.write(cmd.getBytes()); + finished.await(30, TimeUnit.SECONDS); + } finally { + server.stop(2); } - System.out.println ("OK"); + + if (finished.getCount() != 0) + throw new RuntimeException("did not receive the 2 requests"); + + System.out.println("OK"); } - public static boolean error = false; - static int requests = 0; + static class Handler implements HttpHandler { + private final CountDownLatch finished; + + Handler(CountDownLatch finished) { + this.finished = finished; + } - static class Handler implements HttpHandler { - int invocation = 1; - public void handle (HttpExchange t) - throws IOException - { - InputStream is = t.getRequestBody(); - Headers map = t.getRequestHeaders(); - Headers rmap = t.getResponseHeaders(); - while (is.read () != -1) ; - is.close(); - t.sendResponseHeaders (200, -1); + @Override + public void handle(HttpExchange t) throws IOException { + try (InputStream is = t.getRequestBody()) { + Headers map = t.getRequestHeaders(); + Headers rmap = t.getResponseHeaders(); + while (is.read() != -1); + } + t.sendResponseHeaders(200, -1); t.close(); - requests ++; + finished.countDown(); } } } +
--- a/test/java/io/File/MaxPathLength.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/io/File/MaxPathLength.java Fri Nov 15 07:14:23 2013 -0800 @@ -28,6 +28,8 @@ import java.io.*; import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.DirectoryNotEmptyException; public class MaxPathLength { private static String sep = File.separator; @@ -182,7 +184,18 @@ } finally { // Clean up for (int i = 0; i < max; i++) { - Files.deleteIfExists((new File(created[i])).toPath()); + Path p = (new File(created[i])).toPath(); + try { + Files.deleteIfExists(p); + // Test if the file is really deleted and wait for 1 second at most + for (int j = 0; j < 10 && Files.exists(p); j++) { + Thread.sleep(100); + } + } catch (DirectoryNotEmptyException ex) { + // Give up the clean-up, let jtreg handle it. + System.err.println("Dir, " + p + ", is not empty"); + break; + } } } }
--- a/test/java/lang/String/Split.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/lang/String/Split.java Fri Nov 15 07:14:23 2013 -0800 @@ -23,7 +23,7 @@ /** * @test - * @bug 6840246 + * @bug 6840246 6559590 * @summary test String.split() */ import java.util.Arrays; @@ -78,6 +78,7 @@ throw new RuntimeException("String.split failure 7"); } // Check the case for limit == 0, source = ""; + // split() now returns 0-length for empty source "" see #6559590 source = ""; String[] result = source.split("e", 0); if (result.length != 1)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/java/lang/Thread/ThreadStateController.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,340 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import java.util.concurrent.Phaser; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.locks.LockSupport; + +/** + * ThreadStateController allows a thread to request this thread to transition + * to a specific thread state. The {@linkplain #transitionTo request} is + * a blocking call that the calling thread will wait until this thread is about + * going to the new state. Only one request of state transition at a time + * is supported (the Phaser expects only parties of 2 to arrive and advance + * to next phase). + */ +public class ThreadStateController extends Thread { + // used to achieve waiting states + private final Object lock; + public ThreadStateController(String name, Object lock) { + super(name); + this.lock = lock; + } + + public void checkThreadState(Thread.State expected) { + // maximum number of retries when checking for thread state. + final int MAX_RETRY = 500; + + // wait for the thread to transition to the expected state. + // There is a small window between the thread checking the state + // and the thread actual entering that state. + Thread.State state; + int retryCount=0; + while ((state = getState()) != expected && retryCount < MAX_RETRY) { + pause(10); + retryCount++; + } + + if (state == null) { + throw new RuntimeException(getName() + " expected to have " + + expected + " but got null."); + } + + if (state != expected) { + throw new RuntimeException(String.format("%s expected in %s state but got %s " + + "(iterations %d interrupted %d)%n", + getName(), expected, state, iterations.get(), interrupted.get())); + } + } + + public static void pause(long ms) { + try { + Thread.sleep(ms); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + + // Phaser to sync between the main thread putting + // this thread into various states + private final Phaser phaser = new Phaser(2); + private volatile int newState = S_RUNNABLE; + private volatile int state = 0; + private boolean done = false; + + private static final int S_RUNNABLE = 1; + private static final int S_BLOCKED = 2; + private static final int S_WAITING = 3; + private static final int S_TIMED_WAITING = 4; + private static final int S_PARKED = 5; + private static final int S_TIMED_PARKED = 6; + private static final int S_SLEEPING = 7; + private static final int S_TERMINATE = 8; + + // for debugging + private AtomicInteger iterations = new AtomicInteger(); + private AtomicInteger interrupted = new AtomicInteger(); + public void run() { + // this thread has started + while (!done) { + // state transition + int nextState = state; + if (newState != state) { + nextState = newState; + iterations.set(0); + interrupted.set(0); + } + iterations.incrementAndGet(); + switch (nextState) { + case S_RUNNABLE: { + stateChange(nextState); + double sum = 0; + for (int i = 0; i < 1000; i++) { + double r = Math.random(); + double x = Math.pow(3, r); + sum += x - r; + } + break; + } + case S_BLOCKED: { + System.out.format("%d: %s is going to block (interations %d)%n", + getId(), getName(), iterations.get()); + stateChange(nextState); + // going to block on lock + synchronized (lock) { + System.out.format("%d: %s acquired the lock (interations %d)%n", + getId(), getName(), iterations.get()); + try { + // this thread has escaped the BLOCKED state + // release the lock and a short wait before continue + lock.wait(10); + } catch (InterruptedException e) { + // ignore + interrupted.incrementAndGet(); + } + } + break; + } + case S_WAITING: { + synchronized (lock) { + System.out.format("%d: %s is going to waiting (interations %d interrupted %d)%n", + getId(), getName(), iterations.get(), interrupted.get()); + try { + stateChange(nextState); + lock.wait(); + System.out.format("%d: %s wakes up from waiting (interations %d interrupted %d)%n", + getId(), getName(), iterations.get(), interrupted.get()); + } catch (InterruptedException e) { + // ignore + interrupted.incrementAndGet(); + } + } + break; + } + case S_TIMED_WAITING: { + synchronized (lock) { + System.out.format("%d: %s is going to timed waiting (interations %d interrupted %d)%n", + getId(), getName(), iterations.get(), interrupted.get()); + try { + stateChange(nextState); + lock.wait(10000); + System.out.format("%d: %s wakes up from timed waiting (interations %d interrupted %d)%n", + getId(), getName(), iterations.get(), interrupted.get()); + } catch (InterruptedException e) { + // ignore + interrupted.incrementAndGet(); + } + } + break; + } + case S_PARKED: { + System.out.format("%d: %s is going to park (interations %d)%n", + getId(), getName(), iterations.get()); + stateChange(nextState); + LockSupport.park(); + break; + } + case S_TIMED_PARKED: { + System.out.format("%d: %s is going to timed park (interations %d)%n", + getId(), getName(), iterations.get()); + long deadline = System.currentTimeMillis() + 10000*1000; + stateChange(nextState); + LockSupport.parkUntil(deadline); + break; + } + case S_SLEEPING: { + System.out.format("%d: %s is going to sleep (interations %d interrupted %d)%n", + getId(), getName(), iterations.get(), interrupted.get()); + try { + stateChange(nextState); + Thread.sleep(1000000); + } catch (InterruptedException e) { + // finish sleeping + interrupted.incrementAndGet(); + } + break; + } + case S_TERMINATE: { + done = true; + stateChange(nextState); + break; + } + default: + break; + } + } + } + + /** + * Change the state if it matches newState. + */ + private void stateChange(int nextState) { + // no state change + if (state == nextState) + return; + + // transition to the new state + if (newState == nextState) { + state = nextState; + phaser.arrive(); + System.out.format("%d: state change: %s %s%n", + getId(), toStateName(nextState), phaserToString(phaser)); + return; + } + + // should never reach here + throw new RuntimeException("current " + state + " next " + nextState + + " new state " + newState); + } + + /** + * Blocks until this thread transitions to the given state + */ + public void transitionTo(Thread.State tstate) throws InterruptedException { + switch (tstate) { + case RUNNABLE: + nextState(S_RUNNABLE); + break; + case BLOCKED: + nextState(S_BLOCKED); + break; + case WAITING: + nextState(S_WAITING); + break; + case TIMED_WAITING: + nextState(S_TIMED_WAITING); + break; + case TERMINATED: + nextState(S_TERMINATE); + break; + default: + break; + } + } + + /** + * Blocks until this thread transitions to sleeping + */ + public void transitionToSleep() throws InterruptedException { + nextState(S_SLEEPING); + } + + /** + * Blocks until this thread transitions to park or timed park + */ + public void transitionToPark(boolean timed) throws InterruptedException { + nextState(timed ? S_TIMED_PARKED : S_PARKED); + } + + private void nextState(int s) throws InterruptedException { + final long id = Thread.currentThread().getId(); + System.out.format("%d: wait until the thread transitions to %s %s%n", + id, toStateName(s), phaserToString(phaser)); + this.newState = s; + int phase = phaser.arrive(); + System.out.format("%d: awaiting party arrive %s %s%n", + id, toStateName(s), phaserToString(phaser)); + for (;;) { + // when this thread has changed its state before it waits or parks + // on a lock, a potential race might happen if it misses the notify + // or unpark. Hence await for the phaser to advance with timeout + // to cope with this race condition. + switch (state) { + case S_WAITING: + case S_TIMED_WAITING: + synchronized (lock) { + lock.notify(); + } + break; + case S_PARKED: + case S_TIMED_PARKED: + LockSupport.unpark(this); + break; + case S_SLEEPING: + this.interrupt(); + break; + case S_BLOCKED: + default: + break; + } + try { + phaser.awaitAdvanceInterruptibly(phase, 100, TimeUnit.MILLISECONDS); + System.out.format("%d: arrived at %s %s%n", + id, toStateName(s), phaserToString(phaser)); + return; + } catch (TimeoutException ex) { + // this thread hasn't arrived at this phase + System.out.format("%d: Timeout: %s%n", id, phaser); + } + } + } + private String phaserToString(Phaser p) { + return "[phase = " + p.getPhase() + + " parties = " + p.getRegisteredParties() + + " arrived = " + p.getArrivedParties() + "]"; + } + private String toStateName(int state) { + switch (state) { + case S_RUNNABLE: + return "runnable"; + case S_WAITING: + return "waiting"; + case S_TIMED_WAITING: + return "timed waiting"; + case S_PARKED: + return "parked"; + case S_TIMED_PARKED: + return "timed parked"; + case S_SLEEPING: + return "sleeping"; + case S_BLOCKED: + return "blocked"; + case S_TERMINATE: + return "terminated"; + default: + return "unknown " + state; + } + } +}
--- a/test/java/lang/Thread/ThreadStateTest.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/lang/Thread/ThreadStateTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -21,77 +21,64 @@ * questions. */ +import static java.lang.Thread.State.*; + /* * @test - * @bug 5014783 + * @bug 5014783 8022208 * @summary Basic unit test of thread states returned by * Thread.getState(). * * @author Mandy Chung - * - * @build ThreadStateTest + * @build ThreadStateTest ThreadStateController * @run main/othervm -Xmixed ThreadStateTest */ -import java.util.concurrent.locks.LockSupport; -import java.util.concurrent.Phaser; - public class ThreadStateTest { - // maximum number of retries when checking for thread state. - static final int MAX_RETRY = 500; - private static boolean testFailed = false; // used to achieve waiting states - static final Object globalLock = new Object(); + private static final Object globalLock = new Object(); - public static void main(String[] argv) { + public static void main(String[] argv) throws Exception { // Call Thread.getState to force all initialization done // before test verification begins. Thread.currentThread().getState(); - MyThread myThread = new MyThread("MyThread"); + ThreadStateController thread = new ThreadStateController("StateChanger", globalLock); + thread.setDaemon(true); // before myThread starts - checkThreadState(myThread, Thread.State.NEW); + thread.checkThreadState(NEW); - myThread.start(); - myThread.waitUntilStarted(); - checkThreadState(myThread, Thread.State.RUNNABLE); + thread.start(); + thread.transitionTo(RUNNABLE); + thread.checkThreadState(RUNNABLE); synchronized (globalLock) { - myThread.goBlocked(); - checkThreadState(myThread, Thread.State.BLOCKED); + thread.transitionTo(BLOCKED); + thread.checkThreadState(BLOCKED); } - myThread.goWaiting(); - checkThreadState(myThread, Thread.State.WAITING); - - myThread.goTimedWaiting(); - checkThreadState(myThread, Thread.State.TIMED_WAITING); + thread.transitionTo(WAITING); + thread.checkThreadState(WAITING); + thread.transitionTo(TIMED_WAITING); + thread.checkThreadState(TIMED_WAITING); - /* - *********** park and parkUntil seems not working - * ignore this case for now. - * Bug ID 5062095 - *********************************************** + thread.transitionToPark(true /* timed park*/); + thread.checkThreadState(TIMED_WAITING); - myThread.goParked(); - checkThreadState(myThread, Thread.State.WAITING); - - myThread.goTimedParked(); - checkThreadState(myThread, Thread.State.TIMED_WAITING); - */ + thread.transitionToPark(false /* indefinite park */); + thread.checkThreadState(WAITING); + thread.transitionToSleep(); + thread.checkThreadState(TIMED_WAITING); - myThread.goSleeping(); - checkThreadState(myThread, Thread.State.TIMED_WAITING); - - myThread.terminate(); - checkThreadState(myThread, Thread.State.TERMINATED); + thread.transitionTo(TERMINATED); + thread.checkThreadState(TERMINATED); try { - myThread.join(); + thread.join(); } catch (InterruptedException e) { e.printStackTrace(); System.out.println("Unexpected exception."); @@ -102,241 +89,4 @@ throw new RuntimeException("TEST FAILED."); System.out.println("Test passed."); } - - private static void checkThreadState(Thread t, Thread.State expected) { - // wait for the thread to transition to the expected state. - // There is a small window between the thread checking the state - // and the thread actual entering that state. - Thread.State state; - int retryCount=0; - while ((state = t.getState()) != expected && retryCount < MAX_RETRY) { - if (state != Thread.State.RUNNABLE) { - throw new RuntimeException("Thread not in expected state yet," + - " but it should at least be RUNNABLE"); - } - goSleep(10); - retryCount++; - } - - System.out.println("Checking thread state " + state); - if (state == null) { - throw new RuntimeException(t.getName() + " expected to have " + - expected + " but got null."); - } - - if (state != expected) { - throw new RuntimeException(t.getName() + " expected to have " + - expected + " but got " + state); - } - } - - private static void goSleep(long ms) { - try { - Thread.sleep(ms); - } catch (InterruptedException e) { - e.printStackTrace(); - System.out.println("Unexpected exception."); - testFailed = true; - } - } - - static class MyThread extends Thread { - // Phaser to sync between the main thread putting - // this thread into various states - private Phaser phaser = new Phaser(2); - - MyThread(String name) { - super(name); - } - - private final int RUNNABLE = 0; - private final int BLOCKED = 1; - private final int WAITING = 2; - private final int TIMED_WAITING = 3; - private final int PARKED = 4; - private final int TIMED_PARKED = 5; - private final int SLEEPING = 6; - private final int TERMINATE = 7; - - private volatile int state = RUNNABLE; - - private boolean done = false; - public void run() { - // Signal main thread to continue. - phaser.arriveAndAwaitAdvance(); - - while (!done) { - switch (state) { - case RUNNABLE: { - double sum = 0; - for (int i = 0; i < 1000; i++) { - double r = Math.random(); - double x = Math.pow(3, r); - sum += x - r; - } - break; - } - case BLOCKED: { - // signal main thread. - phaser.arrive(); - System.out.println(" myThread is going to block."); - synchronized (globalLock) { - // finish blocking - state = RUNNABLE; - } - break; - } - case WAITING: { - synchronized (globalLock) { - // signal main thread. - phaser.arrive(); - System.out.println(" myThread is going to wait."); - try { - globalLock.wait(); - } catch (InterruptedException e) { - // ignore - } - } - break; - } - case TIMED_WAITING: { - synchronized (globalLock) { - // signal main thread. - phaser.arrive(); - System.out.println(" myThread is going to timed wait."); - try { - globalLock.wait(10000); - } catch (InterruptedException e) { - // ignore - } - } - break; - } - case PARKED: { - // signal main thread. - phaser.arrive(); - System.out.println(" myThread is going to park."); - LockSupport.park(); - // give a chance for the main thread to block - goSleep(10); - break; - } - case TIMED_PARKED: { - // signal main thread. - phaser.arrive(); - System.out.println(" myThread is going to timed park."); - long deadline = System.currentTimeMillis() + 10000*1000; - LockSupport.parkUntil(deadline); - - // give a chance for the main thread to block - goSleep(10); - break; - } - case SLEEPING: { - // signal main thread. - phaser.arrive(); - System.out.println(" myThread is going to sleep."); - try { - Thread.sleep(1000000); - } catch (InterruptedException e) { - // finish sleeping - } - break; - } - case TERMINATE: { - done = true; - // signal main thread. - phaser.arrive(); - break; - } - default: - break; - } - } - } - - public void waitUntilStarted() { - // wait for MyThread. - phaser.arriveAndAwaitAdvance(); - } - - public void goBlocked() { - System.out.println("Waiting myThread to go blocked."); - setState(BLOCKED); - // wait for MyThread to get to a point just before being blocked - phaser.arriveAndAwaitAdvance(); - } - - public void goWaiting() { - System.out.println("Waiting myThread to go waiting."); - setState(WAITING); - // wait for MyThread to get to just before wait on object. - phaser.arriveAndAwaitAdvance(); - } - - public void goTimedWaiting() { - System.out.println("Waiting myThread to go timed waiting."); - setState(TIMED_WAITING); - // wait for MyThread to get to just before timed wait call. - phaser.arriveAndAwaitAdvance(); - } - - public void goParked() { - System.out.println("Waiting myThread to go parked."); - setState(PARKED); - // wait for MyThread to get to just before parked. - phaser.arriveAndAwaitAdvance(); - } - - public void goTimedParked() { - System.out.println("Waiting myThread to go timed parked."); - setState(TIMED_PARKED); - // wait for MyThread to get to just before timed park. - phaser.arriveAndAwaitAdvance(); - } - - public void goSleeping() { - System.out.println("Waiting myThread to go sleeping."); - setState(SLEEPING); - // wait for MyThread to get to just before sleeping - phaser.arriveAndAwaitAdvance(); - } - - public void terminate() { - System.out.println("Waiting myThread to terminate."); - setState(TERMINATE); - // wait for MyThread to get to just before terminate - phaser.arriveAndAwaitAdvance(); - } - - private void setState(int newState) { - switch (state) { - case BLOCKED: - while (state == BLOCKED) { - goSleep(10); - } - state = newState; - break; - case WAITING: - case TIMED_WAITING: - state = newState; - synchronized (globalLock) { - globalLock.notify(); - } - break; - case PARKED: - case TIMED_PARKED: - state = newState; - LockSupport.unpark(this); - break; - case SLEEPING: - state = newState; - this.interrupt(); - break; - default: - state = newState; - break; - } - } - } }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/java/lang/invoke/MethodHandles/TestCatchException.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. 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 + * @bug 8027823 + * @run junit test.java.lang.invoke.TestCatchException + */ +package test.java.lang.invoke; + +import java.lang.invoke.*; +import org.junit.*; +import static org.junit.Assert.*; + +public class TestCatchException { + final static MethodHandles.Lookup LOOKUP = MethodHandles.lookup(); + final static MethodType M_TYPE = MethodType.methodType(int.class, Object.class, Object.class, int.class, int.class, int.class, int.class, int.class, int.class, int.class); + + private static int noThrow(Object o1, Object o2, int i1, int i2, int i3, int i4, int i5, int i6, int i7) { + return 42; + } + + private static int throwEx(Object o1, Object o2, int i1, int i2, int i3, int i4, int i5, int i6, int i7) throws Exception { + throw new Exception(); + } + + private static int handler(Exception e) { + return 17; + } + + @Test + public void testNoThrowPath() throws Throwable { + MethodHandle target = LOOKUP.findStatic(TestCatchException.class, "noThrow", M_TYPE); + MethodHandle handler = LOOKUP.findStatic(TestCatchException.class, "handler", MethodType.methodType(int.class, Exception.class)); + + MethodHandle h = MethodHandles.catchException(target, Exception.class, handler); + + int x = (int)h.invokeExact(new Object(), new Object(), 1, 2, 3, 4, 5, 6, 7); + assertEquals(x, 42); + } + + @Test + public void testThrowPath() throws Throwable { + MethodHandle target = LOOKUP.findStatic(TestCatchException.class, "throwEx", M_TYPE); + MethodHandle handler = LOOKUP.findStatic(TestCatchException.class, "handler", MethodType.methodType(int.class, Exception.class)); + + MethodHandle h = MethodHandles.catchException(target, Exception.class, handler); + + int x = (int)h.invokeExact(new Object(), new Object(), 1, 2, 3, 4, 5, 6, 7); + assertEquals(x, 17); + } + + public static void main(String[] args) throws Throwable { + TestCatchException test = new TestCatchException(); + test.testNoThrowPath(); + test.testThrowPath(); + System.out.println("TEST PASSED"); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/java/lang/invoke/lambda/LambdaAsm.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,184 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8027232 + * @summary ensures that j.l.i.InvokerByteCodeGenerator and ASM visitMethodInsn + * generate bytecodes with correct constant pool references + * @compile -XDignore.symbol.file LambdaAsm.java LUtils.java + * @run main/othervm LambdaAsm + */ +import com.sun.tools.classfile.Attribute; +import com.sun.tools.classfile.ClassFile; +import com.sun.tools.classfile.Code_attribute; +import com.sun.tools.classfile.ConstantPool; +import com.sun.tools.classfile.ConstantPool.CPInfo; +import com.sun.tools.classfile.Instruction; +import com.sun.tools.classfile.Method; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.util.ArrayList; +import java.nio.file.DirectoryStream; +import java.nio.file.Path; +import jdk.internal.org.objectweb.asm.ClassWriter; +import jdk.internal.org.objectweb.asm.MethodVisitor; + +import static java.nio.file.Files.*; +import static jdk.internal.org.objectweb.asm.Opcodes.*; + +public class LambdaAsm { + + static final File TestFile = new File("A.java"); + + static void init() { + emitCode(); + LUtils.compile(TestFile.getName()); + LUtils.TestResult tr = LUtils.doExec(LUtils.JAVA_CMD.getAbsolutePath(), + "-Djdk.internal.lambda.dumpProxyClasses=.", + "-cp", ".", "A"); + if (tr.exitValue != 0) { + System.out.println("Error: " + tr.toString()); + throw new RuntimeException("could not create proxy classes"); + } + } + + static void emitCode() { + ArrayList<String> scratch = new ArrayList<>(); + scratch.add("import java.util.function.*;"); + scratch.add("class A {"); + scratch.add(" interface I {"); + scratch.add(" default Supplier<Integer> a() { return () -> 1; }"); + scratch.add(" default Supplier<Integer> b(int i) { return () -> i; }"); + scratch.add(" default Supplier<Integer> c(int i) { return () -> m(i); }"); + scratch.add(" int m(int i);"); + scratch.add(" static Integer d() { return 0; }"); + scratch.add(" }"); + scratch.add(" static class C implements I {"); + scratch.add(" public int m(int i) { return i;}"); + scratch.add(" }"); + scratch.add(" public static void main(String[] args) {"); + scratch.add(" I i = new C();"); + scratch.add(" i.a();"); + scratch.add(" i.b(1);"); + scratch.add(" i.c(1);"); + scratch.add(" I.d();"); + scratch.add(" }"); + scratch.add("}"); + LUtils.createFile(TestFile, scratch); + } + + static void checkMethod(String cname, String mname, ConstantPool cp, + Code_attribute code) throws ConstantPool.InvalidIndex { + for (Instruction i : code.getInstructions()) { + String iname = i.getMnemonic(); + if ("invokespecial".equals(iname) + || "invokestatic".equals(iname)) { + int idx = i.getByte(2); + System.out.println("Verifying " + cname + ":" + mname + + " instruction:" + iname + " index @" + idx); + CPInfo cpinfo = cp.get(idx); + if (cpinfo instanceof ConstantPool.CONSTANT_Methodref_info) { + throw new RuntimeException("unexpected CP type expected " + + "InterfaceMethodRef, got MethodRef, " + cname + + ", " + mname); + } + } + } + } + + static int checkMethod(ClassFile cf, String mthd) throws Exception { + if (cf.major_version < 52) { + throw new RuntimeException("unexpected class file version, in " + + cf.getName() + "expected 52, got " + cf.major_version); + } + int count = 0; + for (Method m : cf.methods) { + String mname = m.getName(cf.constant_pool); + if (mname.equals(mthd)) { + for (Attribute a : m.attributes) { + if ("Code".equals(a.getName(cf.constant_pool))) { + count++; + checkMethod(cf.getName(), mname, cf.constant_pool, + (Code_attribute) a); + } + } + } + } + return count; + } + + static void verifyInvokerBytecodeGenerator() throws Exception { + int count = 0; + int mcount = 0; + try (DirectoryStream<Path> ds = newDirectoryStream(new File(".").toPath(), + // filter in lambda proxy classes + "A$I$$Lambda$?.class")) { + for (Path p : ds) { + System.out.println(p.toFile()); + ClassFile cf = ClassFile.read(p.toFile()); + // Check those methods implementing Supplier.get + mcount += checkMethod(cf, "get"); + count++; + } + } + if (count < 3) { + throw new RuntimeException("unexpected number of files, " + + "expected atleast 3 files, but got only " + count); + } + if (mcount < 3) { + throw new RuntimeException("unexpected number of methods, " + + "expected atleast 3 methods, but got only " + mcount); + } + } + + static void verifyASM() throws Exception { + ClassWriter cw = new ClassWriter(0); + cw.visit(V1_8, ACC_PUBLIC, "X", null, "java/lang/Object", null); + MethodVisitor mv = cw.visitMethod(ACC_STATIC, "foo", + "()V", null, null); + mv.visitMaxs(2, 1); + mv.visitMethodInsn(INVOKESTATIC, + "java/util/function/Function.class", + "identity", "()Ljava/util/function/Function;", true); + mv.visitInsn(RETURN); + cw.visitEnd(); + byte[] carray = cw.toByteArray(); + // for debugging + // write((new File("X.class")).toPath(), carray, CREATE, TRUNCATE_EXISTING); + + // verify using javap/classfile reader + ClassFile cf = ClassFile.read(new ByteArrayInputStream(carray)); + int mcount = checkMethod(cf, "foo"); + if (mcount < 1) { + throw new RuntimeException("unexpected method count, expected 1" + + "but got " + mcount); + } + } + + public static void main(String... args) throws Exception { + init(); + verifyInvokerBytecodeGenerator(); + verifyASM(); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/java/lang/invoke/lambda/RepetitiveLambdaSerialization.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8027681 + * @summary Lambda serialization fails once reflection proxy generation kicks in + * @author Robert Field + * @run main/othervm RepetitiveLambdaSerialization + * @run main/othervm -Dsun.reflect.noInflation=true RepetitiveLambdaSerialization + */ + +import java.io.*; + +public class RepetitiveLambdaSerialization { + + static final int REPS = 20; + + public static void main(String[] args) throws Exception { + LSI ls = z -> "[" + z + "]"; + for (int i = 0; i < REPS; ++i) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + ObjectOutput out = new ObjectOutputStream(baos); + out.writeObject(ls); + out.flush(); + out.close(); + } + System.out.println("Passed."); + } +} + +interface LSI extends Serializable { + String convert(String x); +}
--- a/test/java/lang/management/RuntimeMXBean/UpTime.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/lang/management/RuntimeMXBean/UpTime.java Fri Nov 15 07:14:23 2013 -0800 @@ -33,30 +33,34 @@ public class UpTime { final static long DELAY = 5; // Seconds final static long TIMEOUT = 30; // Minutes - private static RuntimeMXBean metrics + final static long MULTIPLIER = 1000; // millisecond ticks + + private static final RuntimeMXBean metrics = ManagementFactory.getRuntimeMXBean(); public static void main(String argv[]) throws Exception { long jvmStartTime = metrics.getStartTime(); - long systemStartOuter = System.currentTimeMillis(); + // this will get an aproximate JVM uptime before starting this test + long jvmUptime = System.currentTimeMillis() - jvmStartTime; + long systemStartOuter = System_milliTime(); long metricsStart = metrics.getUptime(); - long systemStartInner = System.currentTimeMillis(); + long systemStartInner = System_milliTime(); // This JVM might have been running for some time if this test runs // in samevm mode. The sanity check should apply to the test uptime. - long testUptime = metricsStart - (systemStartOuter - jvmStartTime); + long testUptime = metricsStart - jvmUptime; // If uptime is more than 30 minutes then it looks like a bug in // the method - if (testUptime > TIMEOUT * 60 * 1000) + if (testUptime > TIMEOUT * 60 * MULTIPLIER) throw new RuntimeException("Uptime of the JVM is more than 30 " + "minutes (" - + (metricsStart / 60 / 1000) + + (metricsStart / 60 / MULTIPLIER) + " minutes)."); // Wait for DELAY seconds Object o = new Object(); - while (System.currentTimeMillis() < systemStartInner + DELAY * 1000) { + while (System_milliTime() < systemStartInner + DELAY * MULTIPLIER) { synchronized (o) { try { o.wait(DELAY * 1000); @@ -67,23 +71,27 @@ } } - long systemEndInner = System.currentTimeMillis(); + long systemEndInner = System_milliTime(); long metricsEnd = metrics.getUptime(); - long systemEndOuter = System.currentTimeMillis(); + long systemEndOuter = System_milliTime(); long systemDifferenceInner = systemEndInner - systemStartInner; long systemDifferenceOuter = systemEndOuter - systemStartOuter; long metricsDifference = metricsEnd - metricsStart; // Check the flow of time in RuntimeMXBean.getUptime(). See the - // picture below - if (metricsDifference < systemDifferenceInner) + // picture below. + // The measured times can be off by 1 due to conversions from + // nanoseconds to milliseconds, using different channels to read the + // HR timer and rounding error. Bigger difference will make the test + // fail. + if (metricsDifference - systemDifferenceInner < -1) throw new RuntimeException("Flow of the time in " + "RuntimeMXBean.getUptime() (" + metricsDifference + ") is slower than " + " in system (" + systemDifferenceInner + ")"); - if (metricsDifference > systemDifferenceOuter) + if (metricsDifference - systemDifferenceOuter > 1) throw new RuntimeException("Flow of the time in " + "RuntimeMXBean.getUptime() (" + metricsDifference + ") is faster than " @@ -92,6 +100,10 @@ System.out.println("Test passed."); } + + private static long System_milliTime() { + return System.nanoTime() / 1000000; // nanoseconds / milliseconds; + } } /*
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/java/lang/management/ThreadMXBean/ThreadMXBeanStateTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,230 @@ +/* + * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 4967283 5080203 8022208 + * @summary Basic unit test of thread states returned by + * ThreadMXBean.getThreadInfo.getThreadState(). + * It also tests lock information returned by ThreadInfo. + * + * @author Mandy Chung + * + * @library ../../Thread + * @build ThreadMXBeanStateTest ThreadStateController + * @run main ThreadMXBeanStateTest + */ + +import java.lang.management.ManagementFactory; +import java.lang.management.ThreadMXBean; +import java.lang.management.ThreadInfo; +import static java.lang.Thread.State.*; + +public class ThreadMXBeanStateTest { + private static final ThreadMXBean tm = ManagementFactory.getThreadMXBean(); + + static class Lock { + private String name; + Lock(String name) { + this.name = name; + } + public String toString() { + return name; + } + } + private static Lock globalLock = new Lock("my lock"); + + public static void main(String[] argv) throws Exception { + // Force thread state initialization now before the test + // verification begins. + Thread.currentThread().getState(); + ThreadStateController thread = new ThreadStateController("StateChanger", globalLock); + thread.setDaemon(true); + + // before myThread starts + thread.checkThreadState(NEW); + + thread.start(); + thread.transitionTo(RUNNABLE); + thread.checkThreadState(RUNNABLE); + checkLockInfo(thread, RUNNABLE, null, null); + + thread.suspend(); + ThreadStateController.pause(10); + thread.checkThreadState(RUNNABLE); + checkSuspendedThreadState(thread, RUNNABLE); + thread.resume(); + + synchronized (globalLock) { + thread.transitionTo(BLOCKED); + thread.checkThreadState(BLOCKED); + checkLockInfo(thread, BLOCKED, + globalLock, Thread.currentThread()); + } + + thread.transitionTo(WAITING); + thread.checkThreadState(WAITING); + checkLockInfo(thread, Thread.State.WAITING, + globalLock, null); + + thread.transitionTo(TIMED_WAITING); + thread.checkThreadState(TIMED_WAITING); + checkLockInfo(thread, TIMED_WAITING, + globalLock, null); + + + thread.transitionToPark(true /* timed park */); + thread.checkThreadState(TIMED_WAITING); + checkLockInfo(thread, TIMED_WAITING, null, null); + + thread.transitionToPark(false /* indefinite park */); + thread.checkThreadState(WAITING); + checkLockInfo(thread, WAITING, null, null); + + thread.transitionToSleep(); + thread.checkThreadState(TIMED_WAITING); + checkLockInfo(thread, TIMED_WAITING, null, null); + + thread.transitionTo(TERMINATED); + thread.checkThreadState(TERMINATED); + + try { + thread.join(); + } catch (InterruptedException e) { + e.printStackTrace(); + System.out.println("TEST FAILED: Unexpected exception."); + throw new RuntimeException(e); + } + System.out.println("Test passed."); + } + + private static void checkSuspendedThreadState(ThreadStateController t, Thread.State state) { + ThreadInfo info = getThreadInfo(t, state); + if (info == null) { + throw new RuntimeException(t.getName() + + " expected to have ThreadInfo " + + " but got null."); + } + + if (info.getThreadState() != state) { + throw new RuntimeException(t.getName() + " expected to be in " + + state + " state but got " + info.getThreadState()); + } + + if (!info.isSuspended()) { + throw new RuntimeException(t.getName() + " expected to be suspended " + + " but isSuspended() returns " + info.isSuspended()); + } + } + + private static String getLockName(Object lock) { + if (lock == null) return null; + + return lock.getClass().getName() + '@' + + Integer.toHexString(System.identityHashCode(lock)); + } + + // maximum number of retries when checking for thread state. + private static final int MAX_RETRY = 500; + private static ThreadInfo getThreadInfo(ThreadStateController t, Thread.State expected) { + // wait for the thread to transition to the expected state. + // There is a small window between the thread checking the state + // and the thread actual entering that state. + int retryCount=0; + ThreadInfo info = tm.getThreadInfo(t.getId()); + while (info.getThreadState() != expected && retryCount < MAX_RETRY) { + ThreadStateController.pause(10); + retryCount++; + info = tm.getThreadInfo(t.getId()); + } + return info; + } + + private static void checkLockInfo(ThreadStateController t, Thread.State state, + Object lock, Thread owner) { + ThreadInfo info = getThreadInfo(t, state); + if (info == null) { + throw new RuntimeException(t.getName() + + " expected to have ThreadInfo " + + " but got null."); + } + + if (info.getThreadState() != state) { + throw new RuntimeException(t.getName() + " expected to be in " + + state + " state but got " + info.getThreadState()); + } + + if (lock == null && info.getLockName() != null) { + throw new RuntimeException(t.getName() + + " expected not to be blocked on any lock" + + " but got " + info.getLockName()); + } + String expectedLockName = getLockName(lock); + if (lock != null && info.getLockName() == null) { + throw new RuntimeException(t.getName() + + " expected to be blocked on lock [" + expectedLockName + + "] but got null."); + } + + if (lock != null && !expectedLockName.equals(info.getLockName())) { + throw new RuntimeException(t.getName() + + " expected to be blocked on lock [" + expectedLockName + + "] but got [" + info.getLockName() + "]."); + } + + if (owner == null && info.getLockOwnerName() != null) { + throw new RuntimeException("Lock owner is expected " + + " to be null but got " + info.getLockOwnerName()); + } + + if (owner != null && info.getLockOwnerName() == null) { + throw new RuntimeException("Lock owner is expected to be " + + owner.getName() + + " but got null."); + } + if (owner != null && !info.getLockOwnerName().equals(owner.getName())) { + throw new RuntimeException("Lock owner is expected to be " + + owner.getName() + + " but got " + owner.getName()); + } + if (owner == null && info.getLockOwnerId() != -1) { + throw new RuntimeException("Lock owner is expected " + + " to be -1 but got " + info.getLockOwnerId()); + } + + if (owner != null && info.getLockOwnerId() <= 0) { + throw new RuntimeException("Lock owner is expected to be " + + owner.getName() + "(id = " + owner.getId() + + ") but got " + info.getLockOwnerId()); + } + if (owner != null && info.getLockOwnerId() != owner.getId()) { + throw new RuntimeException("Lock owner is expected to be " + + owner.getName() + "(id = " + owner.getId() + + ") but got " + info.getLockOwnerId()); + } + if (info.isSuspended()) { + throw new RuntimeException(t.getName() + + " isSuspended() returns " + info.isSuspended()); + } + } +}
--- a/test/java/lang/management/ThreadMXBean/ThreadStateTest.java Thu Nov 14 23:32:31 2013 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,424 +0,0 @@ -/* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -/* - * @test - * @bug 4967283 5080203 - * @summary Basic unit test of thread states returned by - * ThreadMXBean.getThreadInfo.getThreadState(). - * It also tests lock information returned by ThreadInfo. - * - * @author Mandy Chung - * - * @build ThreadExecutionSynchronizer Utils - * @run main ThreadStateTest - */ - -import java.lang.management.ManagementFactory; -import java.lang.management.ThreadMXBean; -import java.lang.management.ThreadInfo; - -import java.util.concurrent.locks.LockSupport; - -public class ThreadStateTest { - private static final ThreadMXBean tm = ManagementFactory.getThreadMXBean(); - - static class Lock { - private String name; - Lock(String name) { - this.name = name; - } - public String toString() { - return name; - } - } - private static Lock globalLock = new Lock("my lock"); - - public static void main(String[] argv) { - // Force thread state initialization now before the test - // verification begins. - Thread.currentThread().getState(); - - MyThread myThread = new MyThread("MyThread"); - - // before myThread starts - // Utils.checkThreadState(myThread, Thread.State.NEW); - - myThread.start(); - myThread.waitUntilStarted(); - Utils.checkThreadState(myThread, Thread.State.RUNNABLE); - checkLockInfo(myThread, Thread.State.RUNNABLE, null, null); - - myThread.suspend(); - Utils.goSleep(10); - checkSuspendedThreadState(myThread, Thread.State.RUNNABLE); - myThread.resume(); - - synchronized (globalLock) { - myThread.goBlocked(); - Utils.checkThreadState(myThread, Thread.State.BLOCKED); - checkLockInfo(myThread, Thread.State.BLOCKED, - globalLock, Thread.currentThread()); - } - - myThread.goWaiting(); - Utils.checkThreadState(myThread, Thread.State.WAITING); - checkLockInfo(myThread, Thread.State.WAITING, - globalLock, null); - - myThread.goTimedWaiting(); - Utils.checkThreadState(myThread, Thread.State.TIMED_WAITING); - checkLockInfo(myThread, Thread.State.TIMED_WAITING, - globalLock, null); - - - - /* - *********** parkUntil seems not working - * ignore this park case for now. - - Bug ID : 5062095 - *********************************************** - myThread.goParked(); - Utils.checkThreadState(myThread, Thread.State.WAITING); - checkLockInfo(myThread, Thread.State.WAITING, null, null); - - myThread.goTimedParked(); - Utils.checkThreadState(myThread, Thread.State.TIMED_WAITING); - checkLockInfo(myThread, Thread.State.TIMED_WAITING, null, null); - - */ - - myThread.goSleeping(); - Utils.checkThreadState(myThread, Thread.State.TIMED_WAITING); - checkLockInfo(myThread, Thread.State.TIMED_WAITING, null, null); - - - myThread.terminate(); - // Utils.checkThreadState(myThread, ThreadState.TERMINATED); - - try { - myThread.join(); - } catch (InterruptedException e) { - e.printStackTrace(); - System.out.println("TEST FAILED: Unexpected exception."); - throw new RuntimeException(e); - } - System.out.println("Test passed."); - } - - private static void checkSuspendedThreadState(Thread t, Thread.State state) { - ThreadInfo info = tm.getThreadInfo(t.getId()); - if (info == null) { - throw new RuntimeException(t.getName() + - " expected to have ThreadInfo " + - " but got null."); - } - - if (info.getThreadState() != state) { - throw new RuntimeException(t.getName() + " expected to be in " + - state + " state but got " + info.getThreadState()); - } - - if (!info.isSuspended()) { - throw new RuntimeException(t.getName() + " expected to be suspended " + - " but isSuspended() returns " + info.isSuspended()); - } - Utils.checkThreadState(t, state); - } - - private static String getLockName(Object lock) { - if (lock == null) return null; - - return lock.getClass().getName() + '@' + - Integer.toHexString(System.identityHashCode(lock)); - } - - private static void checkLockInfo(Thread t, Thread.State state, Object lock, Thread owner) { - ThreadInfo info = tm.getThreadInfo(t.getId()); - if (info == null) { - throw new RuntimeException(t.getName() + - " expected to have ThreadInfo " + - " but got null."); - } - - if (info.getThreadState() != state) { - throw new RuntimeException(t.getName() + " expected to be in " + - state + " state but got " + info.getThreadState()); - } - - if (lock == null && info.getLockName() != null) { - throw new RuntimeException(t.getName() + - " expected not to be blocked on any lock" + - " but got " + info.getLockName()); - } - String expectedLockName = getLockName(lock); - if (lock != null && info.getLockName() == null) { - throw new RuntimeException(t.getName() + - " expected to be blocked on lock [" + expectedLockName + - "] but got null."); - } - - if (lock != null && !expectedLockName.equals(info.getLockName())) { - throw new RuntimeException(t.getName() + - " expected to be blocked on lock [" + expectedLockName + - "] but got [" + info.getLockName() + "]."); - } - - if (owner == null && info.getLockOwnerName() != null) { - throw new RuntimeException("Lock owner is expected " + - " to be null but got " + info.getLockOwnerName()); - } - - if (owner != null && info.getLockOwnerName() == null) { - throw new RuntimeException("Lock owner is expected to be " + - owner.getName() + - " but got null."); - } - if (owner != null && !info.getLockOwnerName().equals(owner.getName())) { - throw new RuntimeException("Lock owner is expected to be " + - owner.getName() + - " but got " + owner.getName()); - } - if (owner == null && info.getLockOwnerId() != -1) { - throw new RuntimeException("Lock owner is expected " + - " to be -1 but got " + info.getLockOwnerId()); - } - - if (owner != null && info.getLockOwnerId() <= 0) { - throw new RuntimeException("Lock owner is expected to be " + - owner.getName() + "(id = " + owner.getId() + - ") but got " + info.getLockOwnerId()); - } - if (owner != null && info.getLockOwnerId() != owner.getId()) { - throw new RuntimeException("Lock owner is expected to be " + - owner.getName() + "(id = " + owner.getId() + - ") but got " + info.getLockOwnerId()); - } - if (info.isSuspended()) { - throw new RuntimeException(t.getName() + - " isSuspended() returns " + info.isSuspended()); - } - } - - static class MyThread extends Thread { - private ThreadExecutionSynchronizer thrsync = new ThreadExecutionSynchronizer(); - - MyThread(String name) { - super(name); - } - - private final int RUNNABLE = 0; - private final int BLOCKED = 1; - private final int WAITING = 2; - private final int TIMED_WAITING = 3; - private final int PARKED = 4; - private final int TIMED_PARKED = 5; - private final int SLEEPING = 6; - private final int TERMINATE = 7; - private int state = RUNNABLE; - - private boolean done = false; - public void run() { - // Signal main thread to continue. - thrsync.signal(); - while (!done) { - switch (state) { - case RUNNABLE: { - double sum = 0; - for (int i = 0; i < 1000; i++) { - double r = Math.random(); - double x = Math.pow(3, r); - sum += x - r; - } - break; - } - case BLOCKED: { - // signal main thread. - thrsync.signal(); - System.out.println(" myThread is going to block."); - synchronized (globalLock) { - // finish blocking - state = RUNNABLE; - } - break; - } - case WAITING: { - synchronized (globalLock) { - // signal main thread. - thrsync.signal(); - System.out.println(" myThread is going to wait."); - try { - globalLock.wait(); - } catch (InterruptedException e) { - // ignore - } - } - break; - } - case TIMED_WAITING: { - synchronized (globalLock) { - // signal main thread. - thrsync.signal(); - System.out.println(" myThread is going to timed wait."); - try { - globalLock.wait(10000); - } catch (InterruptedException e) { - // ignore - } - } - break; - } - case PARKED: { - // signal main thread. - thrsync.signal(); - System.out.println(" myThread is going to park."); - LockSupport.park(); - // give a chance for the main thread to block - System.out.println(" myThread is going to park."); - Utils.goSleep(10); - break; - } - case TIMED_PARKED: { - // signal main thread. - thrsync.signal(); - System.out.println(" myThread is going to timed park."); - long deadline = System.currentTimeMillis() + 10000*1000; - LockSupport.parkUntil(deadline); - - // give a chance for the main thread to block - Utils.goSleep(10); - break; - } - case SLEEPING: { - // signal main thread. - thrsync.signal(); - System.out.println(" myThread is going to sleep."); - try { - Thread.sleep(1000000); - } catch (InterruptedException e) { - // finish sleeping - interrupted(); - } - break; - } - case TERMINATE: { - done = true; - // signal main thread. - thrsync.signal(); - break; - } - default: - break; - } - } - } - public void waitUntilStarted() { - // wait for MyThread. - thrsync.waitForSignal(); - Utils.goSleep(10); - } - - public void goBlocked() { - System.out.println("Waiting myThread to go blocked."); - setState(BLOCKED); - // wait for MyThread to get blocked - thrsync.waitForSignal(); - Utils.goSleep(20); - } - - public void goWaiting() { - System.out.println("Waiting myThread to go waiting."); - setState(WAITING); - // wait for MyThread to wait on object. - thrsync.waitForSignal(); - Utils.goSleep(20); - } - public void goTimedWaiting() { - System.out.println("Waiting myThread to go timed waiting."); - setState(TIMED_WAITING); - // wait for MyThread timed wait call. - thrsync.waitForSignal(); - Utils.goSleep(20); - } - public void goParked() { - System.out.println("Waiting myThread to go parked."); - setState(PARKED); - // wait for MyThread state change to PARKED. - thrsync.waitForSignal(); - Utils.goSleep(20); - } - public void goTimedParked() { - System.out.println("Waiting myThread to go timed parked."); - setState(TIMED_PARKED); - // wait for MyThread. - thrsync.waitForSignal(); - Utils.goSleep(20); - } - - public void goSleeping() { - System.out.println("Waiting myThread to go sleeping."); - setState(SLEEPING); - // wait for MyThread. - thrsync.waitForSignal(); - Utils.goSleep(20); - } - public void terminate() { - System.out.println("Waiting myThread to terminate."); - setState(TERMINATE); - // wait for MyThread. - thrsync.waitForSignal(); - Utils.goSleep(20); - } - - private void setState(int newState) { - switch (state) { - case BLOCKED: - while (state == BLOCKED) { - Utils.goSleep(20); - } - state = newState; - break; - case WAITING: - case TIMED_WAITING: - state = newState; - synchronized (globalLock) { - globalLock.notify(); - } - break; - case PARKED: - case TIMED_PARKED: - state = newState; - LockSupport.unpark(this); - break; - case SLEEPING: - state = newState; - this.interrupt(); - break; - default: - state = newState; - break; - } - } - } -}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/java/lang/ref/FinalizeOverride.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,167 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.concurrent.atomic.AtomicInteger; + +/* @test + * @bug 8027351 + * @summary Basic test of the finalize method + */ + +public class FinalizeOverride { + // finalizedCount is incremented when the finalize method is invoked + private static AtomicInteger finalizedCount = new AtomicInteger(); + + // finalizedSum and privateFinalizedInvoke are used to verify + // the right overrided finalize method is invoked + private static AtomicInteger finalizedSum = new AtomicInteger(); + private static volatile boolean privateFinalizeInvoked = false; + + public static void main(String[] argvs) throws IOException { + patchPrivateFinalize(); + + test(new Base(10), 10); + test(new Subclass(20), 0); + test(new SubSubclass(30), 30); + test(new PublicFinalize(40), 40*100+40); + test(new PrivateFinalize(50), 50); + test(new NoOverride(60), 60); + } + + static void test(Object o, int expected) { + int count = finalizedCount.get(); + int sum = finalizedSum.get(); + privateFinalizeInvoked = false; + + // force GC and finalization + o = null; + while (finalizedCount.get() != (count+1)) { + System.gc(); + System.runFinalization(); + } + + if (privateFinalizeInvoked) { + throw new RuntimeException("private finalize method invoked"); + } + if (finalizedCount.get() != (count+1)) { + throw new RuntimeException("Unexpected count=" + finalizedCount + + " expected=" + (count+1)); + } + if (finalizedSum.get() != (sum+expected)) { + throw new RuntimeException("Unexpected sum=" + finalizedSum + + " prev=" + sum + " value=" + expected); + } + } + + static void patchPrivateFinalize() throws IOException { + // patch the private f_nal_ze method name to "finalize" + String testClasses = System.getProperty("test.classes", "."); + Path p = Paths.get(testClasses, "FinalizeOverride$PrivateFinalize.class"); + byte[] bytes = Files.readAllBytes(p); + int len = "f_nal_ze".length(); + for (int i=0; i < bytes.length-len; i++) { + if (bytes[i] == 'f' && + bytes[i+1] == '_' && + bytes[i+2] == 'n' && + bytes[i+3] == 'a' && + bytes[i+4] == 'l' && + bytes[i+5] == '_' && + bytes[i+6] == 'z' && + bytes[i+7] == 'e') + { + // s%_%i% + bytes[i+1] = 'i'; + bytes[i+5] = 'i'; + break; + } + } + Files.write(p, bytes); + } + + static class Base { + protected int value; + Base(int v) { + this.value = v; + } + int called() { + finalizedSum.addAndGet(value); + return value; + } + protected void finalize() { + System.out.println("Base.finalize() sum += " + called()); + finalizedCount.incrementAndGet(); + } + } + static class PublicFinalize extends Base { + PublicFinalize(int v) { + super(v); + } + public void finalize() { + finalizedSum.addAndGet(value * 100); + System.out.println("PublicFinalize.finalize() sum += " + called() + + "+"+value+"*100"); + finalizedCount.incrementAndGet(); + } + } + static class Subclass extends Base { + Subclass(int v) { + super(v); + } + protected void finalize() { + // no value added to sum + System.out.println("Subclass.finalize() sum += 0"); + finalizedCount.incrementAndGet(); + } + } + static class SubSubclass extends Subclass { + SubSubclass(int v) { + super(v); + } + protected final void finalize() { + finalizedSum.addAndGet(value); + System.out.println("SubSubclass.finalize() sum +=" +value); + finalizedCount.incrementAndGet(); + } + } + static class PrivateFinalize extends Base { + PrivateFinalize(int v) { + super(v); + } + private void f_nal_ze() { + // finalization catches any exception + System.out.println("Error: private finalize invoked!!"); + privateFinalizeInvoked = true; + finalizedCount.incrementAndGet(); + } + } + static class NoOverride extends PrivateFinalize { + NoOverride(int v) { + super(v); + } + } +}
--- a/test/java/lang/reflect/Method/DefaultMethodModeling.java Thu Nov 14 23:32:31 2013 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,253 +0,0 @@ -/* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -/* - * @test - * @bug 8011590 - * @summary Check modeling of default methods - * @author Joseph D. Darcy - */ - -import java.util.Objects; -import java.lang.reflect.*; -import java.lang.annotation.*; - -import static java.lang.reflect.Modifier.*; - -public class DefaultMethodModeling { - public static void main(String... args) { - int failures = 0; - - Class<?>[] classes = {SuperC.class, SuperCchild.class, - SuperI.class, SuperIchild.class, - SuperIwithDefault.class, SuperIwithDefaultChild.class, - Base.class, Combo1.class, Combo2.class, - SonSuperIwithDefault.class, DaughterSuperIwithDefault.class, GrandchildSuperIwithDefault.class, D.class, - B.class, C.class, B1.class, D1.class - }; - - for(Class<?> clazz : classes) { - System.err.println(clazz.toString()); - for(Method m : clazz.getMethods()) { - if (m.getDeclaringClass() != java.lang.Object.class) - failures += testMethod(m); - } - } - - if (failures > 0) - throw new RuntimeException(); - } - - private static int testMethod(Method m) { - ExpectedModel em = Objects.requireNonNull(m.getAnnotation(ExpectedModel.class)); - boolean failed = false; - - if (m.getModifiers() != em.modifiers()) { - failed = true; - System.err.printf("Unexpected modifiers %d; expected %d%n", m.getModifiers(), em.modifiers()); - } - - if (m.isDefault() != em.isDefault()) { - failed = true; - System.err.printf("Unexpected isDefualt %b; expected b%n", m.isDefault(), em.isDefault()); - } - - if (!m.getDeclaringClass().equals(em.declaringClass())) { - failed = true; - System.err.printf("Unexpected isDefualt %s; expected %s%n", - m.getDeclaringClass().toString(), em.declaringClass().toString()); - } - - return (!failed) ? 0 :1; - } -} - -@Retention(RetentionPolicy.RUNTIME) -@interface ExpectedModel { - boolean isDefault() default false; - int modifiers() default PUBLIC; - Class<?> declaringClass(); -} - -abstract class SuperC { - @ExpectedModel(modifiers=PUBLIC|ABSTRACT, declaringClass=SuperC.class) - public abstract void foo(); - - @ExpectedModel(declaringClass=SuperC.class) - public void bar() { - ; - } -} - -class SuperCchild extends SuperC { - @ExpectedModel(declaringClass=SuperCchild.class) - @Override - public void foo() {;} -} - -// -=-=-=- - -interface SuperI { - @ExpectedModel(modifiers=PUBLIC|ABSTRACT, declaringClass=SuperI.class) - void foo(); - - @ExpectedModel(modifiers=PUBLIC|ABSTRACT, declaringClass=SuperI.class) - void bar(); -} - -class SuperIchild implements SuperI { - @ExpectedModel(declaringClass=SuperIchild.class) - public void foo() {;} - - @ExpectedModel(declaringClass=SuperIchild.class) - public void bar() {;} -} - -// -=-=-=- - -interface SuperIwithDefault { - @ExpectedModel(modifiers=PUBLIC|ABSTRACT, declaringClass=SuperIwithDefault.class) - void foo(); - - @ExpectedModel(isDefault=true, declaringClass=SuperIwithDefault.class) - default void bar() { - ; - } -} - -class SuperIwithDefaultChild implements SuperIwithDefault { - @ExpectedModel(declaringClass=SuperIwithDefaultChild.class) - @Override - public void foo() {;} -} - -// -=-=-=- - -abstract class Base { - @ExpectedModel(modifiers=PUBLIC|ABSTRACT, declaringClass=Base.class) - abstract public void baz(); - - @ExpectedModel(declaringClass=Base.class) - public void quux() {;} -} - -abstract class Combo1 extends Base implements SuperI { - @ExpectedModel(declaringClass=Combo1.class) - public void wombat() {} -} - -abstract class Combo2 extends Base implements SuperIwithDefault { - @ExpectedModel(declaringClass=Combo2.class) - public void wombat() {} -} - -// -=-=-=- - -interface SonSuperIwithDefault extends SuperIwithDefault { - @ExpectedModel(modifiers=PUBLIC|ABSTRACT, declaringClass=SonSuperIwithDefault.class) - void baz(); - - @ExpectedModel(isDefault=true, declaringClass=SonSuperIwithDefault.class) - default void bazD() {;} -} - -interface DaughterSuperIwithDefault extends SuperIwithDefault { - @ExpectedModel(modifiers=PUBLIC|ABSTRACT, declaringClass=DaughterSuperIwithDefault.class) - void quux(); - - @ExpectedModel(isDefault=true, declaringClass=DaughterSuperIwithDefault.class) - default void quuxD() {;} -} - -interface GrandchildSuperIwithDefault extends SonSuperIwithDefault, DaughterSuperIwithDefault { - @ExpectedModel(modifiers=PUBLIC|ABSTRACT, declaringClass=GrandchildSuperIwithDefault.class) - void wombat(); - - @ExpectedModel(isDefault=true, declaringClass=GrandchildSuperIwithDefault.class) - default void wombatD() {;} - -} - -class D implements GrandchildSuperIwithDefault { - @ExpectedModel(declaringClass=D.class) - public void wombat(){} - - @ExpectedModel(declaringClass=D.class) - public void baz(){} - - @ExpectedModel(declaringClass=D.class) - public void foo(){} - - @ExpectedModel(declaringClass=D.class) - public void quux(){} -} - -class D1 implements SonSuperIwithDefault, DaughterSuperIwithDefault { - @ExpectedModel(declaringClass=D1.class) - public void foo(){} - - @ExpectedModel(declaringClass=D1.class) - public void baz(){} - - @ExpectedModel(declaringClass=D1.class) - public void quux(){} -} - -// -=-=-=- - -// What does re-abstraction look like? - -class A implements SuperIwithDefault { - @ExpectedModel(declaringClass=A.class) - @Override - public void foo(){;} -} - -abstract class B extends A { - @ExpectedModel(modifiers=PUBLIC|ABSTRACT, declaringClass=B.class) - @Override - public abstract void bar(); -} - -class C extends B implements SuperIwithDefault { - @ExpectedModel(declaringClass=C.class) - public void bar(){} -} - -abstract class A1 implements SonSuperIwithDefault { - @ExpectedModel(modifiers=PUBLIC|ABSTRACT, declaringClass=A1.class) - public abstract void baz(); - - @ExpectedModel(modifiers=PUBLIC|ABSTRACT, declaringClass=A1.class) - public abstract void foo(); -} - -class B1 extends A1 { - @ExpectedModel(declaringClass=B1.class) - @Override - public void foo(){;} - - @ExpectedModel(declaringClass=B1.class) - @Override - public void baz(){} -}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/java/lang/reflect/Method/defaultMethodModeling/DefaultMethodModeling.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,253 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8011590 + * @summary Check modeling of default methods + * @author Joseph D. Darcy + */ + +import java.util.Objects; +import java.lang.reflect.*; +import java.lang.annotation.*; + +import static java.lang.reflect.Modifier.*; + +public class DefaultMethodModeling { + public static void main(String... args) { + int failures = 0; + + Class<?>[] classes = {SuperC.class, SuperCchild.class, + SuperI.class, SuperIchild.class, + SuperIwithDefault.class, SuperIwithDefaultChild.class, + Base.class, Combo1.class, Combo2.class, + SonSuperIwithDefault.class, DaughterSuperIwithDefault.class, GrandchildSuperIwithDefault.class, D.class, + B.class, C.class, B1.class, D1.class + }; + + for(Class<?> clazz : classes) { + System.err.println(clazz.toString()); + for(Method m : clazz.getMethods()) { + if (m.getDeclaringClass() != java.lang.Object.class) + failures += testMethod(m); + } + } + + if (failures > 0) + throw new RuntimeException(); + } + + private static int testMethod(Method m) { + ExpectedModel em = Objects.requireNonNull(m.getAnnotation(ExpectedModel.class)); + boolean failed = false; + + if (m.getModifiers() != em.modifiers()) { + failed = true; + System.err.printf("Unexpected modifiers %d; expected %d%n", m.getModifiers(), em.modifiers()); + } + + if (m.isDefault() != em.isDefault()) { + failed = true; + System.err.printf("Unexpected isDefualt %b; expected b%n", m.isDefault(), em.isDefault()); + } + + if (!m.getDeclaringClass().equals(em.declaringClass())) { + failed = true; + System.err.printf("Unexpected isDefualt %s; expected %s%n", + m.getDeclaringClass().toString(), em.declaringClass().toString()); + } + + return (!failed) ? 0 :1; + } +} + +@Retention(RetentionPolicy.RUNTIME) +@interface ExpectedModel { + boolean isDefault() default false; + int modifiers() default PUBLIC; + Class<?> declaringClass(); +} + +abstract class SuperC { + @ExpectedModel(modifiers=PUBLIC|ABSTRACT, declaringClass=SuperC.class) + public abstract void foo(); + + @ExpectedModel(declaringClass=SuperC.class) + public void bar() { + ; + } +} + +class SuperCchild extends SuperC { + @ExpectedModel(declaringClass=SuperCchild.class) + @Override + public void foo() {;} +} + +// -=-=-=- + +interface SuperI { + @ExpectedModel(modifiers=PUBLIC|ABSTRACT, declaringClass=SuperI.class) + void foo(); + + @ExpectedModel(modifiers=PUBLIC|ABSTRACT, declaringClass=SuperI.class) + void bar(); +} + +class SuperIchild implements SuperI { + @ExpectedModel(declaringClass=SuperIchild.class) + public void foo() {;} + + @ExpectedModel(declaringClass=SuperIchild.class) + public void bar() {;} +} + +// -=-=-=- + +interface SuperIwithDefault { + @ExpectedModel(modifiers=PUBLIC|ABSTRACT, declaringClass=SuperIwithDefault.class) + void foo(); + + @ExpectedModel(isDefault=true, declaringClass=SuperIwithDefault.class) + default void bar() { + ; + } +} + +class SuperIwithDefaultChild implements SuperIwithDefault { + @ExpectedModel(declaringClass=SuperIwithDefaultChild.class) + @Override + public void foo() {;} +} + +// -=-=-=- + +abstract class Base { + @ExpectedModel(modifiers=PUBLIC|ABSTRACT, declaringClass=Base.class) + abstract public void baz(); + + @ExpectedModel(declaringClass=Base.class) + public void quux() {;} +} + +abstract class Combo1 extends Base implements SuperI { + @ExpectedModel(declaringClass=Combo1.class) + public void wombat() {} +} + +abstract class Combo2 extends Base implements SuperIwithDefault { + @ExpectedModel(declaringClass=Combo2.class) + public void wombat() {} +} + +// -=-=-=- + +interface SonSuperIwithDefault extends SuperIwithDefault { + @ExpectedModel(modifiers=PUBLIC|ABSTRACT, declaringClass=SonSuperIwithDefault.class) + void baz(); + + @ExpectedModel(isDefault=true, declaringClass=SonSuperIwithDefault.class) + default void bazD() {;} +} + +interface DaughterSuperIwithDefault extends SuperIwithDefault { + @ExpectedModel(modifiers=PUBLIC|ABSTRACT, declaringClass=DaughterSuperIwithDefault.class) + void quux(); + + @ExpectedModel(isDefault=true, declaringClass=DaughterSuperIwithDefault.class) + default void quuxD() {;} +} + +interface GrandchildSuperIwithDefault extends SonSuperIwithDefault, DaughterSuperIwithDefault { + @ExpectedModel(modifiers=PUBLIC|ABSTRACT, declaringClass=GrandchildSuperIwithDefault.class) + void wombat(); + + @ExpectedModel(isDefault=true, declaringClass=GrandchildSuperIwithDefault.class) + default void wombatD() {;} + +} + +class D implements GrandchildSuperIwithDefault { + @ExpectedModel(declaringClass=D.class) + public void wombat(){} + + @ExpectedModel(declaringClass=D.class) + public void baz(){} + + @ExpectedModel(declaringClass=D.class) + public void foo(){} + + @ExpectedModel(declaringClass=D.class) + public void quux(){} +} + +class D1 implements SonSuperIwithDefault, DaughterSuperIwithDefault { + @ExpectedModel(declaringClass=D1.class) + public void foo(){} + + @ExpectedModel(declaringClass=D1.class) + public void baz(){} + + @ExpectedModel(declaringClass=D1.class) + public void quux(){} +} + +// -=-=-=- + +// What does re-abstraction look like? + +class A implements SuperIwithDefault { + @ExpectedModel(declaringClass=A.class) + @Override + public void foo(){;} +} + +abstract class B extends A { + @ExpectedModel(modifiers=PUBLIC|ABSTRACT, declaringClass=B.class) + @Override + public abstract void bar(); +} + +class C extends B implements SuperIwithDefault { + @ExpectedModel(declaringClass=C.class) + public void bar(){} +} + +abstract class A1 implements SonSuperIwithDefault { + @ExpectedModel(modifiers=PUBLIC|ABSTRACT, declaringClass=A1.class) + public abstract void baz(); + + @ExpectedModel(modifiers=PUBLIC|ABSTRACT, declaringClass=A1.class) + public abstract void foo(); +} + +class B1 extends A1 { + @ExpectedModel(declaringClass=B1.class) + @Override + public void foo(){;} + + @ExpectedModel(declaringClass=B1.class) + @Override + public void baz(){} +}
--- a/test/java/lang/reflect/Parameter/GetAnnotatedTypeTest.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/lang/reflect/Parameter/GetAnnotatedTypeTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -23,6 +23,7 @@ /* * @test + * @bug 8021398 * @compile -parameters GetAnnotatedTypeTest.java * @run main GetAnnotatedTypeTest * @summary javac should generate method parameters correctly.
--- a/test/java/math/BigInteger/ExtremeShiftingTests.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/math/BigInteger/ExtremeShiftingTests.java Fri Nov 15 07:14:23 2013 -0800 @@ -25,6 +25,7 @@ * @test * @bug 6371401 * @summary Tests of shiftLeft and shiftRight on Integer.MIN_VALUE + * @run main/othervm -Xmx512m ExtremeShiftingTests * @author Joseph D. Darcy */ import java.math.BigInteger;
--- a/test/java/net/MulticastSocket/TestInterfaces.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/net/MulticastSocket/TestInterfaces.java Fri Nov 15 07:14:23 2013 -0800 @@ -33,6 +33,8 @@ public class TestInterfaces { + static final boolean isWindows = System.getProperty("os.name").startsWith("Windows"); + public static void main(String args[]) throws Exception { int failures = 0; @@ -85,6 +87,10 @@ continue; } + // JDK-8022963, Skip (Windows) Teredo Tunneling seudo-Interface + if (isWindows && ni.getDisplayName().contains("Teredo")) + continue; + NetworkInterface curr = soc.getNetworkInterface(); if (!curr.equals(ni)) { System.err.println("MulticastSocket.getNetworkInterface returned: " + curr);
--- a/test/java/net/NetworkInterface/Equals.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/net/NetworkInterface/Equals.java Fri Nov 15 07:14:23 2013 -0800 @@ -38,6 +38,8 @@ public class Equals { + static final boolean isWindows = System.getProperty("os.name").startsWith("Windows"); + public static void main(String args[]) throws Exception { ByteArrayOutputStream baos = new ByteArrayOutputStream(); PrintStream bufferedOut = new PrintStream(baos); @@ -59,6 +61,11 @@ Enumeration<NetworkInterface> nifs2 = NetworkInterface.getNetworkInterfaces(); while (nifs2.hasMoreElements()) { NetworkInterface ni = nifs2.nextElement(); + + // JDK-8022963, Skip (Windows)Teredo Tunneling seudo-Interface + if (isWindows && ni.getDisplayName().contains("Teredo")) + continue; + NetworkInterface niOrig = nicMap.get(ni.getName()); int h = ni.hashCode();
--- a/test/java/net/URLClassLoader/closetest/CloseTest.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/net/URLClassLoader/closetest/CloseTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -25,7 +25,8 @@ * @test * @bug 4167874 * @library ../../../../com/sun/net/httpserver - * @build FileServerHandler + * @library /lib/testlibrary + * @build FileServerHandler jdk.testlibrary.FileUtils * @run shell build.sh * @run main/othervm CloseTest * @summary URL-downloaded jar files can consume all available file descriptors
--- a/test/java/net/URLClassLoader/closetest/Common.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/net/URLClassLoader/closetest/Common.java Fri Nov 15 07:14:23 2013 -0800 @@ -23,6 +23,9 @@ import java.io.*; import java.net.*; +import java.nio.file.Files; +import jdk.testlibrary.FileUtils; +import static java.nio.file.StandardCopyOption.*; public class Common { @@ -39,42 +42,16 @@ if (!src.isFile()) { throw new RuntimeException ("File not found: " + src.toString()); } - dst.delete(); - dst.createNewFile(); - FileInputStream i = new FileInputStream (src); - FileOutputStream o = new FileOutputStream (dst); - byte[] buf = new byte [1024]; - int count; - while ((count=i.read(buf)) >= 0) { - o.write (buf, 0, count); - } - i.close(); - o.close(); + Files.copy(src.toPath(), dst.toPath(), REPLACE_EXISTING); } catch (IOException e) { throw new RuntimeException (e); } } - static void rm_minus_rf (File path) { - if (!path.exists()) { + static void rm_minus_rf (File path) throws IOException, InterruptedException { + if (!path.exists()) return; - } - if (path.isFile()) { - if (!path.delete()) { - throw new RuntimeException ("Could not delete " + path); - } - } else if (path.isDirectory ()) { - String[] names = path.list(); - File[] files = path.listFiles(); - for (int i=0; i<files.length; i++) { - rm_minus_rf (new File(path, names[i])); - } - if (!path.delete()) { - throw new RuntimeException ("Could not delete " + path); - } - } else { - throw new RuntimeException ("Trying to delete something that isn't a file or a directory"); - } + FileUtils.deleteFileTreeWithRetry(path.toPath()); } static void copyDir (File src, File dst) {
--- a/test/java/net/URLClassLoader/closetest/GetResourceAsStream.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/net/URLClassLoader/closetest/GetResourceAsStream.java Fri Nov 15 07:14:23 2013 -0800 @@ -24,6 +24,8 @@ /** * @test * @bug 6899919 + * @library /lib/testlibrary + * @build jdk.testlibrary.FileUtils * @run shell build2.sh * @run main/othervm GetResourceAsStream */
--- a/test/java/net/URLPermission/URLPermissionTest.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/net/URLPermission/URLPermissionTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -26,7 +26,7 @@ /** * @test - * @bug 8010464 8027570 + * @bug 8010464 8027570 8027687 */ public class URLPermissionTest { @@ -186,6 +186,14 @@ imtest("http:*", "https://www.foo.com/a/b/c", false), imtest("http:*", "http://www.foo.com/a/b/c", true), imtest("http:*", "http://foo/bar", true), + imtest("http://WWW.foO.cOM/a/b/*", "http://wwW.foo.com/a/b/c", true), + imtest("http://wWw.fOo.cOm/a/b/*", "http://Www.foo.com/a/b/*", true), + imtest("http://www.FOO.com/", "http://www.foo.COM/", true), + imtest("http://66ww-w.F-O012O.com/", "http://66ww-w.f-o012o.COM/",true), + imtest("http://xn--ire-9la.com/", "http://xn--ire-9la.COM/", true), + imtest("http://x/", "http://X/", true), + imtest("http://x/", "http://x/", true), + imtest("http://X/", "http://X/", true), imtest("http://foo/bar", "https://foo/bar", false) }; @@ -194,9 +202,12 @@ static Test[] exceptionTests = { extest("http://1.2.3.4.5/a/b/c"), extest("http://www.*.com"), - //extest("http://www.foo.com:1-X"), extest("http://[foo.com]:99"), extest("http://[fec0::X]:99"), + extest("http:\\www.foo.com"), + extest("http://w_09ww.foo.com"), + extest("http://w&09ww.foo.com/p"), + extest("http://www+foo.com"), extest("http:") };
--- a/test/java/net/URLPermission/nstest/LookupTest.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/net/URLPermission/nstest/LookupTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -21,12 +21,6 @@ * questions. */ -/* @test - * @compile -XDignore.symbol.file=true SimpleNameService.java - * SimpleNameServiceDescriptor.java - * @run main/othervm/timeout=200 -Dsun.net.spi.nameservice.provider.1=simple,sun LookupTest - */ - /** * This is a simple smoke test of the HttpURLPermission mechanism, which * checks for either IOException (due to unknown host) or SecurityException @@ -35,6 +29,7 @@ import java.net.*; import java.io.*; +import jdk.testlibrary.Utils; public class LookupTest { @@ -48,12 +43,12 @@ InputStream is = urlc.getInputStream(); } catch (SecurityException e) { if (!throwsSecException) { - throw new RuntimeException ("(1) was not expecting " + e); + throw new RuntimeException ("(1) was not expecting ", e); } return; } catch (IOException ioe) { if (!throwsIOException) { - throw new RuntimeException ("(2) was not expecting " + ioe); + throw new RuntimeException ("(2) was not expecting ", ioe); } return; } @@ -64,31 +59,41 @@ } } - public static void main(String args[]) throws Exception { - SimpleNameService.put("allowedAndFound.com", "127.0.0.1"); - SimpleNameService.put("notAllowedButFound.com", "99.99.99.99"); - // name "notAllowedAndNotFound.com" is not in map - // name "allowedButNotfound.com" is not in map - startServer(); - - String policyFileName = "file://" + System.getProperty("test.src", ".") + "/policy"; - System.err.println ("policy = " + policyFileName); + static int port; + static ServerSocket serverSocket; - System.setProperty("java.security.policy", policyFileName); - - System.setSecurityManager(new SecurityManager()); - - test("http://allowedAndFound.com:50100/foo", false, false); + public static void main(String args[]) throws Exception { + String cmd = args[0]; + if (cmd.equals("-getport")) { + port = Utils.getFreePort(); + System.out.print(port); + } else if (cmd.equals("-runtest")) { + port = Integer.parseInt(args[1]); + SimpleNameService.put("allowedAndFound.com", "127.0.0.1"); + SimpleNameService.put("notAllowedButFound.com", "99.99.99.99"); + // name "notAllowedAndNotFound.com" is not in map + // name "allowedButNotfound.com" is not in map + try { + startServer(); - test("http://notAllowedButFound.com:50100/foo", true, false); + System.setSecurityManager(new SecurityManager()); + + test("http://allowedAndFound.com:" + port + "/foo", false, false); + + test("http://notAllowedButFound.com:" + port + "/foo", true, false); + + test("http://allowedButNotfound.com:" + port + "/foo", false, true); - test("http://allowedButNotfound.com:50100/foo", false, true); - - test("http://notAllowedAndNotFound.com:50100/foo", true, false); + test("http://notAllowedAndNotFound.com:" + port + "/foo", true, false); + } finally { + serverSocket.close(); + } + } else { + throw new RuntimeException("Bad invocation: " + cmd); + } } static Thread server; - static ServerSocket serverSocket; static class Server extends Thread { public void run() { @@ -112,11 +117,11 @@ static void startServer() { try { - serverSocket = new ServerSocket(50100); + serverSocket = new ServerSocket(port); server = new Server(); server.start(); } catch (Exception e) { - throw new RuntimeException ("Test failed to initialize"); + throw new RuntimeException ("Test failed to initialize", e); } } }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/java/net/URLPermission/nstest/lookup.sh Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,59 @@ +#!/bin/sh +# +# Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +# @test +# @library /lib/testlibrary +# @compile -XDignore.symbol.file=true SimpleNameService.java +# LookupTest.java SimpleNameServiceDescriptor.java +# @run shell/timeout=50 lookup.sh +# + +OS=`uname -s` +case ${OS} in +Windows_* | CYGWIN*) + PS=";" + FS="\\" + ;; +*) + PS=":" + FS="/" + ;; +esac + + +port=`${TESTJAVA}/bin/java -cp ${TESTCLASSES} LookupTest -getport` + +cat << POLICY > policy +grant { + permission java.net.URLPermission "http://allowedAndFound.com:${port}/-", "*:*"; + permission java.net.URLPermission "http://allowedButNotfound.com:${port}/-", "*:*"; + permission java.io.FilePermission "<<ALL FILES>>", "read,write,delete"; + permission java.util.PropertyPermission "java.io.tmpdir", "read"; + + // needed for HttpServer + permission "java.net.SocketPermission" "localhost:1024-", "resolve,accept"; +}; +POLICY + +${TESTJAVA}/bin/java -Djava.security.policy=file:./policy -Dsun.net.spi.nameservice.provider.1=simple,sun -cp ${TESTCLASSES}${PS}${TESTSRC} LookupTest -runtest ${port}
--- a/test/java/net/URLPermission/nstest/policy Thu Nov 14 23:32:31 2013 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -// -// Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// - -grant { - permission java.net.URLPermission "http://allowedAndFound.com:50100/-", "*:*"; - permission java.net.URLPermission "http://allowedButNotfound.com:50100/-", "*:*"; - - // needed for HttpServer - permission "java.net.SocketPermission" "localhost:1024-", "resolve,accept"; -}; - -// Normal permissions that aren't granted when run under jtreg - -grant codeBase "file:${{java.ext.dirs}}/*" { - permission java.security.AllPermission; -}; - -grant codeBase "file:${{java.home}}/jre/lib/rt.jar" { - permission java.security.AllPermission; -}; -
--- a/test/java/net/ipv6tests/BadIPv6Addresses.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/net/ipv6tests/BadIPv6Addresses.java Fri Nov 15 07:14:23 2013 -0800 @@ -23,7 +23,7 @@ /* * @test - * @bug 4742177 + * @bug 4742177 8019834 * @summary Re-test IPv6 (and specifically MulticastSocket) with latest Linux & USAGI code */ import java.net.*;
--- a/test/java/nio/file/Files/CheckPermissions.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/nio/file/Files/CheckPermissions.java Fri Nov 15 07:14:23 2013 -0800 @@ -22,7 +22,7 @@ */ /* @test - * @bug 6866804 7006126 + * @bug 6866804 7006126 8028270 * @summary Unit test for java.nio.file.Files * @library .. * @build CheckPermissions @@ -73,14 +73,9 @@ myChecks.set(new Checks()); } - static void assertCheckPermission(Class<? extends Permission> type, - String name) - { - for (Permission perm: myChecks.get().permissionsChecked()) { - if (type.isInstance(perm) && perm.getName().equals(name)) - return; - } - throw new RuntimeException(type.getName() + "(\"" + name + "\") not checked"); + static void assertCheckPermission(Permission expected) { + if (!myChecks.get().permissionsChecked().contains(expected)) + throw new RuntimeException(expected + " not checked"); } static void assertCheckPropertyAccess(String key) { @@ -191,22 +186,22 @@ prepare(); PosixFileAttributes attrs = view.readAttributes(); assertCheckRead(file); - assertCheckPermission(RuntimePermission.class, "accessUserInformation"); + assertCheckPermission(new RuntimePermission("accessUserInformation")); prepare(); view.setPermissions(attrs.permissions()); assertCheckWrite(file); - assertCheckPermission(RuntimePermission.class, "accessUserInformation"); + assertCheckPermission(new RuntimePermission("accessUserInformation")); prepare(); view.setOwner(attrs.owner()); assertCheckWrite(file); - assertCheckPermission(RuntimePermission.class, "accessUserInformation"); + assertCheckPermission(new RuntimePermission("accessUserInformation")); prepare(); view.setOwner(attrs.owner()); assertCheckWrite(file); - assertCheckPermission(RuntimePermission.class, "accessUserInformation"); + assertCheckPermission(new RuntimePermission("accessUserInformation")); } public static void main(String[] args) throws IOException { @@ -256,10 +251,14 @@ try { assertCheckRead(link); assertCheckWrite(target); - assertCheckPermission(LinkPermission.class, "symbolic"); + assertCheckPermission(new LinkPermission("symbolic")); } finally { delete(target); } + + prepare(); + readSymbolicLink(link); + assertCheckPermission(new FilePermission(link.toString(), "readlink")); } finally { delete(link); } @@ -295,7 +294,7 @@ createSymbolicLink(link, file); try { assertCheckWrite(link); - assertCheckPermission(LinkPermission.class, "symbolic"); + assertCheckPermission(new LinkPermission("symbolic")); } finally { delete(link); } @@ -309,7 +308,7 @@ createLink(link, file); try { assertCheckWrite(link); - assertCheckPermission(LinkPermission.class, "hard"); + assertCheckPermission(new LinkPermission("hard")); } finally { delete(link); } @@ -382,7 +381,7 @@ prepare(); getFileStore(file); assertCheckRead(file); - assertCheckPermission(RuntimePermission.class, "getFileStoreAttributes"); + assertCheckPermission(new RuntimePermission("getFileStoreAttributes")); // -- isSameFile -- @@ -620,12 +619,12 @@ prepare(); UserPrincipal owner = view.getOwner(); assertCheckRead(file); - assertCheckPermission(RuntimePermission.class, "accessUserInformation"); + assertCheckPermission(new RuntimePermission("accessUserInformation")); prepare(); view.setOwner(owner); assertCheckWrite(file); - assertCheckPermission(RuntimePermission.class, "accessUserInformation"); + assertCheckPermission(new RuntimePermission("accessUserInformation")); } else { System.out.println("FileOwnerAttributeView not tested"); @@ -643,32 +642,27 @@ prepare(); view.write("test", ByteBuffer.wrap(new byte[100])); assertCheckWrite(file); - assertCheckPermission(RuntimePermission.class, - "accessUserDefinedAttributes"); + assertCheckPermission(new RuntimePermission("accessUserDefinedAttributes")); prepare(); view.read("test", ByteBuffer.allocate(100)); assertCheckRead(file); - assertCheckPermission(RuntimePermission.class, - "accessUserDefinedAttributes"); + assertCheckPermission(new RuntimePermission("accessUserDefinedAttributes")); prepare(); view.size("test"); assertCheckRead(file); - assertCheckPermission(RuntimePermission.class, - "accessUserDefinedAttributes"); + assertCheckPermission(new RuntimePermission("accessUserDefinedAttributes")); prepare(); view.list(); assertCheckRead(file); - assertCheckPermission(RuntimePermission.class, - "accessUserDefinedAttributes"); + assertCheckPermission(new RuntimePermission("accessUserDefinedAttributes")); prepare(); view.delete("test"); assertCheckWrite(file); - assertCheckPermission(RuntimePermission.class, - "accessUserDefinedAttributes"); + assertCheckPermission(new RuntimePermission("accessUserDefinedAttributes")); } else { System.out.println("UserDefinedFileAttributeView not tested"); } @@ -684,11 +678,11 @@ prepare(); List<AclEntry> acl = view.getAcl(); assertCheckRead(file); - assertCheckPermission(RuntimePermission.class, "accessUserInformation"); + assertCheckPermission(new RuntimePermission("accessUserInformation")); prepare(); view.setAcl(acl); assertCheckWrite(file); - assertCheckPermission(RuntimePermission.class, "accessUserInformation"); + assertCheckPermission(new RuntimePermission("accessUserInformation")); } else { System.out.println("AclFileAttributeView not tested"); } @@ -702,15 +696,13 @@ prepare(); lookupService.lookupPrincipalByName(owner.getName()); - assertCheckPermission(RuntimePermission.class, - "lookupUserInformation"); + assertCheckPermission(new RuntimePermission("lookupUserInformation")); try { UserPrincipal group = readAttributes(file, PosixFileAttributes.class).group(); prepare(); lookupService.lookupPrincipalByGroupName(group.getName()); - assertCheckPermission(RuntimePermission.class, - "lookupUserInformation"); + assertCheckPermission(new RuntimePermission("lookupUserInformation")); } catch (UnsupportedOperationException ignore) { System.out.println("lookupPrincipalByGroupName not tested"); }
--- a/test/java/util/Base64/TestBase64.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/util/Base64/TestBase64.java Fri Nov 15 07:14:23 2013 -0800 @@ -23,7 +23,7 @@ /** * @test 4235519 8004212 8005394 8007298 8006295 8006315 8006530 8007379 8008925 - * 8014217 8025003 + * 8014217 8025003 8026330 * @summary tests java.util.Base64 */ @@ -47,12 +47,9 @@ numBytes = Integer.parseInt(args[1]); } - test(Base64.getEncoder(), Base64.getDecoder(), - numRuns, numBytes); - test(Base64.getUrlEncoder(), Base64.getUrlDecoder(), - numRuns, numBytes); - test(Base64.getMimeEncoder(), Base64.getMimeDecoder(), - numRuns, numBytes); + test(Base64.getEncoder(), Base64.getDecoder(), numRuns, numBytes); + test(Base64.getUrlEncoder(), Base64.getUrlDecoder(), numRuns, numBytes); + test(Base64.getMimeEncoder(), Base64.getMimeDecoder(), numRuns, numBytes); Random rnd = new java.util.Random(); byte[] nl_1 = new byte[] {'\n'}; @@ -142,165 +139,175 @@ enc.encode(new byte[0]); dec.decode(new byte[0]); - for (int i=0; i<numRuns; i++) { - for (int j=1; j<numBytes; j++) { - byte[] orig = new byte[j]; - rnd.nextBytes(orig); + for (boolean withoutPadding : new boolean[] { false, true}) { + if (withoutPadding) { + enc = enc.withoutPadding(); + } + for (int i=0; i<numRuns; i++) { + for (int j=1; j<numBytes; j++) { + byte[] orig = new byte[j]; + rnd.nextBytes(orig); - // --------testing encode/decode(byte[])-------- - byte[] encoded = enc.encode(orig); - byte[] decoded = dec.decode(encoded); - - checkEqual(orig, decoded, - "Base64 array encoding/decoding failed!"); + // --------testing encode/decode(byte[])-------- + byte[] encoded = enc.encode(orig); + byte[] decoded = dec.decode(encoded); - // compare to sun.misc.BASE64Encoder - byte[] encoded2 = sunmisc.encode(orig).getBytes("ASCII"); - checkEqual(normalize(encoded), - normalize(encoded2), - "Base64 enc.encode() does not match sun.misc.base64!"); + checkEqual(orig, decoded, + "Base64 array encoding/decoding failed!"); + if (withoutPadding) { + if (encoded[encoded.length - 1] == '=') + throw new RuntimeException( + "Base64 enc.encode().withoutPadding() has padding!"); + } + // compare to sun.misc.BASE64Encoder - // remove padding '=' to test non-padding decoding case - if (encoded[encoded.length -2] == '=') - encoded2 = Arrays.copyOf(encoded, encoded.length -2); - else if (encoded[encoded.length -1] == '=') - encoded2 = Arrays.copyOf(encoded, encoded.length -1); - else - encoded2 = null; - - // --------testing encodetoString(byte[])/decode(String)-------- - String str = enc.encodeToString(orig); - if (!Arrays.equals(str.getBytes("ASCII"), encoded)) { - throw new RuntimeException( - "Base64 encodingToString() failed!"); - } - byte[] buf = dec.decode(new String(encoded, "ASCII")); - checkEqual(buf, orig, "Base64 decoding(String) failed!"); + byte[] encoded2 = sunmisc.encode(orig).getBytes("ASCII"); + if (!withoutPadding) { // don't test for withoutPadding() + checkEqual(normalize(encoded), normalize(encoded2), + "Base64 enc.encode() does not match sun.misc.base64!"); + } + // remove padding '=' to test non-padding decoding case + if (encoded[encoded.length -2] == '=') + encoded2 = Arrays.copyOf(encoded, encoded.length -2); + else if (encoded[encoded.length -1] == '=') + encoded2 = Arrays.copyOf(encoded, encoded.length -1); + else + encoded2 = null; - if (encoded2 != null) { - buf = dec.decode(new String(encoded2, "ASCII")); + // --------testing encodetoString(byte[])/decode(String)-------- + String str = enc.encodeToString(orig); + if (!Arrays.equals(str.getBytes("ASCII"), encoded)) { + throw new RuntimeException( + "Base64 encodingToString() failed!"); + } + byte[] buf = dec.decode(new String(encoded, "ASCII")); checkEqual(buf, orig, "Base64 decoding(String) failed!"); - } - //-------- testing encode/decode(Buffer)-------- - testEncode(enc, ByteBuffer.wrap(orig), encoded); - ByteBuffer bin = ByteBuffer.allocateDirect(orig.length); - bin.put(orig).flip(); - testEncode(enc, bin, encoded); + if (encoded2 != null) { + buf = dec.decode(new String(encoded2, "ASCII")); + checkEqual(buf, orig, "Base64 decoding(String) failed!"); + } - testDecode(dec, ByteBuffer.wrap(encoded), orig); - bin = ByteBuffer.allocateDirect(encoded.length); - bin.put(encoded).flip(); - testDecode(dec, bin, orig); + //-------- testing encode/decode(Buffer)-------- + testEncode(enc, ByteBuffer.wrap(orig), encoded); + ByteBuffer bin = ByteBuffer.allocateDirect(orig.length); + bin.put(orig).flip(); + testEncode(enc, bin, encoded); - if (encoded2 != null) - testDecode(dec, ByteBuffer.wrap(encoded2), orig); + testDecode(dec, ByteBuffer.wrap(encoded), orig); + bin = ByteBuffer.allocateDirect(encoded.length); + bin.put(encoded).flip(); + testDecode(dec, bin, orig); - // -------- testing encode(Buffer, Buffer)-------- - testEncode(enc, encoded, - ByteBuffer.wrap(orig), - ByteBuffer.allocate(encoded.length + 10)); + if (encoded2 != null) + testDecode(dec, ByteBuffer.wrap(encoded2), orig); + + // -------- testing encode(Buffer, Buffer)-------- + testEncode(enc, encoded, + ByteBuffer.wrap(orig), + ByteBuffer.allocate(encoded.length + 10)); - testEncode(enc, encoded, - ByteBuffer.wrap(orig), - ByteBuffer.allocateDirect(encoded.length + 10)); + testEncode(enc, encoded, + ByteBuffer.wrap(orig), + ByteBuffer.allocateDirect(encoded.length + 10)); - // --------testing decode(Buffer, Buffer);-------- - testDecode(dec, orig, - ByteBuffer.wrap(encoded), - ByteBuffer.allocate(orig.length + 10)); + // --------testing decode(Buffer, Buffer);-------- + testDecode(dec, orig, + ByteBuffer.wrap(encoded), + ByteBuffer.allocate(orig.length + 10)); - testDecode(dec, orig, - ByteBuffer.wrap(encoded), - ByteBuffer.allocateDirect(orig.length + 10)); + testDecode(dec, orig, + ByteBuffer.wrap(encoded), + ByteBuffer.allocateDirect(orig.length + 10)); - // --------testing decode.wrap(input stream)-------- - // 1) random buf length - ByteArrayInputStream bais = new ByteArrayInputStream(encoded); - InputStream is = dec.wrap(bais); - buf = new byte[orig.length + 10]; - int len = orig.length; - int off = 0; - while (true) { - int n = rnd.nextInt(len); - if (n == 0) - n = 1; - n = is.read(buf, off, n); - if (n == -1) { - checkEqual(off, orig.length, - "Base64 stream decoding failed"); - break; + // --------testing decode.wrap(input stream)-------- + // 1) random buf length + ByteArrayInputStream bais = new ByteArrayInputStream(encoded); + InputStream is = dec.wrap(bais); + buf = new byte[orig.length + 10]; + int len = orig.length; + int off = 0; + while (true) { + int n = rnd.nextInt(len); + if (n == 0) + n = 1; + n = is.read(buf, off, n); + if (n == -1) { + checkEqual(off, orig.length, + "Base64 stream decoding failed"); + break; + } + off += n; + len -= n; + if (len == 0) + break; } - off += n; - len -= n; - if (len == 0) - break; - } - buf = Arrays.copyOf(buf, off); - checkEqual(buf, orig, "Base64 stream decoding failed!"); + buf = Arrays.copyOf(buf, off); + checkEqual(buf, orig, "Base64 stream decoding failed!"); - // 2) read one byte each - bais.reset(); - is = dec.wrap(bais); - buf = new byte[orig.length + 10]; - off = 0; - int b; - while ((b = is.read()) != -1) { - buf[off++] = (byte)b; - } - buf = Arrays.copyOf(buf, off); - checkEqual(buf, orig, "Base64 stream decoding failed!"); + // 2) read one byte each + bais.reset(); + is = dec.wrap(bais); + buf = new byte[orig.length + 10]; + off = 0; + int b; + while ((b = is.read()) != -1) { + buf[off++] = (byte)b; + } + buf = Arrays.copyOf(buf, off); + checkEqual(buf, orig, "Base64 stream decoding failed!"); - // --------testing encode.wrap(output stream)-------- - ByteArrayOutputStream baos = new ByteArrayOutputStream((orig.length + 2) / 3 * 4 + 10); - OutputStream os = enc.wrap(baos); - off = 0; - len = orig.length; - for (int k = 0; k < 5; k++) { - if (len == 0) - break; - int n = rnd.nextInt(len); - if (n == 0) - n = 1; - os.write(orig, off, n); - off += n; - len -= n; - } - if (len != 0) - os.write(orig, off, len); - os.close(); - buf = baos.toByteArray(); - checkEqual(buf, encoded, "Base64 stream encoding failed!"); + // --------testing encode.wrap(output stream)-------- + ByteArrayOutputStream baos = new ByteArrayOutputStream((orig.length + 2) / 3 * 4 + 10); + OutputStream os = enc.wrap(baos); + off = 0; + len = orig.length; + for (int k = 0; k < 5; k++) { + if (len == 0) + break; + int n = rnd.nextInt(len); + if (n == 0) + n = 1; + os.write(orig, off, n); + off += n; + len -= n; + } + if (len != 0) + os.write(orig, off, len); + os.close(); + buf = baos.toByteArray(); + checkEqual(buf, encoded, "Base64 stream encoding failed!"); - // 2) write one byte each - baos.reset(); - os = enc.wrap(baos); - off = 0; - while (off < orig.length) { - os.write(orig[off++]); - } - os.close(); - buf = baos.toByteArray(); - checkEqual(buf, encoded, "Base64 stream encoding failed!"); + // 2) write one byte each + baos.reset(); + os = enc.wrap(baos); + off = 0; + while (off < orig.length) { + os.write(orig[off++]); + } + os.close(); + buf = baos.toByteArray(); + checkEqual(buf, encoded, "Base64 stream encoding failed!"); - // --------testing encode(in, out); -> bigger buf-------- - buf = new byte[encoded.length + rnd.nextInt(100)]; - int ret = enc.encode(orig, buf); - checkEqual(ret, encoded.length, - "Base64 enc.encode(src, null) returns wrong size!"); - buf = Arrays.copyOf(buf, ret); - checkEqual(buf, encoded, - "Base64 enc.encode(src, dst) failed!"); + // --------testing encode(in, out); -> bigger buf-------- + buf = new byte[encoded.length + rnd.nextInt(100)]; + int ret = enc.encode(orig, buf); + checkEqual(ret, encoded.length, + "Base64 enc.encode(src, null) returns wrong size!"); + buf = Arrays.copyOf(buf, ret); + checkEqual(buf, encoded, + "Base64 enc.encode(src, dst) failed!"); - // --------testing decode(in, out); -> bigger buf-------- - buf = new byte[orig.length + rnd.nextInt(100)]; - ret = dec.decode(encoded, buf); - checkEqual(ret, orig.length, - "Base64 enc.encode(src, null) returns wrong size!"); - buf = Arrays.copyOf(buf, ret); - checkEqual(buf, orig, - "Base64 dec.decode(src, dst) failed!"); + // --------testing decode(in, out); -> bigger buf-------- + buf = new byte[orig.length + rnd.nextInt(100)]; + ret = dec.decode(encoded, buf); + checkEqual(ret, orig.length, + "Base64 enc.encode(src, null) returns wrong size!"); + buf = Arrays.copyOf(buf, ret); + checkEqual(buf, orig, + "Base64 dec.decode(src, dst) failed!"); + } } } }
--- a/test/java/util/Calendar/GenericTimeZoneNamesTest.sh Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/util/Calendar/GenericTimeZoneNamesTest.sh Fri Nov 15 07:14:23 2013 -0800 @@ -35,12 +35,12 @@ # TODO: The purpose of ja-JP is to make sure the fallback for generic # names works. Remove ja-JP when adding generic names to localized # resources. -if ! ${TESTJAVA}/bin/java -esa -cp "${TESTCLASSES}" GenericTimeZoneNamesTest en-US ja-JP; then +if ! ${TESTJAVA}/bin/java -esa ${TESTVMOPTS} -cp "${TESTCLASSES}" GenericTimeZoneNamesTest en-US ja-JP; then STATUS=1 fi echo "Locale providers: CLDR" -if ! ${TESTJAVA}/bin/java -esa -cp "${TESTCLASSES}" -Djava.locale.providers=CLDR GenericTimeZoneNamesTest en-US; then +if ! ${TESTJAVA}/bin/java -esa ${TESTVMOPTS} -cp "${TESTCLASSES}" -Djava.locale.providers=CLDR GenericTimeZoneNamesTest en-US; then STATUS=1 fi exit ${STATUS}
--- a/test/java/util/Calendar/NarrowNamesTest.sh Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/util/Calendar/NarrowNamesTest.sh Fri Nov 15 07:14:23 2013 -0800 @@ -34,7 +34,7 @@ for P in "JRE,SPI" "CLDR" do echo "Locale providers: $P" - if ! ${TESTJAVA}/bin/java -esa -cp "${TESTCLASSES}" -Djava.locale.providers="${P}" NarrowNamesTest; then + if ! ${TESTJAVA}/bin/java -esa ${TESTVMOPTS} -cp "${TESTCLASSES}" -Djava.locale.providers="${P}" NarrowNamesTest; then STATUS=1 fi done
--- a/test/java/util/ResourceBundle/ResourceBundleTest.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/util/ResourceBundle/ResourceBundleTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -22,7 +22,7 @@ */ /* @test - @bug 4049325 4073127 4083270 4106034 4108126 + @bug 4049325 4073127 4083270 4106034 4108126 8027930 @summary test Resource Bundle @build TestResource TestResource_de TestResource_fr TestResource_fr_CH @build TestResource_it FakeTestResource @@ -63,6 +63,7 @@ import java.text.*; import java.util.*; +import java.util.ResourceBundle.Control; import java.io.*; public class ResourceBundleTest extends RBTestFmwk { @@ -134,7 +135,8 @@ // load up the resource and check to make sure we got the right class // (we don't define be_BY or be, so we fall back on the root default) ResourceBundle bundle = ResourceBundle.getBundle("TestResource", - new Locale("be", "BY")); + new Locale("be", "BY"), + Control.getNoFallbackControl(Control.FORMAT_DEFAULT)); if (!bundle.getClass().getName().equals("TestResource")) errln("Expected TestResource, got " + bundle.getClass().getName()); @@ -268,7 +270,8 @@ // try to find TestResource_iw_IL, which doesn't exist. Should get root locale // as its locale test = ResourceBundle.getBundle("TestResource", - new Locale("iw", "IL", "")); + new Locale("iw", "IL", ""), + Control.getNoFallbackControl(Control.FORMAT_DEFAULT)); locale = test.getLocale(); if (!(locale.getLanguage().equals("")) || !(locale.getCountry().equals(""))) errln("Actual locale for TestResource_iw_IL should have been the root locale, got "
--- a/test/java/util/ResourceBundle/getBaseBundleName/TestGetBaseBundleName.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/util/ResourceBundle/getBaseBundleName/TestGetBaseBundleName.java Fri Nov 15 07:14:23 2013 -0800 @@ -29,7 +29,7 @@ /** * @test - * @bug 4814565 + * @bug 4814565 8027930 * @summary tests ResourceBundle.getBaseBundleName(); * @build TestGetBaseBundleName resources.ListBundle resources.ListBundle_fr * @run main TestGetBaseBundleName @@ -52,18 +52,20 @@ PROPERTY_BUNDLE_NAME, LIST_BUNDLE_NAME }) { - ResourceBundle bundle = ResourceBundle.getBundle(baseName); - System.out.println(getBaseName(bundle)); - if (!Locale.ROOT.equals(bundle.getLocale())) { - throw new RuntimeException("Unexpected locale: " - + bundle.getLocale()); - } - if (!baseName.equals(getBaseName(bundle))) { - throw new RuntimeException("Unexpected base name: " - + getBaseName(bundle)); - } - Locale.setDefault(Locale.FRENCH); try { + Locale.setDefault(Locale.US); + ResourceBundle bundle = ResourceBundle.getBundle(baseName); + System.out.println(getBaseName(bundle)); + if (!Locale.ROOT.equals(bundle.getLocale())) { + throw new RuntimeException("Unexpected locale: " + + bundle.getLocale()); + } + if (!baseName.equals(getBaseName(bundle))) { + throw new RuntimeException("Unexpected base name: " + + getBaseName(bundle)); + } + + Locale.setDefault(Locale.FRENCH); ResourceBundle bundle_fr = ResourceBundle.getBundle(baseName); if (!Locale.FRENCH.equals(bundle_fr.getLocale())) { throw new RuntimeException("Unexpected locale: "
--- a/test/java/util/concurrent/ThreadPoolExecutor/ThrowingTasks.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/util/concurrent/ThreadPoolExecutor/ThrowingTasks.java Fri Nov 15 07:14:23 2013 -0800 @@ -33,6 +33,7 @@ import java.util.*; import java.util.concurrent.*; import java.util.concurrent.atomic.*; +import java.util.concurrent.locks.ReentrantLock; public class ThrowingTasks { static final Random rnd = new Random(); @@ -156,6 +157,7 @@ } static class CheckingExecutor extends ThreadPoolExecutor { + private final ReentrantLock lock = new ReentrantLock(); CheckingExecutor() { super(10, 10, 1L, TimeUnit.HOURS, @@ -163,10 +165,20 @@ tf); } @Override protected void beforeExecute(Thread t, Runnable r) { - allStarted.countDown(); - if (allStarted.getCount() < getCorePoolSize()) + final boolean lessThanCorePoolSize; + // Add a lock to sync allStarted.countDown() and + // allStarted.getCount() < getCorePoolSize() + lock.lock(); + try { + allStarted.countDown(); + lessThanCorePoolSize = allStarted.getCount() < getCorePoolSize(); + } finally { + lock.unlock(); + } + if (lessThanCorePoolSize) { try { allContinue.await(); } catch (InterruptedException x) { unexpected(x); } + } beforeExecuteCount.getAndIncrement(); check(! isTerminated()); ((Flaky)r).beforeExecute.run();
--- a/test/java/util/logging/LogManager/RootLogger/setLevel/TestRootLoggerLevel.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/util/logging/LogManager/RootLogger/setLevel/TestRootLoggerLevel.java Fri Nov 15 07:14:23 2013 -0800 @@ -33,7 +33,7 @@ /** * @test - * @bug 8023163 + * @bug 8026499 * @summary checks that Logger.getLogger("").setLevel() is working correctly. * @build TestRootLoggerLevel * @run main/othervm -Dtest.security=on TestRootLoggerLevel
--- a/test/java/util/logging/TestAppletLoggerContext.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/util/logging/TestAppletLoggerContext.java Fri Nov 15 07:14:23 2013 -0800 @@ -113,16 +113,6 @@ @Override public Object getAppletContext() { return active ? exc : null; } - @Override - public Object get(Object o) { return exc.get(o); } - @Override - public void put(Object o, Object o1) { exc.put(o, o1); } - @Override - public void remove(Object o) { exc.remove(o); } - @Override - public boolean isDisposed() { return false; } - @Override - public boolean isMainAppContext() { return !active || exc == null; } } final static JavaAWTAccessStub javaAwtAccess = new JavaAWTAccessStub();
--- a/test/java/util/regex/RegExTest.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/util/regex/RegExTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -31,7 +31,8 @@ * 5013885 5003322 4988891 5098443 5110268 6173522 4829857 5027748 6376940 * 6358731 6178785 6284152 6231989 6497148 6486934 6233084 6504326 6635133 * 6350801 6676425 6878475 6919132 6931676 6948903 6990617 7014645 7039066 - * 7067045 7014640 7189363 8007395 8013252 8013254 8012646 8023647 + * 7067045 7014640 7189363 8007395 8013252 8013254 8012646 8023647 6559590 + * 8027645 */ import java.util.regex.*; @@ -146,6 +147,7 @@ groupCurlyNotFoundSuppTest(); groupCurlyBackoffTest(); patternAsPredicate(); + if (failure) { throw new RuntimeException("RegExTest failed, 1st failure: " + @@ -1774,6 +1776,7 @@ failCount++; } // Check the case for limit == 0, source = ""; + // split() now returns 0-length for empty source "" see #6559590 source = ""; result = source.split("e", 0); if (result.length != 1) @@ -1781,6 +1784,66 @@ if (!result[0].equals(source)) failCount++; + // Check both split() and splitAsStraem(), especially for zero-lenth + // input and zero-lenth match cases + String[][] input = new String[][] { + { " ", "Abc Efg Hij" }, // normal non-zero-match + { " ", " Abc Efg Hij" }, // leading empty str for non-zero-match + { " ", "Abc Efg Hij" }, // non-zero-match in the middle + { "(?=\\p{Lu})", "AbcEfgHij" }, // no leading empty str for zero-match + { "(?=\\p{Lu})", "AbcEfg" }, + { "(?=\\p{Lu})", "Abc" }, + { " ", "" }, // zero-length input + { ".*", "" }, + + // some tests from PatternStreamTest.java + { "4", "awgqwefg1fefw4vssv1vvv1" }, + { "\u00a3a", "afbfq\u00a3abgwgb\u00a3awngnwggw\u00a3a\u00a3ahjrnhneerh" }, + { "1", "awgqwefg1fefw4vssv1vvv1" }, + { "1", "a\u4ebafg1fefw\u4eba4\u9f9cvssv\u9f9c1v\u672c\u672cvv" }, + { "\u56da", "1\u56da23\u56da456\u56da7890" }, + { "\u56da", "1\u56da23\u9f9c\u672c\u672c\u56da456\u56da\u9f9c\u672c7890" }, + { "\u56da", "" }, + { "[ \t,:.]","This is,testing: with\tdifferent separators." }, //multiple septs + { "o", "boo:and:foo" }, + { "o", "booooo:and:fooooo" }, + { "o", "fooooo:" }, + }; + + String[][] expected = new String[][] { + { "Abc", "Efg", "Hij" }, + { "", "Abc", "Efg", "Hij" }, + { "Abc", "", "Efg", "Hij" }, + { "Abc", "Efg", "Hij" }, + { "Abc", "Efg" }, + { "Abc" }, + { "" }, + { "" }, + + { "awgqwefg1fefw", "vssv1vvv1" }, + { "afbfq", "bgwgb", "wngnwggw", "", "hjrnhneerh" }, + { "awgqwefg", "fefw4vssv", "vvv" }, + { "a\u4ebafg", "fefw\u4eba4\u9f9cvssv\u9f9c", "v\u672c\u672cvv" }, + { "1", "23", "456", "7890" }, + { "1", "23\u9f9c\u672c\u672c", "456", "\u9f9c\u672c7890" }, + { "" }, + { "This", "is", "testing", "", "with", "different", "separators" }, + { "b", "", ":and:f" }, + { "b", "", "", "", "", ":and:f" }, + { "f", "", "", "", "", ":" }, + }; + for (int i = 0; i < input.length; i++) { + pattern = Pattern.compile(input[i][0]); + if (!Arrays.equals(pattern.split(input[i][1]), expected[i])) { + failCount++; + } + if (input[i][1].length() > 0 && // splitAsStream() return empty resulting + // array for zero-length input for now + !Arrays.equals(pattern.splitAsStream(input[i][1]).toArray(), + expected[i])) { + failCount++; + } + } report("Split"); }
--- a/test/java/util/stream/test/org/openjdk/tests/java/lang/invoke/SerializedLambdaTest.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/util/stream/test/org/openjdk/tests/java/lang/invoke/SerializedLambdaTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -56,14 +56,18 @@ */ @Test public class SerializedLambdaTest { + public static final int REPS = 50; + @SuppressWarnings("unchecked") private<T> void assertSerial(T p, Consumer<T> asserter) throws IOException, ClassNotFoundException { asserter.accept(p); - byte[] bytes = serialize(p); - assertTrue(bytes.length > 0); + for (int i=0; i<REPS; i++) { + byte[] bytes = serialize(p); + assertTrue(bytes.length > 0); - asserter.accept((T) deserialize(bytes)); + asserter.accept((T) deserialize(bytes)); + } } private void assertNotSerial(Predicate<String> p, Consumer<Predicate<String>> asserter)
--- a/test/java/util/stream/test/org/openjdk/tests/java/util/stream/DistinctOpTest.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/java/util/stream/test/org/openjdk/tests/java/util/stream/DistinctOpTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -54,10 +54,14 @@ // These tests should short-circuit, otherwise will fail with a time-out // or an OOME - Integer one = Stream.iterate(1, i -> i + 1).unordered().parallel().distinct().findAny().get(); - assertEquals(one.intValue(), 1); + // Note that since the streams are unordered and any element is requested + // (a non-deterministic process) the only assertion that can be made is + // that an element should be found - Optional<Integer> oi = ThreadLocalRandom.current().ints().boxed().parallel().distinct().findAny(); + Optional<Integer> oi = Stream.iterate(1, i -> i + 1).unordered().parallel().distinct().findAny(); + assertTrue(oi.isPresent()); + + oi = ThreadLocalRandom.current().ints().boxed().parallel().distinct().findAny(); assertTrue(oi.isPresent()); }
--- a/test/javax/management/loading/LibraryLoader/LibraryLoaderTest.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/javax/management/loading/LibraryLoader/LibraryLoaderTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2013 Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -29,7 +29,7 @@ * @author Luis-Miguel Alventosa * @run clean LibraryLoaderTest * @run build LibraryLoaderTest - * @run main LibraryLoaderTest + * @run main/othervm LibraryLoaderTest */ import java.io.File; @@ -48,7 +48,7 @@ {"testDomain:type=MLet,index=1", "UseNativeLib1.html"} }; - public static void main (String args[]) { + public static void main(String args[]) throws Exception { String osName = System.getProperty("os.name"); System.out.println("os.name=" + osName); @@ -83,83 +83,73 @@ "file:/" + testSrc.replace(File.separatorChar, '/') + "/"; } - try { - // Create MBeanServer - // - MBeanServer server = MBeanServerFactory.newMBeanServer(); + // Create MBeanServer + // + MBeanServer server = MBeanServerFactory.newMBeanServer(); - // Create MLet instances and call getRandom on the loaded MBeans + // Create MLet instances and call getRandom on the loaded MBeans + // + for (int i = 0; i < mletInfo.length; i++) { + // Create ObjectName for MLet // - for (int i = 0; i < mletInfo.length; i++) { - // Create ObjectName for MLet - // - ObjectName mlet = new ObjectName(mletInfo[i][0]); - server.createMBean("javax.management.loading.MLet", mlet); - System.out.println("MLet = " + mlet); + ObjectName mlet = new ObjectName(mletInfo[i][0]); + server.createMBean("javax.management.loading.MLet", mlet); + System.out.println("MLet = " + mlet); - // Display old library directory and set it to test.classes - // - String libraryDirectory = - (String) server.getAttribute(mlet, "LibraryDirectory"); - System.out.println("Old Library Directory = " + - libraryDirectory); - Attribute attribute = - new Attribute("LibraryDirectory", workingDir); - server.setAttribute(mlet, attribute); - libraryDirectory = - (String) server.getAttribute(mlet, "LibraryDirectory"); - System.out.println("New Library Directory = " + - libraryDirectory); + // Display old library directory and set it to test.classes + // + String libraryDirectory = + (String) server.getAttribute(mlet, "LibraryDirectory"); + System.out.println("Old Library Directory = " + + libraryDirectory); + Attribute attribute = + new Attribute("LibraryDirectory", workingDir); + server.setAttribute(mlet, attribute); + libraryDirectory = + (String) server.getAttribute(mlet, "LibraryDirectory"); + System.out.println("New Library Directory = " + + libraryDirectory); - // Get MBeans from URL + // Get MBeans from URL + // + String mletURL = urlCodebase + mletInfo[i][1]; + System.out.println("MLet URL = " + mletURL); + Object[] params = new Object[] { mletURL }; + String[] signature = new String[] {"java.lang.String"}; + Object res[] = ((Set<?>) server.invoke(mlet, + "getMBeansFromURL", + params, + signature)).toArray(); + + // Iterate through all the loaded MBeans + // + for (int j = 0; j < res.length; j++) { + // Now ensure none of the returned objects is a Throwable // - String mletURL = urlCodebase + mletInfo[i][1]; - System.out.println("MLet URL = " + mletURL); - Object[] params = new Object[] { mletURL }; - String[] signature = new String[] {"java.lang.String"}; - Object res[] = ((Set) server.invoke(mlet, - "getMBeansFromURL", - params, - signature)).toArray(); + if (res[j] instanceof Throwable) { + ((Throwable) res[j]).printStackTrace(System.out); + throw new Exception("Failed to load the MBean #" + j + ,(Throwable)res[j]); + } - // Iterate through all the loaded MBeans + // On each of the loaded MBeans, try to invoke their + // native operation // - for (int j = 0; j < res.length; j++) { - // Now ensure none of the returned objects is a Throwable - // - if (res[j] instanceof Throwable) { - ((Throwable) res[j]).printStackTrace(System.out); - System.out.println("Failed to load the MBean #" + j + - ". The shown Throwable was caught."); - System.exit(1); - } - - // On each of the loaded MBeans, try to invoke their - // native operation - // - Object result = null; - try { - ObjectName mbean = - ((ObjectInstance) res[j]).getObjectName(); - result = server.getAttribute(mbean, "Random"); - System.out.println("MBean #" + j + " = " + mbean); - System.out.println("Random number = " + result); - } catch (ReflectionException e) { - e.getTargetException().printStackTrace(System.out); - System.out.println("A ReflectionException, wrapping " + - "the shown exception, occured when" + - " attempting to invoke a native " + - "library based operation."); - System.exit(1); - } + Object result = null; + try { + ObjectName mbean = + ((ObjectInstance) res[j]).getObjectName(); + result = server.getAttribute(mbean, "Random"); + System.out.println("MBean #" + j + " = " + mbean); + System.out.println("Random number = " + result); + } catch (ReflectionException e) { + e.getTargetException().printStackTrace(System.out); + throw new Exception ("A ReflectionException " + + "occured when attempting to invoke " + + "a native library based operation.", + e.getTargetException()); } } - } catch (Exception e) { - e.printStackTrace(System.out); - System.out.println(e.getMessage()); - System.out.println("Unexpected error"); - System.exit(1); } - System.out.println("Bye! Bye!"); } }
--- a/test/javax/management/monitor/ThreadPoolAccTest.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/javax/management/monitor/ThreadPoolAccTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2013 Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,8 +33,8 @@ */ import java.security.AccessController; -import java.security.Principal; import java.security.PrivilegedAction; +import java.util.Date; import java.util.Set; import javax.management.MBeanServer; import javax.management.MBeanServerFactory; @@ -49,8 +49,8 @@ public class ThreadPoolAccTest { // MBean class - public class ObservedObject implements ObservedObjectMBean { - public String principal; + public static class ObservedObject implements ObservedObjectMBean { + public volatile String principal; public Integer getInteger() { setPrincipal(); return 0; @@ -65,8 +65,8 @@ } private void setPrincipal() { Subject subject = Subject.getSubject(AccessController.getContext()); - Set principals = subject.getPrincipals(JMXPrincipal.class); - principal = ((Principal) principals.iterator().next()).getName(); + Set<JMXPrincipal> principals = subject.getPrincipals(JMXPrincipal.class); + principal = principals.iterator().next().getName(); } } @@ -77,10 +77,7 @@ public String getString(); } - /** - * Run test - */ - public int runTest() throws Exception { + public static void main (String args[]) throws Exception { ObjectName[] mbeanNames = new ObjectName[6]; ObservedObject[] monitored = new ObservedObject[6]; @@ -93,8 +90,6 @@ echo(">>> CREATE MBeanServer"); MBeanServer server = MBeanServerFactory.newMBeanServer(); - String domain = server.getDefaultDomain(); - for (int i = 0; i < 6; i++) { mbeanNames[i] = new ObjectName(":type=ObservedObject,instance=" + i); @@ -132,8 +127,8 @@ Subject subject = new Subject(); echo(">>> RUN Principal = " + principals[i / 3]); subject.getPrincipals().add(new JMXPrincipal(principals[i / 3])); - PrivilegedAction action = new PrivilegedAction() { - public Object run() { + PrivilegedAction<Void> action = new PrivilegedAction<Void>() { + public Void run() { m.start(); return null; } @@ -141,61 +136,39 @@ Subject.doAs(subject, action); } - // Wait for all tasks to be submitted - // - try { - Thread.sleep(2000); - } catch (InterruptedException e) { - echo("I fell asleep but someone woke me up"); - return 1; - } + while(!testPrincipals(monitored, monitorNames, monitor, principals)); - // Check if task principal is correct - // - for (int i = 0; i < 6; i++) { - echo(">>> Monitor = " + monitorNames[i]); - echo(">>> ObservedObject = " + - monitor[i].getObservedObject()); - echo(">>> ObservedAttribute = " + - monitor[i].getObservedAttribute()); - echo(">>> Principal = " + monitored[i].principal); - if (monitored[i].principal.equals(principals[i / 3])) { - echo("\tOK: Got Expected Principal"); - } else { - echo("\tKO: Got Unexpected Principal"); - return 1; - } - } } finally { for (int i = 0; i < 6; i++) if (monitor[i] != null) monitor[i].stop(); } - - return 0; } - /* - * Print message - */ + private static boolean testPrincipals(ObservedObject[] monitored, ObjectName[] monitorNames, + Monitor[] monitor, String[] principals) throws Exception { + for (int i = 0; i < 6; i++) { + String principal = monitored[i].principal; + String expected = principals[i / 3]; + if (principal == null) { + echo("Task not submitted " + new Date() + ". RETRY"); + return false; + } + echo(">>> Monitor = " + monitorNames[i]); + echo(">>> ObservedObject = " + monitor[i].getObservedObject()); + echo(">>> ObservedAttribute = " + monitor[i].getObservedAttribute()); + echo(">>> Principal = " + principal); + + if (expected.equals(principal)) { + echo("\tOK: Got Expected principal"); + } else { + throw new Exception("Unexpected principal. Got: " + principal + " Expected: " + expected); + } + } + return true; + } + private static void echo(String message) { System.out.println(message); } - - /* - * Standalone entry point. - * - * Run the test and report to stdout. - */ - public static void main (String args[]) throws Exception { - ThreadPoolAccTest test = new ThreadPoolAccTest(); - int error = test.runTest(); - if (error > 0) { - echo(">>> Unhappy Bye, Bye!"); - throw new IllegalStateException( - "Test FAILED: Monitor task ran on wrong security context!"); - } else { - echo(">>> Happy Bye, Bye!"); - } - } }
--- a/test/javax/xml/jaxp/parsers/8022548/XOMParserTest.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/javax/xml/jaxp/parsers/8022548/XOMParserTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -22,7 +22,8 @@ */ /** - * @test @bug 8022548 + * @test + * @bug 8022548 * @summary test that a parser can use DTDConfiguration * @run main XOMParserTest */ @@ -60,30 +61,27 @@ } public final void testTransform() { - - try { + String inFilename = filePath + "/JDK8022548.xml"; + String xslFilename = filePath + "/JDK8022548.xsl"; + String outFilename = "JDK8022548.out"; - String inFilename = filePath + "/JDK8022548.xml"; - String xslFilename = filePath + "/JDK8022548.xsl"; - String outFilename = "JDK8022548.out"; + try (InputStream xslInput = new FileInputStream(xslFilename); + InputStream xmlInput = new FileInputStream(inFilename); + OutputStream out = new FileOutputStream(outFilename); + ) { + StringWriter sw = new StringWriter(); // Create transformer factory TransformerFactory factory = TransformerFactory.newInstance(); - // set the translet name -// factory.setAttribute("translet-name", "myTranslet"); - - // set the destination directory -// factory.setAttribute("destination-directory", "c:\\temp"); -// factory.setAttribute("generate-translet", Boolean.TRUE); // Use the factory to create a template containing the xsl file - Templates template = factory.newTemplates(new StreamSource(new FileInputStream(xslFilename))); + Templates template = factory.newTemplates(new StreamSource(xslInput)); // Use the template to create a transformer Transformer xformer = template.newTransformer(); // Prepare the input and output files - Source source = new StreamSource(new FileInputStream(inFilename)); - Result result = new StreamResult(new FileOutputStream(outFilename)); + Source source = new StreamSource(xmlInput); + Result result = new StreamResult(outFilename); //Result result = new StreamResult(sw); // Apply the xsl file to the source file and write the result to the output file xformer.transform(source, result);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/lib/testlibrary/AssertsTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,237 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import static jdk.testlibrary.Asserts.*; + +/* @test + * @summary Tests the different assertions in the Assert class + * @library /testlibrary + */ +public class AssertsTest { + private static class Foo implements Comparable<Foo> { + final int id; + public Foo(int id) { + this.id = id; + } + + public int compareTo(Foo f) { + return new Integer(id).compareTo(new Integer(f.id)); + } + } + + public static void main(String[] args) throws Exception { + testLessThan(); + testLessThanOrEqual(); + testEquals(); + testGreaterThanOrEqual(); + testGreaterThan(); + testNotEquals(); + testNull(); + testNotNull(); + testTrue(); + testFalse(); + } + + private static void testLessThan() throws Exception { + expectPass(Assertion.LT, 1, 2); + + expectFail(Assertion.LT, 2, 2); + expectFail(Assertion.LT, 2, 1); + expectFail(Assertion.LT, null, 2); + expectFail(Assertion.LT, 2, null); + } + + private static void testLessThanOrEqual() throws Exception { + expectPass(Assertion.LTE, 1, 2); + expectPass(Assertion.LTE, 2, 2); + + expectFail(Assertion.LTE, 3, 2); + expectFail(Assertion.LTE, null, 2); + expectFail(Assertion.LTE, 2, null); + } + + private static void testEquals() throws Exception { + expectPass(Assertion.EQ, 1, 1); + expectPass(Assertion.EQ, null, null); + + Foo f1 = new Foo(1); + expectPass(Assertion.EQ, f1, f1); + + Foo f2 = new Foo(1); + expectFail(Assertion.EQ, f1, f2); + expectFail(Assertion.LTE, null, 2); + expectFail(Assertion.LTE, 2, null); + } + + private static void testGreaterThanOrEqual() throws Exception { + expectPass(Assertion.GTE, 1, 1); + expectPass(Assertion.GTE, 2, 1); + + expectFail(Assertion.GTE, 1, 2); + expectFail(Assertion.GTE, null, 2); + expectFail(Assertion.GTE, 2, null); + } + + private static void testGreaterThan() throws Exception { + expectPass(Assertion.GT, 2, 1); + + expectFail(Assertion.GT, 1, 1); + expectFail(Assertion.GT, 1, 2); + expectFail(Assertion.GT, null, 2); + expectFail(Assertion.GT, 2, null); + } + + private static void testNotEquals() throws Exception { + expectPass(Assertion.NE, null, 1); + expectPass(Assertion.NE, 1, null); + + Foo f1 = new Foo(1); + Foo f2 = new Foo(1); + expectPass(Assertion.NE, f1, f2); + + expectFail(Assertion.NE, null, null); + expectFail(Assertion.NE, f1, f1); + expectFail(Assertion.NE, 1, 1); + } + + private static void testNull() throws Exception { + expectPass(Assertion.NULL, null); + + expectFail(Assertion.NULL, 1); + } + + private static void testNotNull() throws Exception { + expectPass(Assertion.NOTNULL, 1); + + expectFail(Assertion.NOTNULL, null); + } + + private static void testTrue() throws Exception { + expectPass(Assertion.TRUE, true); + + expectFail(Assertion.TRUE, false); + } + + private static void testFalse() throws Exception { + expectPass(Assertion.FALSE, false); + + expectFail(Assertion.FALSE, true); + } + + private static <T extends Comparable<T>> void expectPass(Assertion assertion, T ... args) + throws Exception { + Assertion.run(assertion, args); + } + + private static <T extends Comparable<T>> void expectFail(Assertion assertion, T ... args) + throws Exception { + try { + Assertion.run(assertion, args); + } catch (RuntimeException e) { + return; + } + throw new Exception("Expected " + Assertion.format(assertion, (Object[]) args) + + " to throw a RuntimeException"); + } + +} + +enum Assertion { + LT, LTE, EQ, GTE, GT, NE, NULL, NOTNULL, FALSE, TRUE; + + public static <T extends Comparable<T>> void run(Assertion assertion, T ... args) { + String msg = "Expected " + format(assertion, args) + " to pass"; + switch (assertion) { + case LT: + assertLessThan(args[0], args[1], msg); + break; + case LTE: + assertLessThanOrEqual(args[0], args[1], msg); + break; + case EQ: + assertEquals(args[0], args[1], msg); + break; + case GTE: + assertGreaterThanOrEqual(args[0], args[1], msg); + break; + case GT: + assertGreaterThan(args[0], args[1], msg); + break; + case NE: + assertNotEquals(args[0], args[1], msg); + break; + case NULL: + assertNull(args == null ? args : args[0], msg); + break; + case NOTNULL: + assertNotNull(args == null ? args : args[0], msg); + break; + case FALSE: + assertFalse((Boolean) args[0], msg); + break; + case TRUE: + assertTrue((Boolean) args[0], msg); + break; + default: + // do nothing + } + } + + public static String format(Assertion assertion, Object ... args) { + switch (assertion) { + case LT: + return asString("assertLessThan", args); + case LTE: + return asString("assertLessThanOrEqual", args); + case EQ: + return asString("assertEquals", args); + case GTE: + return asString("assertGreaterThanOrEquals", args); + case GT: + return asString("assertGreaterThan", args); + case NE: + return asString("assertNotEquals", args); + case NULL: + return asString("assertNull", args); + case NOTNULL: + return asString("assertNotNull", args); + case FALSE: + return asString("assertFalse", args); + case TRUE: + return asString("assertTrue", args); + default: + return ""; + } + } + + private static String asString(String assertion, Object ... args) { + if (args == null) { + return String.format("%s(null)", assertion); + } + if (args.length == 1) { + return String.format("%s(%s)", assertion, args[0]); + } else { + return String.format("%s(%s, %s)", assertion, args[0], args[1]); + } + } +}
--- a/test/lib/testlibrary/ClassFileInstaller.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/lib/testlibrary/ClassFileInstaller.java Fri Nov 15 07:14:23 2013 -0800 @@ -45,7 +45,10 @@ // Create the class file's package directory Path p = Paths.get(pathName); - Files.createDirectories(p.getParent()); + Path parent = p.getParent(); + if (parent != null) { + Files.createDirectories(parent); + } // Create the class file Files.copy(is, p, StandardCopyOption.REPLACE_EXISTING); }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/lib/testlibrary/OutputAnalyzerReportingTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,122 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +/* + * @test + * @summary Test the OutputAnalyzer reporting functionality, + * such as printing additional diagnostic info + * (exit code, stdout, stderr, command line, etc.) + * @library /testlibrary + */ + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; + +import jdk.testlibrary.OutputAnalyzer; + +public class OutputAnalyzerReportingTest { + + public static void main(String[] args) throws Exception { + // Create the output analyzer under test + String stdout = "aaaaaa"; + String stderr = "bbbbbb"; + OutputAnalyzer output = new OutputAnalyzer(stdout, stderr); + + // Expected summary values should be the same for all cases, + // since the outputAnalyzer object is the same + String expectedExitValue = "-1"; + String expectedSummary = + " stdout: [" + stdout + "];\n" + + " stderr: [" + stderr + "]\n" + + " exitValue = " + expectedExitValue + "\n"; + + + DiagnosticSummaryTestRunner testRunner = + new DiagnosticSummaryTestRunner(); + + // should have exit value + testRunner.init(expectedSummary); + int unexpectedExitValue = 2; + try { + output.shouldHaveExitValue(unexpectedExitValue); + } catch (RuntimeException e) { } + testRunner.closeAndCheckResults(); + + // should not contain + testRunner.init(expectedSummary); + try { + output.shouldNotContain(stdout); + } catch (RuntimeException e) { } + testRunner.closeAndCheckResults(); + + // should contain + testRunner.init(expectedSummary); + try { + output.shouldContain("unexpected-stuff"); + } catch (RuntimeException e) { } + testRunner.closeAndCheckResults(); + + // should not match + testRunner.init(expectedSummary); + try { + output.shouldNotMatch("[a]"); + } catch (RuntimeException e) { } + testRunner.closeAndCheckResults(); + + // should match + testRunner.init(expectedSummary); + try { + output.shouldMatch("[qwerty]"); + } catch (RuntimeException e) { } + testRunner.closeAndCheckResults(); + + } + + private static class DiagnosticSummaryTestRunner { + private ByteArrayOutputStream byteStream = + new ByteArrayOutputStream(10000); + + private String expectedSummary = ""; + private PrintStream errStream; + + + public void init(String expectedSummary) { + this.expectedSummary = expectedSummary; + byteStream.reset(); + errStream = new PrintStream(byteStream); + System.setErr(errStream); + } + + public void closeAndCheckResults() { + // check results + errStream.close(); + String stdErrStr = byteStream.toString(); + if (!stdErrStr.contains(expectedSummary)) { + throw new RuntimeException("The output does not contain " + + "the diagnostic message, or the message is incorrect"); + } + } + } + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/lib/testlibrary/jdk/testlibrary/FileUtils.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,169 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package jdk.testlibrary; + +import java.io.IOException; +import java.nio.file.DirectoryNotEmptyException; +import java.nio.file.FileVisitResult; +import java.nio.file.Files; +import java.nio.file.NoSuchFileException; +import java.nio.file.Path; +import java.nio.file.SimpleFileVisitor; +import java.nio.file.attribute.BasicFileAttributes; +import java.util.ArrayList; +import java.util.List; + + +/** + * Common library for various test file utility functions. + */ +public final class FileUtils { + + private static final boolean isWindows = + System.getProperty("os.name").startsWith("Windows"); + private static final int RETRY_DELETE_MILLIS = isWindows ? 500 : 0; + private static final int MAX_RETRY_DELETE_TIMES = isWindows ? 15 : 0; + + /** + * Deletes a file, retrying if necessary. + * + * @param path the file to delete + * + * @throws NoSuchFileException + * if the file does not exist (optional specific exception) + * @throws DirectoryNotEmptyException + * if the file is a directory and could not otherwise be deleted + * because the directory is not empty (optional specific exception) + * @throws IOException + * if an I/O error occurs + */ + public static void deleteFileWithRetry(Path path) + throws IOException + { + try { + deleteFileWithRetry0(path); + } catch (InterruptedException x) { + throw new IOException("Interrupted while deleting.", x); + } + } + + private static void deleteFileWithRetry0(Path path) + throws IOException, InterruptedException + { + int times = 0; + IOException ioe = null; + while (true) { + try { + Files.delete(path); + while (Files.exists(path)) { + times++; + if (times > MAX_RETRY_DELETE_TIMES) + throw new IOException("File still exists after " + times + " waits."); + Thread.sleep(RETRY_DELETE_MILLIS); + } + break; + } catch (NoSuchFileException | DirectoryNotEmptyException x) { + throw x; + } catch (IOException x) { + // Backoff/retry in case another process is accessing the file + times++; + if (ioe == null) + ioe = x; + else + ioe.addSuppressed(x); + + if (times > MAX_RETRY_DELETE_TIMES) + throw ioe; + Thread.sleep(RETRY_DELETE_MILLIS); + } + } + } + + /** + * Deletes a directory and its subdirectories, retrying if necessary. + * + * @param dir the directory to delete + * + * @throws IOException + * If an I/O error occurs. Any such exceptions are caught + * internally. If only one is caught, then it is re-thrown. + * If more than one exception is caught, then the second and + * following exceptions are added as suppressed exceptions of the + * first one caught, which is then re-thrown. + */ + public static void deleteFileTreeWithRetry(Path dir) + throws IOException + { + IOException ioe = null; + final List<IOException> excs = deleteFileTreeUnchecked(dir); + if (!excs.isEmpty()) { + ioe = excs.remove(0); + for (IOException x : excs) + ioe.addSuppressed(x); + } + if (ioe != null) + throw ioe; + } + + public static List<IOException> deleteFileTreeUnchecked(Path dir) { + final List<IOException> excs = new ArrayList<>(); + try { + java.nio.file.Files.walkFileTree(dir, new SimpleFileVisitor<Path>() { + @Override + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { + try { + deleteFileWithRetry0(file); + } catch (IOException x) { + excs.add(x); + } catch (InterruptedException x) { + excs.add(new IOException("Interrupted while deleting.", x)); + return FileVisitResult.TERMINATE; + } + return FileVisitResult.CONTINUE; + } + @Override + public FileVisitResult postVisitDirectory(Path dir, IOException exc) { + try { + deleteFileWithRetry0(dir); + } catch (IOException x) { + excs.add(x); + } catch (InterruptedException x) { + excs.add(new IOException("Interrupted while deleting.", x)); + return FileVisitResult.TERMINATE; + } + return FileVisitResult.CONTINUE; + } + @Override + public FileVisitResult visitFileFailed(Path file, IOException exc) { + excs.add(exc); + return FileVisitResult.CONTINUE; + } + }); + } catch (IOException x) { + excs.add(x); + } + return excs; + } +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/lib/testlibrary/jdk/testlibrary/InputArguments.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package jdk.testlibrary; + +import java.lang.management.RuntimeMXBean; +import java.lang.management.ManagementFactory; +import java.util.List; + +/** + * This class provides access to the input arguments to the VM. + */ +public class InputArguments { + private static final List<String> args; + + static { + RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean(); + args = runtimeMxBean.getInputArguments(); + } + + /** + * Returns true if {@code arg} is an input argument to the VM. + * + * This is useful for checking boolean flags such as -XX:+UseSerialGC or + * -XX:-UsePerfData. + * + * @param arg The name of the argument. + * @return {@code true} if the given argument is an input argument, + * otherwise {@code false}. + */ + public static boolean contains(String arg) { + return args.contains(arg); + } + + /** + * Returns true if {@code prefix} is the start of an input argument to the + * VM. + * + * This is useful for checking if flags describing a quantity, such as + * -XX:+MaxMetaspaceSize=100m, is set without having to know the quantity. + * To check if the flag -XX:MaxMetaspaceSize is set, use + * {@code InputArguments.containsPrefix("-XX:MaxMetaspaceSize")}. + * + * @param prefix The start of the argument. + * @return {@code true} if the given argument is the start of an input + * argument, otherwise {@code false}. + */ + public static boolean containsPrefix(String prefix) { + for (String arg : args) { + if (arg.startsWith(prefix)) { + return true; + } + } + return false; + } + + /** + * Get the string containing input arguments passed to the VM + */ + public static String getInputArguments() { + StringBuilder result = new StringBuilder(); + for (String arg : args) + result.append(arg).append(' '); + + return result.toString(); + } + +}
--- a/test/lib/testlibrary/jdk/testlibrary/JcmdBase.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/lib/testlibrary/jdk/testlibrary/JcmdBase.java Fri Nov 15 07:14:23 2013 -0800 @@ -23,8 +23,11 @@ package jdk.testlibrary; -import java.util.ArrayList; +import java.util.Arrays; +/** + * Super class for tests which need to attach jcmd to the current process. + */ public class JcmdBase { private static ProcessBuilder processBuilder = new ProcessBuilder(); @@ -32,46 +35,24 @@ /** * Attach jcmd to the current process * - * @param commandArgs - * jcmd command line parameters, e.g. JFR.start + * @param toolArgs + * jcmd command line parameters, e.g. VM.flags * @return jcmd output * @throws Exception */ - public final static OutputAnalyzer jcmd(String... commandArgs) + public final static OutputAnalyzer jcmd(String... toolArgs) throws Exception { - ArrayList<String> cmd = new ArrayList<String>(); - String cmdString = ""; - - // jcmd from the jdk to be tested - String jcmdPath = JdkFinder.getTool("jcmd", false); - cmd.add(jcmdPath); - cmdString += jcmdPath; - - String pid = Integer.toString(ProcessTools.getProcessId()); - cmd.add(pid); - cmdString += " " + pid; - - for (int i = 0; i < commandArgs.length; i++) { - cmd.add(commandArgs[i]); - cmdString += " " + commandArgs[i]; + JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jcmd"); + launcher.addToolArg(Integer.toString(ProcessTools.getProcessId())); + for (String toolArg : toolArgs) { + launcher.addToolArg(toolArg); } - - // Log command line for debugging purpose - System.out.println("Command line:"); - System.out.println(cmdString); - - processBuilder.command(cmd); + processBuilder.command(launcher.getCommand()); + System.out.println(Arrays.toString(processBuilder.command().toArray()).replace(",", "")); OutputAnalyzer output = new OutputAnalyzer(processBuilder.start()); - - // Log output for debugging purpose - System.out.println("Command output:"); System.out.println(output.getOutput()); - if (output.getExitValue() != 0) { - throw new Exception(processBuilder.command() - + " resulted in exit value " + output.getExitValue() - + " , expected to get 0"); - } + output.shouldHaveExitValue(0); return output; }
--- a/test/lib/testlibrary/jdk/testlibrary/JdkFinder.java Thu Nov 14 23:32:31 2013 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ -/* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package jdk.testlibrary; - -import java.io.File; - -public final class JdkFinder { - - private JdkFinder() { - } - - private static String getExecutable(String executable, String property) { - String binPath = System.getProperty(property); - if (binPath == null) { - throw new RuntimeException( - "System property '" + property + "' not set"); - } - - binPath += File.separatorChar + "bin" + File.separatorChar + executable; - - return binPath; - } - - /** - * Returns the full path to a java launcher in jdk/bin based on system - * property. - * - * @param stableJdk - * see {@link #getTool(String, boolean)} - * @return Full path to a java launcher in jdk/bin. - */ - public static String getJavaLauncher(boolean stableJdk) { - return getTool("java", stableJdk); - } - - /** - * Returns the full path to an executable in jdk/bin based on system - * property. Depending on value of {@code stableJdk} the method will look for - * either 'compile.jdk' or 'test.jdk' system properties. - * 'test.jdk' is normally set by jtreg. When running test separately, - * set this property using '-Dtest.jdk=/path/to/jdk'. - * - * @param stableJdk - * If {@code true} the {@code tool} will be retrieved - * from the compile (stable) JDK. - * If {@code false} the {@code tool} will be retrieved - * from the test JDK. - * @return Full path to an executable in jdk/bin. - */ - public static String getTool(String tool, boolean stableJdk) { - if (stableJdk) { - return getExecutable(tool, "compile.jdk"); - } else { - return getExecutable(tool, "test.jdk"); - } - } -}
--- a/test/lib/testlibrary/jdk/testlibrary/OutputAnalyzer.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/lib/testlibrary/jdk/testlibrary/OutputAnalyzer.java Fri Nov 15 07:14:23 2013 -0800 @@ -27,6 +27,9 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +/** + * Utility class for verifying output and exit value from a {@code Process}. + */ public final class OutputAnalyzer { private final String stdout; @@ -85,9 +88,9 @@ public void shouldContain(String expectedString) { if (!stdout.contains(expectedString) && !stderr.contains(expectedString)) { + reportDiagnosticSummary(); throw new RuntimeException("'" + expectedString - + "' missing from stdout/stderr: [" + stdout + stderr - + "]\n"); + + "' missing from stdout/stderr \n"); } } @@ -101,8 +104,9 @@ */ public void stdoutShouldContain(String expectedString) { if (!stdout.contains(expectedString)) { + reportDiagnosticSummary(); throw new RuntimeException("'" + expectedString - + "' missing from stdout: [" + stdout + "]\n"); + + "' missing from stdout \n"); } } @@ -116,8 +120,9 @@ */ public void stderrShouldContain(String expectedString) { if (!stderr.contains(expectedString)) { + reportDiagnosticSummary(); throw new RuntimeException("'" + expectedString - + "' missing from stderr: [" + stderr + "]\n"); + + "' missing from stderr \n"); } } @@ -132,12 +137,14 @@ */ public void shouldNotContain(String notExpectedString) { if (stdout.contains(notExpectedString)) { + reportDiagnosticSummary(); throw new RuntimeException("'" + notExpectedString - + "' found in stdout: [" + stdout + "]\n"); + + "' found in stdout \n"); } if (stderr.contains(notExpectedString)) { + reportDiagnosticSummary(); throw new RuntimeException("'" + notExpectedString - + "' found in stderr: [" + stderr + "]\n"); + + "' found in stderr \n"); } } @@ -152,8 +159,9 @@ */ public void stdoutShouldNotContain(String notExpectedString) { if (stdout.contains(notExpectedString)) { + reportDiagnosticSummary(); throw new RuntimeException("'" + notExpectedString - + "' found in stdout: [" + stdout + "]\n"); + + "' found in stdout \n"); } } @@ -168,55 +176,63 @@ */ public void stderrShouldNotContain(String notExpectedString) { if (stderr.contains(notExpectedString)) { + reportDiagnosticSummary(); throw new RuntimeException("'" + notExpectedString - + "' found in stderr: [" + stderr + "]\n"); + + "' found in stderr \n"); } } /** - * Verify that the stdout and stderr contents of output buffer matches - * the pattern + * Verify that the stdout and stderr contents of output buffer matches the + * pattern * * @param pattern - * @throws RuntimeException If the pattern was not found + * @throws RuntimeException + * If the pattern was not found */ public void shouldMatch(String pattern) { - Matcher stdoutMatcher = Pattern.compile(pattern, Pattern.MULTILINE).matcher(stdout); - Matcher stderrMatcher = Pattern.compile(pattern, Pattern.MULTILINE).matcher(stderr); + Matcher stdoutMatcher = Pattern.compile(pattern, Pattern.MULTILINE) + .matcher(stdout); + Matcher stderrMatcher = Pattern.compile(pattern, Pattern.MULTILINE) + .matcher(stderr); if (!stdoutMatcher.find() && !stderrMatcher.find()) { + reportDiagnosticSummary(); throw new RuntimeException("'" + pattern - + "' missing from stdout/stderr: [" + stdout + stderr - + "]\n"); + + "' missing from stdout/stderr \n"); } } /** - * Verify that the stdout contents of output buffer matches the - * pattern + * Verify that the stdout contents of output buffer matches the pattern * * @param pattern - * @throws RuntimeException If the pattern was not found + * @throws RuntimeException + * If the pattern was not found */ public void stdoutShouldMatch(String pattern) { - Matcher matcher = Pattern.compile(pattern, Pattern.MULTILINE).matcher(stdout); + Matcher matcher = Pattern.compile(pattern, Pattern.MULTILINE).matcher( + stdout); if (!matcher.find()) { + reportDiagnosticSummary(); throw new RuntimeException("'" + pattern - + "' missing from stdout: [" + stdout + "]\n"); + + "' missing from stdout \n"); } } /** - * Verify that the stderr contents of output buffer matches the - * pattern + * Verify that the stderr contents of output buffer matches the pattern * * @param pattern - * @throws RuntimeException If the pattern was not found + * @throws RuntimeException + * If the pattern was not found */ public void stderrShouldMatch(String pattern) { - Matcher matcher = Pattern.compile(pattern, Pattern.MULTILINE).matcher(stderr); + Matcher matcher = Pattern.compile(pattern, Pattern.MULTILINE).matcher( + stderr); if (!matcher.find()) { + reportDiagnosticSummary(); throw new RuntimeException("'" + pattern - + "' missing from stderr: [" + stderr + "]\n"); + + "' missing from stderr \n"); } } @@ -225,18 +241,22 @@ * match the pattern * * @param pattern - * @throws RuntimeException If the pattern was found + * @throws RuntimeException + * If the pattern was found */ public void shouldNotMatch(String pattern) { - Matcher matcher = Pattern.compile(pattern, Pattern.MULTILINE).matcher(stdout); + Matcher matcher = Pattern.compile(pattern, Pattern.MULTILINE).matcher( + stdout); if (matcher.find()) { - throw new RuntimeException("'" + pattern - + "' found in stdout: [" + stdout + "]\n"); + reportDiagnosticSummary(); + throw new RuntimeException("'" + pattern + "' found in stdout: '" + + matcher.group() + "' \n"); } matcher = Pattern.compile(pattern, Pattern.MULTILINE).matcher(stderr); if (matcher.find()) { - throw new RuntimeException("'" + pattern - + "' found in stderr: [" + stderr + "]\n"); + reportDiagnosticSummary(); + throw new RuntimeException("'" + pattern + "' found in stderr: '" + + matcher.group() + "' \n"); } } @@ -245,13 +265,15 @@ * pattern * * @param pattern - * @throws RuntimeException If the pattern was found + * @throws RuntimeException + * If the pattern was found */ public void stdoutShouldNotMatch(String pattern) { - Matcher matcher = Pattern.compile(pattern, Pattern.MULTILINE).matcher(stdout); + Matcher matcher = Pattern.compile(pattern, Pattern.MULTILINE).matcher( + stdout); if (matcher.find()) { - throw new RuntimeException("'" + pattern - + "' found in stdout: [" + stdout + "]\n"); + reportDiagnosticSummary(); + throw new RuntimeException("'" + pattern + "' found in stdout \n"); } } @@ -260,18 +282,56 @@ * pattern * * @param pattern - * @throws RuntimeException If the pattern was found + * @throws RuntimeException + * If the pattern was found */ public void stderrShouldNotMatch(String pattern) { - Matcher matcher = Pattern.compile(pattern, Pattern.MULTILINE).matcher(stderr); + Matcher matcher = Pattern.compile(pattern, Pattern.MULTILINE).matcher( + stderr); if (matcher.find()) { - throw new RuntimeException("'" + pattern - + "' found in stderr: [" + stderr + "]\n"); + reportDiagnosticSummary(); + throw new RuntimeException("'" + pattern + "' found in stderr \n"); } } /** - * Verifiy the exit value of the process + * Get the captured group of the first string matching the pattern. stderr + * is searched before stdout. + * + * @param pattern + * The multi-line pattern to match + * @param group + * The group to capture + * @return The matched string or null if no match was found + */ + public String firstMatch(String pattern, int group) { + Matcher stderrMatcher = Pattern.compile(pattern, Pattern.MULTILINE) + .matcher(stderr); + Matcher stdoutMatcher = Pattern.compile(pattern, Pattern.MULTILINE) + .matcher(stdout); + if (stderrMatcher.find()) { + return stderrMatcher.group(group); + } + if (stdoutMatcher.find()) { + return stdoutMatcher.group(group); + } + return null; + } + + /** + * Get the first string matching the pattern. stderr is searched before + * stdout. + * + * @param pattern + * The multi-line pattern to match + * @return The matched string or null if no match was found + */ + public String firstMatch(String pattern) { + return firstMatch(pattern, 0); + } + + /** + * Verify the exit value of the process * * @param expectedExitValue * Expected exit value from process @@ -281,12 +341,25 @@ */ public void shouldHaveExitValue(int expectedExitValue) { if (getExitValue() != expectedExitValue) { - throw new RuntimeException("Exit value " + getExitValue() - + " , expected to get " + expectedExitValue); + reportDiagnosticSummary(); + throw new RuntimeException("Expected to get exit value of [" + + expectedExitValue + "]\n"); } } /** + * Report summary that will help to diagnose the problem Currently includes: + * - standard input produced by the process under test - standard output - + * exit code Note: the command line is printed by the ProcessTools + */ + private void reportDiagnosticSummary() { + String msg = " stdout: [" + stdout + "];\n" + " stderr: [" + stderr + + "]\n" + " exitValue = " + getExitValue() + "\n"; + + System.err.println(msg); + } + + /** * Get the contents of the output buffer (stdout and stderr) * * @return Content of the output buffer
--- a/test/lib/testlibrary/jdk/testlibrary/ProcessTools.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/lib/testlibrary/jdk/testlibrary/ProcessTools.java Fri Nov 15 07:14:23 2013 -0800 @@ -25,10 +25,7 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.io.OutputStream; -import java.io.OutputStreamWriter; import java.io.PrintStream; -import java.io.PrintWriter; import java.lang.management.ManagementFactory; import java.lang.management.RuntimeMXBean; import java.lang.reflect.Field; @@ -237,15 +234,20 @@ */ public static ProcessBuilder createJavaProcessBuilder(String... command) throws Exception { - String javapath = JdkFinder.getJavaLauncher(false); + String javapath = JDKToolFinder.getJDKTool("java"); ArrayList<String> args = new ArrayList<>(); args.add(javapath); Collections.addAll(args, getPlatformSpecificVMArgs()); Collections.addAll(args, command); + // Reporting + StringBuilder cmdLine = new StringBuilder(); + for (String cmd : args) + cmdLine.append(cmd).append(' '); + System.out.println("Command line: [" + cmdLine.toString() + "]"); + return new ProcessBuilder(args.toArray(new String[args.size()])); - } }
--- a/test/sun/jvmstat/monitor/MonitoredVm/MonitorVmStartTerminate.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/sun/jvmstat/monitor/MonitoredVm/MonitorVmStartTerminate.java Fri Nov 15 07:14:23 2013 -0800 @@ -21,6 +21,7 @@ * questions. */ +import java.util.concurrent.CountDownLatch; import java.util.regex.*; import java.util.*; import java.net.URISyntaxException; @@ -33,8 +34,6 @@ private static final int SLEEPERS = 10; private static final int SLEEPTIME = 5000; // sleep time for a sleeper private static final int EXECINTERVAL = 3000; // wait time between exec's - private static final int JOINTIME = (SLEEPERS * EXECINTERVAL) - + SLEEPTIME * 2; public static void main(String args[]) throws Exception { @@ -46,7 +45,8 @@ MonitoredHost host = MonitoredHost.getMonitoredHost("localhost"); host.setInterval(200); - SleeperListener listener = new SleeperListener(host, sleeperPattern); + Matcher matcher = Pattern.compile(sleeperPattern).matcher(""); + SleeperListener listener = new SleeperListener(host, matcher, SLEEPERS); host.addHostListener(listener); SleeperStarter ss = new SleeperStarter(SLEEPERS, EXECINTERVAL, @@ -56,212 +56,193 @@ System.out.println("Waiting for " + SLEEPERS + " sleepers to terminate"); try { - ss.join(JOINTIME); + ss.join(); } catch (InterruptedException e) { - System.err.println("Timed out waiting for sleepers"); - } - - if (listener.getStarted() != SLEEPERS) { - throw new RuntimeException( - "Too few sleepers started: " - + " started = " + listener.getStarted() - + " SLEEPERS = " + SLEEPERS); - } - - if (listener.getStarted() != listener.getTerminated()) { - throw new RuntimeException( - "Started count != terminated count: " - + " started = " + listener.getStarted() - + " terminated = " + listener.getTerminated()); + throw new Exception("Timed out waiting for sleepers"); } - } -} - -class SleeperListener implements HostListener { - private static final boolean DEBUG = false; - - int started; - int terminated; - MonitoredHost host; - Matcher patternMatcher; - ArrayList targets; - - public SleeperListener(MonitoredHost host, String sleeperPattern) { - this.host = host; - Pattern pattern = Pattern.compile(sleeperPattern); - patternMatcher = pattern.matcher(""); - targets = new ArrayList(); + listener.waitForSleepersToStart(); + listener.waitForSleepersToTerminate(); } - private void printList(Iterator i, String msg) { - System.out.println(msg + ":"); - while (i.hasNext()) { - Integer lvmid = (Integer)i.next(); - try { - VmIdentifier vmid = new VmIdentifier("//" + lvmid.intValue()); - MonitoredVm target = host.getMonitoredVm(vmid); + public static class SleeperListener implements HostListener { + + private final List<Integer> targets = new ArrayList<>(); + private final CountDownLatch terminateLatch; + private final CountDownLatch startLatch; + private final MonitoredHost host; + private final Matcher patternMatcher; + + public SleeperListener(MonitoredHost host, Matcher matcher, int count) { + this.host = host; + this.patternMatcher = matcher; + this.terminateLatch = new CountDownLatch(count); + this.startLatch = new CountDownLatch(count); + } + + public void waitForSleepersToTerminate() throws InterruptedException { + terminateLatch.await(); + } - StringMonitor cmdMonitor = - (StringMonitor)target.findByName("sun.rt.javaCommand"); - String cmd = cmdMonitor.stringValue(); + public void waitForSleepersToStart() throws InterruptedException { + startLatch.await(); + } + + private void printList(Set<Integer> list, String msg) { + System.out.println(msg + ":"); + for (Integer lvmid : list) { + try { + VmIdentifier vmid = new VmIdentifier("//" + lvmid.intValue()); + MonitoredVm target = host.getMonitoredVm(vmid); - System.out.println("\t" + lvmid.intValue() + ": " - + "\"" + cmd + "\"" + ": "); - } catch (URISyntaxException e) { - System.err.println("Unexpected URISyntaxException: " - + e.getMessage()); - } catch (MonitorException e) { - System.out.println("\t" + lvmid.intValue() - + ": error reading monitoring data: " - + " target possibly terminated?"); + StringMonitor cmdMonitor = + (StringMonitor)target.findByName("sun.rt.javaCommand"); + String cmd = cmdMonitor.stringValue(); + + System.out.println("\t" + lvmid.intValue() + ": " + + "\"" + cmd + "\"" + ": "); + } catch (URISyntaxException e) { + System.err.println("Unexpected URISyntaxException: " + + e.getMessage()); + } catch (MonitorException e) { + System.out.println("\t" + lvmid.intValue() + + ": error reading monitoring data: " + + " target possibly terminated?"); + } } } - } - private int addStarted(Iterator i) { - int found = 0; - while (i.hasNext()) { - try { - Integer lvmid = (Integer)i.next(); - VmIdentifier vmid = new VmIdentifier("//" + lvmid.intValue()); - MonitoredVm target = host.getMonitoredVm(vmid); + private int addStarted(Set<Integer> started) { + int found = 0; + for (Integer lvmid : started) { + try { + VmIdentifier vmid = new VmIdentifier("//" + lvmid.intValue()); + MonitoredVm target = host.getMonitoredVm(vmid); + + StringMonitor cmdMonitor = + (StringMonitor)target.findByName("sun.rt.javaCommand"); + String cmd = cmdMonitor.stringValue(); + + patternMatcher.reset(cmd); + System.out.print("Started: " + lvmid.intValue() + + ": " + "\"" + cmd + "\"" + ": "); - StringMonitor cmdMonitor = - (StringMonitor)target.findByName("sun.rt.javaCommand"); - String cmd = cmdMonitor.stringValue(); + if (patternMatcher.matches()) { + System.out.println("matches pattern - recorded"); + targets.add(lvmid); + found++; + } + else { + System.out.println("does not match pattern - ignored"); + } + } catch (URISyntaxException e) { + System.err.println("Unexpected URISyntaxException: " + + e.getMessage()); + } catch (MonitorException e) { + System.err.println("Unexpected MonitorException: " + + e.getMessage()); + } + } + return found; + } - patternMatcher.reset(cmd); - System.out.print("Started: " + lvmid.intValue() - + ": " + "\"" + cmd + "\"" + ": "); - - if (patternMatcher.matches()) { - System.out.println("matches pattern - recorded"); - targets.add(lvmid); + private int removeTerminated(Set<Integer> terminated) { + int found = 0; + for (Integer lvmid : terminated) { + /* + * we don't attempt to attach to the target here as it's + * now dead and has no jvmstat share memory file. Just see + * if the process id is among those that we saved when we + * started the targets (note - duplicated allowed and somewhat + * expected on windows); + */ + System.out.print("Terminated: " + lvmid.intValue() + ": "); + if (targets.contains(lvmid)) { + System.out.println("matches pattern - termination recorded"); + targets.remove(lvmid); found++; } else { System.out.println("does not match pattern - ignored"); } - } catch (URISyntaxException e) { - System.err.println("Unexpected URISyntaxException: " - + e.getMessage()); - } catch (MonitorException e) { - System.err.println("Unexpected MonitorException: " - + e.getMessage()); + } + return found; + } + + @SuppressWarnings("unchecked") + public void vmStatusChanged(VmStatusChangeEvent ev) { + printList(ev.getActive(), "Active"); + printList(ev.getStarted(), "Started"); + printList(ev.getTerminated(), "Terminated"); + + int recentlyStarted = addStarted(ev.getStarted()); + int recentlyTerminated = removeTerminated(ev.getTerminated()); + + for (int i = 0; i < recentlyTerminated; i++) { + terminateLatch.countDown(); + } + for (int i = 0; i < recentlyStarted; i++) { + startLatch.countDown(); } } - return found; - } - private int removeTerminated(Iterator i) { - int found = 0; - while (i.hasNext()) { - Integer lvmid = (Integer)i.next(); - /* - * we don't attempt to attach to the target here as it's - * now dead and has no jvmstat share memory file. Just see - * if the process id is among those that we saved when we - * started the targets (note - duplicated allowed and somewhat - * expected on windows); - */ - System.out.print("Terminated: " + lvmid.intValue() + ": "); - if (targets.contains(lvmid)) { - System.out.println("matches pattern - termination recorded"); - targets.remove(lvmid); - found++; - } - else { - System.out.println("does not match pattern - ignored"); - } - } - return found; - } - - public synchronized int getStarted() { - return started; - } - - public synchronized int getTerminated() { - return terminated; - } - - public void vmStatusChanged(VmStatusChangeEvent ev) { - if (DEBUG) { - printList(ev.getActive().iterator(), "Active"); - printList(ev.getStarted().iterator(), "Started"); - printList(ev.getTerminated().iterator(), "Terminated"); - } - - int recentlyStarted = addStarted(ev.getStarted().iterator()); - int recentlyTerminated = removeTerminated( - ev.getTerminated().iterator()); - - synchronized (this) { - started += recentlyStarted; - terminated += recentlyTerminated; + public void disconnected(HostEvent ev) { } } - public void disconnected(HostEvent ev) { + public static class SleeperStarter extends Thread { + + private final JavaProcess[] processes; + private final int execInterval; + private final String args; + + public SleeperStarter(int sleepers, int execInterval, String args) { + this.execInterval = execInterval; + this.args = args; + this.processes = new JavaProcess[sleepers]; + } + + private synchronized int active() { + int active = processes.length; + for(JavaProcess jp : processes) { + try { + jp.exitValue(); + active--; + } catch (IllegalThreadStateException e) { + // process hasn't exited yet + } + } + return active; + } + + public void run() { + System.out.println("Starting " + processes.length + " sleepers"); + + String[] classpath = { + "-classpath", + System.getProperty("java.class.path") + }; + + for (int i = 0; i < processes.length; i++) { + try { + System.out.println("Starting Sleeper " + i); + synchronized(this) { + processes[i] = new JavaProcess("Sleeper", args + " " + i); + processes[i].addOptions(classpath); + } + processes[i].start(); + Thread.sleep(execInterval); + } catch (InterruptedException ignore) { + } catch (IOException e) { + System.err.println( + "IOException trying to start Sleeper " + i + ": " + + e.getMessage()); + } + } + + // spin waiting for the processes to terminate + while (active() > 0) ; + } } } -class SleeperStarter extends Thread { - - JavaProcess[] processes; - int execInterval; - String args; - - public SleeperStarter(int sleepers, int execInterval, String args) { - this.execInterval = execInterval; - this.args = args; - this.processes = new JavaProcess[sleepers]; - } - - private synchronized int active() { - int active = processes.length; - for(int i = 0; i < processes.length; i++) { - try { - int exitValue = processes[i].exitValue(); - active--; - } catch (IllegalThreadStateException e) { - // process hasn't exited yet - } - } - return active; - } - - public void run() { - System.out.println("Starting " + processes.length + " sleepers"); - - String[] classpath = { - "-classpath", - System.getProperty("java.class.path") - }; - - for (int i = 0; i < processes.length; i++) { - try { - System.out.println("Starting Sleeper " + i); - synchronized(this) { - processes[i] = new JavaProcess("Sleeper", args + " " + i); - processes[i].addOptions(classpath); - } - processes[i].start(); - Thread.sleep(execInterval); - } catch (InterruptedException ignore) { - } catch (IOException e) { - System.err.println( - "IOException trying to start Sleeper " + i + ": " - + e.getMessage()); - } - } - - // spin waiting for the processes to terminate - while (active() > 0) ; - - // give final termination event a change to propogate to - // the HostListener - try { Thread.sleep(2000); } catch (InterruptedException ignore) { } - } -}
--- a/test/sun/jvmstat/monitor/MonitoredVm/MonitorVmStartTerminate.sh Thu Nov 14 23:32:31 2013 -0800 +++ b/test/sun/jvmstat/monitor/MonitoredVm/MonitorVmStartTerminate.sh Fri Nov 15 07:14:23 2013 -0800 @@ -23,7 +23,6 @@ # # @test -# @ignore until 6543856 is fixed # @bug 4990825 # @summary attach to external but local JVM processes # @library ../../testlibrary @@ -39,6 +38,6 @@ verify_os JAVA="${TESTJAVA}/bin/java" -CP=${TESTJAVA}${FS}lib${FS}tools.jar${PS}${TESTCLASSES} +CP=${TESTJAVA}${FS}lib${FS}tools.jar${PS}${TESTCLASSES}${PS}${TESTCLASSES}${FS}..${FS}..${FS}testlibrary ${JAVA} ${TESTVMOPTS} -classpath ${CP} MonitorVmStartTerminate
--- a/test/sun/jvmstat/testlibrary/JavaProcess.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/sun/jvmstat/testlibrary/JavaProcess.java Fri Nov 15 07:14:23 2013 -0800 @@ -26,7 +26,6 @@ */ import java.io.*; -import java.util.Properties; public class JavaProcess {
--- a/test/sun/management/HotspotThreadMBean/GetInternalThreads.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/sun/management/HotspotThreadMBean/GetInternalThreads.java Fri Nov 15 07:14:23 2013 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -35,7 +35,7 @@ import java.lang.management.ManagementFactory; public class GetInternalThreads { - private static HotspotThreadMBean mbean = + private final static HotspotThreadMBean mbean = ManagementFactoryHelper.getHotspotThreadMBean(); // Minimum number of VM internal threads @@ -43,7 +43,7 @@ private static final long MIN_VALUE_FOR_PASS = 4; private static final long MAX_VALUE_FOR_PASS = Long.MAX_VALUE; - public static void main(String[] args) { + public static void main(String[] args) throws Exception { long value = mbean.getInternalThreadCount(); if (value < MIN_VALUE_FOR_PASS || value > MAX_VALUE_FOR_PASS) { @@ -62,17 +62,28 @@ return; } - Map times = mbean.getInternalThreadCpuTimes(); - Iterator iter = times.entrySet().iterator(); - for (; iter.hasNext(); ) { - Map.Entry entry = (Map.Entry) iter.next(); - System.out.println(entry.getKey() + - " CPU time = " + entry.getValue() + "ns"); - if (((Long) entry.getValue()).longValue() < 0) { - throw new RuntimeException("Thread CPU time" + - "illegal value: " + entry.getValue()); + while(!testCPUTime()) { + Thread.sleep(100); + } + } + + private static boolean testCPUTime() { + Map<String, Long> times = mbean.getInternalThreadCpuTimes(); + for(Map.Entry<String, Long> entry : times.entrySet()) { + String threadName = entry.getKey(); + long cpuTime = entry.getValue(); + System.out.println("CPU time = " + cpuTime + " for " + threadName); + if (cpuTime == -1) { + // Can happen when there is a race between a thread being created + // and the request to get its CPU time. The "/proc/..." structure might + // not be ready at that time and the routine will return -1. + System.out.println("Retry, proc structure might not be ready (-1)"); + return false; + } + if (cpuTime < 0) { + throw new RuntimeException("Illegal CPU time: " + cpuTime); } } - System.out.println("Test passed."); + return true; } }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/sun/management/jdp/ClientConnection.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import java.io.IOException; +import java.net.InetAddress; +import java.net.MulticastSocket; +import java.net.UnknownHostException; + +public class ClientConnection { + + public final String IANA_JDP_ADDRESS = "224.0.23.178"; + public final String IANA_JDP_PORT = "7095"; + public final String UNDEFINED_NAME = "TheVMwithNoName"; + + public final int port; + public final InetAddress address; + public final int pauseInSeconds; + public final String instanceName; + + public ClientConnection() + throws UnknownHostException { + + String discoveryAddress = System.getProperty("com.sun.management.jdp.address", IANA_JDP_ADDRESS); + address = InetAddress.getByName(discoveryAddress); + + String discoveryPort = System.getProperty("com.sun.management.jdp.port", IANA_JDP_PORT); + port = Integer.parseInt(discoveryPort); + + String pause = System.getProperty("com.sun.management.jdp.pause", "1"); + pauseInSeconds = Integer.parseUnsignedInt(pause); + + instanceName = System.getProperty("com.sun.management.jdp.name", UNDEFINED_NAME); + + } + + public MulticastSocket connectWithTimeout(int msTimeOut) throws IOException { + MulticastSocket socket = new MulticastSocket(port); + socket.joinGroup(address); + socket.setSoTimeout(msTimeOut); + return socket; + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/sun/management/jdp/DynamicLauncher.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +import jdk.testlibrary.OutputAnalyzer; +import jdk.testlibrary.ProcessTools; +import jdk.testlibrary.Utils; + +import java.util.UUID; + + +/** + * This class will try to find an unused port and run a JdpTestCase using it. + * The unused port is needed for jmxremote.port. + * The problem with busy ports arises when running many automated tests on the same host. + * Note that jdp.port is a multicast port and thus it can be binded by different processes at the same time. + */ +public abstract class DynamicLauncher { + + final String jdpName = UUID.randomUUID().toString(); + int jmxPort; + + protected void run() throws Exception { + OutputAnalyzer out; + int retries = 1; + boolean tryAgain; + + do { + tryAgain = false; + jmxPort = Utils.getFreePort(); + out = runVM(); + try { + out.shouldNotContain("Port already in use"); + } catch (RuntimeException e) { + if (retries < 3) { + retries++; + tryAgain = true; + } + } + } while (tryAgain); + } + + protected OutputAnalyzer runVM() throws Exception { + String[] options = this.options(); + ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(options); + OutputAnalyzer out = new OutputAnalyzer(pb.start()); + System.out.println(out.getStdout()); + System.err.println(out.getStderr()); + return out; + } + + protected abstract String[] options(); + +}
--- a/test/sun/management/jdp/JdpClient.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/sun/management/jdp/JdpClient.java Fri Nov 15 07:14:23 2013 -0800 @@ -36,6 +36,7 @@ import java.util.Collections; import java.util.Enumeration; import java.util.Map; + import sun.management.jdp.JdpException; import sun.management.jdp.JdpJmxPacket; import sun.management.jdp.JdpPacketReader; @@ -49,21 +50,21 @@ private static int maxPacketCount = 1; private static int maxEmptyPacketCount = 10; - private void get(Map<?,?> map, String key) - throws JdpException { + private void get(Map<?, ?> map, String key) + throws JdpException { if (map.get(key) == null) { - throw new JdpException("Test failed, packet field " + key + " missed"); + throw new JdpException("Test failed, packet field " + key + " missed"); } } private void checkFieldPresence(JdpJmxPacket p) - throws IOException, JdpException { + throws IOException, JdpException { byte[] b = p.getPacketData(); JdpPacketReader reader = new JdpPacketReader(b); - Map<String,String> pMap = reader.getDiscoveryDataAsMap(); + Map<String, String> pMap = reader.getDiscoveryDataAsMap(); get(pMap, JdpJmxPacket.UUID_KEY); get(pMap, JdpJmxPacket.MAIN_CLASS_KEY); @@ -102,11 +103,11 @@ sel.select(10 * 1000); channel.receive(buf); - if (buf.position() == 0 ){ - if (JdpDoSomething.getVerbose()){ + if (buf.position() == 0) { + if (JdpDoSomething.getVerbose()) { System.err.println("Empty packet received"); } - if (++emptyPacketsCount > maxEmptyPacketCount){ + if (++emptyPacketsCount > maxEmptyPacketCount) { throw new RuntimeException("Test failed, maxEmptyPacketCount reached"); } @@ -120,8 +121,8 @@ JdpJmxPacket packet = new JdpJmxPacket(dgramData); JdpDoSomething.printJdpPacket(packet); checkFieldPresence(packet); - if(++count > maxPacketCount){ - break; + if (++count > maxPacketCount) { + break; } } catch (JdpException e) { e.printStackTrace(); @@ -179,7 +180,7 @@ PacketListener listener = new PacketListener(channel); new Thread(listener, "Jdp Client").start(); - } catch (RuntimeException e){ + } catch (RuntimeException e) { System.out.println("Test failed."); } catch (Exception e) { e.printStackTrace();
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/sun/management/jdp/JdpDefaultsTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * A JVM with JDP on should send multicast JDP packets regularly. + * + * @author Alex Schenkman + * @test JdpDefaultsTest + * @summary Assert that we can read JDP packets from a multicast socket connection, on default IP and port. + * @library /lib/testlibrary + * @build ClientConnection JdpTestUtil JdpTestCase JdpOnTestCase DynamicLauncher + * @run main JdpDefaultsTest + */ + +public class JdpDefaultsTest extends DynamicLauncher { + + final String testName = "JdpOnTestCase"; + + public static void main(String[] args) throws Exception { + DynamicLauncher launcher = new JdpDefaultsTest(); + launcher.run(); + } + + /** + * Send Jdp multicast packets to the default IP and port, 224.0.23.178:7095 + */ + protected String[] options() { + String[] options = { + "-Dcom.sun.management.jmxremote.authenticate=false", + "-Dcom.sun.management.jmxremote.ssl=false", + "-Dcom.sun.management.jmxremote=true", + "-Dcom.sun.management.jmxremote.port=" + String.valueOf(jmxPort), + "-Dcom.sun.management.jmxremote.autodiscovery=true", + "-Dcom.sun.management.jdp.pause=1", + "-Dcom.sun.management.jdp.name=" + jdpName, + "-Dcom.sun.management.jdp.address=224.0.23.178", + "-Djava.util.logging.SimpleFormatter.format='%1$tF %1$tT %4$-7s %5$s %n'", + testName + }; + return options; + } +}
--- a/test/sun/management/jdp/JdpDoSomething.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/sun/management/jdp/JdpDoSomething.java Fri Nov 15 07:14:23 2013 -0800 @@ -34,7 +34,7 @@ private static final String lockFileName = "JdpDoSomething.lck"; private static final boolean verbose = false; - public static boolean getVerbose(){ + public static boolean getVerbose() { return verbose; } @@ -61,7 +61,7 @@ } public static void compaireJdpPacketEx(JdpJmxPacket p1, JdpJmxPacket p2) - throws JdpException { + throws JdpException { if (!Objects.equals(p1, p1)) { throw new JdpException("Packet mismatch error");
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/sun/management/jdp/JdpOffTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * A JVM with JDP off should not send multicast JDP packets at all. + * com.sun.management.jmxremote.autodiscovery=false should be respected. + * + * @author Alex Schenkman + * @test JdpOffTest.java + * @summary Assert that no JDP packets are sent to the default address and port. + * @library /lib/testlibrary + * @build ClientConnection JdpTestUtil JdpTestCase JdpOffTestCase DynamicLauncher + * @run main JdpOffTest + */ + + +public class JdpOffTest extends DynamicLauncher { + + final String testName = "JdpOffTestCase"; + + public static void main(String[] args) throws Exception { + DynamicLauncher launcher = new JdpOffTest(); + launcher.run(); + } + + /** + * Send Jdp multicast packets to the specified IP and port, 224.0.1.2:1234 + */ + protected String[] options() { + String[] options = { + "-Dcom.sun.management.jmxremote.authenticate=false", + "-Dcom.sun.management.jmxremote.ssl=false", + "-Dcom.sun.management.jmxremote=true", + "-Dcom.sun.management.jmxremote.port=" + String.valueOf(jmxPort), + "-Dcom.sun.management.jmxremote.autodiscovery=false", + "-Dcom.sun.management.jdp.pause=1", + "-Dcom.sun.management.jdp.name=" + jdpName, + "-Djava.util.logging.SimpleFormatter.format='%1$tF %1$tT %4$-7s %5$s %n'", + testName + }; + return options; + } + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/sun/management/jdp/JdpOffTestCase.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * A JVM with JDP off should not send multicast JDP packets at all. + * com.sun.management.jmxremote.autodiscovery=false should be respected. + */ + +import java.net.SocketTimeoutException; +import java.util.Map; + +public class JdpOffTestCase extends JdpTestCase { + + private boolean testPassed = false; + + public JdpOffTestCase(ClientConnection connection) { + super(connection); + } + + /** + * Subclasses: JdpOnTestCase and JdpOffTestCase have different messages. + */ + @Override + protected String initialLogMessage() { + return "Expecting NOT to receive any packets with jdp.name=" + connection.instanceName; + } + + /** + * The socket has not received anything, and this is the expected behavior. + */ + @Override + protected void onSocketTimeOut(SocketTimeoutException e) throws Exception { + log.fine("No packages received. Test passed!"); + testPassed = true; + } + + + /** + * This method is executed after a correct Jdp packet, coming from this VM has been received. + * + * @param payload A dictionary containing the data if the received Jdp packet. + */ + @Override + protected void packetFromThisVMReceived(Map<String, String> payload) throws Exception { + String message = "Jdp packet from this VM received. This should not happen!"; + log.severe(message); + throw new Exception(message); + } + + + /** + * The test should stop after the socket has timed out. See onSocketTimeOut {@link}. + */ + @Override + protected boolean shouldContinue() { + return !testPassed; + } + + public static void main(String[] args) throws Exception { + JdpTestCase client = new JdpOffTestCase(new ClientConnection()); + client.run(); + } + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/sun/management/jdp/JdpOnTestCase.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,106 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * A JVM with JDP on should send multicast JDP packets regularly. + * + * See main for more information on running this test manually. + * See Launcher classes for automated runs. + * + */ + +import java.net.SocketTimeoutException; +import java.util.Map; + +public class JdpOnTestCase extends JdpTestCase { + + private int receivedJDPpackets = 0; + + public JdpOnTestCase(ClientConnection connection) { + super(connection); + } + + /** + * Subclasses: JdpOnTestCase and JdpOffTestCase have different messages. + */ + @Override + protected String initialLogMessage() { + return "Waiting for 3 packets with jdp.name=" + connection.instanceName; + } + + /** + * This method is executed after a correct Jdp packet (coming from this VM) has been received. + * + * @param payload A dictionary containing the data if the received Jdp packet. + */ + protected void packetFromThisVMReceived(Map<String, String> payload) { + receivedJDPpackets++; + final String jdpName = payload.get("INSTANCE_NAME"); + log.fine("Received correct JDP packet #" + String.valueOf(receivedJDPpackets) + + ", jdp.name=" + jdpName); + } + + /** + * The socket should not timeout. + * It is set to wait for 10 times the defined pause between Jdp packet. See JdpOnTestCase.TIME_OUT_FACTOR. + */ + @Override + protected void onSocketTimeOut(SocketTimeoutException e) throws Exception { + String message = "Timed out waiting for JDP packet. Should arrive within " + + connection.pauseInSeconds + " seconds, but waited for " + + timeOut + " seconds."; + log.severe(message); + throw new Exception(message, e); + } + + /** + * After receiving three Jdp packets the test should end. + */ + @Override + protected boolean shouldContinue() { + return receivedJDPpackets < 3; + } + + /** + * To run this test manually you might need the following VM options: + * <p/> + * -Dcom.sun.management.jmxremote.authenticate=false + * -Dcom.sun.management.jmxremote.ssl=false + * -Dcom.sun.management.jmxremote.port=4711 (or some other port number) + * -Dcom.sun.management.jmxremote=true + * -Dcom.sun.management.jmxremote.autodiscovery=true + * -Dcom.sun.management.jdp.pause=1 + * -Dcom.sun.management.jdp.name=alex (or some other string to identify this VM) + * <p/> + * Recommended for nice output: + * -Djava.util.logging.SimpleFormatter.format="%1$tF %1$tT %4$-7s %5$s %n" + * + * @param args + * @throws Exception + */ + public static void main(String[] args) throws Exception { + JdpTestCase client = new JdpOnTestCase(new ClientConnection()); + client.run(); + } + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/sun/management/jdp/JdpSpecificAddressTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * A JVM with JDP on should send multicast JDP packets regularly. + * + * @author Alex Schenkman + * @test JdpSpecificAddressTest + * @summary Assert that we can read JDP packets from a multicast socket connection, on specific IP and port. + * @library /lib/testlibrary + * @build ClientConnection JdpTestUtil JdpTestCase JdpOnTestCase DynamicLauncher + * @run main JdpSpecificAddressTest + */ + + +public class JdpSpecificAddressTest extends DynamicLauncher { + + final String testName = "JdpOnTestCase"; + + public static void main(String[] args) throws Exception { + DynamicLauncher launcher = new JdpSpecificAddressTest(); + launcher.run(); + } + + /** + * Send Jdp multicast packets to the specified IP and port, 224.0.1.2:1234 + */ + protected String[] options() { + String[] options = { + "-Dcom.sun.management.jmxremote.authenticate=false", + "-Dcom.sun.management.jmxremote.ssl=false", + "-Dcom.sun.management.jmxremote=true", + "-Dcom.sun.management.jmxremote.port=" + String.valueOf(jmxPort), + "-Dcom.sun.management.jmxremote.autodiscovery=true", + "-Dcom.sun.management.jdp.pause=1", + "-Dcom.sun.management.jdp.name=" + jdpName, + "-Dcom.sun.management.jdp.address=224.0.1.2", + "-Dcom.sun.management.jdp.port=1234", + "-Djava.util.logging.SimpleFormatter.format='%1$tF %1$tT %4$-7s %5$s %n'", + testName + }; + return options; + } + +}
--- a/test/sun/management/jdp/JdpTest.sh Thu Nov 14 23:32:31 2013 -0800 +++ b/test/sun/management/jdp/JdpTest.sh Fri Nov 15 07:14:23 2013 -0800 @@ -33,7 +33,7 @@ # temporary disable jcmd related tests # _testsuite="01,02,03,04,05" -_testsuite="01,02,04" +_testsuite="01" _pwd=`pwd`
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/sun/management/jdp/JdpTestCase.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,220 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * A JVM with JDP on should send multicast JDP packets regularly. + * Look at JdpOnTestCase.java and JdpOffTestCase.java + */ + + +import sun.management.jdp.JdpJmxPacket; + +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.DatagramPacket; +import java.net.MulticastSocket; +import java.net.SocketTimeoutException; +import java.util.Arrays; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +public abstract class JdpTestCase { + final Logger log = Logger.getLogger("sun.management.jdp"); + final int MAGIC = 0xC0FFEE42; // Jdp magic number. + private static final int BUFFER_LENGTH = 64 * 1024; // max UDP size, except for IPv6 jumbograms. + private final int TIME_OUT_FACTOR = 10; // Socket times out after 10 times the jdp pause. + protected int timeOut; + private long startTime; + protected ClientConnection connection; + + public JdpTestCase(ClientConnection connection) { + this.connection = connection; + JdpTestUtil.enableConsoleLogging(log, Level.ALL); + } + + public void run() throws Exception { + log.fine("Test started."); + log.fine("Listening for multicast packets at " + connection.address.getHostAddress() + + ":" + String.valueOf(connection.port)); + log.fine(initialLogMessage()); + log.fine("Pause in between packets is: " + connection.pauseInSeconds + " seconds."); + + startTime = System.currentTimeMillis(); + timeOut = connection.pauseInSeconds * TIME_OUT_FACTOR; + log.fine("Timeout set to " + String.valueOf(timeOut) + " seconds."); + + MulticastSocket socket = connection.connectWithTimeout(timeOut * 1000); + + byte[] buffer = new byte[BUFFER_LENGTH]; + DatagramPacket datagram = new DatagramPacket(buffer, buffer.length); + + do { + try { + socket.receive(datagram); + onReceived(extractUDPpayload(datagram)); + } catch (SocketTimeoutException e) { + onSocketTimeOut(e); + } + + if (hasTestLivedLongEnough()) { + shutdown(); + } + + } while (shouldContinue()); + log.fine("Test ended successfully."); + } + + /** + * Subclasses: JdpOnTestCase and JdpOffTestCase have different messages. + */ + protected abstract String initialLogMessage(); + + + /** + * Executed when the socket receives a UDP packet. + */ + private void onReceived(byte[] packet) throws Exception { + if (isJDP(packet)) { + Map<String, String> payload = checkStructure(packet); + jdpPacketReceived(payload); + } else { + log.fine("Non JDP packet received, ignoring it."); + } + } + + /** + * Determine whether the test should end. + * + * @return + */ + abstract protected boolean shouldContinue(); + + /** + * This method is executed when the socket has not received any packet for timeOut seconds. + */ + abstract protected void onSocketTimeOut(SocketTimeoutException e) throws Exception; + + /** + * This method is executed after a correct Jdp packet has been received. + * + * @param payload A dictionary containing the data if the received Jdp packet. + */ + private void jdpPacketReceived(Map<String, String> payload) throws Exception { + final String instanceName = payload.get("INSTANCE_NAME"); + if (instanceName.equals(connection.instanceName)) { + packetFromThisVMReceived(payload); + } else { + packetFromOtherVMReceived(payload); + } + } + + /** + * This method is executed after a correct Jdp packet, coming from this VM has been received. + * + * @param payload A dictionary containing the data if the received Jdp packet. + */ + protected abstract void packetFromThisVMReceived(Map<String, String> payload) throws Exception; + + + /** + * This method is executed after a correct Jdp packet, coming from another VM has been received. + * + * @param payload A dictionary containing the data if the received Jdp packet. + */ + protected void packetFromOtherVMReceived(Map<String, String> payload) { + final String jdpName = payload.get("INSTANCE_NAME"); + log.fine("Ignoring JDP packet sent by other VM, jdp.name=" + jdpName); + } + + + /** + * The test should stop if it has been 12 times the jdp.pause. + * jdp.pause is how many seconds in between packets. + * <p/> + * This timeout (12 times)is slightly longer than the socket timeout (10 times) on purpose. + * In the off test case, the socket should time out first. + * + * @return + */ + protected boolean hasTestLivedLongEnough() { + long now = System.currentTimeMillis(); + boolean haslivedLongEnough = (now - startTime) > (timeOut * 1.2 * 1000); + return haslivedLongEnough; + } + + /** + * This exit condition arises when we receive UDP packets but they are not valid Jdp. + */ + protected void shutdown() throws Exception { + log.severe("Shutting down the test."); + throw new Exception("Not enough JDP packets received before timeout!"); + } + + /** + * Assert that this Jdp packet contains the required two keys. + * <p/> + * We expect zero packet corruption and thus fail on the first corrupted packet. + * This might need revision. + */ + protected Map<String, String> checkStructure(byte[] packet) throws UnsupportedEncodingException { + Map<String, String> payload = JdpTestUtil.readPayload(packet); + assertTrue(payload.size() >= 2, "JDP should have minimun 2 entries."); + assertTrue(payload.get(JdpJmxPacket.UUID_KEY).length() > 0); + assertTrue(payload.get(JdpJmxPacket.JMX_SERVICE_URL_KEY).length() > 0); + return payload; + } + + + /** + * Check if packet has correct JDP magic number. + * + * @param packet + * @return + * @throws IOException + */ + private boolean isJDP(byte[] packet) throws IOException { + int magic = JdpTestUtil.decode4ByteInt(packet, 0); + return (magic == MAGIC); + } + + private byte[] extractUDPpayload(DatagramPacket datagram) { + byte[] data = Arrays.copyOf(datagram.getData(), datagram.getLength()); + return data; + } + + /** + * Hack until I find a way to use TestNG's assertions. + */ + private void assertTrue(boolean assertion, String message) { + if (assertion == false) { + log.severe(message); + assert (false); + } + } + + private void assertTrue(boolean assertion) { + assertTrue(assertion, ""); + } + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/sun/management/jdp/JdpTestUtil.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,142 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +import java.io.UnsupportedEncodingException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import java.util.logging.ConsoleHandler; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * Utility methods for parsing raw JDP packets. + * + * @author Alex Schenkman + */ +public class JdpTestUtil { + + static final int HEADER_SIZE = 4 + 2; // magic + protocol version + + /** + * Reads two bytes, starting at the given position, + * and converts them into an int. + * + * @param data + * @param pos + * @return + */ + static int decode2ByteInt(byte[] data, int pos) { + return (((data[pos] & 0xFF) << 8) | (data[pos + 1] & 0xFF)); + } + + /** + * Reads four bytes, starting at the given position, + * and converts them into an int. + * + * @param data + * @param pos + * @return + */ + static int decode4ByteInt(byte[] data, int pos) { + int result = data[pos + 3] & 0xFF; + result = result | ((data[pos + 2] & 0xFF) << 8); + result = result | ((data[pos + 1] & 0xFF) << 16); + result = result | ((data[pos] & 0xFF) << 24); + return result; + } + + /** + * Reads an entry from the given byte array, starting at the given position. + * This is an internal function used by @see readRawPayload(byte[] rawPayload, int size). + * <p/> + * The format of an entry is: + * 2 bytes with the size of the following string. + * n bytes of characters. + * + * @param data + * @param pos + * @return + * @throws UnsupportedEncodingException + */ + static String decodeEntry(byte[] data, int pos) + throws UnsupportedEncodingException { + + int size = JdpTestUtil.decode2ByteInt(data, pos); + pos = pos + 2; + byte[] raw = Arrays.copyOfRange(data, pos, pos + size); + return new String(raw, "UTF-8"); + } + + /** + * Builds a Map with the payload, from the raw data. + * + * @param rawData + * @return + * @throws UnsupportedEncodingException + */ + static Map<String, String> readPayload(byte[] rawData) + throws UnsupportedEncodingException { + + int totalSize = rawData.length; + int payloadSize = totalSize - HEADER_SIZE; + byte[] rawPayload = Arrays.copyOfRange(rawData, HEADER_SIZE, HEADER_SIZE + payloadSize); + Map<String, String> payload = readRawPayload(rawPayload, payloadSize); + return payload; + } + + /** + * Builds a map from the payload's raw data. + * This is an internal function used by @see readPayload(byte[] rawData) + * + * @param rawPayload + * @param size + * @return + * @throws UnsupportedEncodingException + */ + static Map<String, String> readRawPayload(byte[] rawPayload, int size) + throws UnsupportedEncodingException { + + String key, value; + Map<String, String> payload = new HashMap<String, String>(); + + for (int pos = 0; pos < size; ) { + key = decodeEntry(rawPayload, pos); + pos = pos + 2 + key.length(); + value = decodeEntry(rawPayload, pos); + pos = pos + 2 + value.length(); + + payload.put(key, value); + } + return payload; + } + + static void enableConsoleLogging(Logger log, Level level) throws SecurityException { + ConsoleHandler handler = new ConsoleHandler(); + handler.setLevel(level); + log.addHandler(handler); + log.setLevel(level); + } + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/sun/management/jdp/JdpTestUtilTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +import org.testng.annotations.Test; + +import java.io.UnsupportedEncodingException; +import java.util.Map; + +import static jdk.testlibrary.Asserts.assertEquals; + + +/* + Unit test for the utility functions in JdpTestUtil. + These are not meant to be by automatically run by JTREG. + They exists to support test development and should be run by the test developer. +*/ + +public class JdpTestUtilTest { + + @Test + public void testDecodeEntry() throws UnsupportedEncodingException { + byte[] data = {'x', 0, 4, 'a', 'l', 'e', 'x'}; + String result = JdpTestUtil.decodeEntry(data, 1); + assertEquals("alex", result); + } + + @Test + public void testDecode2ByteInt() { + byte[] data = {'x', (byte) 0xff, (byte) 0xff}; + int value = JdpTestUtil.decode2ByteInt(data, 1); + assertEquals(65535, value); + } + + @Test + public void testDecode4ByteInt() { + byte[] data = {'x', (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff}; + int value = JdpTestUtil.decode4ByteInt(data, 1); + assertEquals(0xffffffff, value); + + } + + @Test + public void testReadRawPayload() throws UnsupportedEncodingException { + byte[] data = {0, 3, 'f', 'o', 'o', 0, 4, 'b', 'a', 'r', 's'}; + Map<String, String> payload = JdpTestUtil.readRawPayload(data, data.length); + + assertEquals(1, payload.size()); + assertEquals("bars", payload.get("foo")); + } + + @Test + public void testReadPayload() throws UnsupportedEncodingException { + byte[] data = {1, 2, 3, 4, 1, 2, 0, 3, 'f', 'o', 'o', 0, 4, 'b', 'a', 'r', 's'}; + Map<String, String> payload = JdpTestUtil.readPayload(data); + + assertEquals(1, payload.size()); + assertEquals("bars", payload.get("foo")); + } + +}
--- a/test/sun/management/jdp/JdpUnitTest.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/sun/management/jdp/JdpUnitTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -33,22 +33,22 @@ public class JdpUnitTest { - static byte[] russian_name = {(byte)0xd0,(byte)0xbf,(byte)0xd1,(byte)0x80,(byte)0xd0,(byte)0xbe,(byte)0xd0,(byte)0xb2, - (byte)0xd0,(byte)0xb5,(byte)0xd1,(byte)0x80,(byte)0xd0,(byte)0xba,(byte)0xd0,(byte)0xb0, - (byte)0x20,(byte)0xd1,(byte)0x81,(byte)0xd0,(byte)0xb2,(byte)0xd1,(byte)0x8f,(byte)0xd0, - (byte)0xb7,(byte)0xd0,(byte)0xb8,(byte)0x0a}; + static byte[] russian_name = {(byte) 0xd0, (byte) 0xbf, (byte) 0xd1, (byte) 0x80, (byte) 0xd0, (byte) 0xbe, (byte) 0xd0, (byte) 0xb2, + (byte) 0xd0, (byte) 0xb5, (byte) 0xd1, (byte) 0x80, (byte) 0xd0, (byte) 0xba, (byte) 0xd0, (byte) 0xb0, + (byte) 0x20, (byte) 0xd1, (byte) 0x81, (byte) 0xd0, (byte) 0xb2, (byte) 0xd1, (byte) 0x8f, (byte) 0xd0, + (byte) 0xb7, (byte) 0xd0, (byte) 0xb8, (byte) 0x0a}; /** * This test tests that complete packet is build correctly */ public static void PacketBuilderTest() - throws IOException, JdpException { + throws IOException, JdpException { /* Complete packet test */ { JdpJmxPacket p1 = new JdpJmxPacket(UUID.randomUUID(), "fake://unit-test"); p1.setMainClass("FakeUnitTest"); - p1.setInstanceName( new String(russian_name,"UTF-8")); + p1.setInstanceName(new String(russian_name, "UTF-8")); byte[] b = p1.getPacketData(); JdpJmxPacket p2 = new JdpJmxPacket(b); @@ -68,7 +68,7 @@ JdpDoSomething.compaireJdpPacketEx(p1, p2); } - System.out.println("OK: Test passed"); + System.out.println("OK: Test passed"); }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/sun/management/jdp/PacketTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,121 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +import java.io.IOException; +import java.util.Map; +import java.util.UUID; + +import org.testng.annotations.Test; +import sun.management.jdp.JdpJmxPacket; + +import static org.testng.Assert.assertEquals; + + +/** + * These tests are unit tests used for test development. + * These are not meant to be by automatically run by JTREG. + * They exists to support test development and should be run by the test developer. + * <p/> + * <p/> + * The JDP packet format: + * <p/> + * packet = header + payload + * <p/> + * header = magic + version + * magic = 4 bytes: 0xCOFFEE42 + * version = 2 bytes: 01 (As of 2013-05-01) + * <p/> + * payload = list key/value pairs + * keySize = 2 bytes + * key = (keySize) bytes + * valueSize = 2 bytes + * value = (valueSize) bytes + * <p/> + * <p/> + * Two entries are mandatory in the payload: + * UUID (JdpJmxPacket.UUID_KEY) + * JMX service URL (JdpJmxPacket.JMX_SERVICE_URL_KEY) + * <p/> + * These two entries are optional: + * Main Class (JdpJmxPacket.MAIN_CLASS_KEY) + * Instance name (JdpJmxPacket.INSTANCE_NAME_KEY) + * + * @author Alex Schenkman + * <p/> + * Using TestNG framework. + */ +public class PacketTest { + + final int MAGIC = 0xC0FFEE42; + final UUID id = UUID.randomUUID(); + final String mainClass = "org.happy.Feet"; + final String jmxServiceUrl = "fake://jmxUrl"; + final String instanceName = "Joe"; + + private JdpJmxPacket createDefaultPacket() { + JdpJmxPacket packet = new JdpJmxPacket(id, jmxServiceUrl); + return packet; + } + + private JdpJmxPacket createFullPacket() { + JdpJmxPacket packet = new JdpJmxPacket(id, jmxServiceUrl); + packet.setMainClass(mainClass); + packet.setInstanceName("Joe"); + return packet; + } + + @Test + public void testMagic() throws IOException { + byte[] rawData = createFullPacket().getPacketData(); + int magic = JdpTestUtil.decode4ByteInt(rawData, 0); + assertEquals(MAGIC, magic, "MAGIC does not match!"); + } + + @Test + public void testVersion() throws IOException { + byte[] rawData = createFullPacket().getPacketData(); + assertEquals(1, JdpTestUtil.decode2ByteInt(rawData, 4)); + } + + @Test + public void testAllEntries() throws IOException { + byte[] rawData = createFullPacket().getPacketData(); + Map<String, String> payload = JdpTestUtil.readPayload(rawData); + + assertEquals(4, payload.size()); + assertEquals(mainClass, payload.get(JdpJmxPacket.MAIN_CLASS_KEY)); + assertEquals(id.toString(), payload.get(JdpJmxPacket.UUID_KEY)); + assertEquals(jmxServiceUrl, payload.get(JdpJmxPacket.JMX_SERVICE_URL_KEY)); + assertEquals(instanceName, payload.get(JdpJmxPacket.INSTANCE_NAME_KEY)); + } + + public void testDefaultEntries() throws IOException { + byte[] rawData = createDefaultPacket().getPacketData(); + Map<String, String> payload = JdpTestUtil.readPayload(rawData); + + assertEquals(2, payload.size()); + assertEquals(id.toString(), payload.get(JdpJmxPacket.UUID_KEY)); + assertEquals(jmxServiceUrl, payload.get(JdpJmxPacket.JMX_SERVICE_URL_KEY)); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/sun/management/jdp/PortAlreadyInUseTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +import jdk.testlibrary.OutputAnalyzer; +import jdk.testlibrary.Utils; + +import java.io.IOException; +import java.net.ServerSocket; +import java.util.logging.Logger; + +/** + * This test used for test development and it is not meant to be run by JTReg. + * <p/> + * This test exercises a retry mechanism to avoid a test failure because of + * starting the VM on a busy jmxremote.port. + * <p/> + * To run this test you'll need to add this VM option: -Dtest.jdk=<path-to-jdk> + */ +public class PortAlreadyInUseTest extends DynamicLauncher { + + ServerSocket socket; + final Logger log = Logger.getLogger("PortAlreadyInUse"); + + protected void go() throws Exception { + jmxPort = Utils.getFreePort(); + occupyPort(); + + log.info("Attempting to start a VM using the same port."); + OutputAnalyzer out = this.runVM(); + out.shouldContain("Port already in use"); + log.info("Failed as expected."); + + log.info("Trying again using retries."); + this.run(); + } + + private void occupyPort() throws IOException { + socket = new ServerSocket(jmxPort); + log.info("Occupying port " + String.valueOf(jmxPort)); + } + + protected String[] options() { + String[] options = { + "-Dcom.sun.management.jmxremote.authenticate=false", + "-Dcom.sun.management.jmxremote.ssl=false", + "-Dcom.sun.management.jmxremote=true", + "-Dcom.sun.management.jmxremote.port=" + String.valueOf(jmxPort), + "-version" + }; + return options; + } + + public static void main(String[] args) throws Exception { + PortAlreadyInUseTest test = new PortAlreadyInUseTest(); + test.go(); + } + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/sun/management/jdp/README Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,74 @@ +The following test were contributed by dmitry.samersoff@oracle.com and will be ported in the near future: +JdpClient.java +JdpDoSomething.java +JdpTest.sh +JdpUnitTest.java + + +JdpTest.sh: +------------------------------------- +test_01 - basic test, check if JDP packet assembler and other + parts of JDP is not broken + +test_02 - test if JDP starts with custom parameters. (disabled) + +test_03 - test if jcmd is able to start jdp with + custom parameters (disabled) + +test_04 - test if JDP starts with default parameters (disabled) + +test_05 - test if jcmd is able to start jdp with default + parameters (disabled) + +Only test_01 is enabled at the moment. + +JdpUnitTest.java: contains unit tests used under development. + + +========================================================================== +The other Java-based tests in this folder are contributed by alex.schenkman@oracle.com + +There are three Jdp test cases in this folder: + 1) Jdp is turned off. + 2) Jdp is turned on, using default values + 3) Jdp is turned on, using a specific IP and port + +For the test cases above, the actual tests are: + 1) JdpOffTestCase.java + 2) JdpOnTestCase.java + 3) JdpOnTestCase.java, using different parameters. +All these three test are implemented as subclasses of JdpTestCase.java. + +For all of these three tests, the VM sending the Jdp packets is also catching them. +That is, while the VM itself is sending Jdp multicast packets, the program executed by +that same VM is listening for those packets. + +These tests above work as follows: + 1) Start a VM with Jdp off, make sure that no Jdp packets arrive at the default IP/port. + 2) Start a VM with Jdp on, make sure three packets arrive at the default IP/port. + 3) Start a VM with Jdp on a specific IP/port, make sure three packets arrive. + +To make sure that we are not catching Jdp packets from some other VM, the INSTANCE_NAME +attribute is set to a unique id. The setting of this unique id is done by a launcher. +There are three launchers, one for each of the tests above: + 1) JdpOffTest.java + 2) JdpDefaultsTest.java + 3) JdpSpecificAddressTest.java +All these three tests are implemented as subclasses of DynamicLauncher.java. + +So, JdpOffTest.class will execute JdpOffTestCase.class (using ProcessTools), +and that will exercise test case nr.1; and so on for the other cases. + +These launchers are also the entry points for JTreg. +This means that JTreg will only see these launchers as tests. +You might run the tests without JTreg, as long as you specify all the VM optiones needed. +Look at the launcher to determine what is needed. Do not forget -Dtest.jdk, that is set by JTreg. + +JMX must be enabled in order to enable Jdp. This requires a free port (com.sun.management.jmxremote.port). +To avoid port-busy conflicts, DynamicLauncher.java will try to find a free port up to three times. + +There are some other tests used for test development, and not meant to be run automatically by JTreg. + 1) PortAlreadyInUse.java, used to test the retry mechanism to find a free port. + 2) PacketTest.java, Jdp packet sanity. + 3) JdpTestUtil.java, Utility functions to read a Jdp packet. + 4) JdpTestUtilTest.java, Unit tests for JdpTestUtil.java
--- a/test/sun/management/jmxremote/bootstrap/CustomLauncherTest.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/sun/management/jmxremote/bootstrap/CustomLauncherTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -29,7 +29,6 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; -import jdk.testlibrary.JdkFinder; import jdk.testlibrary.ProcessTools; /**
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/sun/reflect/AnonymousNewInstance/ManyNewInstanceAnonTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 7194897 + * @summary JSR 292: Cannot create more than 16 instances of an anonymous class + * @author Robert Field + * @library /lib/testlibrary + * @compile -XDignore.symbol.file ManyNewInstanceAnonTest.java + * @run main ClassFileInstaller ManyNewInstanceAnonTest + * @run main/othervm -Xbootclasspath/a:. -Xverify:all ManyNewInstanceAnonTest + * @run main/othervm -Xbootclasspath/a:. -Xverify:all -Dsun.reflection.noInflation=true ManyNewInstanceAnonTest + */ +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import sun.misc.Unsafe; + +public class ManyNewInstanceAnonTest { + + static final int REPS = 20; + static final Class<?> klass = ManyNewInstanceAnonTest.class; + + public static void main(String[] args) throws Exception { + Class<?> c = Unsafe.getUnsafe().defineAnonymousClass(klass, readClassFile(), null); + for (int i = 0; i < REPS; ++i) { + System.out.printf("%d: %s\n", i, c.newInstance()); + } + System.out.println("Passed."); + } + + private static byte[] readClassFile() throws Exception { + try (InputStream in = klass.getResourceAsStream(klass.getSimpleName() + ".class"); + ByteArrayOutputStream out = new ByteArrayOutputStream()) + { + int b; + while ((b = in.read()) != -1) { + out.write(b); + } + return out.toByteArray(); + } + } +}
--- a/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/AsyncSSLSocketClose.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/AsyncSSLSocketClose.java Fri Nov 15 07:14:23 2013 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,15 +21,21 @@ * questions. */ +// +// SunJSSE does not support dynamic system properties, no way to re-use +// system properties in samevm/agentvm mode. +// +// The test may timeout occasionally on heavy loaded system because +// there are lot of TLS transactions involved. Frequent timeout(s) should +// be analyzed further. +// + /* * @test * @bug 6447412 * @summary Issue with socket.close() for ssl sockets when poweroff on * other system * @run main/othervm AsyncSSLSocketClose - * - * SunJSSE does not support dynamic system properties, no way to re-use - * system properties in samevm/agentvm mode. */ import javax.net.ssl.*;
--- a/test/sun/security/ssl/javax/net/ssl/TLSv12/DisabledShortRSAKeys.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/sun/security/ssl/javax/net/ssl/TLSv12/DisabledShortRSAKeys.java Fri Nov 15 07:14:23 2013 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -152,12 +152,9 @@ serverReady = true; try (SSLSocket sslSocket = (SSLSocket)sslServerSocket.accept()) { - InputStream sslIS = sslSocket.getInputStream(); - OutputStream sslOS = sslSocket.getOutputStream(); - - sslIS.read(); - sslOS.write('A'); - sslOS.flush(); + try (InputStream sslIS = sslSocket.getInputStream()) { + sslIS.read(); + } throw new Exception( "RSA keys shorter than 1024 bits should be disabled"); @@ -194,12 +191,10 @@ sslSocket.setEnabledCipherSuites( new String[] {"TLS_DHE_RSA_WITH_AES_128_CBC_SHA"}); - InputStream sslIS = sslSocket.getInputStream(); - OutputStream sslOS = sslSocket.getOutputStream(); - - sslOS.write('B'); - sslOS.flush(); - sslIS.read(); + try (OutputStream sslOS = sslSocket.getOutputStream()) { + sslOS.write('B'); + sslOS.flush(); + } throw new Exception( "RSA keys shorter than 1024 bits should be disabled"); @@ -317,6 +312,7 @@ * Fork off the other side, then do your work. */ DisabledShortRSAKeys() throws Exception { + Exception startException = null; try { if (separateServerThread) { startServer(true); @@ -326,16 +322,20 @@ startServer(false); } } catch (Exception e) { - // swallow for now. Show later + startException = e; } /* * Wait for other side to close down. */ if (separateServerThread) { - serverThread.join(); + if (serverThread != null) { + serverThread.join(); + } } else { - clientThread.join(); + if (clientThread != null) { + clientThread.join(); + } } /* @@ -344,36 +344,44 @@ */ Exception local; Exception remote; - String whichRemote; if (separateServerThread) { remote = serverException; local = clientException; - whichRemote = "server"; } else { remote = clientException; local = serverException; - whichRemote = "client"; + } + + Exception exception = null; + + /* + * Check various exception conditions. + */ + if ((local != null) && (remote != null)) { + // If both failed, return the curthread's exception. + local.initCause(remote); + exception = local; + } else if (local != null) { + exception = local; + } else if (remote != null) { + exception = remote; + } else if (startException != null) { + exception = startException; } /* - * If both failed, return the curthread's exception, but also - * print the remote side Exception + * If there was an exception *AND* a startException, + * output it. */ - if ((local != null) && (remote != null)) { - System.out.println(whichRemote + " also threw:"); - remote.printStackTrace(); - System.out.println(); - throw local; + if (exception != null) { + if (exception != startException && startException != null) { + exception.addSuppressed(startException); + } + throw exception; } - if (remote != null) { - throw remote; - } - - if (local != null) { - throw local; - } + // Fall-through: no exception to throw! } void startServer(boolean newThread) throws Exception {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/sun/security/tools/jarsigner/CertChainUnclosed.java Fri Nov 15 07:14:23 2013 -0800 @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * @test + * @bug 8027991 + * @summary InputStream should be closed in sun.security.tools.jarsigner.Main + * @run main/othervm CertChainUnclosed + */ + +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.Locale; + +public class CertChainUnclosed { + + public static void main(String[] args) throws Exception { + String os = java.security.AccessController.doPrivileged( + new sun.security.action.GetPropertyAction("os.name")); + if (!os.toUpperCase(Locale.US).contains("WINDOWS")) { + System.out.println("Not Windows. Skip test."); + return; + } + + kt("-genkeypair -alias a -dname CN=A"); + kt("-exportcert -file a.crt -alias a"); + Files.copy(Paths.get(System.getProperty("test.src"), "AlgOptions.jar"), + Paths.get("test.jar")); + sun.security.tools.jarsigner.Main.main( + "-storepass changeit -keystore jks -certchain a.crt test.jar a" + .split(" ")); + + // On Windows, if the file is still opened (or not if GC was + // performed) and the next line would fail + Files.delete(Paths.get("a.crt")); + } + + static void kt(String args) throws Exception { + sun.security.tools.keytool.Main.main( + ("-keystore jks -storepass changeit -keypass changeit -keyalg rsa " + + args).split(" ")); + } +}
--- a/test/sun/text/resources/LocaleData Thu Nov 14 23:32:31 2013 -0800 +++ b/test/sun/text/resources/LocaleData Fri Nov 15 07:14:23 2013 -0800 @@ -7687,3 +7687,6 @@ # bug 6931564 LocaleNames/sv/ZA=Sydafrika + +# bug 8027695 +FormatData/sv_SE/NumberPatterns/2=#,##0 %
--- a/test/sun/text/resources/LocaleDataTest.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/sun/text/resources/LocaleDataTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -35,7 +35,7 @@ * 6645405 6650730 6910489 6573250 6870908 6585666 6716626 6914413 6916787 * 6919624 6998391 7019267 7020960 7025837 7020583 7036905 7066203 7101495 * 7003124 7085757 7028073 7171028 7189611 8000983 7195759 8004489 8006509 - * 7114053 7074882 7040556 8013836 8021121 6192407 6931564 + * 7114053 7074882 7040556 8013836 8021121 6192407 6931564 8027695 * @summary Verify locale data * */
--- a/test/sun/tools/jstatd/JstatdTest.java Thu Nov 14 23:32:31 2013 -0800 +++ b/test/sun/tools/jstatd/JstatdTest.java Fri Nov 15 07:14:23 2013 -0800 @@ -291,6 +291,8 @@ launcher.addVMArg("-XX:+UsePerfData"); String testSrc = System.getProperty("test.src"); File policy = new File(testSrc, "all.policy"); + assertTrue(policy.exists() && policy.isFile(), + "Security policy " + policy.getAbsolutePath() + " does not exist or not a file"); launcher.addVMArg("-Djava.security.policy=" + policy.getAbsolutePath()); if (port != null) { launcher.addToolArg("-p");