タイトルJavaで作るWebObjectsのプログラムでのオートリリースプールカテゴリーKnowledge Base(旧TIL), WebObjects
作成日2000/11/2 12:22:52作成者新居雅行
Tech Info Libraryに掲載された文書によると、WebObjectsでJavaによるマルチスレッドのプログラムを作成した時、「_NSAutoreleaseNoPool…」などと記載されたログメッセージがコンソールに表示される。場合によっては大量に表示される。このメッセージは無視してよく、アプリケーションの実行には悪影響を与えない。ただし、あまり多いとログファイルが急激に増加するなどの副作用はある。これは、JavaからObjective-Cのオブジェクトを生成することによって発生する。Objective-Cではオートリリースプールのメカニズムを利用しているが、Javaの一般的な記述ではこのメカニズムが適切に指定されない。このメッセージを避けるためには、スレッドの最初に「int pool = NSAutoreleasePool.push();」、スレッドの最後に「NSAutoreleasePool.pop(pool); 」といったコードを追加しておく。
関連リンクWebObjects 4.x: "_NSAutoreleaseNoPool ... just leaking" Messages