jmix icon indicating copy to clipboard operation
jmix copied to clipboard

StackOverflowError occurs in EntityChangedEvent listener when DynamicAttributesPanel is used in editor

Open Flaurite opened this issue 3 years ago • 0 comments

Description

Project contains EntityChangedEvent handler for Task entity. It does the same logic like in the documentation example: doc link.

Demo project: jmixpm.zip

Steps to reproduce

  1. Download demo project above.
  2. Create Project entity instance without tasks.
  3. Edit it again and create Task:
  • fill task name
  • fill project field
  • fill assignee
  • select category and fill the field
  1. Save Task and Project.

The part of stacktrace that is repeated

	at com.company.jmixpm.app.TaskChangedListener.onTaskChangedEvent(TaskChangedListener.java:43)
	at jdk.internal.reflect.GeneratedMethodAccessor208.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.springframework.context.event.ApplicationListenerMethodAdapter.doInvoke(ApplicationListenerMethodAdapter.java:344)
	at org.springframework.context.event.ApplicationListenerMethodAdapter.processEvent(ApplicationListenerMethodAdapter.java:229)
	at org.springframework.context.event.ApplicationListenerMethodAdapter.onApplicationEvent(ApplicationListenerMethodAdapter.java:166)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:421)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:378)
	at io.jmix.eclipselink.impl.EntityChangedEventManager.publish(EntityChangedEventManager.java:164)
	at io.jmix.eclipselink.impl.JpaDataStore.beforeSaveTransactionCommit(JpaDataStore.java:451)
	at io.jmix.core.datastore.AbstractDataStore.save(AbstractDataStore.java:229)
	at io.jmix.eclipselink.impl.JpaDataStore.save(JpaDataStore.java:227)
	at io.jmix.core.impl.UnconstrainedDataManagerImpl.saveContextToStore(UnconstrainedDataManagerImpl.java:257)
	at io.jmix.core.impl.UnconstrainedDataManagerImpl.save(UnconstrainedDataManagerImpl.java:216)
	at io.jmix.core.impl.UnconstrainedDataManagerImpl.save(UnconstrainedDataManagerImpl.java:135)
	at com.company.jmixpm.app.TaskChangedListener.onTaskChangedEvent(TaskChangedListener.java:43)
	at jdk.internal.reflect.GeneratedMethodAccessor208.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.springframework.context.event.ApplicationListenerMethodAdapter.doInvoke(ApplicationListenerMethodAdapter.java:344)
	at org.springframework.context.event.ApplicationListenerMethodAdapter.processEvent(ApplicationListenerMethodAdapter.java:229)
	at org.springframework.context.event.ApplicationListenerMethodAdapter.onApplicationEvent(ApplicationListenerMethodAdapter.java:166)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:421)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:378)
	at io.jmix.eclipselink.impl.EntityChangedEventManager.publish(EntityChangedEventManager.java:164)
	at io.jmix.eclipselink.impl.JpaDataStore.beforeSaveTransactionCommit(JpaDataStore.java:451)
	at io.jmix.core.datastore.AbstractDataStore.save(AbstractDataStore.java:229)
	at io.jmix.eclipselink.impl.JpaDataStore.save(JpaDataStore.java:227)
	at io.jmix.core.impl.UnconstrainedDataManagerImpl.saveContextToStore(UnconstrainedDataManagerImpl.java:257)
	at io.jmix.core.impl.UnconstrainedDataManagerImpl.save(UnconstrainedDataManagerImpl.java:216)
	at io.jmix.core.impl.UnconstrainedDataManagerImpl.save(UnconstrainedDataManagerImpl.java:135)
	at com.company.jmixpm.app.TaskChangedListener.onTaskChangedEvent(TaskChangedListener.java:43)

Flaurite avatar Aug 23 '22 08:08 Flaurite