2012-04-18 12 views
0

NettyとJava5との互換性の問題を発見しました。 Java 5の "String"クラスは、 "Charset"クラスを使用して文字セットを指定することをサポートしていませんが、文字列(たとえば、コンストラクタ、getBytes)で表される文字セット名でのみサポートされます。私は、少なくとも2つの異なる場所を見てきましたNetty 3.3.xとJava5との互換性が損なわれる

  • "QueryStringDecoder" 行の行で380
  • "WebSocketServerHandshaker13は" 22

Javaで実行されるコードブレーク5環境

短時間でJava 6にアップグレードできないが、Netty 3を使用する必要がある人には、問題を修正する3.3.2ビルドを使用できますか.3.x?それはアウトになると

おかげ

+0

なぜ3.4.xにアップグレードできないのですか? –

+0

「UnsafeDetectionUtilで小さなパッチを適用する」という「Unsafe」クラスの使用を無効にするために、自分でnettyをコンパイルしています。これは、現時点ではアップグレードできないVMで重大な問題が発生するためです。しかし、Java7コンパイラが必要なために3.4ブランチをコンパイルできないので、パッチ適用後に3.3ブランチをコンパイルします(Java5の文字セットバグを修正します)。あなたがUnsafeクラスの使用を無効にする他のトリックを知っているなら、私は3.4ブランチをアップグレードすることに非常に満足しています。別の方法として、Unsafeを無効にすることを許可する3.4バージョンをリリースすることを検討することは可能ですか? –

+0

最新の3.4.xコードベースでは、安全でない場合には無効にするようにフォールバックしています。これは週末にうまくいけば、3.4.1としてリリースされる予定です。 Java 7はコンパイルのためだけに必要ですが、実行時にjaaバージョンに基づいて機能を無効/有効にするため、java5で実行することができます –

答えて

0

はnetty-3.4.1.Finalにアップグレードしてください。 Unsafeの使用を無効にすることもサポートしているので、すべての問題が修正されます。起動スクリプトに "-Dorg.jboss.netty.tryUnsafe = false"を追加するだけです。

関連する問題