2013-01-01から1年間の記事一覧

血の報い

(新共同訳) 42:21 互に言った。 「ああ、我々は弟のことで罰を受けているのだ。弟が我々に助けを求めたとき、あれほどの苦しみを見ながら、耳を貸そうともしなかった。それで、この苦しみが我々にふりかかった。」 42:22 するとルベンが答えた。 「あのとき…

ねたみ

(新共同訳) 26:14 多くの羊や牛の群れ、それに多くの召し使いを持つようになると、ペリシテ人はイサクをねたむようになった。(TEV) 26:14 Because he had many herds of sheep and cattle and many servants, the Philistines were jealous of him.(KJV) 26:…

スレッドセーフではないコード(4回目)

今回はsynchronizedメソッドの話。「synchronizedが付いているメソッドは同時に実行されない」と思っていたら大まちがい。下記に4種類のコード例のうち、System.out.println()が排他的に実行されるのは2つだけ。 System.outする箇所にブレークポイントを設定…

スレッドセーフではないコード(2回目)

前回(1回目)はサーブレットを例にスレッドセーフではないコードを考えてみたが、スレッドセーフではないことを目に見えるかたちで実証するのが難しかった。 今回はJava SEの環境で動かせるクラスでスレッドセーフではないことを実証してみる。まずは、カウン…

スレッドセーフではないコード(3回目)

他人が書いたコードがマルチスレッド下で正しく動くかどうか検証するのは骨の折れる作業と実感する。テスト時になるべくバグが出やすくするコツとしてClient VMではなくServer VMで動かすとよいそうだ。ServerVMの方がClientVMにくらべてより最適化しようと…

スレッドセーフではないコード(1回目)

書いてはいけないコードの例。アクセスカウント(requestCount)を表示するサーブレットを考える。サーブレット自体はシングルトンなので、ブラウザからアクセスするとrequestCountの値がインクリメントされ、正しく動くかのように見える。しかし、++のインク…

Sambaとネットワーク設定

Ubuntuの初期設定では、NATのポートフォワーディングを利用してホストOSのWindows7からゲストOSのUbuntuにSSH接続した。また、WindowsとUbuntuのファイル共有はVirtualBoxの共有フォルダーを利用した。VirtualBoxのファイル共有だけでは今後何かと不便だろう…

Windows7に仮想環境を作ってUbuntuをインストールする(デスクトップEditionとサーバーEdition の両方)

前々からcoLinuxでWindowsとLinuxを共存させたいと考えていたが、いざやってみるとcoLinuxが64bitのWindowsに対応していないことが判明。そこで、VirtualBoxを使って仮想環境を作成してUbuntuのインストールにトライする。仮想環境 : VirtualBox 4.2.6 for W…

今さらながらStruts1系のActionやFormをJUnitでテストする方法

StrutsのActionやFormをJUnitでテストするには StrutsTestCase http://strutstestcase.sourceforge.net/ を使う。設定ファイルを置く場所は厄介。次のようにマニュアル通り記述しても public void setUp() throws Exception { super.setUp(); // コンテキス…

Mavenのディレクトリ構成を変更(+Mockitoを使ってサーブレットをJUnitでテスト)する方法

Mavenで決まっているディレクトリの構成を変えるのは公式サイトを見ても「推奨しない」だの「考え直せ」だの書かれているが、それでも変更しなければならない状況におちいることがあろうかと思います。例えば下図のような構成のプロジェクトで試しにMavenを…

Jenkinsの使い方+MavenやSonarとの連携

Jenkinsの導入〜MavenやSonarとの連携方法までを紹介します。SubversionやGitとの連携は次回以降に紹介したいと思います。まずはJenkinsの準備。 http://jenkins-ci.org/ からWARファイルをダウンロードし、javaコマンドでサーバを起動します。 C:\root\usr\…

SonarとMavenでJavaソースコードのメトリクスを収集する

Javaソースコードのカバレッジツールを探していたらSonarというJavaソースコードのメトリクス収集ツールに行き当たりました。 これまでソースをWebで見れるようにするツール等は様々出回っていましたが、総合的にメトリクスを収集してくれるツールは、多くは…