ClassNotFoundException: kotlin.collections.EmptyList or IMQException during GemFire Server Region Index Evaluation
search cancel

ClassNotFoundException: kotlin.collections.EmptyList or IMQException during GemFire Server Region Index Evaluation

book

Article ID: 451641

calendar_today

Updated On:

Products

VMware Tanzu Data Suite VMware Tanzu Gemfire

Issue/Introduction

Following client application upgrades (e.g., to Java 21 or Spring Boot with Kotlin dependencies), GemFire server nodes fail or throw high-frequency errors during region query or index evaluation.

Symptoms / Log Signatures:

  • java.lang.ClassNotFoundException: kotlin.collections.EmptyList in server.log.
  • org.apache.geode.cache.query.IndexMaintenanceException or IMQException in server logs.
  • Rapid server log file growth (log storming).
  • Potential server nodes crash with SIGBUS or SIGSEGV in hs_err_pid<PID>.log under tight memory limits due to high exception object allocation.

Environment

All supported GemFire versions

Cause

When client applications write objects containing Kotlin collection types (such as kotlin.collections.EmptyList or Kotlin data classes) into a region that has index definitions evaluated on the server, the GemFire server JVM attempts to deserialize and reflect on those object fields.

If kotlin-stdlib.jar is missing from the GemFire server runtime classpath, the server cannot resolve the Kotlin classes during index maintenance, triggering continuous deserialization failures.

Resolution

  1. Download the matching version of kotlin-stdlib.jar (e.g., kotlin-stdlib-2.2.21.jar).
  2. Place the JAR file into the GemFire extensions or classpath directory on all Locator and Server nodes:
  3. Restart the GemFire locators and server nodes to pick up the updated system classpath.
  4. Verify resolution in server.log—confirm zero ClassNotFoundException occurrences during client write operations.