8000 java.lang.NumberFormatException: For input string: "" · Issue #312 · arangodb/spring-data · GitHub
[go: up one dir, main page]

Skip to content

java.lang.NumberFormatException: For input string: "" #312

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
brunoaduarte opened this issue Aug 10, 2024 · 2 comments · Fixed by #313
Closed

java.lang.NumberFormatException: For input string: "" #312

brunoaduarte opened this issue Aug 10, 2024 · 2 comments · Fixed by #313
Assignees
Labels

Comments

@brunoaduarte
Copy link

My Environment

  • ArangoDB Version: 3.12.1
  • ArangoDB 3.12.1 [linux] 64bit, using jemalloc, build refs/tags/v3.12.1 9feb8dc314c, VPack 0.2.1, RocksDB 7.2.0, ICU 64.2, V8 12.1.165, OpenSSL 3.3.1 4 Jun 2024, build-id: 4b57b3fad9f04643dc476275a07d4295c76ad732
  • Deployment Mode: Single Server
  • Deployment Strategy: Manual Start
  • Configuration:
  • Infrastructure: AWS
  • Operating System: Ubuntu 20.04
  • Total RAM in your machine: 16GB
  • Disks in use: SSD
  • Used Package:
implementation 'com.arangodb:arangodb-spring-boot-starter:3.3-0'
// implementation 'com.arangodb:arangodb-spring-data:4.2.0'
arangod --version
3.12.1

This executable uses the GNU C library (glibc), which is licensed under the GNU Lesser General Public License (LGPL), see https://www.gnu.org/copyleft/lesser.html and https://www.gnu.org/licenses/gpl.html

architecture: 64bit
arm: false
asan: false
assertions: false
avx: true
avx2: false
boost-version: 1.78.0
build-date: 2024-07-21 13:31:40
build-id: 2e20fdf25765ec1200ea5a99962f05b31ef44742
build-repository: refs/tags/v3.12.1 9feb8dc314c
compiler: clang [Ubuntu Clang 16.0.6 (23ubuntu4)]
coverage: false
cplusplus: 202002
curl-version: none
debug: false
endianness: little
failure-tests: false
fd-client-event-handler: poll
fd-setsize: 1024
full-version-string: ArangoDB 3.12.1 [linux] 64bit, using jemalloc, build refs/tags/v3.12.1 9feb8dc314c, VPack 0.2.1, RocksDB 7.2.0, ICU 64.2, V8 12.1.165, OpenSSL 3.3.1 4 Jun 2024
icu-version: 64.2
ipo: true
iresearch-version: 1.3.0.0
jemalloc: true
libunwind: true
license: community
maintainer-mode: false
memory-profiler: true
ndebug: true
openssl-version-compile-time: OpenSSL 3.3.1 4 Jun 2024
openssl-version-run-time: OpenSSL 3.3.1 4 Jun 2024
optimization-flags: -mfxsr -mmmx -msse -msse2 -mcx16 -msahf -mpopcnt -msse3 -msse4.1 -msse4.2 -mssse3 -mpclmul -mavx -mxsave
pic: 2
pie: 2
platform: linux
reactor-type: epoll
replication2-enabled: false
rocksdb-version: 7.2.0
server-version: 3.12.1
sizeof int: 4
sizeof long: 8
sizeof void*: 8
sse42: true
tsan: false
unaligned-access: false
v8-version: 12.1.165
vpack-version: 0.2.1
zlib-version: 1.2.13

Component, Query & Data

Affected feature:

AQL query (if applicable):



AQL explain and/or profile (if applicable):

Dataset:

Size of your Dataset on disk:
~ 3GB

Replication Factor & Number of Shards (Cluster only):

Steps to reproduce

  1. https://github.com/arangodb/spring-data-demo
  2. Java Gradle Spring Boot project
public interface AccountRepository extends ArangoRepository<Account, String> {
	@Query("FOR a IN #collection RETURN a")
	Iterable<Account> findAll();
}
@Service
public class AccountService {
        private final AccountRepository repository;
	public AccountService(final AccountRepository repository) {
		this.repository = repository;
	}
	public Optional<Account> findById(String id) {
		return this.repository.findById(id);
	}
}
Optional<Account> account = accountService.findById(id);
_id:accounts/17879565699
_rev:_iIZOLYi---
_key:17879565699

{
  "_class": "com.myapp.model.Account",
  "createdAt": "2023-07-13T14:04:01.724Z",
  "lastAccess": "2023-07-13T14:04:01.724Z",
}

Problem:

java.lang.NumberFormatException: For input string: ".98EE1"
        at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)
        at java.base/jdk.internal.math.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
        at java.base/java.lang.Double.parseDouble(Double.java:792)
        at java.base/java.text.DigitList.getDouble(DigitList.java:164)
        at java.base/java.text.DecimalFormat.parse(DecimalFormat.java:2233)
        at java.base/java.text.SimpleDateFormat.subParse(SimpleDateFormat.java:2244)
        at java.base/java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1545)
        at java.base/java.text.DateFormat.parse(DateFormat.java:397)
        at com.arangodb.springframework.core.convert.JavaTimeUtil.parse(JavaTimeUtil.java:95)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.parseDate(DefaultArangoConverter.java:883)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readSimple(DefaultArangoConverter.java:455)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readInternal(DefaultArangoConverter.java:145)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readPropertyValue(DefaultArangoConverter.java:259)
        at 
Full error log

java.lang.NumberFormatException: For input string: ".98EE1"
        at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)
        at java.base/jdk.internal.math.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
        at java.base/java.lang.Double.parseDouble(Double.java:792)
        at java.base/java.text.DigitList.getDouble(DigitList.java:164)
        at java.base/java.text.DecimalFormat.parse(DecimalFormat.java:2233)
        at java.base/java.text.SimpleDateFormat.subParse(SimpleDateFormat.java:2244)
        at java.base/java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1545)
        at java.base/java.text.DateFormat.parse(DateFormat.java:397)
        at com.arangodb.springframework.core.convert.JavaTimeUtil.parse(JavaTimeUtil.java:95)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.parseDate(DefaultArangoConverter.java:883)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readSimple(DefaultArangoConverter.java:455)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readInternal(DefaultArangoConverter.java:145)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readPropertyValue(DefaultArangoConverter.java:259)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter$ArangoPropertyValueProvider.getPropertyValue(DefaultArangoConverter.java:531)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter$ArangoPropertyValueProvider.getPropertyValue(DefaultArangoConverter.java:514)
        at org.springframework.data.mapping.model.PersistentEntityParameterValueProvider.getParameterValue(PersistentEntityParameterValueProvider.java:72)
        at org.springframework.data.mapping.model.ClassGeneratingEntityInstantiator.extractInvocationArguments(ClassGeneratingEntityInstantiator.java:301)
        at org.springframework.data.mapping.model.ClassGeneratingEntityInstantiator$EntityInstantiatorAdapter.createInstance(ClassGeneratingEntityInstantiator.java:273)
        at org.springframework.data.mapping.model.ClassGeneratingEntityInstantiator.createInstance(ClassGeneratingEntityInstantiator.java:98)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readEntity(DefaultArangoConverter.java:196)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readInternal(DefaultArangoConverter.java:181)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.read(DefaultArangoConverter.java:120)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.read(DefaultArangoConverter.java:79)
        at com.arangodb.springframework.config.ArangoConfiguration$1.deserialize(ArangoConfiguration.java:108)
        at com.arangodb.serde.ArangoSerde.deserialize(ArangoSerde.java:49)
        at com.arangodb.internal.serde.InternalSerdeImpl.deserializeUserData(InternalSerdeImpl.java:128)
        at com.arangodb.internal.InternalArangoCollection.lambda$getDocumentResponseDeserializer$1(InternalArangoCollection.java:171)
        at com.arangodb.internal.ArangoExecutorSync.lambda$execute$1(ArangoExecutorSync.java:58)
        at com.arangodb.internal.RequestContextHolder.runWithCtx(RequestContextHolder.java:29)
        at com.arangodb.internal.ArangoExecutorSync.execute(ArangoExecutorSync.java:57)
        at com.arangodb.internal.ArangoExecutorSync.execute(ArangoExecutorSync.java:47)
        at com.arangodb.internal.ArangoCollectionImpl.getDocument(ArangoCollectionImpl.java:137)
        at com.arangodb.springframework.core.template.ArangoTemplate.find(ArangoTemplate.java:458)
        at com.arangodb.springframework.core.template.ArangoTemplate.find(ArangoTemplate.java:470)
        at com.arangodb.springframework.core.convert.resolver.RefResolver._resolve(RefResolver.java:61)
        at com.arangodb.springframework.core.convert.resolver.RefResolver.lambda$resolveOne$0(RefResolver.java:49)
        at com.arangodb.springframework.core.convert.resolver.RefResolver.resolveOne(RefResolver.java:50)
        at com.arangodb.springframework.core.convert.resolver.RefResolver.resolveOne(RefResolver.java:38)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.lambda$readReference$3(DefaultArangoConverter.java:360)
        at java.base/java.util.Optional.map(Optional.java:260)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readReference(DefaultArangoConverter.java:360)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readPropertyValue(DefaultArangoConverter.java:241)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter$ArangoPropertyValueProvider.getPropertyValue(DefaultArangoConverter.java:531)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter$ArangoPropertyValueProvider.getPropertyValue(DefaultArangoConverter.java:514)
        at org.springframework.data.mapping.model.PersistentEntityParameterValueProvider.getParameterValue(PersistentEntityParameterValueProvider.java:72)
        at org.springframework.data.mapping.model.ClassGeneratingEntityInstantiator.extractInvocationArguments(ClassGeneratingEntityInstantiator.java:301)
        at org.springframework.data.mapping.model.ClassGeneratingEntityInstantiator$EntityInstantiatorAdapter.createInstance(ClassGeneratingEntityInstantiator.java:273)
        at org.springframework.data.mapping.model.ClassGeneratingEntityInstantiator.createInstance(ClassGeneratingEntityInstantiator.java:98)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readEntity(DefaultArangoConverter.java:196)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readInternal(DefaultArangoConverter.java:181)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.read(DefaultArangoConverter.java:120)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.read(DefaultArangoConverter.java:79)
        at com.arangodb.springframework.config.ArangoConfiguration$1.deserialize(ArangoConfiguration.java:108)
        at com.arangodb.serde.ArangoSerde.deserialize(ArangoSerde.java:49)
        at com.arangodb.internal.serde.InternalSerdeImpl.deserializeUserData(InternalSerdeImpl.java:128)
        at com.arangodb.internal.InternalArangoCollection.lambda$getDocumentResponseDeserializer$1(InternalArangoCollection.java:171)
        at com.arangodb.internal.ArangoExecutorSync.lambda$execute$1(ArangoExecutorSync.java:58)
        at com.arangodb.internal.RequestContextHolder.runWithCtx(RequestContextHolder.java:29)
        at com.arangodb.internal.ArangoExecutorSync.execute(ArangoExecutorSync.java:57)
        at com.arangodb.internal.ArangoExecutorSync.execute(ArangoExecutorSync.java:47)
        at com.arangodb.internal.ArangoCollectionImpl.getDocument(ArangoCollectionImpl.java:137)
        at com.arangodb.springframework.core.template.ArangoTemplate.find(ArangoTemplate.java:458)
        at com.arangodb.springframework.core.template.ArangoTemplate.find(ArangoTemplate.java:470)
        at com.arangodb.springframework.core.convert.resolver.RefResolver._resolve(RefResolver.java:61)
        at com.arangodb.springframework.core.convert.resolver.RefResolver.lambda$resolveOne$0(RefResolver.java:49)
        at com.arangodb.springframework.core.convert.resolver.RefResolver.resolveOne(RefResolver.java:50)
        at com.arangodb.springframework.core.convert.resolver.RefResolver.lambda$resolveMultiple$1(RefResolver.java:56)
        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
        at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
        at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
        at com.arangodb.springframework.core.convert.resolver.RefResolver.resolveMultiple(RefResolver.java:57)
        at com.arangodb.springframework.core.convert.resolver.RefResolver.resolveMultiple(RefResolver.java:38)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.lambda$readReference$2(DefaultArangoConverter.java:350)
        at java.base/java.util.Optional.map(Optional.java:260)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readReference(DefaultArangoConverter.java:350)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readPropertyValue(DefaultArangoConverter.java:241)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter$ArangoPropertyValueProvider.getPropertyValue(DefaultArangoConverter.java:531)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter$ArangoPropertyValueProvider.getPropertyValue(DefaultArangoConverter.java:514)
        at org.springframework.data.mapping.model.PersistentEntityParameterValueProvider.getParameterValue(PersistentEntityParameterValueProvider.java:72)
        at org.springframework.data.mapping.model.ClassGeneratingEntityInstantiator.extractInvocationArguments(ClassGeneratingEntityInstantiator.java:301)
        at org.springframework.data.mapping.model.ClassGeneratingEntityInstantiator$EntityInstantiatorAdapter.createInstance(ClassGeneratingEntityInstantiator.java:273)
        at org.springframework.data.mapping.model.ClassGeneratingEntityInstantiator.createInstance(ClassGeneratingEntityInstantiator.java:98)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readEntity(DefaultArangoConverter.java:196)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readInternal(DefaultArangoConverter.java:181)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.read(DefaultArangoConverter.java:120)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.read(DefaultArangoConverter.java:79)
        at com.arangodb.springframework.config.ArangoConfiguration$1.deserialize(ArangoConfiguration.java:108)
        at com.arangodb.serde.ArangoSerde.deserialize(ArangoSerde.java:49)
        at com.arangodb.internal.serde.InternalSerdeImpl.deserializeUserData(InternalSerdeImpl.java:128)
        at com.arangodb.internal.InternalArangoCollection.lambda$getDocumentResponseDeserializer$1(InternalArangoCollection.java:171)
        at com.arangodb.internal.ArangoExecutorSync.lambda$execute$1(ArangoExecutorSync.java:58)
        at com.arangodb.internal.RequestContextHolder.runWithCtx(RequestContextHolder.java:29)
        at com.arangodb.internal.ArangoExecutorSync.execute(ArangoExecutorSync.java:57)
        at com.arangodb.internal.ArangoExecutorSync.execute(ArangoExecutorSync.java:47)
        at com.arangodb.internal.ArangoCollectionImpl.getDocument(ArangoCollectionImpl.java:137)
        at com.arangodb.springframework.core.template.ArangoTemplate.find(ArangoTemplate.java:458)
        at com.arangodb.springframework.core.template.ArangoTemplate.find(ArangoTemplate.java:470)
        at com.arangodb.springframework.repository.SimpleArangoRepository.findById(SimpleArangoRepository.java:105)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:354)
        at org.springframework.data.repository.core.support.RepositoryMethodInvoker$RepositoryFragmentMethodInvoker.lambda$new$0(RepositoryMethodInvoker.java:277)
        at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:170)
        at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:158)
        at org.springframework.data.repository.core.support.RepositoryComposition$RepositoryFragments.invoke(RepositoryComposition.java:516)
        at org.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:285)
        at org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:628)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
        at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:168)
        at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:143)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:223)
        at jdk.proxy2/jdk.proxy2.$Proxy88.findById(Unknown Source)
        at com.myapp.services.AccountService.findById(AccountService.java:34)
        at com.myapp.worker.SubscriptionManagementThread.run(SubscriptionManagementThread.java:62)

Error log 2

com.arangodb.springframework.ArangoUncategorizedException: multiple points (through reference chain: com.arangodb.entity.CursorEntity["result"]->java.util.ArrayList[0])
        at com.arangodb.springframework.core.util.ArangoExceptionTranslator.translateExceptionIfPossible(ArangoExceptionTranslator.java:56)
        at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:335)
        at com.arangodb.springframework.core.template.ArangoTemplate.query(ArangoTemplate.java:282)
        at com.arangodb.springframework.repository.query.AbstractArangoQuery.execute(AbstractArangoQuery.java:83)
        at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:170)
        at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:158)
        at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:164)
        at o
8000
rg.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:143)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:223)
        at jdk.proxy2/jdk.proxy2.$Proxy102.findByExactNumberNoLog(Unknown Source)
        at com.myapp.services.PhoneService.findByExactNumberNoLog(PhoneService.java:42)
        at com.myapp.controller.LogControllerWebSocket.createLog(LogControllerWebSocket.java:56)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:169)
        at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:119)
        at org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler.handleMatch(AbstractMethodMessageHandler.java:567)
        at org.springframework.messaging.simp.annotation.support.SimpAnnotationMethodMessageHandler.handleMatch(SimpAnnotationMethodMessageHandler.java:529)
        at org.springframework.messaging.simp.annotation.support.SimpAnnotationMethodMessageHandler.handleMatch(SimpAnnotationMethodMessageHandler.java:93)
        at org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler.handleMessageInternal(AbstractMethodMessageHandler.java:522)
        at org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler.handleMessage(AbstractMethodMessageHandler.java:457)
        at org.springframework.messaging.support.ExecutorSubscribableChannel$SendTask.run(ExecutorSubscribableChannel.java:152)
        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: com.arangodb.ArangoDBException: multiple points (through reference chain: com.arangodb.entity.CursorEntity["result"]->java.util.ArrayList[0])
        at com.arangodb.ArangoDBException.of(ArangoDBException.java:137)
        at com.arangodb.ArangoDBException.of(ArangoDBException.java:111)
        at com.arangodb.ArangoDBException.of(ArangoDBException.java:107)
        at com.arangodb.internal.serde.InternalSerdeImpl.deserialize(InternalSerdeImpl.java:169)
        at com.arangodb.internal.InternalArangoDatabase.lambda$cursorEntityDeserializer$4(InternalArangoDatabase.java:236)
        at com.arangodb.internal.ArangoExecutorSync.lambda$execute$1(ArangoExecutorSync.java:58)
        at com.arangodb.internal.RequestContextHolder.runWithCtx(RequestContextHolder.java:29)
        at com.arangodb.internal.ArangoExecutorSync.execute(ArangoExecutorSync.java:57)
        at com.arangodb.internal.ArangoDatabaseImpl.query(ArangoDatabaseImpl.java:168)
        at com.arangodb.springframework.core.template.ArangoTemplate.query(ArangoTemplate.java:279)
        ... 25 more
Caused by: com.fasterxml.jackson.databind.JsonMappingException: multiple points (through reference chain: com.arangodb.entity.CursorEntity["result"]->java.util.ArrayList[0])
        at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:402)
        at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:373)
        at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:381)
        at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:246)
        at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:30)
        at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:138)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:310)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
        at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:342)
        at com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:2125)
        at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1603)
        at com.arangodb.internal.serde.InternalSerdeImpl.deserialize(InternalSerdeImpl.java:167)
        ... 31 more
Caused by: java.lang.NumberFormatException: multiple points
        at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1890)
        at java.base/jdk.internal.math.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
        at java.base/java.lang.Double.parseDouble(Double.java:792)
        at java.base/java.text.DigitList.getDouble(DigitList.java:164)
        at java.base/java.text.DecimalFormat.parse(DecimalFormat.java:2233)
        at java.base/java.text.SimpleDateFormat.subParse(SimpleDateFormat.java:2244)
        at java.base/java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1545)
        at java.base/java.text.DateFormat.parse(DateFormat.java:397)
        at com.arangodb.springframework.core.convert.JavaTimeUtil.parse(JavaTimeUtil.java:95)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.parseDate(DefaultArangoConverter.java:883)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readSimple(DefaultArangoConverter.java:455)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readInternal(DefaultArangoConverter.java:145)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readPropertyValue(DefaultArangoConverter.java:259)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter$ArangoPropertyValueProvider.getPropertyValue(DefaultArangoConverter.java:531)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter$ArangoPropertyValueProvider.getPropertyValue(DefaultArangoConverter.java:514)
        at org.springframework.data.mapping.model.PersistentEntityParameterValueProvider.getParameterValue(PersistentEntityParameterValueProvider.java:72)
        at org.springframework.data.mapping.model.ClassGeneratingEntityInstantiator.extractInvocationArguments(ClassGeneratingEntityInstantiator.java:301)
        at org.springframework.data.mapping.model.ClassGeneratingEntityInstantiator$EntityInstantiatorAdapter.createInstance(ClassGeneratingEntityInstantiator.java:273)
        at org.springframework.data.mapping.model.ClassGeneratingEntityInstantiator.createInstance(ClassGeneratingEntityInstantiator.java:98)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readEntity(DefaultArangoConverter.java:196)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readInternal(DefaultArangoConverter.java:181)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.read(DefaultArangoConverter.java:120)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.read(DefaultArangoConverter.java:79)
        at com.arangodb.springframework.config.ArangoConfiguration$1.deserialize(ArangoConfiguration.java:108)
        at com.arangodb.serde.ArangoSerde.deserialize(ArangoSerde.java:49)
        at com.arangodb.internal.serde.InternalSerdeImpl.deserializeUserData(InternalSerdeImpl.java:128)
        at com.arangodb.internal.serde.InternalSerdeImpl.deserializeUserData(InternalSerdeImpl.java:136)
        at com.arangodb.internal.serde.InternalSerdeImpl.deserializeUserData(InternalSerdeImpl.java:144)
        at com.arangodb.internal.serde.UserDataDeserializer.deserialize(UserDataDeserializer.java:32)
        at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:361)
        ... 40 more
com.arangodb.springframework.ArangoUncategorizedException: multiple points (through reference chain: com.arangodb.entity.CursorEntity["result"]->java.util.ArrayList[0])
        at com.arangodb.springframework.core.util.ArangoExceptionTranslator.translateExceptionIfPossible(ArangoExceptionTranslator.java:56)
        at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:335)
        at com.arangodb.springframework.core.template.ArangoTemplate.query(ArangoTemplate.java:282)
        at com.arangodb.springframework.repository.query.AbstractArangoQuery.execute(AbstractArangoQuery.java:83)
        at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:170)
        at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:158)
        at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:164)
        at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:143)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:223)
        at jdk.proxy2/jdk.proxy2.$Proxy102.findByExactNumberNoLog(Unknown Source)
        at com.myapp.services.PhoneService.findByExactNumberNoLog(PhoneService.java:42)
        at com.myapp.controller.LogControllerWebSocket.createLog(LogControllerWebSocket.java:56)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:169)
        at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:119)
        at org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler.handleMatch(AbstractMethodMessageHandler.java:567)
        at org.springframework.messaging.simp.annotation.support.SimpAnnotationMethodMessageHandler.handleMatch(SimpAnnotationMethodMessageHandler.java:529)
        at org.springframework.messaging.simp.annotation.support.SimpAnnotationMethodMessageHandler.handleMatch(SimpAnnotationMethodMessageHandler.java:93)
        at org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler.handleMessageInternal(AbstractMethodMessageHandler.java:522)
        at org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler.handleMessage(AbstractMethodMessageHandler.java:457)
        at org.springframework.messaging.support.ExecutorSubscribableChannel$SendTask.run(ExecutorSubscribableChannel.java:152)
        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: com.arangodb.ArangoDBException: multiple points (through reference chain: com.arangodb.entity.CursorEntity["result"]->java.util.ArrayList[0])
        at com.arangodb.ArangoDBException.of(ArangoDBException.java:137)
        at com.arangodb.ArangoDBException.of(ArangoDBException.java:111)
        at com.arangodb.ArangoDBException.of(ArangoDBException.java:107)
        at com.arangodb.internal.serde.InternalSerdeImpl.deserialize(InternalSerdeImpl.java:169)
        at com.arangodb.internal.InternalArangoDatabase.lambda$cursorEntityDeserializer$4(InternalArangoDatabase.java:236)
        at com.arangodb.internal.ArangoExecutorSync.lambda$execute$1(ArangoExecutorSync.java:58)
        at com.arangodb.internal.RequestContextHolder.runWithCtx(RequestContextHolder.java:29)
        at com.arangodb.internal.ArangoExecutorSync.execute(ArangoExecutorSync.java:57)
        at com.arangodb.internal.ArangoDatabaseImpl.query(ArangoDatabaseImpl.java:168)
        at com.arangodb.springframework.core.template.ArangoTemplate.query(ArangoTemplate.java:279)
        ... 25 more
Caused by: com.fasterxml.jackson.databind.JsonMappingException: multiple points (through reference chain: com.arangodb.entity.CursorEntity["result"]->java.util.ArrayList[0])
        at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:402)
        at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:373)
        at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:381)
        at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:246)
        at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:30)
        at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:138)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:310)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
        at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:342)
        at com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:2125)
        at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1603)
        at com.arangodb.internal.serde.InternalSerdeImpl.deserialize(InternalSerdeImpl.java:167)
        ... 31 more
Caused by: java.lang.NumberFormatException: multiple points
        at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1890)
        at java.base/jdk.internal.math.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
        at java.base/java.lang.Double.parseDouble(Double.java:792)
        at java.base/java.text.DigitList.getDouble(DigitList.java:164)
        at java.base/java.text.DecimalFormat.parse(DecimalFormat.java:2233)
        at java.base/java.text.SimpleDateFormat.subParse(SimpleDateFormat.java:2244)
        at java.base/java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1545)
        at java.base/java.text.DateFormat.parse(DateFormat.java:397)
        at com.arangodb.springframework.core.convert.JavaTimeUtil.parse(JavaTimeUtil.java:95)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.parseDate(DefaultArangoConverter.java:883)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readSimple(DefaultArangoConverter.java:455)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readInternal(DefaultArangoConverter.java:145)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readPropertyValue(DefaultArangoConverter.java:259)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter$ArangoPropertyValueProvider.getPropertyValue(DefaultArangoConverter.java:531)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter$ArangoPropertyValueProvider.getPropertyValue(DefaultArangoConverter.java:514)
        at org.springframework.data.mapping.model.PersistentEntityParameterValueProvider.getParameterValue(PersistentEntityParameterValueProvider.java:72)
        at org.springframework.data.mapping.model.ClassGeneratingEntityInstantiator.extractInvocationArguments(ClassGeneratingEntityInstantiator.java:301)
        at org.springframework.data.mapping.model.ClassGeneratingEntityInstantiator$EntityInstantiatorAdapter.createInstance(ClassGeneratingEntityInstantiator.java:273)
        at org.springframework.data.mapping.model.ClassGeneratingEntityInstantiator.createInstance(ClassGeneratingEntityInstantiator.java:98)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readEntity(DefaultArangoConverter.java:196)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.readInternal(DefaultArangoConverter.java:181)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.read(DefaultArangoConverter.java:120)
        at com.arangodb.springframework.core.convert.DefaultArangoConverter.read(DefaultArangoConverter.java:79)
        at com.arangodb.springframework.config.ArangoConfiguration$1.deserialize(ArangoConfiguration.java:108)
        at com.arangodb.serde.ArangoSerde.deserialize(ArangoSerde.java:49)
        at com.arangodb.internal.serde.InternalSerdeImpl.deserializeUserData(InternalSerdeImpl.java:128)
        at com.arangodb.internal.serde.InternalSerdeImpl.deserializeUserData(InternalSerdeImpl.java:136)
        at com.arangodb.internal.serde.InternalSerdeImpl.deserializeUserData(InternalSerdeImpl.java:144)
        at com.arangodb.internal.serde.UserDataDeserializer.deserialize(UserDataDeserializer.java:32)
        at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:361)
        ... 40 more

Expected result:

It was working perfectly on ArangoDB 3.10 with arangodb-spring-data:3.7.1

@rashtao
Copy link
Collaborator
rashtao commented Aug 12, 2024

Thanks for reporting @brunoaduarte , this seems to be a bug in com.arangodb.springframework.core.convert.JavaTimeUtil accessing SimpleDateFormat concurrently: https://github.com/arangodb/spring-data/blob/313af2317190f4d43fbfc112c48406345bf3fe10/src/main/java/com/arangodb/springframework/core/convert/JavaTimeUtil.java

@brunoaduarte
Copy link
Author

Thanks for reporting @brunoaduarte , this seems to be a bug in com.arangodb.springframework.core.convert.JavaTimeUtil accessing SimpleDateFormat concurrently: https://github.com/arangodb/spring-data/blob/313af2317190f4d43fbfc112c48406345bf3fe10/src/main/java/com/arangodb/springframework/core/convert/JavaTimeUtil.java

Just tested the PR and the bug is fixed, worked perfectly @rashtao . Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants
0