mwoi1  
                
                  
                    September 30, 2021, 10:57am
                   
                  1 
               
             
            
              Hi,
I was setting up a library plugin to get the possibility to install custom java code “on-the-fly” without any regular deployment.
The plugin installation is successful and the packages are marked as “scriptPackages” in the manifest.xml.
When I run a regular test rule with references to the plugins java code from the debug page the code can be found and processed.
But when I use the same code inside a before provisioning rule inside a web services connector, the provisioning is failing:
2021-09-30T06:54:14,511 ERROR https-openssl-nio-8443-exec-7 sailpoint.provisioning.PlanEvaluator:2011 - BeanShell script error: bsh.EvalError: Sourced file: inline evaluation of: ``   import de.dhh.iam.beforeprovisioning.Test;     import de.dhh.iam.beforeprovis . . . '' : Typed variable declaration : Class: Test not found in namespace : at Line: 6 : in file: inline evaluation of: ``   import de.dhh.iam.beforeprovisioning.Test;     import de.dhh.iam.beforeprovis . . . '' : Test
Is this an expected behaviour or a bug in IIQ?
Best,
             
            
              
            
           
          
            
              
                mwoi1  
              
                  
                    October 1, 2021, 10:42am
                   
                  2 
               
             
            
              It’s a BUG. When I updated the name of the rule the java code from the plugin was accessible within the before provisioning rule.
             
            
              
            
           
          
            
              
                kcwong  
              
                  
                    October 5, 2021,  1:33am
                   
                  3 
               
             
            
              Do you have multiple servers? From my experience I found that the plugin deployment process is somewhat buggy, sometimes it will not update all SailPoint servers. After updating a plugin, some servers will be running the latest version, while the others would still be running the old one.
Next time you see this happen, try stopping and restarting your plugin.
             
            
              
            
           
          
            
            
              I have the same issue with the customization rule.
I changed the customization rule name. 
I upload the plugin several times. 
I restarted the tomcat after uploading the plugin. 
I changed the java class name. 
 
Still, I’m getting the no class found issue when I trigger an aggregation task.
Is there a limitation for different types of BeanShell? Such as the Plugin class cannot be used in Customization rule etc.
Caused by: org.apache.bsf.BSFException: BeanShell script error: bsh.EvalError: Sourced file: inline evaluation of: ``         import java.lang.IllegalArgumentException;         import java.lang.Sys . . . '' : Typed variable declaration : Class: MailService not found in namespace : at Line: 47 : in file: inline evaluation of: ``         import java.lang.IllegalArgumentException;         import java.lang.Sys . . . '' : MailService
 BSF info: library-dhh at line: 0 column: columnNo
	at bsh.util.BeanShellBSFEngine.eval(BeanShellBSFEngine.java:202) ~[bsh-2.1.8.jar:2.1.8 2018-10-02 08:36:04]
	at org.apache.bsf.BSFManager$5.run(BSFManager.java:445) ~[bsf.jar:?]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_151]
	at org.apache.bsf.BSFManager.eval(BSFManager.java:442) ~[bsf.jar:?]
	at sailpoint.server.BSFRuleRunner.eval(BSFRuleRunner.java:233) ~[identityiq.jar:8.1p4 Build 8db8c87b938-20211220-115258]
	at sailpoint.server.BSFRuleRunner.runRule(BSFRuleRunner.java:190) ~[identityiq.jar:8.1p4 Build 8db8c87b938-20211220-115258]
	... 10 more