IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
恐ろしいことですが、実装が全然違うStruts2の脆弱性S2-020と同様の攻撃手法で、Struts1も脆弱性があることが分かりました。 http://www.lac.co.jp/security/alert/2014/04/24_alert_01.html ここではあまり明らかになっていませんが、原因は // Set the corresponding properties of our bean try { BeanUtils.populate(bean, properties); } catch(Exception e) { throw new ServletException("BeanUtils.populate", e); } finally { if (multipartHandler != null) { // Set the multipart request handl
タイトル通り。 memcached つかうほどのものをいじっていないのだけれども面白そうなのでメモ。 以下、java はhttp://www.whalin.com/memcached/ ruby は memcached-client を前提とする*1。 普通につかう。 普通にサンプル通り書くと、java なら String[] servers = { "localhost:11211", }; SockIOPool pool = SockIOPool.getInstance(); pool.setServers(servers); pool.initialize(); MemCachedClient mcc = new MemCachedClient(); mcc.set("one", 1); mcc.set("two", 2); mcc.get("one"); こんな感じ*2。 ruby
Javaでサーバアプリケーションを開発している場合に遭遇する問題に「Out Of Memory」がある。Javaアプリケーションが使用するメモリが増え続け、最終的に許容範囲を超えてJava仮想マシンがクラッシュする。この問題に対するもっとも簡単な対処方法は、物理的にメモリの容量を増やしてJava仮想マシンが利用できるメモリ容量を引き上げること、もうひとつは、クラッシュする前に定期的にアプリケーションを再起動することだ。強引な方法だが、実効性のある方法でもある。しかし、根本的に原因を解決することにはならず、何らかの原因でいつかOut of Memoryが発生する危険性が存在しつづけることになる。 根本的に問題を解決したい場合には、どの部分でメモリリークが発生しているかを追跡し、対象部分のコードを書き換える必要がある。そうした場合に参考になる記事が「Fix Memory Leaks in Ja
Ceylon(セイロン)は、レッドハット社によって開発されたプログラミング言語およびソフトウェア開発キットである。この言語はJava言語をもとに作られ、Java仮想マシンで動作する。またJavascriptにコンパイルすることができる[1][2]。 この言語とソフトウェア開発キットのプロジェクトは、Java言語とJava SEソフトウェア開発キットで見られた成功と失敗を踏まえた上で、もし今それらが設計されたとしたら、商用コンピューティング向けの言語と開発キットがどんなものになっていたかを示すものであると言える[要出典]。また、レッドハット自身は否定しているものの、業界のアナリストからは同プロジェクトはJavaを抹殺するためのものだと言われている[3][4]。 言語の特徴[編集] Ceylon言語はJava言語の構文のほとんど全てを受け継いでいる。下記は Hello World プログラムの
本家 /. 記事「Red Hat Uncloaks 'Java Killer': the Ceylon Project」(Red Hat、「Java キラー」という the Ceylon Project を披露) によると、Red Hat に所属し、Hibernate などを開発した Gavin King 氏が新しい言語「Ceylon」を披露したそうだ。 これを受け、King 氏は自身のブログにて Ceylon について解説している。SourceForge.JP Magazine の記事によると、Project Ceylon は「Java ではなく、Java に深く影響を受けた新しい言語」だそうで、Java に影響を受け、Java の良くない点を改善するものとなるようだ。Ceylon は Java 仮想マシン上で動き、静的型付け、自動メモリ管理やセーフリファレンスなどを特徴とするとのこと。
フィンランドVaadinは2月4日、Java向けのWebアプリケーションフレームワーク「Vaadin 7」をリリースした。「Google Web Toolkit(GWT)」の統合など、多数の新機能が加わっている。 VaadinはJavaを利用してWebアプリケーションを作成するためのフレームワーク。GWTをベースとし、サーバー/クライアント両方のコード作成に利用できる。リッチなUIコンポーネント、軽量、豊富なアドオンなどを特徴とする。ライセンスはApache License 2。 2009年に公開されたVaadin 6以来、3年ぶりのメジャーリリースとなる。最大の特徴はGWTがVaadinの一部として組み込まれた点。これによりクライアントサイドのウィジェッド開発対応を改善でき、Vaadinによるオフラインアプリ構築への道も開けるという。GWTに関する問題解決も迅速になるとしている。GWTは
Java nio の API を見ていくシリーズ(目次)。 今回から java.nio.file.Files クラスに定義されているメソッドを見ていきますヨ〜。 今回はファイルやディレクトリを作成するメソッドです。 これをもう少し分類すると、以下のようなメソッドがあります: ファイル、ディレクトリを作成する 一時ファイル、一時ディレクトリを作成する リンク、シンボリック・リンクを作成する 加えて、FileAttribute についても見ていきます: FileAttribute を設定する それぞれ見ていきましょう。 【修正】 「テンポラリ・ファイル」、「テンポラリ・ディレクトリ」と書いていた箇所を「一時ファイル」、「一時ディレクトリ」に変更しました。 一時ファイル、ディレクトリを作成するサンプルコードから例外処理を削除しました。 ファイル、ディレクトリを作成するまずは一番基本のファイル、デ
試しにこんなコード書いてみたんですけど、共有ロックの時にも排他ロックがかかってるようにしか見えないんすよね…。 内容としては、以下の処理を順にやってるつもり: a.dat, b.datへ書き込むスレッドを4つづつ作って排他ロック、a.datだったら書込み後に3000msスリープ a.dat, b.datを読み込むスレッドを4つづつ作って共有ロック、a.datだったら読み込み後に3000msスリープ 意図としては、後者はブロックせずに並行して全スレッドが走れるはず、と思ったんだけれど、どちらの場合もOverlappingFileLockExceptionになる。これでは排他ロックじゃないか。 ちなみに環境はLinuxとMacでJDK6。環境が共有ロック非対応なの?それとも単に何か勘違いしている? import java.nio.ByteBuffer; public class Test1 {
だいぶ遅れているのですが、こちらのお題に参加してみることにしました。 http://npnl.hatenablog.jp/entry/2012/08/17/014930 もうちょっと、早く見つけておけばよかった… なんか、Groovyが人気っぽいので、ScalaとClojureでいってみます。 ターゲットのディレクトリは、こんな感じ。 $ find src src src/jp src/jp/co src/jp/co/a src/jp/co/a/a2 src/jp/co/a/a2/Bar.java src/jp/co/a/a1 src/jp/co/a/a1/Foo.java src/jp/co/a/Hoge.java src/jp/co/a/a3 src/jp/co/a/a3/Fuga.java Scala Scalaだと標準では入出力が弱いので、これを機会にNIO.2を使ってみることにし
先々月、先月とNIO2の新しいファイルシステムについて解説してきました。今月は、NIO2の残りの機能である非同期I/Oとソケットチャネルでのマルチキャストについて解説していきます。 なお、ここではNIO2の機能を中心に解説するため、バッファやチャネルなどNIOの機能に関しては特に解説を加えておりません。NIOについては、本連載では2006年の4月から5月にかけて「New I/Oで高速な入出力」と題して解説していますので、そちらをご参照ください。 通常のI/O 一般的に入出力処理を行う場合、処理が完了するまで制御が戻ってくることはありません。たとえば、インプットストリームでstream.read(bytes);と記述した場合、読み込みが終了するまでreadメソッドが戻ってくることはありません(例外が発生することはあります)。つまり、処理がブロックされるわけです。 入出力が高速に行われるのであ
VM:java1.4.2 OS:WindowsXp マルチスレッドのプログラムで、一つのファイルにテキストの出力を行うところで、うまくいかないところがあります。 <ソースファイル> import java.io.*; import java.util.*; import java.text.*; public class ThreadIppai { public static void main(String[] args) { for (int i = 0; i < 100; i++) { Thread thread = new ThreadHontai(); thread.start(); } } } class ThreadHontai extends Thread { public void run() { try { for (int i = 0; i < 500; i++) {
一つのJavaプログラムについて、処理をマルチスレッドで並行性を持つように記述し、複数CPU(マルチコア)上でそのプログラムを実行することにより並列処理を実現しようとした際、ログ出力が実行性能にどれだけ影響を及ぼすのかを把握したい、と考えています。 プログラムの開発(特にデバッグ)においては、ログが使えないと苦労します。ただし、ログを埋め込むと、性能に影響を及ぼします。また、ログレベルを抑制し、実際にはログ出力がなかったとしても、ログレベルの判定処理が動くことで、多少の影響はあります。 最近のログ出力ライブラリはスレッドセーフに作られていますが、それは内部で排他区間を持つことになるので、並列処理においては排他による性能への影響は無視できません。 そこで、同一プロセス内でマルチスレッドにより並行実行するプログラムを作成・実行し、複数スレッドからログを出力すると、実行性能にどれだけ影響を及ぼす
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く