kdnakt blog

hello there.

Java

IntelliJのGradleタスクがOne of setGitDir or setWorkTree must be called.というエラーで異常終了した

1年ぶり2度目の遭遇です(泣)。 kdnakt.hatenablog.com [発生事象] [調査・解決] [まとめ]

今週気になったTLS関連のニュース

2023年4月3日~2023年4月9日に読んだ中で気になったニュースとメモ書き(TLSらじお第100回の前半用原稿)です。 [Levchin Prize 2023] [CloudflareのmTLSバグ] [OCSPレスポンスのSCT] [その他のニュース] ▼e-Tugra認証局のその後 ▼BoringSSLのKyber対応 ▼IPA…

今週気になったTLS関連のニュース

2023年3月27日~2023年4月2日に読んだ中で気になったニュースとメモ書き(TLSらじお第99回の前半用原稿)です。 [TLS WG 116概要] [TLS WG 116 TLS1.2非推奨について] [CRYPTREC暗号リスト改定] [その他のニュース] ▼Bulletproof TLS Newsletter #99 ▼Keyles…

Gradleでコンパイル時の文字コードを指定する(Kotlin DSL版)

大した内容じゃないんだけどメモ。 [Gradleプロジェクトの文字化け] [コンパイル時の文字コード指定] [まとめ]

KotlinのGradleプロジェクトにJavaコードを同居させる

何となく実験してみたのでメモ。 [やりたいこと] [やってみた] [まとめ]

GradleタスクがOne of setGitDir or setWorkTree must be called.というエラーで異常終了した

2022年7月に新しいPCをセットアップしたときに、GradleのKotlinプロジェクトがビルドできなくてハマったのでメモ。だいぶ時間が経ってしまったが...。 [JGitのエラー] [デバッグと解決策] [JDK 1.8.0_342の問題] [まとめ]

VS Codeのlaunch.jsonでvmArgsをいい感じに設定する

VS CodeでJavaアプリを開発していて困ったのでメモ。 [vmArgs多すぎ問題] [vmArgsを配列で設定する] [まとめ]

Kotlinのクラス初期化ブロックをデコンパイルしてみた

久々にKotlinを触ったのでメモしておく。 [初期化ブロックとの再会] [初期化ブロックの挙動] [デコンパイル結果] [まとめ]

VS CodeでJUnitを実行しようとしたら謎のエラーが出た

久しぶりにLeetCodeをJavaで解いていたらVS Codeがエラーを吐いたので、解決した手順をメモしておく。 [発生したエラー] [拡張機能のバージョン問題] [まとめ]

AWS Systems Manager Run CommandでFargate上のSpring Bootコンテナのスレッドダンプを取得する

とある事情で、AWS Fargate上で稼働しているSpring Bootコンテナのスレッドダンプを取得する必要があった。いくつか詰まる所があったのでメモしておく。 [Fargate上のコンテナでコマンドを実行したい] [SSMエージェントのセットアップ] [Spring Bootアプリの…

Amazon DynamoDBのデータ型とJava SDKのAttributeValue

DynamoDBのJava SDKにあるAttributeValueクラスを操作しようとして、挙動を忘れていることが稀によくあるのでメモしておく。 [DynamoDBのデータ型とAttributeValueクラス] [異なるデータ型のメソッドはnullを返す] [まとめ]

JavaでHTTPS通信時のSSL証明書の失効チェックを有効にする

HTTPS通信を行う際に利用されるSSL証明書の失効チェックについて、質問されてデフォルトの挙動を即答することができなかった。 Javaで失効チェックを利用するための設定方法を調べたのでまとめておく。 [SSL証明書の失効チェック] [デバッグログで見るOCSP/C…

mvn test を実行したら SurefireBooterForkException が発生した

最近、JavaでLeetCodeを解いている。と言ってもEasyレベルのものばかりだけれど。 leetcode.com 問題を解く途中でエラーに遭遇したので、顛末をメモしておく。 [Mavenプロジェクトの構成] [発生した例外] [解決方法] [まとめ]

Java 8とJava 11でJAVA_TOOL_OPTIONS環境変数の挙動が異なる

先週の以下の記事で未検証に終わった部分を検証してみた。 kdnakt.hatenablog.com [JAVA_TOOL_OPTIONS環境変数とは] [Java 8での挙動] [Java 11での挙動] [まとめ]

AWS LambdaにデプロイしたJavaアプリケーションでユーザー定義システムプロパティを参照する

以下のQuarkusを利用したプロジェクトのソースコードを読んでいてなるほど、と思ったので調べたことをまとめておく。 [Javaのシステムプロパティ] [AWS Lambdaと環境変数] [環境変数JAVA_TOOL_OPTIONS] [AWS Lambda (Java 8)の動作確認] [まとめ]

会社でKotlin勉強会(第23回)を開催した

今週は第23回を開催しました。 前回の様子はコチラ↓ kdnakt.hatenablog.com [第23回の様子] [学んだことや疑問点] [まとめ]

Java 11の単一ファイル実行をRemote - Containers上でshebangとして実行してみた

またまたRemote - Containersの話です。今回はJava。 [Remote - Containersを使う動機] [Java 11コンテナのセットアップ] [単一ファイルの実行] [shebangとしてのJava実行] [まとめ]

会社でKotlin勉強会(第22回)を開催した

今週は第22回を開催しました。 前回の様子はコチラ↓ kdnakt.hatenablog.com [第22回の様子] [学んだことや疑問点] [まとめ]

会社でKotlin勉強会(第21回)を開催した

今週は第21回を開催しました。 前回の様子はコチラ↓ kdnakt.hatenablog.com [第21回の様子] [学んだことや疑問点] [まとめ]

Javaで利用できるCron式を集めてみた

cron-utilsというJavaのライブラリがあり、様々なスタイルでCron式を定義することができる。 Quarkusのschedulerエクステンションで利用されていたので、それぞれのスタイルの特徴をまとめてみた。 github.com [Unixスタイル] [cron4jスタイル] [quartsスタ…

PowerMockitoでテスト中にjava.lang.IllegalStateException: Reason: [source error] に遭遇した

Javaでテストを書いていて、System.currentTimeMillis()というおなじみのメソッドをモックしようとしたら例外が出たのでメモしておく。 [前提条件] [発生した問題] [修正方法] [まとめ]

2019年の振り返りと2020年の抱負

2010年代が終わった。就職して、家族ができて、色々あった10年だった。 それはともかく、1月中に2019年の振り返りを済ませておく。 [2019年の振り返り] [2020年の抱負] [まとめ]

QuarkusのMailerエクステンションを利用してメール送信機能を実装する

2019年末にQuarkusと和解し、ようやくAWS Lambda上からネイティブコンパイルしたJavaアプリでDBのデータを取得できるようになった。 その後は公式サイトのガイドを参考に、カバレッジの取得方法とか、設定ファイルの使い方とかを学んでいる。 quarkus.io 今…

【完結編】QuarkusでネイティブコンパイルしてLambdaとDynamoDBを連携する

2019年3月のQuarkus公開から、AWS Lambda上でQuarkusでネイティブコンパイルしたJavaアプリを動作させるべく戦いを繰り広げていた。今回ようやくDynamoDBとの連携を実装することができた。 [これまでの戦いの歴史] [vert.xのエラー] [HTTPS通信の罠] [Java 8…

QuarkusでAWS LambdaとAmazon DynamoDBを連携する

この記事はAWS LambdaとServerless #1 Advent Calendar 2019の15日目の記事です。 qiita.com [やること] [QuarkusでDynamoDBを利用する] [DynamoDBクライアントとネイティブコンパイル] [Lambda: Java 8ランタイム] [Lambda: カスタムランタイム] [まとめ]

JavaでジェネリクスのClass(型パラメータ)を取得する

先日のJacksonの件の続き。ジェネリクスを利用している場合に型情報が上手く取得できずに悩んだのでメモしておく。 kdnakt.hatenablog.com [やりたいこと] [コンストラクタでClass型を渡す] [Class#getGenericSuperclass()を利用する] [Spring Frameworkを利…

JavaでJacksonを利用してJSON文字列をコレクション型オブジェクトに変換する

JavaでJSONデータ変換をするときに使うJacksonというライブラリのAPIをちゃんと調べたら、ちゃんといい感じの使い方があったのを見つけたのでメモ。 [Jacksonとは] [文字列をオブジェクトに変換する] [コレクション型のオブジェクトに変換する] [まとめ]

PowerShellでmavenコマンド実行時にシステムプロパティが認識されない

spring.io Spring Frameworkを利用したアプリケーションを開発している(正確にはSpring Bootだ)。諸事情により、開発にはEclipseベースのSpring Tool Suite 3を利用していたが、公式サイトではVS Codeにも対応したSpring Tools 4が案内されて久しい。JavaS…

maven-download-pluginでjava.io.StreamCorruptedException: invalid stream header: 00000000が出たときの対処法

とりあえず使ってたmaven-download-pluginが1.2.0と古かったので、1.4.0にバージョンアップしたら直った。 詳細な発生条件や原因はちゃんと調べられていないが、覚書としてメモしておく。 [前提条件] [問題の詳細] [解決策] [まとめ]

Amazon DynamoDBとDynamoDB LocalのBillingModeに関するAPI仕様差分

既存コードで利用するAWS SDK for Javaのバージョンを適当に最新版にしたときに、DynamoDB Localと本物のAmazon DynamoDBのAPIの動作が違っていたせいでバグチケットを起票される羽目になった話。 [DynamoDB Localとは] [DynamoDB Localの注意事項] [DynamoD…