Skip to content

v6.1.0

Compare
Choose a tag to compare
@efonsell efonsell released this 23 Jan 06:13
· 527 commits to master since this release

Highlights

  • nflow-engine
    • Check that state variable value fits into the database column
    • Fix performance problems when querying workflows by only fetching state variables when requested

Details

  • nflow-engine
    • Verify on startup that connections returned by DataSource used by nFlow have auto commit enabled. nFlow may not work correctly without it.
    • Throw StateVariableValueTooLongException if a state variable value that does not fit into the database column is detected. Checked in StateExecution.setVariable, StateExecution.addWorkflows, StateExecution.addChildWorkflows, WorkflowInstanceService.insertWorkflowInstance and when creating a new or updating an existing instance via REST API.
      If the exception is thrown during state processing and not handled by the state implementation, nFlow engine will catch the exception and retry state processing after delay configured by property nflow.executor.stateVariableValueTooLongRetryDelay.minutes (default is 60).
    • Fix honoring of includeCurrentStateVariables flag in WorkflowInstanceService.listWorkflowInstances. This caused major slowness when using bulk workflows.
      To preserve the existing (incorrect) default behaviour in backwards compatible way the default value in QueryWorkflowInstances.Builder is changed to true. The REST API is unaffected.
      Especially in workflows with many children that use the StateExecution.getAllChildWorkflows method the performance impact can be high. Before 7.0.0 release, it is recommended to use StateExecution.queryChildWorkflows(new QueryWorkflowInstances.Builder().setIncludeCurrentStateVariables(false).build()) if state variables are not needed.
    • Dependency updates:
      • jetty 9.4.25.v20191220
      • junit4 4.13
      • mariadb 2.5.3
      • spotbugs 4.0.0-beta4
      • spotbugs-annotations 4.0.0-beta4
      • swagger 1.6.0
      • hikaricp 3.4.2
      • jackson 2.10.2
      • jersey 2.30
      • mockitor-junit-jupiter 3.2.4
      • metrics 4.1.2
      • mockito 3.2.4
      • mysql 8.0.19
      • postgresql 42.2.9
      • netty 0.9.4.RELEASE
      • reflections 0.9.12
      • spring 5.2.3.RELEASE
      • junit5 5.6.0
      • apache-cxf 3.3.5
  • nflow-rest-api
    • REST API returns HTTP 400 in case the state variable value is too long when inserting a new or updating an existing workflow instance
    • Exception mappers return JSON objects instead of raw strings
  • nflow-explorer
    • Dependency updates:
      • angular 1.7.9
      • chart.js 2.9.3
      • karma 4.4.1
      • node-sass 4.13.0
      • node v12.13.1
      • npm 6.13.1
  • Maven plugins
    • Dependency updates:
      • frontend 1.9.0
      • assembly 3.2.0
      • asciidoctor 2.0.0-RC.1
      • deploy 3.0.0-M1
      • enforcer 3.0.0-M3
      • install 3.0.0-M1
      • jar 3.2.0
      • site 3.8.2
      • source 3.2.1
      • surefire 3.0.0-M4