Project

General

Profile

bug #5710

Changing the database connection must reset all caches

Added by Andreas Müller over 4 years ago. Updated about 1 month ago.

Status:
Feedback
Priority:
Highest
Category:
taxeditor
Target version:
Start date:
04/13/2016
Due date:
% Done:

20%

Severity:
critical
Found in Version:

Description

In standalone the caches for static methods were reset during creation of the spring context. This does not take place anymore therefore we need to reload or empty all caches.

This is especially the second level cache (currently called CdmServiceCacher) for terms and vocabularies and all static methods (e.g. in Rank and NomenclaturalStatusType).

This is a critical issue as it is a regression and it may create incorrect or even invalid data.

Probably duplicated by #5512 and #5539

In my case it created an alternative name instead of a later homonym relationship.

Associated revisions

Revision d68c7480 (diff)
Added by Katja Luther over 4 years ago

fix for #5710 reset the terms when changing the datasource in remoting

Revision fdb1753a (diff)
Added by Andreas Müller 4 months ago

ref #5710 run term reset on all Term classes

Revision 9d700cfc (diff)
Added by Andreas Müller 3 months ago

ref #5710 add reset to TermManager after reconnect

History

#1 Updated by Katja Luther over 4 years ago

r27708 should fix this.

#2 Updated by Katja Luther over 4 years ago

  • Status changed from New to Resolved
  • Assignee changed from k.luther - to Andreas Müller

reset the terms before connecting to a new datasource see r27765

#3 Updated by Andreas Müller over 4 years ago

In Mexico Rubiaceae I observered that I added NamedAreaLevel und Type to existing areas but they resulted in wrong ID in the database. This very much reminded me to this ticket. I am not 100% sure if I added level and type after changing the database connection but definetely we need to test this ticket intensively before closing.

#4 Updated by Andreas Müller 4 months ago

  • Description updated (diff)
  • Status changed from Resolved to Feedback
  • Target version changed from Release 4.0 to Release 5.18
  • Private changed from Yes to No

This is not yet fixed as we watched in the past multiple times that switching between instances created serious problems as terms were referencing wrong ids after the switch.

I did now improve the first reset() functionality (reset for static methods) to include not only the Rank and NomenclaturalStatusType class but all managed term classes.
We need to check how far this solves the problem.

However, I guess that also the term term cache(s) (terms and vocabularies) need to be fully emptied/replaced. I can't see that this is already done in the code, but maybe I only look at the wrong place.

#5 Updated by Andreas Müller 3 months ago

  • Status changed from Feedback to In Progress

#6 Updated by Andreas Müller 3 months ago

  • Description updated (diff)

It looks like emptying the cache is done in CdmStoreConnector in this line

CdmStore.setInstance(applicationController, cdmSource);

Which calls

CdmApplicationState.setCdmServiceCacher(new CdmServiceCacher());

and calling the construtor of CdmServiceCacher calls setup() in this class which then calls

        DefinedTermBase.setCacher(this);
        CdmTransientEntityCacher.setPermanentCacher(this);
        //TermServiceRequestExecutor.setDefaultCacher(this);
        RemoteInvocationTermCacher.setDefaultCacher(this);

and resets the cache in DefinedTermBase (and others) this way

#7 Updated by Andreas Müller 3 months ago

  • Status changed from In Progress to Resolved
  • % Done changed from 0 to 40

There is a cache also in TermManager !!!

This is currently not emptied when connecting to a new datasource.

I added TermManager.reset() with commit 9d700cfc23f6e13931

#8 Updated by Andreas Müller 3 months ago

This needs to be checked if this fully solves the problem

#11 Updated by Andreas Müller 3 months ago

  • Assignee changed from Andreas Müller to Katja Luther

Can you please test the results of the latest changes and see if the problem still exists by testing with data related to different term types (not only Rank and NomenclaturalStatusType).
After testing please return back to me.

#12 Updated by Katja Luther about 1 month ago

Hast Du Beispiel Datenbanken mit denen ich testen kann?

#13 Updated by Andreas Müller about 1 month ago

Nicht wirklich, es sollte aber überall dort funktionieren, wo möglichst viele Terme sich in ihrer ID unterscheiden, weil später mal ein Term in einem "frühen" Vokabular hinzugefügt wurde. Wenn man das Arbeiten und editieren mit solchen sich ID-seitig unterscheidenden Termen nach einem Datasource wechsel testet, trat früher oft ein Fehler auf (z.B. ein falscher Rang wurde verwendet oder so). Ein klares Kochrezept habe ich aber noch nicht.

#14 Updated by Katja Luther about 1 month ago

  • Status changed from Resolved to Feedback
  • Assignee changed from Katja Luther to Andreas Müller

Testing between caryophyllales_spp, palmae and algaterra on test, after adding a new nomenclatural status in algaterra results in:

last remote method : http://test.e-taxonomy.eu:80/cdmserver/algaterra/remoting/taxonnode.service
last remote request client time : 2020-08-18T09:03:37.504
last remote request response header time : Tue, 18 Aug 2020 09:03:43 GMT
client error time : 2020-08-18T09:03:37.662
login : admin
editor version : 5.17.0.202008132255
server : test.e-taxonomy.eu (edit-test) / algaterra
schema version : 5.15.2.0.20200611
os : Windows 7 6.1 amd64
java : 1.8.0_171
org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [eu.etaxonomy.cdm.model.name.NomenclaturalStatusType#845]
    at org.hibernate.boot.internal.StandardEntityNotFoundDelegate.handleEntityNotFound(StandardEntityNotFoundDelegate.java:28)
    at org.hibernate.proxy.AbstractLazyInitializer.checkTargetState(AbstractLazyInitializer.java:242)
    at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:159)
    at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:266)
    at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:68)
    at eu.etaxonomy.cdm.model.name.NomenclaturalStatusType_$$_jvst534_5b.getPreferredRepresentation(NomenclaturalStatusType_$$_jvst534_5b.java)
    at eu.etaxonomy.cdm.strategy.cache.name.TaxonNameDefaultCacheStrategy.getNomStatusTags(TaxonNameDefaultCacheStrategy.java:349)
    at eu.etaxonomy.cdm.strategy.cache.taxon.TaxonBaseDefaultCacheStrategy.getNameTags(TaxonBaseDefaultCacheStrategy.java:106)
    at eu.etaxonomy.cdm.strategy.cache.taxon.TaxonBaseDefaultCacheStrategy.getTaggedTitle(TaxonBaseDefaultCacheStrategy.java:65)
    at eu.etaxonomy.cdm.model.taxon.TaxonBase.getTaggedTitle(TaxonBase.java:231)
    at eu.etaxonomy.cdm.persistence.dao.initializer.TitleAndNameCacheAutoInitializer.initialize(TitleAndNameCacheAutoInitializer.java:84)
    at eu.etaxonomy.cdm.persistence.dao.initializer.TitleAndNameCacheAutoInitializer.initialize(TitleAndNameCacheAutoInitializer.java:32)
    at eu.etaxonomy.cdm.persistence.dao.initializer.AdvancedBeanInitializer.autoinitializeBean(AdvancedBeanInitializer.java:382)
    at eu.etaxonomy.cdm.persistence.dao.initializer.AdvancedBeanInitializer.bulkLoadLazyBeans(AdvancedBeanInitializer.java:473)
    at eu.etaxonomy.cdm.persistence.dao.initializer.AdvancedBeanInitializer.bulkLoadLazies(AdvancedBeanInitializer.java:434)
    at eu.etaxonomy.cdm.persistence.dao.initializer.AdvancedBeanInitializer.initializeNodeNoWildcard(AdvancedBeanInitializer.java:245)
    at eu.etaxonomy.cdm.persistence.dao.initializer.AdvancedBeanInitializer.initializeNode(AdvancedBeanInitializer.java:126)
    at eu.etaxonomy.cdm.persistence.dao.initializer.AdvancedBeanInitializer.initializeNodeRecursive(AdvancedBeanInitializer.java:106)
    at eu.etaxonomy.cdm.persistence.dao.initializer.AdvancedBeanInitializer.initializeNodeRecursive(AdvancedBeanInitializer.java:108)
    at eu.etaxonomy.cdm.persistence.dao.initializer.AdvancedBeanInitializer.initializeAll(AdvancedBeanInitializer.java:86)
    at eu.etaxonomy.cdm.persistence.dao.initializer.AdvancedBeanInitializer.initialize(AdvancedBeanInitializer.java:58)
    at eu.etaxonomy.cdm.persistence.dao.hibernate.common.CdmEntityDaoBase.load(CdmEntityDaoBase.java:786)
    at eu.etaxonomy.cdm.persistence.dao.hibernate.common.VersionableDaoBase.load(VersionableDaoBase.java:113)
    at eu.etaxonomy.cdm.persistence.dao.hibernate.common.VersionableDaoBase.load(VersionableDaoBase.java:106)
    at eu.etaxonomy.cdm.persistence.dao.hibernate.common.VersionableDaoBase.load(VersionableDaoBase.java:36)
    at eu.etaxonomy.cdm.api.service.ServiceBase.load(ServiceBase.java:208)
    at eu.etaxonomy.cdm.api.service.ServiceBase.load(ServiceBase.java:42)
    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)
    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.$Proxy4181.load(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)
    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.$Proxy4330.load(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)
    at org.springframework.remoting.support.RemoteInvocation.invoke(RemoteInvocation.java:212)
    at eu.etaxonomy.cdm.api.remoting.DebuggingRemoteInvocationExecutor.invoke(DebuggingRemoteInvocationExecutor.java:52)
    at org.springframework.remoting.support.RemoteInvocationBasedExporter.invoke(RemoteInvocationBasedExporter.java:78)
    at org.springframework.remoting.support.RemoteInvocationBasedExporter.invokeAndCreateResult(RemoteInvocationBasedExporter.java:114)
    at org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter.handleRequest(HttpInvokerServiceExporter.java:74)
    at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:51)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:969)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:871)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:845)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.eclipse.jetty.servlet.ServletHolder$NotAsyncServlet.service(ServletHolder.java:1395)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:755)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1617)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:316)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:122)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:169)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:48)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:213)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:120)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:91)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:53)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:213)
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:176)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
    at eu.etaxonomy.cdm.servlet.DateHeaderFilter.doFilter(DateHeaderFilter.java:55)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:590)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1607)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1297)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1577)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1212)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
    at eu.etaxonomy.cdm.server.logging.InstanceLogWrapper.handle(InstanceLogWrapper.java:47)
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:221)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
    at org.eclipse.jetty.server.Server.handle(Server.java:500)
    at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
    at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:547)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
    at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
    at java.lang.Thread.run(Thread.java:748)
    at org.springframework.remoting.support.RemoteInvocationUtils.fillInClientStackTraceIfPossible(RemoteInvocationUtils.java:45)
    at org.springframework.remoting.support.RemoteInvocationResult.recreate(RemoteInvocationResult.java:149)
    at org.springframework.remoting.support.RemoteInvocationBasedAccessor.recreateRemoteInvocationResult(RemoteInvocationBasedAccessor.java:85)
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:150)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
    at com.sun.proxy.$Proxy47.load(Unknown Source)
    at eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInputE4.initForTaxonNode(TaxonEditorInputE4.java:124)
    at eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInputE4.<init>(TaxonEditorInputE4.java:113)
    at eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInputE4.NewInstance(TaxonEditorInputE4.java:262)
    at eu.etaxonomy.taxeditor.editor.EditorUtil.openTaxonNodeE4(EditorUtil.java:194)
    at eu.etaxonomy.taxeditor.navigation.NavigationUtil.openEditor(NavigationUtil.java:70)
    at eu.etaxonomy.taxeditor.navigation.navigator.e4.TaxonNavigatorE4.lambda$0(TaxonNavigatorE4.java:179)
    at org.eclipse.jface.viewers.StructuredViewer$1.run(StructuredViewer.java:833)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:50)
    at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:173)
    at org.eclipse.jface.viewers.StructuredViewer.fireDoubleClick(StructuredViewer.java:830)
    at org.eclipse.jface.viewers.AbstractTreeViewer.handleDoubleSelect(AbstractTreeViewer.java:1470)
    at org.eclipse.jface.viewers.StructuredViewer$4.widgetDefaultSelected(StructuredViewer.java:1264)
    at org.eclipse.jface.util.OpenStrategy.fireDefaultSelectionEvent(OpenStrategy.java:252)
    at org.eclipse.jface.util.OpenStrategy.access$0(OpenStrategy.java:249)
    at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:311)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4418)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4236)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3824)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1121)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1022)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:150)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:693)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:610)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
    at eu.etaxonomy.taxeditor.Application.start(Application.java:20)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)

#15 Updated by Andreas Müller about 1 month ago

  • Target version changed from Release 5.18 to Release 5.19
  • % Done changed from 40 to 20

Thank you for testing. So it still does not work and I will move it forward to the next milestone.

#16 Updated by Andreas Müller about 1 month ago

  • Target version changed from Release 5.19 to Release 5.18

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 40 MB)