Uploaded image for project: 'FishEye'
  1. FishEye
  2. FE-6577

Hibernate issues around processing watches

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Low
    • 4.2.0
    • 4.0.0, 4.0.4
    • None
    • None

    Description

      Summary

      Notification emails are not sent to repository watchers after upgrading to FishEye 4.+.

      Steps to Reproduce

      1. N/A

      Expected Results

      Notification emails are successfully sent.

      Actual Results

      Notification emails are not sent on some repositories.
      One of the below exceptions is thrown in the atlassian-fisheye.log file:

      Exception #1
      ERROR [FE-WatchChecker ] org.hibernate.engine.jdbc.spi.SqlExceptionHelper SqlExceptionHelper-logExceptions - Violation of UNIQUE KEY constraint 'uk_watch_key'. Cannot insert duplicate key in object 'dbo.cru_watch'. The duplicate key value is (041A4C7A80108E44483G285D062879DFFD68D98C6AE590E56B902F4D512040E7).
      

      Or the following

      Exception #2
      SessionState-commitAllTx - Commit failed. Rolling back.
      org.hibernate.PropertyAccessException: Exception occurred inside getter of com.cenqua.fisheye.web.Watch.watchKey
              at org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:167) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at org.hibernate.tuple.entity.AbstractEntityTuplizer.getPropertyValues(AbstractEntityTuplizer.java:609) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at org.hibernate.tuple.entity.PojoEntityTuplizer.getPropertyValues(PojoEntityTuplizer.java:392) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at org.hibernate.persister.entity.AbstractEntityPersister.getPropertyValues(AbstractEntityPersister.java:4530) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at org.hibernate.event.internal.DefaultFlushEntityEventListener.getValues(DefaultFlushEntityEventListener.java:198) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at org.hibernate.event.internal.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:157) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at org.hibernate.event.internal.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:230) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:100) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:55) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1159) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:404) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:175) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at com.cenqua.crucible.hibernate.SessionState.commit(SessionState.java:165) [fisheye.jar:?]
              at com.cenqua.crucible.hibernate.SessionState.commitAllTx(SessionState.java:118) [fisheye.jar:?]
              at com.cenqua.crucible.hibernate.SessionState.commitTx(SessionState.java:109) [fisheye.jar:?]
              at com.cenqua.crucible.hibernate.HibernateUtil.commitTransaction(HibernateUtil.java:382) [fisheye.jar:?]
              at com.atlassian.fecru.tx.TxHelperStylePlatformTransactionManager.commit(TxHelperStylePlatformTransactionManager.java:45) [fisheye.jar:?]
              at com.atlassian.fisheye.spi.impl.DefaultTxTemplate.execute(DefaultTxTemplate.java:88) [fisheye.jar:?]
              at com.cenqua.fisheye.web.DefaultWatchManager.updateWatch(DefaultWatchManager.java:438) [fisheye.jar:?]
              at com.cenqua.fisheye.web.DefaultWatchManager.checkWatch(DefaultWatchManager.java:577) [fisheye.jar:?]
              at com.cenqua.fisheye.web.DefaultWatchManager.access$300(DefaultWatchManager.java:74) [fisheye.jar:?]
              at com.cenqua.fisheye.web.DefaultWatchManager$WatchChecker.checkWatchesForRep(DefaultWatchManager.java:294) [fisheye.jar:?]
              at com.cenqua.fisheye.web.DefaultWatchManager$WatchChecker.checkWatchesForRep(DefaultWatchManager.java:232) [fisheye.jar:?]
              at com.cenqua.fisheye.web.DefaultWatchManager$WatchChecker.run(DefaultWatchManager.java:202) [fisheye.jar:?]
              at java.lang.Thread.run(Thread.java:745) [?:1.8.0_92]
      Caused by: java.lang.reflect.InvocationTargetException
              at sun.reflect.GeneratedMethodAccessor1833.invoke(Unknown Source) [?:?]
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [?:1.8.0_92]
              at java.lang.reflect.Method.invoke(Method.java:498) [?:1.8.0_92]
              at org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:164) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              ... 25 more
      Caused by: org.hibernate.TransactionException: nested transactions not supported
              at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.begin(AbstractTransactionImpl.java:152) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at org.hibernate.internal.SessionImpl.beginTransaction(SessionImpl.java:1351) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at com.cenqua.crucible.hibernate.SessionState.beginTx(SessionState.java:60) [fisheye.jar:?]
              at com.cenqua.crucible.hibernate.HibernateUtil.beginTransaction(HibernateUtil.java:372) [fisheye.jar:?]
              at com.atlassian.fecru.tx.TxHelperStylePlatformTransactionManager.getTransaction(TxHelperStylePlatformTransactionManager.java:34) [fisheye.jar:?]
              at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:420) [spring-tx-4.0.9.RELEASE.jar:4.0.9.RELEASE]
              at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:257) [spring-tx-4.0.9.RELEASE.jar:4.0.9.RELEASE]
              at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95) [spring-tx-4.0.9.RELEASE.jar:4.0.9.RELEASE]
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) [spring-aop-4.0.9.RELEASE.jar:4.0.9.RELEASE]
              at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) [spring-aop-4.0.9.RELEASE.jar:4.0.9.RELEASE]
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) [spring-aop-4.0.9.RELEASE.jar:4.0.9.RELEASE]
              at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) [spring-aop-4.0.9.RELEASE.jar:4.0.9.RELEASE]
              at com.sun.proxy.$Proxy52.findByName(Unknown Source) [?:?]
              at com.atlassian.crowd.embedded.core.CrowdEmbeddedApplicationFactory.getApplication(CrowdEmbeddedApplicationFactory.java:25) [embedded-crowd-core-2.8.5-m1.jar:?]
              at com.atlassian.crowd.embedded.core.CrowdServiceImpl.getApplication(CrowdServiceImpl.java:891) [embedded-crowd-core-2.8.5-m1.jar:?]
              at com.atlassian.crowd.embedded.core.CrowdServiceImpl.getUser(CrowdServiceImpl.java:87) [embedded-crowd-core-2.8.5-m1.jar:?]
              at com.cenqua.crucible.hibernate.CrowdAwareUserLoadListener.getCrowdUser(CrowdAwareUserLoadListener.java:64) [fisheye.jar:?]
              at com.cenqua.crucible.hibernate.CrowdAwareUserLoadListener.setCrowdUserIfNecessary(CrowdAwareUserLoadListener.java:132) [fisheye.jar:?]
              at com.cenqua.crucible.hibernate.CrowdAwareUserLoadListener.onPostLoad(CrowdAwareUserLoadListener.java:86) [fisheye.jar:?]
              at org.hibernate.event.internal.DefaultLoadEventListener.convertCacheEntryToEntity(DefaultLoadEventListener.java:703) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at org.hibernate.event.internal.DefaultLoadEventListener.loadFromSecondLevelCache(DefaultLoadEventListener.java:572) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:423) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:208) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at com.cenqua.crucible.hibernate.CrowdAwareUserLoadListener.load(CrowdAwareUserLoadListener.java:109) [fisheye.jar:?]
              at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:147) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1017) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at org.hibernate.internal.SessionImpl.immediateLoad(SessionImpl.java:932) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:174) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:286) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:185) [hibernate-core-4.2.13.Final.jar:4.2.13.Final]
              at com.atlassian.fecru.user.FecruUser_$$_jvst3e6_5f.getUsername(FecruUser_$$_jvst3e6_5f.java) [fisheye.jar:?]
              at com.cenqua.fisheye.web.Watch.username(Watch.java:133) [fisheye.jar:?]
              at com.cenqua.fisheye.web.Watch.getUsername(Watch.java:129) [fisheye.jar:?]
              at com.cenqua.fisheye.web.Watch.getWatchKey(Watch.java:159) [fisheye.jar:?]
      

      Attachments

        Issue Links

          Activity

            People

              mswinarski Maciej Swinarski (Inactive)
              mswinarski Maciej Swinarski (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: