What's New in Javadoc 1.4.1

Javadoc Tool
This document describes the changes made to the Javadoc tool between versions 1.4.0 and 1.4.1. You can also see a concise list of outstanding bugs listed at important new bugs and regressions, and can view listings from our database at Important Bug Fixes and Changes.

The changes listed below include the bug number and whether the fix was in the Javadoc tool front end ("tool") or standard doclet ("stddoclet"). The term "regression" appears for features that worked in 1.3.x, broke in 1.4.0, and have been fixed in 1.4.1.

New Features

Added package and class names as keywords in <META> tags. This should improve search results for search engines that look at <META> tags. (4034096, stddoclet)

Bug Fixes:

Running Javadoc:

Regression: Fixed bug where it mistakenly documented .class files found on classpath (if they belong to packages passed in on the command line). (4548768, tool)

Regression: Fixed to handle packages named *.java. (4507380, tool)

Added better checking to accept only valid source file and package names. (4434834, tool)

Error/Warning Messages

Fixed to not ignore PrintWriters. (4587487, tool)

Added quotes around package name in error message when "\ " (backslash, space) passed in. (4370719, tool)

Command Line Options:

Regression: Fixed -use option, which was severely broken. (4496290, stddoclet)

Regression: Fixed -encoding option for reading source files. (4661481, stddoclet)

Regression: Fixed -link option to handle absolute paths. (4640745, stddoclet)

Fixed hang when -subpackages is passed in topmost package name. (4628237, tool)

Changed diagnostic of -help to 'Display command line options and exit'. (4501697, tool)


Regression: Fixed to properly insert </DD> when using multiple @author tags. (4651598, stddoclet)

Regression: Fixed {@docRoot} which had been inserting an extra slash "/". (4524350, stddoclet)

Regression: Fixed @throws in implementing class to override @throws in interface. (4633969, stddoclet)

Regression: Fixed to enable @throws tags to have duplicate error class names. (4525364, stddoclet)

Regression: Fixed {@inheritDoc}, which did not work. (4618686, stddoclet)

Added warning when lowercase {@docroot} is used instead of {@docRoot}. (4662945, stddoclet)


Added interface constants to the Constant Field Values list. (4526070, stddoclet)

Corrected boolean constant fields to use true/false rather than 0/1. (4587494, tool)

Removed extra space of indentation for comments that omit leading asterisk. (4587562, tool)

Regression: Fixed StringIndexOutOfBoundsException caused by multiple <a href> tags. (4638015, stddoclet)

Changed so nothing is serializable when Serializable is not on -bootclasspath. (4644960, tool)

Removed "()" from window title when frames are off. (4530730, stddoclet)

Notes for doclet programmers:

The -use option was broken because Doc objects are no longer unique in 1.4.0. To keep track of class and package usage, the standard doclet creates Doc/List hash tables where the key is a ClassDoc or PackageDoc and the List is a list of Doc objects that use the key. This way of determining class and package usage worked fine with previous versions of the Javadoc tool, but it does not seem to work with 1.4.x. A Doc object should not be used as a key in the hash table. They are not unique -- that is, the Javadoc tool seems to be capable of creating two different ClassDoc objects that represent the same class. To fix this bug, we used the qualified name as the key in the hash table. We plan to make Doc objects unique again at some point.

Copyright © 2002 Sun Microsystems, Inc. All Rights Reserved.

Please send comments to:
Java Software