h2database 1.2 で問題遭遇中

Fess 1.2 ではh2database 1.2.x を利用しようと思っているのだけど、クロール中に終了したりすると、S2RobotのBLOBデータがファイルに保存するのが失敗したりする場合があったりでエラーになる。h2 の 1.1.x のときは遭遇したことはない感じだったと思う。うーん、h2に対して投げないとだめかね…。現象を説明するのがちょっと面倒だな。

h2のバージョン

DBFluteに含まれているh2のライブラリのバージョンは 1.1 系だけど、h2databaseで公開されているバージョンは 1.2 系。というわけで、1.2 系で作った DB は jdbc.bat とか実行しても普通に通らなかった…。というわけで、mydbflute/dbflute-0.9.5.1/lib/forExecute/に置いてある h2 の jar を置き換えればよいみたい。

file:~へのアクセス

Fessはパスを指定してファイルシステムもクロールできるのだけど、検索結果の表示時のリンクに課題があるらしい。というわけで、たとえば、ローカルファイルシステムの c:\memo.txt とネットワークサーバーにある \\severname\memo.txt へのリンクを file:~で試してみる。HTML的には

<a href="file:/C:/memo.txt">Case 1-1</a>
<a href="file://C:/memo.txt">Case 1-2</a>
<a href="file:///C:/memo.txt">Case 1-3</a>
<a href="file://servername/memo.txt">Case 2-1</a>
<a href="file:///servername/memo.txt">Case 2-2</a>
<a href="file:////servername/memo.txt">Case 2-3</a>
<a href="file://///servername/memo.txt">Case 2-4</a>

みたいな感じ。というわけで、確認していくと、

IE6, IE7, IE8

file:/c:/memo.txt o
file://c:/memo.txt o
file:///c:/memo.txt o
file://servername/memo.txt o
file:///servername/memo.txt x
file:////servername/memo.txt o
file://///servername/memo.txt o

Firefox 3.5

file:/c:/memo.txt o
file://c:/memo.txt o
file:///c:/memo.txt o
file://servername/memo.txt x
file:///servername/memo.txt x
file:////servername/memo.txt x
file://///servername/memo.txt o

Safari 4

file:/c:/memo.txt o
file://c:/memo.txt o
file:///c:/memo.txt o
file://servername/memo.txt x
file:///servername/memo.txt x
file:////servername/memo.txt o
file://///servername/memo.txt x

Chrome 3

file:/c:/memo.txt o
file://c:/memo.txt o
file:///c:/memo.txt o
file://servername/memo.txt o
file:///servername/memo.txt x
file:////servername/memo.txt o
file://///servername/memo.txt o

Opera 10

file:/c:/memo.txt o
file://c:/memo.txt o
file:///c:/memo.txt o
file://servername/memo.txt o
file:///servername/memo.txt x
file:////servername/memo.txt x
file://///servername/memo.txt x

うーん、みんな自由な感じだな…(こんな動きをするとは知らんかった)。Fessはjava.io.Fileから取得するURIベースにやっていこうと思っているので、デフォルトでは file:/c:/memo.txtとfile:////servername/memo.txtが返ってくる。FirefoxとOperaがネットワークサーバー上にあるやつのリンクがダメになるわけね。となると、ブラウザごとの対応が必要だな。