[midPoint-git] [Evolveum/midpoint] bea051: Make ExpressionFactory thread-safe

mederly noreply at github.com
Wed Sep 16 20:31:33 CEST 2020


  Branch: refs/heads/master
  Home:   https://github.com/Evolveum/midpoint
  Commit: bea051de6a44c1c877a81b1daa0405280d1b1eed
      https://github.com/Evolveum/midpoint/commit/bea051de6a44c1c877a81b1daa0405280d1b1eed
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2020-08-25 (Tue, 25 Aug 2020)

  Changed paths:
    M infra/common/src/main/java/com/evolveum/midpoint/common/refinery/LayerRefinedAttributeDefinitionImpl.java
    M infra/common/src/main/java/com/evolveum/midpoint/common/refinery/RefinedResourceSchemaImpl.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/ChangeExecutor.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LensProjectionContext.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LensUtil.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/assignments/ConditionEvaluator.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/ActivationProcessor.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/PolicyRuleProcessor.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ResourceManager.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ShadowCaretaker.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/expression/ExpressionFactory.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/expression/ExpressionUtil.java

  Log Message:
  -----------
  Make ExpressionFactory thread-safe

In order to make ExpressionFactory thread-safe, more things had to be
done:
1) expression cache should be thread-safe (using ConcurrentHashMap),
2) keys should be really immutable, freezing or cloning them.

Point 2 is being resolved by freezing whatever can be frozen, and
cloning the rest. However, there are many things that are yet to be
frozen. So it's a work in progress.

Also fixing a bug that the cache didn't take expression profiles into
account.

Related to MID-6432.


  Commit: 4d3c5b8e3dc5dd85ee4736fec564f1b9668c64ec
      https://github.com/Evolveum/midpoint/commit/4d3c5b8e3dc5dd85ee4736fec564f1b9668c64ec
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2020-08-25 (Tue, 25 Aug 2020)

  Changed paths:
    M infra/common/src/main/java/com/evolveum/midpoint/common/refinery/RefinedResourceSchemaImpl.java

  Log Message:
  -----------
  Fix a NPE when schema is missing

Related to MID-6432.


  Commit: c0d9dd101420a7051cd88d045169239d7fa7274f
      https://github.com/Evolveum/midpoint/commit/c0d9dd101420a7051cd88d045169239d7fa7274f
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2020-08-25 (Tue, 25 Aug 2020)

  Changed paths:
    M infra/common/src/main/java/com/evolveum/midpoint/common/refinery/RefinedResourceSchemaImpl.java

  Log Message:
  -----------
  Fix another NPE when schema is missing

Related to MID-6432.


  Commit: 1105e162bd8b420278926b45ce37dc9773739475
      https://github.com/Evolveum/midpoint/commit/1105e162bd8b420278926b45ce37dc9773739475
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2020-09-16 (Wed, 16 Sep 2020)

  Changed paths:
    M infra/common/src/main/java/com/evolveum/midpoint/common/refinery/LayerRefinedAttributeDefinitionImpl.java
    M infra/common/src/main/java/com/evolveum/midpoint/common/refinery/RefinedResourceSchemaImpl.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/ChangeExecutor.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LensProjectionContext.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LensUtil.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/assignments/ConditionEvaluator.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/ActivationProcessor.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/PolicyRuleProcessor.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ResourceManager.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ShadowCaretaker.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/expression/ExpressionFactory.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/expression/ExpressionUtil.java

  Log Message:
  -----------
  Merge branch 'feature/thread-safe-expression-factory'


Compare: https://github.com/Evolveum/midpoint/compare/39477c2f6622...1105e162bd8b


More information about the midPoint-svn mailing list