[midPoint] Couldn't determine shadow name
Pavol Mederly
mederly at evolveum.com
Thu Jul 7 16:18:18 CEST 2022
Thank you, Xiaoshu.
Best regards,
--
Pavol Mederly
Software developer
evolveum.com
On 07/07/2022 16:16, Wang, Xiaoshu via midPoint wrote:
>
> Pavol:
>
> I created the jira bug https://jira.evolveum.com/browse/MID-8010.
>
> Thanks
>
> Xiaoshu
>
> *From: *Pavol Mederly <mederly at evolveum.com>
> *Date: *Thursday, July 7, 2022 at 9:39 AM
> *To: *Wang, Xiaoshu <xiaoshuw at email.unc.edu>, midPoint General
> Discussion <midPoint at lists.evolveum.com>
> *Subject: *Re: [midPoint] Couldn't determine shadow name
>
> Hello Xiaoshu,
>
> thank you for the information.
>
> At this moment, it looks like a bug in midPoint for me. The reason is
> that midPoint has all the information it needs to determine the shadow
> name (pid = 017). Most probably the definition of the shadow is
> incomplete at that particular moment: if the primary identifier (pid)
> would be correctly marked as such, midPoint would use it as the shadow
> name.
>
> The exception itself is really harmless here, and all it does is the
> pollution of the logfiles (which is, of course, ugly). At least I
> think so now.
>
> Overall, this would deserve logging a JIRA issue, with the type=bug,
> and all the necessary details (see
> https://docs.evolveum.com/midpoint/reference/diag/creating-a-bug-report/
> <https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.evolveum.com%2Fmidpoint%2Freference%2Fdiag%2Fcreating-a-bug-report%2F&data=05%7C01%7C%7C13de309c63854a352a2808da601e270b%7C58b3d54f16c942d3af081fcabd095666%7C1%7C0%7C637927979887613539%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=nwzQpO6iafcYZOGAw5IdKHOIXLztDh%2BZV%2Fgd2f9XlCA%3D&reserved=0>).
>
> We would be happy to fix that, but ... you know ... according to
> priorities (subscribers' bugs first).
>
> Nevertheless, I hope you will be able to continue with your work.
>
> Best regards,
>
> --
> Pavol Mederly
> Software developer
> evolveum.com
>
> On 07/07/2022 15:26, Wang, Xiaoshu wrote:
>
> Yes, I have implemented an executeQuery so I can do kind of fetch
> by UID. The follows is the entire stack trace. By the way, I am
> using midpoint 4.5 on a local machine.
>
> 15:12:31.577 [pool-3-thread-15] ERROR
> com.evolveum.midpoint.model.impl.lens.LensUtil - Couldn't
> determine name for shadow -- continuing with no name; shadow:
>
> shadow: (3f01b3de-7a1c-4ab5-9735-e2cd8ed6e108, ShadowType)
>
> oid=3f01b3de-7a1c-4ab5-9735-e2cd8ed6e108, version=null
>
> objectClass: {...resource/instance-3}csAccount
>
> resourceRef: oid=a343fc2e-3954-4034-ba1a-2b72c21e577a(ResourceType)
>
> kind: ACCOUNT
>
> intent: default
>
> attributes:
>
> pid: 017
>
> iteration: 0
>
> iterationToken: .
>
> com.evolveum.midpoint.util.exception.SchemaException: Could not
> determine shadow name.
>
> at
> com.evolveum.midpoint.schema.util.ShadowUtil.determineShadowStringName(ShadowUtil.java:695)
>
> at
> com.evolveum.midpoint.schema.util.ShadowUtil.determineShadowName(ShadowUtil.java:667)
>
> at
> com.evolveum.midpoint.model.impl.lens.LensUtil.createObjectDeltaOperation(LensUtil.java:911)
>
> at
> com.evolveum.midpoint.model.impl.lens.executor.DeltaExecution.addToExecutedDeltas(DeltaExecution.java:362)
>
> at
> com.evolveum.midpoint.model.impl.lens.executor.DeltaExecution.execute(DeltaExecution.java:174)
>
> at
> com.evolveum.midpoint.model.impl.lens.executor.ProjectionChangeExecution.execute(ProjectionChangeExecution.java:129)
>
> at
> com.evolveum.midpoint.model.impl.lens.ChangeExecutor.executeProjectionsChanges(ChangeExecutor.java:98)
>
> at
> com.evolveum.midpoint.model.impl.lens.ChangeExecutor.executeChanges(ChangeExecutor.java:61)
>
> at
> com.evolveum.midpoint.model.impl.lens.ClockworkClick.lambda$processSecondary$0(ClockworkClick.java:229)
>
> at
> com.evolveum.midpoint.model.impl.lens.ClockworkMedic.partialExecute(ClockworkMedic.java:343)
>
> at
> com.evolveum.midpoint.model.impl.lens.ClockworkClick.processSecondary(ClockworkClick.java:227)
>
> at
> com.evolveum.midpoint.model.impl.lens.ClockworkClick.moveStateForward(ClockworkClick.java:194)
>
> at
> com.evolveum.midpoint.model.impl.lens.ClockworkClick.click(ClockworkClick.java:118)
>
> at
> com.evolveum.midpoint.model.impl.lens.Clockwork.click(Clockwork.java:382)
>
> at
> com.evolveum.midpoint.model.impl.lens.Clockwork.runWithConflictDetection(Clockwork.java:150)
>
> at
> com.evolveum.midpoint.model.impl.lens.Clockwork.run(Clockwork.java:104)
>
> at
> com.evolveum.midpoint.model.impl.controller.ModelController.executeChangesNonRaw(ModelController.java:444)
>
> at
> com.evolveum.midpoint.model.impl.controller.ModelController.executeChanges(ModelController.java:405)
>
> at
> com.evolveum.midpoint.gui.impl.page.admin.ProgressAwareChangesExecutorImpl$1.callWithContextPrepared(ProgressAwareChangesExecutorImpl.java:148)
>
> at
> com.evolveum.midpoint.gui.impl.page.admin.ProgressAwareChangesExecutorImpl$1.callWithContextPrepared(ProgressAwareChangesExecutorImpl.java:133)
>
> at
> com.evolveum.midpoint.web.component.SecurityContextAwareCallable.call(SecurityContextAwareCallable.java:50)
>
> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
>
> at
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>
> at
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>
> at java.base/java.lang.Thread.run(Thread.java:829)
>
> 15:12:31.598 [pool-3-thread-15] ERROR
> c.e.midpoint.model.impl.lens.LensProjectionContext - Couldn't
> determine shadow name for
> shadow:3f01b3de-7a1c-4ab5-9735-e2cd8ed6e108(null).
>
> com.evolveum.midpoint.util.exception.SchemaException: Could not
> determine shadow name.
>
> at
> com.evolveum.midpoint.schema.util.ShadowUtil.determineShadowStringName(ShadowUtil.java:695)
>
> at
> com.evolveum.midpoint.schema.util.ShadowUtil.determineShadowName(ShadowUtil.java:667)
>
> at
> com.evolveum.midpoint.model.impl.lens.LensProjectionContext.resolveNameIfKnown(LensProjectionContext.java:1529)
>
> at
> com.evolveum.midpoint.model.impl.lens.LensContext.lambda$getNameResolver$1(LensContext.java:1740)
>
> at
> com.evolveum.midpoint.model.common.util.AuditHelper.lambda$resolveNamesInDeltas$0(AuditHelper.java:117)
>
> at
> com.evolveum.midpoint.schema.util.ObjectDeltaSchemaLevelUtil.lambda$resolveNames$0(ObjectDeltaSchemaLevelUtil.java:68)
>
> at
> com.evolveum.midpoint.prism.impl.PrismValueImpl.accept(PrismValueImpl.java:192)
>
> at
> com.evolveum.midpoint.prism.impl.PrismReferenceValueImpl.accept(PrismReferenceValueImpl.java:731)
>
> at
> com.evolveum.midpoint.prism.impl.delta.ItemDeltaImpl.accept(ItemDeltaImpl.java:176)
>
> at
> com.evolveum.midpoint.prism.impl.delta.ObjectDeltaImpl.accept(ObjectDeltaImpl.java:99)
>
> at
> com.evolveum.midpoint.prism.impl.delta.ObjectDeltaImpl.accept(ObjectDeltaImpl.java:89)
>
> at
> com.evolveum.midpoint.schema.util.ObjectDeltaSchemaLevelUtil.resolveNames(ObjectDeltaSchemaLevelUtil.java:83)
>
> at
> com.evolveum.midpoint.model.common.util.AuditHelper.resolveNamesInDeltas(AuditHelper.java:140)
>
> at
> com.evolveum.midpoint.model.common.util.AuditHelper.audit(AuditHelper.java:87)
>
> at
> com.evolveum.midpoint.model.impl.lens.ClockworkAuditHelper.auditEvent(ClockworkAuditHelper.java:215)
>
> at
> com.evolveum.midpoint.model.impl.lens.ClockworkAuditHelper.audit(ClockworkAuditHelper.java:78)
>
> at
> com.evolveum.midpoint.model.impl.lens.ClockworkClick.processSecondary(ClockworkClick.java:235)
>
> at
> com.evolveum.midpoint.model.impl.lens.ClockworkClick.moveStateForward(ClockworkClick.java:194)
>
> at
> com.evolveum.midpoint.model.impl.lens.ClockworkClick.click(ClockworkClick.java:118)
>
> at
> com.evolveum.midpoint.model.impl.lens.Clockwork.click(Clockwork.java:382)
>
> at
> com.evolveum.midpoint.model.impl.lens.Clockwork.runWithConflictDetection(Clockwork.java:150)
>
> at
> com.evolveum.midpoint.model.impl.lens.Clockwork.run(Clockwork.java:104)
>
> at
> com.evolveum.midpoint.model.impl.controller.ModelController.executeChangesNonRaw(ModelController.java:444)
>
> at
> com.evolveum.midpoint.model.impl.controller.ModelController.executeChanges(ModelController.java:405)
>
> at
> com.evolveum.midpoint.gui.impl.page.admin.ProgressAwareChangesExecutorImpl$1.callWithContextPrepared(ProgressAwareChangesExecutorImpl.java:148)
>
> at
> com.evolveum.midpoint.gui.impl.page.admin.ProgressAwareChangesExecutorImpl$1.callWithContextPrepared(ProgressAwareChangesExecutorImpl.java:133)
>
> at
> com.evolveum.midpoint.web.component.SecurityContextAwareCallable.call(SecurityContextAwareCallable.java:50)
>
> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
>
> at
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>
> at
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>
> at java.base/java.lang.Thread.run(Thread.java:829)
>
> *From: *Pavol Mederly <mederly at evolveum.com>
> <mailto:mederly at evolveum.com>
> *Date: *Thursday, July 7, 2022 at 9:23 AM
> *To: *Wang, Xiaoshu <xiaoshuw at email.unc.edu>
> <mailto:xiaoshuw at email.unc.edu>, midPoint General Discussion
> <midPoint at lists.evolveum.com> <mailto:midPoint at lists.evolveum.com>
> *Subject: *Re: [midPoint] Couldn't determine shadow name
>
> That's great. I am now not sure - have you implemented a (limited)
> executeQuery method that would allow midPoint to fetch your
> resource objects "by UID"?
>
> Also, I become more and more interested to see the stack trace of
> the "SchemaException" you mentioned. :) I would like to know the
> path between points 3 and 4 in your description below, i.e.
> creating an object and trying to determine its name.
>
> Best regards,
>
> --
>
> Pavol Mederly
>
> Software developer
>
> evolveum.com
>
> On 07/07/2022 15:19, Wang, Xiaoshu wrote:
>
> Yes, I can execute a single query given a UID.
>
> Xiaoshu
>
> *From: *midPoint <midpoint-bounces at lists.evolveum.com>
> <mailto:midpoint-bounces at lists.evolveum.com> on behalf of
> Pavol Mederly via midPoint <midpoint at lists.evolveum.com>
> <mailto:midpoint at lists.evolveum.com>
> *Date: *Thursday, July 7, 2022 at 6:32 AM
> *To: *midPoint at lists.evolveum.com
> <midPoint at lists.evolveum.com> <mailto:midPoint at lists.evolveum.com>
> *Cc: *Pavol Mederly <mederly at evolveum.com>
> <mailto:mederly at evolveum.com>
> *Subject: *Re: [midPoint] Couldn't determine shadow name
>
> Hello Xiaoshu,
>
> OK, I understand that you cannot execute a "blank" query that
> would return all objects on a resource. But can you execute -
> at least - a query for one specific object, identified by UID?
>
> --
>
> Just by the way, could you share the whole stack trace of the
> "SchemaException: Could not determine shadow name"? I am quite
> interested in the whole execution path there. And, the exact
> midPoint version.
>
> Best regards,
>
> --
>
> Pavol Mederly
>
> Software developer
>
> evolveum.com
>
> On 06/07/2022 20:00, Wang, Xiaoshu via midPoint wrote:
>
> Pavol:
>
> I am not sure how.
>
> The icf connector’s create signature is this. And see the
> implementation
>
> public Uid create(ObjectClass objectClass, Set<Attribute>
> attributes, OperationOptions operationOptions) {
>
> Optional<String> pid = CsUtil./findPid/(attributes);
>
> if (pid.isPresent()) {
>
> /LOG/.info(">>> Done CsCreate.create");
>
> Name name = new Name(pid.get());
>
> Uid uid = new Uid(pid.get(), name);
>
> return uid;
>
> } else {
>
> throw new IllegalArgumentException("Cannot create because
> PID is empty");
>
> }
>
> }
>
> I can only return a Uid object. Providing the nameHint
> seems have no effect.
>
> Most “standard” resource will go through the executeQuery
> method (e.g, through an inititial import).
>
> public void executeQuery(ObjectClass objectClass,
> PersonSearch personSearch, ResultsHandler resultsHandler,
> OperationOptions operationOptions) {
>
> Here, you can construct a connectorObject and ask the
> resultHandler to handle it. So, I can set both uid and
> name to whatever I want.
>
> But, because my resource cannot do the blank query so the
> midpoint will call the create method when needed. But the
> create() is unaware of connectorObject, it only returns a
> unique handle, i.e., the UID.
>
> What I guess is this.
>
> 1. A property-change triggers an outbound mapping
> 2. Midpoint notices the absence of a shadow account for
> the outbound resource
> 3. Midpoint called the connector.create() method to
> create the intended resource and subsequently create
> the shadowObject with the returned uid.
> 4. At a later stage, it triggers the
> ShadowUtil.determineShadowName method and throw an
> exception when found absent.
>
> A potential remedy is step #3, when midpoint can use the
> nameHint of the Uid object to fill in the name of the
> shadow account.
>
> Xiaoshu
>
> *From: *midPoint <midpoint-bounces at lists.evolveum.com>
> <mailto:midpoint-bounces at lists.evolveum.com> on behalf of
> Pavol Mederly via midPoint <midpoint at lists.evolveum.com>
> <mailto:midpoint at lists.evolveum.com>
> *Date: *Wednesday, July 6, 2022 at 1:35 PM
> *To: *midpoint at lists.evolveum.com
> <midpoint at lists.evolveum.com>
> <mailto:midpoint at lists.evolveum.com>
> *Cc: *Pavol Mederly <mederly at evolveum.com>
> <mailto:mederly at evolveum.com>
> *Subject: *Re: [midPoint] Couldn't determine shadow name
>
> Hello Xiaoshu,
>
> I am still not sure I completely understand your use case,
> but maybe the simplest thing your connector can do is to
> mirror __UID__ to __NAME__ itself (if the name is not
> known). This is actually what many connectors do.
>
> See also
> https://docs.evolveum.com/connectors/connid/1.x/connector-development-guide/#__uid__-and-__name__-are-the-same
> <https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.evolveum.com%2Fconnectors%2Fconnid%2F1.x%2Fconnector-development-guide%2F%23__uid__-and-__name__-are-the-same&data=05%7C01%7C%7C13de309c63854a352a2808da601e270b%7C58b3d54f16c942d3af081fcabd095666%7C1%7C0%7C637927979887613539%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=FtPZw0kCA4TZtniiqT9oJCmRKtOSjNKqY2iCo2SQm38%3D&reserved=0>.
>
> I am not sure why both of these are obligatory in ConnId
> (originally ICF, then OpenICF).
>
> The ShadowUtil.determineShadowName method is maybe not
> very consistent, I must admit. (I have looked at it right
> now.) For example, it is called from a couple of places in
> midPoint, and a caller usually catches SchemaException,
> and continues with "no name" situation. I am not sure
> about your specific situation, because I don't know exact
> midPoint version, whole stack trace, and so on. But I
> think the best you can do is simply to return both __UID__
> and __NAME__ from your connector, and (hopefully) midPoint
> will be happy with it.
>
> Best regards,
>
> --
>
> Pavol Mederly
>
> Software developer
>
> evolveum.com
>
> On 06/07/2022 17:34, Wang, Xiaoshu via midPoint wrote:
>
> Pavol:
>
> Conceptually, I know “why” it throws the exception but
> I wonder if it can be considered as a “bug” or
> “improvement” for the midpoint.
>
> I have a particular use case, where I have a resource
> that I only need to do outbound mapping. The resource,
> however, does not provide an API for me to do
> something like getAll() operations. In other words, I
> cannot do an initial import kind of task to force
> midpoint to create all the shadow account.
>
> Thus, when a property change that triggers an outbound
> mapping, midpoint noted that the resource does not
> exist, so it calls the create() method on the
> connector. Unlike the executeQuery method, which can
> construct a connectorObject and ask midpoint to handle
> it. The create method can only return a “Uid”. I
> understand the rational under this as the
> connector.create() is meant to create a remote
> resource as opposed to create the shadow account, (I
> guess is mirrored by the connectorObject). Upon
> receiving the UID, the midpoint then creates a
> matching shadow account with it (due to the absence of
> it). However, as both __UID__ and __NAME__ are
> **required** attributes for a connectorObject (i.e.,
> shadow account), then a later verification step failed
> the check and throws the exception.
>
> The exception appears non-preemptive, i.e., it does
> create the shadow account, which name, I can later
> fill when the updateDelta is called. The exception
> trace would be more of a nuance than error. Yet, I
> think it would be nice that midpoint can do some auto
> remedy for it. For example, during the validation
> phase, copy the __uid__ to __name__ if the latter is
> absent etc.
>
> Or, if there might be some other way to get around
> this particular use case of mine, I would be glad to
> hear it.
>
> Xiaoshu
>
> *From: *midPoint <midpoint-bounces at lists.evolveum.com>
> <mailto:midpoint-bounces at lists.evolveum.com> on behalf
> of Pavol Mederly via midPoint
> <midpoint at lists.evolveum.com>
> <mailto:midpoint at lists.evolveum.com>
> *Date: *Wednesday, July 6, 2022 at 5:10 AM
> *To: *midpoint at lists.evolveum.com
> <midpoint at lists.evolveum.com>
> <mailto:midpoint at lists.evolveum.com>
> *Cc: *Pavol Mederly <mederly at evolveum.com>
> <mailto:mederly at evolveum.com>
> *Subject: *Re: [midPoint] Couldn't determine shadow name
>
> Hi Xiaoshu,
>
> I always recommend to have a look at the code that
> throws the exception. In your case it's most probably
> this one:
>
> https://github.com/Evolveum/midpoint/blob/d317537626a99db32764c486507f1c1ac5a47fb6/infra/schema/src/main/java/com/evolveum/midpoint/schema/util/ShadowUtil.java#L688-L736
> <https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FEvolveum%2Fmidpoint%2Fblob%2Fd317537626a99db32764c486507f1c1ac5a47fb6%2Finfra%2Fschema%2Fsrc%2Fmain%2Fjava%2Fcom%2Fevolveum%2Fmidpoint%2Fschema%2Futil%2FShadowUtil.java%23L688-L736&data=05%7C01%7C%7C13de309c63854a352a2808da601e270b%7C58b3d54f16c942d3af081fcabd095666%7C1%7C0%7C637927979887613539%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=wdYYVgawyGbESWDcTNWzyaJqWq0ceQOZyJSYD2jzG2U%3D&reserved=0>
>
> (lines are shifted probably because of midPoint
> version mismatch)
>
> It should give you a clue - e.g. does your object have
> a primary identifier set? Etc...
>
> Regards,
>
> --
>
> Pavol Mederly
>
> Software developer
>
> evolveum.com
>
> On 23/06/2022 15:27, Wang, Xiaoshu via midPoint wrote:
>
> Hi,
>
> I am developing a custom connector. When I assign
> the resource connected with that connector, I got
> the following exception.
>
> com.evolveum.midpoint.util.exception.SchemaException:
> Could not determine shadow name.
>
> at
> com.evolveum.midpoint.schema.util.ShadowUtil.determineShadowStringName(ShadowUtil.java:695)
>
> at
> com.evolveum.midpoint.schema.util.ShadowUtil.determineShadowName(ShadowUtil.java:667)
>
> ….
>
> The exception seems not do anything “harmful” as
> far as I can tell because the new account would be
> listed under the resource. But I want to know why.
> Hope someone can shed some light on for me.
>
> Xiaoshu
>
>
>
>
>
>
>
> _______________________________________________
>
> midPoint mailing list
>
> midPoint at lists.evolveum.com
>
> https://lists.evolveum.com/mailman/listinfo/midpoint <https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.evolveum.com%2Fmailman%2Flistinfo%2Fmidpoint&data=05%7C01%7C%7C13de309c63854a352a2808da601e270b%7C58b3d54f16c942d3af081fcabd095666%7C1%7C0%7C637927979887613539%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=NVp16d%2BDgPBOav28wxHJau8OSvwby6MT3nTkpM1zRmQ%3D&reserved=0>
>
>
>
>
>
>
> _______________________________________________
>
> midPoint mailing list
>
> midPoint at lists.evolveum.com
>
> https://lists.evolveum.com/mailman/listinfo/midpoint <https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.evolveum.com%2Fmailman%2Flistinfo%2Fmidpoint&data=05%7C01%7C%7C13de309c63854a352a2808da601e270b%7C58b3d54f16c942d3af081fcabd095666%7C1%7C0%7C637927979887769798%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=5XvZfo27v%2FzFTUojKoI8hndbXVB2DduIMsREBE3ozjE%3D&reserved=0>
>
>
>
>
>
> _______________________________________________
>
> midPoint mailing list
>
> midPoint at lists.evolveum.com
>
> https://lists.evolveum.com/mailman/listinfo/midpoint <https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.evolveum.com%2Fmailman%2Flistinfo%2Fmidpoint&data=05%7C01%7C%7C13de309c63854a352a2808da601e270b%7C58b3d54f16c942d3af081fcabd095666%7C1%7C0%7C637927979887769798%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=5XvZfo27v%2FzFTUojKoI8hndbXVB2DduIMsREBE3ozjE%3D&reserved=0>
>
>
> _______________________________________________
> midPoint mailing list
> midPoint at lists.evolveum.com
> https://lists.evolveum.com/mailman/listinfo/midpoint
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20220707/bdd0c057/attachment-0001.htm>
More information about the midPoint
mailing list