Hi,
When creating a second REST connector an error raised in Core Syncope
while inspecting the first one. It's about compiling a groovy script
not in connector configuration.
Any help would be appreciated.
Best regards,
Stéphane POPOFF
2026-01-12 16:32:10.524
[operation.id=019bb30c-f896-721f-b7da-bf8fdb04942a] ERROR
[handler-431] org.apache.syncope.core.rest.cxf.RestServiceExceptionMapper
: Exception thrown
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script1.groovy: 109: Unexpected input: 'case' @ line 109, column 1.
case "UPDATE_DELTA":
^
1 error
at
org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:292)
at
org.codehaus.groovy.control.ErrorCollector.addFatalError(ErrorCollector.java:148)
at
org.apache.groovy.parser.antlr4.AstBuilder.collectSyntaxError(AstBuilder.java:4714)
at
org.apache.groovy.parser.antlr4.AstBuilder$3.syntaxError(AstBuilder.java:4725)
at
groovyjarjarantlr4.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:44)
at
groovyjarjarantlr4.v4.runtime.Parser.notifyErrorListeners(Parser.java:543)
at
groovyjarjarantlr4.v4.runtime.DefaultErrorStrategy.notifyErrorListeners(DefaultErrorStrategy.java:154)
at
org.apache.groovy.parser.antlr4.internal.DescriptiveErrorStrategy.reportInputMismatch(DescriptiveErrorStrategy.java:104)
at
org.apache.groovy.parser.antlr4.internal.DescriptiveErrorStrategy.recover(DescriptiveErrorStrategy.java:55)
at
org.apache.groovy.parser.antlr4.internal.DescriptiveErrorStrategy.recoverInline(DescriptiveErrorStrategy.java:68)
at groovyjarjarantlr4.v4.runtime.Parser.match(Parser.java:213)
at
org.apache.groovy.parser.antlr4.GroovyParser.compilationUnit(GroovyParser.java:366)
at
org.apache.groovy.parser.antlr4.AstBuilder.buildCST(AstBuilder.java:250)
at
org.apache.groovy.parser.antlr4.AstBuilder.buildCST(AstBuilder.java:228)
at
org.apache.groovy.parser.antlr4.AstBuilder.buildAST(AstBuilder.java:269)
at
org.apache.groovy.parser.antlr4.Antlr4ParserPlugin.buildAST(Antlr4ParserPlugin.java:58)
at org.codehaus.groovy.control.SourceUnit.buildAST(SourceUnit.java:256)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
at
java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1939)
at
java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:803)
at
org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:639)
at
groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:399)
at
groovy.lang.GroovyClassLoader.lambda$parseClass$5(GroovyClassLoader.java:345)
at
org.codehaus.groovy.runtime.memoize.ConcurrentCommonCache.getAndPut(ConcurrentCommonCache.java:138)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:345)
at groovy.lang.GroovyShell.parseClass(GroovyShell.java:601)
at groovy.lang.GroovyShell.parse(GroovyShell.java:614)
at groovy.lang.GroovyShell.parse(GroovyShell.java:668)
at groovy.lang.GroovyShell.parse(GroovyShell.java:654)
at groovy.lang.GroovyShell.parse(GroovyShell.java:663)
at
org.identityconnectors.common.script.groovy.GroovyScriptExecutorFactory$GroovyScriptExecutor.<init>(GroovyScriptExecutorFactory.java:85)
at
org.identityconnectors.common.script.groovy.GroovyScriptExecutorFactory.newScriptExecutor(GroovyScriptExecutorFactory.java:124)
at
net.tirasa.connid.commons.scripted.AbstractScriptedConnector.getScriptExecutor(AbstractScriptedConnector.java:164)
at
net.tirasa.connid.commons.scripted.AbstractScriptedConnector.init(AbstractScriptedConnector.java:187)
at
net.tirasa.connid.bundles.rest.RESTConnector.init(RESTConnector.java:72)
at
org.identityconnectors.framework.impl.api.local.operations.ConnectorAPIOperationRunnerProxy.invoke(ConnectorAPIOperationRunnerProxy.java:94)
at jdk.proxy2/jdk.proxy2.$Proxy360.test(Unknown Source)
at
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at
org.identityconnectors.framework.impl.api.local.operations.ThreadClassLoaderManagerProxy.invoke(ThreadClassLoaderManagerProxy.java:96)
at jdk.proxy2/jdk.proxy2.$Proxy360.test(Unknown Source)
at
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at
org.identityconnectors.framework.impl.api.DelegatingTimeoutProxy.invoke(DelegatingTimeoutProxy.java:98)
at jdk.proxy2/jdk.proxy2.$Proxy360.test(Unknown Source)
at
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at
org.identityconnectors.framework.impl.api.LoggingProxy.invoke(LoggingProxy.java:89)
at jdk.proxy2/jdk.proxy2.$Proxy360.test(Unknown Source)
at
org.identityconnectors.framework.impl.api.AbstractConnectorFacade.test(AbstractConnectorFacade.java:265)
at
org.apache.syncope.core.provisioning.java.AsyncConnectorFacade.test(AsyncConnectorFacade.java:162)
at
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:360)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at
org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:114)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
at
org.springframework.core.task.SimpleAsyncTaskExecutor$TaskTrackingRunnable.run(SimpleAsyncTaskExecutor.java:481)
at java.base/java.lang.VirtualThread.run(VirtualThread.java:456)
2026-01-12 16:32:10.563
[operation.id=019bb30c-f93a-7283-b710-56f78c5a06d3] DEBUG
[handler-433] rg.identityconnectors.framework.api.operations.ValidateApiOp
: instance='RestPerson' Enter: validate() Method: validate
2026-01-12 16:32:10.564
[operation.id=019bb30c-f93a-7283-b710-56f78c5a06d3] INFO
[handler-433] tirasa.connid.commons.scripted.AbstractScriptedConfiguration
: Validate net.tirasa.connid.bundles.rest.RESTConfiguration Method:
validate
2026-01-12 16:32:10.565
[operation.id=019bb30c-f93a-7283-b710-56f78c5a06d3] INFO
[handler-433] tirasa.connid.commons.scripted.AbstractScriptedConfiguration
: Checking Create Script filename Method: validate
2026-01-12 16:32:10.565
[operation.id=019bb30c-f93a-7283-b710-56f78c5a06d3] DEBUG
[handler-433] tirasa.connid.commons.scripted.AbstractScriptedConfiguration
: /opt/syncope/conf/CreateScript.groovy is readable Method:
checkFileIsReadable
2026-01-12 16:32:10.566
[operation.id=019bb30c-f93a-7283-b710-56f78c5a06d3] INFO
[handler-433] tirasa.connid.commons.scripted.AbstractScriptedConfiguration
: Checking Update Script filename Method: validate
2026-01-12 16:32:10.566
[operation.id=019bb30c-f93a-7283-b710-56f78c5a06d3] DEBUG
[handler-433] tirasa.connid.commons.scripted.AbstractScriptedConfiguration
: /opt/syncope/conf/UpdateScript.groovy is readable Method:
checkFileIsReadable
2026-01-12 16:32:10.566
[operation.id=019bb30c-f93a-7283-b710-56f78c5a06d3] INFO
[handler-433] tirasa.connid.commons.scripted.AbstractScriptedConfiguration
: Checking Delete Script filename Method: validate
2026-01-12 16:32:10.567
[operation.id=019bb30c-f93a-7283-b710-56f78c5a06d3] DEBUG
[handler-433] tirasa.connid.commons.scripted.AbstractScriptedConfiguration
: /opt/syncope/conf/DeleteScript.groovy is readable Method:
checkFileIsReadable
2026-01-12 16:32:10.567
[operation.id=019bb30c-f93a-7283-b710-56f78c5a06d3] INFO
[handler-433] tirasa.connid.commons.scripted.AbstractScriptedConfiguration
: Checking Search Script filename Method: validate
2026-01-12 16:32:10.568
[operation.id=019bb30c-f93a-7283-b710-56f78c5a06d3] DEBUG
[handler-433] tirasa.connid.commons.scripted.AbstractScriptedConfiguration
: /opt/syncope/conf/SearchScript.groovy is readable Method:
checkFileIsReadable
2026-01-12 16:32:10.568
[operation.id=019bb30c-f93a-7283-b710-56f78c5a06d3] INFO
[handler-433] tirasa.connid.commons.scripted.AbstractScriptedConfiguration
: Checking Sync Script filename Method: validate
2026-01-12 16:32:10.569
[operation.id=019bb30c-f93a-7283-b710-56f78c5a06d3] DEBUG
[handler-433] tirasa.connid.commons.scripted.AbstractScriptedConfiguration
: /opt/syncope/conf/SyncScript.groovy is readable Method:
checkFileIsReadable
2026-01-12 16:32:10.569
[operation.id=019bb30c-f93a-7283-b710-56f78c5a06d3] INFO
[handler-433] tirasa.connid.commons.scripted.AbstractScriptedConfiguration
: Checking Test Script filename Method: validate
2026-01-12 16:32:10.569
[operation.id=019bb30c-f93a-7283-b710-56f78c5a06d3] DEBUG
[handler-433] tirasa.connid.commons.scripted.AbstractScriptedConfiguration
: /opt/syncope/conf/TestScript.groovy is readable Method:
checkFileIsReadable
2026-01-12 16:32:10.570
[operation.id=019bb30c-f93a-7283-b710-56f78c5a06d3] DEBUG
[handler-433] tirasa.connid.commons.scripted.AbstractScriptedConfiguration
: Configuration is valid Method: validate
2026-01-12 16:32:10.570
[operation.id=019bb30c-f93a-7283-b710-56f78c5a06d3] DEBUG
[handler-433] rg.identityconnectors.framework.api.operations.ValidateApiOp
: Return: null Method: validate
2026-01-12 16:32:10.571 DEBUG [Executor-13]
org.identityconnectors.framework.api.operations.TestApiOp :
instance='RestPerson' Enter: test() Method: test
2026-01-12 16:32:10.620 DEBUG [Executor-13]
net.tirasa.connid.commons.scripted.AbstractScriptedConnector : Create
script loaded Method: init
2026-01-12 16:32:10.685 DEBUG [Executor-13]
net.tirasa.connid.commons.scripted.AbstractScriptedConnector : Update
script loaded Method: init
2026-01-12 16:32:10.714 DEBUG [Executor-13]
net.tirasa.connid.commons.scripted.AbstractScriptedConnector : Delete
script loaded Method: init
2026-01-12 16:32:10.795 DEBUG [Executor-13]
net.tirasa.connid.commons.scripted.AbstractScriptedConnector : Search
script loaded Method: init
2026-01-12 16:32:10.865 DEBUG [Executor-13]
net.tirasa.connid.commons.scripted.AbstractScriptedConnector : Sync
script loaded Method: init
2026-01-12 16:32:10.924 DEBUG [Executor-13]
net.tirasa.connid.commons.scripted.AbstractScriptedConnector : Schema
script loaded Method: init
2026-01-12 16:32:10.956 DEBUG [Executor-13]
net.tirasa.connid.commons.scripted.AbstractScriptedConnector : Test
script loaded Method: init
2026-01-12 16:32:10.956 DEBUG [Executor-13]
net.tirasa.connid.commons.scripted.AbstractScriptedConnector :
Connector net.tirasa.connid.bundles.rest.RESTConnector successfully
inited Method: init
2026-01-12 16:32:10.956 DEBUG [Executor-13]
org.identityconnectors.framework.spi.operations.TestOp :
instance='RestPerson' Enter: test() Method: test
2026-01-12 16:32:10.956 INFO [Executor-13]
tirasa.connid.commons.scripted.AbstractScriptedConfiguration :
Validate net.tirasa.connid.bundles.rest.RESTConfiguration Method:
validate
2026-01-12 16:32:10.957 INFO [Executor-13]
tirasa.connid.commons.scripted.AbstractScriptedConfiguration :
Checking Create Script filename Method: validate
2026-01-12 16:32:10.957 DEBUG [Executor-13]
tirasa.connid.commons.scripted.AbstractScriptedConfiguration :
/opt/syncope/conf/CreateScript.groovy is readable Method:
checkFileIsReadable
2026-01-12 16:32:10.957 INFO [Executor-13]
tirasa.connid.commons.scripted.AbstractScriptedConfiguration :
Checking Update Script filename Method: validate
2026-01-12 16:32:10.958 DEBUG [Executor-13]
tirasa.connid.commons.scripted.AbstractScriptedConfiguration :
/opt/syncope/conf/UpdateScript.groovy is readable Method:
checkFileIsReadable
2026-01-12 16:32:10.958 INFO [Executor-13]
tirasa.connid.commons.scripted.AbstractScriptedConfiguration :
Checking Delete Script filename Method: validate
2026-01-12 16:32:10.958 DEBUG [Executor-13]
tirasa.connid.commons.scripted.AbstractScriptedConfiguration :
/opt/syncope/conf/DeleteScript.groovy is readable Method:
checkFileIsReadable
2026-01-12 16:32:10.959 INFO [Executor-13]
tirasa.connid.commons.scripted.AbstractScriptedConfiguration :
Checking Search Script filename Method: validate
2026-01-12 16:32:10.959 DEBUG [Executor-13]
tirasa.connid.commons.scripted.AbstractScriptedConfiguration :
/opt/syncope/conf/SearchScript.groovy is readable Method:
checkFileIsReadable
2026-01-12 16:32:10.959 INFO [Executor-13]
tirasa.connid.commons.scripted.AbstractScriptedConfiguration :
Checking Sync Script filename Method: validate
2026-01-12 16:32:10.959 DEBUG [Executor-13]
tirasa.connid.commons.scripted.AbstractScriptedConfiguration :
/opt/syncope/conf/SyncScript.groovy is readable Method:
checkFileIsReadable
2026-01-12 16:32:10.960 INFO [Executor-13]
tirasa.connid.commons.scripted.AbstractScriptedConfiguration :
Checking Test Script filename Method: validate
2026-01-12 16:32:10.960 DEBUG [Executor-13]
tirasa.connid.commons.scripted.AbstractScriptedConfiguration :
/opt/syncope/conf/TestScript.groovy is readable Method:
checkFileIsReadable
2026-01-12 16:32:10.960 DEBUG [Executor-13]
tirasa.connid.commons.scripted.AbstractScriptedConfiguration :
Configuration is valid Method: validate
2026-01-12 16:32:10.963 INFO [Executor-13]
net.tirasa.connid.commons.scripted.AbstractScriptedConnector :
Entering TEST Script Method: invoke
2026-01-12 16:32:10.977 DEBUG [Executor-13]
net.tirasa.connid.commons.scripted.AbstractScriptedConnector : Test ok
Method: test
2026-01-12 16:32:10.977 DEBUG [Executor-13]
org.identityconnectors.framework.spi.operations.TestOp :
instance='RestPerson' Return Method: test
2026-01-12 16:32:10.977 DEBUG [Executor-13]
org.identityconnectors.framework.api.operations.TestApiOp : Return:
null Method: test