spring-projects / spring-ai

An Application Framework for AI Engineering
https://docs.spring.io/spring-ai/reference/1.0-SNAPSHOT/index.html
Apache License 2.0
2.35k stars 540 forks source link

MongoDB is unable to persist `Document` types #698

Open tzolov opened 1 month ago

tzolov commented 1 month ago

MongoDB is unable to persist Document types. The problem is the new Media class and particularly the MimeType filed is contains:

java.lang.reflect.InaccessibleObjectException: Unable to make protected java.nio.charset.Charset(java.lang.String,java.lang.String[]) accessible: module java.base does not "opens java.nio.charset" to unnamed module @4ee22985
 at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible([AccessibleObject.java:354](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible([AccessibleObject.java:297](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at java.base/java.lang.reflect.Constructor.checkCanSetAccessible([Constructor.java:188](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at java.base/java.lang.reflect.Constructor.setAccessible([Constructor.java:181](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.util.ReflectionUtils.makeAccessible([ReflectionUtils.java:201](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.PreferredConstructor.([PreferredConstructor.java:56](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers.buildPreferredConstructor([PreferredConstructorDiscoverer.java:265](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers$1.discover([PreferredConstructorDiscoverer.java:139](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.model.PreferredConstructorDiscoverer.discover([PreferredConstructorDiscoverer.java:84](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.model.InstanceCreatorMetadataDiscoverer.discover([InstanceCreatorMetadataDiscoverer.java:116](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.model.BasicPersistentEntity.([BasicPersistentEntity.java:113](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mongodb.core.mapping.BasicMongoPersistentEntity.([BasicMongoPersistentEntity.java:84](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mongodb.core.mapping.MongoMappingContext.createPersistentEntity([MongoMappingContext.java:91](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mongodb.core.mapping.MongoMappingContext.createPersistentEntity([MongoMappingContext.java:41](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.context.AbstractMappingContext.doAddPersistentEntity([AbstractMappingContext.java:407](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.context.AbstractMappingContext.addPersistentEntity([AbstractMappingContext.java:383](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.lambda$createAndRegisterProperty$3([AbstractMappingContext.java:627](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at java.base/java.lang.Iterable.forEach([Iterable.java:75](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.createAndRegisterProperty([AbstractMappingContext.java:624](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.doWith([AbstractMappingContext.java:578](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.util.ReflectionUtils.doWithFields([ReflectionUtils.java:728](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.context.AbstractMappingContext.doAddPersistentEntity([AbstractMappingContext.java:427](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.context.AbstractMappingContext.addPersistentEntity([AbstractMappingContext.java:383](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.lambda$createAndRegisterProperty$3([AbstractMappingContext.java:627](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at java.base/java.lang.Iterable.forEach([Iterable.java:75](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.createAndRegisterProperty([AbstractMappingContext.java:624](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.doWith([AbstractMappingContext.java:578](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.util.ReflectionUtils.doWithFields([ReflectionUtils.java:728](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.context.AbstractMappingContext.doAddPersistentEntity([AbstractMappingContext.java:427](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.context.AbstractMappingContext.addPersistentEntity([AbstractMappingContext.java:383](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.lambda$createAndRegisterProperty$3([AbstractMappingContext.java:627](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at java.base/java.lang.Iterable.forEach([Iterable.java:75](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.createAndRegisterProperty([AbstractMappingContext.java:624](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.doWith([AbstractMappingContext.java:578](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.util.ReflectionUtils.doWithFields([ReflectionUtils.java:728](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.context.AbstractMappingContext.doAddPersistentEntity([AbstractMappingContext.java:427](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.context.AbstractMappingContext.addPersistentEntity([AbstractMappingContext.java:383](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.context.AbstractMappingContext.getPersistentEntity([AbstractMappingContext.java:279](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.context.AbstractMappingContext.getPersistentEntity([AbstractMappingContext.java:205](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.context.AbstractMappingContext.getPersistentEntity([AbstractMappingContext.java:92](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mapping.context.MappingContext.getRequiredPersistentEntity([MappingContext.java:74](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mongodb.core.EntityOperations$AdaptibleMappedEntity.of([EntityOperations.java:865](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mongodb.core.EntityOperations.forEntity([EntityOperations.java:160](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.data.mongodb.core.MongoTemplate.save([MongoTemplate.java:1454](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.ai.vectorstore.MongoDBAtlasVectorStore.add([MongoDBAtlasVectorStore.java:134](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.ai.vectorstore.MongoDBAtlasVectorStoreIT.lambda$3([MongoDBAtlasVectorStoreIT.java:107](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.boot.test.context.runner.AbstractApplicationContextRunner.accept([AbstractApplicationContextRunner.java:434](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.boot.test.context.runner.AbstractApplicationContextRunner.consumeAssertableContext([AbstractApplicationContextRunner.java:363](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.boot.test.context.runner.AbstractApplicationContextRunner.lambda$run$0([AbstractApplicationContextRunner.java:341](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.boot.test.util.TestPropertyValues.lambda$applyToSystemProperties$1([TestPropertyValues.java:174](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.boot.test.util.TestPropertyValues.applyToSystemProperties([TestPropertyValues.java:188](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.boot.test.util.TestPropertyValues.applyToSystemProperties([TestPropertyValues.java:173](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.boot.test.context.runner.AbstractApplicationContextRunner.lambda$run$1([AbstractApplicationContextRunner.java:341](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.boot.test.context.runner.AbstractApplicationContextRunner.withContextClassLoader([AbstractApplicationContextRunner.java:369](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.boot.test.context.runner.AbstractApplicationContextRunner.run([AbstractApplicationContextRunner.java:340](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at org.springframework.ai.vectorstore.MongoDBAtlasVectorStoreIT.documentUpdateTest([MongoDBAtlasVectorStoreIT.java:101](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at java.base/java.util.ArrayList.forEach([ArrayList.java:1511](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))
 at java.base/java.util.ArrayList.forEach([ArrayList.java:1511](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-sandbox/workbench/workbench.html))