Deprecated List (Java SE 9 & JDK 9 )

# Deprecated API

## Contents

- Deprecated For Removal
- Deprecated Modules
- Deprecated Interfaces
- Deprecated Classes
- Deprecated Enums
- Deprecated Exceptions
- Deprecated Annotation Types
- Deprecated Fields
- Deprecated Methods
- Deprecated Constructors
- Deprecated Enum Constants
- Deprecated Annotation Type Elements

- Deprecated For Removal
  Element | Description
  --- | ---
  com.sun.java.accessibility.util.AWTEventMonitor.actionListener | This field is unused.
  com.sun.java.accessibility.util.AWTEventMonitor.adjustmentListener | This field is unused.
  java.lang.SecurityManager.checkAwtEventQueueAccess() | This method was originally used to check if the calling thread could access the AWT event queue. The method has been obsoleted and code should instead use `SecurityManager.checkPermission(java.security.Permission)` to check `AWTPermission("accessEventQueue")`. This method is subject to removal in a future version of Java SE.
  java.lang.SecurityManager.checkMemberAccess(Class<?>, int) | This method relies on the caller being at a stack depth of 4 which is error-prone and cannot be enforced by the runtime. Users of this method should instead invoke `SecurityManager.checkPermission(java.security.Permission)` directly. This method is subject to removal in a future version of Java SE.
  java.lang.SecurityManager.checkSystemClipboardAccess() | This method was originally used to check if the calling thread could access the system clipboard. The method has been obsoleted and code should instead use `SecurityManager.checkPermission(java.security.Permission)` to check `AWTPermission("accessClipboard")`. This method is subject to removal in a future version of Java SE.
  java.lang.SecurityManager.checkTopLevelWindow(Object) | This method was originally used to check if the calling thread was trusted to bring up a top-level window. The method has been obsoleted and code should instead use `SecurityManager.checkPermission(java.security.Permission)` to check `AWTPermission("showWindowWithoutWarningBanner")`. This method is subject to removal in a future version of Java SE.
  java.lang.SecurityManager.classDepth(String) | This type of security checking is not recommended. It is recommended that the `checkPermission` call be used instead. This method is subject to removal in a future version of Java SE.
  java.lang.SecurityManager.classLoaderDepth() | This type of security checking is not recommended. It is recommended that the `checkPermission` call be used instead. This method is subject to removal in a future version of Java SE.
  java.lang.Compiler | JIT compilers and their technologies vary too widely to be controlled effectively by a standardized interface. As such, many JIT compiler implementations ignore this interface, and are instead controllable by implementation-specific mechanisms such as command-line options. This class is subject to removal in a future version of Java SE.
  com.sun.java.accessibility.util.AWTEventMonitor.componentListener | This field is unused.
  com.sun.java.accessibility.util.AWTEventMonitor.componentWithFocus | This field is unused; to get the component with focus use the getComponentWithFocus method.
  com.sun.java.accessibility.util.AWTEventMonitor.containerListener | This field is unused.
  java.lang.Thread.countStackFrames() | The definition of this call depends on `Thread.suspend()`, which is deprecated. Further, the results of this call were never well-defined. This method is subject to removal in a future version of Java SE.
  java.lang.SecurityManager.currentClassLoader() | This type of security checking is not recommended. It is recommended that the `checkPermission` call be used instead. This method is subject to removal in a future version of Java SE.
  java.lang.SecurityManager.currentLoadedClass() | This type of security checking is not recommended. It is recommended that the `checkPermission` call be used instead. This method is subject to removal in a future version of Java SE.
  java.lang.Thread.destroy() | This method was originally designed to destroy this thread without any cleanup. Any monitors it held would have remained locked. However, the method was never implemented. If it were to be implemented, it would be deadlock-prone in much the manner of `Thread.suspend()`. If the target thread held a lock protecting a critical system resource when it was destroyed, no thread could ever access this resource again. If another thread ever attempted to lock this resource, deadlock would result. Such deadlocks typically manifest themselves as "frozen" processes. For more information, see Why are Thread.stop, Thread.suspend and Thread.resume Deprecated?. This method is subject to removal in a future version of Java SE.
  com.sun.java.accessibility.util.AWTEventMonitor.focusListener | This field is unused.
  java.lang.SecurityManager.getInCheck() | This type of security checking is not recommended. It is recommended that the `checkPermission` call be used instead. This method is subject to removal in a future version of Java SE.
  java.lang.Runtime.getLocalizedInputStream(InputStream) | As of JDK 1.1, the preferred way to translate a byte stream in the local encoding into a character stream in Unicode is via the `InputStreamReader` and `BufferedReader` classes. This method is subject to removal in a future version of Java SE.
  java.lang.Runtime.getLocalizedOutputStream(OutputStream) | As of JDK 1.1, the preferred way to translate a Unicode character stream into a byte stream in the local encoding is via the `OutputStreamWriter`, `BufferedWriter`, and `PrintWriter` classes. This method is subject to removal in a future version of Java SE.
  java.lang.SecurityManager.inCheck | This type of security checking is not recommended. It is recommended that the `checkPermission` call be used instead. This field is subject to removal in a future version of Java SE.
  java.lang.SecurityManager.inClass(String) | This type of security checking is not recommended. It is recommended that the `checkPermission` call be used instead. This method is subject to removal in a future version of Java SE.
  java.lang.SecurityManager.inClassLoader() | This type of security checking is not recommended. It is recommended that the `checkPermission` call be used instead. This method is subject to removal in a future version of Java SE.
  com.sun.java.accessibility.util.AWTEventMonitor.itemListener | This field is unused.
  java.activation
  java.corba
  java.se.ee
  java.transaction
  java.xml.bind
  java.xml.ws
  java.xml.ws.annotation
  jdk.policytool |
  com.sun.java.accessibility.util.AWTEventMonitor.keyListener | This field is unused.
  com.sun.java.accessibility.util.AWTEventMonitor.mouseListener | This field is unused.
  com.sun.java.accessibility.util.AWTEventMonitor.mouseMotionListener | This field is unused.
  com.sun.security.auth.PolicyFile | As of JDK 1.4, replaced by `sun.security.provider.PolicyFile`. This class is entirely deprecated. This class is subject to removal in a future version of Java SE.
  java.lang.Runtime.runFinalizersOnExit(boolean) | This method is inherently unsafe. It may result in finalizers being called on live objects while other threads are concurrently manipulating those objects, resulting in erratic behavior or deadlock. This method is subject to removal in a future version of Java SE.
  java.lang.System.runFinalizersOnExit(boolean) | This method is inherently unsafe. It may result in finalizers being called on live objects while other threads are concurrently manipulating those objects, resulting in erratic behavior or deadlock. This method is subject to removal in a future version of Java SE.
  com.sun.security.auth.module.SolarisLoginModule | As of JDK1.4, replaced by `com.sun.security.auth.module.UnixLoginModule`. This LoginModule is entirely deprecated and is here to allow for a smooth transition to the new UnixLoginModule. This class is subject to removal in a future version of Java SE.
  com.sun.security.auth.SolarisNumericGroupPrincipal | As of JDK 1.4, replaced by `UnixNumericGroupPrincipal`. This class is entirely deprecated. This class is subject to removal in a future version of Java SE.
  com.sun.security.auth.SolarisNumericUserPrincipal | As of JDK 1.4, replaced by `UnixNumericUserPrincipal`. This class is entirely deprecated. This class is subject to removal in a future version of Java SE.
  com.sun.security.auth.SolarisPrincipal | As of JDK 1.4, replaced by `UnixPrincipal`. This class is entirely deprecated. This class is subject to removal in a future version of Java SE.
  com.sun.security.auth.module.SolarisSystem | replaced by `UnixSystem`. This class is subject to removal in a future version of Java SE.
  com.sun.tools.doclets.standard.Standard | The doclet has been superseded by its replacement, `StandardDoclet`.
  java.lang.Thread.stop(Throwable) | This method was originally designed to force a thread to stop and throw a given `Throwable` as an exception. It was inherently unsafe (see `Thread.stop()` for details), and furthermore could be used to generate exceptions that the target thread was not prepared to handle. For more information, see Why are Thread.stop, Thread.suspend and Thread.resume Deprecated?. This method is subject to removal in a future version of Java SE.
  com.sun.java.accessibility.util.AWTEventMonitor.textListener | This field is unused.
  java.lang.Runtime.traceInstructions(boolean) | This method was intended to control instruction tracing. It has been superseded by JVM-specific tracing mechanisms. This method is subject to removal in a future version of Java SE.
  java.lang.Runtime.traceMethodCalls(boolean) | This method was intended to control method call tracing. It has been superseded by JVM-specific tracing mechanisms. This method is subject to removal in a future version of Java SE.
  com.sun.java.accessibility.util.AWTEventMonitor.windowListener | This field is unused.
  com.sun.security.auth.X500Principal | A new X500Principal class is available in the Java platform. This X500Principal classs is entirely deprecated and is here to allow for a smooth transition to the new class. This class is subject to removal in a future version of Java SE.

- Deprecated Modules
  Module | Description
  --- | ---
  java.activation
  java.corba
  java.se.ee
  java.transaction
  java.xml.bind
  java.xml.ws
  java.xml.ws.annotation
  jdk.policytool |

- Deprecated Interfaces
  Interface | Description
  --- | ---
  java.security.acl.Acl | This package has been replaced by `java.security.Policy` and related classes since 1.2.
  java.security.acl.AclEntry | This package has been replaced by `java.security.Policy` and related classes since 1.2.
  com.sun.javadoc.AnnotatedType | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  com.sun.javadoc.AnnotationDesc | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  com.sun.javadoc.AnnotationDesc.ElementValuePair | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  com.sun.javadoc.AnnotationTypeDoc | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  com.sun.javadoc.AnnotationTypeElementDoc | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  com.sun.javadoc.AnnotationValue | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  java.applet.AppletContext | The Applet API is deprecated. See the java.applet package documentation for further information.
  java.beans.AppletInitializer | The Applet API is deprecated. See the java.applet package documentation for further information.
  java.applet.AppletStub | The Applet API is deprecated. See the java.applet package documentation for further information.
  org.xml.sax.AttributeList | This interface has been replaced by the SAX2 `Attributes` interface, which includes Namespace support.
  java.applet.AudioClip | The Applet API is deprecated. See the java.applet package documentation for further information.
  java.security.Certificate | A new certificate handling package is created in the Java platform. This Certificate interface is entirely deprecated and is here to allow for a smooth transition to the new package.
  com.sun.javadoc.ClassDoc | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  com.sun.javadoc.ConstructorDoc | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  com.sun.jarsigner.ContentSignerParameters | This class has been deprecated.
  com.sun.javadoc.Doc | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  com.sun.javadoc.DocErrorReporter | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  org.xml.sax.DocumentHandler | This interface has been replaced by the SAX2 `ContentHandler` interface, which includes Namespace support.
  org.omg.CORBA.DynAny | Use the new DynAny instead
  org.omg.CORBA.DynArray | Use the new DynArray instead
  org.omg.CORBA.DynEnum | Use the new DynEnum instead
  org.omg.CORBA.DynFixed | Use the new DynFixed instead
  org.omg.CORBA.DynSequence | Use the new DynSequence instead
  org.omg.CORBA.DynStruct | Use the new DynStruct instead
  org.omg.CORBA.DynUnion | Use the new DynUnion instead
  org.omg.CORBA.DynValue | Use the new DynValue instead
  com.sun.javadoc.ExecutableMemberDoc | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  com.sun.javadoc.FieldDoc | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  java.security.acl.Group | This package has been replaced by `java.security.Policy` and related classes since 1.2.
  java.rmi.server.LoaderHandler | no replacement
  java.util.logging.LoggingMXBean | `LoggingMXBean` is no longer a `platform MXBean` and is replaced with `PlatformLoggingMXBean`. It will not register in the platform `MBeanServer`. Use `ManagementFactory.getPlatformMXBean(PlatformLoggingMXBean.class)` instead.
  com.sun.javadoc.MemberDoc | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  com.sun.javadoc.MethodDoc | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  java.util.Observer | This interface has been deprecated. See the `Observable` class for further information.
  java.security.acl.Owner | This package has been replaced by `java.security.Policy` and related classes since 1.2.
  com.sun.javadoc.PackageDoc | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  com.sun.javadoc.Parameter | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  com.sun.javadoc.ParameterizedType | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  com.sun.javadoc.ParamTag | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  org.xml.sax.Parser | This interface has been replaced by the SAX2 `XMLReader` interface, which includes Namespace support.
  java.security.acl.Permission | This package has been replaced by `java.security.Policy` and related classes since 1.2.
  com.sun.javadoc.ProgramElementDoc | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  java.rmi.registry.RegistryHandler | no replacement
  java.rmi.server.RemoteCall | no replacement.
  com.sun.javadoc.RootDoc | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  com.sun.javadoc.SeeTag | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  com.sun.javadoc.SerialFieldTag | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  java.rmi.server.ServerRef | No replacement. This interface is unused and is obsolete.
  java.rmi.server.Skeleton | no replacement. Skeletons are no longer required for remote method calls in the Java 2 platform v1.2 and greater.
  com.sun.javadoc.SourcePosition | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  com.sun.javadoc.Tag | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  com.sun.tools.doclets.Taglet | This interface has been superseded by its replacement, `Taglet`.
  com.sun.javadoc.ThrowsTag | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  com.sun.javadoc.Type | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  com.sun.javadoc.TypeVariable | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  javax.xml.bind.Validator | since JAXB 2.0
  com.sun.javadoc.WildcardType | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.

- Deprecated Classes
  Class | Description
  --- | ---
  javax.accessibility.AccessibleResourceBundle | This class is deprecated as of version 1.3 of the Java Platform
  java.applet.Applet | The Applet API is deprecated. See the java.applet package documentation for further information.
  org.xml.sax.helpers.AttributeListImpl | This class implements a deprecated interface, `AttributeList`; that interface has been replaced by `Attributes`, which is implemented in the `AttributesImpl` helper class.
  javax.security.cert.Certificate | Use the classes in `java.security.cert` instead.
  java.lang.Compiler | JIT compilers and their technologies vary too widely to be controlled effectively by a standardized interface. As such, many JIT compiler implementations ignore this interface, and are instead controllable by implementation-specific mechanisms such as command-line options. This class is subject to removal in a future version of Java SE.
  com.sun.jarsigner.ContentSigner | This class has been deprecated.
  javax.management.DefaultLoaderRepository | Use `MBeanServer.getClassLoaderRepository()` instead.
  javax.management.loading.DefaultLoaderRepository | Use `MBeanServer.getClassLoaderRepository()` instead.
  javax.swing.text.DefaultTextUI |
  com.sun.javadoc.Doclet | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.
  org.omg.CORBA.DynamicImplementation | org.omg.CORBA.DynamicImplementation
  java.awt.Event | It is recommended that `AWTEvent` and its subclasses be used instead
  org.xml.sax.HandlerBase | This class works with the deprecated `DocumentHandler` interface. It has been replaced by the SAX2 `DefaultHandler` class.
  java.security.Identity | This class is no longer used. Its functionality has been replaced by `java.security.KeyStore`, the `java.security.cert` package, and `java.security.Principal`.
  java.security.IdentityScope | This class is no longer used. Its functionality has been replaced by `java.security.KeyStore`, the `java.security.cert` package, and `java.security.Principal`.
  javax.swing.JApplet | The Applet API is deprecated. See the java.applet package documentation for further information.
  javax.swing.JComponent.AccessibleJComponent.AccessibleFocusHandler | This class is no longer used or needed. `java.awt.Component.AccessibleAWTComponent` provides the same functionality and it is handled in `Component`.
  java.io.LineNumberInputStream | This class incorrectly assumes that bytes adequately represent characters. As of JDK 1.1, the preferred way to operate on character streams is via the new character-stream classes, which include a class for counting line numbers.
  java.rmi.server.LogStream | no replacement
  com.sun.tools.javadoc.Main | This class is now deprecated and may be removed in a future release. See `javax.tools.ToolProvider::getSystemDocumentationTool` and `javax.tools.DocumentationTool` for replacement functionality.
  javax.swing.plaf.metal.MetalComboBoxUI.MetalComboPopup | As of Java 2 platform v1.4.
  javax.swing.plaf.metal.MetalFileChooserUI.FileRenderer | As of JDK version 9. Obsolete class.
  javax.swing.plaf.metal.MetalFileChooserUI.SingleClickListener | As of JDK version 9. Obsolete class.
  java.util.Observable | This class and the `Observer` interface have been deprecated. The event model supported by `Observer` and `Observable` is quite limited, the order of notifications delivered by `Observable` is unspecified, and state changes are not in one-for-one correspondence with notifications. For a richer event model, consider using the `java.beans` package. For reliable and ordered messaging among threads, consider using one of the concurrent data structures in the `java.util.concurrent` package. For reactive streams style programming, see the `Flow` API.
  java.rmi.server.Operation | no replacement
  org.xml.sax.helpers.ParserFactory | This class works with the deprecated `Parser` interface.
  javax.security.auth.Policy | as of JDK version 1.4 -- Replaced by java.security.Policy. java.security.Policy has a method:
            public PermissionCollection getPermissions
                (java.security.ProtectionDomain pd)
  and ProtectionDomain has a constructor:
            public ProtectionDomain
                (CodeSource cs,
                 PermissionCollection permissions,
                 ClassLoader loader,
                 Principal[] principals)
  These two APIs provide callers the means to query the Policy for Principal-based Permission entries.
  com.sun.security.auth.PolicyFile | As of JDK 1.4, replaced by `sun.security.provider.PolicyFile`. This class is entirely deprecated. This class is subject to removal in a future version of Java SE.
  org.omg.CORBA.Principal | Deprecated by CORBA 2.2.
  org.omg.CORBA.PrincipalHolder | Deprecated by CORBA 2.2.
  java.rmi.server.RemoteStub | Statically generated stubs are deprecated, since stubs are generated dynamically. See `UnicastRemoteObject` for information about dynamic stub generation.
  javax.management.remote.rmi.RMIIIOPServerImpl | This transport is no longer supported.
  java.rmi.RMISecurityManager | Use `SecurityManager` instead.
  java.security.Signer | This class is no longer used. Its functionality has been replaced by `java.security.KeyStore`, the `java.security.cert` package, and `java.security.Principal`.
  javax.xml.soap.SOAPElementFactory | - Use `javax.xml.soap.SOAPFactory` for creating SOAPElements.
  com.sun.security.auth.module.SolarisLoginModule | As of JDK1.4, replaced by `com.sun.security.auth.module.UnixLoginModule`. This LoginModule is entirely deprecated and is here to allow for a smooth transition to the new UnixLoginModule. This class is subject to removal in a future version of Java SE.
  com.sun.security.auth.SolarisNumericGroupPrincipal | As of JDK 1.4, replaced by `UnixNumericGroupPrincipal`. This class is entirely deprecated. This class is subject to removal in a future version of Java SE.
  com.sun.security.auth.SolarisNumericUserPrincipal | As of JDK 1.4, replaced by `UnixNumericUserPrincipal`. This class is entirely deprecated. This class is subject to removal in a future version of Java SE.
  com.sun.security.auth.SolarisPrincipal | As of JDK 1.4, replaced by `UnixPrincipal`. This class is entirely deprecated. This class is subject to removal in a future version of Java SE.
  com.sun.security.auth.module.SolarisSystem | replaced by `UnixSystem`. This class is subject to removal in a future version of Java SE.
  com.sun.tools.doclets.standard.Standard | The doclet has been superseded by its replacement, `StandardDoclet`.
  java.io.StringBufferInputStream | This class does not properly convert characters into bytes. As of JDK 1.1, the preferred way to create a stream from a string is via the `StringReader` class.
  javax.swing.text.TableView.TableCell | A table cell can now be any View implementation.
  com.sun.security.auth.X500Principal | A new X500Principal class is available in the Java platform. This X500Principal classs is entirely deprecated and is here to allow for a smooth transition to the new class. This class is subject to removal in a future version of Java SE.
  javax.security.cert.X509Certificate | Use the classes in `java.security.cert` instead.
  org.xml.sax.helpers.XMLReaderFactory | It is recommended to use `SAXParserFactory` instead.

- Deprecated Enums
  Enum | Description
  --- | ---
  com.sun.javadoc.LanguageVersion | The declarations in this package have been superseded by those in the package `jdk.javadoc.doclet`. For more information, see the Migration Guide in the documentation for that package.

- Deprecated Exceptions
  Exceptions | Description
  --- | ---
  java.security.acl.AclNotFoundException | This package has been replaced by `java.security.Policy` and related classes since 1.2.
  javax.security.cert.CertificateEncodingException | Use the classes in `java.security.cert` instead.
  javax.security.cert.CertificateException | Use the classes in `java.security.cert` instead.
  javax.security.cert.CertificateExpiredException | Use the classes in `java.security.cert` instead.
  javax.security.cert.CertificateNotYetValidException | Use the classes in `java.security.cert` instead.
  javax.security.cert.CertificateParsingException | Use the classes in `java.security.cert` instead.
  com.sun.jdi.InvalidCodeIndexException | This exception is no longer thrown
  com.sun.jdi.InvalidLineNumberException | This exception is no longer thrown
  java.security.acl.LastOwnerException | This package has been replaced by `java.security.Policy` and related classes since 1.2.
  java.security.acl.NotOwnerException | This package has been replaced by `java.security.Policy` and related classes since 1.2.
  java.rmi.RMISecurityException | Use `SecurityException` instead. Application code should never directly reference this class, and `RMISecurityManager` no longer throws this subclass of `java.lang.SecurityException`.
  java.rmi.ServerRuntimeException | no replacement
  java.rmi.server.SkeletonMismatchException | no replacement. Skeletons are no longer required for remote method calls in the Java 2 platform v1.2 and greater.
  java.rmi.server.SkeletonNotFoundException | no replacement. Skeletons are no longer required for remote method calls in the Java 2 platform v1.2 and greater.
  java.rmi.server.SocketSecurityException | This class is obsolete. Use `ExportException` instead.

- Deprecated Annotation Types
  Annotation Type | Description
  --- | ---
  javax.jws.soap.InitParam |
  javax.jws.soap.SOAPMessageHandler |
  javax.jws.soap.SOAPMessageHandlers |

- Deprecated Fields
  Field | Description
  --- | ---
  javax.swing.JComponent.AccessibleJComponent.accessibleFocusHandler
  com.sun.java.accessibility.util.AWTEventMonitor.actionListener | This field is unused.
  com.sun.java.accessibility.util.AWTEventMonitor.adjustmentListener | This field is unused.
  javax.management.openmbean.OpenType.ALLOWED_CLASSNAMES | Use `ALLOWED_CLASSNAMES_LIST` instead.
  javax.management.monitor.Monitor.alreadyNotified | equivalent to `Monitor.alreadyNotifieds`[0].
  java.awt.event.InputEvent.ALT_GRAPH_MASK | It is recommended that ALT_GRAPH_DOWN_MASK and `InputEvent.getModifiersEx()` be used instead
  java.awt.event.InputEvent.ALT_MASK | It is recommended that ALT_DOWN_MASK and `InputEvent.getModifiersEx()` be used instead
  javax.naming.Context.APPLET | An environment property with this name is ignored while constructing an initial context. This constant was originally used as a property name to specify an `Applet` to retrieve parameters from, when creating an initial context. Currently any applet properties that need to be passed to an initial context should be copied into the environment hashtable:
           Hashtable env = new Hashtable();
           env.put(Context.INITIAL_CONTEXT_FACTORY,
             ((Applet) this).getParameter(Context.INITIAL_CONTEXT_FACTORY));
           env.put(Context.PROVIDER_URL,
             ((Applet) this).getParameter(Context.PROVIDER_URL));
           // ... other properties ...

           Context ctx = new InitialContext(env);
  javax.swing.JViewport.backingStore | As of Java 2 platform v1.3
  java.awt.event.InputEvent.BUTTON1_MASK | It is recommended that BUTTON1_DOWN_MASK and `InputEvent.getModifiersEx()` be used instead
  java.awt.event.InputEvent.BUTTON2_MASK | It is recommended that BUTTON2_DOWN_MASK and `InputEvent.getModifiersEx()` be used instead. Note that BUTTON2_MASK has the same value as ALT_MASK.
  java.awt.event.InputEvent.BUTTON3_MASK | It is recommended that BUTTON3_DOWN_MASK and `InputEvent.getModifiersEx()` be used instead. Note that BUTTON3_MASK has the same value as META_MASK.
  javax.swing.plaf.basic.BasicDesktopPaneUI.closeKey | As of 1.3.
  javax.sql.rowset.CachedRowSet.COMMIT_ON_ACCEPT_CHANGES | Because this field is final (it is part of an interface), its value cannot be changed.
  javax.swing.ImageIcon.component | since 1.8
  com.sun.java.accessibility.util.AWTEventMonitor.componentListener | This field is unused.
  com.sun.java.accessibility.util.AWTEventMonitor.componentWithFocus | This field is unused; to get the component with focus use the getComponentWithFocus method.
  com.sun.java.accessibility.util.AWTEventMonitor.containerListener | This field is unused.
  java.awt.Frame.CROSSHAIR_CURSOR | replaced by `Cursor.CROSSHAIR_CURSOR`.
  java.awt.event.InputEvent.CTRL_MASK | It is recommended that CTRL_DOWN_MASK and `InputEvent.getModifiersEx()` be used instead
  javax.management.monitor.Monitor.dbgTag | No replacement.
  java.awt.Frame.DEFAULT_CURSOR | replaced by `Cursor.DEFAULT_CURSOR`.
  javax.swing.plaf.basic.BasicSplitPaneUI.dividerResizeToggleKey | As of Java 2 platform v1.3.
  javax.swing.plaf.basic.BasicSplitPaneUI.downKey | As of Java 2 platform v1.3.
  javax.swing.plaf.basic.BasicTabbedPaneUI.downKey | As of Java 2 platform v1.3.
  javax.swing.plaf.basic.BasicToolBarUI.downKey | As of Java 2 platform v1.3.
  java.awt.Frame.E_RESIZE_CURSOR | replaced by `Cursor.E_RESIZE_CURSOR`.
  javax.swing.plaf.basic.BasicSplitPaneUI.endKey | As of Java 2 platform v1.3.
  java.util.jar.Attributes.Name.EXTENSION_INSTALLATION | Extension mechanism is no longer supported.
  com.sun.java.accessibility.util.AWTEventMonitor.focusListener | This field is unused.
  java.util.logging.Logger.global | Initialization of this field is prone to deadlocks. The field must be initialized by the Logger class initialization which may cause deadlocks with the LogManager class initialization. In such cases two class initialization wait for each other to complete. The preferred way to get the global logger object is via the call `Logger.getGlobal()`. For compatibility with old JDK versions where the `Logger.getGlobal()` is not available use the call `Logger.getLogger(Logger.GLOBAL_LOGGER_NAME)` or `Logger.getLogger("global")`.
  java.awt.Frame.HAND_CURSOR | replaced by `Cursor.HAND_CURSOR`.
  javax.swing.plaf.basic.BasicSplitPaneUI.homeKey | As of Java 2 platform v1.3.
  java.net.HttpURLConnection.HTTP_SERVER_ERROR | it is misplaced and shouldn't have existed.
  java.util.jar.Attributes.Name.IMPLEMENTATION_URL | Extension mechanism is no longer supported.
  java.util.jar.Attributes.Name.IMPLEMENTATION_VENDOR_ID | Extension mechanism is no longer supported.
  java.lang.SecurityManager.inCheck | This type of security checking is not recommended. It is recommended that the `checkPermission` call be used instead. This field is subject to removal in a future version of Java SE.
  com.sun.java.accessibility.util.AWTEventMonitor.itemListener | This field is unused.
  javax.swing.plaf.basic.BasicSplitPaneUI.keyboardDownRightListener | As of Java 2 platform v1.3.
  javax.swing.plaf.basic.BasicSplitPaneUI.keyboardEndListener | As of Java 2 platform v1.3.
  javax.swing.plaf.basic.BasicSplitPaneUI.keyboardHomeListener | As of Java 2 platform v1.3.
  javax.swing.plaf.basic.BasicSplitPaneUI.keyboardResizeToggleListener | As of Java 2 platform v1.3.
  javax.swing.plaf.basic.BasicSplitPaneUI.keyboardUpLeftListener | As of Java 2 platform v1.3.
  com.sun.java.accessibility.util.AWTEventMonitor.keyListener | This field is unused.
  javax.swing.plaf.basic.BasicSplitPaneUI.leftKey | As of Java 2 platform v1.3.
  javax.swing.plaf.basic.BasicTabbedPaneUI.leftKey | As of Java 2 platform v1.3.
  javax.swing.plaf.basic.BasicToolBarUI.leftKey | As of Java 2 platform v1.3.
  javax.swing.plaf.basic.BasicDesktopPaneUI.maximizeKey | As of 1.3.
  java.awt.event.InputEvent.META_MASK | It is recommended that META_DOWN_MASK and `InputEvent.getModifiersEx()` be used instead
  javax.swing.plaf.basic.BasicDesktopPaneUI.minimizeKey | As of 1.3.
  com.sun.java.accessibility.util.AWTEventMonitor.mouseListener | This field is unused.
  com.sun.java.accessibility.util.AWTEventMonitor.mouseMotionListener | This field is unused.
  java.awt.Frame.MOVE_CURSOR | replaced by `Cursor.MOVE_CURSOR`.
  java.awt.Frame.N_RESIZE_CURSOR | replaced by `Cursor.N_RESIZE_CURSOR`.
  javax.swing.plaf.basic.BasicDesktopPaneUI.navigateKey | As of 1.3.
  javax.swing.plaf.basic.BasicDesktopPaneUI.navigateKey2 | As of 1.3.
  java.awt.Frame.NE_RESIZE_CURSOR | replaced by `Cursor.NE_RESIZE_CURSOR`.
  java.awt.Frame.NW_RESIZE_CURSOR | replaced by `Cursor.NW_RESIZE_CURSOR`.
  javax.swing.plaf.basic.BasicInternalFrameUI.openMenuKey | As of Java 2 platform v1.3.
  java.awt.datatransfer.DataFlavor.plainTextFlavor | as of 1.3. Use `DataFlavor.getReaderForText(java.awt.datatransfer.Transferable)` instead of `Transferable.getTransferData(DataFlavor.plainTextFlavor)`.
  java.awt.Cursor.predefined | As of JDK version 1.7, the `Cursor.getPredefinedCursor(int)` method should be used instead.
  javax.swing.text.html.FormView.RESET | As of 1.3, value comes from UIManager UIManager property FormView.resetButtonText
  javax.swing.table.TableColumn.resizedPostingDisableCount | as of Java 2 platform v1.3
  javax.swing.plaf.basic.BasicSplitPaneUI.rightKey | As of Java 2 platform v1.3.
  javax.swing.plaf.basic.BasicTabbedPaneUI.rightKey | As of Java 2 platform v1.3.
  javax.swing.plaf.basic.BasicToolBarUI.rightKey | As of Java 2 platform v1.3.
  java.math.BigDecimal.ROUND_CEILING | Use `RoundingMode.CEILING` instead.
  java.math.BigDecimal.ROUND_DOWN | Use `RoundingMode.DOWN` instead.
  java.math.BigDecimal.ROUND_FLOOR | Use `RoundingMode.FLOOR` instead.
  java.math.BigDecimal.ROUND_HALF_DOWN | Use `RoundingMode.HALF_DOWN` instead.
  java.math.BigDecimal.ROUND_HALF_EVEN | Use `RoundingMode.HALF_EVEN` instead.
  java.math.BigDecimal.ROUND_HALF_UP | Use `RoundingMode.HALF_UP` instead.
  java.math.BigDecimal.ROUND_UNNECESSARY | Use `RoundingMode.UNNECESSARY` instead.
  java.math.BigDecimal.ROUND_UP | Use `RoundingMode.UP` instead.
  java.awt.Frame.S_RESIZE_CURSOR | replaced by `Cursor.S_RESIZE_CURSOR`.
  java.awt.Frame.SE_RESIZE_CURSOR | replaced by `Cursor.SE_RESIZE_CURSOR`.
  java.awt.event.InputEvent.SHIFT_MASK | It is recommended that SHIFT_DOWN_MASK and `InputEvent.getModifiersEx()` be used instead
  javax.imageio.spi.ImageReaderSpi.STANDARD_INPUT_TYPE | Instead of using this field, directly create the equivalent array `{ ImageInputStream.class }`.
  javax.imageio.spi.ImageWriterSpi.STANDARD_OUTPUT_TYPE | Instead of using this field, directly create the equivalent array `{ ImageOutputStream.class }`.
  javax.swing.text.html.FormView.SUBMIT | As of 1.3, value now comes from UIManager property FormView.submitButtonText
  java.lang.Character.UnicodeBlock.SURROGATES_AREA | Instead of `SURROGATES_AREA`, use `Character.UnicodeBlock.HIGH_SURROGATES`, `Character.UnicodeBlock.HIGH_PRIVATE_USE_SURROGATES`, and `Character.UnicodeBlock.LOW_SURROGATES`. These constants match the block definitions of the Unicode Standard. The `Character.UnicodeBlock.of(char)` and `Character.UnicodeBlock.of(int)` methods return the standard constants.
  java.awt.Frame.SW_RESIZE_CURSOR | replaced by `Cursor.SW_RESIZE_CURSOR`.
  java.awt.Frame.TEXT_CURSOR | replaced by `Cursor.TEXT_CURSOR`.
  com.sun.java.accessibility.util.AWTEventMonitor.textListener | This field is unused.
  javax.swing.ImageIcon.tracker | since 1.8
  javax.swing.plaf.basic.BasicSplitPaneUI.upKey | As of Java 2 platform v1.3.
  javax.swing.plaf.basic.BasicTabbedPaneUI.upKey | As of Java 2 platform v1.3.
  javax.swing.plaf.basic.BasicToolBarUI.upKey | As of Java 2 platform v1.3.
  java.awt.Frame.W_RESIZE_CURSOR | replaced by `Cursor.W_RESIZE_CURSOR`.
  java.awt.Frame.WAIT_CURSOR | replaced by `Cursor.WAIT_CURSOR`.
  com.sun.java.accessibility.util.AWTEventMonitor.windowListener | This field is unused.

- Deprecated Methods
  Method | Description
  --- | ---
  java.awt.Component.action(Event, Object) | As of JDK version 1.1, should register this component as ActionListener on component which fires action events.
  javax.swing.RepaintManager.addDirtyRegion(Applet, int, int, int, int) | The Applet API is deprecated. See the java.applet package documentation for further information.
  java.awt.List.addItem(String) | replaced by `add(String)`.
  java.awt.List.addItem(String, int) | replaced by `add(String, int)`.
  java.awt.BorderLayout.addLayoutComponent(String, Component) | replaced by `addLayoutComponent(Component, Object)`.
  java.awt.CardLayout.addLayoutComponent(String, Component) | replaced by `addLayoutComponent(Component, Object)`.
  java.awt.List.allowsMultipleSelections() | As of JDK version 1.1, replaced by `isMultipleMode()`.
  java.lang.ThreadGroup.allowThreadSuspension(boolean) | The definition of this call depends on `ThreadGroup.suspend()`, which is deprecated. Further, the behavior of this call was never specified.
  java.awt.TextArea.appendText(String) | As of JDK version 1.1, replaced by `append(String)`.
  java.awt.Window.applyResourceBundle(String) | As of J2SE 1.4, replaced by `Component.applyComponentOrientation`.
  java.awt.Window.applyResourceBundle(ResourceBundle) | As of J2SE 1.4, replaced by `Component.applyComponentOrientation`.
  java.awt.Component.bounds() | As of JDK version 1.1, replaced by `getBounds()`.
  java.lang.SecurityManager.checkAwtEventQueueAccess() | This method was originally used to check if the calling thread could access the AWT event queue. The method has been obsoleted and code should instead use `SecurityManager.checkPermission(java.security.Permission)` to check `AWTPermission("accessEventQueue")`. This method is subject to removal in a future version of Java SE.
  java.lang.SecurityManager.checkMemberAccess(Class<?>, int) | This method relies on the caller being at a stack depth of 4 which is error-prone and cannot be enforced by the runtime. Users of this method should instead invoke `SecurityManager.checkPermission(java.security.Permission)` directly. This method is subject to removal in a future version of Java SE.
  java.lang.SecurityManager.checkMulticast(InetAddress, byte) | Use #checkPermission(java.security.Permission) instead
  java.lang.SecurityManager.checkSystemClipboardAccess() | This method was originally used to check if the calling thread could access the system clipboard. The method has been obsoleted and code should instead use `SecurityManager.checkPermission(java.security.Permission)` to check `AWTPermission("accessClipboard")`. This method is subject to removal in a future version of Java SE.
  java.lang.SecurityManager.checkTopLevelWindow(Object) | This method was originally used to check if the calling thread was trusted to bring up a top-level window. The method has been obsoleted and code should instead use `SecurityManager.checkPermission(java.security.Permission)` to check `AWTPermission("showWindowWithoutWarningBanner")`. This method is subject to removal in a future version of Java SE.
  java.lang.SecurityManager.classDepth(String) | This type of security checking is not recommended. It is recommended that the `checkPermission` call be used instead. This method is subject to removal in a future version of Java SE.
  java.lang.SecurityManager.classLoaderDepth() | This type of security checking is not recommended. It is recommended that the `checkPermission` call be used instead. This method is subject to removal in a future version of Java SE.
  java.awt.List.clear() | As of JDK version 1.1, replaced by `removeAll()`.
  java.awt.image.renderable.RenderContext.concetenateTransform(AffineTransform) | replaced by `concatenateTransform(AffineTransform)`.
  java.awt.Container.countComponents() | As of JDK version 1.1, replaced by getComponentCount().
  java.awt.Choice.countItems() | As of JDK version 1.1, replaced by `getItemCount()`.
  java.awt.List.countItems() | As of JDK version 1.1, replaced by `getItemCount()`.
  java.awt.Menu.countItems() | As of JDK version 1.1, replaced by `getItemCount()`.
  java.awt.MenuBar.countMenus() | As of JDK version 1.1, replaced by `getMenuCount()`.
  java.lang.Thread.countStackFrames() | The definition of this call depends on `Thread.suspend()`, which is deprecated. Further, the results of this call were never well-defined. This method is subject to removal in a future version of Java SE.
  javax.xml.soap.SOAPElementFactory.create(String) | Use javax.xml.soap.SOAPFactory.createElement(String localName) instead
  javax.xml.soap.SOAPElementFactory.create(String, String, String) | Use javax.xml.soap.SOAPFactory.createElement(String localName, String prefix, String uri) instead
  javax.xml.soap.SOAPElementFactory.create(Name) | Use javax.xml.soap.SOAPFactory.createElement(javax.xml.soap.Name) instead
  org.omg.CORBA.ORB.create_basic_dyn_any(TypeCode) | Use the new DynAnyFactory API instead
  org.omg.CORBA.ORB.create_dyn_any(Any) | Use the new DynAnyFactory API instead
  org.omg.CORBA.ORB.create_dyn_array(TypeCode) | Use the new DynAnyFactory API instead
  org.omg.CORBA.ORB.create_dyn_enum(TypeCode) | Use the new DynAnyFactory API instead
  org.omg.CORBA.ORB.create_dyn_sequence(TypeCode) | Use the new DynAnyFactory API instead
  org.omg.CORBA.ORB.create_dyn_struct(TypeCode) | Use the new DynAnyFactory API instead
  org.omg.CORBA.ORB.create_dyn_union(TypeCode) | Use the new DynAnyFactory API instead
  org.omg.CORBA.ORB.create_recursive_sequence_tc(int, int) | Use a combination of create_recursive_tc and create_sequence_tc instead
  javax.swing.plaf.basic.BasicSplitPaneUI.createKeyboardDownRightListener() | As of Java 2 platform v1.3.
  javax.swing.plaf.basic.BasicSplitPaneUI.createKeyboardEndListener() | As of Java 2 platform v1.3.
  javax.swing.plaf.basic.BasicSplitPaneUI.createKeyboardHomeListener() | As of Java 2 platform v1.3.
  javax.swing.plaf.basic.BasicSplitPaneUI.createKeyboardResizeToggleListener() | As of Java 2 platform v1.3.
  javax.swing.plaf.basic.BasicSplitPaneUI.createKeyboardUpLeftListener() | As of Java 2 platform v1.3.
  javax.swing.JTable.createScrollPaneForTable(JTable) | As of Swing version 1.0.2, replaced by `new JScrollPane(aTable)`.
  javax.swing.text.TableView.createTableCell(Element) | Table cells can now be any arbitrary View implementation and should be produced by the ViewFactory rather than the table.
  javax.xml.bind.JAXBContext.createValidator() | since JAXB2.0
  java.lang.SecurityManager.currentClassLoader() | This type of security checking is not recommended. It is recommended that the `checkPermission` call be used instead. This method is subject to removal in a future version of Java SE.
  java.lang.SecurityManager.currentLoadedClass() | This type of security checking is not recommended. It is recommended that the `checkPermission` call be used instead. This method is subject to removal in a future version of Java SE.
  java.net.URLDecoder.decode(String) | The resulting string may vary depending on the platform's default encoding. Instead, use the decode(String,String) method to specify the encoding.
  java.lang.ClassLoader.defineClass(byte[], int, int) | Replaced by `defineClass(String, byte[], int, int)`
  java.awt.List.delItem(int) | replaced by `remove(String)` and `remove(int)`.
  java.awt.List.delItems(int, int) | As of JDK version 1.1, Not for public use in the future. This method is expected to be retained only as a package private method.
  java.awt.Component.deliverEvent(Event) | As of JDK version 1.1, replaced by `dispatchEvent(AWTEvent e)`.
  java.awt.Container.deliverEvent(Event) | As of JDK version 1.1, replaced by `dispatchEvent(AWTEvent e)`
  javax.management.MBeanServer.deserialize(String, byte[]) | Use `MBeanServer.getClassLoaderRepository()` to obtain the class loader repository and use it to deserialize.
  javax.management.MBeanServer.deserialize(String, ObjectName, byte[]) | Use `getClassLoader` to obtain the class loader for deserialization.
  javax.management.MBeanServer.deserialize(ObjectName, byte[]) | Use `getClassLoaderFor` to obtain the appropriate class loader for deserialization.
  java.lang.Thread.destroy() | This method was originally designed to destroy this thread without any cleanup. Any monitors it held would have remained locked. However, the method was never implemented. If it were to be implemented, it would be deadlock-prone in much the manner of `Thread.suspend()`. If the target thread held a lock protecting a critical system resource when it was destroyed, no thread could ever access this resource again. If another thread ever attempted to lock this resource, deadlock would result. Such deadlocks typically manifest themselves as "frozen" processes. For more information, see Why are Thread.stop, Thread.suspend and Thread.resume Deprecated?. This method is subject to removal in a future version of Java SE.
  java.awt.Component.disable() | As of JDK version 1.1, replaced by `setEnabled(boolean)`.
  java.awt.MenuItem.disable() | As of JDK version 1.1, replaced by `setEnabled(boolean)`.
  javax.swing.JComponent.disable() | As of JDK version 1.1, replaced by `java.awt.Component.setEnabled(boolean)`.
  javax.swing.table.TableColumn.disableResizedPosting() | as of Java 2 platform v1.3
  javax.swing.FocusManager.disableSwingFocusManager() | as of 1.4, replaced by `KeyboardFocusManager.setDefaultFocusTraversalPolicy(FocusTraversalPolicy)`
  java.rmi.server.Skeleton.dispatch(Remote, RemoteCall, int, long) | no replacement
  java.math.BigDecimal.divide(BigDecimal, int) | The method `BigDecimal.divide(BigDecimal, RoundingMode)` should be used in preference to this legacy method.
  java.math.BigDecimal.divide(BigDecimal, int, int) | The method `BigDecimal.divide(BigDecimal, int, RoundingMode)` should be used in preference to this legacy method.
  java.rmi.server.RemoteCall.done() | no replacement
  java.rmi.server.RemoteRef.done(RemoteCall) | 1.2 style stubs no longer use this method. Instead of using a sequence of method calls to the remote reference (`newCall`, `invoke`, and `done`), a stub uses a single method, `invoke(Remote, Method, Object[], int)`, on the remote reference to carry out parameter marshalling, remote method executing and unmarshalling of the return value.
  javax.swing.text.PasswordView.drawEchoCharacter(Graphics, int, int, char) | replaced by `PasswordView.drawEchoCharacter(Graphics2D, float, float, char)`
  javax.swing.text.PlainView.drawLine(int, Graphics, int, int) | replaced by `PlainView.drawLine(int, Graphics2D, float, float)`
  javax.swing.text.WrappedPlainView.drawLine(int, int, Graphics, int, int) | replaced by `WrappedPlainView.drawLine(int, int, Graphics2D, float, float)`
  javax.swing.text.PasswordView.drawSelectedText(Graphics, int, int, int, int) | replaced by `PasswordView.drawSelectedText(Graphics2D, float, float, int, int)`
  javax.swing.text.PlainView.drawSelectedText(Graphics, int, int, int, int) | replaced by `PlainView.drawSelectedText(Graphics2D, float, float, int, int)`
  javax.swing.text.WrappedPlainView.drawSelectedText(Graphics, int, int, int, int) | replaced by `WrappedPlainView.drawSelectedText(Graphics2D, float, float, int, int)`
  javax.swing.text.Utilities.drawTabbedText(Segment, int, int, Graphics, TabExpander, int) | replaced by `Utilities.drawTabbedText(Segment, float, float, Graphics2D, TabExpander, int)`
  javax.swing.text.PasswordView.drawUnselectedText(Graphics, int, int, int, int) | replaced by `PasswordView.drawUnselectedText(Graphics2D, float, float, int, int)`
  javax.swing.text.PlainView.drawUnselectedText(Graphics, int, int, int, int) | replaced by `PlainView.drawUnselectedText(Graphics2D, float, float, int, int)`
  javax.swing.text.WrappedPlainView.drawUnselectedText(Graphics, int, int, int, int) | replaced by `WrappedPlainView.drawUnselectedText(Graphics2D, float, float, int, int)`
  javax.swing.plaf.metal.MetalComboBoxUI.editablePropertyChanged(PropertyChangeEvent) | As of Java 2 platform v1.4.
  java.awt.Component.enable() | As of JDK version 1.1, replaced by `setEnabled(boolean)`.
  java.awt.Component.enable(boolean) | As of JDK version 1.1, replaced by `setEnabled(boolean)`.
  java.awt.MenuItem.enable() | As of JDK version 1.1, replaced by `setEnabled(boolean)`.
  java.awt.MenuItem.enable(boolean) | As of JDK version 1.1, replaced by `setEnabled(boolean)`.
  javax.swing.JComponent.enable() | As of JDK version 1.1, replaced by `java.awt.Component.setEnabled(boolean)`.
  javax.swing.table.TableColumn.enableResizedPosting() | as of Java 2 platform v1.3
  java.net.URLEncoder.encode(String) | The resulting string may vary depending on the platform's default encoding. Instead, use the encode(String,String) method to specify the encoding.
  java.security.SignatureSpi.engineGetParameter(String) |
  java.security.SignatureSpi.engineSetParameter(String, Object) | Replaced by `engineSetParameter`.
  java.awt.datatransfer.DataFlavor.equals(String) | As inconsistent with `hashCode()` contract, use `DataFlavor.isMimeTypeEqual(String)` instead.
  org.omg.CORBA.ServerRequest.except(Any) | use set_exception()
  java.rmi.server.RemoteCall.executeCall() | no replacement
  java.rmi.server.UnicastRemoteObject.exportObject(Remote) | This method is deprecated because it supports only static stubs. Use `exportObject(Remote, port)` or `exportObject(Remote, port, csf, ssf)` instead.
  org.omg.CORBA.Any.extract_Principal() | Deprecated by CORBA 2.2.
  java.awt.color.ICC_Profile.finalize() | The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.
  java.awt.Graphics.finalize() | The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.
  java.awt.image.ColorModel.finalize() | The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.
  java.awt.image.IndexColorModel.finalize() | The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.
  java.awt.PrintJob.finalize() | The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.
  java.io.FileInputStream.finalize() | The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.
  java.io.FileOutputStream.finalize() | The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.
  java.lang.Object.finalize() | The finalization mechanism is inherently problematic. Finalization can lead to performance issues, deadlocks, and hangs. Errors in finalizers can lead to resource leaks; there is no way to cancel finalization if it is no longer necessary; and no ordering is specified among calls to `finalize` methods of different objects. Furthermore, there are no guarantees regarding the timing of finalization. The `finalize` method might be called on a finalizable object only after an indefinite delay, if at all. Classes whose instances hold non-heap resources should provide a method to enable explicit release of those resources, and they should also implement `AutoCloseable` if appropriate. The `Cleaner` and `PhantomReference` provide more flexible and efficient ways to release resources when an object becomes unreachable.
  java.util.concurrent.ThreadPoolExecutor.finalize() | The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.
  java.util.zip.Deflater.finalize() | The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.
  java.util.zip.Inflater.finalize() | The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.
  java.util.zip.ZipFile.finalize() | The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.
  javax.imageio.spi.ServiceRegistry.finalize() | The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.
  javax.imageio.stream.FileCacheImageInputStream.finalize() | The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.
  javax.imageio.stream.FileImageInputStream.finalize() | The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.
  javax.imageio.stream.FileImageOutputStream.finalize() | The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.
  javax.imageio.stream.ImageInputStreamImpl.finalize() | The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.
  javax.imageio.stream.MemoryCacheImageInputStream.finalize() | The `finalize` method has been deprecated. Subclasses that override `finalize` in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding `finalize` method. When overriding the `finalize` method, its implementation must explicitly ensure that `super.finalize()` is invoked as described in `Object.finalize()`. See the specification for `Object.finalize()` for further information about migration options.
  javax.swing.SwingUtilities.findFocusOwner(Component) | As of 1.4, replaced by `KeyboardFocusManager.getFocusOwner()`.
  org.omg.CORBA.ORB.get_current() | use `resolve_initial_references`.
  java.security.Security.getAlgorithmProperty(String, String) | This method used to return the value of a proprietary property in the master file of the "SUN" Cryptographic Service Provider in order to determine how to parse algorithm-specific parameters. Use the new provider-based and algorithm-independent `AlgorithmParameters` and `KeyFactory` engine classes (introduced in the J2SE version 1.2 platform) instead.
  java.sql.CallableStatement.getBigDecimal(int, int) | use `getBigDecimal(int parameterIndex)` or `getBigDecimal(String parameterName)`
  java.sql.ResultSet.getBigDecimal(int, int) | Use `getBigDecimal(int columnIndex)` or `getBigDecimal(String columnLabel)`
  java.sql.ResultSet.getBigDecimal(String, int) | Use `getBigDecimal(int columnIndex)` or `getBigDecimal(String columnLabel)`
  java.awt.Polygon.getBoundingBox() | As of JDK version 1.1, replaced by `getBounds()`.
  javax.swing.text.Utilities.getBreakLocation(Segment, FontMetrics, int, int, TabExpander, int) | replaced by `Utilities.getBreakLocation(Segment, FontMetrics, float, float, TabExpander, int)`
  java.lang.String.getBytes(int, int, byte[], int) | This method does not properly convert characters into bytes. As of JDK 1.1, the preferred way to do this is via the `String.getBytes()` method, which uses the platform's default charset.
  java.awt.Graphics.getClipRect() | As of JDK version 1.1, replaced by `getClipBounds()`.
  javax.swing.JMenuBar.getComponentAtIndex(int) | replaced by `getComponent(int i)`
  javax.swing.JPopupMenu.getComponentAtIndex(int) | replaced by `Container.getComponent(int)`
  java.awt.CheckboxGroup.getCurrent() | As of JDK version 1.1, replaced by `getSelectedCheckbox()`.
  java.awt.Frame.getCursorType() | As of JDK version 1.1, replaced by `Component.getCursor()`.
  java.sql.Time.getDate() |
  java.util.Date.getDate() | As of JDK version 1.1, replaced by `Calendar.get(Calendar.DAY_OF_MONTH)`.
  java.sql.Time.getDay() |
  java.util.Date.getDay() | As of JDK version 1.1, replaced by `Calendar.get(Calendar.DAY_OF_WEEK)`.
  java.net.URLConnection.getDefaultRequestProperty(String) | The instance specific getRequestProperty method should be used after an appropriate instance of URLConnection is obtained.
  java.rmi.server.LogStream.getDefaultStream() | no replacement
  jdk.nashorn.api.scripting.AbstractJSObject.getDefaultValue(JSObject, Class<?>) | use `JSObject.getDefaultValue(Class)` instead.
  javax.management.monitor.CounterMonitor.getDerivedGauge() | As of JMX 1.2, replaced by `CounterMonitor.getDerivedGauge(ObjectName)`
  javax.management.monitor.CounterMonitorMBean.getDerivedGauge() | As of JMX 1.2, replaced by `CounterMonitorMBean.getDerivedGauge(ObjectName)`
  javax.management.monitor.GaugeMonitor.getDerivedGauge() | As of JMX 1.2, replaced by `GaugeMonitor.getDerivedGauge(ObjectName)`
  javax.management.monitor.GaugeMonitorMBean.getDerivedGauge() | As of JMX 1.2, replaced by `GaugeMonitorMBean.getDerivedGauge(ObjectName)`
  javax.management.monitor.StringMonitor.getDerivedGauge() | As of JMX 1.2, replaced by `StringMonitor.getDerivedGauge(ObjectName)`
  javax.management.monitor.StringMonitorMBean.getDerivedGauge() | As of JMX 1.2, replaced by `StringMonitorMBean.getDerivedGauge(ObjectName)`
  javax.management.monitor.CounterMonitor.getDerivedGaugeTimeStamp() | As of JMX 1.2, replaced by `CounterMonitor.getDerivedGaugeTimeStamp(ObjectName)`
  javax.management.monitor.CounterMonitorMBean.getDerivedGaugeTimeStamp() | As of JMX 1.2, replaced by `CounterMonitorMBean.getDerivedGaugeTimeStamp(ObjectName)`
  javax.management.monitor.GaugeMonitor.getDerivedGaugeTimeStamp() | As of JMX 1.2, replaced by `GaugeMonitor.getDerivedGaugeTimeStamp(ObjectName)`
  javax.management.monitor.GaugeMonitorMBean.getDerivedGaugeTimeStamp() | As of JMX 1.2, replaced by `GaugeMonitorMBean.getDerivedGaugeTimeStamp(ObjectName)`
  javax.management.monitor.StringMonitor.getDerivedGaugeTimeStamp() | As of JMX 1.2, replaced by `StringMonitor.getDerivedGaugeTimeStamp(ObjectName)`
  javax.management.monitor.StringMonitorMBean.getDerivedGaugeTimeStamp() | As of JMX 1.2, replaced by `StringMonitorMBean.getDerivedGaugeTimeStamp(ObjectName)`
  javax.swing.plaf.basic.BasicSplitPaneUI.getDividerBorderSize() | As of Java 2 platform v1.3, instead set the border on the divider.
  javax.xml.bind.Validator.getEventHandler() | since JAXB2.0
  java.awt.Toolkit.getFontList() | see `GraphicsEnvironment.getAvailableFontFamilyNames()`
  java.awt.Toolkit.getFontMetrics(Font) | As of JDK version 1.2, replaced by the `Font` method `getLineMetrics`.
  javax.swing.text.LabelView.getFontMetrics() | FontMetrics are not used for glyph rendering when running in the JDK.
  java.sql.Date.getHours() |
  java.util.Date.getHours() | As of JDK version 1.1, replaced by `Calendar.get(Calendar.HOUR_OF_DAY)`.
  java.lang.SecurityManager.getInCheck() | This type of security checking is not recommended. It is recommended that the `checkPermission` call be used instead. This method is subject to removal in a future version of Java SE.
  java.rmi.server.RemoteCall.getInputStream() | no replacement
  java.awt.event.KeyEvent.getKeyModifiersText(int) | It is recommended that extended modifier keys and `InputEvent.getModifiersExText(int)` be used instead
  javax.swing.KeyStroke.getKeyStroke(char, boolean) | use getKeyStroke(char)
  javax.swing.AbstractButton.getLabel() | - Replaced by `getText`
  java.awt.Scrollbar.getLineIncrement() | As of JDK version 1.1, replaced by `getUnitIncrement()`.
  java.lang.Runtime.getLocalizedInputStream(InputStream) | As of JDK 1.1, the preferred way to translate a byte stream in the local encoding into a character stream in Unicode is via the `InputStreamReader` and `BufferedReader` classes. This method is subject to removal in a future version of Java SE.
  java.lang.Runtime.getLocalizedOutputStream(OutputStream) | As of JDK 1.1, the preferred way to translate a Unicode character stream into a byte stream in the local encoding is via the `OutputStreamWriter`, `BufferedWriter`, and `PrintWriter` classes. This method is subject to removal in a future version of Java SE.
  java.util.logging.LogManager.getLoggingMXBean() | `java.util.logging.LoggingMXBean` is deprecated and replaced with `java.lang.management.PlatformLoggingMXBean`. Use `ManagementFactory.getPlatformMXBean`(PlatformLoggingMXBean.class) instead.
  java.sql.DriverManager.getLogStream() | Use `getLogWriter`
  java.awt.FontMetrics.getMaxDecent() | As of JDK version 1.1.1, replaced by `getMaxDescent()`.
  javax.swing.JInternalFrame.getMenuBar() | As of Swing version 1.0.3, replaced by `getJMenuBar()`.
  javax.swing.JRootPane.getMenuBar() | As of Swing version 1.0.3 replaced by `getJMenuBar()`.
  java.sql.Date.getMinutes() |
  java.util.Date.getMinutes() | As of JDK version 1.1, replaced by `Calendar.get(Calendar.MINUTE)`.
  java.awt.event.InputEvent.getModifiers() | It is recommended that extended modifier keys and `InputEvent.getModifiersEx()` be used instead
  java.sql.Time.getMonth() |
  java.util.Date.getMonth() | As of JDK version 1.1, replaced by `Calendar.get(Calendar.MONTH)`.
  javax.swing.JComponent.getNextFocusableComponent() | As of 1.4, replaced by `FocusTraversalPolicy`.
  javax.management.monitor.Monitor.getObservedObject() | As of JMX 1.2, replaced by `Monitor.getObservedObjects()`
  javax.management.monitor.MonitorMBean.getObservedObject() | As of JMX 1.2, replaced by `MonitorMBean.getObservedObjects()`
  java.rmi.server.Operation.getOperation() | no replacement
  java.rmi.server.Skeleton.getOperations() | no replacement
  java.awt.ComponentOrientation.getOrientation(ResourceBundle) | As of J2SE 1.4, use `ComponentOrientation.getOrientation(java.util.Locale)`.
  java.rmi.server.LogStream.getOutputStream() | no replacement
  java.rmi.server.RemoteCall.getOutputStream() | no replacement
  java.lang.ClassLoader.getPackage(String) | If multiple class loaders delegate to each other and define classes with the same package name, and one such loader relies on the lookup behavior of `getPackage` to return a `Package` from a parent loader, then the properties exposed by the `Package` may not be as expected in the rest of the program. For example, the `Package` will only expose annotations from the `package-info.class` file defined by the parent loader, even if annotations exist in a `package-info.class` file defined by a child loader. A more robust approach is to use the `ClassLoader.getDefinedPackage(java.lang.String)` method which returns a `Package` for the specified class loader.
  java.lang.Package.getPackage(String) | If multiple class loaders delegate to each other and define classes with the same package name, and one such loader relies on the lookup behavior of `getPackage` to return a `Package` from a parent loader, then the properties exposed by the `Package` may not be as expected in the rest of the program. For example, the `Package` will only expose annotations from the `package-info.class` file defined by the parent loader, even if annotations exist in a `package-info.class` file defined by a child loader. A more robust approach is to use the `ClassLoader.getDefinedPackage(java.lang.String)` method which returns a `Package` for the specified class loader.
  java.awt.Scrollbar.getPageIncrement() | As of JDK version 1.1, replaced by `getBlockIncrement()`.
  java.security.Signature.getParameter(String) |
  javax.net.ssl.HandshakeCompletedEvent.getPeerCertificateChain() | The `HandshakeCompletedEvent.getPeerCertificates()` method that returns an array of `java.security.cert.Certificate` should be used instead.
  javax.net.ssl.SSLSession.getPeerCertificateChain() | The `SSLSession.getPeerCertificates()` method that returns an array of `java.security.cert.Certificate` should be used instead.
  javax.swing.text.Utilities.getPositionAbove(JTextComponent, int, int) | replaced by `Utilities.getPositionAbove(JTextComponent, int, float)`
  javax.swing.text.Utilities.getPositionBelow(JTextComponent, int, int) | replaced by `Utilities.getPositionBelow(JTextComponent, int, float)`
  javax.xml.bind.Validator.getProperty(String) | since JAXB2.0
  java.lang.reflect.Proxy.getProxyClass(ClassLoader, Class<?>...) | Proxy classes generated in a named module are encapsulated and not accessible to code outside its module. `Constructor.newInstance` will throw `IllegalAccessException` when it is called on an inaccessible proxy class. Use `Proxy.newProxyInstance(ClassLoader, Class[], InvocationHandler)` to create a proxy instance instead.
  java.rmi.server.RemoteCall.getResultStream(boolean) | no replacement
  java.sql.Date.getSeconds() |
  java.util.Date.getSeconds() | As of JDK version 1.1, replaced by `Calendar.get(Calendar.SECOND)`.
  java.rmi.server.LoaderHandler.getSecurityContext(ClassLoader) | no replacement
  java.rmi.server.RMIClassLoader.getSecurityContext(ClassLoader) | no replacement. As of the Java 2 platform v1.2, RMI no longer uses this method to obtain a class loader's security context.
  javax.swing.JList.getSelectedValues() | As of JDK 1.7, replaced by `JList.getSelectedValuesList()`
  javax.tools.ToolProvider.getSystemToolClassLoader() | This method is subject to removal in a future version of Java SE. Use the `system tool provider` or `service loader` mechanisms to locate system tools as well as user-installed tools.
  javax.swing.text.Utilities.getTabbedTextOffset(Segment, FontMetrics, int, int, TabExpander, int) | replaced by `Utilities.getTabbedTextOffset(Segment, FontMetrics, float, float, TabExpander, int, boolean)`
  javax.swing.text.Utilities.getTabbedTextOffset(Segment, FontMetrics, int, int, TabExpander, int, boolean) | replaced by `Utilities.getTabbedTextOffset(Segment, FontMetrics, float, float, TabExpander, int, boolean)`
  javax.swing.text.Utilities.getTabbedTextWidth(Segment, FontMetrics, int, TabExpander, int) | replaced by `Utilities.getTabbedTextWidth(Segment, FontMetrics, float, TabExpander, int)`
  javax.swing.JPasswordField.getText() | As of Java 2 platform v1.2, replaced by `getPassword`.
  javax.swing.JPasswordField.getText(int, int) | As of Java 2 platform v1.2, replaced by `getPassword`.
  javax.management.monitor.CounterMonitor.getThreshold() | As of JMX 1.2, replaced by `CounterMonitor.getThreshold(ObjectName)`
  javax.management.monitor.CounterMonitorMBean.getThreshold() | As of JMX 1.2, replaced by `CounterMonitorMBean.getThreshold(ObjectName)`
  java.util.Date.getTimezoneOffset() | As of JDK version 1.1, replaced by `-(Calendar.get(Calendar.ZONE_OFFSET) + Calendar.get(Calendar.DST_OFFSET)) / (60 * 1000)`.
  javax.swing.plaf.TextUI.getToolTipText(JTextComponent, Point) | replaced by `TextUI.getToolTipText2D(JTextComponent, Point2D)`
  java.net.DatagramSocketImpl.getTTL() | use getTimeToLive instead.
  java.net.MulticastSocket.getTTL() | use the getTimeToLive method instead, which returns an int instead of a byte.
  java.sql.ResultSet.getUnicodeStream(int) | use `getCharacterStream` in place of `getUnicodeStream`
  java.sql.ResultSet.getUnicodeStream(String) | use `getCharacterStream` instead
  java.security.Provider.getVersion() | use `Provider.getVersionStr()` instead.
  javax.swing.ScrollPaneLayout.getViewportBorderBounds(JScrollPane) | As of JDK version Swing1.1 replaced by `JScrollPane.getViewportBorderBounds()`.
  java.awt.Scrollbar.getVisible() | As of JDK version 1.1, replaced by `getVisibleAmount()`.
  netscape.javascript.JSObject.getWindow(Applet) | The Applet API is deprecated. See the java.applet package documentation for further information.
  java.sql.Time.getYear() |
  java.util.Date.getYear() | As of JDK version 1.1, replaced by `Calendar.get(Calendar.YEAR) - 1900`.
  java.awt.Component.gotFocus(Event, Object) | As of JDK version 1.1, replaced by processFocusEvent(FocusEvent).
  java.awt.Component.handleEvent(Event) | As of JDK version 1.1 replaced by processEvent(AWTEvent).
  java.awt.Component.hide() | As of JDK version 1.1, replaced by `setVisible(boolean)`.
  java.awt.Dialog.hide() | As of JDK version 1.5, replaced by `setVisible(boolean)`.
  java.awt.Window.hide() | As of JDK version 1.5, replaced by `Window.setVisible(boolean)`.
  javax.swing.JComponent.hide()
  com.sun.javadoc.ClassDoc.importedClasses() | Import declarations are implementation details that should not be exposed here. In addition, not all imported classes are imported through single-type-import declarations.
  com.sun.javadoc.ClassDoc.importedPackages() | Import declarations are implementation details that should not be exposed here. In addition, this method's return type does not allow for all type-import-on-demand declarations to be returned.
  java.lang.SecurityManager.inClass(String) | This type of security checking is not recommended. It is recommended that the `checkPermission` call be used instead. This method is subject to removal in a future version of Java SE.
  java.lang.SecurityManager.inClassLoader() | This type of security checking is not recommended. It is recommended that the `checkPermission` call be used instead. This method is subject to removal in a future version of Java SE.
  org.omg.CORBA.Any.insert_Principal(Principal) | Deprecated by CORBA 2.2.
  javax.swing.text.html.HTMLEditorKit.InsertHTMLTextAction.insertAtBoundry(JEditorPane, HTMLDocument, int, Element, String, HTML.Tag, HTML.Tag) | As of Java 2 platform v1.3, use insertAtBoundary
  java.awt.TextArea.insertText(String, int) | As of JDK version 1.1, replaced by `insert(String, int)`.
  java.awt.Container.insets() | As of JDK version 1.1, replaced by `getInsets()`.
  java.awt.Component.inside(int, int) | As of JDK version 1.1, replaced by contains(int, int).
  java.awt.Polygon.inside(int, int) | As of JDK version 1.1, replaced by `contains(int, int)`.
  java.awt.Rectangle.inside(int, int) | As of JDK version 1.1, replaced by `contains(int, int)`.
  java.beans.Beans.instantiate(ClassLoader, String, BeanContext, AppletInitializer) | It is recommended to use `Beans.instantiate(ClassLoader, String, BeanContext)`, because the Applet API is deprecated. See the java.applet package documentation for further information.
  java.rmi.server.RemoteRef.invoke(RemoteCall) | 1.2 style stubs no longer use this method. Instead of using a sequence of method calls to the remote reference (`newCall`, `invoke`, and `done`), a stub uses a single method, `invoke(Remote, Method, Object[], int)`, on the remote reference to carry out parameter marshalling, remote method executing and unmarshalling of the return value.
  org.omg.CORBA.DynamicImplementation.invoke(ServerRequest) | Deprecated by Portable Object Adapter
  java.lang.reflect.AccessibleObject.isAccessible() | This method is deprecated because its name hints that it checks if the reflected object is accessible when it actually indicates if the checks for Java language access control are suppressed. This method may return `false` on a reflected object that is accessible to the caller. To test if this reflected object is accessible, it should use `AccessibleObject.canAccess(Object)`.
  javax.swing.JViewport.isBackingStoreEnabled() | As of Java 2 platform v1.3, replaced by `getScrollMode()`.
  javax.swing.FocusManager.isFocusManagerEnabled() | As of 1.4, replaced by `KeyboardFocusManager.getDefaultFocusTraversalPolicy()`
  java.awt.Component.isFocusTraversable() | As of 1.4, replaced by `isFocusable()`.
  java.lang.Character.isJavaLetter(char) | Replaced by isJavaIdentifierStart(char).
  java.lang.Character.isJavaLetterOrDigit(char) | Replaced by isJavaIdentifierPart(char).
  javax.swing.JComponent.isManagingFocus() | As of 1.4, replaced by `Component.setFocusTraversalKeys(int, Set)` and `Container.setFocusCycleRoot(boolean)`.
  java.awt.List.isSelected(int) | As of JDK version 1.1, replaced by `isIndexSelected(int)`.
  java.lang.Character.isSpace(char) | Replaced by isWhitespace(char).
  java.rmi.dgc.VMID.isUnique() |
  javax.xml.bind.Unmarshaller.isValidating() | since JAXB2.0, please see `Unmarshaller.getSchema()`
  java.awt.Component.keyDown(Event, int) | As of JDK version 1.1, replaced by processKeyEvent(KeyEvent).
  java.awt.Component.keyUp(Event, int) | As of JDK version 1.1, replaced by processKeyEvent(KeyEvent).
  java.awt.Component.layout() | As of JDK version 1.1, replaced by `doLayout()`.
  java.awt.Container.layout() | As of JDK version 1.1, replaced by `doLayout()`.
  java.awt.ScrollPane.layout() | As of JDK version 1.1, replaced by `doLayout()`.
  java.rmi.server.LoaderHandler.loadClass(String) | no replacement
  java.rmi.server.LoaderHandler.loadClass(URL, String) | no replacement
  java.rmi.server.RMIClassLoader.loadClass(String) | replaced by `loadClass(String,String)` method
  java.awt.Component.locate(int, int) | As of JDK version 1.1, replaced by getComponentAt(int, int).
  java.awt.Container.locate(int, int) | As of JDK version 1.1, replaced by `getComponentAt(int, int)`.
  java.awt.Component.location() | As of JDK version 1.1, replaced by `getLocation()`.
  java.rmi.server.LogStream.log(String) | no replacement
  java.util.logging.Logger.logrb(Level, String, String, String, String) | Use `Logger.logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.util.ResourceBundle, java.lang.String, java.lang.Object...)` instead.
  java.util.logging.Logger.logrb(Level, String, String, String, String, Object) | Use `Logger.logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.util.ResourceBundle, java.lang.String, java.lang.Object...)` instead
  java.util.logging.Logger.logrb(Level, String, String, String, String, Object[]) | Use `Logger.logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.util.ResourceBundle, java.lang.String, java.lang.Object...)` instead.
  java.util.logging.Logger.logrb(Level, String, String, String, String, Throwable) | Use `Logger.logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.util.ResourceBundle, java.lang.String, java.lang.Throwable)` instead.
  java.awt.Component.lostFocus(Event, Object) | As of JDK version 1.1, replaced by processFocusEvent(FocusEvent).
  java.awt.Component.minimumSize() | As of JDK version 1.1, replaced by `getMinimumSize()`.
  java.awt.Container.minimumSize() | As of JDK version 1.1, replaced by `getMinimumSize()`.
  java.awt.List.minimumSize() | As of JDK version 1.1, replaced by `getMinimumSize()`.
  java.awt.List.minimumSize(int) | As of JDK version 1.1, replaced by `getMinimumSize(int)`.
  java.awt.TextArea.minimumSize() | As of JDK version 1.1, replaced by `getMinimumSize()`.
  java.awt.TextArea.minimumSize(int, int) | As of JDK version 1.1, replaced by `getMinimumSize(int, int)`.
  java.awt.TextField.minimumSize() | As of JDK version 1.1, replaced by `getMinimumSize()`.
  java.awt.TextField.minimumSize(int) | As of JDK version 1.1, replaced by `getMinimumSize(int)`.
  javax.swing.plaf.basic.BasicTextUI.modelToView(JTextComponent, int) | replaced by `BasicTextUI.modelToView2D(JTextComponent, int, Position.Bias)`
  javax.swing.plaf.basic.BasicTextUI.modelToView(JTextComponent, int, Position.Bias) | replaced by `BasicTextUI.modelToView2D(JTextComponent, int, Position.Bias)`
  javax.swing.plaf.multi.MultiTextUI.modelToView(JTextComponent, int) | replaced by `MultiTextUI.modelToView2D(JTextComponent, int, Position.Bias)`
  javax.swing.plaf.multi.MultiTextUI.modelToView(JTextComponent, int, Position.Bias) | replaced by `MultiTextUI.modelToView2D(JTextComponent, int, Position.Bias)`
  javax.swing.plaf.TextUI.modelToView(JTextComponent, int) | replaced by `TextUI.modelToView2D(JTextComponent, int, Position.Bias)`
  javax.swing.plaf.TextUI.modelToView(JTextComponent, int, Position.Bias) | replaced by `TextUI.modelToView2D(JTextComponent, int, Position.Bias)`
  javax.swing.text.JTextComponent.modelToView(int) | replaced by `JTextComponent.modelToView2D(int)`
  javax.swing.text.View.modelToView(int, Shape) |
  java.awt.Component.mouseDown(Event, int, int) | As of JDK version 1.1, replaced by processMouseEvent(MouseEvent).
  java.awt.Component.mouseDrag(Event, int, int) | As of JDK version 1.1, replaced by processMouseMotionEvent(MouseEvent).
  java.awt.Component.mouseEnter(Event, int, int) | As of JDK version 1.1, replaced by processMouseEvent(MouseEvent).
  java.awt.Component.mouseExit(Event, int, int) | As of JDK version 1.1, replaced by processMouseEvent(MouseEvent).
  java.awt.Component.mouseMove(Event, int, int) | As of JDK version 1.1, replaced by processMouseMotionEvent(MouseEvent).
  java.awt.Component.mouseUp(Event, int, int) | As of JDK version 1.1, replaced by processMouseEvent(MouseEvent).
  java.awt.Component.move(int, int) | As of JDK version 1.1, replaced by `setLocation(int, int)`.
  java.awt.Rectangle.move(int, int) | As of JDK version 1.1, replaced by `setLocation(int, int)`.
  org.omg.CORBA.Principal.name() | Deprecated by CORBA 2.2.
  org.omg.CORBA.Principal.name(byte[]) | Deprecated by CORBA 2.2.
  java.rmi.server.RemoteRef.newCall(RemoteObject, Operation[], int, long) | 1.2 style stubs no longer use this method. Instead of using a sequence of method calls on the stub's the remote reference (`newCall`, `invoke`, and `done`), a stub uses a single method, `invoke(Remote, Method, Object[], int)`, on the remote reference to carry out parameter marshalling, remote method executing and unmarshalling of the return value.
  javax.xml.stream.XMLInputFactory.newFactory()
  java.lang.Class.newInstance() | This method propagates any exception thrown by the nullary constructor, including a checked exception. Use of this method effectively bypasses the compile-time exception checking that would otherwise be performed by the compiler. The `Constructor.newInstance` method avoids this problem by wrapping any exception thrown by the constructor in a (checked) `InvocationTargetException`. The call
       clazz.newInstance()
  can be replaced by
       clazz.getDeclaredConstructor().newInstance()
  The latter sequence of calls is inferred to be able to throw the additional exception types `InvocationTargetException` and `NoSuchMethodException`. Both of these exception types are subclasses of `ReflectiveOperationException`.
  javax.xml.stream.XMLEventFactory.newInstance(String, ClassLoader) | This method has been deprecated to maintain API consistency. All newInstance methods have been replaced with corresponding newFactory methods. The replacement `XMLEventFactory.newFactory(java.lang.String, java.lang.ClassLoader)` method defines no changes in behavior.
  javax.xml.stream.XMLInputFactory.newInstance(String, ClassLoader) | This method has been deprecated to maintain API consistency. All newInstance methods have been replaced with corresponding newFactory methods. The replacement `XMLInputFactory.newFactory(java.lang.String, java.lang.ClassLoader)` method defines no changes in behavior.
  javax.xml.stream.XMLOutputFactory.newInstance(String, ClassLoader) | This method has been deprecated because it returns an instance of XMLInputFactory, which is of the wrong class. Use the new method `XMLOutputFactory.newFactory(java.lang.String, java.lang.ClassLoader)` instead.
  java.awt.Component.nextFocus() | As of JDK version 1.1, replaced by transferFocus().
  java.awt.datatransfer.DataFlavor.normalizeMimeType(String) | This method is never invoked by this implementation from 1.1 onwards
  javax.activation.ActivationDataFlavor.normalizeMimeType(String) |
  java.awt.datatransfer.DataFlavor.normalizeMimeTypeParameter(String, String) | This method is never invoked by this implementation from 1.1 onwards
  javax.activation.ActivationDataFlavor.normalizeMimeTypeParameter(String, String) |
  javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(Vector<?>, TreePath) | As of JDK version 1.7
  org.omg.CORBA.ServerRequest.op_name() | use operation()
  org.omg.CORBA.ServerRequest.params(NVList) | use the method `arguments`
  java.util.Date.parse(String) | As of JDK version 1.1, replaced by `DateFormat.parse(String s)`.
  java.rmi.server.LogStream.parseLevel(String) | no replacement
  java.awt.Component.postEvent(Event) | As of JDK version 1.1, replaced by dispatchEvent(AWTEvent).
  java.awt.MenuComponent.postEvent(Event) | As of JDK version 1.1, replaced by `dispatchEvent`.
  java.awt.MenuContainer.postEvent(Event) | As of JDK version 1.1 replaced by dispatchEvent(AWTEvent).
  java.awt.Window.postEvent(Event) | As of JDK version 1.1 replaced by `dispatchEvent(AWTEvent)`.
  java.awt.image.renderable.RenderContext.preConcetenateTransform(AffineTransform) | replaced by `preConcatenateTransform(AffineTransform)`.
  java.awt.Component.preferredSize() | As of JDK version 1.1, replaced by `getPreferredSize()`.
  java.awt.Container.preferredSize() | As of JDK version 1.1, replaced by `getPreferredSize()`.
  java.awt.List.preferredSize() | As of JDK version 1.1, replaced by `getPreferredSize()`.
  java.awt.List.preferredSize(int) | As of JDK version 1.1, replaced by `getPreferredSize(int)`.
  java.awt.TextArea.preferredSize() | As of JDK version 1.1, replaced by `getPreferredSize()`.
  java.awt.TextArea.preferredSize(int, int) | As of JDK version 1.1, replaced by `getPreferredSize(int, int)`.
  java.awt.TextField.preferredSize() | As of JDK version 1.1, replaced by `getPreferredSize()`.
  java.awt.TextField.preferredSize(int) | As of JDK version 1.1, replaced by `getPreferredSize(int)`.
  org.omg.CORBA.portable.InputStream.read_Principal() | Deprecated by CORBA 2.2.
  > java.io.DataInputStream.readLine() | This method does not properly convert bytes to characters. As of JDK 1.1, the preferred way to read lines of text is via the `BufferedReader.readLine()` method. Programs that use the `DataInputStream` class to read lines can be converted to use the `BufferedReader` class by replacing code of the form:
  >          DataInputStream d = new DataInputStream(in);
  > with:
  >          BufferedReader d
  >               = new BufferedReader(new InputStreamReader(in));
  java.io.ObjectInputStream.readLine() | This method does not properly convert bytes to characters. see DataInputStream for the details and alternatives.
  java.awt.AWTKeyStroke.registerSubclass(Class<?>) |
  java.rmi.registry.RegistryHandler.registryImpl(int) | no replacement. As of the Java 2 platform v1.2, RMI no longer uses the `RegistryHandler` to obtain the registry's implementation.
  java.rmi.registry.RegistryHandler.registryStub(String, int) | no replacement. As of the Java 2 platform v1.2, RMI no longer uses the `RegistryHandler` to obtain the registry's stub.
  java.rmi.server.RemoteCall.releaseInputStream() | no replacement
  java.rmi.server.RemoteCall.releaseOutputStream() | no replacement
  javax.swing.plaf.metal.MetalComboBoxUI.removeListeners() | As of Java 2 platform v1.4.
  java.awt.TextArea.replaceText(String, int, int) | As of JDK version 1.1, replaced by `replaceRange(String, int, int)`.
  javax.swing.JComponent.requestDefaultFocus() | As of 1.4, replaced by `FocusTraversalPolicy.getDefaultComponent(Container).requestFocus()`
  java.awt.Component.reshape(int, int, int, int) | As of JDK version 1.1, replaced by `setBounds(int, int, int, int)`.
  java.awt.Rectangle.reshape(int, int, int, int) | As of JDK version 1.1, replaced by `setBounds(int, int, int, int)`.
  java.awt.Window.reshape(int, int, int, int) | As of JDK version 1.1, replaced by `setBounds(int, int, int, int)`.
  javax.swing.JComponent.reshape(int, int, int, int) | As of JDK 5, replaced by `Component.setBounds(int, int, int, int)`. Moves and resizes this component.
  java.awt.Component.resize(int, int) | As of JDK version 1.1, replaced by `setSize(int, int)`.
  java.awt.Component.resize(Dimension) | As of JDK version 1.1, replaced by `setSize(Dimension)`.
  java.awt.Rectangle.resize(int, int) | As of JDK version 1.1, replaced by `setSize(int, int)`.
  org.omg.CORBA.ServerRequest.result(Any) | use the method `set_result`
  java.lang.Thread.resume() | This method exists solely for use with `Thread.suspend()`, which has been deprecated because it is deadlock-prone. For more information, see Why are Thread.stop, Thread.suspend and Thread.resume Deprecated?.
  java.lang.ThreadGroup.resume() | This method is used solely in conjunction with `Thread.suspend` and `ThreadGroup.suspend`, both of which have been deprecated, as they are inherently deadlock-prone. See `Thread.suspend()` for details.
  java.lang.Runtime.runFinalizersOnExit(boolean) | This method is inherently unsafe. It may result in finalizers being called on live objects while other threads are concurrently manipulating those objects, resulting in erratic behavior or deadlock. This method is subject to removal in a future version of Java SE.
  java.lang.System.runFinalizersOnExit(boolean) | This method is inherently unsafe. It may result in finalizers being called on live objects while other threads are concurrently manipulating those objects, resulting in erratic behavior or deadlock. This method is subject to removal in a future version of Java SE.
  java.util.Properties.save(OutputStream, String) | This method does not throw an IOException if an I/O error occurs while saving the property list. The preferred way to save a properties list is via the `store(OutputStream out, String comments)` method or the `storeToXML(OutputStream os, String comment)` method.
  java.net.MulticastSocket.send(DatagramPacket, byte) | Use the following code or its equivalent instead: ...... int ttl = mcastSocket.getTimeToLive(); mcastSocket.setTimeToLive(newttl); mcastSocket.send(p); mcastSocket.setTimeToLive(ttl); ......
  javax.swing.JViewport.setBackingStoreEnabled(boolean) | As of Java 2 platform v1.3, replaced by `setScrollMode()`.
  java.awt.CheckboxGroup.setCurrent(Checkbox) | As of JDK version 1.1, replaced by `setSelectedCheckbox(Checkbox)`.
  java.awt.Frame.setCursor(int) | As of JDK version 1.1, replaced by `Component.setCursor(Cursor)`.
  java.sql.Time.setDate(int) |
  java.util.Date.setDate(int) | As of JDK version 1.1, replaced by `Calendar.set(Calendar.DAY_OF_MONTH, int date)`.
  java.net.URLConnection.setDefaultRequestProperty(String, String) | The instance specific setRequestProperty method should be used after an appropriate instance of URLConnection is obtained. Invoking this method will have no effect.
  java.rmi.server.LogStream.setDefaultStream(PrintStream) | no replacement
  java.awt.TextField.setEchoCharacter(char) | As of JDK version 1.1, replaced by `setEchoChar(char)`.
  javax.xml.bind.Validator.setEventHandler(ValidationEventHandler) | since JAXB2.0
  java.sql.Date.setHours(int) |
  java.util.Date.setHours(int) | As of JDK version 1.1, replaced by `Calendar.set(Calendar.HOUR_OF_DAY, int hours)`.
  javax.swing.AbstractButton.setLabel(String) | - Replaced by `setText(text)`
  java.awt.Scrollbar.setLineIncrement(int) | As of JDK version 1.1, replaced by `setUnitIncrement(int)`.
  java.sql.DriverManager.setLogStream(PrintStream) | Use `setLogWriter`
  javax.management.AttributeValueExp.setMBeanServer(MBeanServer) | This method has no effect. The MBean Server used to obtain an attribute value is `QueryEval.getMBeanServer()`.
  javax.management.StringValueExp.setMBeanServer(MBeanServer)
  javax.management.ValueExp.setMBeanServer(MBeanServer) | This method is not needed because a `ValueExp` can access the MBean server in which it is being evaluated by using `QueryEval.getMBeanServer()`.
  javax.swing.JInternalFrame.setMenuBar(JMenuBar) | As of Swing version 1.0.3 replaced by `setJMenuBar(JMenuBar m)`.
  javax.swing.JRootPane.setMenuBar(JMenuBar) | As of Swing version 1.0.3 replaced by `setJMenuBar(JMenuBar menu)`.
  java.util.logging.LogRecord.setMillis(long) | LogRecord maintains timestamps with nanosecond resolution, using `Instant` values. For this reason, `setInstant()` should be used in preference to `setMillis()`.
  java.sql.Date.setMinutes(int) |
  java.util.Date.setMinutes(int) | As of JDK version 1.1, replaced by `Calendar.set(Calendar.MINUTE, int minutes)`.
  java.awt.event.KeyEvent.setModifiers(int) | as of JDK1.1.4
  java.sql.Time.setMonth(int) |
  java.util.Date.setMonth(int) | As of JDK version 1.1, replaced by `Calendar.set(Calendar.MONTH, int month)`.
  java.awt.List.setMultipleSelections(boolean) | As of JDK version 1.1, replaced by `setMultipleMode(boolean)`.
  javax.swing.JComponent.setNextFocusableComponent(Component) | As of 1.4, replaced by `FocusTraversalPolicy`
  javax.management.monitor.Monitor.setObservedObject(ObjectName) | As of JMX 1.2, replaced by `Monitor.addObservedObject(javax.management.ObjectName)`
  javax.management.monitor.MonitorMBean.setObservedObject(ObjectName) | As of JMX 1.2, replaced by `MonitorMBean.addObservedObject(javax.management.ObjectName)`
  java.rmi.server.LogStream.setOutputStream(OutputStream) | no replacement
  java.awt.Scrollbar.setPageIncrement(int) | As of JDK version 1.1, replaced by `setBlockIncrement()`.
  java.security.Signature.setParameter(String, Object) | Use `setParameter`.
  javax.xml.bind.Validator.setProperty(String, Object) | since JAXB2.0
  java.rmi.server.RemoteStub.setRef(RemoteStub, RemoteRef) | No replacement. The `setRef` method was intended for setting the remote reference of a remote stub. This is unnecessary, since `RemoteStub`s can be created and initialized with a remote reference through use of the `RemoteStub(RemoteRef)` constructor.
  java.math.BigDecimal.setScale(int, int) | The method `BigDecimal.setScale(int, RoundingMode)` should be used in preference to this legacy method.
  java.sql.Date.setSeconds(int) |
  java.util.Date.setSeconds(int) | As of JDK version 1.1, replaced by `Calendar.set(Calendar.SECOND, int seconds)`.
  javax.management.monitor.CounterMonitor.setThreshold(Number) | As of JMX 1.2, replaced by `CounterMonitor.setInitThreshold(java.lang.Number)`
  javax.management.monitor.CounterMonitorMBean.setThreshold(Number) | As of JMX 1.2, replaced by `CounterMonitorMBean.setInitThreshold(java.lang.Number)`
  java.net.DatagramSocketImpl.setTTL(byte) | use setTimeToLive instead.
  java.net.MulticastSocket.setTTL(byte) | use the setTimeToLive method instead, which uses int instead of byte as the type for ttl.
  java.sql.PreparedStatement.setUnicodeStream(int, InputStream, int) | Use `setCharacterStream`
  javax.sql.rowset.BaseRowSet.setUnicodeStream(int, InputStream, int) | getCharacterStream should be used in its place
  java.net.URLStreamHandler.setURL(URL, String, String, int, String, String) | Use setURL(URL, String, String, int, String, String, String, String);
  javax.xml.bind.Unmarshaller.setValidating(boolean) | since JAXB2.0, please see `Unmarshaller.setSchema(javax.xml.validation.Schema)`
  java.sql.Time.setYear(int) |
  java.util.Date.setYear(int) | As of JDK version 1.1, replaced by `Calendar.set(Calendar.YEAR, year + 1900)`.
  javax.swing.InputVerifier.shouldYieldFocus(JComponent) | use `InputVerifier.shouldYieldFocus(JComponent, JComponent)` instead.
  java.awt.Component.show() | As of JDK version 1.1, replaced by `setVisible(boolean)`.
  java.awt.Component.show(boolean) | As of JDK version 1.1, replaced by `setVisible(boolean)`.
  java.awt.Dialog.show() | As of JDK version 1.5, replaced by `setVisible(boolean)`.
  java.awt.Window.show() | As of JDK version 1.5, replaced by `Window.setVisible(boolean)`.
  java.awt.Component.size() | As of JDK version 1.1, replaced by `getSize()`.
  javax.swing.JTable.sizeColumnsToFit(boolean) | As of Swing version 1.0.3, replaced by `doLayout()`.
  java.lang.Thread.stop() | This method is inherently unsafe. Stopping a thread with Thread.stop causes it to unlock all of the monitors that it has locked (as a natural consequence of the unchecked `ThreadDeath` exception propagating up the stack). If any of the objects previously protected by these monitors were in an inconsistent state, the damaged objects become visible to other threads, potentially resulting in arbitrary behavior. Many uses of `stop` should be replaced by code that simply modifies some variable to indicate that the target thread should stop running. The target thread should check this variable regularly, and return from its run method in an orderly fashion if the variable indicates that it is to stop running. If the target thread waits for long periods (on a condition variable, for example), the `interrupt` method should be used to interrupt the wait. For more information, see Why are Thread.stop, Thread.suspend and Thread.resume Deprecated?.
  java.lang.Thread.stop(Throwable) | This method was originally designed to force a thread to stop and throw a given `Throwable` as an exception. It was inherently unsafe (see `Thread.stop()` for details), and furthermore could be used to generate exceptions that the target thread was not prepared to handle. For more information, see Why are Thread.stop, Thread.suspend and Thread.resume Deprecated?. This method is subject to removal in a future version of Java SE.
  java.lang.ThreadGroup.stop() | This method is inherently unsafe. See `Thread.stop()` for details.
  java.lang.Thread.suspend() | This method has been deprecated, as it is inherently deadlock-prone. If the target thread holds a lock on the monitor protecting a critical system resource when it is suspended, no thread can access this resource until the target thread is resumed. If the thread that would resume the target thread attempts to lock this monitor prior to calling `resume`, deadlock results. Such deadlocks typically manifest themselves as "frozen" processes. For more information, see Why are Thread.stop, Thread.suspend and Thread.resume Deprecated?.
  java.lang.ThreadGroup.suspend() | This method is inherently deadlock-prone. See `Thread.suspend()` for details.
  java.util.Date.toGMTString() | As of JDK version 1.1, replaced by `DateFormat.format(Date date)`, using a GMT `TimeZone`.
  java.util.Date.toLocaleString() | As of JDK version 1.1, replaced by `DateFormat.format(Date date)`.
  jdk.nashorn.api.scripting.AbstractJSObject.toNumber() | use `JSObject.getDefaultValue(Class)` with `Number` hint instead.
  jdk.nashorn.api.scripting.JSObject.toNumber() | use `JSObject.getDefaultValue(Class)` with `Number` hint instead.
  jdk.nashorn.api.scripting.ScriptObjectMirror.toNumber()
  java.io.ByteArrayOutputStream.toString(int) | This method does not properly convert bytes into characters. As of JDK 1.1, the preferred way to do this is via the `toString(String enc)` method, which takes an encoding-name argument, or the `toString()` method, which uses the platform's default character encoding.
  java.rmi.server.LogStream.toString() | no replacement
  java.rmi.server.Operation.toString() | no replacement
  java.io.File.toURL() | This method does not automatically escape characters that are illegal in URLs. It is recommended that new code convert an abstract pathname into a URL by first converting it into a URI, via the `toURI` method, and then converting the URI into a URL via the `URI.toURL` method.
  java.lang.Runtime.traceInstructions(boolean) | This method was intended to control instruction tracing. It has been superseded by JVM-specific tracing mechanisms. This method is subject to removal in a future version of Java SE.
  java.lang.Runtime.traceMethodCalls(boolean) | This method was intended to control method call tracing. It has been superseded by JVM-specific tracing mechanisms. This method is subject to removal in a future version of Java SE.
  javax.swing.plaf.metal.MetalScrollPaneUI.uninstallListeners(JScrollPane) | - Replaced by `MetalScrollPaneUI.uninstallListeners(JComponent)`
  java.util.Date.UTC(int, int, int, int, int, int) | As of JDK version 1.1, replaced by `Calendar.set(year + 1900, month, date, hrs, min, sec)` or `GregorianCalendar(year + 1900, month, date, hrs, min, sec)`, using a UTC `TimeZone`, followed by `Calendar.getTime().getTime()`.
  javax.xml.bind.Validator.validate(Object) | since JAXB2.0
  javax.xml.bind.Validator.validateRoot(Object) | since JAXB2.0
  javax.swing.plaf.basic.BasicTextUI.viewToModel(JTextComponent, Point) | replaced by `BasicTextUI.viewToModel2D(JTextComponent, Point2D, Position.Bias[])`
  javax.swing.plaf.basic.BasicTextUI.viewToModel(JTextComponent, Point, Position.Bias[]) | replaced by `BasicTextUI.viewToModel2D(JTextComponent, Point2D, Position.Bias[])`
  javax.swing.plaf.multi.MultiTextUI.viewToModel(JTextComponent, Point)
  javax.swing.plaf.multi.MultiTextUI.viewToModel(JTextComponent, Point, Position.Bias[])
  javax.swing.plaf.TextUI.viewToModel(JTextComponent, Point) | replaced by `TextUI.viewToModel2D(JTextComponent, Point2D, Position.Bias[])`
  javax.swing.plaf.TextUI.viewToModel(JTextComponent, Point, Position.Bias[]) | replaced by `TextUI.viewToModel2D(JTextComponent, Point2D, Position.Bias[])`
  javax.swing.text.JTextComponent.viewToModel(Point) | replaced by `JTextComponent.viewToModel2D(Point2D)`
  javax.swing.text.View.viewToModel(float, float, Shape) |
  java.util.concurrent.atomic.AtomicBoolean.weakCompareAndSet(boolean, boolean) | This method has plain memory effects but the method name implies volatile memory effects (see methods such as `AtomicBoolean.compareAndExchange(boolean, boolean)` and `AtomicBoolean.compareAndSet(boolean, boolean)`). To avoid confusion over plain or volatile memory effects it is recommended that the method `AtomicBoolean.weakCompareAndSetPlain(boolean, boolean)` be used instead.
  java.util.concurrent.atomic.AtomicInteger.weakCompareAndSet(int, int) | This method has plain memory effects but the method name implies volatile memory effects (see methods such as `AtomicInteger.compareAndExchange(int, int)` and `AtomicInteger.compareAndSet(int, int)`). To avoid confusion over plain or volatile memory effects it is recommended that the method `AtomicInteger.weakCompareAndSetPlain(int, int)` be used instead.
  java.util.concurrent.atomic.AtomicIntegerArray.weakCompareAndSet(int, int, int) | This method has plain memory effects but the method name implies volatile memory effects (see methods such as `AtomicIntegerArray.compareAndExchange(int, int, int)` and `AtomicIntegerArray.compareAndSet(int, int, int)`). To avoid confusion over plain or volatile memory effects it is recommended that the method `AtomicIntegerArray.weakCompareAndSetPlain(int, int, int)` be used instead.
  java.util.concurrent.atomic.AtomicLong.weakCompareAndSet(long, long) | This method has plain memory effects but the method name implies volatile memory effects (see methods such as `AtomicLong.compareAndExchange(long, long)` and `AtomicLong.compareAndSet(long, long)`). To avoid confusion over plain or volatile memory effects it is recommended that the method `AtomicLong.weakCompareAndSetPlain(long, long)` be used instead.
  java.util.concurrent.atomic.AtomicLongArray.weakCompareAndSet(int, long, long) | This method has plain memory effects but the method name implies volatile memory effects (see methods such as `AtomicLongArray.compareAndExchange(int, long, long)` and `AtomicLongArray.compareAndSet(int, long, long)`). To avoid confusion over plain or volatile memory effects it is recommended that the method `AtomicLongArray.weakCompareAndSetPlain(int, long, long)` be used instead.
  java.util.concurrent.atomic.AtomicReference.weakCompareAndSet(V, V) | This method has plain memory effects but the method name implies volatile memory effects (see methods such as `AtomicReference.compareAndExchange(V, V)` and `AtomicReference.compareAndSet(V, V)`). To avoid confusion over plain or volatile memory effects it is recommended that the method `AtomicReference.weakCompareAndSetPlain(V, V)` be used instead.
  java.util.concurrent.atomic.AtomicReferenceArray.weakCompareAndSet(int, E, E) | This method has plain memory effects but the method name implies volatile memory effects (see methods such as `AtomicReferenceArray.compareAndExchange(int, E, E)` and `AtomicReferenceArray.compareAndSet(int, E, E)`). To avoid confusion over plain or volatile memory effects it is recommended that the method `AtomicReferenceArray.weakCompareAndSetPlain(int, E, E)` be used instead.
  java.io.ObjectOutputStream.PutField.write(ObjectOutput) | This method does not write the values contained by this `PutField` object in a proper format, and may result in corruption of the serialization stream. The correct way to write `PutField` data is by calling the `ObjectOutputStream.writeFields()` method.
  java.rmi.server.LogStream.write(byte[], int, int) | no replacement
  java.rmi.server.LogStream.write(int) | no replacement
  org.omg.CORBA.portable.OutputStream.write_Principal(Principal) | Deprecated by CORBA 2.2.

- Deprecated Constructors
  Constructor | Description
  --- | ---
  javax.lang.model.util.AbstractAnnotationValueVisitor6() | Release 6 is obsolete; update to a visitor for a newer release level.
  javax.lang.model.util.AbstractElementVisitor6() | Release 6 is obsolete; update to a visitor for a newer release level.
  javax.lang.model.util.AbstractTypeVisitor6() | Release 6 is obsolete; update to a visitor for a newer release level.
  javax.management.AttributeValueExp() | An instance created with this constructor cannot be used in a query.
  java.security.AuthProvider(String, double, String) | use `AuthProvider(String, String, String)` instead.
  java.awt.AWTEvent(Event) | It is recommended that `AWTEvent(Object, int)` be used instead
  java.lang.Boolean(boolean) | It is rarely appropriate to use this constructor. The static factory `Boolean.valueOf(boolean)` is generally a better choice, as it is likely to yield significantly better space and time performance. Also consider using the final fields `Boolean.TRUE` and `Boolean.FALSE` if possible.
  java.lang.Boolean(String) | It is rarely appropriate to use this constructor. Use `Boolean.parseBoolean(String)` to convert a string to a `boolean` primitive, or use `Boolean.valueOf(String)` to convert a string to a `Boolean` object.
  java.lang.Byte(byte) | It is rarely appropriate to use this constructor. The static factory `Byte.valueOf(byte)` is generally a better choice, as it is likely to yield significantly better space and time performance.
  java.lang.Byte(String) | It is rarely appropriate to use this constructor. Use `Byte.parseByte(String)` to convert a string to a `byte` primitive, or use `Byte.valueOf(String)` to convert a string to a `Byte` object.
  java.lang.Character(char) | It is rarely appropriate to use this constructor. The static factory `Character.valueOf(char)` is generally a better choice, as it is likely to yield significantly better space and time performance.
  java.sql.Date(int, int, int) | instead use the constructor `Date(long date)`
  java.util.Date(int, int, int) | As of JDK version 1.1, replaced by `Calendar.set(year + 1900, month, date)` or `GregorianCalendar(year + 1900, month, date)`.
  java.util.Date(int, int, int, int, int) | As of JDK version 1.1, replaced by `Calendar.set(year + 1900, month, date, hrs, min)` or `GregorianCalendar(year + 1900, month, date, hrs, min)`.
  java.util.Date(int, int, int, int, int, int) | As of JDK version 1.1, replaced by `Calendar.set(year + 1900, month, date, hrs, min, sec)` or `GregorianCalendar(year + 1900, month, date, hrs, min, sec)`.
  java.util.Date(String) | As of JDK version 1.1, replaced by `DateFormat.parse(String s)`.
  java.lang.Double(double) | It is rarely appropriate to use this constructor. The static factory `Double.valueOf(double)` is generally a better choice, as it is likely to yield significantly better space and time performance.
  java.lang.Double(String) | It is rarely appropriate to use this constructor. Use `Double.parseDouble(String)` to convert a string to a `double` primitive, or use `Double.valueOf(String)` to convert a string to a `Double` object.
  javax.lang.model.util.ElementKindVisitor6() | Release 6 is obsolete; update to a visitor for a newer release level.
  javax.lang.model.util.ElementKindVisitor6(R) | Release 6 is obsolete; update to a visitor for a newer release level.
  javax.lang.model.util.ElementScanner6() | Release 6 is obsolete; update to a visitor for a newer release level.
  javax.lang.model.util.ElementScanner6(R) | Release 6 is obsolete; update to a visitor for a newer release level.
  java.lang.Float(double) | It is rarely appropriate to use this constructor. Instead, use the static factory method `Float.valueOf(float)` method as follows: `Float.valueOf((float)value)`.
  java.lang.Float(float) | It is rarely appropriate to use this constructor. The static factory `Float.valueOf(float)` is generally a better choice, as it is likely to yield significantly better space and time performance.
  java.lang.Float(String) | It is rarely appropriate to use this constructor. Use `Float.parseFloat(String)` to convert a string to a `float` primitive, or use `Float.valueOf(String)` to convert a string to a `Float` object.
  java.lang.Integer(int) | It is rarely appropriate to use this constructor. The static factory `Integer.valueOf(int)` is generally a better choice, as it is likely to yield significantly better space and time performance.
  java.lang.Integer(String) | It is rarely appropriate to use this constructor. Use `Integer.parseInt(String)` to convert a string to a `int` primitive, or use `Integer.valueOf(String)` to convert a string to an `Integer` object.
  java.awt.event.KeyEvent(Component, int, long, int, int) | as of JDK1.1; use `KeyEvent(Component, int, long, int, int, char)` instead
  java.lang.Long(long) | It is rarely appropriate to use this constructor. The static factory `Long.valueOf(long)` is generally a better choice, as it is likely to yield significantly better space and time performance.
  java.lang.Long(String) | It is rarely appropriate to use this constructor. Use `Long.parseLong(String)` to convert a string to a `long` primitive, or use `Long.valueOf(String)` to convert a string to a `Long` object.
  java.rmi.server.Operation(String) | no replacement
  java.security.Provider(String, double, String) | use `Provider(String, String, String)` instead.
  java.rmi.RMISecurityException(String) | no replacement
  java.rmi.RMISecurityException(String, String) | no replacement
  java.rmi.ServerRuntimeException(String, Exception) | no replacement
  java.lang.Short(short) | It is rarely appropriate to use this constructor. The static factory `Short.valueOf(short)` is generally a better choice, as it is likely to yield significantly better space and time performance.
  java.lang.Short(String) | It is rarely appropriate to use this constructor. Use `Short.parseShort(String)` to convert a string to a `short` primitive, or use `Short.valueOf(String)` to convert a string to a `Short` object.
  javax.lang.model.util.SimpleAnnotationValueVisitor6() | Release 6 is obsolete; update to a visitor for a newer release level.
  javax.lang.model.util.SimpleAnnotationValueVisitor6(R) | Release 6 is obsolete; update to a visitor for a newer release level.
  javax.lang.model.util.SimpleElementVisitor6() | Release 6 is obsolete; update to a visitor for a newer release level.
  javax.lang.model.util.SimpleElementVisitor6(R) | Release 6 is obsolete; update to a visitor for a newer release level.
  javax.lang.model.util.SimpleTypeVisitor6() | Release 6 is obsolete; update to a visitor for a newer release level.
  javax.lang.model.util.SimpleTypeVisitor6(R) | Release 6 is obsolete; update to a visitor for a newer release level.
  java.rmi.server.SkeletonMismatchException(String) | no replacement
  java.net.Socket(String, int, boolean) | Use DatagramSocket instead for UDP transport.
  java.net.Socket(InetAddress, int, boolean) | Use DatagramSocket instead for UDP transport.
  > java.io.StreamTokenizer(InputStream) | As of JDK version 1.1, the preferred way to tokenize an input stream is to convert it into a character stream, for example:
  >        Reader r = new BufferedReader(new InputStreamReader(is));
  >        StreamTokenizer st = new StreamTokenizer(r);
  java.lang.String(byte[], int) | This method does not properly convert bytes into characters. As of JDK 1.1, the preferred way to do this is via the `String` constructors that take a `Charset`, charset name, or that use the platform's default charset.
  java.lang.String(byte[], int, int, int) | This method does not properly convert bytes into characters. As of JDK 1.1, the preferred way to do this is via the `String` constructors that take a `Charset`, charset name, or that use the platform's default charset.
  org.omg.CORBA.TCKind(int) | Do not use this constructor as this method should be private according to the OMG specification. Use `TCKind.from_int(int)` instead.
  java.sql.Time(int, int, int) | Use the constructor that takes a milliseconds value in place of this constructor
  java.sql.Timestamp(int, int, int, int, int, int, int) | instead use the constructor `Timestamp(long millis)`
  javax.lang.model.util.TypeKindVisitor6() | Release 6 is obsolete; update to a visitor for a newer release level.
  javax.lang.model.util.TypeKindVisitor6(R) | Release 6 is obsolete; update to a visitor for a newer release level.

- Deprecated Enum Constants
  Enum Constant | Description
  --- | ---
  com.sun.security.jgss.InquireType.KRB5_GET_SESSION_KEY | as of 9, replaced by `InquireType.KRB5_GET_SESSION_KEY_EX` which returns an instance of `EncryptionKey` that implements the `SecretKey` interface and has similar methods with `KerberosKey`.

- Deprecated Annotation Type Elements
  Annotation Type Element | Description
  --- | ---
  javax.jws.HandlerChain.name()