• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Ненормальная работа Java

  • Автор темы spacenergy
  • Дата начала
S

spacenergy

То ли лыжи не едут, то ли смазка не той системы...

Имеем код:

C++:
String cidR=request.getParameter("cid");
System.err.print("0***********\r\n");
List lst=tr.executeHQLQuery("from ManagersRating where casino_id="+cidR);
System.err.print("1***********\r\n");
String selPar="from Parameters where id=id ";
System.err.print("2***********\r\n");
for(Object a:lst) 
{
ManagersRating mr = (ManagersRating)a;
selPar+=" and id!="+mr.getParameterId();
}
System.err.print("3***********\r\n");
List lstp=tr.executeHQLQuery(selPar);
System.err.print("4***********\r\n");
tr.session.beginTransaction();
System.err.print("5***********\r\n");
for(Object b:lstp)
{
Parameters pid=(Parameters)b;
ManagersRating pr=new ManagersRating(
new java.util.Date(),
Short.valueOf(String.valueOf(session.getAttribute("manager_id"))),
Short.valueOf(cidR),
pid.getId(),
"-1",
"",
"0",
false);
tr.session.save(pr);
}
System.err.print("6***********\r\n");
tr.session.getTransaction().commit();
System.err.print("7***********\r\n");

В логе получаем:

Код:

Код:
0***********
0***********
1***********
2***********
3***********
1***********
2***********
3***********
4***********
5***********
4***********
5***********
6***********
7***********
6***********
7***********

Пока смотрю под отладчиком - все нормально. Как только снимаю бряки и запускаю код - вот такой вывод получается.
Код запускается на JSP-странице под Tomcat6.
Ясно одно - проблема не в алгоритме. Скорее всего и не в Java-машине тоже, потому как выполняется с одинаковыми результатами на компе и на серваке. На компе OpenJRE, на серваке SUN.

Есть мысли?
 
C

Creo

Такое чувство. Что два раза по кнопке щёлкнул. Два запроса отправились... Попробуй поставь lock. псомотри как отработает...
Код:
Lock lock = new ReentrantLock();
lock.lock();
try{
твой код
}finaly{
lock.unlock();
}
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!