问:
Validation in Thymeleaf + Spring. Using validation in registration stops displaying the html page
Faced with such a problem that when using in pom.xml spring-boot-starter-validation stops displaying the html page with registration. Without this, Thymeleaf works correctly.
I searched through all the forums, and did not find the problem.

RegistrationController

```<code>
package ru.dnsbo.blogreferee2.controllers;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.Errors;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import ru.dnsbo.blogreferee2.data.UsersRepository;
import ru.dnsbo.blogreferee2.form.RegistrationForm;
import ru.dnsbo.blogreferee2.services.RegistrationService;

import javax.validation.Valid;

@Controller
@RequestMapping("/registration")
public class RegistrationController {

    @Autowired
    private UsersRepository usersRepository;
    @Autowired
    RegistrationService registrationService;

    @GetMapping
    private String GetRegistrationPage() {
        return "registration";
    }

    @PostMapping
    private String PostRegistrationPage(Model model, @Valid RegistrationForm form,
                                        Errors errors) {
        //проверка на существующий email
        if(usersRepository.findByEmail(form.getEmail()).isPresent()) {
            return "registration";
        }
        //проверка на валидность
        if(errors.hasErrors()){
            return "registration";
        }
        registrationService.registration(form);
        return "redirect:/login";
    }

}
</code>```

RegistrationForm

```<code>
import lombok.Data;
import javax.validation.constraints.Size;

@Data
public class RegistrationForm {
@Size(min = 3,max = 10)
private String firstname;
private String lastname;
private String email;
private String numberPhone;
private String password;
private String country;
private String city;
private String dateBirthday;
private String street;
private String house;
private String flat;
}
</code>```

RegistrationServiceImpl implements RegistrationService

```<code>
@Service
@Builder
public class RegistrationServiceImpl implements RegistrationService {
@Autowired
private UsersRepository usersRepository;

    @Autowired
    private PasswordEncoder passwordEncoder;

    @Override
    public void registration(RegistrationForm registrationForm) {

        String hashPassword = passwordEncoder.encode(registrationForm.getPassword());

        //заполняем форму для регистрации
        Users users = Users.builder()
                .firstname(registrationForm.getFirstname())
                .lastname(registrationForm.getLastname())
                .email(registrationForm.getEmail())
                .password(hashPassword)
                .numberPhone(registrationForm.getNumberPhone())
                .country(registrationForm.getCountry())
                .city(registrationForm.getCity())
                .dateBirthday(registrationForm.getDateBirthday())
                .street(registrationForm.getStreet())
                .house(registrationForm.getHouse())
                .flat(registrationForm.getFlat())
                //ставится по умолчанию
                .role(Role.USER)
                .state(State.ACTIVE)
                .build();

        //сохраняем пользователя в бд
        usersRepository.save(users);
    }

}
</code>```

registration.html

```<code>
<!DOCTYPE html>
<html lang="en">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org/">
<head>
    <meta charset="UTF-8">
    <title>Московская Федерация Судей</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link th:href="@{/css/registrationAndLogin}" rel="stylesheet" type="text/css">
    <script src="https://cdn.tailwindcss.com?plugins=forms,typography,aspect-ratio,line-clamp"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
    <script src="https://unpkg.com/flowbite@1.5.5/dist/datepicker.js"></script>

    <script>
        tailwind.config = {
            theme: {
                extend: {
                    colors: {
                        clifford: '#da373d',
                    }
                }
            }
        }
    </script>

</head>
<body>
<header th:insert="blocks/header :: header"></header>
<main>
    <div class="hidden sm:block" aria-hidden="true">
        <div class="py-5">
            <div class="border-t border-gray-200"></div>
        </div>
    </div>

    <div class="mt-10 sm:mt-0">
        <div class="md:grid md:grid-cols-4   md:gap-6">
            <div class="mt-5 md:col-start-2 md:col-span-2 md:mt-0">
                <!-- в метод registration post отравляется запрос-->
                <form th:action="@{/registration}" th:object="${form}" method="post">
                    <div class="overflow-hidden shadow sm:rounded-md border-2 border-white">
                        <div class="bg-sky-50 px-4 py-5 sm:p-6">
                            <div class="grid grid-cols-6 gap-6">

                                <!--Поле ввода для имени-->

                                <div class="col-span-6 sm:col-span-3">
                                    <label for="firstname" class="block text-sm
                                     font-medium text-gray-700">

                                        Имя</label>
                                    <input type="text" name="firstname" id="firstname"
                                           autocomplete="firstname" th:field="*{firstname}"
                                           class=" mt-1 block w-full rounded-md border-gray-300
                                            shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm"
                                          />
                                    <div th:if="${#fields.hasErrors('firstname')}"
                                         th:errors="*{firstname}" >
                                        Ошибка ввода
                                    </div>
                                </div>

                        //прочий код

                        <!--Кнопка сохранить и отравить в бд-->

                        <div class="bg-indigo-50 px-4 py-3 text-right sm:px-6">
                            <button type="submit"
                                    class="inline-flex justify-center rounded-md border border-transparent
                                     bg-indigo-600 py-2 px-4 text-sm font-medium text-white shadow-sm hover:bg-indigo-700
                                     focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2">
                                Сохранить
                            </button>
                        </div>

                    </div>
                </form>
            </div>
        </div>
    </div>
</main>
</body>
</html>
</code>```

Mistakes:

```<code>
2022-12-14 17:41:07.634 ERROR 12580 --- \[p-nio-80-exec-1\] org.thymeleaf.TemplateEngine             : \[THYMELEAF\]\[http-nio-80-exec-1\] Exception processing template "registration": An error happened during template parsing (template: "class path resource \[templates/registration.html\]")

org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource \[templates/registration.html\]")
at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:241) \~\[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE\]
at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parseStandalone(AbstractMarkupTemplateParser.java:100) \~\[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE\]
at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:666) \~\[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE\]
at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1098) \~\[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE\]
at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1072) \~\[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE\]
at org.thymeleaf.spring5.view.ThymeleafView.renderFragment(ThymeleafView.java:366) \~\[thymeleaf-spring5-3.0.15.RELEASE.jar:3.0.15.RELEASE\]
at org.thymeleaf.spring5.view.ThymeleafView.render(ThymeleafView.java:190) \~\[thymeleaf-spring5-3.0.15.RELEASE.jar:3.0.15.RELEASE\]
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1405) \~\[spring-webmvc-5.3.23.jar:5.3.23\]
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1149) \~\[spring-webmvc-5.3.23.jar:5.3.23\]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1088) \~\[spring-webmvc-5.3.23.jar:5.3.23\]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964) \~\[spring-webmvc-5.3.23.jar:5.3.23\]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) \~\[spring-webmvc-5.3.23.jar:5.3.23\]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) \~\[spring-webmvc-5.3.23.jar:5.3.23\]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:670) \~\[tomcat-embed-core-9.0.68.jar:4.0.FR\]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) \~\[spring-webmvc-5.3.23.jar:5.3.23\]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:779) \~\[tomcat-embed-core-9.0.68.jar:4.0.FR\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) \~\[tomcat-embed-websocket-9.0.68.jar:9.0.68\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:223) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:217) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.23.jar:5.3.23\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.23.jar:5.3.23\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.23.jar:5.3.23\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) \~\[spring-web-5.3.23.jar:5.3.23\]
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) \~\[spring-web-5.3.23.jar:5.3.23\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) \~\[spring-web-5.3.23.jar:5.3.23\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.23.jar:5.3.23\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) \~\[spring-web-5.3.23.jar:5.3.23\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.23.jar:5.3.23\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) \~\[spring-web-5.3.23.jar:5.3.23\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.23.jar:5.3.23\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
</code>```

i know there is something terribly wrong with my understanding of how this whole annotation thing gets wired up and maps to the Valid. I've rummaged through all combinations and posts in StOv for similar exceptions, but I've clearly missed something. could someone be so kind as to point out my blunder here?

I could make validation work through js or html, but it is important for me that it is implemented through Java

advance thanks

Body:
Faced with such a problem that when using in pom.xml spring-boot-starter-validation stops displaying the html page with registration. Without this, Thymeleaf works correctly.
I searched through all the forums, and did not find the problem.

RegistrationController

package ru.dnsbo.blogreferee2.controllers;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.Errors;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import ru.dnsbo.blogreferee2.data.UsersRepository;
import ru.dnsbo.blogreferee2.form.RegistrationForm;
import ru.dnsbo.blogreferee2.services.RegistrationService;

import javax.validation.Valid;

@Controller
@RequestMapping("/registration")
public class RegistrationController {

    @Autowired
    private UsersRepository usersRepository;
    @Autowired
    RegistrationService registrationService;

    @GetMapping
    private String GetRegistrationPage() {
        return "registration";
    }

    @PostMapping
    private String PostRegistrationPage(Model model, @Valid RegistrationForm form,
                                        Errors errors) {
        //проверка на существующий email
        if(usersRepository.findByEmail(form.getEmail()).isPresent()) {
            return "registration";
        }
        //проверка на валидность
        if(errors.hasErrors()){
            return "registration";
        }
        registrationService.registration(form);
        return "redirect:/login";
    }

}

RegistrationForm

import lombok.Data;
import javax.validation.constraints.Size;

@Data
public class RegistrationForm {
@Size(min = 3,max = 10)
private String firstname;
private String lastname;
private String email;
private String numberPhone;
private String password;
private String country;
private String city;
private String dateBirthday;
private String street;
private String house;
private String flat;
}

RegistrationServiceImpl implements RegistrationService

@Service
@Builder
public class RegistrationServiceImpl implements RegistrationService {
@Autowired
private UsersRepository usersRepository;

    @Autowired
    private PasswordEncoder passwordEncoder;

    @Override
    public void registration(RegistrationForm registrationForm) {

        String hashPassword = passwordEncoder.encode(registrationForm.getPassword());

        //заполняем форму для регистрации
        Users users = Users.builder()
                .firstname(registrationForm.getFirstname())
                .lastname(registrationForm.getLastname())
                .email(registrationForm.getEmail())
                .password(hashPassword)
                .numberPhone(registrationForm.getNumberPhone())
                .country(registrationForm.getCountry())
                .city(registrationForm.getCity())
                .dateBirthday(registrationForm.getDateBirthday())
                .street(registrationForm.getStreet())
                .house(registrationForm.getHouse())
                .flat(registrationForm.getFlat())
                //ставится по умолчанию
                .role(Role.USER)
                .state(State.ACTIVE)
                .build();

        //сохраняем пользователя в бд
        usersRepository.save(users);
    }

}

registration.html

<!DOCTYPE html>

    <meta charset="UTF-8">
    <title>Московская Федерация Судей</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link th:href="@{/css/registrationAndLogin}" rel="stylesheet" type="text/css">

                <form th:action="@{/registration}" th:object="${form}" method="post">

                                        Имя
                                    <input type="text" name="firstname" id="firstname"
                                           autocomplete="firstname" th:field="*{firstname}"
                                           class=" mt-1 block w-full rounded-md border-gray-300
                                            shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm"
                                          />

                                        Ошибка ввода

                        //прочий код

                            <button type="submit"
                                    class="inline-flex justify-center rounded-md border border-transparent
                                     bg-indigo-600 py-2 px-4 text-sm font-medium text-white shadow-sm hover:bg-indigo-700
                                     focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2">
                                Сохранить
                            </button>

                </form>

Mistakes:

2022-12-14 17:41:07.634 ERROR 12580 --- \[p-nio-80-exec-1\] org.thymeleaf.TemplateEngine             : \[THYMELEAF\]\[http-nio-80-exec-1\] Exception processing template "registration": An error happened during template parsing (template: "class path resource \[templates/registration.html\]")

org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource \[templates/registration.html\]")
at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:241) \~\[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE\]
at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parseStandalone(AbstractMarkupTemplateParser.java:100) \~\[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE\]
at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:666) \~\[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE\]
at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1098) \~\[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE\]
at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1072) \~\[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE\]
at org.thymeleaf.spring5.view.ThymeleafView.renderFragment(ThymeleafView.java:366) \~\[thymeleaf-spring5-3.0.15.RELEASE.jar:3.0.15.RELEASE\]
at org.thymeleaf.spring5.view.ThymeleafView.render(ThymeleafView.java:190) \~\[thymeleaf-spring5-3.0.15.RELEASE.jar:3.0.15.RELEASE\]
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1405) \~\[spring-webmvc-5.3.23.jar:5.3.23\]
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1149) \~\[spring-webmvc-5.3.23.jar:5.3.23\]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1088) \~\[spring-webmvc-5.3.23.jar:5.3.23\]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964) \~\[spring-webmvc-5.3.23.jar:5.3.23\]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) \~\[spring-webmvc-5.3.23.jar:5.3.23\]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) \~\[spring-webmvc-5.3.23.jar:5.3.23\]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:670) \~\[tomcat-embed-core-9.0.68.jar:4.0.FR\]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) \~\[spring-webmvc-5.3.23.jar:5.3.23\]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:779) \~\[tomcat-embed-core-9.0.68.jar:4.0.FR\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) \~\[tomcat-embed-websocket-9.0.68.jar:9.0.68\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:223) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:217) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.23.jar:5.3.23\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.23.jar:5.3.23\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.23.jar:5.3.23\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) \~\[spring-security-web-5.7.4.jar:5.7.4\]
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) \~\[spring-web-5.3.23.jar:5.3.23\]
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) \~\[spring-web-5.3.23.jar:5.3.23\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) \~\[spring-web-5.3.23.jar:5.3.23\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.23.jar:5.3.23\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) \~\[spring-web-5.3.23.jar:5.3.23\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.23.jar:5.3.23\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) \~\[spring-web-5.3.23.jar:5.3.23\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.23.jar:5.3.23\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) \~\[tomcat-embed-core-9.0.68.jar:9.0.68\]

i know there is something terribly wrong with my understanding of how this whole annotation thing gets wired up and maps to the Valid. I've rummaged through all combinations and posts in StOv for similar exceptions, but I've clearly missed something. could someone be so kind as to point out my blunder here?

I could make validation work through js or html, but it is important for me that it is implemented through Java

advance thanks


来源: stackexchange

问:
VueBankCard component is not displayed
I have tried to place component of bank card (avto-dev/bank-card-vue-component) in my frontend application on Vue.js, but I can't find this component in my frame after I followed their instructions on Github.

Here you can see my package.json file:

"dependencies": {
  "@avto-dev/bank-card-vue-component": "^1.3.0",
  ...
  ...
},
```
<p><code>main.js</code>:</p>
<pre class="lang-js prettyprint-override"><code>import VueBankCard from "@avto-dev/bank-card-vue-component"
import "@avto-dev/bank-card-vue-component/dist/bank-card-vue-component.css"

const app = createApp(App)
app.use(PrimeVue).use(router)

...
...

app.component('VueBankCard', VueBankCard)
</code>```

and Profile.vue where I use this component:

```<code><template>
<div class="profile">
  <div class="bank-card-block">
    <Card class="custom-card bank-card">
      <template>
        <VueBankCard
            is-small
            is-new
        ></VueBankCard>
      </template>
    </Card>
  </div>
</div>
</template>

<script>

export default {
  name: "Profile",
  data(){
    return{
      valueFields: {
        cardName: "",
        cardNumber: "",
        cardMonth: "",
        cardYear: "",
        cardCvv: "",
      },
    }
  }
}
</script>

<style scoped>
.profile{
  display: flex;
  width: 94%;
}

.bank-card-block{
  width: 45%;
}

.bank-card{
  border-radius: 15px;
}

</style>
</code>```

I have no hypothesis where it can be mistake.

Can you explain me what I have skipped, because all what I have done was only according to instructions in the github of this component.

ContentLicense: CC BY-SA 4.0

Title: VueBankCard component is not displayed

Body:
I have tried to place component of bank card (avto-dev/bank-card-vue-component) in my frontend application on Vue.js, but I can't find this component in my frame after I followed their instructions on Github.

Here you can see my package.json file:

"dependencies": {
  "@avto-dev/bank-card-vue-component": "^1.3.0",
  ...
  ...
},

main.js:

import VueBankCard from "@avto-dev/bank-card-vue-component"
import "@avto-dev/bank-card-vue-component/dist/bank-card-vue-component.css"

const app = createApp(App)
app.use(PrimeVue).use(router)

...
...

app.component('VueBankCard', VueBankCard)

and Profile.vue where I use this component:

<template>

    <Card class="custom-card bank-card">
      <template>
        <VueBankCard
            is-small
            is-new
        ></VueBankCard>
      </template>
    </Card>

</template>

I have no hypothesis where it can be mistake.

Can you explain me what I have skipped, because all what I have done was only according to instructions in the github of this component.


问:
Linux iSCSI - how to change CHAP alg from MD5
I've setup a iSCSI target server (using tgt) and inititator (open-iscsi) both running on Ubuntu 22.04 LTS. Mutual CHAP authentication works like a charm, but have hit a snag with the session auth algo.

Default is MD5 (oof) but based on the initiator iscsi.conf file it is possible to add node.session.auth.chap_algs = SHA3-256,SHA256,SHA1,MD5, thereby defining a preferential list of hash algos.

I've edited the NODE conf file on the initiator except using anything other than MD5 the authentication fails. Have tried with the comma separated list, and just SHA1 but get the same result. Has to be MD5.

My guess is that it has something to do with the target server/tgt config, but cannot for the life of me find any info on how to reconfigure the target to accept something other than MD5.

Hoped there might be something in /usr/doc/tgt but no luck.

Anyone have any pointers?


问:
arm_math library with ropi rwpi compiler options
when cross-compiling for STM32-U585 processor the arm_math library with IAR compiler options ropi and rwpi enabled the below errors appears.
Thank you in advance for any help

arm_const_structs.c

Error[Pe147]: declaration is incompatible with "struct #30 arm_cfft_sR_f32_len16" (declared at line 36 of "C:\AST\FedLearn\AI_in_a_Module_on_U5_V1.1\B-U585I-IOT02A_VESPUCCI_MODULAR_FW\Drivers\CMSIS\DSP\ C:\AST\FedLearn\AI_in_a_Module_on_U5_V1.1\B-U585I-IOT02A_VESPUCCI_MODULAR_FW\Drivers\CMSIS\DSP\Source\CommonTables\arm_const_structs.c 36
Projects\IAR/../../Include\arm_const_structs.h")
Error[Ta071]: The address of a pc/static base relative object cannot be used in static initialization C:\AST\FedLearn\AI_in_a_Module_on_U5_V1.1\B-U585I-IOT02A_VESPUCCI_MODULAR_FW\Drivers\CMSIS\DSP\Source\CommonTables\arm_const_structs.c 38
Error[Ta071]: The address of a pc/static base relative object cannot be used in static initialization C:\AST\FedLearn\AI_in_a_Module_on_U5_V1.1\B-U585I-IOT02A_VESPUCCI_MODULAR_FW\Drivers\CMSIS\DSP\Source\CommonTables\arm_const_structs.c 38
Error[Pa088]: non-constructor dynamic initialization of const variables not allowed in this memory C:\AST\FedLearn\AI_in_a_Module_on_U5_V1.1\B-U585I-IOT02A_VESPUCCI_MODULAR_FW\Drivers\CMSIS\DSP\Source\CommonTables\arm_const_structs.c 36


问:
Javascript Garbage Collector in Chrome not kicking in automatically
On page load, the memory consumed by the browser increases rapidly and the browser
crashes with an "Aw, Snap!" message with the error code "Out of Memory".

I observed that:

If I make the tab inactive then the GC kicks in and collects the unreachable objects and reclaims the memory.

The memory is also reclaimed when I trigger a manual garbage collection from the browser's DevTools.

This indicates that there are no memory leaks and the memory is increasing
just because GC is not kicking automatically in to reclaim the memory.

Note : This happens only in chromium based browsers[Chrome & Edge].
The page loads normally in Firefox since the memory is reclaimed regularly.

What to do in such cases? Is there any way to trigger GC from javascript?

Observation -> In chrome task manager, the Memory footprint increases rapidly, while the Javascript memory remains within limits


问:
Result from job procedure with multiple internal procedures
I have one procedure with multiple internal procedures. The main procedure is with try-catch block and transaction in while expression. Each of the internal procedures has no transaction and no try-catch block.

My question is if procedure3 crashes with an error, will the whole transaction be rolled back and procedure1 and procedure2 will not have executed? In this case what will XACT_STATE() do?

It looks like that:

```<code>DECLARE @param int;

CREATE TABLE #table (id int);

INSERT INTO #table (id)
    SELECT SubmissionDataID
    FROM [sob].[SubmissionData]
    WHERE [sob].[SubmissionData].SubmissionStatusID = 9
      AND [sob].[SubmissionData].[IsLast] = 1;

WHILE EXISTS (SELECT TOP 1 id FROM #table)
BEGIN
BEGIN TRY
    BEGIN TRANSACTION
        SELECT TOP 1 @param=id FROM #table

        EXEC procedure1 (@param);
        EXEC procedure2 (@param);
        EXEC procedure3 (@param);
        EXEC procedure4 (@param);
        EXEC procedure5 (@param);
        EXEC procedure6 (@param);
        EXEC procedure7 (@param);

        DELETE FROM #table
        WHERE id = @param

    COMMIT TRANSACTION
END TRY

BEGIN CATCH
    DELETE FROM #table
    WHERE id = @param;

    SELECT
        ERROR_MESSAGE(), ERROR_SEVERITY(), ERROR_STATE();

    -- Transaction uncommittable
    IF (XACT_STATE()) = -1
    BEGIN
        ROLLBACK TRANSACTION
        PRINT 'INFO: TRANSACTION has been ROLLBACKED!';
        THROW;
    END

    -- Transaction committable
    IF (XACT_STATE()) = 1
        COMMIT TRANSACTION

END CATCH
END --end while

DROP TABLE #table;

END
/* ************ END OF PROCEDURE ************ */
</code>```

I'm not sure how XACT_STATE() works.

Body:
I have one procedure with multiple internal procedures. The main procedure is with try-catch block and transaction in while expression. Each of the internal procedures has no transaction and no try-catch block.

My question is if procedure3 crashes with an error, will the whole transaction be rolled back and procedure1 and procedure2 will not have executed? In this case what will XACT_STATE() do?

It looks like that:

DECLARE @param int;

CREATE TABLE #table (id int);

INSERT INTO #table (id)
    SELECT SubmissionDataID
    FROM [sob].[SubmissionData]
    WHERE [sob].[SubmissionData].SubmissionStatusID = 9
      AND [sob].[SubmissionData].[IsLast] = 1;

WHILE EXISTS (SELECT TOP 1 id FROM #table)
BEGIN
BEGIN TRY
    BEGIN TRANSACTION
        SELECT TOP 1 @param=id FROM #table

        EXEC procedure1 (@param);
        EXEC procedure2 (@param);
        EXEC procedure3 (@param);
        EXEC procedure4 (@param);
        EXEC procedure5 (@param);
        EXEC procedure6 (@param);
        EXEC procedure7 (@param);

        DELETE FROM #table
        WHERE id = @param

    COMMIT TRANSACTION
END TRY

BEGIN CATCH
    DELETE FROM #table
    WHERE id = @param;

    SELECT
        ERROR_MESSAGE(), ERROR_SEVERITY(), ERROR_STATE();

    -- Transaction uncommittable
    IF (XACT_STATE()) = -1
    BEGIN
        ROLLBACK TRANSACTION
        PRINT 'INFO: TRANSACTION has been ROLLBACKED!';
        THROW;
    END

    -- Transaction committable
    IF (XACT_STATE()) = 1
        COMMIT TRANSACTION

END CATCH
END --end while

DROP TABLE #table;

END
/* ************ END OF PROCEDURE ************ */

I'm not sure how XACT_STATE() works.


问:
Google Cloud - Project "Submit for verification" doesn't appear
"Submit for verification" button doesn't appear after fill in information and selecting scope for my project.

We are trying to connect BigQuery to Azure Data Factory.
To be able for the 3rd party developer to work properly on collecting the data, we need to make the project "internal".
To make the project "internal", we need a Google Workspace User - except that we don't know who is the workspace user within my company.

I reached out to Google Support and they advised us to Submit the project for verification.

I followed the steps communicated by Google Support.

You can apply for verification again in the Google Cloud Console. Please note the following information:
•   If scopes are selected, the scope justification fields must be filled out in order to trigger the ‘Submit for verification’ button to appear.
o   Example: My app will use https://mail.google.com/ to read, compose, send, and permanently delete from Gmail. I will need read in order to____ so that my app can . I will need compose in order too, I will need send in order to____, and I will need to delete in order to____.The reason a narrower scope would not be sufficient is because ____.

After selecting a scope, I don't have a pop-up window to fill in the scope justification.
And the "Submit for verification" button doesn't appear.


问:
javascript querySelectorAll is not working on all django objects in the template
I'm working on Auctions website using Javascript and Django. I want to make each user has the ability to view products that he has participated in whether by selling , competition by bids or won bids. So I created a page containing three buttons(won, selling , competiting). On clicking on each buttons , shows the related products(change the display on click). Until now it works. The problem that I want in each product card on mouse over it shows certain div and on mouse out it shows another div. I created the functionality using Javascript (by forEach card in query that selects all cards). the problem that this functionality works on certain cards but upon clicking on the buttons that shows won or competition products, it doesn't work on the related cards (not working on all cards).

html:

```<code><div class="container">
    <div id="userbidsbuttons">
    <button class='userbidsbu'id="viewsell">Posted</button>
    <button class='userbidsbu'id="viewbuy">Won</button>
    <button class='userbidsbu'id="viewnow">In competition</button>
</div>

    <div class="indexobj">
      <div id="viewselluser">
        {% if yy.0 is not None%}
        {% for obj in yy %}

            <div class="card {{obj.bidcategory}}" style="width: 18rem;" id="{{obj.id}}">
                <img class="card-img-top" src="..{{obj.image.url}}" alt="Card image cap">
                <div class="thecardcontent" id="co{{obj.id}}">
                <div class="card-body">
                  <h5 class="card-title">{{obj.name}}</h5>
                  <p class="card-text">{{obj.bidcategory.category}}</p>
                </div>
                <ul class="list-group list-group-flush">
                    <ul class="list-group-item"><li ><i class="fa-solid fa-car"></i>  {{obj.model}}</li>
                        <li ><i class="fa-solid fa-star"></i> {{obj.brand}}</li></ul>
                  <ul class="list-group-item"><li ><i class="fa-solid fa-user"></i> {{obj.bidseller}}</li>

                    <li > <i class="fa-solid fa-location-dot"></i> {{obj.bidstate.state}}</li></ul>
                  <ul class="list-group-item">
                  <li  ><i class="fa-solid fa-money-bill"></i> <span id="p{{obj.id}}">{{obj.hightestbid.bid}}</span>$</li>
                  <li  class='timer'id="{{obj.id}}"><i class="fa-regular fa-clock"></i>{{obj.difference}}</li>
                </ul>

                </ul>
            </div>
            <div class="thecardbutton" id="bu{{obj.id}}">
                <div class="list-group-item currbi" ><i class="fa-solid fa-money-bill"></i> Current bid:<span id="p{{obj.id}}">{{obj.hightestbid.bid}}</span>$</div>
                <div class="card-body">
                  <a href="{{obj.get_absolute_url}}" ><button class="viewbid">viewbid</button></a>

                </div>
                <div>

                    <form class="indexaddbid" id="{{obj.id}}">
                        {% csrf_token %}
                        <input  type="number" placeholder="Add bid" id="s{{obj.id}}" class="indexinput">
                    </form>
                    <button class="viewbid onedollar" id="{{obj.id}}">Add 1$</button>
                </div>

              </div>
            </div>

            {% endfor %}

            {% else %}
        <h1>No Selled bids</h1>
        {% endif %}
    </div>
        <div  id="userbidsbuy">
            {% if xx.0 is not None%}
            {% for obj in xx %}
            {% if obj.selling == False %}

                <div class="card {{obj.bidcategory}}" style="width: 18rem;" id="{{obj.id}}">
                    <img class="card-img-top" src="..{{obj.image.url}}" alt="Card image cap">
                    <div class="thecardcontent" id="co{{obj.id}}">
                    <div class="card-body">
                      <h5 class="card-title">{{obj.name}}</h5>
                      <p class="card-text">{{obj.bidcategory.category}}</p>
                    </div>
                    <ul class="list-group list-group-flush">
                        <ul class="list-group-item"><li ><i class="fa-solid fa-car"></i>  {{obj.model}}</li>
                            <li ><i class="fa-solid fa-star"></i> {{obj.brand}}</li></ul>
                      <ul class="list-group-item"><li ><i class="fa-solid fa-user"></i> {{obj.bidseller}}</li>

                        <li > <i class="fa-solid fa-location-dot"></i> {{obj.bidstate.state}}</li></ul>
                      <ul class="list-group-item">
                      <li  ><i class="fa-solid fa-money-bill"></i> <span id="p{{obj.id}}">{{obj.hightestbid.bid}}</span>$</li>
                      <li  class='timer'id="{{obj.id}}"><i class="fa-regular fa-clock"></i>{{obj.difference}}</li>
                    </ul>

                    </ul>
                </div>
                <div class="thecardbutton" id="bu{{obj.id}}">
                    <div class="list-group-item currbi" ><i class="fa-solid fa-money-bill"></i> Current bid:<span id="p{{obj.id}}">{{obj.hightestbid.bid}}</span>$</div>
                    <div class="card-body">
                      <a href="{{obj.get_absolute_url}}" ><button class="viewbid">viewbid</button></a>

                    </div>
                    <div>

                        <form class="indexaddbid" id="{{obj.id}}">
                            {% csrf_token %}
                            <input  type="number" placeholder="Add bid" id="s{{obj.id}}" class="indexinput">
                        </form>
                        <button class="viewbid onedollar" id="{{obj.id}}">Add 1$</button>
                    </div>

                  </div>
                </div>
                {% endif %}
                {% endfor %}
                {% else %}
                <h1>No won bids</h1>
                {% endif %}

            </div>
            <div  id="userbidsnow">
                {% if zz.0 is not None%}
                {% for obj in zz %}
                {% if obj.pending == True %}

                <div class="card {{obj.bidcategory}}" style="width: 18rem;" id="{{obj.id}}">
                    <img class="card-img-top" src="..{{obj.image.url}}" alt="Card image cap">
                    <div class="thecardcontent" id="co{{obj.id}}">
                    <div class="card-body">
                      <h5 class="card-title">{{obj.name}}</h5>
                      <p class="card-text">{{obj.bidcategory.category}}</p>
                    </div>
                    <ul class="list-group list-group-flush">
                        <ul class="list-group-item"><li ><i class="fa-solid fa-car"></i>  {{obj.model}}</li>
                            <li ><i class="fa-solid fa-star"></i> {{obj.brand}}</li></ul>
                      <ul class="list-group-item"><li ><i class="fa-solid fa-user"></i> {{obj.bidseller}}</li>

                        <li > <i class="fa-solid fa-location-dot"></i> {{obj.bidstate.state}}</li></ul>
                      <ul class="list-group-item">
                      <li  ><i class="fa-solid fa-money-bill"></i> <span id="p{{obj.id}}">{{obj.hightestbid.bid}}</span>$</li>
                      <li  class='timer'id="{{obj.id}}"><i class="fa-regular fa-clock"></i>{{obj.difference}}</li>
                    </ul>

                    </ul>
                </div>
                <div class="thecardbutton" id="bu{{obj.id}}">
                    <div class="list-group-item currbi" ><i class="fa-solid fa-money-bill"></i> Current bid:<span id="p{{obj.id}}">{{obj.hightestbid.bid}}</span>$</div>
                    <div class="card-body">
                      <a href="{{obj.get_absolute_url}}" ><button class="viewbid">viewbid</button></a>

                    </div>
                    <div>

                        <form class="indexaddbid" id="{{obj.id}}">
                            {% csrf_token %}
                            <input  type="number" placeholder="Add bid" id="s{{obj.id}}" class="indexinput">
                        </form>
                        <button class="viewbid onedollar" id="{{obj.id}}">Add 1$</button>
                    </div>

                  </div>
                </div>
                                    {% endif %}
                    {% endfor %}
                    {% else %}
                    <h1>No won bids</h1>
                    {% endif %}

                </div>
        </div>

</code>```

javascript:

```<code>document.addEventListener('DOMContentLoaded',function(){

         document.querySelectorAll('.card').forEach(card => {
             card.addEventListener('mouseover', function(){
                 document.getElementById(`co${card.id}`).style.display = 'none';
                 document.getElementById(`bu${card.id}`).style.display = 'block';

               })
             card.addEventListener('mouseout', function(){
                 document.getElementById(`co${card.id}`).style.display = 'block';
                 document.getElementById(`bu${card.id}`).style.display = 'none';

             })
         })

         document.querySelector('#viewbuy').addEventListener('click',function(){
            document.querySelector('#userbidsbuy').style.display ='flex';
            document.querySelector('#viewselluser').style.display='none';
            document.querySelector('#userbidsnow').style.display='none';
        })

        document.querySelector('#viewsell').addEventListener('click',function(){
            document.querySelector('#userbidsbuy').style.display ='none';
            document.querySelector('#viewselluser').style.display='flex';
            document.querySelector('#userbidsnow').style.display='none';
        })

        document.querySelector('#viewnow').addEventListener('click',function(){
            document.querySelector('#userbidsbuy').style.display ='none';
            document.querySelector('#viewselluser').style.display='none';
            document.querySelector('#userbidsnow').style.display='flex';
        })
        })

    console.log('wor')
</code>```

css:

```<code>
#userbidsnow{
    display: none;

}

#userbidsbuy{
    display: none;
}
</code>```

, so how can I solve it

I tried to solve it with using  load event listener but not working

Body:
I'm working on Auctions website using Javascript and Django. I want to make each user has the ability to view products that he has participated in whether by selling , competition by bids or won bids. So I created a page containing three buttons(won, selling , competiting). On clicking on each buttons , shows the related products(change the display on click). Until now it works. The problem that I want in each product card on mouse over it shows certain div and on mouse out it shows another div. I created the functionality using Javascript (by forEach card in query that selects all cards). the problem that this functionality works on certain cards but upon clicking on the buttons that shows won or competition products, it doesn't work on the related cards (not working on all cards).

html:

    <button class='userbidsbu'id="viewsell">Posted</button>
    <button class='userbidsbu'id="viewbuy">Won</button>
    <button class='userbidsbu'id="viewnow">In competition</button>

        {% if yy.0 is not None%}
        {% for obj in yy %}

{{obj.name}}

{{obj.bidcategory.category}}

  {{obj.model}}

 {{obj.brand}}

 {{obj.bidseller}}

  {{obj.bidstate.state}}

 {{obj.hightestbid.bid}}$

{{obj.difference}}

 Current bid:{{obj.hightestbid.bid}}$

                  <button class="viewbid">viewbid</button>

                    <form class="indexaddbid" id="{{obj.id}}">
                        {% csrf_token %}
                        <input  type="number" placeholder="Add bid" id="s{{obj.id}}" class="indexinput">
                    </form>
                    <button class="viewbid onedollar" id="{{obj.id}}">Add 1$</button>

            {% endfor %}

            {% else %}

No Selled bids

        {% endif %}

            {% if xx.0 is not None%}
            {% for obj in xx %}
            {% if obj.selling == False %}

{{obj.name}}

{{obj.bidcategory.category}}

  {{obj.model}}

 {{obj.brand}}

 {{obj.bidseller}}

  {{obj.bidstate.state}}

 {{obj.hightestbid.bid}}$

{{obj.difference}}

 Current bid:{{obj.hightestbid.bid}}$

                      <button class="viewbid">viewbid</button>

                        <form class="indexaddbid" id="{{obj.id}}">
                            {% csrf_token %}
                            <input  type="number" placeholder="Add bid" id="s{{obj.id}}" class="indexinput">
                        </form>
                        <button class="viewbid onedollar" id="{{obj.id}}">Add 1$</button>

                {% endif %}
                {% endfor %}
                {% else %}

No won bids

                {% endif %}

                {% if zz.0 is not None%}
                {% for obj in zz %}
                {% if obj.pending == True %}

{{obj.name}}

{{obj.bidcategory.category}}

  {{obj.model}}

 {{obj.brand}}

 {{obj.bidseller}}

  {{obj.bidstate.state}}

 {{obj.hightestbid.bid}}$

{{obj.difference}}

 Current bid:{{obj.hightestbid.bid}}$

                      <button class="viewbid">viewbid</button>

                        <form class="indexaddbid" id="{{obj.id}}">
                            {% csrf_token %}
                            <input  type="number" placeholder="Add bid" id="s{{obj.id}}" class="indexinput">
                        </form>
                        <button class="viewbid onedollar" id="{{obj.id}}">Add 1$</button>

                                    {% endif %}
                    {% endfor %}
                    {% else %}

No won bids

                    {% endif %}

javascript:

document.addEventListener('DOMContentLoaded',function(){

         document.querySelectorAll('.card').forEach(card => {
             card.addEventListener('mouseover', function(){
                 document.getElementById(`co${card.id}`).style.display = 'none';
                 document.getElementById(`bu${card.id}`).style.display = 'block';

               })
             card.addEventListener('mouseout', function(){
                 document.getElementById(`co${card.id}`).style.display = 'block';
                 document.getElementById(`bu${card.id}`).style.display = 'none';

             })
         })

         document.querySelector('#viewbuy').addEventListener('click',function(){
            document.querySelector('#userbidsbuy').style.display ='flex';
            document.querySelector('#viewselluser').style.display='none';
            document.querySelector('#userbidsnow').style.display='none';
        })

        document.querySelector('#viewsell').addEventListener('click',function(){
            document.querySelector('#userbidsbuy').style.display ='none';
            document.querySelector('#viewselluser').style.display='flex';
            document.querySelector('#userbidsnow').style.display='none';
        })

        document.querySelector('#viewnow').addEventListener('click',function(){
            document.querySelector('#userbidsbuy').style.display ='none';
            document.querySelector('#viewselluser').style.display='none';
            document.querySelector('#userbidsnow').style.display='flex';
        })
        })

    console.log('wor')

css:

#userbidsnow{
    display: none;

}

#userbidsbuy{
    display: none;
}

, so how can I solve it

I tried to solve it with using  load event listener but not working


问:
Replacing Nginx with Traefik caused Django to use admin files via HTTP instead of HTTPS, breaking functionality
I had a perfectly fine Django CMS 3.4.1 setup running behind Nginx as an edge-server with SSL termination. The complete chain was:

nginx (SSL) → nginx (django server) → gunicorn → django

All I did was to replace the first nginx reverse proxy with traefik, for a better integration of other services. Everything is run with docker (compose)

The issue is, that Django now wants to redirect HTTPS calls to admin files (and ajax calls) to HTTP, breaking functionality because those files are blocked by the browser.
I did not change anything with the django installation. In fact, it even is the same docker image as before.

Because it did work with the old setup, I don't think that it is an issue with the Django CMS code using hardcoded http://. SSL was terminated before the django reverse proxy, as well.

Does anyone see something I am missing?

Here are some configuration files, from top to bottom:

traefic.yml:

```<code>global:
  sendAnonymousUsage: false

api:
  dashboard: true
  insecure: true

providers:
  docker:
    endpoint: "unix:///var/run/docker.sock"
    watch: true
    exposedByDefault: false

log:
  level: INFO
  format: common

entryPoints:
  http:
    address: ":80"
    http:
      redirections:
        entryPoint:
          to: https
          scheme: https
  https:
    address: ":443"

certificatesResolvers:
  letsencrypt:
    acme:
      email: ***
      storage: /etc/acme/acme.json
      httpChallenge:
        entryPoint: http
</code>```

relevant parts of django-server docker-compose file:

```<code># ...
services:

  cms-nginx:
    build: "./nginx"
    depends_on:
      - postgres
    networks:
      - proxy
      - cms
    volumes:
      - cms_static:/usr/src/app/static
      - cms_media:/usr/src/app/media
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=proxy"
      - "traefik.http.routers.cms.rule=Host(`***`)"
      - "traefik.http.routers.cms.tls=true"
      - "traefik.http.routers.cms.tls.certresolver=letsencrypt"

  cms:
    restart: always
    build: ./cms
    links:
      - postgres:postgres
      - static:static
    expose:
      - "8000"
    volumes:
      - ./cms:/usr/src/app
      - static_out:/usr/src/app/data/generated
      - cms_static:/usr/src/app/data/static
      - cms_media:/usr/src/app/data/media
    depends_on:
      - static
    env_file:
      - .env
      - ./cms/.env
    command: /bin/sh -c "./docker-init.sh"
    networks:
      - cms
</code>```

django server nginx conf:

```<code>server {

    listen 80;
    server_name *** default_server;
    charset utf-8;

    client_max_body_size 75M;

    location ^~ /static/ {
        alias /usr/src/app/static/;
    }

    location ^~ /media/ {
        alias /usr/src/app/media/;
    }

    location / {
        proxy_pass http://cms:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Protocol $scheme;
    }

    error_log /var/log/nginx/deckel_error.log;
}

</code>```

gunicorn start command:

```<code>/usr/local/bin/gunicorn cms.wsgi:application -w 2 -b :8000
</code>```

django settings part:

```<code>SESSION_COOKIE_SECURE = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTOCOL', 'https')
CSRF_COOKIE_SECURE = True
SECURE_SSL_REDIRECT = True
</code>```

Body:
I had a perfectly fine Django CMS 3.4.1 setup running behind Nginx as an edge-server with SSL termination. The complete chain was:

nginx (SSL) → nginx (django server) → gunicorn → django

All I did was to replace the first nginx reverse proxy with traefik, for a better integration of other services. Everything is run with docker (compose)

The issue is, that Django now wants to redirect HTTPS calls to admin files (and ajax calls) to HTTP, breaking functionality because those files are blocked by the browser.
I did not change anything with the django installation. In fact, it even is the same docker image as before.

Because it did work with the old setup, I don't think that it is an issue with the Django CMS code using hardcoded http://. SSL was terminated before the django reverse proxy, as well.

Does anyone see something I am missing?

Here are some configuration files, from top to bottom:

traefic.yml:

global:
  sendAnonymousUsage: false

api:
  dashboard: true
  insecure: true

providers:
  docker:
    endpoint: "unix:///var/run/docker.sock"
    watch: true
    exposedByDefault: false

log:
  level: INFO
  format: common

entryPoints:
  http:
    address: ":80"
    http:
      redirections:
        entryPoint:
          to: https
          scheme: https
  https:
    address: ":443"

certificatesResolvers:
  letsencrypt:
    acme:
      email: ***
      storage: /etc/acme/acme.json
      httpChallenge:
        entryPoint: http

relevant parts of django-server docker-compose file:

# ...
services:

  cms-nginx:
    build: "./nginx"
    depends_on:
      - postgres
    networks:
      - proxy
      - cms
    volumes:
      - cms_static:/usr/src/app/static
      - cms_media:/usr/src/app/media
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=proxy"
      - "traefik.http.routers.cms.rule=Host(`***`)"
      - "traefik.http.routers.cms.tls=true"
      - "traefik.http.routers.cms.tls.certresolver=letsencrypt"

  cms:
    restart: always
    build: ./cms
    links:
      - postgres:postgres
      - static:static
    expose:
      - "8000"
    volumes:
      - ./cms:/usr/src/app
      - static_out:/usr/src/app/data/generated
      - cms_static:/usr/src/app/data/static
      - cms_media:/usr/src/app/data/media
    depends_on:
      - static
    env_file:
      - .env
      - ./cms/.env
    command: /bin/sh -c "./docker-init.sh"
    networks:
      - cms

django server nginx conf:

server {

    listen 80;
    server_name *** default_server;
    charset utf-8;

    client_max_body_size 75M;

    location ^~ /static/ {
        alias /usr/src/app/static/;
    }

    location ^~ /media/ {
        alias /usr/src/app/media/;
    }

    location / {
        proxy_pass http://cms:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Protocol $scheme;
    }

    error_log /var/log/nginx/deckel_error.log;
}

gunicorn start command:

/usr/local/bin/gunicorn cms.wsgi:application -w 2 -b :8000

django settings part:

SESSION_COOKIE_SECURE = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTOCOL', 'https')
CSRF_COOKIE_SECURE = True
SECURE_SSL_REDIRECT = True


问:
Compiling with -fno-automatic still produces a stack overflow error
I'm calling some Fortran code from Julia and am getting a stack overflow error.

From what I can see in the gfortran man page, when using the -fno-automatic flag, the stack is never used however I'm still getting a stack overflow. Interestingly, if I compile on a Mac (rather than Linux) I don't get this stack overflow.

I've also tried setting ulimit -s in the shell to no avail, any further ideas to debug would be greatly appreciated!

Mac gfortran version

 $ gfortran -v
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/opt/homebrew/Cellar/gcc/12.2.0/bin/../libexec/gcc/aarch64-apple-darwin22/12/lto-wrapper
Target: aarch64-apple-darwin22
Configured with: ../configure --prefix=/opt/homebrew/opt/gcc --libdir=/opt/homebrew/opt/gcc/lib/gcc/current --disable-nls --enable-checking=release --with-gcc-major-version-only --enable-languages=c,c++,objc,obj-c++,fortran --program-suffix=-12 --with-gmp=/opt/homebrew/opt/gmp --with-mpfr=/opt/homebrew/opt/mpfr --with-mpc=/opt/homebrew/opt/libmpc --with-isl=/opt/homebrew/opt/isl --with-zstd=/opt/homebrew/opt/zstd --with-pkgversion='Homebrew GCC 12.2.0' --with-bugurl=https://github.com/Homebrew/homebrew-core/issues --with-system-zlib --build=aarch64-apple-darwin22 --with-sysroot=/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.2.0 (Homebrew GCC 12.2.0)
```
<p><strong>Linux gfortran version</strong></p>
<pre class="lang-bash prettyprint-override"><code> $ gfortran -v
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.3.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-xKiWfi/gcc-11-11.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-xKiWfi/gcc-11-11.3.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04)
</code>```

Compiler commands

gfortran -J./src -fsyntax-only -c -ffree-line-length-300 src/module_1.f90
gfortran -J./src  -fsyntax-only -c -ffree-line-length-300 src/module_2.f90
gfortran -J./src  -fsyntax-only -c -ffree-line-length-300 src/module_3.f90
gfortran -J./src  -fsyntax-only -c -ffree-line-length-300 src/module_4.f90
gfortran -shared -fPIC -ffree-line-length-300 -g -fbounds-check -Wall -Wno-tabs ./src/file1.f90 ./src/file2.f90 ./src/file3.f90 ./src/file4.f90 ./src/file5.f90 ./src/file6.f90 -o shared_object_file.so
```
<p><strong>Error message (originates from Julia)</strong></p>
```┌ Error: ERROR:
│   exception =
│    StackOverflowError:
```
<p><strong>An update</strong></p>
<p>An update, I'm note sure it's a stack overflow issue after running the code via gdb. I can see that when a subroutine (passed to <code>subroutine1</code> as argument <code>f</code>) is called it instantly segfaults:</p>
```Thread 1 "julia" hit Breakpoint 1, module1::subroutine1 (m1=0, m2=11, n1=1, n2=66, n=66, id=...,
f=0x1554b2c4de9c, j=0x1554b2c4de80, max_iter=100, x=..., y=..., tol=1e-08, iflag=.TRUE.) at ./src/solve_model.f90:261
261         do k=1, max_iter
(gdb) step
262             call F()
(gdb) step
Thread 1 "julia" received signal SIGSEGV, Segmentation fault.
0x00001554b2c4de9c in ?? ()
```
<p>It appears that subroutine <code>f</code> isn't entered, just the call to it causes the segfault.</p>
<p>Below is an example of <code>subroutine1</code>:</p>
```
subroutine subroutine1(arg1, arg2, arg3, arg4, arg5, arg6, F, J, arg9, arg10)
    implicit none
    interface
        subroutine F(arg1, arg2, arg3, arg4, arg5, arg6)
            use ISO_FORTRAN_ENV, only: int64
            integer(int64), intent(in) :: arg1, arg2, arg3, arg4, arg5, arg6(arg5)
            double precision, intent(inout)::arg9(arg1:arg2, arg3:arg4)
            double precision, intent(out):: arg10(arg1:arg2, arg5), y(arg1:arg2, arg3:arg4)
        end subroutine
```

Body:
I'm calling some Fortran code from Julia and am getting a stack overflow error.

From what I can see in the gfortran man page, when using the -fno-automatic flag, the stack is never used however I'm still getting a stack overflow. Interestingly, if I compile on a Mac (rather than Linux) I don't get this stack overflow.

I've also tried setting ulimit -s in the shell to no avail, any further ideas to debug would be greatly appreciated!

Mac gfortran version

 $ gfortran -v
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/opt/homebrew/Cellar/gcc/12.2.0/bin/../libexec/gcc/aarch64-apple-darwin22/12/lto-wrapper
Target: aarch64-apple-darwin22
Configured with: ../configure --prefix=/opt/homebrew/opt/gcc --libdir=/opt/homebrew/opt/gcc/lib/gcc/current --disable-nls --enable-checking=release --with-gcc-major-version-only --enable-languages=c,c++,objc,obj-c++,fortran --program-suffix=-12 --with-gmp=/opt/homebrew/opt/gmp --with-mpfr=/opt/homebrew/opt/mpfr --with-mpc=/opt/homebrew/opt/libmpc --with-isl=/opt/homebrew/opt/isl --with-zstd=/opt/homebrew/opt/zstd --with-pkgversion='Homebrew GCC 12.2.0' --with-bugurl=https://github.com/Homebrew/homebrew-core/issues --with-system-zlib --build=aarch64-apple-darwin22 --with-sysroot=/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.2.0 (Homebrew GCC 12.2.0)

Linux gfortran version

 $ gfortran -v
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.3.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-xKiWfi/gcc-11-11.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-xKiWfi/gcc-11-11.3.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04)

Compiler commands

gfortran -J./src -fsyntax-only -c -ffree-line-length-300 src/module_1.f90
gfortran -J./src  -fsyntax-only -c -ffree-line-length-300 src/module_2.f90
gfortran -J./src  -fsyntax-only -c -ffree-line-length-300 src/module_3.f90
gfortran -J./src  -fsyntax-only -c -ffree-line-length-300 src/module_4.f90
gfortran -shared -fPIC -ffree-line-length-300 -g -fbounds-check -Wall -Wno-tabs ./src/file1.f90 ./src/file2.f90 ./src/file3.f90 ./src/file4.f90 ./src/file5.f90 ./src/file6.f90 -o shared_object_file.so

Error message (originates from Julia)

┌ Error: ERROR:
│   exception =
│    StackOverflowError:

An update

An update, I'm note sure it's a stack overflow issue after running the code via gdb. I can see that when a subroutine (passed to subroutine1 as argument f) is called it instantly segfaults:

Thread 1 "julia" hit Breakpoint 1, module1::subroutine1 (m1=0, m2=11, n1=1, n2=66, n=66, id=...,
f=0x1554b2c4de9c, j=0x1554b2c4de80, max_iter=100, x=..., y=..., tol=1e-08, iflag=.TRUE.) at ./src/solve_model.f90:261
261         do k=1, max_iter
(gdb) step
262             call F()
(gdb) step
Thread 1 "julia" received signal SIGSEGV, Segmentation fault.
0x00001554b2c4de9c in ?? ()

It appears that subroutine f isn't entered, just the call to it causes the segfault.

Below is an example of subroutine1:

subroutine subroutine1(arg1, arg2, arg3, arg4, arg5, arg6, F, J, arg9, arg10)
    implicit none
    interface
        subroutine F(arg1, arg2, arg3, arg4, arg5, arg6)
            use ISO_FORTRAN_ENV, only: int64
            integer(int64), intent(in) :: arg1, arg2, arg3, arg4, arg5, arg6(arg5)
            double precision, intent(inout)::arg9(arg1:arg2, arg3:arg4)
            double precision, intent(out):: arg10(arg1:arg2, arg5), y(arg1:arg2, arg3:arg4)
        end subroutine


问:
how to multiply matrix elements correctly?
Using a 3 by 3 matrix where each element is 1/9, I need to blur the image

I need to calculate 3 total RGB color components(red, green, blue), for example , the final red component for the center pixel is calculated as the sum of the following terms:

• The red component of the upper-left pixel multiplied by the upper-left number of the table

• The red component of the upper central pixel multiplied by the upper central number of the table

as a result, there should be 9 summands, + similarly for the other two components

I wrote the following code, and at the output it turns out that only the blue color in the picture is slightly blurred

Important feature: Each coefficient of the convolution matrix must be multiplied by the color value of the corresponding neighbor of the current (changeable) pixel and the matrix must be a two-dimensional array

```<code>public class Blur {
    public static void main(String[] args) throws IOException {
        BufferedImage image = ImageIO.read(new File("image.jpg"));
        WritableRaster raster = image.getRaster();

        int width = raster.getWidth();
        int height = raster.getHeight();

        final int colors_count_in_rgb = 3;

        int[] pixel = new int[colors_count_in_rgb];

        for (int y = 0; y < height; y++) {
            for (int x = 0; x < width; x++) {
                raster.getPixel(x, y, pixel);

                float matrixPixel = 1 / 9F;

                float[] matrix = {
                        matrixPixel, matrixPixel, matrixPixel,
                        matrixPixel, matrixPixel, matrixPixel,
                        matrixPixel, matrixPixel, matrixPixel,
                };

                int finalRedComponent = 0;
                int finalGreenComponent = 0;
                int finalBlueComponent = 0;

                for (float e : matrix) {
                    finalRedComponent += e * pixel[0];
                    finalGreenComponent += e * pixel[1];
                    finalBlueComponent += e * pixel[2];
                }

                pixel[0] = finalRedComponent;
                pixel[1] = finalGreenComponent;
                pixel[2] = finalBlueComponent;

                raster.setPixel(x, y, pixel);
            }
        }

        ImageIO.write(image, "png", new File("out.png"));
    }
}
</code>```

Body:
Using a 3 by 3 matrix where each element is 1/9, I need to blur the image

I need to calculate 3 total RGB color components(red, green, blue), for example , the final red component for the center pixel is calculated as the sum of the following terms:

• The red component of the upper-left pixel multiplied by the upper-left number of the table

• The red component of the upper central pixel multiplied by the upper central number of the table

as a result, there should be 9 summands, + similarly for the other two components

I wrote the following code, and at the output it turns out that only the blue color in the picture is slightly blurred

Important feature: Each coefficient of the convolution matrix must be multiplied by the color value of the corresponding neighbor of the current (changeable) pixel and the matrix must be a two-dimensional array

public class Blur {
    public static void main(String[] args) throws IOException {
        BufferedImage image = ImageIO.read(new File("image.jpg"));
        WritableRaster raster = image.getRaster();

        int width = raster.getWidth();
        int height = raster.getHeight();

        final int colors_count_in_rgb = 3;

        int[] pixel = new int[colors_count_in_rgb];

        for (int y = 0; y < height; y++) {
            for (int x = 0; x < width; x++) {
                raster.getPixel(x, y, pixel);

                float matrixPixel = 1 / 9F;

                float[] matrix = {
                        matrixPixel, matrixPixel, matrixPixel,
                        matrixPixel, matrixPixel, matrixPixel,
                        matrixPixel, matrixPixel, matrixPixel,
                };

                int finalRedComponent = 0;
                int finalGreenComponent = 0;
                int finalBlueComponent = 0;

                for (float e : matrix) {
                    finalRedComponent += e * pixel[0];
                    finalGreenComponent += e * pixel[1];
                    finalBlueComponent += e * pixel[2];
                }

                pixel[0] = finalRedComponent;
                pixel[1] = finalGreenComponent;
                pixel[2] = finalBlueComponent;

                raster.setPixel(x, y, pixel);
            }
        }

        ImageIO.write(image, "png", new File("out.png"));
    }
}


问:
Google optimization AI RESTapi generate a print-access-token
We are working on a project to solve VRP with Google optimization AI RESTapi. In there documentation

Note: The following command assumes that you have logged in to the
gcloud CLI with your user account by executing gcloud init or gcloud
auth login, or by using Cloud Shell, which automatically logs you into
the gcloud CLI. You can check the currently active account by
executing gcloud auth list.

We need to pass a print-access-token to the RESTapi which can be generated via gcloud cli.

We want to generate this token programmatically with Node.js RESTapi, So then we can call the https://cloudoptimization.googleapis.com/v1/projects/project-id:optimizeTours  endpoint directly from our backend.


问:
PUPPETEER - Need to click element to get its updated innerText, I only get the unupdated one
I am getting crazy trying to scrape some data on a private platform. I have a list of events formatted as a table with nature of event, date, place, and field worker associated with the event. If the worker is alone, I have no trouble extracting its name. If however he is not alone and working in a team, that's where I can't get it done.

Here is a table showing the two cases:

Event #
Worker

39541
SMITH Paul

84751
SMITH Paul (+1)

And the HTML related to the table cell containing worker information on both lines.

First line:

```<code><td class="pure-datatable-col-technician  pure-datatable-cell " id="yui_3_17_2_1_1671091653408_2904">
"SMITH Paul"
</td>
</code>```

Second line:

```<code><td class="pure-datatable-col-technician  pure-datatable-cell " id="yui_3_17_2_1_1671091653408_2781">
"SMITH Paul "
    <span class="teammates-loader" id="yui_3_17_2_1_1671091653408_2782">
        "("
        <a id="yui_3_17_2_1_1671091653408_2784">+1</a>
        ")"
    </span>
</td>
</code>```

Notice there is no information about the other teammates in the html related to the second line.
However if I click on the span element, using document.querySelectorAll("td[class='pure-datatable-col-technician  pure-datatable-cell '] > span")[0].click(), the second line html changes to:

```<code><td class="pure-datatable-col-technician  pure-datatable-cell " id="yui_3_17_2_1_1671091653408_3034">
    <span class="etech-technician-leader" id="yui_3_17_2_1_1671091653408_3082">
    "SMITH Paul"
    </span>
    ", BAKER Michael"
</td>
</code>```

And the information related to other workers appears.

My strategy consisted in clicking every worker element having the span child as soon as Puppeteer arrives on the target page, before scraping its elements.

To compare retrieved worker data before and after the click, I basically did:

```<code>let pageData = await page.evaluate(() => {

    let baseWorkerData = [];
    let newWorkerData = [];
    let teamCells = document.querySelectorAll("td[class='pure-datatable-col-technician  pure-datatable-cell '] > span");

    for (var z = 0; z < teamCells.length; z++) {
        baseWorkerData.push(teamCells[z].parentElement.innerText);
        teamCells[z].click();
        newWorkerData.push(teamCells[z].parentElement.innerText);
    };

    let result = {"baseWorkerData": baseWorkerData, "newWorkerData": newWorkerData};

    return result;

});
</code>```

The result:

```<code>{
  baseCell: [
    "SMITH Paul (+1)"
  ],
  newCell: [
    "SMITH Paul (+1)"
  ],
}
</code>```

Nothing changes. I checked with headless=false, the elements are correctly clicked on. The additional worker information visually shows up on page and in html code. Yet I can't scrape it.

Body:
I am getting crazy trying to scrape some data on a private platform. I have a list of events formatted as a table with nature of event, date, place, and field worker associated with the event. If the worker is alone, I have no trouble extracting its name. If however he is not alone and working in a team, that's where I can't get it done.

Here is a table showing the two cases:

Event #
Worker

39541
SMITH Paul

84751
SMITH Paul (+1)

And the HTML related to the table cell containing worker information on both lines.

First line:

"SMITH Paul"

Second line:

"SMITH Paul "

        "("
        +1
        ")"

Notice there is no information about the other teammates in the html related to the second line.
However if I click on the span element, using document.querySelectorAll("td[class='pure-datatable-col-technician  pure-datatable-cell '] > span")[0].click(), the second line html changes to:

    "SMITH Paul"

    ", BAKER Michael"

And the information related to other workers appears.

My strategy consisted in clicking every worker element having the span child as soon as Puppeteer arrives on the target page, before scraping its elements.

To compare retrieved worker data before and after the click, I basically did:

let pageData = await page.evaluate(() => {

    let baseWorkerData = [];
    let newWorkerData = [];
    let teamCells = document.querySelectorAll("td[class='pure-datatable-col-technician  pure-datatable-cell '] > span");

    for (var z = 0; z < teamCells.length; z++) {
        baseWorkerData.push(teamCells[z].parentElement.innerText);
        teamCells[z].click();
        newWorkerData.push(teamCells[z].parentElement.innerText);
    };

    let result = {"baseWorkerData": baseWorkerData, "newWorkerData": newWorkerData};

    return result;

});

The result:

{
  baseCell: [
    "SMITH Paul (+1)"
  ],
  newCell: [
    "SMITH Paul (+1)"
  ],
}

Nothing changes. I checked with headless=false, the elements are correctly clicked on. The additional worker information visually shows up on page and in html code. Yet I can't scrape it.