注意点
このページは、dotnet/runtimeリポジトリにマージされたPull Requestを自動的に収集し、その内容をAIが要約した内容を表示しています。そのため、必ずしも正確な要約ではない場合があります。
目次
- #122843 Fix System.Timers.Timer Stop() not working after setting AutoReset or Interval on disabled one-shot timer
- #120640 Improve code coverage for System.Security.Cryptography.Xml
#122843 Fix System.Timers.Timer Stop() not working after setting AutoReset or Interval on disabled one-shot timer
- 作成者: @Copilot
- 作成日時: 2026年01月03日 22:45:23(UTC)
- マージ日時: 2026年01月11日 03:17:01(UTC)
- ラベル: area-System.ComponentModel
概要
System.Timers.Timerの一度限りのタイマー(AutoReset=false)で、発火後にIntervalまたはAutoResetを設定すると、タイマーが意図せず再起動してしまい、その後Stop()が機能しなくなるバグを修正しました。UpdateTimer()メソッドに_enabledフラグのチェックを追加することで、無効化されたタイマーの再起動を防ぎます。
private void UpdateTimer()
{
if (_timer is null || !_enabled)
{
return;
}
int i = (int)Math.Ceiling(_interval);
_timer.Change(i, _autoReset ? i : Timeout.Infinite);
}
変更内容
- Timer.cs:
UpdateTimer()メソッドに!_enabledチェックを追加し、無効状態のタイマーが再起動されないようにしました - TimerTests.cs: 既存テスト
TestTimerStartAutoResetを修正し、AutoReset変更後に明示的にStart()を呼び出すように更新。新規テストとしてSettingAutoResetOrIntervalOnDisabledOneShotTimerDoesNotRestartItを追加し、無効なタイマーの再起動防止を検証
パフォーマンスへの影響
影響なし
関連Issue
#33119
その他
- 破壊的変更: この修正により、バグの挙動に依存していたコードは、プロパティ変更後に明示的に
Start()を呼び出す必要があります - リスク低: .NET Framework以降存在していた長年のバグで、最小限の防御的チェックを追加するのみです
- リグレッション: なし。全7877件のSystem.ComponentModel.TypeConverterテストが合格
#120640 Improve code coverage for System.Security.Cryptography.Xml
- 作成者: @Copilot
- 作成日時: 2025年10月11日 17:47:04(UTC)
- マージ日時: 2026年01月11日 01:32:52(UTC)
- ラベル: area-System.Security test-enhancement
概要
System.Security.Cryptography.Xml ライブラリの単体テストカバレッジを大幅に向上させるプルリクエストです。特に CanonicalXmlEntityReference クラスのカバレッジを 0% から 92.8% に引き上げ、XML正規化変換、エンティティ参照、ハッシング処理などをカバーする複数の新規テストケースが追加されています。
変更内容
- CanonicalXmlEntityReferenceTest.cs (+168行):6つのテストケースを追加(通常、サブセット、コメント、排他的、ハッシング、複数エンティティシナリオ)
- DataObjectTests.cs (+152行):データオブジェクト関連テストを追加
- EncryptedXmlTests.cs (+1369行):XML暗号化機能の包括的なテストを追加
- SignedXmlTests.cs (+289行):XML署名関連の広範なテストを追加
- ReferenceTest.cs (+203行)、SignatureTest.cs (+217行) 等:その他暗号化関連クラスの新規テスト
- System.Security.Cryptography.Xml.Tests.csproj:新規テストファイルを登録
合計 15 ファイルで約 2,852 行のテストコードが追加されました。
パフォーマンスへの影響
影響なし。このプルリクエストはテストコードの追加のため、ランタイムパフォーマンスへの影響はありません。テスト実行時間は増加しますが、本体コードの実装に変更はありません。
関連Issue
なし
その他
- 作成者による概要に「XML文字列フォーマットをシングルクォートからダブルクォートに修正」と記載されており、テストコード内で XML 文字列フォーマットの一貫性改善も行われた可能性があります
- Copilot による自動生成・レビュー された PR であり、複数のレビュアーによる確認が進行中です
- テストカバレッジの大幅向上により、System.Security.Cryptography.Xml ライブラリの品質保証が強化されます