JDK-6852936 : Remove unused classes from sun.misc
  • Type: Bug
  • Component: other-libs
  • Sub-Component: other
  • Affected Version: 9
  • Priority: P4
  • Status: Open
  • Resolution: Unresolved
  • OS: generic
  • CPU: generic
  • Submitted: 2009-06-19
  • Updated: 2018-09-11
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
tbdUnresolved
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Description
Many of the classes in sun.misc date back to early JDK releases and may not be used anymore. Others have public replacements. This bug is submitted to check each of the classes in sun.misc and remove any that aren't being used. Further bugs/rfes may be submitted for cases where other code should be updated to use public or more modern replacements (eg: sun.misc.Service -> java.util.ServiceLoader).

Comments
From the Maven Central search dated May 2014, sun.misc.UUEncoder and UUDecoder are used by: org.apache.tools.ant.taskdefs.email.UUMailer com.canoo.webtest.plugins.emailtest.EmailMessageContentFilter org.apache.tools.ant.taskdefs.email.UUMailer org.mule.transformers.codec.UUDecoder org.owasp.jbrofuzz.encode.UUEncoder scala.tools.scalap.MainTest$MainTestCase
02-12-2015

Dependencies on sun.misc.* APIs analyzed from 89299 maven artifacts downloaded in Sep 2012: class unique total sun.misc.Unsafe 70 375 sun.misc.BASE64Encoder 47 217 sun.misc.BASE64Decoder 34 364 sun.misc.Perf 20 124 sun.misc.URLClassPath 15 268 sun.misc.Signal 14 55 sun.misc.SignalHandler 14 55 sun.misc.UUEncoder 13 131 sun.misc.CharacterEncoder 11 35 sun.misc.Service 10 164 sun.misc.CharacterDecoder 4 15 sun.misc.Cleaner 4 6 sun.misc.Resource 3 25 sun.misc.UUDecoder 3 19 sun.misc.Perf$GetPerfAction 2 16 sun.misc.UCDecoder 2 18 sun.misc.UCEncoder 2 18 sun.misc.CRC16 1 1 sun.misc.ClassFileTransformer 1 4 sun.misc.CompoundEnumeration 1 2 sun.misc.IOUtils 1 1 sun.misc.JarFilter 1 1 sun.misc.MessageUtils 1 2 sun.misc.Ref 1 1 sun.misc.ServiceConfigurationError 1 1 sun.misc.SoftCache 1 3
28-03-2014

It appears that the following are no longer used: sun.misc.CRC16 \ sun.misc.Cache \ sun.misc.CacheEntry \ sun.misc.CacheEnumerator \ sun.misc.Compare \ sun.misc.ConditionLock \ sun.misc.FIFOQueueEnumeration \ sun.misc.LIFOQueueEnumeration \ sun.misc.Lock \ sun.misc.Regexp sun.misc.Request \ sun.misc.RequestProcessor \ sun.misc.Sort \ sun.misc.Timeable \ sun.misc.TimerThread \ sun.misc.TimerTickThread \ sun.misc.UCDecoder \ sun.misc.UCEncoder \ sun.misc.UUDecoder \ sun.misc.UUEncoder \ sun.misc.VMNotification \ sun.misc.CRC16 is loaded using Class.forName by test/closed/java/lang/SecurityManager/CheckPackagesLock.java. It looks like this test case easily be changed to use another class.
08-01-2014

EVALUATION For compatibility reason, these classes may need to remain in the JDK in a separate module.
30-10-2009