Skip to content

AAE-52887 Fix(audit): omit null precedence in timestamp DESC queries- #2850 - #2851

Merged
eromano merged 3 commits into
developfrom
fix/AAE-52887-omit-null-in-all
Nov 8, 2026
Merged

eromano merged 3 commits into
developfrom
fix/AAE-52887-omit-null-in-all

Conversation

@eromano

@eromano eromano commented Nov 8, 2026

Copy link
Copy Markdown
Contributor

Summary
Use PostgreSQL-native null ordering for timestamp sorts in the v2 audit events endpoint, preventing Hibernate from adding NULLS FIRST or NULLS LAST to generated SQL.
Preserve other client-provided sort fields and pagination behavior.
Add SQL regression coverage for default, ascending, and descending timestamp sorts.

@github-actions github-actions Bot added the bug Something isn't working label Nov 8, 2026
Co-authored-by: eromano <1030050+eromano@users.noreply.github.com>
@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.

✅ eromano
❌ Copilot
You have signed the CLA already but the status is still pending? Let us recheck it.

@github-actions

github-actions Bot commented Nov 8, 2026 •

Copy link
Copy Markdown

playswag — API Coverage Report

Dimension Covered Total %
Endpoints 135 140 🟢 96.4%
Status Codes 214 937 🔴 22.8%
Parameters 136 688 🔴 19.8%
Body Properties 127 668 🔴 19.0%
Response Properties 1215 3549 🔴 34.2%

Coverage by Tag

Tag Endpoints Status Codes Parameters Body Props Resp Props
task-controller-impl 🟢 100.0% 🔴 17.7% 🟡 56.3% 🟡 60.6% 🔴 40.4%
task-variable-controller-impl 🟢 100.0% 🔴 12.5% 🟢 100.0% 🟢 80.0% 🔴 4.8%
process-instance-controller-impl 🟢 100.0% 🔴 17.0% 🟡 57.1% 🔴 45.2% 🔴 42.0%
process-instance-variable-controller-impl 🟢 100.0% 🔴 12.5% 🟢 100.0% 🟡 50.0% 🔴 6.7%
task-admin-controller-impl 🟢 100.0% 🔴 12.5% 🟡 62.5% 🟡 57.1% 🔴 31.3%
task-variable-admin-controller-impl 🟢 100.0% 🔴 12.5% 🟢 100.0% 🟢 80.0% 🔴 4.8%
process-instance-admin-controller-impl 🟢 100.0% 🔴 13.6% 🟡 57.1% 🔴 39.1% 🔴 40.2%
process-instance-variable-admin-controller-impl 🟢 100.0% 🔴 12.5% 🟢 100.0% 🟡 50.0% 🔴 4.8%
candidate-user-controller-impl 🟢 100.0% 🔴 12.5% 🟢 100.0% 🟡 75.0% 🔴 4.8%
candidate-group-controller-impl 🟢 100.0% 🔴 12.5% 🟢 100.0% 🟡 75.0% 🔴 4.8%
candidate-user-admin-controller-impl 🟢 100.0% 🔴 12.5% 🟢 100.0% 🟡 75.0% 🔴 4.8%
candidate-group-admin-controller-impl 🟢 100.0% 🔴 12.5% 🟢 100.0% 🟡 75.0% 🔴 4.8%
service-task-admin-controller-impl 🟢 100.0% 🔴 12.5% 🟢 100.0% 🟢 100.0% 🔴 0.0%
home-controller-impl 🟢 100.0% 🔴 12.5% 🟢 100.0% 🟢 100.0% 🔴 10.0%
process-instance-tasks-controller-impl 🟢 100.0% 🔴 12.5% 🔴 25.0% 🟢 100.0% 🔴 33.3%
process-definition-controller-impl 🟢 100.0% 🔴 12.5% 🟡 50.0% 🟢 100.0% 🔴 18.6%
process-definition-meta-controller-impl 🟢 100.0% 🔴 12.5% 🟢 100.0% 🟢 100.0% 🔴 0.0%
connector-definition-controller-impl 🟢 100.0% 🔴 12.5% 🟢 100.0% 🟢 100.0% 🔴 16.0%
process-definition-admin-controller-impl 🟢 100.0% 🔴 12.5% 🔴 0.0% 🟢 100.0% 🔴 33.3%
task-controller 🟢 100.0% 🟡 60.0% 🔴 25.0% 🔴 6.8% 🔴 45.8%
process-instance-controller 🟢 100.0% 🟡 60.0% 🔴 10.4% 🔴 5.6% 🟡 54.1%
count-controller 🔴 0.0% 🔴 0.0% 🟢 100.0% 🔴 0.0% 🔴 0.0%
task-admin-controller 🟢 100.0% 🟡 62.9% 🔴 13.7% 🔴 8.8% 🔴 44.9%
task-delete-controller 🟢 100.0% 🔴 20.0% 🔴 0.0% 🟢 100.0% 🔴 16.7%
process-instance-admin-controller 🟢 100.0% 🔴 45.0% 🔴 8.2% 🔴 2.8% 🔴 47.6%
process-instance-delete-controller 🟢 100.0% 🔴 20.0% 🔴 0.0% 🟢 100.0% 🔴 16.7%
count-admin-controller 🔴 0.0% 🔴 0.0% 🟢 100.0% 🔴 0.0% 🔴 0.0%
task-variable-controller 🟢 100.0% 🔴 20.0% 🔴 14.3% 🟢 100.0% 🟡 50.0%
process-instance-variable-controller 🟢 100.0% 🔴 20.0% 🔴 11.1% 🟢 100.0% 🟡 50.0%
process-instance-tasks-controller 🟢 100.0% 🔴 20.0% 🔴 20.0% 🟢 100.0% 🟡 50.0%
process-instance-diagram-controller 🟢 100.0% 🔴 40.0% 🟢 100.0% 🟢 100.0% 🔴 33.3%
process-definition-controller 🟢 100.0% 🔴 20.0% 🔴 0.0% 🟢 100.0% 🟡 50.0%
process-model-controller 🟢 100.0% 🔴 20.0% 🟢 100.0% 🟢 100.0% 🔴 0.0%
application-controller 🟢 100.0% 🔴 20.0% 🔴 0.0% 🟢 100.0% 🟡 50.0%
task-variable-admin-controller 🟢 100.0% 🟡 60.0% 🔴 14.3% 🟢 100.0% 🟡 50.0%
service-task-admin-controller 🟢 100.0% 🔴 20.0% 🔴 10.0% 🟢 100.0% 🟡 55.1%
service-task-integration-context-admin-controller 🟢 100.0% 🔴 20.0% 🔴 40.0% 🟢 100.0% 🔴 49.2%
process-instance-variable-admin-controller 🟢 100.0% 🔴 40.0% 🔴 11.1% 🟢 100.0% 🟡 50.0%
process-instance-tasks-admin-controller 🟢 100.0% 🔴 20.0% 🔴 25.0% 🟢 100.0% 🟡 50.0%
process-instance-service-tasks-admin-controller 🟢 100.0% 🔴 20.0% 🔴 10.0% 🟢 100.0% 🟡 50.0%
process-instance-sequence-flows-admin-controller 🟢 100.0% 🔴 40.0% 🔴 5.3% 🟢 100.0% 🟡 50.0%
process-instance-diagram-admin-controller 🟢 100.0% 🟡 60.0% 🟢 100.0% 🟢 100.0% 🔴 33.3%
process-instance-bpmn-activities-admin-controller 🟢 100.0% 🔴 20.0% 🔴 25.0% 🟢 100.0% 🟡 50.0%
process-definition-admin-controller 🟢 100.0% 🔴 20.0% 🔴 0.0% 🟢 100.0% 🟡 50.0%
process-model-admin-controller 🟢 100.0% 🔴 20.0% 🟢 100.0% 🟢 100.0% 🔴 0.0%
integration-context-admin-controller 🟢 100.0% 🟡 60.0% 🟢 100.0% 🟢 100.0% 🟡 55.3%
application-admin-controller 🟢 100.0% 🟡 60.0% 🔴 0.0% 🟢 100.0% 🟡 50.0%
audit-events-controller-v-2-impl 🔴 0.0% 🔴 0.0% 🔴 0.0% 🟢 100.0% 🔴 0.0%
audit-events-controller-impl 🟢 100.0% 🟡 50.0% 🟢 80.0% 🟢 100.0% 🟡 67.3%
audit-events-admin-controller-v-2-impl 🔴 0.0% 🔴 0.0% 🔴 0.0% 🟢 100.0% 🔴 0.0%
audit-events-admin-controller-impl 🟢 100.0% 🟡 70.0% 🟢 100.0% 🟢 100.0% 🔴 44.4%
audit-events-delete-controller 🟢 100.0% 🔴 20.0% 🟢 100.0% 🟢 100.0% 🔴 0.0%

View workflow run

@github-actions

github-actions Bot commented Nov 8, 2026 •

Copy link
Copy Markdown

🐢 Slow Tests Report

🧪 Unit Tests

The following 20 unit test(s) took more than 5 seconds:

Time # Class Test
15.17s 1 org.activiti.services.connectors.IntegrationRequestSenderTest shouldSendExpirationHeaders
13.85s 2 org.activiti.services.connectors.behavior.MQServiceTaskBehaviorTest executeShouldDelegateToDefaultBehaviourWhenBeanIsAvailable
11.52s 3 org.activiti.services.connectors.IntegrationRequestSenderTest shouldSendExpirationHeaders
10.59s 4 org.activiti.services.connectors.behavior.MQServiceTaskBehaviorTest executeShouldDelegateToDefaultBehaviourWhenBeanIsAvailable
9.09s 5 org.activiti.services.connectors.channel.AggregateIntegrationErrorReceivedEventCmdTest should_aggregateIntegrationErrorReceivedEvent_when_auditEventAreEnabled
8.53s 6 org.activiti.cloud.alfresco.argument.resolver.AlfrescoPageArgumentMethodResolverTest resolveArgumentShouldReturnAPageableBasedOnParsedSkipCountAndMaxItems
7.94s 7 org.activiti.services.connectors.recovery.OrphanedIntegrationRecoverySchedulerTest should_continueRecoveringRemainingContexts_when_oneRecoveryThrows
7.28s 8 org.activiti.cloud.services.events.services.IncidentServiceTest shouldCreateAndSendExecutionContextIncidentEvent
7.06s 9 org.activiti.cloud.services.events.services.IncidentServiceTest shouldCreateAndSendExecutionContextIncidentEvent
6.89s 10 org.activiti.services.connectors.channel.AggregateIntegrationErrorReceivedEventCmdTest should_aggregateIntegrationErrorReceivedEvent_when_auditEventAreEnabled
6.86s 11 org.activiti.cloud.services.notifications.qraphql.ws.security.ConnectionContextWebSocketInterceptorTest should_fallBackToNoGroups_when_theGroupsProviderThrows
6.56s 12 org.activiti.cloud.common.messaging.config.ActivitiMessagingEnvironmentPostProcessorTest should_setDefaultBinderToAwsAndDisableRabbitHealthCheck_when_brokerIsAws
6.29s 13 org.activiti.services.connectors.recovery.OrphanedIntegrationRecoverySchedulerTest should_continueRecoveringRemainingContexts_when_oneRecoveryThrows
6.16s 14 org.activiti.cloud.services.events.converter.ProcessAuditServiceInfoAppenderTest should_setAndGetActor_when_identityLinkTypeIsActor
5.85s 15 org.activiti.cloud.services.rest.assemblers.ExtendedCloudProcessDefinitionRepresentationModelAssemblerTest toResourceShouldReturnResourceWithSelfLinkContainingResourceId
5.85s 16 org.activiti.cloud.services.rest.assemblers.ProcessDefinitionRepresentationModelAssemblerTest toResourceShouldReturnResourceWithSelfLinkContainingResourceId
5.85s 17 org.activiti.cloud.services.rest.assemblers.ProcessDefinitionMetaRepresentationModelAssemblerTest toResourceShouldReturnResourceWithSelfLinkContainingResourceId
5.61s 18 org.activiti.cloud.services.events.converter.ProcessAuditServiceInfoAppenderTest should_setAndGetActor_when_identityLinkTypeIsActor
5.43s 19 org.activiti.cloud.api.process.model.impl.events.IntegrationRequestImplTest copyWithLightweightContext_should_copyAllRoutingMetadata
5.41s 20 org.activiti.cloud.alfresco.converter.json.AlfrescoJacksonHttpMessageConverterTest canWriteShouldFalseWhenTypeIsString

🔗 Integration Tests

The following 20 integration test(s) took more than 5 seconds:

Time # Class Test
105.61s 1 org.activiti.cloud.starter.tests.recovery.OrphanedIntegrationRecoveryIT should_taskTransitionToErrorState_when_applicationIsKilledDuringServiceTaskExecution(boolean)[2]
38.70s 2 org.activiti.cloud.starter.tests.recovery.OrphanedIntegrationRecoveryIT should_taskTransitionToErrorState_when_applicationIsKilledDuringServiceTaskExecution(boolean)[1]
21.56s 3 org.activiti.cloud.starter.tests.runtime.JobExecutorIT testTimerJobsFailRetry
21.54s 4 org.activiti.cloud.starter.tests.runtime.JobExecutorIT testTimerJobsFailRetry
15.07s 5 org.activiti.cloud.common.messaging.config.test.FunctionRouterBindingConfigurationIT messageTimeoutException
10.01s 6 org.activiti.cloud.common.messaging.config.test.FunctionRouterBindingConfigurationIT functionExecutorShouldAwaitTerminatingTasksOnDestroy
10.01s 7 org.activiti.cloud.examples.connectors.HeadersConnectorIT headersConnectorShouldNotSendIntegrationResult
9.15s 8 org.activiti.cloud.starter.messages.test.redis.RedisMessageStoreIT shouldProcessMessageEventsConcurrentlyInReversedOrder
8.89s 9 org.activiti.cloud.starter.messages.test.hazelcast.HazelcastMessageStoreIT shouldProcessMessageEventsConcurrentlyInReversedOrder
8.75s 10 org.activiti.cloud.starter.tests.recovery.OrphanedIntegrationRecoveryIT should_runRecoveryOnlyOnce_when_twoInstancesRunConcurrently
7.64s 11 org.activiti.cloud.services.identity.keycloak.KeycloakClientIT should_get101Users_by_Role
7.37s 12 org.activiti.cloud.common.messaging.config.test.FunctionRouterBindingConfigurationIT aggregateMessageDeliveryException
7.27s 13 org.activiti.cloud.common.messaging.config.test.FunctionRouterBindingConfigurationIT testFunctionBindings
7.20s 14 org.activiti.cloud.common.messaging.config.test.FunctionRouterBindingConfigurationIT testConsumerBindings
6.43s 15 org.activiti.cloud.common.swagger.apidocs.SpringdocApiDocsIT should_generateSpringdocApiDocs
6.34s 16 org.activiti.cloud.starter.messages.test.hazelcast.HazelcastMessageStoreIT shouldProcessMessageEventsConcurrently
5.99s 17 org.activiti.cloud.notifications.graphql.starter.ActivitiGraphQLWsNativeStarterIT testGraphqlWsSubprotocolConnectionInitXAuthorizationSupported
5.60s 18 org.activiti.cloud.notifications.graphql.starter.ActivitiGraphQLWsNativeStarterIT testGraphqlWsSubprotocolConnectionInitXAuthorizationSupported
5.19s 19 org.activiti.cloud.notifications.graphql.starter.ActivitiGraphQLWsNativeStarterIT testGraphqlWsSubprotocolServerWithUserRoleAuthorized
5.15s 20 org.activiti.cloud.notifications.graphql.starter.ActivitiGraphQLWsNativeStarterIT testGraphqlWsSubprotocolServerWithUserRoleAuthorized

🏋️ Slowest Integration Test Classes (aggregated)

The following 4 class(es) took more than 30 seconds in total:

Total Time # All Tests Time > 5s Tests > 5s Class
153.06s 1 3 153.06s 3 org.activiti.cloud.starter.tests.recovery.OrphanedIntegrationRecoveryIT
56.11s 2 26 43.10s 2 org.activiti.cloud.starter.tests.runtime.JobExecutorIT
48.16s 3 34 46.92s 5 org.activiti.cloud.common.messaging.config.test.FunctionRouterBindingConfigurationIT
30.24s 4 32 21.93s 4 org.activiti.cloud.notifications.graphql.starter.ActivitiGraphQLWsNativeStarterIT

📊 Full Slow Test Report

Co-authored-by: eromano <1030050+eromano@users.noreply.github.com>
@sonarqubecloud

sonarqubecloud Bot commented Nov 8, 2026

Copy link
Copy Markdown

@eromano
eromano merged commit de64e08 into develop Nov 8, 2026
34 of 35 checks passed
@eromano
eromano deleted the fix/AAE-52887-omit-null-in-all branch November 8, 2026 22:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants