Skip to content

Getting java.lang.String cannot be cast to java.lang.Long exception #1949

Open
@himanshumps

Description

@himanshumps

I am getting this exception (java.lang.String cannot be cast to java.lang.Long) when I have the version field declared as String and annotated with org.springframework.data.annotation.Version

@Version
private String version;
Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long
02:20:35,571 INFO [stdout] (membershipChangeScheduler_Worker-2) at org.springframework.data.couchbase.repository.support.SimpleCouchbaseRepository.save(SimpleCouchbaseRepository.java:82) ~[spring-data-couchbase-4.4.0.jar:4.4.0]

The way the version field is being type casted has changed from spring-data-couchbase 3.2.x to 4.4.x in the save method (and probably other places as well which I might not be aware of)

4.4.x series: spring-data-couchbase/src/main/java/org/springframework/data/couchbase/repository/support/SimpleCouchbaseRepository.java at 149473cf83b48de6225b1f33cfd92a724da90a51 · spring-projects/spring-data-couchbase · GitHub

3.2.x series: spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/CouchbaseTemplate.java at 2efdf39ede45c72dca2f3472b5b23a7723fe87a2 · spring-projects/spring-data-couchbase · GitHub

Is there something we can do to help us migrate from 3.x to 4.x by avoiding this error.

Metadata

Metadata

Assignees

Labels

type: regressionA regression from a previous release

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions