{"record":{"id":"5fb2a9b87f18bcb8","repo":"alibaba/nacos","slug":"locktype-or-lockkey-is-null","errorCode":null,"errorMessage":"lockType or lockKey is null.","messagePattern":"lockType or lockKey is null\\.","errorType":"validation","errorClass":"NacosLockException","httpStatus":null,"severity":"error","filePath":"lock/src/main/java/com/alibaba/nacos/lock/NacosLockManager.java","lineNumber":56,"sourceCode":"@Service\npublic class NacosLockManager implements LockManager {\n    \n    private final Map<String, LockFactory> factoryMap;\n    \n    private final ConcurrentHashMap<LockKey, AtomicLockService> atomicLockMap =\n        new ConcurrentHashMap<>();\n    \n    public NacosLockManager() {\n        Collection<LockFactory> factories = NacosServiceLoader.load(LockFactory.class);\n        factoryMap = factories.stream()\n            .collect(\n                Collectors.toConcurrentMap(LockFactory::getLockType, lockFactory -> lockFactory));\n    }\n    \n    @Override\n    public AtomicLockService getMutexLock(LockKey lockKey) {\n        if (lockKey == null || lockKey.getLockType() == null || lockKey.getKey() == null) {\n            throw new NacosLockException(\"lockType or lockKey is null.\");\n        }\n        if (!factoryMap.containsKey(lockKey.getLockType())) {\n            throw new NacosLockException(\"lockType: \" + lockKey.getLockType() + \" is not exist.\");\n        }\n        return atomicLockMap.computeIfAbsent(lockKey, lock -> {\n            LockFactory lockFactory = factoryMap.get(lock.getLockType());\n            return lockFactory.createLock(lock.getKey());\n        });\n    }\n    \n    @Override\n    public Map<LockKey, AtomicLockService> showLocks() {\n        return Collections.unmodifiableMap(atomicLockMap);\n    }\n    \n    /**\n     * Return the raw mutable lock map for internal use (snapshot load/save).\n     *","sourceCodeStart":38,"sourceCodeEnd":74,"githubUrl":"https://github.com/alibaba/nacos/blob/9b989acdf181d00898f2e8839257bb2b2a3cefe3/lock/src/main/java/com/alibaba/nacos/lock/NacosLockManager.java#L38-L74","documentation":"Error \"lockType or lockKey is null.\" thrown in alibaba/nacos.","triggerScenarios":"Thrown at lock/src/main/java/com/alibaba/nacos/lock/NacosLockManager.java:56 when the library encounters an invalid state.","commonSituations":"Acquiring a lock with a null lockType or lockKey.","solutions":["Provide a non-null value for lock params null before invoking this operation."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"9b989acdf181d00898f2e8839257bb2b2a3cefe3","analyzedAt":"2026-08-14T07:17:31.569Z","schemaVersion":2},"datasetVersion":"2026-08-14T10:17:34.591Z"}