Struts1の脆弱性問題(S2-020)に対処するために、commons-beanutils.jarを修正する方法を我々が採用したことは、先日の記事 で述べた通りだ。 この作業を行う中で、jakarta-struts-1.1が使っているcommons-beanutils.jarのソースコードを取得する際に混乱が…
ストリームの生成方法についてまとめる。 ストリームを作成するAPIはコレクションなどの既存のクラスのいくつかに追加されており、Streamのstaticメソッドにもストリームを生成する手段が提供されている。 また、Streamの要素走査の中心的な役割である Split…
Apache Struts 1の脆弱性問題の対処方法を紹介する。 この問題は、4月24日に株式会社ラックによって以下のように報告された。 http://www.lac.co.jp/security/alert/2014/04/24_alert_01.html ServletFilterによる対処では、multipart/form-dataに対応できな…
Java8のFunctionインターフェースに提供されている関数の合成を試してみた。提供されている関数はcomposeとandThenの2つである。 関数の合成の処理はとても簡単だ。Java8のFunctionインターフェースの実装を見ると、処理はたった2行で実装されている。nullチ…
GWT(Google Web Toolkit)でWaitingPanel(ウエイティングパネル)を作成する方法を紹介する。 GWTは、サーバ通信にGWT-RPC(GWTリモート・プロシージャ・コール)を使用している。GWT-RPCではAjaxを利用して非同期通信を行うため、リクエストをサーバへ送信…
Java 8 Stream API の中間操作の種類・並列処理・それらの注意点についてまとめておく。 プリミティブ型のStream 中間操作のメソッドを見ると、mapの他に、mapToInt,mapToLong, mapToDoubleのような、プリミティブ型への変換を行うメソッドがある。 また、 S…
先日の記事では、Stream APIの基本的な仕組みを書いた。今回はサンプルコードとして、ピタゴラス数を生成する処理をStreamで書いてみる。 ピタゴラス数とは、三平方の定理でおなじみの a * a + b * b = c * c を満たす自然数の組のことだ。 最初のピタゴラス…
Java8で導入されたlambda。このlambdaのオブジェクトがどの単位でインスタンス化されるかが気になったので試してみた。 というのも、lambdaのオブジェクト生成はJavaVM側の制御に任されているため、どのような単位でオブジェクトが生成されるのか純粋に興味…
Java8で新たに提供されたStream APIの基本をまとめておく。 (今回は並列処理機能については割愛する。) 概要 Stream API はJava8から追加されたAPIであり、高機能な繰り返し処理を記述できる。同じくJava8から追加されたラムダ式の使用を前提としている。 …
Java8関連のリンクを整理してみる。[まとまった情報がある公式サイト]http://docs.oracle.com/javase/8/[What's New in JDK 8]http://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html[Java8チュートリアル]http://docs.oracle.com/javase/…