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]

Reply via email to