RFR [9] 8038459: (sctp) Remove superflous classes on platforms without an implementation [macosx, aix]

Chris Hegarty chris.hegarty at oracle.com
Thu Mar 27 10:46:59 UTC 2014


While hunting around the build recently, when working on another SCTP bug, I noticed a small issue where SCTP classes are being built on some platforms unnecessarily.

Webrev:
  http://cr.openjdk.java.net/~chegar/8038459/webrev.00/webrev/

Mac OS X and AIX contain only stubs for the SCTP channels. There are platform specific versions of the stubs for these platforms, so the build currently filters out the three channel implementation classes, on these platforms. But, there are other implementation classes in src/solaris/classes/sun/nio/ch/sctp that are needed for Linux and Solaris. These classes should be filter out also, on platforms that do not require them ( Mac OS X and AIX ). 

Looking at rt. jar from a Mac JRE the superfluous classes can be seen: 

$ jar -tvf rt.jar | grep "sun/nio/ch/sctp" 
  2420 Thu Feb 27 23:47:08 GMT 2014 sun/nio/ch/sctp/AssociationChange.class <<< NOT NEEDED 
   759 Thu Feb 27 23:47:08 GMT 2014 sun/nio/ch/sctp/AssociationImpl.class <<< NOT NEEDED 
  2614 Thu Feb 27 23:47:04 GMT 2014 sun/nio/ch/sctp/MessageInfoImpl.class 
  2607 Thu Feb 27 23:47:08 GMT 2014 sun/nio/ch/sctp/PeerAddrChange.class <<< NOT NEEDED 
  2793 Thu Feb 27 23:47:08 GMT 2014 sun/nio/ch/sctp/ResultContainer.class <<< NOT NEEDED 
  2850 Thu Feb 27 23:47:10 GMT 2014 sun/nio/ch/sctp/SctpChannelImpl.class 
  2987 Thu Feb 27 23:47:10 GMT 2014 sun/nio/ch/sctp/SctpMultiChannelImpl.class 
  7712 Thu Feb 27 23:47:08 GMT 2014 sun/nio/ch/sctp/SctpNet.class <<< NOT NEEDED 
   251 Thu Feb 27 23:47:08 GMT 2014 sun/nio/ch/sctp/SctpNotification.class <<< NOT NEEDED 
  1935 Thu Feb 27 23:47:10 GMT 2014 sun/nio/ch/sctp/SctpServerChannelImpl.class 
  1379 Thu Feb 27 23:47:04 GMT 2014 sun/nio/ch/sctp/SctpStdSocketOption.class 
  1953 Thu Feb 27 23:47:08 GMT 2014 sun/nio/ch/sctp/SendFailed.class <<< NOT NEEDED 
  1239 Thu Feb 27 23:47:08 GMT 2014 sun/nio/ch/sctp/Shutdown.class <<< NOT NEEDED 

Note: SctpStdSocketOption.class and MessageInfoImpl.class are platform independent, and needed to support parts of the API that are not dependent on an actual socket implementation.

-Chris.


More information about the net-dev mailing list