Java
タイトルの通りです。 昨日はBOOLEAN型に関するバグを見つけましたが、今度はTIME型です。 00:00の値のときだけNULLになります。 原因はわかっていませんが、軽くデバッガで見てみたところ、当該カラムの値はサーバからのレスポンスがゼロバイト配列になって…
ちょっと前にConnector/Jが1.3.0にアップデートされたのですが、とたんにTINYINT(1)のカラムの値を正しく取得できなくなりました。 MySQLはBOOLEANをTINYINT(1)の別名として扱います。アプリケーションから見たらこのカラムはBoolean型です。 で、Connector/…
昨日の記事の続きです。 昨日はcommons-collectionsについて、どのような仕組みで攻撃が成功しうるかを書きました。 しかしこの問題はcommons-collections限定ではなく、GroovyまたはSpringFrameworkのクラスをロードしている環境でも起こりえます。 攻撃が…
2015-11-12 追記あり。「SpringとGroovyにも直列化オブジェクト脆弱性」も参照してください。 昨日からJava界隈で話題になっているcommons-collectionsの脆弱性について。 元ネタはこちら。 対応するチケットはこちら。 InvokerTransformerなんてクラスは初…
Maven CentralにJavassist-3.19.0が登録されていたので、早速試してみたところ、この有り様。 Caused by: java.lang.VerifyError: Illegal type at constant pool entry 417 in class com.zaxxer.hikari.proxy.PreparedStatementJavassistProxy Exception De…
javacのバグのせいでずっとJDK1.8.0_20以降へ乗り換え出来ずにいたわけですが、 (参考: http://takahashikzn.hatenablog.com/entry/2014/10/15/204657 ) とうとう諦めて、このバグを回避するようソースを全面的を書き換えることにしました。 書き換えた内容…
言葉は違えども、考えていることは全く同じ。 何のことかというと、これ。http://www.infoq.com/news/2014/11/lang-ext-csharp-functional-exts http://github.com/louthy/language-ext このライブラリ、僕が作ったIndolentlyにソックリなんです。 関数名も…
CheckStyle-5.9がリリースされています。リリースノートはこちら。http://checkstyle.sourceforge.net/releasenotes.html 5.9での最大の変更点は、このバージョンからJava8の文法に対応したことです。 早速、ラムダ式だらけのソースに対してチェックを試して…
Java8u25がリリースされています。が…!!!以前書いたコンパイラのバグ*1は依然として解消されず。 バグパレードを検索したら、まさに同じ問題が登録済みでした。コレ。 http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8056984 Java8u20から導入された…
以前、こんな記事(と言ってもほとんど意訳だけ)を書きました。 実はStringはメモリリークの原因だった(※1.7.0_06未満) 上記記事の要約は、 Java7u06より前のバージョンでは、String.substringなどで文字列を切り出す際に元の文字列の内部表現であるchar配列…
いつの間にかJDK8u20がリリースされていたので更新しました。すると、 コンパイラで例外が発生しました(1.8.0_20)。Bug Paradeで重複がないかをご確認のうえ、Java Developer Connection (http://java.sun.com/webapps/bugreport)でbugの登録をお願いいたし…
http://github.com/checkstyle/checkstyle/issues/10 みんなが「無いとムリ!!死ぬ!!」と、一斉唱和したおかげで、作者の方も最優先で対応することを決めた模様です。
長いベータ版の期間を経て、とうとうTomcat8がリリースされました。 僕は既にTomcat8のベータ版を業務で使っていましたが、 商用環境で数ヶ月間の連続運用を行っている現在、大きな問題は出ていません。 横着したでござるの巻 ところで一つ、解せないことが…
http://java-performance.info/string-switch-performance/こちらより。 最後のまとめだけ書くと、 Summary String switch in Java 7 is implemented using a fixed size map with a number of slots close to 20. This means that you can freely use it in…
CheckStyleがlambdaの構文に対応していないので、最新版をソースからビルドしてみることに。 antもEclipseのプラグインも、checkstyle本体だけでなく依存ライブラリも含めた全部入りのJarを要求するため、 単にmvn installではダメです。checkstyle本体のJar…
僕は強力にタイプチェックのかかる環境で開発するのが好きです。 Javaではできるだけキャストを排除するのは当然として、JSを書くときもclosure-compilerのアノテーションでタイプセーフに書くようにしています。 詳しくはこちら。 http://developers.google…
ウチもそろそろMariaDBへ乗り換えを始めているのですが、 JDBCドライバがmaven repoに未登録だったことに若干の不便を感じておりました。でも、それももう過去の話。https://mariadb.atlassian.net/browse/CONJ-3 http://search.maven.org/#search%7Cga%7C1%…
[2014-03-25追記] インスタンスフィールドなら、finalであってもリフレクションで変更できました。 以下の話は、static finalなフィールド限定です。 昔はどうだったか知りませんが、少なくともJava7ではリフレクションを駆使してもstatic finalフィールドの…
先日の日記で書いた、Spring-4.0.0でStackOverFlowが出る件ですが、 早速FIXされた模様です。 っていうか、リリースされて数時間後に早速、バグチケット切られとるやん。。。 うーむ、そんなニッチな使い方してたっけ、僕? spring-4.0.1のリリースはよ。 ht…
InfoQから。http://www.infoq.com/news/2013/12/Oracle-Tunes-Java-String Stringのような基本型に大きな仕様変更が入ることは稀ですが、 1.7.0_06でアグレッシブな変更が入ったらしいです。 以下、適当和訳。 In an ongoing effort to improve Java perform…
…しかしStackOverflowで動かなかった!!(ドラクエ風に) ... at org.springframework.core.ResolvableType.hashCode(ResolvableType.java:693) ~[spring-core-4.0.0.RELEASE.jar:4.0.0.RELEASE] at org.springframework.util.ObjectUtils.nullSafeHashCode(…
Tomcat8もそろそろリリースですね。いまRC5です。 後になって泣きを見ないよう、アプリを乗っけて動作試験を始めたところなのですが… とにかく動作が遅い。とても常用には耐えない感じです。 レスポンスが30秒間返ってこないとか、ザラ。 一体何が起きている…
XmlValueDisconnectedException。 POIでOOXMLを使う際、避けては通れない関門のようです。 僕の環境でも、いつの間にか発生するようになってしまいました。 単にCell#getCellStyle()を呼んでいるだけなのに発生する始末。というわけで、半日かけて原因調査で…
2014-04-23追記 昨今の状況を鑑みるに、新規案件でのStruts2の採用は余りお勧めできないと言わざるを得ません。 僕はStruts2およびOGNLのソースコードを実際に読み込んだ上で、自分で危険と判断したところは独自でパッチを当てているため、報告されているよ…
※Rhinoのバージョンは1.7R4です。 ウチの製品であるMOD99は、いくつかの箇所で式言語としてJavascriptを採用しています。 例えば帳票生成において、サーバーサイドで計算しなければならない導出値(代表例: 何らかの集約値)を出力したいときなど。 帳票をダウ…
HttpSessionが永続化ならびに活性化されるイベントを拾いたくなりました。 具体的には、HttpSessionに入れた値の幾つかを、永続化時に削除したいという要求です。 で、HttpSessionActivationListenerというのを使えばいいということが判明したのですが、 グ…
デバッガーを使う場合は、デバッグモードで起動します。コレ当たり前。 で、デバッグモードで起動したかどうかで、アプリの振る舞いを変えたい場合があります。 例えば、処理のタイムアウトをやめる等。デバッグモードだとありとあらゆるモノが遅くなるから…
ウチの製品であるMOD99に、Excel帳票出力の機能を付けることになりました。 (これまではCSV+VBAで乗り切っていた) 今更かよって?ハイ、今更です。 サボってました。スイマセン。 コレまでずっと避けていたPOIをとうとう使うはめに… で、実際使ってみると…
なんと4.8.1から49.1へスーパー進化!! …と言うと機能がすごく増えたように見えますが、 最近流行りのラピッドリリースを採用した模様です。 最初見た時、ドットを付け忘れたのかと思ったよw ナンバリングについては詳しくはこちら。 http://userguide.icu…
久しぶりにJavaMailをゴニョゴニョやってますが、 近頃は添付ファイルのファイル名がマルチバイトでも苦労しないで済むんですねぇ。単に、 static { System.setProperty("mail.mime.encodefilename", "true"); System.setProperty("mail.mime.charset", "UTF…