<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Verdana;
panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
pre
{mso-style-priority:99;
mso-style-link:"HTML Preformatted Char";
margin:0in;
font-size:10.0pt;
font-family:"Courier New";}
span.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:Consolas;}
span.EmailStyle21
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;
mso-ligatures:none;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">As you likely already understand “Java heap space” is equivalent of an “out of memory” error.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I think you have at least these two options. (Just a guess… )<br>
1) Give it more resources. How much more… I don’t know… add more until it works?<br>
2) Maybe the job/task/process can be split into non-overlapping sub groups? 27 jobs should get it done in smaller bites.<o:p></o:p></p>
<p class="MsoNormal" style="text-indent:.5in">Do 26 jobs , one for each letter of the alphabet, run all of them, one at a time.
<o:p></o:p></p>
<p class="MsoNormal" style="text-indent:.5in">Last run the “do all of them job” too. Just to deal with cases of “null names” or names that start with non-alphabetic characters.<br>
<br>
Just a simple “brute force” way to solve it. <o:p></o:p></p>
<p class="MsoNormal" style="text-indent:.5in"><o:p> </o:p></p>
<p class="MsoNormal">I could be wrong but some things in MidPoint have ways to build “pools”/”chunks” ( maybe not the right Midpoint terms) that are handled by different backend processes. So maybe 26 jobs are needed, but some way to “split the results” into
smaller chunks to be handled by a “same sized, but wider” deployment model.<br>
<br>
I hope there is a more surgical way. <span style="font-family:"Segoe UI Emoji",sans-serif">
😊</span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">-- <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">Carey Matthew </span>
Black<span style="font-size:12.0pt;color:black"><br>
<br>
</span><o:p></o:p></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> midPoint <midpoint-bounces@lists.evolveum.com> <b>
On Behalf Of </b>Paul Caskey via midPoint<br>
<b>Sent:</b> Friday, August 18, 2023 9:06 AM<br>
<b>To:</b> midPoint General Discussion <midpoint@lists.evolveum.com><br>
<b>Cc:</b> Paul Caskey <pcaskey@internet2.edu>; Pavol Mederly <mederly@evolveum.com><br>
<b>Subject:</b> Re: [midPoint] bulk action task for removing assignment<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<table class="MsoNormalTable" border="0" cellpadding="0" width="100%" style="width:100.0%;background:#FFF0A0">
<tbody>
<tr>
<td style="padding:3.75pt 3.75pt 3.75pt 3.75pt">
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black">----
<b>External Email</b>: Use caution with attachments, links, or sharing data ----<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Is there anyway to place limits on the bulk action task below?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">It crashes midpoint completely within about an hour, forcing a hard reboot (version 4.7.1).<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">This was the error:<o:p></o:p></p>
<p class="MsoNormal">Couldn't execute script: com.evolveum.midpoint.util.exception.ScriptExecutionException: Couldn't execute action 'unassign' on POV:user:1fb687f6-028e-4758-a877-3a6b932b1097(<a href="mailto:someone@somedomain.com">someone@somedomain.com</a>):
Java heap space<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> midPoint <<a href="mailto:midpoint-bounces@lists.evolveum.com">midpoint-bounces@lists.evolveum.com</a>>
<b>On Behalf Of </b>Paul Caskey via midPoint<br>
<b>Sent:</b> Thursday, August 17, 2023 2:03 PM<br>
<b>To:</b> midPoint General Discussion <<a href="mailto:midpoint@lists.evolveum.com">midpoint@lists.evolveum.com</a>><br>
<b>Cc:</b> Paul Caskey <<a href="mailto:pcaskey@internet2.edu">pcaskey@internet2.edu</a>>; Pavol Mederly <<a href="mailto:mederly@evolveum.com">mederly@evolveum.com</a>><br>
<b>Subject:</b> Re: [midPoint] bulk action task for removing assignment<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks, Pavol!<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">For the benefit of the list, here is the bulk action script which will remove all OrgType assignments from all users:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><s:search xmlns:s=<a href="http://midpoint.evolveum.com/xml/ns/public/model/scripting-3">http://midpoint.evolveum.com/xml/ns/public/model/scripting-3</a><o:p></o:p></p>
<p class="MsoNormal"> xmlns:q=<a href="http://prism.evolveum.com/xml/ns/public/query-3">http://prism.evolveum.com/xml/ns/public/query-3</a>><o:p></o:p></p>
<p class="MsoNormal"> <s:type>UserType</s:type><o:p></o:p></p>
<p class="MsoNormal"> <s:unassign><o:p></o:p></p>
<p class="MsoNormal"> <s:filter><o:p></o:p></p>
<p class="MsoNormal"> <q:ref><o:p></o:p></p>
<p class="MsoNormal"> <q:path>targetRef</q:path><o:p></o:p></p>
<p class="MsoNormal"> <q:value type="OrgType"/><o:p></o:p></p>
<p class="MsoNormal"> </q:ref><o:p></o:p></p>
<p class="MsoNormal"> </s:filter><o:p></o:p></p>
<p class="MsoNormal"> </s:unassign><o:p></o:p></p>
<p class="MsoNormal"></s:search><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> midPoint <<a href="mailto:midpoint-bounces@lists.evolveum.com">midpoint-bounces@lists.evolveum.com</a>>
<b>On Behalf Of </b>Pavol Mederly via midPoint<br>
<b>Sent:</b> Thursday, August 17, 2023 1:35 PM<br>
<b>To:</b> <a href="mailto:midpoint@lists.evolveum.com">midpoint@lists.evolveum.com</a><br>
<b>Cc:</b> Pavol Mederly <<a href="mailto:mederly@evolveum.com">mederly@evolveum.com</a>><br>
<b>Subject:</b> Re: [midPoint] bulk action task for removing assignment<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p>Hello Paul,<o:p></o:p></p>
<p>this is a quirk from the prehistory of midPoint: references are not filtered using q:equal but using q:ref.<o:p></o:p></p>
<p>Furthermore, you may eliminate custom coding by using "unassign" action that provides a filter for assigments to be removed.<o:p></o:p></p>
<p>See e.g. <a href="https://github.com/Evolveum/midpoint/blob/75e549f2e5ce52ab4b008c18e2e7ba8b2072e151/model/model-intest/src/test/resources/scripting/unassign-captain-from-jack.xml#L18-L26">
https://github.com/Evolveum/midpoint/blob/75e549f2e5ce52ab4b008c18e2e7ba8b2072e151/model/model-intest/src/test/resources/scripting/unassign-captain-from-jack.xml#L18-L26</a> for an example.<o:p></o:p></p>
<p>Hope this helps. No guarantees, though. :)<o:p></o:p></p>
<pre>-- <o:p></o:p></pre>
<pre>Pavol Mederly<o:p></o:p></pre>
<pre>Software developer<o:p></o:p></pre>
<pre>evolveum.com<o:p></o:p></pre>
<div>
<p class="MsoNormal">On 17/08/2023 17:03, Paul Caskey via midPoint wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal">I am trying to remove all user assignments to OrgType objects in a bulk action task but am having trouble.<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">I think I have the filter correct, but I’m having trouble with the script when it tries to examine the type on a given assignment (to prepare it for deletion).<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">This is the filter:<o:p></o:p></p>
<p class="MsoNormal"> <q:filter><o:p></o:p></p>
<p class="MsoNormal"> <q:equal><o:p></o:p></p>
<p class="MsoNormal"> <q:path>assignment/targetRef</q:path><o:p></o:p></p>
<p class="MsoNormal"> <q:value type="OrgType" /><o:p></o:p></p>
<p class="MsoNormal"> </q:equal><o:p></o:p></p>
<p class="MsoNormal"> </q:filter><o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">And this is the first part of the script that checks the assignment for a user:<o:p></o:p></p>
<p class="MsoNormal"> UserType user = input as UserType<o:p></o:p></p>
<p class="MsoNormal"> for (AssignmentType assignment : user.getAssignment()) {<o:p></o:p></p>
<p class="MsoNormal"> if (aassignment.targetRef.type == 'OrgType') {<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">The error I am getting is:<o:p></o:p></p>
<p class="MsoNormal">class com.evolveum.midpoint.prism.impl.PrismReferenceValueImpl cannot be cast to class com.evolveum.midpoint.prism.PrismPropertyValue (com.evolveum.midpoint.prism.impl.PrismReferenceValueImpl and com.evolveum.midpoint.prism.PrismPropertyValue
are in unnamed module of loader org.springframework.boot.loader.LaunchedURLClassLoader @2e0fa5d3)<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">Thanks in advance for any help!<o:p></o:p></p>
<p class="MsoNormal">-Paul<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><o:p> </o:p></p>
<pre>_______________________________________________<o:p></o:p></pre>
<pre>midPoint mailing list<o:p></o:p></pre>
<pre><a href="mailto:midPoint@lists.evolveum.com">midPoint@lists.evolveum.com</a><o:p></o:p></pre>
<pre><a href="https://lists.evolveum.com/mailman/listinfo/midpoint">https://lists.evolveum.com/mailman/listinfo/midpoint</a><o:p></o:p></pre>
</blockquote>
</div>
</div>
</div>
</div>
</body>
</html>