[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-2557) NPE in IdentityMap.IdentityKey.equals()

Max Rydahl Andersen (JIRA) noreply at atlassian.com
Wed Apr 11 14:02:04 EDT 2007


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-2557?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_26687 ] 

Max Rydahl Andersen commented on HHH-2557:
------------------------------------------

eh yes, but when will that become an issue when using hibernate ? It should never get into a state where it want to check for null.....except maybe if you ignored a thrown exception or something.


> NPE in IdentityMap.IdentityKey.equals()
> ---------------------------------------
>
>                 Key: HHH-2557
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2557
>             Project: Hibernate3
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 3.2.3
>            Reporter: Anders Wallgren
>         Attachments: IdentityMapTest.java
>
>
> The equals method in org.hibernate.util.IdentityMap.IdentityKey doesn't handle null objects: 
> {code}
> java.lang.NullPointerException
> 	at org.hibernate.util.IdentityMap$IdentityKey.equals(IdentityMap.java:103)
> 	at java.util.HashMap.get(HashMap.java:305)
> 	at org.apache.commons.collections.SequencedHashMap.get(SequencedHashMap.java:288)
> 	at org.hibernate.util.IdentityMap.get(IdentityMap.java:135)
> 	at org.hibernate.engine.StatefulPersistenceContext.getEntry(StatefulPersistenceContext.java:355)
> 	at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:54)
> 	at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
> 	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232)
> 	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)
> 	at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:301)
> 	at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
> 	at com.electriccloud.dao.HibernateFlushListener.onFlush(HibernateFlushListener.java:49)
> 	at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
> 	at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
> 	at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
> 	at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:575)
> 	at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:651)
> 	at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:621)
> 	at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:311)
> 	at com.electriccloud.dao.TransactionAspect.withTransaction(TransactionAspect.java:121)
> 	at sun.reflect.GeneratedMethodAccessor31.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:576)
> 	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:562)
> 	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:60)
> 	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
> 	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:76)
> 	at com.electriccloud.operations.ConcurrentRetryAspect.performWithRetry(ConcurrentRetryAspect.java:168)
> 	at sun.reflect.GeneratedMethodAccessor56.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:576)
> 	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:562)
> 	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:60)
> 	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
> 	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:76)
> 	at com.electriccloud.operations.OperationTimingAspect.logOperationPerformance(OperationTimingAspect.java:110)
> 	at sun.reflect.GeneratedMethodAccessor28.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:576)
> 	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:562)
> 	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:60)
> 	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
> 	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
> 	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
> 	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:203)
> 	at $Proxy97.perform(Unknown Source)
> 	at com.electriccloud.operations.OperationInvoker.invoke(OperationInvoker.java:190)
> 	at com.electriccloud.operations.OperationCaller.call(OperationCaller.java:126)
> 	at com.electriccloud.operations.OperationCaller.call(OperationCaller.java:36)
> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
> 	at java.lang.Thread.run(Thread.java:619)
> 	at com.electriccloud.util.queue.CommanderThread.run(CommanderThread.java:78)
> {code}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the hibernate-issues mailing list