Details
-
Bug
-
Status: Closed
-
Resolution: Fixed
-
Master
-
7.3.x, 7.2.x
-
Committed
-
3
-
- com.liferay.commerce.shipment.test.CommerceShipmentItemTest
- com.liferay.commerce.shipment.test.CommerceShipmentTest
- com.liferay.commerce.subscription.test.CommerceDeliverySubscriptionsTest
- com.liferay.commerce.subscription.test.CommercePaymentSubscriptionsTest
- com.liferay.commerce.subscription.test.CommerceSubscriptionEntryTest
- com.liferay.commerce.test.CommerceCheckoutTest
- com.liferay.commerce.wish.list.service.persistence.test.CommerceWishListItemPersistenceTest
- com.liferay.commerce.wish.list.service.persistence.test.CommerceWishListPersistenceTest
- com.liferay.company.service.test.CompanyInfoLocalServiceTest
- com.liferay.company.service.test.CompanyLocalServiceTest
- com.liferay.configuration.admin.internal.portlet.action.test.ExportConfigurationMVCResourceCommandTest
- com.liferay.configuration.admin.internal.search.test.ConfigurationModelIndexerTest
- com.liferay.configuration.admin.internal.test.ConfigurationAdminTest
- com.liferay.configuration.admin.internal.util.test.ConfigurationDDMFormDeclarationUtilTest
- com.liferay.contacts.search.test.ContactIndexerIndexedFieldsTest
- com.liferay.contacts.search.test.ContactIndexerReindexTest
- com.liferay.contacts.search.test.ContactMultiLanguageSearchTest
- com.liferay.contacts.service.test.ContactLocalServiceTest
- com.liferay.contacts.uad.anonymizer.test.EntryUADAnonymizerTest
- com.liferay.headless.commerce.admin.account.resource.v1_0.test.AccountMemberResourceTest
- com.liferay.headless.commerce.admin.channel.resource.v1_0.test.ChannelResourceTest
- com.liferay.headless.commerce.admin.order.resource.v1_0.test.OrderResourceTest
- com.liferay.headless.commerce.admin.order.resource.v1_0.test.OrderRuleAccountGroupResourceTest
- com.liferay.headless.commerce.admin.order.resource.v1_0.test.OrderRuleAccountResourceTest
- com.liferay.headless.commerce.admin.order.resource.v1_0.test.OrderRuleChannelResourceTest
- com.liferay.headless.commerce.admin.order.resource.v1_0.test.OrderRuleOrderTypeResourceTest
- com.liferay.headless.commerce.admin.order.resource.v1_0.test.OrderRuleResourceTest
- com.liferay.headless.commerce.admin.order.resource.v1_0.test.OrderTypeChannelResourceTest
- com.liferay.headless.commerce.admin.order.resource.v1_0.test.OrderTypeResourceTest
- com.liferay.headless.commerce.admin.pricing.resource.v2_0.test.DiscountAccountGroupResourceTest
- com.liferay.headless.commerce.admin.pricing.resource.v2_0.test.DiscountOrderTypeResourceTest
- com.liferay.headless.commerce.admin.pricing.resource.v2_0.test.PriceListOrderTypeResourceTest
- com.liferay.headless.commerce.admin.shipment.resource.v1_0.test.ShipmentItemResourceTest
- com.liferay.headless.commerce.admin.shipment.resource.v1_0.test.ShipmentResourceTest
- com.liferay.headless.commerce.admin.shipment.resource.v1_0.test.ShippingAddressResourceTest
-
175
Description
The instance delete operation is creating some orphan entries in the SystemEvent table.
The created entries are related to some groups of the company that was deleted.
Root cause
- The deleteGroup(Group group) method in the GroupLocalServiceImpl class deletes all the SystemEvent entries of the deleted group
- But the deletion is done before the listeners are executed, so any deletion done in a GroupModelListener, will generate a orphan entry in the SystemEvent table
Steps to reproduce
- Double check that there are no orphan entries in the SystemEvent table, executing this SQL:
select * from SystemEvent where groupId not in (select groupId from Group_)
- Go to Control Panel => Virtual instances
- Create a new instance
- Once the instance is completely created, delete it
- Execute again the SQL of step 1:
- Expected result: the SQL doesn't return any record
- Wrong result: the SQL returns some records
- Expected result: the SQL doesn't return any record
Additional Information
This issue was detected by a failure of the CompanyLocalServiceTest integration test, see LRQA-70796
[exec] com.liferay.company.service.test.CompanyLocalServiceTest > testAddAndDeleteCompany FAILED [exec] java.lang.AssertionError: com.liferay.company.service.test.CompanyLocalServiceTest caused leftover data for class :com.liferay.portal.kernel.model.SystemEvent with data : [ [exec] {"mvccVersion": 0, "ctCollectionId": 0, "systemEventId": 107358, "groupId": 104366, "companyId": 20100, "userId": 20128, "userName": "Test Test", "createDate": "2021-10-11 07:18:36.155", "classNameId": 29402, "classPK": 106594, "classUuid": "b2d53fa7-b29c-232a-a200-956d56288aa6", "referrerClassNameId": 0, "parentSystemEventId": 0, "systemEventSetKey": 107359, "type": 1, "extraData": ""} with backtrace info, [exec] Thread name : com.liferay.company.test-executor-thread, id : 523, created : {"mvccVersion": 0, "ctCollectionId": 0, "systemEventId": 107358, "groupId": 104366, "companyId": 20100, "userId": 20128, "userName": "Test Test", "createDate": "Mon Oct 11 07:18:36 GMT 2021", "classNameId": 29402, "classPK": 106594, "classUuid": "b2d53fa7-b29c-232a-a200-956d56288aa6", "referrerClassNameId": 0, "parentSystemEventId": 0, "systemEventSetKey": 107359, "type": 1, "extraData": ""} at [exec] java.lang.Exception [exec] at com.liferay.portal.kernel.test.rule.DataGuardTestRuleUtil$RecordingSessionWrapper._record(DataGuardTestRuleUtil.java:681) [exec] at com.liferay.portal.kernel.test.rule.DataGuardTestRuleUtil$RecordingSessionWrapper.save(DataGuardTestRuleUtil.java:640) [exec] at com.liferay.portal.service.persistence.impl.SystemEventPersistenceImpl.updateImpl(SystemEventPersistenceImpl.java:2633) [exec] at com.liferay.portal.service.persistence.impl.SystemEventPersistenceImpl.updateImpl(SystemEventPersistenceImpl.java:73) [exec] at com.liferay.portal.kernel.service.persistence.impl.BasePersistenceImpl.update(BasePersistenceImpl.java:781) [exec] at com.liferay.portal.service.impl.SystemEventLocalServiceImpl.addSystemEvent(SystemEventLocalServiceImpl.java:266) [exec] at com.liferay.portal.service.impl.SystemEventLocalServiceImpl.addSystemEvent(SystemEventLocalServiceImpl.java:75) [exec] at sun.reflect.GeneratedMethodAccessor616.invoke(Unknown Source) [exec] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [exec] at java.lang.reflect.Method.invoke(Method.java:498) [exec] at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:50) [exec] at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:69) [exec] at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:57) [exec] at com.liferay.portal.spring.aop.AopInvocationHandler.invoke(AopInvocationHandler.java:49) [exec] at com.sun.proxy.$Proxy55.addSystemEvent(Unknown Source) [exec] at com.liferay.portal.kernel.service.SystemEventLocalServiceUtil.addSystemEvent(SystemEventLocalServiceUtil.java:53) [exec] at com.liferay.portal.systemevent.SystemEventAdvice.afterReturning(SystemEventAdvice.java:135) [exec] at com.liferay.portal.kernel.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:66) [exec] at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:57) [exec] at com.liferay.portal.kernel.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:64) [exec] at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:57) [exec] at com.liferay.portal.spring.aop.AopInvocationHandler.invoke(AopInvocationHandler.java:49) [exec] at com.sun.proxy.$Proxy889.deleteLayoutPageTemplateEntry(Unknown Source) [exec] at com.liferay.layout.page.template.internal.model.listener.GroupModelListener.onBeforeRemove(GroupModelListener.java:72) [exec] at com.liferay.layout.page.template.internal.model.listener.GroupModelListener.onBeforeRemove(GroupModelListener.java:38) [exec] at com.liferay.portal.kernel.service.persistence.impl.BasePersistenceImpl.remove(BasePersistenceImpl.java:663) [exec] at com.liferay.portal.service.impl.GroupLocalServiceImpl.deleteGroup(GroupLocalServiceImpl.java:1119) [exec] at sun.reflect.GeneratedMethodAccessor707.invoke(Unknown Source) [exec] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [exec] at java.lang.reflect.Method.invoke(Method.java:498) [exec] at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:50) [exec] at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:69) [exec] at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:57) [exec] at com.liferay.portal.kernel.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:64) [exec] at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:57) [exec] at com.liferay.portal.spring.aop.AopInvocationHandler.invoke(AopInvocationHandler.java:49) [exec] at com.sun.proxy.$Proxy67.deleteGroup(Unknown Source) [exec] at com.liferay.portal.service.impl.CompanyLocalServiceImpl$DeleteGroupActionableDynamicQuery.deleteGroup(CompanyLocalServiceImpl.java:1736)
Attachments
Issue Links
- is related to
-
LPS-138761 Instance delete operation is not deleting the instance data on all database tables
- Closed