SystemMessagesProvider api question

The pass in SystemMessageInfo.getRequest() got null at some condition. I wonder why design inconsitent api like this.

If I want to localize system message for individual user, I must to solve the locale from request. For example use spring CookieLocaleResolver.

    @Override
    public SystemMessages getSystemMessages(SystemMessagesInfo systemMessagesInfo) {
        CustomizedSystemMessages messages = new CustomizedSystemMessages();
        VaadinRequest vr = VaadinService.getCurrentRequest();
        Locale locale = LocaleSelector.getLocaleSupported(RequestContextUtils.getLocale((SpringVaadinServletRequest)vr));
//        Locale locale;
//        if (systemMessagesInfo.getRequest() == null) {
//            locale = Locale.US;
//        } else {
//            locale = LocaleSelector.getLocaleSupported(RequestContextUtils.getLocale((SpringVaadinServletRequest)systemMessagesInfo.getRequest()));    
//        }
        
        messages.setAuthenticationErrorCaption(messageSource.getMessage("systemmessage.authenticationErrorCaption", null, locale));