Skip to content

index cache struggles to deserialize JSON due to duplicated usage of type #1473

@martinlippert

Description

@martinlippert

The JSON serialization for the spring metamodel adds a type field to every node of the index, but that conflicts with existing fields type of index elements (e.g. the bean type in Bean).

10:57:11.075 [pool-5-thread-1] ERROR o.s.i.v.b.i.c.IndexCacheOnDiscDeltaBased - error reading cached symbols com.google.gson.JsonParseException: java.lang.ClassNotFoundException: com.example.reactivewebservice.GreetingHandler	at org.springframework.ide.vscode.boot.index.cache.IndexCacheOnDiscDeltaBased$SpringIndexElementAdapter.deserialize(IndexCacheOnDiscDeltaBased.java:711)	at org.springframework.ide.vscode.boot.index.cache.IndexCacheOnDiscDeltaBased$SpringIndexElementAdapter.deserialize(IndexCacheOnDiscDeltaBased.java:1)	at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:95)	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$2.readIntoField(ReflectiveTypeAdapterFactory.java:267)	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$FieldReflectionAdapter.readField(ReflectiveTypeAdapterFactory.java:558)	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:516)	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:40)	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:83)	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:59)	at com.google.gson.Gson.fromJson(Gson.java:1361)	at com.google.gson.Gson.fromJson(Gson.java:1463)	at com.google.gson.Gson.fromJson(Gson.java:1434)	at com.google.gson.internal.bind.TreeTypeAdapter$GsonContextImpl.deserialize(TreeTypeAdapter.java:199)	at org.springframework.ide.vscode.boot.index.cache.IndexCacheOnDiscDeltaBased$IndexCacheStoreAdapter.deserialize(IndexCacheOnDiscDeltaBased.java:595)	at org.springframework.ide.vscode.boot.index.cache.IndexCacheOnDiscDeltaBased$IndexCacheStoreAdapter.deserialize(IndexCacheOnDiscDeltaBased.java:1)	at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:95)	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$2.readIntoField(ReflectiveTypeAdapterFactory.java:267)	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$FieldReflectionAdapter.readField(ReflectiveTypeAdapterFactory.java:558)	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:516)	at com.google.gson.Gson.fromJson(Gson.java:1361)	at com.google.gson.Gson.fromJson(Gson.java:1463)	at com.google.gson.Gson.fromJson(Gson.java:1434)	at com.google.gson.internal.bind.TreeTypeAdapter$GsonContextImpl.deserialize(TreeTypeAdapter.java:199)	at org.springframework.ide.vscode.boot.index.cache.IndexCacheOnDiscDeltaBased$DeltaStorageAdapter.deserialize(IndexCacheOnDiscDeltaBased.java:631)	at org.springframework.ide.vscode.boot.index.cache.IndexCacheOnDiscDeltaBased$DeltaStorageAdapter.deserialize(IndexCacheOnDiscDeltaBased.java:1)	at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:95)	at com.google.gson.Gson.fromJson(Gson.java:1361)	at com.google.gson.Gson.fromJson(Gson.java:1306)	at org.springframework.ide.vscode.boot.index.cache.IndexCacheOnDiscDeltaBased.retrieveStoreFromIncrementalStorage(IndexCacheOnDiscDeltaBased.java:355)	at org.springframework.ide.vscode.boot.index.cache.IndexCacheOnDiscDeltaBased.retrieve(IndexCacheOnDiscDeltaBased.java:136)	at org.springframework.ide.vscode.boot.java.utils.SpringIndexerJava.scanFiles(SpringIndexerJava.java:493)	at org.springframework.ide.vscode.boot.java.utils.SpringIndexerJava.initializeProject(SpringIndexerJava.java:162)	at org.springframework.ide.vscode.boot.app.SpringSymbolIndex$InitializeProject.run(SpringSymbolIndex.java:846)	at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804)	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)	at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: java.lang.ClassNotFoundException: com.example.reactivewebservice.GreetingHandler	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)	at java.base/java.lang.Class.forName0(Native Method)	at java.base/java.lang.Class.forName(Class.java:421)	at java.base/java.lang.Class.forName(Class.java:412)	at org.springframework.ide.vscode.boot.index.cache.IndexCacheOnDiscDeltaBased$SpringIndexElementAdapter.deserialize(IndexCacheOnDiscDeltaBased.java:709)	... 36 common frames omitted 

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions