部分 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[] 變數已經改變,而不是 java.lang.Vector 類型的變數已經改變。 這是 java.lang.Vector 實作的一個內部欄位,見到標籤所顯示的這項私密資訊可能會造成混淆。
在設計原則規則種類中,您可以設定複雜度規則的深度。 比方說,您可以將「避免超出一個類別的巢狀結構」規則設為「避免超出 3 個類別的巢狀結構」。 如果要使規則能夠運作,您必須使用正數的深度。 不過,複雜度規則目前無法確保深度會設為正數。 如果要避免這個問題,請勿輸入無效的值,如零或負數。
當您在參數中利用非 US ASCII 字元來從範本建立規則時,會有編碼問題。 比方說,當選取含區域字元的類型或方法時,就會出現這個情況。 由於這個編碼問題,當執行利用這些內容及非 US ASCII 字元來建立的規則時,便會產生異常狀況。
結構分析規則的程式碼檢視進度報告不正確(也就是說,進度對話框一律會報告進度為 100%)。 您必須等待程式碼檢視作業完成。
當啟動程式碼檢視時,有時「停止/啟動」按鈕會顯示啟動和停止的組合圖示。
「避免利用 java.lang.String.compareTo () 來比較區分語言環境的字串」規則的快速修正程式提出兩個解決方案來修正規則所鎖定的問題。 建議 <Use com.ibm.icu.text.Collator> 的解決方案並不正確。 這個解決方案應該是 <Use java.text.Collator>。
如果您利用 J2EE 規則範本「一律在 [method B] 之後呼叫 [method A]」來建立新規則, 當工作區的預設建構子是 [methodB] 時,如果在程式碼檢視中執行這項規則,它不會產生任何規則結果。
從 J2EE 最佳作法範本規則建立特定物件實例的新規則:在您定義的規則所針對的下個特定情況下,「一律在 [methodB] 之後呼叫 [methodA]」可能會產生不正確的規則結果。 如果您在 J2EE 程式碼中,從「一律在 [methodB] 之後呼叫 [methodA]」型樣中選取方法,方法物件實例的生命週期大於所分析之 Servlet 的生命週期,您可能會發現不正確的規則結果。 比方說,考慮使用下列程式碼:
public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
// 這裡有一些程式碼.... final ServletOutputStream outStream = response.getOutputStream(); //... 後來沒有呼叫 response.flushBuffer。 }
您針對這個程式碼建立下列規則:「一律在 ServletResponse.getOutputStream() 之後呼叫 ServletResponse.flushBuffer()」 由於回應物件是生命週期大於 Servlet 本身的實例,這可能會使程式碼檢視分析發生問題。 您可能會在其他 Servlet 中見到一些鎖定現行 Servlet 之問題的結果。 請注意,這類特定物件實例的建立規則可能有問題。
如果您利用「避免定義方法」規則範本來建立新規則,且您選取含有完整名稱的方法,程式碼檢視只會使用方法和參數的名稱。 規則範本的焦點在於方法簽章,因此,套件和類別名稱資訊沒有意義。
當您從提供的規則範本建立新規則時,請勿輸入方法的名稱。 請利用瀏覽器來選取方法。
當您配置伺服器資料且出現附有錯誤的視窗時,請關閉 .java 檔對應頁面(頁面程式碼),再重新嘗試配置資料。
在 Linux 中,當所選的程式碼檢視包含大量規則時,您可能無法在「喜好設定」頁面中檢視所有規則種類和規則詳細資料。 暫行解決方法是在「喜好設定」頁面中選取「快速程式碼」檢視,關閉「喜好設定」頁面,再重新開啟。 之後,您便可以選取任何程式碼檢視,使它適當出現。