問題タブ [fail-fast]
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 - スタックのフェイルファスト イテレータ
Fail-Fast Iterator を実装して、自分のリストからエントリを削除し、正しい動作でテストしたいと考えています。List は MyEntry 型の要素を保持します。
これらのエントリは、ジェネリック値と次のエントリへの参照を保持します。
リスト自体は、pos エントリでその位置を追跡し、スタックのように動作します。ここで、UnsupportedOperation 例外をスローする代わりに、リストを反復処理してエントリを削除できるフェイルファスト イテレータを実装したいと考えています。
また、既に Iterator を List に実装しようとしていて、テスト クラスでテストしました。
}
しかし、出力は c をループし、エントリを削除することさえできません。
MyList を反復処理してエントリを削除できる Fast-Fail Iterator の正しい実装で行き詰まっています。単一の問題に分解できなかったので、Iterator を実装しようとしたときに出てきたいくつかの質問のリストを作成しました
- Iterator は MyList クラスに実装する必要がありますか、それとも独自のクラスに実装する必要がありますか?
- Advance() メソッドのように、Iterator を MyList の上に進めるにはどうすればよいですか?
- テスト クラスの while ループは便利ですか、それとも代わりに別の方法を使用する必要がありますか?
xsd - 必須要素が欠落しているときに JAXB を失敗させるにはどうすればよいですか?
仕事でWebサービスを呼び出すJavaアプリケーションに前方互換性を追加しようとしていますが、JAXBはこの件に関して後方に動作しているようです...
アプリケーションはwsdl2java
Maven プラグインを使用して、WSDL から CXF Web サービス クライアントを生成します。次に、その生成されたクライアントを使用して、(SOAP over JMS を介して) Web サービスと通信します。Web サービスが呼び出しへの応答で不明な要素を送信すると、JAXB は「予期しない要素」エラーで失敗します。これは理解でき、XML に準拠しています。上位互換性を高めるために、これらの特定のエラーを無視するカスタムを指定してjaxb-reader-validation-event-handler
、問題を解決しました。
しかし、いくつかの補完的なテストを行っているときに、XML に準拠していない動作を発見しました。
まず、JAXB は要素の順序を気にしませんsequence
。これは XML に準拠していませんが、前方互換性には適しています。
ただし、必須要素 ( ) が存在しない場合も気にせずminOccurs="1"
、任意のデフォルト値 (つまり、Java プリミティブ値にバインドされた要素のデフォルト値、int
! の 0 など) を親切に割り当てます。
これは XML に準拠しておらず、互換性にも適していません。たとえば、必須の価格が整数として必要であるが、何らかの理由で Web サービスがそれを提供しない場合、JAXB は警告なしでそれに値 0 を割り当てます。 、デバッグが本当に難しくなります。
どうやら、JAXB が要素に遭遇しない場合、単にそのセッターを呼び出さないためです。つまり、デフォルト値を保持します。
[編集: いくつかの補完的なテストを行いました。アプリケーションが 1 つの要素 ( maxOccurs="1"
) を期待しているのに、Web サービスが 2 つを送信する場合、JAXB は同じセッターを 2 回呼び出し、最初の値を 2 番目の値でオーバーライドします。そのため、クライアントが生成されると、 WSDL から、minOccurs
単にmaxOccurs
無視されます...]
必須要素が欠落しているときに JAXB を失敗させるにはどうすればよいですか?
minOccurs="1"
を含む要素であっても、対応する生成された属性の注釈には が含まれていないことに気付きましたrequired = true
。生成後、アプリケーションを起動する前に手動で追加しようとしましたが、成功しませんでした:単に無視されているようです...
linux - Linux:プロセスの stdout を最後まで cat する方法はありますが、特定の文字列が表示された場合は停止してゼロ以外のコードを返しますか?
テストを実行するツールがありますが、失敗した場合はエラー コードを返します。
このツールは、SSH を介してカスタム コンソール (bash ではない) にログインし、コマンドを発行した後、テストを実行します。その呼び出し内ですべてのテストが一度に実行されます。テストのログはファイルに記録されます。ツールの出力はおおよそ次のとおりです。
ビルドを停止するには、出力で特定の文字列を探す必要があります。
テストが実行されると、出力が表示されます。
出力全体をファイルにキャプチャして、最後に失敗する可能性があります。ただし、最初のテストが失敗すると、失敗するまでの時間をかなり節約できます。
したがって、のようなものが欲しいのですがtee
、その失敗文字列が見つかった場合は実行も強制終了します。または、少なくとも、出力をそのまま出力し、文字列が見つかった場合はゼロ以外を返す必要があります。
これは標準の Linux ツールキットで実行できますか?
jenkins - Jenkins の動的パイプラインで failFast を使用する方法
動的な並列ステージを持つパイプラインがあり、ステージのいずれかが失敗した場合、パイプラインをすばやく失敗させたいと考えています。failFast: true を追加しようとしましたが、パイプラインが「Failed at Stage ABC」のままになっています。