[ppsd]
DirDisplayの処理で直接、URLそのものの表示をできた方がいいと思って修正しています。
そこでプログラムを見ていたのですが、なぜそういう処理をしているのかわからない部分を見付けました。
Forwarder.javaのpointerEditメソッドの中です。
private String pointerEdit(String pointer, Properties parametersProp, String location) {
String base = parametersProp.getProperty(TAG_BASE);
if (base != null) {
if (location.indexOf(":") == -1 &&
base.substring(0, "http://".length()).equalsIgnoreCase("http://")) {
location = base + pointer;
} else {
try {
location = (new URL(new URL(base), pointer)).toString();
} catch (MalformedURLException e) {
location = pointer;
}
}
parametersProp.remove(TAG_BASE);
} else {
location = pointer;
}
PermanentObject.getUserAccessURL().put(new URLLogData(location));
return location;
}
よくわからないのは、locationで":"がなくて、baseの出だしが"http://"で始まっている場合には、単にくっつけていますが、これがよくわかりません。
すぐ下のlocation = (new URL(new URL(base), pointer)).toString();で一体何がまずいのでしょうか。
調べてみると、CurrentURLクラスとForwarderクラスを統合したバージョン0.2.54からバージョン0.2.55の時に修正を入れていますが、特にこれについての記録はありません。
何かのミスと判断して直接baseとpointerをくっつける処理を削除します。