Closed happynow closed 9 months ago
下記のコマンドは、全ソース・ファイルを検索して new URL(imageURLPath+"next.png"); のような呼び出しから imageURLPath+"next.png" といった引数を抽出しリスト化します。 修正前と修正後のふたつから抽出したリストを比べると同一であることが分かります。 このコマンドを使う場合はカレントディレクトリを src ディレクトリにして使って下さい。
UNIX系
grep -r -P --include '*.java' '\bnew\s+URL\b' ./* | sed -r 's/^([^:]+?):.*?\bnew\s+URL\s*\(\s*([^\(\)]*?(\(\))?[^\(\)]*?)\).*$/\1\t\2/g'
windows は powershell で
Get-ChildItem -Recurse -Filter "*.java" | Select-String -Pattern "\bnew\s+URL\s*\(\s*([^\(\)]*?(\(\))?[^\(\)]*?)\)" | % { $_.Filename + [char]9 + $_.Matches.Groups[1].Value}
UNIX系
grep -r -P --include '*.java' '\bnew\s+URI\b.*?\.toURL' ./* | sed -r 's/^([^:]+?):.*?\bnew\s+URI\s*\(\s*(.*?)\)\s*\.toURL.*$/\1\t\2/g'
windows は powershell で
Get-ChildItem -Recurse -Filter "*.java" | Select-String -Pattern "\bnew\s+URI\s*\(\s*(.*?)\)\s*\.toURL" | % { $_.Filename + [char]9 + $_.Matches.Groups[1].Value}
(※)正規表現では括弧の入れ子の解析は出来ないため修正前は以下のいずれかしか検索してません。
()
を含む括弧(
,)
のどちらも含まない括弧
Fix URL constructor warning
主な修正
「JDK 20 - URL パブリック コンストラクターの非推奨化^1」の対応のため
new URL(引数)
⇒new URI(引数).toURL()
の置き換えを施しました。 下の参考ページにも書いてありますが、URIクラスと toURL メソッドは もともと Java SE 1.0 [^2] の頃からあったようです。参考ページ (1) https://logico-jp.io/2023/02/20/quality-outreach-heads-up-jdk-20-deprecate-url-public-constructors/ (2) JDK 20 – Deprecate URL Public Constructors
なお、URI のコンストラクタと toURL メソッドは例外を発生させる恐れがあります。 例外を拾う場所は、現行と同じか呼び出し元で拾うようにしました。
[^2]: とりあえず SE 1.4 の Java doc で確認 https://docs.oracle.com/javase/jp/1.4/api/java/net/URI.html
その他の修正
JConfirmDialog.java 14行目
import java.io.IOException;
は未使用のため、削除WebAozoraConverter.java 311行目
boolean pager = toc_index.isEmpty();
は未使用のため、コメントアウト