Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
由于javax.validation异常,ConcurrentModification异常_Java_Eclipselink_Javax.validation - Fatal编程技术网

由于javax.validation异常,ConcurrentModification异常

由于javax.validation异常,ConcurrentModification异常,java,eclipselink,javax.validation,Java,Eclipselink,Javax.validation,由于javax.validation问题,api抛出并发修改异常,我面临着这个奇怪的问题 java.util.ConcurrentModificationException: null at java.util.HashMap$HashIterator.nextNode(HashMap.java:1445) ~[na:1.8.0_265] at java.util.HashMap$ValueIterator.next(HashMap.java:1474) ~[na:1.8

由于javax.validation问题,api抛出并发修改异常,我面临着这个奇怪的问题

    java.util.ConcurrentModificationException: null
    at java.util.HashMap$HashIterator.nextNode(HashMap.java:1445) ~[na:1.8.0_265]
    at java.util.HashMap$ValueIterator.next(HashMap.java:1474) ~[na:1.8.0_265]
    at org.eclipse.persistence.jpa.PersistenceProvider.isLoadedWithReference(PersistenceProvider.java:464) ~[eclipselink-2.6.1.jar:2.6.1.v20150916-55dc7c3]
    at javax.persistence.Persistence$PersistenceUtilImpl.isLoaded(Persistence.java:154) ~[javax.persistence-2.1.0.jar:2.1.0]
    at org.hibernate.validator.internal.engine.resolver.JPATraversableResolver.isReachable(JPATraversableResolver.java:56) ~[bean-validator-2.2.0.jar:5.0.0.Final]
    at org.hibernate.validator.internal.engine.resolver.DefaultTraversableResolver.isReachable(DefaultTraversableResolver.java:130) ~[bean-validator-2.2.0.jar:5.0.0.Final]
    at org.hibernate.validator.internal.engine.resolver.SingleThreadCachedTraversableResolver.isReachable(SingleThreadCachedTraversableResolver.java:46) ~[bean-validator-2.2.0.jar:5.0.0.Final] [1 skipped]
    at org.hibernate.validator.internal.engine.ValidatorImpl.isReachable(ValidatorImpl.java:1307) ~[bean-validator-2.2.0.jar:5.0.0.Final]
    at org.hibernate.validator.internal.engine.ValidatorImpl.isValidationRequired(ValidatorImpl.java:1292) ~[bean-validator-2.2.0.jar:5.0.0.Final]
    ... 49 common frames omitted
Wrapped by: javax.validation.ValidationException: HV000041: Call to TraversableResolver.isReachable() threw an exception.
    at org.hibernate.validator.internal.engine.ValidatorImpl.isReachable(ValidatorImpl.java:1316) ~[bean-validator-2.2.0.jar:5.0.0.Final]
    at org.hibernate.validator.internal.engine.ValidatorImpl.isValidationRequired(ValidatorImpl.java:1292) ~[bean-validator-2.2.0.jar:5.0.0.Final]
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraint(ValidatorImpl.java:475) ~[bean-validator-2.2.0.jar:5.0.0.Final]
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForDefaultGroup(ValidatorImpl.java:424) ~[bean-validator-2.2.0.jar:5.0.0.Final]
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:388) ~[bean-validator-2.2.0.jar:5.0.0.Final]
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:340) ~[bean-validator-2.2.0.jar:5.0.0.Final]
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateCascadedConstraint(ValidatorImpl.java:635) ~[bean-validator-2.2.0.jar:5.0.0.Final]
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateCascadedConstraints(ValidatorImpl.java:524) ~[bean-validator-2.2.0.jar:5.0.0.Final]
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:349) ~[bean-validator-2.2.0.jar:5.0.0.Final]
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateCascadedConstraint(ValidatorImpl.java:635) ~[bean-validator-2.2.0.jar:5.0.0.Final]
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateCascadedConstraints(ValidatorImpl.java:524) ~[bean-validator-2.2.0.jar:5.0.0.Final]
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateParametersInContext(ValidatorImpl.java:916) ~[bean-validator-2.2.0.jar:5.0.0.Final]
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateParameters(ValidatorImpl.java:240) ~[bean-validator-2.2.0.jar:5.0.0.Final]
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateParameters(ValidatorImpl.java:198) ~[bean-validator-2.2.0.jar:5.0.0.Final]
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095) [webapp-runner.jar:na] [28 skipped]
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672) [webapp-runner.jar:na]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502) [webapp-runner.jar:na]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458) [webapp-runner.jar:na]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_265]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_265]
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [webapp-runner.jar:na]
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_265]

堆栈跟踪没有说明bean中的哪个验证导致了问题。

显然,异常堆栈跟踪说明hashmap中发生了并发修改异常。如果在遍历映射值或API时使用迭代器,而这些值或API不像通用Hashmap对象那样是线程安全的,则会发生并发修改异常。尝试使用并发hashmap,您的问题应该会得到解决。

看起来stacktrace正在以一种特殊的方式格式化,方法是。。。什么

显示它的正常方式是首先显示主要异常,然后显示
原因
(或包装的)异常链。但是您向我们展示的是包装异常,后面是包装它的异常

这意味着,
ConcurrentModificationException
导致了
ValidationException
。。。而不是相反


不幸的是,这并不能解释实际发生的情况。

com.foo.mapper.CustomExceptionMapper:意外的Bean验证问题。这是打印并发异常之后的异常头。这对我有帮助吗?很明显,我没有看到任何代码作为api的一部分会导致并发修改异常。堆栈跟踪也表明它来自hibernate。所以我怀疑这是图书馆的问题,这种情况多久发生一次?看起来像是一个时间问题,因为EclipseLink PeristenceProvider所涉及的代码正在对持久性单元进行迭代,以确定实体属性是否作为验证过程的一部分加载。发生这种情况时,必须从持久性单元列表中添加/删除某些内容-请随意提交一个bug,但这非常奇怪,除非您的环境中正在进行大量部署/取消部署操作。