Spring неправильно сопоставляет @pathVariables с правильными переменными

У нас возникла проблема, когда значения, которые мы получаем через @PathVariable или через привязку при умеренной нагрузке, назначаются неправильным переменным.

Для выполнения этих тестов мы всегда используем одни и те же URL-адреса. Медленное нажатие на URL дает правильные результаты каждый раз.

Мы используем Spring 3.0.5.RELEASE, но устали до 3.1.2.RELEASE, и проблема все еще существует. Мы не видим ничего другого, что изменилось в последнее время, и у нас есть эти сервисы в производстве уже более года, и они, похоже, только недавно начали их бросать.

Пример кода для привязки:

 @RequestMapping(value = "config/selectItem")
public ModelAndView selectItem(@Valid selectItemCommand command, BindingResult bindResults) {
   if (!"test".equals(command.getName())
   {
     //Fails into here
     int i =0;

   }    
}

Пример кода для переменных пути:

@RequestMapping(value = "config/selectItem/{name}",method = RequestMethod.GET)
public ModelAndView selectItem(@PathVariable("name") String name)
{
  if (!"test".equals(name))
  {
    //Fails into here
    int i = 0;
  }
}

Я добавил запрос HttpServletRequest в список параметров, и URL-адрес, который он показывает, имеет правильные значения.

Я совсем забыл, но мы столкнулись с этим около года назад, и в то время я поставил тикет, который, как мне казалось, разрешил проблему, но это не так. Spring MVC отбрасывает @PathVariable


person Dilbert789    schedule 19.09.2012    source источник


Ответы (1)


Оказывается, мы неправильно реализовали StringTrimmerEditor, и он не был потокобезопасным.

person Dilbert789    schedule 20.09.2012