Java
改行コードがプラットフォームごとに異なるというのは常識だが、ついつい次のようなプログラムを書いてしまう。 System.out.printf("%5d %5d\n", 12, 345); さすがに、print、printlnを使う場合はエスケープシーケンス "\n" を直接ソースコード上に書くこと…
ざっくりと試してみたSimpleライブラリ。 Simpleライブラリを試してみる - HHeLiBeXの日記 正道編 いろいろと気になる点もあったので、ざくっと検証してみる。の続き。 値の解析エラーの扱い たとえば、POJOではshort型として定義されているフィールドに対応…
自分は、設定を変更したら元に戻さないときがすまない性分なので、何気なく次のようなコードを書いていた。 private static void printPrivateFieldValue(Object obj, String name) throws Exception { Field field = obj.getClass().getDeclaredField(name)…
今まで、正規表現のメタ文字をエスケープするのに、バックスラッシュとかをいっぱい書いていたのだが、簡単にエスケープする記法があることに最近気づいた。さらにそのような文字列を生成するためのメソッドがあることにも気づいた。 パターン(置換前)文字列…
Java Puzzlers 罠、落とし穴、コーナーケース作者: ジョシュア・ブロック,ニール・ガフター,柴田芳樹出版社/メーカー: ピアソン・エデュケーション発売日: 2005/11/14メディア: 大型本購入: 3人 クリック: 92回この商品を含むブログ (57件) を見るふと目にし…
次のようなコードに遭遇したとき、一瞬、見なかったことにしようかと思った。 private static String buildString(List codes) { String resStr = ""; // 何か別の処理 for (int j = 0; j < codes.size(); ++j) { if (Integer.parseInt((String) codes.get(j…
実害がなかったので「未遂」ではあるのだが‥ 問題となったのは次のコード。 <%@ page contentType="text/html" pageEncoding="UTF-8" %><% response.setHeader("pragma","no-cache"); response.setHeader("Cache-Control","no-cache"); %>
ざっくりと試してみたSimpleライブラリ。 Simpleライブラリを試してみる - HHeLiBeXの日記 正道編 いろいろと気になる点もあったので、ざくっと検証してみる。の続き。 Elementアノテーションのdata要素 JavaDocを見たときに気づいたElementアノテーションの…
ざっくりと試してみたSimpleライブラリ。 Simpleライブラリを試してみる - HHeLiBeXの日記 正道編 いろいろと気になる点もあったので、ざくっと検証してみる。の続き。 Javaフィールドの値がnullの場合の扱い 当然のことながら、すべてのJavaフィールドの値…
これまでの記事。 Webアプリケーション開発の際の注意事項 - HHeLiBeXの日記 正道編 Webアプリケーション開発の際の注意事項(2) - HHeLiBeXの日記 正道編 Webアプリケーション開発の際の注意事項(3) - HHeLiBeXの日記 正道編 今度はコードを書くときの注意で…
データベースのトランザクションの終了処理をきちんとしないために、トランザクションがタイムアウトするまでの間、未コミットの亡霊データ(何)が見えてしまうという爆弾コード。 実際のコードを簡略化し、JDBCに置き換えたコードで掲載。 private static vo…
Webアプリケーションサーバー上で動作するアプリケーションから、JNDIリソースとして登録されたデータベース接続オブジェクト(データソース)を取得、なんていうのはよくやることだが、今まで知らなかった原因により、データソースを取得できないケースがあっ…
ざっくりと試してみたSimpleライブラリ。 Simpleライブラリを試してみる - HHeLiBeXの日記 正道編 いろいろと気になる点もあったので、ざくっと検証してみる。の続き。 要素名や属性名は「JavaBean標準」固定なのか Lureクラスなら"lure"という風になるとい…
ざっくりと試してみたSimpleライブラリ。 Simpleライブラリを試してみる - HHeLiBeXの日記 正道編 いろいろと気になる点もあったので、ざくっと検証してみる。 XML宣言と文字エンコーディング サンプルでは、出力されたXMLファイルにXML宣言が存在しない。そ…
「Simple」という名のライブラリがあるらしい。 JavaオブジェクトをXML形式にシリアライズするSimpleライブラリ | Unofficial DB2 BLOG Simple を使って XML シリアライズを行う Simple 2.7.1 (v2.0からはZIP形式で提供されているのに、2009年11月24日更新(…
これまでの記事。 Webアプリケーション開発の際の注意事項 - HHeLiBeXの日記 正道編 Webアプリケーション開発の際の注意事項(2) - HHeLiBeXの日記 正道編 ただ、これまでとは違って、コードの書き方の問題ではなく使用しているライブラリに関連する問題。以…
以前に、止まってくれないWebアプリをテーマに次のような記事を書いた。 Webアプリケーション開発の際の注意事項 - HHeLiBeXの日記 正道編 Webアプリケーション開発の際の注意事項(2) - HHeLiBeXの日記 正道編 で、検証に使用していたWASのトライアル版は(た…
Microsoft SQL Server 2005 Express Edition を導入し、Java プログラムから JDBC 接続をしようとした。 Download Microsoft SQL Server 2005 Express Edition Service Pack 3 from Official Microsoft Download Center Download Microsoft SQL Server Manag…
TIMESTAMP のリテラルを記述する際に、DB2 で苦労した記憶が唐突によみがえってきたので、手元にある DBMS を比べてみた。 IBM DB2 Express-C v9.1.2 IBM DB2 Express-C v9.5.2 IBM DB2 Express-C v9.7.0 Oracle Database 10g Express Edition PostgreSQL v8…
次の記事(2007/12/27): 現場から学ぶWebアプリ開発のトラブルハック(9):JavaのGC頻度に惑わされた年末年始の苦いメモリ (1/3) - @IT の「【第5話】犯人はお前だ! Finalizer!!」を久しぶりに目にして、Finalizerの動作を実際に見てみるか、と思ったらし…
せっかくSQLにユーザ定義型(構造型)を定義する機能があるので(謎)、JDBC経由で参照、更新をしてみる。 使用する環境は以下のとおり。 DB2 Express-C v9.7.0 (と書いて FP1 に更新しなきゃならないことを思い出したらしいが、それはまた後で) とりあえず、ア…
トラブルは得てして古い環境で起こる。以下のエントリ: File.createTempFile() と File.deleteOnExit() のコンボ罠の続き - HHeLiBeXの日記 正道編 を書いたのもそんなトラブルがきっかけだが、原因の1つはアプリケーションそのものではない‥いや、(古いラ…
過去のエントリで、 File.createTempFile() と File.deleteOnExit() のコンボ罠 - HHeLiBeXの日記 正道編 File.createTempFile() と File.deleteOnExit() のコンボ罠の続き - HHeLiBeXの日記 正道編 というのを書いたが、別に「コンボ罠」というわけではない…
そういえば、大昔に「よく分からん」とか言って放り投げていた java.lang.ref パッケージ関連のクラスとその周辺知識。 先日、soft reference とかの話が出てきたので、今度はちゃんと読んでみた。(とりあえず到達可能性について) java.lang.ref (Java 2 Pla…
初回の記事は以下。 Webアプリケーション開発の際の注意事項 - HHeLiBeXの日記 正道編 某所(何処)での某氏(誰)の報告が気になったので、シンプルケースで検証。 なんでも、java.io.ObjectStreamClass#lookup() を呼ぶだけでクラスローダーが残ってしまうとい…
DB2 v9.5 から ARRAY 型がサポートされるようになった。ただし、自分が認識している範囲では次の制限がある。 プロシジャ(Procedure)のパラメータでのみ指定できる。 (DB2 v9.7以降)関数(Function)のパラメータか戻り値にも指定できる。(とオンラインマニュ…
Auto-boxing が導入されたことで、本来は Collection に格納できない(ラッパークラスによる明示的なラッピングが必要な)プリミティブ型の値を、コード上では明示的なラッピングをしなくても格納できるようになった。 しかし、あるプリミティブ型の引数をとる…
Object.toString() メソッドは、デバッグ出力などのときに役立てる、くらいの意識しかなかったのでまったく気にしていなかったのだが、java.io.ByteArrayOutputStream クラスの toString() メソッドはオーバーライドされている。 で、何が返ってくるのかと思…
前に書いた「java.lang.management パッケージ - ThreadMXBean インタフェース - HHeLiBeXの日記 正道編」の中の findMonitorDeadlockedThreads を、デッドロックを実際に発生させた後で情報出力してみる。 import java.lang.management.ManagementFactory; …
以下の続き。 Threadはinterruptすれば停止するというものではないのだよ - HHeLiBeXの日記 正道編 これを書いていたときに、「他に何かあったような‥」と思いながら、なかなか思い出せなかったので放置していたのだが、唐突に思い出したので。 今回示すどち…