とめどもSeasar日誌

2004 | 05 |

2004-05-20

[]S2Unitの挙動 17:05

S2Unitを使って各テストメソッドが実行されるとき、どーいう順番で何が動くのかS2.0.8のソースを追っかけて纏めてみました。ソース追っかけたと言っても、S2TestCase#runBare()メソッドを読んだだけですけど(;^_^A

  1. setUp()メソッド呼出
  2. 各テストメソッド固有のsetUpメソッド(テストメソッドがtestXxx()ならsetUpXxx()メソッド)呼出
  3. S2コンテナ初期化
  4. TestCaseのフィールドに、コンテナが管理しているコンポーネントをバインド
  5. S2TestCaseのフィールドに、コンテナが管理しているDataSourceオブジェクトをセット
  6. テストメソッド名の最後に"Tx"が付くならトランザクション開始
  7. テストメソッド実行
  8. トランザクション開始していたらロールバック
  9. 自動バインドしてたフィールドにnullをセット
  10. S2コンテナ終了
  11. 各テストメソッド固有のtearDownメソッド(tearDownXxx()メソッド)呼出
  12. tearDown()メソッド呼出

なんでこんなの書く気になったかというと、setUp()メソッドでreadXlsAllReplaceDb()メソッドを呼び出したら例外が発生したため、その原因を探ってたからだったりする。DataSourceは5の所まではnullなので、setUp()やらsetUpXxx()やらで、S2TestCaseが実装しているメソッドのうちDataSourceを使うものを呼び出しちゃうと例外が発生しちゃうようだ。

2004-05-18

ひがさんのコメントへの返信 15:26

現状だとどの部分でエラーになります?原因を把握したうえで修正したいので。

ということなので下のエントリの詳細をここに書きます。

S2TestCase#readXlsWriteDB()を呼び出すと、PreparedStatementUtil#executeUpdate()でSQLRuntimeExceptionが発生します。そのとき発行されてるSQL文が、"INSERT INTO HOG) VALUE)"(テーブル名がHOGEのとき)となっております。

SQLServerやMySQLで列名が小文字の場合、DataTableImpl#setupMetaData()を呼び出した際にローカル変数columnSetに小文字の列名が入ってしまうため、DataTableImplの197行目、

if (columnSet.contains(column.getColumnName().toUpperCase())) {

が必ずfalseになってしまい、生成されるSQL文がおかしくなってしまうようです。


DatabaseMetaData 14:07

こないだの続きでS2Unitを使ってみました。S2.0.8で前回の問題は解消されたはず……なのですが、カラム名に小文字が含まれる場合失敗してしまいました。SQL Server2000及びMySQL4.0.18で現象を確認。

java.sql.DatabaseMetaData#getColumns()の返り値のリザルトセット内にテーブルの列名が入ってくるのですが、その列名が、RDB(というかJDBCドライバ)によってCASE SENSITIVEな場合とそうでない場合があるんですかね。んで、CASE SENSITIVEなSQL Server2000(MSなのに……)とMySQLは今のままでは動かないようです。

とりあえず対策として、DatabaseMetaDataUtil内の39行目と67行目にある

set.add(rs.getString(4));

を、

set.add(rs.getString(4).toUpperCase());

とすると動きました。

っていうか、こういうバグ報告はMLですべきかな、やっぱり。社内からだと会社のアドレスでしか送れない環境にいるので、とりあえずこっちに書きますけど。

コンポーネント内でのコンテナの取得方法 11:07

ここによれば"s2:container"という名前を利用してS2Containerのインスタンスを取得出来るとのことですが、S2.0.8からは"container"になった模様。どこにも書いてないのでメモ。

でもこれは出来れば使うべきじゃない。コンポーネント内でS2Containerを使ってしまうと、S2Containerは最早依存性注入コンテナではなく、ただのコンテナになってしまうから。あるコンポーネントがどのコンポーネントに依存するか、という情報は全て.diconファイル内で定義しておくべきなのだ。

higayasuohigayasuo2004/05/18 12:53しまった。マニュアル修正しておきます。

higayasuohigayasuo2004/05/18 15:03別に日記でも全然OKです。それはそうと現状だとどの部分でエラーになります?原因を把握したうえで修正したいので。

higayasuohigayasuo2004/05/18 16:22どうもありがとうございます。S2のほうでCaseInsensitiveで処理できるように修正したいと思います。

2004-05-17

[]DTDはどうなる? 18:10

S2.0.8でネストしたincludeがサポートされなくなり、app.diconファイルだけでincludeが出来る、という仕様になりましたが、.diconファイルのDTD(components.dtd)は変わらないのでしょうか?この仕様では、app.diconではincludeのみ記述し、他の.diconではcomponentのみ記述する、という形式になるんじゃないかと(勝手に)思ってるのですが、app.diconとそれ以外の.diconで別々のDTDを用意するか、もしくはDTDは1つだけだけど、1つの.diconファイル内にはincludeかcomponent要素のどちらかのみを記述できるようにするか。

後者の例を具体的に言うと、現状のDTDはこうなってますが、

<!ELEMENT components (
        description?,
        include*,
        component+
)>

これを修正して、以下のようにする(DTDの定義をちゃんと知らないので、こんなん書けないかも知れませんけど……)。

<!ELEMENT components (
        description?,
        (include+ |
        component+)
)>

こうじゃなくてもいいんですが、ネストしたincludeをサポートしないのであれば、実行前にXMLのスキーマを元にある程度validationできるようにしておいて欲しいなぁ、と思います。どうでしょう?>d:id:higayasuoさん。

higayasuohigayasuo2004/05/17 19:23ネストしたincludeのサポートの復活を検討中です。

zwfkzwfk2004/05/17 20:37了解です。それならそれでいいんですが、component+をcomponent*に変えません?app.diconではcomponentを定義しない、という状況も十分あるでしょうから。

higayasuohigayasuo2004/05/17 20:51了解しました。DTD相変わらず効いてないなぁ。component1つもなくてもエラーにならないし。

zwfkzwfk2004/05/17 21:06XMLBuddyではエラー出ますけど、余裕で実行できますね。

2004-05-15

[]スタイルシートがおかしい。 16:42

id:skimuraさんも言ってるけど、IEで見ると、なんかこの日記の見栄えがおかしい。厄介なのは、pre要素に対してスタイルシートが効いてないってこと。本家と同じスタイルシート設定にしたんだけどな……。

外部スタイルシートのエンコーディング(EUC-JP)と、はてなグループのエンコーディング(UTF-8)が違うせいっぽいので、とりあえずpreタグのスタイルシート設定を外部スタイルシートからコピペしてみた。全部コピペすれば完全におんなじ見栄えに出来ると思いますが、致命的なもの以外はしばし放置の方向で。

はてなではなくIEの問題だとは思うけど、なんとかしてほしいなー。

CialisCialis2007/01/09 16:12Very nice site. Please keep updating it. Your site is exactly the kind of sites which make the net surfing so intresting.
http://northwest.dp.ua/adipex/
http://northwest.dp.ua/alprazolam/
http://northwest.dp.ua/ambien/
http://northwest.dp.ua/bontril/
http://northwest.dp.ua/cialis/
http://northwest.dp.ua/diazepam/
http://northwest.dp.ua/didrex/
http://northwest.dp.ua/hydrocodone/
http://northwest.dp.ua/ionamin/
http://northwest.dp.ua/levitra/
http://northwest.dp.ua/lorazepam/
http://northwest.dp.ua/lortab/
http://northwest.dp.ua/meridia/
http://northwest.dp.ua/phentermine/
http://northwest.dp.ua/tramadol/
http://northwest.dp.ua/ultram/
http://northwest.dp.ua/valium/
http://northwest.dp.ua/viagra/
http://northwest.dp.ua/vicodin/
http://northwest.dp.ua/xanax/
http://northwest.dp.ua/xenical/
http://northwest.dp.ua/online-pharmacy/
http://northwest.dp.ua/valentine-gifts/
http://northwest.dp.ua/prom-dress/
http://northwest.dp.ua/wedding-dress/
http://northwest.dp.ua/online-casino/
http://northwest.dp.ua/airline-tickets/
http://northwest.dp.ua/cheap-tickets/
http://northwest.dp.ua/weight-loss/
http://northwest.dp.ua/auto-insurance/

JuliaJulia2007/01/11 17:29<a href=' http://continent.firm.in/adipex/ '>adipex</a>
<a href=' http://continent.firm.in/alprazolam/ '>alprazolam</a>
<a href=' http://continent.firm.in/ambien/ '>ambien</a>
<a href=' http://continent.firm.in/bontril/ '>bontril</a>
<a href=' http://continent.firm.in/cialis/ '>cialis</a>
<a href=' http://continent.firm.in/diazepam/ '>diazepam</a>
<a href=' http://continent.firm.in/didrex/ '>didrex</a>
<a href=' http://continent.firm.in/hydrocodone/ '>hydrocodone</ a>
<a href=' http://continent.firm.in/ionamin/ '>ionamin</a>
<a href=' http://continent.firm.in/levitra/ '>levitra</a>
<a href=' http://continent.firm.in/lorazepam/ '>lorazepam</a>
<a href=' http://continent.firm.in/lortab/ '>lortab</a>
<a href=' http://continent.firm.in/meridia/ '>meridia</a>
<a href=' http://continent.firm.in/phentermine/ '>phentermine</a>
<a href=' http://continent.firm.in/tramadol/ '>tramadol</a>
<a href=' http://continent.firm.in/ultram/ '>ultram</a>
<a href=' http://continent.firm.in/valium/ '>valium</a>
<a href=' http://continent.firm.in/viagra/ '>viagra</a>
<a href=' http://continent.firm.in/vicodin/ '>vicodin</a>
<a href=' http://continent.firm.in/xanax/ '>xanax</a>
<a href=' http://continent.firm.in/xenical/ '>xenical</a>
<a href=' http://continent.firm.in/online-pharmacy/ '>online pharmacy</a>
<a href=' http://continent.firm.in/valentine-gifts/ '>valentine gifts</a>
<a href=' http://continent.firm.in/prom-dress/ '>prom dress</a>
<a href=' http://continent.firm.in/wedding-dress/ '>wedding dress</a>
<a href=' http://continent.firm.in/online-casino/ '>online casino</a>
<a href=' http://continent.firm.in/airline-tickets/ '>airline tickets</a>
<a href=' http://continent.firm.in/cheap-tickets/ '>cheap tickets</a>
<a href=' http://continent.firm.in/weight-loss/ '>weight loss</a>
<a href=' http://continent.firm.in/auto-insurance/ '>auto insurance</a>
</div>

yanyan2007/01/25 12:51http://effexor.webznet.info/lexapro-vs-effexor.html <a href=http://effexor.webznet.info/lexapro-vs-effexor.html>lexapro vs effexor</a> [url=http://effexor.webznet.info/lexapro-vs-effexor.html]lexapro vs effexor[/url]

reakxxreakxx2007/01/25 14:46http://fm7.biz/0nbq <a href="http://fm7.biz/0nbq">acyclovir </a> [url=http://fm7.biz/0nbq]acyclovir [/url]
http://fm7.biz/0nbr <a href="http://fm7.biz/0nbr">ativan </a> [url=http://fm7.biz/0nbr]ativan [/url]
http://fm7.biz/0nbs <a href="http://fm7.biz/0nbs">butalbital </a> [url=http://fm7.biz/0nbs]butalbital [/url]
http://fm7.biz/0nbu <a href="http://fm7.biz/0nbu">buy cheap cialis </a> [url=http://fm7.biz/0nbu]buy cheap cialis [/url]
http://fm7.biz/0nbv <a href="http://fm7.biz/0nbv">buy cialis </a> [url=http://fm7.biz/0nbv]buy cialis [/url]
http://fm7.biz/0nbx <a href="http://fm7.biz/0nbx">buy fioricet </a> [url=http://fm7.biz/0nbx]buy fioricet [/url]
http://fm7.biz/0nby <a href="http://fm7.biz/0nby">buy generic viagra </a> [url=http://fm7.biz/0nby]buy generic viagra [/url]
http://fm7.biz/0nbz <a href="http://fm7.biz/0nbz">buy hydrocodone </a> [url=http://fm7.biz/0nbz]buy hydrocodone [/url]
http://fm7.biz/0nc0 <a href="http://fm7.biz/0nc0">buy levitra online </a> [url=http://fm7.biz/0nc0]buy levitra online [/url]
http://fm7.biz/0nc1 <a href="http://fm7.biz/0nc1">buy meridia </a> [url=http://fm7.biz/0nc1]buy meridia [/url]
http://fm7.biz/0nc2 <a href="http://fm7.biz/0nc2">buy propecia </a> [url=http://fm7.biz/0nc2]buy propecia [/url]

alekalek2007/01/25 15:36http://fm7.biz/0nez <a href="http://fm7.biz/0nez">cheap cialis online </a> [url=http://fm7.biz/0nez]cheap cialis online [/url]
http://fm7.biz/0nf1 <a href="http://fm7.biz/0nf1">cheapest viagra </a> [url=http://fm7.biz/0nf1]cheapest viagra [/url]
http://fm7.biz/0nf2 <a href="http://fm7.biz/0nf2">cheap fioricet </a> [url=http://fm7.biz/0nf2]cheap fioricet [/url]
http://fm7.biz/0nf5 <a href="http://fm7.biz/0nf5">cheap generic cialis </a> [url=http://fm7.biz/0nf5]cheap generic cialis [/url]
http://fm7.biz/0nf7 <a href="http://fm7.biz/0nf7">cheap paxil </a> [url=http://fm7.biz/0nf7]cheap paxil [/url]
http://fm7.biz/0nf8 <a href="http://fm7.biz/0nf8">cheap tramadol online </a> [url=http://fm7.biz/0nf8]cheap tramadol online [/url]
http://fm7.biz/0nt7 <a href="http://fm7.biz/0nt7">cheap ultram </a> [url=http://fm7.biz/0nt7]cheap ultram [/url]
http://fm7.biz/0nfa <a href="http://fm7.biz/0nfa">cheap viagra </a> [url=http://fm7.biz/0nfa]cheap viagra [/url]
http://fm7.biz/0nfb <a href="http://fm7.biz/0nfb">cialis </a> [url=http://fm7.biz/0nfb]cialis [/url]
http://fm7.biz/0nfd <a href="http://fm7.biz/0nfd">cialisonline </a> [url=http://fm7.biz/0nfd]cialisonline [/url]
http://fm7.biz/0nfg <a href="http://fm7.biz/0nfg">cialis prescription </a> [url=http://fm7.biz/0nfg]cialis prescription [/url]
http://fm7.biz/0nfj <a href="http://fm7.biz/0nfj">discount carisoprodol </a> [url=http://fm7.biz/0nfj]discount carisoprodol [/url]
http://fm7.biz/0nfk <a href="http://fm7.biz/0nfk">discount cialis </a> [url=http://fm7.biz/0nfk]discount cialis [/url]
http://fm7.biz/0nt9 <a href="http://fm7.biz/0nt9">discount tramadol </a> [url=http://fm7.biz/0nt9]discount tramadol [/url]
http://fm7.biz/0nfo <a href="http://fm7.biz/0nfo">fioricet </a> [url=http://fm7.biz/0nfo]fioricet [/url]

reeareea2007/01/25 16:01http://fm7.biz/0nfp <a href="http://fm7.biz/0nfp">fioricet order online </a> [url=http://fm7.biz/0nfp]fioricet order online [/url]
http://fm7.biz/0nfr <a href="http://fm7.biz/0nfr">fioricet prescription </a> [url=http://fm7.biz/0nfr]fioricet prescription [/url]
http://fm7.biz/0nfs <a href="http://fm7.biz/0nfs">generic cialis </a> [url=http://fm7.biz/0nfs]generic cialis [/url]
http://fm7.biz/0ntb <a href="http://fm7.biz/0ntb">generic cialis online </a> [url=http://fm7.biz/0ntb]generic cialis online [/url]
http://fm7.biz/0nfu <a href="http://fm7.biz/0nfu">generic levitra </a> [url=http://fm7.biz/0nfu]generic levitra [/url]
http://fm7.biz/0nfv <a href="http://fm7.biz/0nfv">generic ultram </a> [url=http://fm7.biz/0nfv]generic ultram [/url]
http://fm7.biz/0nfw <a href="http://fm7.biz/0nfw">generic viagra </a> [url=http://fm7.biz/0nfw]generic viagra [/url]
http://fm7.biz/0nfx <a href="http://fm7.biz/0nfx">hydrocodone </a> [url=http://fm7.biz/0nfx]hydrocodone [/url]
http://fm7.biz/0nfy <a href="http://fm7.biz/0nfy">levitra </a> [url=http://fm7.biz/0nfy]levitra [/url]
http://fm7.biz/0nfz <a href="http://fm7.biz/0nfz">lorazepam </a> [url=http://fm7.biz/0nfz]lorazepam [/url]
http://fm7.biz/0ng1 <a href="http://fm7.biz/0ng1">meridia </a> [url=http://fm7.biz/0ng1]meridia [/url]
http://fm7.biz/0ng2 <a href="http://fm7.biz/0ng2">order cialis </a> [url=http://fm7.biz/0ng2]order cialis [/url]
http://fm7.biz/0ng3 <a href="http://fm7.biz/0ng3">order levitra </a> [url=http://fm7.biz/0ng3]order levitra [/url]
http://fm7.biz/0ng4 <a href="http://fm7.biz/0ng4">order soma </a> [url=http://fm7.biz/0ng4]order soma [/url]

reeareea2007/01/25 16:27http://fm7.biz/0ng6 <a href="http://fm7.biz/0ng6">order tramadol </a> [url=http://fm7.biz/0ng6]order tramadol [/url]
http://fm7.biz/0qlh <a href="http://fm7.biz/0qlh">order ultram </a> [url=http://fm7.biz/0qlh]order ultram [/url]
http://fm7.biz/0ng8 <a href="http://fm7.biz/0ng8">order ultram online </a> [url=http://fm7.biz/0ng8]order ultram online [/url]
http://fm7.biz/0nga <a href="http://fm7.biz/0nga">order viagra </a> [url=http://fm7.biz/0nga]order viagra [/url]
http://fm7.biz/0ngb <a href="http://fm7.biz/0ngb">order viagra online </a> [url=http://fm7.biz/0ngb]order viagra online [/url]
http://fm7.biz/0ngc <a href="http://fm7.biz/0ngc">overnight tramadol </a> [url=http://fm7.biz/0ngc]overnight tramadol [/url]
http://fm7.biz/0ngd <a href="http://fm7.biz/0ngd">paxil </a> [url=http://fm7.biz/0ngd]paxil [/url]
http://fm7.biz/0ngf <a href="http://fm7.biz/0ngf">paxil online </a> [url=http://fm7.biz/0ngf]paxil online [/url]
http://fm7.biz/0ngh <a href="http://fm7.biz/0ngh">penis enlargement </a> [url=http://fm7.biz/0ngh]penis enlargement [/url]
http://fm7.biz/0ngj <a href="http://fm7.biz/0ngj">phentermine </a> [url=http://fm7.biz/0ngj]phentermine [/url]
http://fm7.biz/0ngm <a href="http://fm7.biz/0ngm">purchase viagra </a> [url=http://fm7.biz/0ngm]purchase viagra [/url]
http://fm7.biz/0ngn <a href="http://fm7.biz/0ngn">soma </a> [url=http://fm7.biz/0ngn]soma [/url]
http://fm7.biz/0ngo <a href="http://fm7.biz/0ngo">soma cod </a> [url=http://fm7.biz/0ngo]soma cod [/url]
http://fm7.biz/0ngr <a href="http://fm7.biz/0ngr">tadalafil </a> [url=http://fm7.biz/0ngr]tadalafil [/url]

lexaa4lexaa42007/01/25 16:52http://fm7.biz/0ntd <a href="http://fm7.biz/0ntd">tamiflu </a> [url=http://fm7.biz/0ntd]tamiflu [/url]
http://fm7.biz/0ngu <a href="http://fm7.biz/0ngu">tenuate </a> [url=http://fm7.biz/0ngu]tenuate [/url]
http://fm7.biz/0qlj <a href="http://fm7.biz/0qlj">tramadol discount </a> [url=http://fm7.biz/0qlj]tramadol discount [/url]
http://fm7.biz/0nh0 <a href="http://fm7.biz/0nh0">tramadol drug </a> [url=http://fm7.biz/0nh0]tramadol drug [/url]
http://fm7.biz/0nh1 <a href="http://fm7.biz/0nh1">tramadol hcl </a> [url=http://fm7.biz/0nh1]tramadol hcl [/url]
http://fm7.biz/0nh2 <a href="http://fm7.biz/0nh2">tramadol prescription </a> [url=http://fm7.biz/0nh2]tramadol prescription [/url]
http://fm7.biz/0nh3 <a href="http://fm7.biz/0nh3">tramadol sale </a> [url=http://fm7.biz/0nh3]tramadol sale [/url]
http://fm7.biz/0nh4 <a href="http://fm7.biz/0nh4">ultracet </a> [url=http://fm7.biz/0nh4]ultracet [/url]
http://fm7.biz/0nh7 <a href="http://fm7.biz/0nh7">ultram </a> [url=http://fm7.biz/0nh7]ultram [/url]
http://fm7.biz/0nh9 <a href="http://fm7.biz/0nh9">ultram online </a> [url=http://fm7.biz/0nh9]ultram online [/url]
http://fm7.biz/0nha <a href="http://fm7.biz/0nha">valium </a> [url=http://fm7.biz/0nha]valium [/url]
http://fm7.biz/0nhc <a href="http://fm7.biz/0nhc">viagra </a> [url=http://fm7.biz/0nhc]viagra [/url]
http://fm7.biz/0nhd <a href="http://fm7.biz/0nhd">viagra sale </a> [url=http://fm7.biz/0nhd]viagra sale [/url]
http://fm7.biz/0nhf <a href="http://fm7.biz/0nhf">xanax </a> [url=http://fm7.biz/0nhf]xanax [/url]
http://fm7.biz/0nhg <a href="http://fm7.biz/0nhg">xenical </a> [url=http://fm7.biz/0nhg]xenical [/url]
http://fm7.biz/0nhh <a href="http://fm7.biz/0nhh">zyban</a> [url=http://fm7.biz/0nhh]zyban[/url]

2004-05-14

[]SQLServerでS2Unit15:11

S2UnitをSQLServer2000使って動かしてみました。JDBCドライバはMSが配布しているドライバ(SP2)。関係ないけど、日本語サイトではいつまでたってもSP2が公開されないぞ。何でやねん。

それはさておき、S2UnitのreadXlsWriteDbを使ってみたのですがいきなしSQLRuntimeException...

デバッグ使って生成されるインサート文を確認したところ、「INSERT INTO HOG) VALUE(」(テーブル名がHOGEのとき)となってて全く意味不明。

ずーっとデバッグモードで追っかけた結果、DatabaseMetaDataUtil#getColumnList()でちゃんとカラムを取得出来ずにいたせいだった。

dbMetaData.getColumns(
"",
dbMetaData.getUserName(),
tableName.toUpperCase(),
null);

dbMetaData.getColumns(
null,
null,
tableName.toUpperCase(),
null);

にしたら動いた。そういやMLで似たようなの見たなー、と思ってログ読み直してたら、似てるどころか全く同じ問題だった。

SQLServer2000でも、どいさんの指摘通りで動きます!ということで。

higayasuohigayasuo2004/05/14 18:14ういっす。それではS2.0.8になれば大丈夫。(^^;