Piotr Kolaczkowski created CASSJAVA-121:
-------------------------------------------
Summary: NPE in DefaultPropertyMapper
Key: CASSJAVA-121
URL: https://issues.apache.org/jira/browse/CASSJAVA-121
Project: Apache Cassandra Java driver
Issue Type: Bug
Components: Core
Reporter: Piotr Kolaczkowski
DefaultPropertyMapper throws the following exception when I try to start
Fallout on Java 17.0.18 (and 17.0.17):
{code:java}
java.lang.NullPointerException: Cannot invoke "Object.equals(Object)" because
"clazz" is null
at
com.datastax.driver.mapping.DefaultPropertyMapper.scanMethodAnnotations(DefaultPropertyMapper.java:556)
at
com.datastax.driver.mapping.DefaultPropertyMapper.scanPropertyAnnotations(DefaultPropertyMapper.java:530)
at
com.datastax.driver.mapping.DefaultPropertyMapper.mapTableOrUdt(DefaultPropertyMapper.java:289)
at
com.datastax.driver.mapping.DefaultPropertyMapper.mapTable(DefaultPropertyMapper.java:246)
at
com.datastax.driver.mapping.AnnotationParser.parseEntity(AnnotationParser.java:118)
at
com.datastax.driver.mapping.MappingManager.getMapper(MappingManager.java:329)
at
com.datastax.driver.mapping.MappingManager.mapper(MappingManager.java:261)
at
com.datastax.driver.mapping.MappingManager.mapper(MappingManager.java:273)
at com.datastax.fallout.service.db.TestRunDAO.start(TestRunDAO.java:484)
at io.dropwizard.lifecycle.JettyManaged.doStart(JettyManaged.java:27)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
at org.eclipse.jetty.server.Server.start(Server.java:423)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
at
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
at org.eclipse.jetty.server.Server.doStart(Server.java:387)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
at io.dropwizard.cli.ServerCommand.run(ServerCommand.java:53)
at
com.datastax.fallout.service.cli.FalloutServerCommand.run(FalloutServerCommand.java:87)
at
com.datastax.fallout.service.cli.FalloutServerCommand.run(FalloutServerCommand.java:34)
at io.dropwizard.cli.EnvironmentCommand.run(EnvironmentCommand.java:60)
at io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:98)
at
com.datastax.fallout.service.cli.FalloutServerCommand.run(FalloutServerCommand.java:72)
at io.dropwizard.cli.Cli.run(Cli.java:78)
at io.dropwizard.Application.run(Application.java:94)
at
com.datastax.fallout.service.FalloutServiceBase.main(FalloutServiceBase.java:178)
at
com.datastax.fallout.service.FalloutDsService.main(FalloutDsService.java:25)
java.lang.NullPointerException: Cannot invoke "Object.equals(Object)" because
"clazz" is null
at
com.datastax.driver.mapping.DefaultPropertyMapper.scanMethodAnnotations(DefaultPropertyMapper.java:556)
at
com.datastax.driver.mapping.DefaultPropertyMapper.scanPropertyAnnotations(DefaultPropertyMapper.java:530)
at
com.datastax.driver.mapping.DefaultPropertyMapper.mapTableOrUdt(DefaultPropertyMapper.java:289)
at
com.datastax.driver.mapping.DefaultPropertyMapper.mapTable(DefaultPropertyMapper.java:246)
at
com.datastax.driver.mapping.AnnotationParser.parseEntity(AnnotationParser.java:118)
at
com.datastax.driver.mapping.MappingManager.getMapper(MappingManager.java:329)
at
com.datastax.driver.mapping.MappingManager.mapper(MappingManager.java:261)
at
com.datastax.driver.mapping.MappingManager.mapper(MappingManager.java:273)
at com.datastax.fallout.service.db.TestRunDAO.start(TestRunDAO.java:484)
at io.dropwizard.lifecycle.JettyManaged.doStart(JettyManaged.java:27)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
at org.eclipse.jetty.server.Server.start(Server.java:423)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
at
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
at org.eclipse.jetty.server.Server.doStart(Server.java:387)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
at io.dropwizard.cli.ServerCommand.run(ServerCommand.java:53)
at
com.datastax.fallout.service.cli.FalloutServerCommand.run(FalloutServerCommand.java:87)
at
com.datastax.fallout.service.cli.FalloutServerCommand.run(FalloutServerCommand.java:34)
at io.dropwizard.cli.EnvironmentCommand.run(EnvironmentCommand.java:60)
at io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:98)
at
com.datastax.fallout.service.cli.FalloutServerCommand.run(FalloutServerCommand.java:72)
at io.dropwizard.cli.Cli.run(Cli.java:78)
at io.dropwizard.Application.run(Application.java:94)
at
com.datastax.fallout.service.FalloutServiceBase.main(FalloutServiceBase.java:178)
at
com.datastax.fallout.service.FalloutDsService.main(FalloutDsService.java:25)
{code}
This has been confirmed by another user who observed the same exception.
Downgrading to openjdk 17.0.9 fixes it.
Looks like on newer Java somehow the method.getDeclaringClass() call returns
null and then there is no null-check in the loop that checks annotations in
implemented interfaces.
Java driver version: 3.7.2
Java version:
{code:java}
openjdk version "21.0.10" 2026-01-20
OpenJDK Runtime Environment Homebrew (build 21.0.10)
OpenJDK 64-Bit Server VM Homebrew (build 21.0.10, mixed mode, sharing)
{code}
OS: macOS 15.7.3
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]