diff --git a/OpenICF-dbcommon/src/main/java/org/identityconnectors/dbcommon/SQLUtil.java b/OpenICF-dbcommon/src/main/java/org/identityconnectors/dbcommon/SQLUtil.java index 6aef2ed8..9aa977ed 100644 --- a/OpenICF-dbcommon/src/main/java/org/identityconnectors/dbcommon/SQLUtil.java +++ b/OpenICF-dbcommon/src/main/java/org/identityconnectors/dbcommon/SQLUtil.java @@ -821,8 +821,6 @@ public static void setSQLParam(final PreparedStatement stmt, final int idx, SQLP stmt.setLong(idx, ((BigInteger) val).longValue()); } else if (val instanceof Byte) { stmt.setByte(idx, (Byte) val); - } else if (val instanceof Integer) { - stmt.setInt(idx, (Integer) val); } else if (val instanceof InputStream) { stmt.setBinaryStream(idx, (InputStream) val, 10000); } else if (val instanceof Blob) { diff --git a/OpenICF-groovy-connector/src/main/java/org/forgerock/openicf/misc/scriptedcommon/ScriptedConfiguration.java b/OpenICF-groovy-connector/src/main/java/org/forgerock/openicf/misc/scriptedcommon/ScriptedConfiguration.java index 8ea122ba..7bdce53c 100644 --- a/OpenICF-groovy-connector/src/main/java/org/forgerock/openicf/misc/scriptedcommon/ScriptedConfiguration.java +++ b/OpenICF-groovy-connector/src/main/java/org/forgerock/openicf/misc/scriptedcommon/ScriptedConfiguration.java @@ -780,7 +780,7 @@ protected Log getLogger(final Class clazz) { return logger; } - private GroovyScriptEngine groovyScriptEngine = null; + private volatile GroovyScriptEngine groovyScriptEngine = null; protected GroovyScriptEngine getGroovyScriptEngine() { if (null == groovyScriptEngine) { diff --git a/OpenICF-java-framework/connector-framework-contract/src/main/java/org/identityconnectors/contract/test/ContractITCase.java b/OpenICF-java-framework/connector-framework-contract/src/main/java/org/identityconnectors/contract/test/ContractITCase.java index 398cef04..0002b15d 100644 --- a/OpenICF-java-framework/connector-framework-contract/src/main/java/org/identityconnectors/contract/test/ContractITCase.java +++ b/OpenICF-java-framework/connector-framework-contract/src/main/java/org/identityconnectors/contract/test/ContractITCase.java @@ -20,6 +20,7 @@ * with the fields enclosed by brackets [] replaced by * your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" + * Portions Copyrighted 2026 3A Systems, LLC */ package org.identityconnectors.contract.test; @@ -32,8 +33,6 @@ import org.identityconnectors.common.StringUtil; import org.identityconnectors.contract.data.DataProvider; -import org.identityconnectors.framework.api.ConnectorFacade; -import org.identityconnectors.framework.common.objects.Schema; import org.testng.IObjectFactory; import org.testng.ITestContext; import org.testng.annotations.Factory; @@ -70,7 +69,7 @@ public Object[] createInstances(ITestContext context) { Injector injector = getInjector(context); List result = new ArrayList(); - IObjectFactory objectFactory = null; + IObjectFactory objectFactory = new ObjectFactoryImpl(); for (Class testClass: getContractTestClasses(context)) { Constructor constructor = null; @@ -111,14 +110,4 @@ public Injector getInjector(ITestContext context) { public DataProvider getDataProvider(ITestContext context) { return ConnectorHelper.createDataProvider(); } - - private static class ContractTestFactory { - - private ConnectorFacade connectorFacade = null; - - private Schema schema = null; - - private IObjectFactory objectFactory = new ObjectFactoryImpl(); - - } } diff --git a/OpenICF-java-framework/connector-framework-server/src/main/java/org/forgerock/openicf/framework/remote/rpc/WebSocketConnectionGroup.java b/OpenICF-java-framework/connector-framework-server/src/main/java/org/forgerock/openicf/framework/remote/rpc/WebSocketConnectionGroup.java index b5010290..66eabe6e 100644 --- a/OpenICF-java-framework/connector-framework-server/src/main/java/org/forgerock/openicf/framework/remote/rpc/WebSocketConnectionGroup.java +++ b/OpenICF-java-framework/connector-framework-server/src/main/java/org/forgerock/openicf/framework/remote/rpc/WebSocketConnectionGroup.java @@ -71,7 +71,7 @@ public class WebSocketConnectionGroup private Encryptor encryptor = null; - private RemoteOperationContext operationContext = null; + private volatile RemoteOperationContext operationContext = null; private final AtomicBoolean isRunning = new AtomicBoolean(Boolean.TRUE); private final Set principals = new TreeSet(String.CASE_INSENSITIVE_ORDER); diff --git a/OpenICF-java-framework/connector-framework/src/main/java/org/identityconnectors/framework/common/FrameworkUtil.java b/OpenICF-java-framework/connector-framework/src/main/java/org/identityconnectors/framework/common/FrameworkUtil.java index 03f42dd1..ace6fb22 100644 --- a/OpenICF-java-framework/connector-framework/src/main/java/org/identityconnectors/framework/common/FrameworkUtil.java +++ b/OpenICF-java-framework/connector-framework/src/main/java/org/identityconnectors/framework/common/FrameworkUtil.java @@ -20,6 +20,7 @@ * "Portions Copyrighted [year] [name of copyright owner]" * ==================== * Portions Copyrighted 2010-2016 ForgeRock AS. + * Portions Copyrighted 2026 3A Systems, LLC */ package org.identityconnectors.framework.common; @@ -485,14 +486,14 @@ public static Uid getUidIfGetOperation(Filter filter) { * * @return the framework version; never null. */ - public static Version getFrameworkVersion() { + public static synchronized Version getFrameworkVersion() { if (frameworkVersion == null) { frameworkVersion = Version.create(1, 5); } return frameworkVersion; } - static Version getFrameworkVersion(ClassLoader loader) throws IOException { + static Version readFrameworkVersion(ClassLoader loader) throws IOException { InputStream stream = loader.getResourceAsStream("connectors-framework.properties"); try { Properties props = new Properties(); diff --git a/OpenICF-java-framework/connector-framework/src/test/java/org/identityconnectors/framework/common/FrameworkUtilTests.java b/OpenICF-java-framework/connector-framework/src/test/java/org/identityconnectors/framework/common/FrameworkUtilTests.java index ff2186a6..d7052a7f 100644 --- a/OpenICF-java-framework/connector-framework/src/test/java/org/identityconnectors/framework/common/FrameworkUtilTests.java +++ b/OpenICF-java-framework/connector-framework/src/test/java/org/identityconnectors/framework/common/FrameworkUtilTests.java @@ -19,6 +19,7 @@ * enclosed by brackets [] replaced by your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" * ==================== + * Portions Copyrighted 2026 3A Systems, LLC */ package org.identityconnectors.framework.common; @@ -41,13 +42,13 @@ public class FrameworkUtilTests { @Test public void testFrameworkVersion() throws Exception { ClassLoader loader = new VersionClassLoader(this.getClass().getClassLoader(), "1.2.3-alpha"); - assertEquals(FrameworkUtil.getFrameworkVersion(loader), Version.parse("1.2.3")); + assertEquals(FrameworkUtil.readFrameworkVersion(loader), Version.parse("1.2.3")); } @Test public void testFrameworkVersionCannotBeBlank() throws Exception { try { - FrameworkUtil.getFrameworkVersion(new VersionClassLoader(this.getClass().getClassLoader(), " ")); + FrameworkUtil.readFrameworkVersion(new VersionClassLoader(this.getClass().getClassLoader(), " ")); Assert.fail(); } catch (IllegalStateException e) { // OK. diff --git a/OpenICF-java-framework/testbundlev1/src/main/java/org/identityconnectors/testconnector/BatchRemoteCache.java b/OpenICF-java-framework/testbundlev1/src/main/java/org/identityconnectors/testconnector/BatchRemoteCache.java index 848ec748..62b2f024 100644 --- a/OpenICF-java-framework/testbundlev1/src/main/java/org/identityconnectors/testconnector/BatchRemoteCache.java +++ b/OpenICF-java-framework/testbundlev1/src/main/java/org/identityconnectors/testconnector/BatchRemoteCache.java @@ -20,6 +20,7 @@ * with the fields enclosed by brackets [] replaced by * your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" + * Portions Copyrighted 2026 3A Systems, LLC */ package org.identityconnectors.testconnector; @@ -61,7 +62,7 @@ public CachedBatchResult(Boolean complete, Boolean error, String resultId, Objec private final Map> tasks = new HashMap>(); private final Map> results = new HashMap>(); private final Map complete = new HashMap(); - private final String resultLock = "resultLock"; + private final Object resultLock = new Object(); public static void addTasks(String token, List tasklist) { singleton.tasks.put(token, new ArrayList(tasklist)); diff --git a/OpenICF-java-framework/testbundlev1/src/main/java/org/identityconnectors/testconnector/TstStatefulConnectorConfig.java b/OpenICF-java-framework/testbundlev1/src/main/java/org/identityconnectors/testconnector/TstStatefulConnectorConfig.java index 42610c7a..f347a7d2 100755 --- a/OpenICF-java-framework/testbundlev1/src/main/java/org/identityconnectors/testconnector/TstStatefulConnectorConfig.java +++ b/OpenICF-java-framework/testbundlev1/src/main/java/org/identityconnectors/testconnector/TstStatefulConnectorConfig.java @@ -20,6 +20,7 @@ * with the fields enclosed by brackets [] replaced by * your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" + * Portions Copyrighted 2026 3A Systems, LLC */ package org.identityconnectors.testconnector; @@ -122,7 +123,7 @@ public void setRandomString(String randomString) { private UUID guid; - private ScheduledExecutorService executorService = null; + private volatile ScheduledExecutorService executorService = null; public synchronized UUID getGuid() { if (null == guid) {