bug #6548
closedNPE in DeduplicationHelper
40%
Description
NPE in DeduplicationHelper.merge(). Probably this comes when an object referenced by its uuid is already deleted. Therefore we need to check whether the object still exists. We should implement this for all calls using the uuid as parameter.
WGB:
nach dem Deduplizieren mehrerer Referenzen im Bulk Editor gab’s folgende Meldung (nicht rot) beim Speichern. Musste den Editor zumachen, die Änderungen waren nicht vollständig gespeichert (mindestens ein nicht mit Daten verknüpftes zusätzliches Referenzduplikat wurde wohl erzeugt).
Herzlichen Gruß
Walter
login : w.berendsohn
editor version : 4.6.0
server : api.cybertaxonomy.org (cybertaxonomy.org) / caryo_nepenthaceae
schema version : 4.1.0.0.201607300000
os : Windows 7 6.1 amd64
java : 1.8.0_121
java.lang.NullPointerException
at eu.etaxonomy.cdm.persistence.dao.hibernate.common.DeduplicationHelper.merge(DeduplicationHelper.java:94)
at eu.etaxonomy.cdm.persistence.dao.hibernate.common.CdmGenericDaoImpl.merge(CdmGenericDaoImpl.java:493)
at eu.etaxonomy.cdm.api.service.CommonServiceImpl.merge(CommonServiceImpl.java:244)
at eu.etaxonomy.cdm.api.service.CommonServiceImpl.merge(CommonServiceImpl.java:276)
at sun.reflect.GeneratedMethodAccessor40443.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
at com.sun.proxy.$Proxy1675.merge(Unknown Source)
at sun.reflect.GeneratedMethodAccessor40443.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.remoting.support.RemoteInvocationTraceInterceptor.invoke(RemoteInvocationTraceInterceptor.java:78)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
at com.sun.proxy.$Proxy2034.merge(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
Updated by Andreas Müller over 2 years ago
- Status changed from New to Resolved
- Target version changed from Unassigned CDM tickets to Release 5.28
- % Done changed from 0 to 40
I guess this was fixed with c3794190 . Please verify and move to v4.8 if correct.
Updated by Katja Luther over 2 years ago
- Status changed from Resolved to Closed
- Target version changed from Release 5.28 to Release 4.8
Tested with two open editors and deduplicated the same references. Saving the second deduplication results in a merge exception saying that the merge target not available anymore, this is expected behavior.