根据某些 J2EE 最优方法规则,将不能查看包含在下列包中的源代码:
1. com.ibm
2. COM.ibm
3. sun
4. sunw
5. java
6. javax
7. org.apache
8. com.sun
9. org.omg
10. org.ietf
11. org.w3c
12. org.xml
在“代码查看”视图中,对于 J2EE 最优方法规则检测到的一些结果,并未始终显示其行号。如果双击结果,就会显示正确的行号。
数据流路径显示数据更改的依赖性历史,这些数据更改导致出现问题,规则结果突出显示了该问题。数据流路径出现在“路径”选项卡中。有时数据流路径显示 JSDK 或 J2EE 类中提供的内部数据结构。例如,您会看到修改了 java.lang.Object[]variable,而不是说修改了类型为 java.lang.Vector 的变量。java.lang.Object[]variable 是 java.lang.Vector 实现中的一个内部字段,如果看到此专用信息显示在选项卡上,可能会令人费解。
在“设计原理”规则类别中,可设置复杂性规则的深度。例如,可将规则“避免嵌套一个以上的类”设置为“避免嵌套三个以上的类”。要使该规则正常工作,必须使用正数来表示深度。但是,复杂性规则目前并不能确保深度设置为正数。要避免发生此问题,不要输入无效输入内容,如零或负数。
通过在参数中使用非美国 ASCII 字符的模板创建规则时存在编码问题。例如,在选择了带有本地字符的类型或方法的情况下会发生这种情况。因为此编码问题, 使用这些属性及非美国 ASCII 字符创建的规则在运行时会生成异常。
未根据结构分析规则正确报告“代码查看”进度(即,进度对话框始终报告进度为 100%)。必须等待“代码查看”完成。
有时在启动“代码查看”时,“启动/停止”按钮会显示一个图标,该图标是启动和停止的组合。
对于规则“避免使用 java.langString.compareTo () 来比较语言环境敏感字符串”快速修订提出了两个解决方案以修正该规则所针对的问题。建议<使用 com.ibm.icu.text.Collator>的解决方案不正确。该解决方案应为<使用 java.text.Collator>。
如果使用 J2EE 规则模板“总是在调用 [方法 B] 之后调用 [方法 A]”创建新规则,并且缺省情况下 [方法 B] 是工作空间上的构造函数,则在代码查看中运行该规则时,它不会产生任何规则结果。
通过 J2EE 最优方法模板规则“总是在调用 [方法 B] 之后调用 [方法 A]”为特定对象实例创建新规则时,可能会在您对其定义规则的下一个特定实例中产生不正确的规则结果。如果从模式“总是在调用 [方法 B] 之后调用 [方法 A]”中选择方法,在该模式的 J2EE 代码中,该方法的对象实例的生命周期大于被分析的 servlet 的生命周期,则您可能会发现不正确的规则结果。例如,考虑以下代码:
public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
// Some code here.... final ServletOutputStream outStream = response.getOutputStream(); //... No call to response.flushBuffer after. }
您为它创建了以下规则:“总是在调用 ServletResponse.getOutputStream() 之后调用 ServletResponse.flushBuffer()”。因为响应对象这一实例的生命周期大于 servlet 本身,所以这可能导致代码查看分析出现问题。您可能会发现其它 servlet 中有一些结果针对于当前 servlet 的问题。注意,为这种特定对象实例创建规则是有问题的。
如果使用规则模板“避免定义方法”创建了新规则,并且您选择了具有标准名称的方法,则在代码查看中仅使用方法的名称和参数。规则模板的重点在于方法特征符,所以包和类名信息是无关紧要的。
通过提供的规则模板创建新规则时,不要输入方法的名称。通过使用浏览器来选择该方法。
如果在配置服务器数据时出现显著的错误窗口,则关闭 .java 文件对应页面(页面代码),然后重试配置该数据。
在 Linux 的首选项页上,当选定的代码查看包含大量规则时,可能无法查看所有规则类别和规则详细信息。解决此问题的变通方法是,在首选项页上,选择“快速代码查看”,然后关闭首选项页并重新打开它。接着,可以选择任何代码查看并正确地显示它。