タグ

javaに関するrryuのブックマーク (49)

  • macOS Sonoma 14.4にアップデートするとJavaがクラッシュするとオラクルが注意喚起。Appleシリコン搭載Macで

    macOS Sonoma 14.4にアップデートするとJavaがクラッシュするとオラクルが注意喚起。Appleシリコン搭載Macで オラクルは、Appleシリコン搭載のMacmacOS Sonoma 14.4にアップデートを行うと、Java 8以降のすべてのバージョンでJavaが予期せず終了する現象が発生するとして、Macユーザーに注意喚起を行っています。 今のところ回避策はなく、macOSをバージョンアップしてしまうと元に戻す簡単な方法もないため、Appleシリコン搭載のマシンでJavaを利用している開発者やユーザーは、この問題が解決するまでは最新のmacOSへの移行を延期することをオラクルは勧めています。 Javaが正常に動作しないことで、Javaに依存しているツールもmacOS Sonoma 14.4では動作しなくなります。Kotlinの開発元などで知られるJetBrainsは、J

    macOS Sonoma 14.4にアップデートするとJavaがクラッシュするとオラクルが注意喚起。Appleシリコン搭載Macで
    rryu
    rryu 2024/03/19
    HotSpotのエラーレポート用のSafeFetchという機能があり、とにかく任意のアドレスの値を読み込むというもので、アクセス違反でもエラーを返すだけなはずがSIGKILLを返すようになったのでそこで死ぬということらしい。
  • さよなら「あなたとJAVA」 - きしだのHatena

    みんなから愛された「あなたとJAVA」の役割が終わったようです。 「Java」で検索するとjava.comのサイトがひっかかるのですが、このサイトは古いまま放置されていて、Javaの学習を始める人にとっての罠になっていました。 https://www.java.com/ja/ 「あなたとJAVA」というキャッチコピーの脱力感と、「ダウンロー」で改行され「ド」だけが目立ってしまう間のヌケかたから大人気のサイトでしたが、かっこいいものではない・・・ もともとはJAVA+YOUで、2008年JavaOneのキャッチコピーでした。これは大文字だけのデザインだからよかったのだけど、日語訳するときJAVAだけ大文字で残ってしまい「JAVAではなくJava」の説得力をなくさせてくれていました。 それに、ほとんどの人がJavaのプログラミングの勉強をしようとして「Java」を検索するのにJREの配布サイ

    さよなら「あなたとJAVA」 - きしだのHatena
    rryu
    rryu 2022/05/25
    直訳風味とやる気を感じさせない見た目のせいであやしみが強すぎて「ここからダウンロードして」と言いずらいあのサイト、遂に変わるのか。
  • 「Java」に署名検証がフリーパスになってしまう危険な脆弱性 ~影響は計り知れず/2022年4月の「Critical Patch Update」で対策済み、最新版への更新を

    「Java」に署名検証がフリーパスになってしまう危険な脆弱性 ~影響は計り知れず/2022年4月の「Critical Patch Update」で対策済み、最新版への更新を
    rryu
    rryu 2022/04/24
    こんなテストしやすそうなもののテストコードが無いとは思えないのだが、両方ゼロというテストケースが漏れていたということなのだろうか。
  • Spring4Shell の任意コード実行でわかったことをまとめる!

    注意! こちらの記事は自分の解釈を多く含みます。 十分に注意し、念のため検証してから情報を利用してください! この記事の内容と対象 この記事では、以下の内容に触れます。攻撃原理をわかった範囲でまとめるので、なにかのお役に立てば幸いです。 Spring4Shellの脆弱性の全体像 なぜJDK9.0以上のみ限定なの? なぜtomcatで影響は受けているの?ほかは? 脆弱性の概要 SpringShell RCE vulnerability: Guidance for protecting against and detecting CVE-2022-22965 によると 以下の条件を満たしているときに 任意コード実行 につながると書かれています。 Running JDK 9.0 or later Spring Framework versions 5.3.0 to 5.3.17, 5.2.0 t

    Spring4Shell の任意コード実行でわかったことをまとめる!
    rryu
    rryu 2022/04/07
    SpringのモデルバインダはClassクラスからgetClassLoader()されるのは防いでいたが、Java9で増えたModlueクラスのgetClassLoader()に対応するのを怠っていたということらしい。Java9以前からあるものは同じ状態になっているかもしれない
  • 再び JNDI の脆弱性! ー H2 データベースコンソールにおける未認証のリモートコード実行

    プロローグ JFrog セキュリティ リサーチチームは、H2 データベースコンソールの脆弱性を公開し、クリティカルな CVE-2021-42392 が発行されました。この問題は、Apache Log4j の悪名高い Log4Shell(JNDI リモートクラスローディング)と同じ要因から来るものです。 H2 は、非常に人気のあるオープンソースの Java SQL データベースで、データをディスクに保存する必要がない、軽量のインメモリ・ソリューションを提供するものです。このため、Spring Boot などの Web プラットフォームから ThingWorks などの IoT プラットフォームまで、さまざまなプロジェクトで人気のデータストレージソリューションとなっています。com.h2database:h2 パッケージは、最も人気のある Maven パッケージのトップ 50 の一部であり、お

    再び JNDI の脆弱性! ー H2 データベースコンソールにおける未認証のリモートコード実行
    rryu
    rryu 2022/01/09
    接続文字列でJNDIが使えるという間違ってはいない使い方だと思うのだが、正しくて安全なJNDIの使い方ってどうすればいいのだろう。
  • log4jの脆弱性について

    log4jとはJava用のloggingライブラリだ。loggingライブラリというのはログとして記録すべき文字列を受け取り、それをどこかに出力するものだ。文字列の中身を通常のloggingライブラリは気にしない。 log4jが通常のloggingライブラリと違うのは、文字列の中身を見て、一部の文字列を変数とみなして置換することだ。これはlog4jのドキュメントではlookupと呼ばれている。 Log4jLog4j 2 Lookups 例えばプログラムを実行中のJava runtimeのバージョンをログに含めたい場合は、"Java Runtime: ${java:runtime}"などとすると、"Java Runtgime: Java(TM) SE Runtime Environment (build 1.7.0_67-b01) from Oracle Corporation"などの

    rryu
    rryu 2021/12/11
    JNDIのLDAPサービスプロバイダにはエントリからJavaオブジェクトを取り出せる仕様があって、ログメッセージのメタ表記としてJNDIも参照できるようにしていたら罠に嵌まったという感じっぽい。
  • TOMCAT殺害事件 - Qiita

    OOMKillerの殺意 顧客EC2のTomcatがアクセスの無い早朝にもかかわらずOOMKillerに突然殺されてしまったので、調査した顛末をたぶん同じような問題に直面されている方もおられるかと思いますので備忘録として記載します。 Javaヒープのチューニングにも多少役立つかと思います。 (この記事はJava8が対象となります。) OOMKillerとはOut of Memory時に、サーバ全体を守るためにメモリーを消費しているプロセスを停止するLinuxの標準機能です。 そのOOMKillerになんとTomcatが突然殺害されてしまいました。 問答無用の辻斬り状態です。 早朝ですのでアクセスログには何も記録されておらず、catalina.outには OpenJDK 64-Bit Server VM warning: Setting LargePageSizeInBytes has no

    TOMCAT殺害事件 - Qiita
    rryu
    rryu 2020/01/10
    世の中にはちゃんとメモリ使用量の見積もりをして設定していないサーバが多いという…
  • ArrayListじゃなくListを使うという話 - 日々常々

    具象型ではなく抽象型で扱え、インタフェースを使え、みたいなお話に対して。 前置き Javaの話。他の言語だと話は変わります。 「こうするのが絶対的に正解」と言うものではありません。私の現在の選択の説明です。明日になったら違うこと言ってるかも。 主な登場人物は掲題の java.util.ArrayList および java.util.List、そして java.util.Collection と java.lang.Iterable です。 こんな世界観。他のインタフェースやクラスもたくさんありますが、この話の筋では無いので触れません。 前提として以下を置いています。 フレームワークやライブラリではなく、一つの業務アプリケーションに閉じた話です。ゆえに不特定多数から使われる型ではなく、影響を与えるコードは全て目が届く範囲にあるものとします。 計算量は別の話です。扱うドメインにもよりますが、

    ArrayListじゃなくListを使うという話 - 日々常々
    rryu
    rryu 2019/08/11
    List以上の抽象化は誰も使っていないのでヤバい存在になってしまうというのは分かるが、ローカル変数でいきなりArrayListからListにキャストして型の能力を捨てるのは理解できない。
  • 「今後必要になるプログラム言語」を読むに当たって - Qiita

    今後必要になるプログラム言語を読む前提知識 時代背景と当時の知識がないと読むのが非常に難しいので、僕の知っている範囲内の前提知識を書いておこうと思います。 当時の背景 当時というのは、ここでは 2000 年前後の Java 黎明期を指します。 僕個人で言えば PostPet 2001 などの開発に携わっていた頃のことです。 この少し前にインターネットの世界ではウェブブラウザが誕生しました。 そして、元々はセットトップボックス用に開発された言語 Java (Oak と呼称されていた)も開発されていました。 誕生間もない Java と誕生間もないウェブブラウザが出会うのは必然だったかもしれません。 この2つが出会ったことで、ウェブブラウザ上に動的なコンテンツを表示する Java Applet という技術が誕生しました。 Netscape Communications と Sun Microsy

    「今後必要になるプログラム言語」を読むに当たって - Qiita
    rryu
    rryu 2018/11/07
    LiveConnectとかなつい。
  • Javaはなぜ変わらなくてはならなかったのか。JavaOne改め「Oracle CodeOne」の基調講演で語られた理由。Oracle CodeOne 2018

    Javaはなぜ変わらなくてはならなかったのか。JavaOne改め「Oracle CodeOne」の基調講演で語られた理由。Oracle CodeOne 2018 米オラクルがOracle OpenWorld 2018と同時開催していたイベント「Oracle CodeOne 2018」は、昨年までJavaOneとして開催されていたイベントです。今年から「CodeOne」と名称が変わりました。 このイベントがJavaデベロッパーにとって最大のイベントであることに変わりはありません。初日の基調講演は「 The Future of Java Is Today」としてJavaの最新動向と今後が紹介されました。その内容をダイジェストで紹介しましょう。 Javaが迎えた変化の理由とは Javaと言えばこの人。米オラクルJava Platform Groupチーフアーキテクト Mark Reinhold氏

    Javaはなぜ変わらなくてはならなかったのか。JavaOne改め「Oracle CodeOne」の基調講演で語られた理由。Oracle CodeOne 2018
    rryu
    rryu 2018/10/29
    「Oracleはこれまで商用版で提供していた主要な機能をすべてオープンソース化した」ということはもう有料なのはサポートくらいしか無いのか。
  • Javaは今も無償です

    Oracle JDKの配布とサポートが少し前に変更され、Oracle JDKやオラクルのOpenJDKビルド、他プロバイダのOpenJDKビルドを利用する際の権利に関して不透明なところが少なからずあります。無償アップデートや (新規と既存の) 有償サポートモデルがさまざまなベンダから提供される予定もあり、検討の余地があります。このドキュメントには要約バージョン と全詳細がある詳細バージョンのセクションがあります。 要約バージョン今もOracle JDKやオラクルのOpenJDKビルド、他プロバイダのOpenJDKビルドを無償で取得できます (このニュアンスについては以下のコラムや以降のセクションを読んでください)。これは複数のプロバイダがJava SE仕様の実装を提供するからこそ可能となっているのです。 Java SE / OpenJDK / オラクルのOpenJDKビルド / Oracl

    Javaは今も無償です
    rryu
    rryu 2018/10/10
    無償のバイナリ配布は今後も存在するが、プロバイダやバージョンによっては有償サポートが必要になることがあるという感じっぽい。
  • Java11のサポート - Java

    無料で使いたい人向けの結論 AdoptOpenJDKから入手しよう サポートとは? よくあるサポート バグの修正 セキュリティ対応 上記を含むバイナリ(インストーラー)の提供 よくある有償サポート 故障時の解析・修正 コンサル 「有償サポート」は契約内容によって千差万別なので契約書を読みましょうに尽きる。「よくあるサポート」は一定期間であれば無償提供もあるが、そのJavaを提供する企業や団体によってそれぞれ異なっている。 OpenJDK Javaのオープンソース実装。コミュニティはソースコードを公開して開発も行っているがバイナリを提供していない。 Java 11の開発は現時点(2018/9/25)での最新情報では3年間の予定(≒次のLTSであるJava 17リリースまで)[ソース]。 OpenJDKをビルドして提供している企業・団体例 かなり乱暴に言うと(少なくともコミュニティが開発を続け

    Java11のサポート - Java
    rryu
    rryu 2018/10/07
  • JDK 11で2つメソッドが削除されてHTTP Clientが正式に入る - きしだのHatena

    JDK9でincubatedでJDK10でもincubatedなHTTP Clientが、ようやくJDK11でjava.net.httpパッケージで入るらしい。 JDK HTTP Client - JEP 321 - Update あと、 1.2からDeplicatedだったrunFinalizersOnExitメソッドが削除される。Runtime.runFinalizersOnExitとSystem.runFinalizersOnExit。 (11) RFR JDK-8198249: Remove deprecated Runtime::runFinalizersOnExit and System::runFinalizersOnExit Java 9でforRemoval=trueになってますね。 https://docs.oracle.com/javase/jp/9/docs/api

    JDK 11で2つメソッドが削除されてHTTP Clientが正式に入る - きしだのHatena
    rryu
    rryu 2018/02/22
    最短1年でメソッドが削除される可能性があるって、外注主体のSIerはもうついていけないのでは。
  • 軽い気持ちでLinkedListを使ったら休出する羽目になった話 - Qiita

    ざっくり言うと リスト構造のデータに対してランダムアクセスはしちゃだめだぞ。お兄さんとの約束だ! 発端 数年前に他部署の支援で作ったJavaのシステムに、ちょっとデカめのデータを突っ込んだらありえないほど遅いので助けてくれ、と連絡が入った。 まぁクエリとかインデックスをちょっと見れば直るっしょ・・・と鼻をほじりながら支援に向かった。 処理内容 遅い部分の処理は以下のようなものであった。 処理対象のデータをListで受け取る。 それをforループで1件ずつ前処理する。 処理結果をオブジェクトに格納し、ORマッパーでDBにINSERTする。 これだけ? そう、これだけだ。並列処理なんて高級なことはもちろんやってない。 インフラ調査 処理中のサーバのようすを調査する。今回のインフラは典型的な3層3サーバ構成。 WEBサーバはなにもかもが余裕。 APサーバではCPUを1つ使い切っている。 14コア

    軽い気持ちでLinkedListを使ったら休出する羽目になった話 - Qiita
    rryu
    rryu 2018/02/19
    定義はLisr<T>だけど実装上はArrayList<T>を期待しているというやりがちなやつだ。
  • study-struts2-s2-054_055-jackson-cve-2017-7525_cve-2017-15095/README.md at master · SecureSkyTechnology/study-struts2-s2-054_055-jackson-cve-2017-7525_cve-2017-15095

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    study-struts2-s2-054_055-jackson-cve-2017-7525_cve-2017-15095/README.md at master · SecureSkyTechnology/study-struts2-s2-054_055-jackson-cve-2017-7525_cve-2017-15095
    rryu
    rryu 2017/12/05
    PerlにもYAML内で指定した任意のクラスにマッピングしてくれるYAMLライブラリがあったけど、問題にならなかったのは通信に使うようなフォーマットではなかったのが大きいのだろうか。
  • Javaの謎のパフォーマンス劣化現象との戦い - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。アプリケーション基盤チームの横田です。 Javaの謎のパフォーマンス劣化にまつわる調査をしていたのですが、1ヶ月の苦労の末に原因がわかりましたので、報告させていただきます! 公開後に頂いたはてなブックマークでのご指摘・社内でのタイポ・読みにくいなどの指摘を受けてたので、謹んで修正させいただきます。 修正した内容につきましては、記事の最後を参照してください。 忙しい人のためのまとめ jdk-7u4以降のjdk-7 *1 でJavaのパフォーマンスが劣化する謎の現象 CodeCacheの容量限界に近づくとJITコンパイラを停止してコンパイルしたコードを捨てる機能が原因だった 起動オプションで回避できるので、長期運用するときは -XX:-UseCodeCacheFlushing, -XX:ReservedCodeCacheSize=128m をつける 上のオプションを設定した時に、C

    Javaの謎のパフォーマンス劣化現象との戦い - Cybozu Inside Out | サイボウズエンジニアのブログ
    rryu
    rryu 2016/04/13
    いまいちはっきり書かれていないけど、CodeCacheFlushingがオンの時にCodeCacheのサイズが不足するとキャッシュ破棄→再コンパイルのループが発生して遅くなるということなのだろうか。
  • Java SE 8のラムダ式はどう実現されたのか?──実装の経緯、内部的な仕組みを理解する - builder by ZDNet Japan

    Java SE 8で導入されたラムダ式は、どのような仕組みで実現されているのだろうか? ラムダ式をより深く理解したいと考える読者にとって、これは気になるテーマの1つだろう。その秘密をお教えしよう。 Java SE 8で導入されたラムダ式は、Javaの言語仕様の歴史において最大級の変更だとされている。ただし、これはあくまでもJava言語の文法レベルの話であり、Javaプログラムを実行するJava仮想マシン(JVM)に新たな仕組みが導入されたわけではない。つまり、言語仕様に関する旧バージョンとの相違はコンパイラとランタイムが吸収し、バイトコードレベルでの互換性は保たれているということだ。 それでは、このような大きな変更を、既存のJVMの仕組みの中でどのように実現したのだろうか。それを知ることは、ラムダ式をより深く理解する手助けとなるかもしれない。Java SE 8のラムダ式実現の経緯と仕組みに

    rryu
    rryu 2016/02/16
    invokedynamicを使ってラムダ式の実行方法の仕様の決定を先送りする技か……
  • 【セキュリティ ニュース】Java SEにあらたな脆弱性、旧版は完全に削除を - 不正サイト誘導に注意(1ページ目 / 全1ページ):Security NEXT

    今回あきらかになった脆弱性「CVE-2016-0603」は、Windows上で動作する「Java 8 Update 71」および「同8 Update 72」「同7 Update 95」「同6 Update 111」に存在。インストールのプロセス時に悪用が可能となるという。CVSS 2.0のスコアは「7.6」。 具体的には、悪意あるサイトなどへ誘導し、「Java」のインストールに見せかけて、インストールより前に不正なファイルをダウンロードさせることが可能となるという。複雑な手順を踏む必要があるものの、攻撃が成功するとシステムの制御を奪われるおそれがある。 同社は、今回の脆弱性についてインストール時のみ影響を受けるものであり、脆弱性へ対応するためのアップデートは不要と説明。 しかしその一方で、旧バージョンユーザーに関しては、旧バージョンを確実に削除し、正規サイトを通じて「同 6 Update

    【セキュリティ ニュース】Java SEにあらたな脆弱性、旧版は完全に削除を - 不正サイト誘導に注意(1ページ目 / 全1ページ):Security NEXT
    rryu
    rryu 2016/02/08
    Windows版のインストーラに脆弱性があるということなんだろうか。
  • スポンサのオファーなしでのJavaのインストール

    サード・パーティのスポンサのオファーなしでJavaをインストールするにはどうすればよいですか。 このトピックは、次に当てはまります。: プラットフォーム: Windows 7, Windows 8, Windows Vista, Windows XP, Windows 10, macOS Javaバージョン: 7.0, 8.0 Javaのリリースによっては、ユーザーがインストールできるサード・パーティのスポンサのオファーが提示されます。Javaのインストール時にサードパーティのスポンサのオファーが提示されないようにするには、2つの方法があります。 オプション1: Javaコントロール・パネルで無効化する(推奨方式) オプション2: 特定のコマンド・プロンプト方法でJavaをインストールして無効化する オプション1: Javaコントロール・パネルでスポンサを無効化する(推奨方式) Java

    rryu
    rryu 2015/02/13
    あの罠っぽいあれってオフにできるんだ。
  • 恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、ミドルウェア開発チームの青木(@a_o_k_i_n_g)です。将来の夢は川口浩探検隊に入ることです。 先日、弊社のアプリケーションサーバーで大量にメモリを消費するという現象に遭遇しました。アクセス頻度の低いサーバーがメモリを大量消費するという謎深いものでした。 発生当初の状況はこんな感じです。 アプリケーションサーバーでは Jetty が稼働 現象が発生した JVM は 5GB 程度のメモリを消費しており、明らかに通常ではない量のメモリを消費している 複数台のサーバーで発生していたが、全てで発生したわけではない。 また、発生したサーバーはいずれもアクセス頻度が少ないサーバーだった。 ヒープ、パーマネント、スタック ひとまず、JVM でトラブルが発生した時は何はともあれヒープダンプとスレッドダンプを見るに限ります。各種情報の取得をインフラ部隊へ依頼し、得られたヒープを解析すると、

    恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ
    rryu
    rryu 2015/02/03
    7GBのメモリダンプの解析か…