paascloud/paascloud-master · error · UacBizException

UAC10011001

UAC10011001

Error message

ErrorCodeEnum.UAC10011001

What it means

UAC10011001 is thrown by UacRoleUserServiceImpl.deleteByUserId when the userId parameter is null. Deleting all role-user associations for a user requires the user id; a null would otherwise produce an unbounded delete, so the service rejects it immediately before touching the mapper.

Solutions

  1. Ensure the user id is loaded/validated before invoking deleteByUserId
  2. Add a null check on the user entity before the cascade delete
  3. Skip or log-and-continue for records with a null userId in batch jobs
  4. Verify the upstream user lookup succeeded (delete the user only after it is found)

Example fix

// before
UacUser user = uacUserService.getByUserCode(code);
uacRoleUserService.deleteByUserId(user.getId()); // NPE if user==null
// after
UacUser user = uacUserService.getByUserCode(code);
Preconditions.checkNotNull(user, "user not found: " + code);
uacRoleUserService.deleteByUserId(user.getId());
Defensive patterns

Strategy: validation

Validate before calling

if (user == null || user.getId() == null) { throw new IllegalStateException("cannot delete roles for unknown user"); }

Type guard

boolean isDeletableUser(UacUser user) { return user != null && user.getId() != null; }

Try / catch

try { uacRoleUserService.deleteByUserId(userId); } catch (UacBizException e) { if ("UAC10011001".equals(e.getCode())) { log.warn("skipped role-user delete: null userId"); return 0; } throw e; }

Prevention

When it happens

Trigger: Calling deleteByUserId(null), typically inside a user-delete flow where the user object or its id was never loaded (e.g. user not found upstream and the null id propagated).

Common situations: Cascading user-deletion code that doesn't check the user lookup result, refactored callers that dropped an earlier null check, or batch jobs processing malformed records with missing user ids.

Related errors


AI-assisted analysis of paascloud/paascloud-master@781281a950 (2026-09-10). Data as JSON: /api/errors/1f896d2693a50cda. Report an issue: GitHub.

Appendix: source

Thrown at paascloud-provider/paascloud-provider-uac/src/main/java/com/paascloud/provider/service/impl/UacRoleUserServiceImpl.java:34

import javax.annotation.Resource;
import java.util.List;
import java.util.Objects;

/**
 * The class Uac role user service.
 *
 * @author paascloud.net@gmail.com
 */
@Service
@Transactional(rollbackFor = Exception.class)
public class UacRoleUserServiceImpl extends BaseService<UacRoleUser> implements UacRoleUserService {
	@Resource
	private UacRoleUserMapper uacRoleUserMapper;

	@Override
	public int deleteByUserId(Long userId) {
		if (null == userId) {
			throw new UacBizException(ErrorCodeEnum.UAC10011001);
		}

		UacRoleUser param = new UacRoleUser();
		param.setUserId(userId);
		return uacRoleUserMapper.delete(param);
	}

	@Override
	@Transactional(readOnly = true, rollbackFor = Exception.class)
	public List<UacRoleUser> queryByUserId(Long userId) {
		if (null == userId) {
			throw new UacBizException(ErrorCodeEnum.UAC10011001);
		}

		return uacRoleUserMapper.listByUserId(userId);
	}

	@Override

View on GitHub (pinned to 781281a950)