2011-12-04
久しぶりに更新
2011-05-25
SAStrutsの更新可能なネスト
サンプル見ても今一コツがつかめなかったのでメモ。
ポイントは2点
- forEachタグのvarとitemsを同じ名称にしておく。
- 子の項目はindexed="true"にする。
出力されるinputタグが最終的にこんな感じになるとOK。
<input type="hidden" name="listItems[0].id" value="0">
2011-02-20
VAIO Fを購入
ハイビジョン解像度のやつを購入した。画面がめちゃくちゃ広くなった。地デジチューナーは、絶対に使わないのでオプションからはずし、完全にパソコンとして使うようにCPUをi7にしておきました。やっぱり速いですね。
マウスもBluetoothを新調しましたが、最近のワイアレスはラグが少なくて、ずいぶんと使いやすくなりましたね。キーボードはバックライト付がよかったけど、日本語キーボードに慣れちゃっているのであきらめた。
しばらく使って必要なさそうなら、前のマシンは売却します。
2010-11-18
ボージョレーヌーボー
今年も父にプレゼントしました。もちろん買ったのはエノテカですw
そういえばリンクシェアから入金のお知らせが、久しぶりに入っていました。本人も忘れていたくらいなのにありがとうございました。エノテカは自分でアフィリエイトリンクを踏んでいいので、ほとんど自分用だったのですが、まさか他人様のお買い上げがあるとは夢にも思いませんでした。
2010-10-28
フリーのDVD Writer
GPL3で完璧フリー。
2010-08-19
S2Chronosをサーブレットで動かす
公式のインストールは不備があるのでメモ。
- jarファイルはcoreとextension両方ともいります。置き場所はWEB-INF/lib(src/libとよく間違う)
- chronosCustomize.diconはコピペした後、コメントを消しておくかXMLのコメントに直しておく(これではまった。多分オリジナルのドキュメントが不親切)。
- app.diconにchronos-extension.diconのインクルードを追加
- web.xmlに以下を追加
- 他はドキュメント通り
<servlet>
<servlet-name>chronosServlet</servlet-name>
<servlet-class>org.seasar.chronos.extension.servlet.S2ChronosServlet</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
2010-05-14
2個以上のLANポートがあるサーバーでRMIすると・・・
場合によってはうまくいったり、行かなかったりするかもしれません。ということでぐぐるとこんな良いページがヒット
要するにjava.rmi.server.hostnameプロパティで、RMI通信するサーバーを設定する必要があります。LocateRegistryクラスを探しても、それっぽい物が無くて一瞬焦りましたよ。
2010-03-16
今度はCursorクラスがクラッシュ
Finalizerのフリーズを解決したら、今度はこんなものが出来てきました。Javaのバグで悩まされ続けています。
2010-03-03
API不具合との戦い
ここ2カ月ほど原因不明のメモリーリークと戦っていた。結局原因は↓のjava.awt.Robotだったわけだが、JavAPIの不具合ほど見つけにくいものはない。しかもこの不具合、CPUの種類やタイミングによって、アクセスバイオレーションによるクラッシュとFinalizerのフリーズという2種類の挙動が不定期に発生するという、特定のしづらいものであった。
それは、ユーザープログラムの不具合を修正した後、「使用メモリがまだ増え続けているようなんだけど?」と担当者からの一言で始まった。調査のために仕込んであったYourKitで確認すると、あり得ない数ダイアログのインスタンスがリークしていた。
テスト機で原因と思われる操作をしてみても、現象は一切発生せず無しの礫であった。そんな中ハードが関係あるのではと、現場と同様なマシンを用意しテストしてみた。すると、同様な現象が次の日に発生した。そんなことがあるんですねw
再現すればこちらのものと、とれるだけの情報をとって調査していく。そしてついに原因を見つけた。スタックダンプを調査すると、FinalizerスレッドがWRobotPeer._disposeで終了している。これをキーワードにBugDatabseを検索すると、例の不具合情報がヒットした。「APIのバグか…」。Finalizerが停止する、つまりfinalizeメソッドを持っているオブジェクトは、間違いなくリークするという恐ろしいバグである。OSとのかかわり深いヘビーコンポーネントは、ほぼリークしていくんですぜ。
とにかくRobotインスタンスをGCさせなきゃ良いわけで、シングルトンでラップしてインスタンスを永久に使い続ける方法で回避する(BugDatabaseにもそう書いてある)。
2010-02-17
java.awt.Robotがメモリーリークを起こす件
本文とは全然関係ないが、もうSUNはオラクルのものになってるのね。

groovetube
Link
No Trackbacks
General
22:20
