JDK-6367207 : Ensure correctness of all @since tags added since 1.2
  • Type: Bug
  • Component: other-libs
  • Sub-Component: other
  • Affected Version: 5.0,6
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic,linux,windows_xp
  • CPU: generic,x86
  • Submitted: 2005-12-24
  • Updated: 2010-05-11
  • Resolved: 2006-04-14
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.
JDK 6
6 b81Fixed
Related Reports
Duplicate :  
Duplicate :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Description
In the past, we've relied on engineers to get the @since tags in their javadoc
correct.  But it's well known that computers are much better at doing this kind
of mundane task.  So now there's a script "findMissingSince" that identifies
all the missing/incorrect @since tags a pair of release api doc trees.

There's no excuse for not simply getting all of these right, now that we can.

There have been piecemeal attempts to address parts of this issue, e.g. see:
6364793: Add missing @since 1.6 in Core Library javadoc
but someone (not me) should own the whole problem.

Here are the @since bugs for 6.0:

$ findMissingSince 6.0 1.5.0
Missing method @since: java.awt.AlphaComposite.derive(float)
Missing method @since: java.awt.AlphaComposite.derive(int)
Missing class @since: java.awt.SplashScreen
Missing method @since: java.awt.Toolkit.createDesktopPeer(java.awt.Desktop)
Missing class @since: java.awt.TrayIcon.MessageType
Missing method @since: java.awt.event.MouseEvent.MouseEvent(java.awt.Component,int,long,int,int,int,int,int,int,boolean,int)
Missing method @since: java.awt.event.MouseEvent.getXOnScreen()
Missing method @since: java.awt.event.MouseEvent.getLocationOnScreen()
Missing method @since: java.awt.event.MouseEvent.getYOnScreen()
Missing method @since: java.awt.event.MouseWheelEvent.MouseWheelEvent(java.awt.Component,int,long,int,int,int,int,int,int,boolean,int,int,int)
Missing method @since: java.io.File.canExecute()
Missing method @since: java.io.ObjectStreamClass.lookupAny(java.lang.Class)
Missing method @since: java.nio.Buffer.isDirect()
Missing method @since: java.nio.Buffer.array()
Missing method @since: java.nio.Buffer.hasArray()
Missing method @since: java.nio.Buffer.arrayOffset()
Missing method @since: java.sql.Connection.getClientInfo(java.lang.String)
Missing method @since: java.sql.Connection.setClientInfo(java.util.Properties)
Missing method @since: java.sql.Connection.isValid(int)
Missing method @since: java.sql.Connection.setClientInfo(java.lang.String,java.lang.String)
Missing method @since: java.sql.DataTruncation.DataTruncation(int,boolean,boolean,int,int,java.lang.String)
Missing method @since: java.sql.DataTruncation.DataTruncation(int,boolean,boolean,int,int,java.lang.String,java.lang.Throwable)
Missing method @since: java.sql.DataTruncation.DataTruncation(int,boolean,boolean,int,int,java.lang.Throwable)
Missing method @since: java.sql.PreparedStatement.isPoolable()
Missing method @since: java.sql.ResultSet.getSQLXML(java.lang.String)
Missing method @since: java.sql.SQLException.iterator()
Missing method @since: java.sql.SQLWarning.SQLWarning(java.lang.Throwable)
Missing method @since: java.sql.SQLWarning.SQLWarning(java.lang.String,java.lang.String,java.lang.Throwable)
Missing method @since: java.sql.SQLWarning.SQLWarning(java.lang.String,java.lang.Throwable)
Missing method @since: java.sql.SQLWarning.SQLWarning(java.lang.String,java.lang.String,int,java.lang.Throwable)
Missing method @since: java.util.LinkedList.descendingIterator()
Missing method @since: java.util.concurrent.locks.ReentrantReadWriteLock.getReadHoldCount()
Missing class @since: javax.management.DescriptorKey
Wrong method @since: javax.management.remote.rmi.RMIConnector.getAddress() 1.5
Missing method @since: javax.management.modelmbean.ModelMBeanInfoSupport.getDescriptor()
Missing method @since: javax.net.ssl.SSLContextSpi.engineGetSupportedSSLParameters()
Missing method @since: javax.net.ssl.SSLContextSpi.engineGetDefaultSSLParameters()
Missing class @since: javax.sql.CommonDataSource
Missing method @since: javax.sql.rowset.RowSetMetaDataImpl.isWrapperFor(java.lang.Class)
Missing method @since: javax.sql.rowset.RowSetMetaDataImpl.unwrap(java.lang.Class)
Missing method @since: javax.sql.rowset.serial.SerialBlob.free()
Missing method @since: javax.sql.rowset.serial.SerialBlob.getBinaryStream(long,long)
Missing method @since: javax.sql.rowset.serial.SerialClob.getCharacterStream(long,long)
Missing method @since: javax.sql.rowset.serial.SerialClob.free()
Missing method @since: javax.swing.event.MenuDragMouseEvent.MenuDragMouseEvent(java.awt.Component,int,long,int,int,int,int,int,int,boolean,javax.swing.MenuElement[],javax.swing.MenuSelectionManager)
Missing class @since: javax.swing.SwingWorker.StateValue
Missing method @since: javax.swing.TransferHandler.shouldIndicate(javax.swing.TransferHandler.TransferInfo,boolean)
Missing method @since: javax.swing.plaf.metal.MetalLookAndFeel.getLayoutStyle()
Missing method @since: javax.xml.parsers.DocumentBuilderFactory.newInstance(java.lang.String,java.lang.ClassLoader)
Missing method @since: javax.xml.parsers.SAXParserFactory.newInstance(java.lang.String,java.lang.ClassLoader)
Missing method @since: javax.xml.transform.TransformerFactory.newInstance(java.lang.String,java.lang.ClassLoader)
Missing method @since: javax.xml.datatype.DatatypeFactory.newInstance(java.lang.String,java.lang.ClassLoader)
Missing method @since: javax.xml.validation.SchemaFactory.newInstance(java.lang.String,java.lang.String,java.lang.ClassLoader)
Missing method @since: javax.xml.xpath.XPathFactory.newInstance(java.lang.String,java.lang.String,java.lang.ClassLoader)
Here are the @since bugs for 1.5 (not too late to add @since in mustang):

(Note: findMissingSince can be found in /java/jdk/bin)

$ findMissingSince 1.5.0 1.4.2
Missing method @since: java.awt.BasicStroke.feedConsumer(sun.dc.path.PathConsumer,java.awt.geom.PathIterator)
Missing method @since: java.awt.event.InvocationEvent.getThrowable()
Missing method @since: java.awt.Toolkit.getMouseInfoPeer()
Missing method @since: java.awt.image.BufferedImage.getCapabilities(java.awt.GraphicsConfiguration)
Missing method @since: java.io.Reader.read(java.nio.CharBuffer)
Missing method @since: java.lang.Class.getAnnotation(java.lang.Class)
Missing method @since: java.lang.Class.getDeclaredAnnotations()
Missing method @since: java.lang.Class.isAnnotationPresent(java.lang.Class)
Missing method @since: java.lang.Class.getAnnotations()
Missing class @since: java.lang.Iterable
Missing method @since: java.lang.Math.log1p(double)
Missing method @since: java.lang.Math.expm1(double)
Missing method @since: java.lang.Package.getAnnotations()
Missing method @since: java.lang.Package.getAnnotation(java.lang.Class)
Missing method @since: java.lang.Package.isAnnotationPresent(java.lang.Class)
Missing method @since: java.lang.Package.getDeclaredAnnotations()
Missing method @since: java.lang.StrictMath.log1p(double)
Missing method @since: java.lang.StrictMath.expm1(double)
Missing method @since: java.lang.reflect.AccessibleObject.getDeclaredAnnotations()
Missing method @since: java.lang.reflect.AccessibleObject.getAnnotation(java.lang.Class)
Missing method @since: java.lang.reflect.AccessibleObject.getAnnotations()
Missing method @since: java.lang.reflect.AccessibleObject.isAnnotationPresent(java.lang.Class)
Missing method @since: java.lang.reflect.Constructor.getDeclaredAnnotations()
Missing method @since: java.lang.reflect.Constructor.getAnnotation(java.lang.Class)
Missing method @since: java.lang.reflect.Field.getAnnotation(java.lang.Class)
Missing method @since: java.lang.reflect.Field.getDeclaredAnnotations()
Missing method @since: java.lang.reflect.Method.getDeclaredAnnotations()
Missing method @since: java.lang.reflect.Method.getAnnotation(java.lang.Class)
Missing method @since: java.math.BigDecimal.divide(java.math.BigDecimal,java.math.RoundingMode)
Missing method @since: java.math.BigDecimal.abs(java.math.MathContext)
Missing method @since: java.math.BigDecimal.stripTrailingZeros()
Missing class @since: java.math.MathContext
Missing class @since: java.math.RoundingMode
Missing method @since: java.net.HttpURLConnection.setChunkedStreamingMode(int)
Missing method @since: java.net.HttpURLConnection.setFixedLengthStreamingMode(int)
Missing method @since: java.net.URI.compareTo(java.net.URI)
Missing method @since: java.nio.ByteBuffer.compareTo(java.nio.ByteBuffer)
Missing method @since: java.nio.CharBuffer.read(java.nio.CharBuffer)
Missing method @since: java.nio.CharBuffer.compareTo(java.nio.CharBuffer)
Missing method @since: java.nio.DoubleBuffer.compareTo(java.nio.DoubleBuffer)
Missing method @since: java.nio.FloatBuffer.compareTo(java.nio.FloatBuffer)
Missing method @since: java.nio.IntBuffer.compareTo(java.nio.IntBuffer)
Missing method @since: java.nio.LongBuffer.compareTo(java.nio.LongBuffer)
Missing method @since: java.nio.ShortBuffer.compareTo(java.nio.ShortBuffer)
Missing method @since: java.nio.charset.Charset.compareTo(java.nio.charset.Charset)
Missing method @since: java.text.BreakIterator.getInt(byte[],int)
Missing method @since: java.text.BreakIterator.getLong(byte[],int)
Missing method @since: java.text.BreakIterator.getShort(byte[],int)
Missing class @since: java.util.Formatter.BigDecimalLayoutForm
Missing class @since: java.util.jar.Pack200.Packer
Missing class @since: java.util.jar.Pack200.Unpacker
Missing method @since: java.util.logging.LogManager.getLoggingMXBean()
Missing method @since: java.util.regex.Matcher.toMatchResult()
Missing method @since: java.util.zip.Deflater.getBytesRead()
Missing method @since: java.util.zip.Deflater.getBytesWritten()
Missing method @since: java.util.zip.Inflater.getBytesWritten()
Missing method @since: java.util.zip.Inflater.getBytesRead()
Missing class @since: javax.accessibility.AccessibleAttributeSequence
Missing class @since: javax.accessibility.AccessibleExtendedText
Missing class @since: javax.accessibility.AccessibleStreamable
Missing class @since: javax.accessibility.AccessibleTextSequence
Missing method @since: javax.crypto.EncryptedPrivateKeyInfo.getKeySpec(java.security.Key,java.security.Provider)
Missing method @since: javax.crypto.EncryptedPrivateKeyInfo.getKeySpec(java.security.Key,java.lang.String)
Missing method @since: javax.crypto.EncryptedPrivateKeyInfo.getKeySpec(java.security.Key)
Missing class @since: javax.crypto.spec.PSource.PSpecified
Missing method @since: javax.imageio.metadata.IIOMetadataNode.isEqualNode(org.w3c.dom.Node)
Missing method @since: javax.imageio.metadata.IIOMetadataNode.getFeature(java.lang.String,java.lang.String)
Missing method @since: javax.imageio.metadata.IIOMetadataNode.compareDocumentPosition(org.w3c.dom.Node)
Missing method @since: javax.imageio.metadata.IIOMetadataNode.getBaseURI()
Missing method @since: javax.imageio.metadata.IIOMetadataNode.getUserData(java.lang.String)
Missing method @since: javax.imageio.metadata.IIOMetadataNode.setUserData(java.lang.String,java.lang.Object,org.w3c.dom.UserDataHandler)
Missing method @since: javax.imageio.metadata.IIOMetadataNode.getTextContent()
Missing method @since: javax.imageio.metadata.IIOMetadataNode.isSameNode(org.w3c.dom.Node)
Missing method @since: javax.imageio.metadata.IIOMetadataNode.setIdAttribute(java.lang.String,boolean)
Missing method @since: javax.imageio.metadata.IIOMetadataNode.lookupNamespaceURI(java.lang.String)
Missing method @since: javax.imageio.metadata.IIOMetadataNode.lookupPrefix(java.lang.String)
Missing method @since: javax.imageio.metadata.IIOMetadataNode.setIdAttributeNode(org.w3c.dom.Attr,boolean)
Missing method @since: javax.imageio.metadata.IIOMetadataNode.getSchemaTypeInfo()
Missing method @since: javax.imageio.metadata.IIOMetadataNode.setTextContent(java.lang.String)
Missing method @since: javax.imageio.metadata.IIOMetadataNode.isDefaultNamespace(java.lang.String)
Missing method @since: javax.imageio.metadata.IIOMetadataNode.setIdAttributeNS(java.lang.String,java.lang.String,boolean)
Missing method @since: javax.print.attribute.standard.JobStateReasons.add(javax.print.attribute.standard.JobStateReason)
Missing method @since: javax.print.attribute.standard.PrinterStateReasons.put(javax.print.attribute.standard.PrinterStateReason,javax.print.attribute.standard.Severity)
Missing class @since: javax.rmi.CORBA.ValueHandlerMultiFormat
Missing class @since: javax.swing.text.html.FormSubmitEvent.MethodType
Missing method @since: javax.swing.LookAndFeel.installProperty(javax.swing.JComponent,java.lang.String,java.lang.Object)
Missing method @since: javax.swing.plaf.basic.BasicSplitPaneDivider.isMouseOver()
Missing method @since: javax.xml.parsers.DocumentBuilderFactory.setFeature(java.lang.String,boolean)
Missing method @since: javax.xml.parsers.DocumentBuilderFactory.getFeature(java.lang.String)
Missing method @since: javax.xml.transform.TransformerFactory.setFeature(java.lang.String,boolean)
Missing class @since: org.omg.CORBA.ACTIVITY_COMPLETED
Missing class @since: org.omg.CORBA.ACTIVITY_REQUIRED
Missing class @since: org.omg.CORBA.BAD_QOS
Missing class @since: org.omg.CORBA.CODESET_INCOMPATIBLE
Missing class @since: org.omg.CORBA.INVALID_ACTIVITY
Missing class @since: org.omg.CORBA.REBIND
Missing class @since: org.omg.CORBA.TIMEOUT
Missing class @since: org.omg.CORBA.TRANSACTION_MODE
Missing class @since: org.omg.CORBA.TRANSACTION_UNAVAILABLE
Missing class @since: org.omg.CORBA.portable.ValueInputStream
Missing class @since: org.omg.CORBA.portable.ValueOutputStream
Missing method @since: org.omg.CosNaming.BindingIteratorHelper.unchecked_narrow(org.omg.CORBA.Object)
Missing method @since: org.omg.CosNaming.NamingContextExtHelper.unchecked_narrow(org.omg.CORBA.Object)
Missing method @since: org.omg.CosNaming.NamingContextHelper.unchecked_narrow(org.omg.CORBA.Object)
Missing method @since: org.omg.PortableServer.ServantActivatorHelper.unchecked_narrow(org.omg.CORBA.Object)
Missing method @since: org.omg.PortableServer.ServantLocatorHelper.unchecked_narrow(org.omg.CORBA.Object)
Missing class @since: org.omg.PortableInterceptor.ACTIVE
Missing class @since: org.omg.PortableInterceptor.AdapterManagerIdHelper
Missing class @since: org.omg.PortableInterceptor.AdapterNameHelper
Missing class @since: org.omg.PortableInterceptor.AdapterStateHelper
Missing method @since: org.omg.PortableInterceptor.CurrentHelper.unchecked_narrow(org.omg.CORBA.Object)
Missing class @since: org.omg.PortableInterceptor.DISCARDING
Missing class @since: org.omg.PortableInterceptor.HOLDING
Missing class @since: org.omg.PortableInterceptor.INACTIVE
Missing method @since: org.omg.PortableInterceptor.IORInfoOperations.state()
Missing method @since: org.omg.PortableInterceptor.IORInfoOperations.current_factory(org.omg.PortableInterceptor.ObjectReferenceFactory)
Missing method @since: org.omg.PortableInterceptor.IORInfoOperations.adapter_template()
Missing method @since: org.omg.PortableInterceptor.IORInfoOperations.current_factory()
Missing method @since: org.omg.PortableInterceptor.IORInfoOperations.manager_id()
Missing class @since: org.omg.PortableInterceptor.IORInterceptor_3_0
Missing class @since: org.omg.PortableInterceptor.IORInterceptor_3_0Helper
Missing class @since: org.omg.PortableInterceptor.IORInterceptor_3_0Holder
Missing class @since: org.omg.PortableInterceptor.IORInterceptor_3_0Operations
Missing class @since: org.omg.PortableInterceptor.NON_EXISTENT
Missing class @since: org.omg.PortableInterceptor.ObjectIdHelper
Missing class @since: org.omg.PortableInterceptor.ObjectReferenceFactory
Missing class @since: org.omg.PortableInterceptor.ObjectReferenceFactoryHelper
Missing class @since: org.omg.PortableInterceptor.ObjectReferenceFactoryHolder
Missing class @since: org.omg.PortableInterceptor.ObjectReferenceTemplate
Missing class @since: org.omg.PortableInterceptor.ObjectReferenceTemplateHelper
Missing class @since: org.omg.PortableInterceptor.ObjectReferenceTemplateHolder
Missing class @since: org.omg.PortableInterceptor.ObjectReferenceTemplateSeqHelper
Missing class @since: org.omg.PortableInterceptor.ObjectReferenceTemplateSeqHolder
Missing class @since: org.omg.PortableInterceptor.ORBIdHelper
Missing class @since: org.omg.PortableInterceptor.ServerIdHelper
Missing method @since: org.omg.PortableInterceptor.ServerRequestInfoOperations.orb_id()
Missing method @since: org.omg.PortableInterceptor.ServerRequestInfoOperations.adapter_name()
Missing method @since: org.omg.PortableInterceptor.ServerRequestInfoOperations.server_id()
Missing class @since: org.omg.PortableInterceptor.UNKNOWN
Missing method @since: org.omg.IOP.CodecFactoryHelper.unchecked_narrow(org.omg.CORBA.Object)
Missing class @since: org.omg.IOP.ExceptionDetailMessage
Missing class @since: org.omg.IOP.RMICustomMaxStreamFormat
Missing class @since: org.omg.IOP.TAG_RMI_CUSTOM_MAX_STREAM_FORMAT
Missing method @since: org.omg.DynamicAny.DynAnyFactoryHelper.unchecked_narrow(org.omg.CORBA.Object)
Missing method @since: org.omg.DynamicAny.DynAnyHelper.unchecked_narrow(org.omg.CORBA.Object)
Missing method @since: org.omg.DynamicAny.DynArrayHelper.unchecked_narrow(org.omg.CORBA.Object)
Missing method @since: org.omg.DynamicAny.DynEnumHelper.unchecked_narrow(org.omg.CORBA.Object)
Missing method @since: org.omg.DynamicAny.DynFixedHelper.unchecked_narrow(org.omg.CORBA.Object)
Missing method @since: org.omg.DynamicAny.DynSequenceHelper.unchecked_narrow(org.omg.CORBA.Object)
Missing method @since: org.omg.DynamicAny.DynStructHelper.unchecked_narrow(org.omg.CORBA.Object)
Missing method @since: org.omg.DynamicAny.DynUnionHelper.unchecked_narrow(org.omg.CORBA.Object)
Missing method @since: org.omg.DynamicAny.DynValueHelper.unchecked_narrow(org.omg.CORBA.Object)
Missing method @since: org.w3c.dom.Attr.getSchemaTypeInfo()
Missing method @since: org.w3c.dom.Attr.isId()
Missing method @since: org.w3c.dom.Document.getStrictErrorChecking()
Missing method @since: org.w3c.dom.Document.getXmlVersion()
Missing method @since: org.w3c.dom.Document.adoptNode(org.w3c.dom.Node)
Missing method @since: org.w3c.dom.Document.normalizeDocument()
Missing method @since: org.w3c.dom.Document.getXmlStandalone()
Missing method @since: org.w3c.dom.Document.getXmlEncoding()
Missing method @since: org.w3c.dom.Document.setDocumentURI(java.lang.String)
Missing method @since: org.w3c.dom.Document.getDocumentURI()
Missing method @since: org.w3c.dom.Document.setXmlVersion(java.lang.String)
Missing method @since: org.w3c.dom.Document.setXmlStandalone(boolean)
Missing method @since: org.w3c.dom.Document.setStrictErrorChecking(boolean)
Missing method @since: org.w3c.dom.Document.getInputEncoding()
Missing method @since: org.w3c.dom.Document.getDomConfig()
Missing method @since: org.w3c.dom.Document.renameNode(org.w3c.dom.Node,java.lang.String,java.lang.String)
Missing class @since: org.w3c.dom.DOMConfiguration
Missing class @since: org.w3c.dom.DOMError
Missing class @since: org.w3c.dom.DOMErrorHandler
Missing method @since: org.w3c.dom.DOMImplementation.getFeature(java.lang.String,java.lang.String)
Missing class @since: org.w3c.dom.DOMImplementationList
Missing class @since: org.w3c.dom.DOMImplementationSource
Missing class @since: org.w3c.dom.DOMLocator
Missing class @since: org.w3c.dom.DOMStringList
Missing method @since: org.w3c.dom.Element.getSchemaTypeInfo()
Missing method @since: org.w3c.dom.Element.setIdAttributeNode(org.w3c.dom.Attr,boolean)
Missing method @since: org.w3c.dom.Element.setIdAttributeNS(java.lang.String,java.lang.String,boolean)
Missing method @since: org.w3c.dom.Element.setIdAttribute(java.lang.String,boolean)
Missing method @since: org.w3c.dom.Entity.getXmlVersion()
Missing method @since: org.w3c.dom.Entity.getInputEncoding()
Missing method @since: org.w3c.dom.Entity.getXmlEncoding()
Missing class @since: org.w3c.dom.NameList
Missing method @since: org.w3c.dom.Node.getFeature(java.lang.String,java.lang.String)
Missing method @since: org.w3c.dom.Node.isSameNode(org.w3c.dom.Node)
Missing method @since: org.w3c.dom.Node.getBaseURI()
Missing method @since: org.w3c.dom.Node.getTextContent()
Missing method @since: org.w3c.dom.Node.isEqualNode(org.w3c.dom.Node)
Missing method @since: org.w3c.dom.Node.setTextContent(java.lang.String)
Missing method @since: org.w3c.dom.Node.isDefaultNamespace(java.lang.String)
Missing method @since: org.w3c.dom.Node.compareDocumentPosition(org.w3c.dom.Node)
Missing method @since: org.w3c.dom.Node.lookupPrefix(java.lang.String)
Missing method @since: org.w3c.dom.Node.setUserData(java.lang.String,java.lang.Object,org.w3c.dom.UserDataHandler)
Missing method @since: org.w3c.dom.Node.lookupNamespaceURI(java.lang.String)
Missing method @since: org.w3c.dom.Node.getUserData(java.lang.String)
Missing method @since: org.w3c.dom.Text.getWholeText()
Missing method @since: org.w3c.dom.Text.isElementContentWhitespace()
Missing method @since: org.w3c.dom.Text.replaceWholeText(java.lang.String)
Missing class @since: org.w3c.dom.TypeInfo
Missing class @since: org.w3c.dom.UserDataHandler
Missing method @since: org.xml.sax.SAXException.SAXException()
Missing method @since: org.xml.sax.SAXNotRecognizedException.SAXNotRecognizedException()
Missing method @since: org.xml.sax.SAXNotSupportedException.SAXNotSupportedException()
Missing class @since: org.xml.sax.ext.Attributes2
Missing class @since: org.xml.sax.ext.Attributes2Impl
Missing class @since: org.xml.sax.ext.DefaultHandler2
Missing class @since: org.xml.sax.ext.EntityResolver2
Missing class @since: org.xml.sax.ext.Locator2
Missing class @since: org.xml.sax.ext.Locator2Impl
Missing method @since: org.xml.sax.helpers.NamespaceSupport.setNamespaceDeclUris(boolean)
Missing method @since: org.xml.sax.helpers.NamespaceSupport.isNamespaceDeclUris()

Comments
EVALUATION I got tired of talking about fixing these instead of fixing them, so I'm taking this bug and its brethren.
27-03-2006

SUGGESTED FIX There were two problems to solve: Identifying the right tag to add, and safely adding tags to existing source files. When I wrote CommentMerge, I solved the second problem. I have a highly-tested program that writes source files. I can overwrite them, but for testing I put them in a second workspace. So it is entirely possible to write a program that uses that code to add a missing tag. We can then create a script that checks out affected files in a separate workspace, makes the change, and checks them back in after verifying that the compiled classes are identical. It turns out that Martin developed a script that solves part of the first problem. It identifies things added between two versions. So it can find everything added since 1.5, for example. It also tells if the @since tag is missing or wrong. He intends to modify that so that it identifies the right @since tag for each API in the build. Once he does that, the first problem is solved. It is then a matter of creating a process that uses the information he generates and adds the tags in a workspace. Once done, engineers will be able to a long list of bugs and eliminate a longer list of potential bugs. It's something the platform has needed for many revisions now. On the other hand, I indicated to Martin that it has a lot of competition. He'd like to see it done for Mustang, because it would save the engineers many hours. I would, too, if possible.
19-01-2006

EVALUATION 6367378 was already fixed in the JSSE workspace over the break, stub will be brought forward soon, probably for b69. Outstanding JCE @since's were just fixed for b77, stub will be updated into mustang source shortly. Missing method @since: javax.net.ssl.SSLContextSpi.engineGetSupportedSSLParameters() Missing method @since: javax.net.ssl.SSLContextSpi.engineGetDefaultSSLParameters() Missing method @since: javax.crypto.EncryptedPrivateKeyInfo.getKeySpec(java.security.Key,java.security.Provider) Missing method @since: javax.crypto.EncryptedPrivateKeyInfo.getKeySpec(java.security.Key,java.lang.String) Missing method @since: javax.crypto.EncryptedPrivateKeyInfo.getKeySpec(java.security.Key) Missing class @since: javax.crypto.spec.PSource.PSpecified
04-01-2006

EVALUATION It is possible that some parts of the JDK, e.g. org.w3c, are imported verbatim, and so it is not worth maintaining the correctness of the @since tags therein. In this case, the findMissingSince script can be easily modified to permanently exclude these parts of the api hierarchy. This bug should not be closed until the script runs silently. This bug may be fixed as an "umbrella" bug. Partial fixes are perpetually in progress.
24-12-2005