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

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

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

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

Проблема ExecutorService потоки

M

motogarri

Привет.
Крашится нотес при обращении к notes-объекту, переданному из основного потока в дочерний

Java:
for(int i = 1; i <= 3; i++){
  Document doc = dc.getNthDocument(i);;
  Future future = executorService.submit(new Process(doc));
  System.out.println(i + ": " + future.get());
 }
Java:
public class Process implements Callable{
   Document doc;
   public Process(Document document){
       System.out.println("Process constructor");
       doc = document;
   }
   public Object call() throws Exception {
       System.out.println("Process call");
       return doc.getItemValueString("Number");
   }
}

Принты принтуют, а на строке doc.getItemValueString("Number"); клиент нотеса падает. Ошибок в java-консоли нет.
Если в методе call() не пользую нотес объекты, а возвращаю произвольный текст, все отрабатывает нормально.
Пробовал на разных клиентах 9 - 9.0.1 версии на джаве 1.6

Кстати, в эклипсе все работает отлично. Подключаю notes.jar и ничего не падает, потоки нормально работают с нотес-документами.

п.с. И почему-то сама java-консоль открывается с трудом. Раза с десятого.
[doublepost=1505465269,1505426556][/doublepost]Понял в чем дело. Видимо нотес-объекты не могут жить без NotesThread, а новый поток создается наследником от Thread или реализует runnable\callable.

NotesThread.sinitThread(); - решило проблему
 
M

motogarri

Нет ошибок. Падает молча.
Некоторое время попадал, теперь у меня дизайнер виснет при компиляции java кода ))
 
Мы в соцсетях:

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