問題タブ [findbugs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - メソッドは例外でストリームを閉じることができない場合があります
findbugsで重大なエラーが発生します:
このメソッドは、IOストリームオブジェクトを作成し、それをフィールドに割り当てたり、他のメソッドに渡したり、返したりすることはなく、メソッドからのすべての可能な例外パスでオブジェクトを閉じるようには見えません。これにより、ファイル記述子のリークが発生する可能性があります。一般に、finallyブロックを使用して、ストリームが確実に閉じられるようにすることをお勧めします。
私InputStreamReader
も閉じる必要がありますかp.getErrorStream
(それは戻りますInputStream
)?
spring - Struts のアクション クラス管理を Spring に委譲すると、Findbugs で MTIA の重大な違反が発生します
http://www.ibm.com/developerworks/java/library/j-sr2.html#N101B7で説明されている「Spring への Struts アクション管理の委任」アプローチを使用すると 、機能面では問題なく機能しますが、voilation Dodgy に続く findbugs レポート- クラスは Struts Action クラスを拡張し、インスタンス変数を使用します:MTIA
spring を介してアクションクラスに注入された Bean 依存関係があります。
私を助けて、この問題を解決するためのよりクリーンな方法を提案してください。
ありがとう
java - FindBugsを使用してNullPointerExceptionのバグを発見する
このコードでFindBugsを実行すると、問題は報告されません。
ここにいる間、それは予想通り問題を見つけます:
なぜ最初のケースで失敗するのですか?
java - シリアライズ可能なJavaクラスでロガーを使用する適切な方法は何ですか?
私が取り組んでいるシステムに次の(ドクターされた)クラスがあり、 FindbugsがSE_BAD_FIELD警告を生成しています。私が思った方法で修正する前に、なぜそれが表示されるのかを理解しようとしています。私が混乱している理由は、説明がクラスで他のシリアル化できないインスタンスフィールドを使用していないことを示しているように見えるためですが、bar.model.Fooもシリアル化できず、まったく同じ方法で使用されています(私がわかります)が、Findbugsは警告を生成しません。
解決策での私の最初の赤面は、私がそれを使用するときに、工場からロガー参照を取得することです。
ただし、これは特に効率的ではないようです。
考え?
java - 専用フィルター追加findbugsで
findbugs レポートに次のエラーが表示されないようにしたい:
DM_NUMBER_CTOR: メソッドが非効率的な Number コンストラクターを呼び出します。代わりに静的な valueOf を使用してください
問題は、これが groovy で生成されたコード ファイルで発生するため、ソース コードを制御できないことです。そのため、ソース コードを除外して除外フィルターに追加する必要があります。
明示的にクラスを追加したくありません (多くのツールが使用する API を作成しているため、フィルターを汎用にしたい)。このバグをタイプごとにレポートから完全に削除したくはありません。このバグが「静的初期化子」メソッドで発生した場合にのみ、このバグが表示されないようにしたいと考えています。何か案が?以下のフィルターを試してみましたが、うまくいきませんでした。
その場合の FindBugs の「スタックトレース」は次のとおりです。
クラス内 net.milanaleksic.cuc.tools.sound.SoundPlayerTool メソッド内 net.milanaleksic.cuc.tools.sound.SoundPlayerTool.() 呼び出されたメソッド new Long(long) 代わりに Long.valueOf(long) を呼び出す必要があります SoundPlayerTool.groovy内
java - 静的コード分析のアドバイスに従うのをやめる時期は?
私はかなり長い間、100.000 行を超える Java コードを含むプロジェクトで静的コード分析を使用しています。私は Findbugs から始めましたが、最初は約 1500 の問題がありました。私は時間をかけて最も深刻な問題を修正し、PMD、Lint4J、JNorm、そして今では Enerjy などの追加ツールを使い始めました。
より重大な問題が修正されているため、重大度の低い問題が多数あります。これらの優先度の低い問題をどのように処理しますか?
- それらすべてを修正してみますか?
- それとも新しく書かれたコードだけですか?
- 特定のルールを定期的に無効にしていますか? (利用可能なツールのほぼすべてで行うことがわかりました)。
また、ルールを無視または無効にした場合、それらを文書化しますか? 「何千もの優先度の低い問題を修正せずに放置しておく」ことについて、上司は何と言いますか? コードで(複数の)ツール固有のコメントを使用していますか、それとももっと良い方法がありますか?
file - findbugsで分析してjarファイルをフィルタリングする
build.xmlを介してfindbugsで分析したいjarファイルがあります。「class location =....jar」パターンを使用します。jar ファイルには複数のフォルダーが含まれていますが、分析する必要があるのは 1 つのフォルダーのみです。どうすればそれを指定できますか? 前もって感謝します !
java - Findbugs と比較
私は最近、行っていた Java ビルドで findbugs 静的分析ツールを使い始めました。最初のレポートには、優先度の高い警告が大量に含まれていました。強迫的なタイプの人なので、私はそれらをすべてノックアウトする準備ができていました. しかし、私は何かが欠けているに違いありません。物事を比較すると、ほとんどの警告が表示されます。次のコードのように:
読み取る if ステートメントで優先度の高い警告を生成します。
ファイル: Indenter.java、行: 60、タイプ: BIT_AND_ZZ、優先度: 高、カテゴリ: CORRECTNESS sample.Indenter.setSpacesPerLevel(int) で ((...) & 0) == 0 かどうかを確認します
int と int を比較していますが、よくあることのようです。同様の単純な比較で、そのタイプのエラーがかなり発生します。
単純なコードブロックのように見えるものについて、他にも多くの優先度の高い警告があります。ここで何か不足していますか?静的分析では誤検知が発生する可能性があることは理解していますが、私が見ているエラーは、あまりにも些細なケースで誤検知とは思えません。
これも頭を悩ませています。
これにより、次の findbugs 警告が表示されます。
何か案は?
したがって、基本的には、少数のファイルと、上記のような優先度の高い警告が 50 ~ 60 個あります。私はfindbugs 1.3.9を使用しており、findbugs antタスクから呼び出しています
更新: このビルドは hudson サーバーによって実行され、コード カバレッジのために Clover によってコードがインストルメント化されました。それをオフにすると、優先度の高い警告がすべて消えました。それは今では理にかなっています。フィードバックをお寄せいただきありがとうございます。
maven-2 - How to integrate findbugs with maven
Please provide steps to integrate findbugs with maven
java - maven findbugs 'ハイウォーターマーク'
[findbugs はここの例です。質問はそのような maven プラグインに適用できます]
少し前にビルドのレクチャーに参加したとき、非常に気に入ったパターンが話題になりました: チェーンに新しいツールを追加し、n 回の違反で開始する場合、n を減らし続け (最高水準点)、失敗する必要があります。現在のチェックが n の最後の値を超えた場合にのみビルドします。
findbugs がビルドに導入されたばかりで、このパターンを実装する方法を探していました。プラグイン構成を介してそれを行う方法が見当たらないので、誰かがこれをどのように達成したかについて言及できるかどうか興味がありました. 明らかな方法はプラグインをカスタマイズすることだと思いますが、先に進む前に、他の人からの考えを聞きたいです.