changes.html

来自「JSP页面代码排错」· HTML 代码 · 共 1,335 行 · 第 1/5 页

HTML
1,335
字号
					<li>Enabled StaticCalendarDetector					</li>					<li>Reworked GUI2 to use standard FindBugs filters					</li>					<ul>					<li>Allow a suppression filter to be stored in a project and persisted to the XML representation of a project.					</li>					</ul>										<li>Move away from old GUI2 save format (a directory containing an xml file and another file containing serialized filters).					</li>					<li>Support/recommend use of two new file extensions/formats:					<dl><dt>.fba - FindBugs Analysis File</dt>					<dd>Exactly the same as an existing bug collection file stored in XML format, but using a distinct file extension					to make it easier to figure out which xml files contain FindBugs results.</dd>					<dt>.fbp - FindBugs Project File</dt><dd>Contains just the information needed to run FindBugs and display the results (e.g., the files to be analyzed, the auxiliary class path and the location of source files)</dl></li>					</ul>					<p> Changes since version 1.1.3</p>					<ul>					<li>Added -xml:withAbridgedMessages option to generate xml containing shorter messages.					    The messages will be shorted by doing things like eliding package names, and leaving off					    the source line from the LongMessage.					    These messages are appropriate if being used in a context where 					    the non-message components of the bug annotations will be used to provide more information					    (e.g., clicking on the message for a MethodAnnotation will display the source for the method).					<ul><li>FindBugsDisplayFeatures.setAbridgedMessages(true) can be used to generate abridged messages					    when FindBugs is being accessed directly (not via generated XML) from a GUI or IDE.					    </li>					    </ul>					<li>In null pointer analysis, try to be better about always showing two locations: where it is known null and					where it is dereferenced.					<li>Interprocedural analysis of which methods return nonnull values					<li>Use method calls to select order in which classes are analyzed, and order in which methods					are analyzed, to improve interprocedural analysis results.					<li>Significant improvements in memory footprint, memory allocation and CPU utilization 					    (20-30% reduction in all three) 					<li>Added a project name, to provide better descriptions in the HTML output.					<li>Added new bug pattern: Casting to char, or bit masking with nonnegative value, and then checking to see						if the result is negative.					<li>Stopped reporting transient fields					of classes not marked as serializable. Transient is used by other persistence frameworks.					<li>Improvements to detector for SQL injection (Thanks to <a href="http://www.clock.org/~matt">Matt Hargett</a> for					his contributions					<li>Changed open/save options in GUI2 to not distinguish between FindBugs projects					and saved FindBugs analysis results.					<li>Improvements to detection of serious non-short-circuit evaluation.					<li>Updated Japanese localization (thanks to Ruimo Uno)										<li>Eclipse plugin changes:					<ul>					<li>Created Bug User Annotations and Bug Tree Views					<li>Use different icons for different bug priorities					<li>Provide more information in Bug Details view					</ul>					</ul>										<p>						Changes since version 1.1.2:					</p>					<ul>					<li>Fixed broken Ant task					<li>Added running ant task to smoke test					<li>Added validating xml and html output to smoke test					<li>Fixed some  (but not all) issues with html output validation					<li>Added check for x.equals(x) and x.compareTo(x)					<li>Various bug fixes					</ul>					<p>						Changes since version 1.1.1:					</p>					<ul>						<li>							Added check for infinite iterative loops						</li>						<li>							Added check for use of incompatible types in a collection (e.g.,							checking to see if a Set&lt;String&gt; contains a StringBuffer).						</li>						<li>							Added check for invocations of equals or hashCode on a URL,							which,							<a								href="http://michaelscharf.blogspot.com/2006/11/javaneturlequals-and-hashcode-make.html">surprising								many people</a>, requires DNS resolution.						</li>						<li>							Added check for classes that define compareTo but not equals;							such classes can exhibit some anomalous behavior (e.g., they are							treated differently by PriorityQueues in Java 5 and Java 6).						</li>						<li>							Added a check for useless self operations (e.g., x &lt; x or x ^ x).						</li>						<li>							Fixed a data race that could cause the GUI to fail on startup						</li>						<li>							Partial internationalization of the new GUI						</li>						<li>							Fix bug in "Redo analysis" option of new GUI						</li>						<li>							Tuning to reduce false positives						</li>						<li>							Fixed a bug in null pointer analysis that was generating false							positive null pointer warnings on exception paths. Fixing this							bug eliminates about 1/4 of the warnings on null pointer							exceptions on exception paths.						</li>						<li>							Fixed a bug in the processing of phi nodes for fields in the null							pointer analysis						</li>						<li>							Applied contributed patch that provides more quick fixes in							Eclipse plugin.						</li>						<li>						Fixed a number of bugs in the Eclipse auto update sites, and in the way						date qualifiers were being used in the Eclipse plugin. You may need to manually						disable your existing version of the plugin and download the 1.1.2 from the update 						site to get the automatic update function working correctly.						The Eclipse update sites are described at <a href="http://findbugs.cs.umd.edu/eclipse/">http://findbugs.cs.umd.edu/eclipse/</a>.												</li>						<li>							Fixed progress bar in Eclipse plugin						</li>						<li>							A number of other bug fixes.						</li>					</ul>					<p>						Changes since version 1.1.0:					</p>					<ul>						<li>							less scanning of classes not on the analysis path (This was							causing some performance problems.)						</li>						<li>							no unread field warnings for fields annotated with							javax.persistent or javax.ejb3						</li>						<li>							Eclipse plugin							<ul>								<li>									bug annotation info displayed in Bug Details tab								</li>								<li>									.fbwarnings data file now stored in .metadata (not in the									project itself)								</li>							</ul>						</li>						<li>							new SE_BAD_FIELD_INNER_CLASS pattern						</li>						<li>							updates to Japanese translation (ruimo)						</li>						<li>							fix some internal slashed/dotted path confusion						</li>						<li>							other minor improvements						</li>					</ul>					<p>						Changes since version 1.0.0:					</p>					<ul>						<li>							Overall, the change from FindBugs 1.0.0 to FindBugs 1.1.0 has							been a big change. We've done a lot of work in a lot of areas,							and aren't even going to try to enumerate all the changes.						</li>						<li>							We spent a lot of time reviewing the results generated by							FindBugs for open source and commercial code bases, and made a							number of changes, small and large, to minimize the number of							false positives. Our primary focus for this was warnings reported							as high and medium priority correctness warnings. Our internal							evaluation is that we produce very few high/medium priority							correctness warnings where the analysis is actually wrong, and							that more than 75% of the high/medium priority correctness							warnings correspond to real coding defects that need addressing							in the source code. The remaining 25% are largely cases such as a							branch or statement that if taken would lead to an error, but in							fact is a dead branch or statement that can never be taken. Such							coding is confusing and hard to maintain, so it should arguably							be fixed, but it is unlikely to actually result in an error							during execution. Thus, some might classify those warnings as							false positives.						</li>						<li>							We've substantially improved the analysis for errors that could							result in null pointer dereferences. Overall, our experience has							been that these changes have roughly doubled the number of null							pointer errors we detect, without increasing the number of false							positives (in fact, our false positive rate has gone down). The							improvements are due to four factors:							<ul>								<li>									By default, we now do some interprocedural analysis to									determine methods that unconditionally dereference their									parameters.								</li>								<li>									FindBugs also comes with a model of which JDK methods									unconditionally dereference their parameters.								</li>								<li>									We do limited tracking of fields, so that we can detect null									values stored in fields that lead to exceptions.								</li>								<li>									We implemented a new analysis technique to find guaranteed									dereferences. Consider the following example:									<code>										<pre>public int f(Object x, boolean b) {  int result = 0;  if (x == null) result++;  else result--;  // at this point, we know x is null on a simple path  if (b) {    // at this point, x is only null on a complex path    // we don't know if the path in which x is null and b is true is feasible    return result + x.hashCode();    }  else {    // at this point, x is only null on a complex path    // we don't know if the path in which x is null and b is false is feasible    return result - x.hashCode();    }</pre>									</code>									<p>										FindBugs 1.0 used forward dataflow analysis to determine										whether each value is definitely null, null on a simple path,										possible null on a complex path, or definitely nonnull. Thus,										at the statement where										<code>											result										</code>										is decremented, we know that										<code>											x										</code>										is definitely null, and at the point before										<code>											if (b)										</code>										, we know that										<code>											x										</code>										is null on a simple path. If

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?