getDocument() из XSPDocument случайно имеет значение null

В рабочем приложении, которое я разработал, иногда я получаю сообщение об ошибке, говорящее, что .getDocument() имеет значение null. Я добавил в свой код проверки, которые перехватывают ошибки, если это происходит. И самое странное, что с XSPDocument все в порядке.

Любые другие идеи, как отладить причину этого?

========================================================

Редактировать

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

Пользователь может переключиться на другую страницу xpage, чтобы отправить этот документ в виде вложения в формате PDF по электронной почте.

Пользователь может сохранить документ как черновик.

Когда они будут сделаны, нажмите на кнопку утверждения, и эта кнопка установит статус одобрено. Сохраните документ и отправьте его в формате pdf на адрес электронной почты.

Проблема возникает как на кнопке «Сохранить», так и на кнопке «Одобрить».

.getDocument из документа xsp имеет значение null, xspdocument.getNoteID возвращает идентификатор, который я могу выполнить replaceitemvalue в документе xsp. Это никогда не происходит с новыми документами, только с существующими, которые я видел

Похоже на комментарий Дэвида о том, что бэкенд-документ удален/переработан


person Fredrik Norling    schedule 11.03.2013    source источник
comment
может быть, ваш xspdoc - это категория просмотра? может быть, поля для чтения?   -  person Thomas Adrian    schedule 11.03.2013
comment
В приложении нет полей для чтения, и документ открывается, и пользователь работает с документом. Но иногда при сохранении или выполнении некоторых задач это происходит   -  person Fredrik Norling    schedule 11.03.2013


Ответы (3)


недавно мы столкнулись с той же проблемой getDocument(). Наконец мы нашли основную причину: два разных XPage загружались одновременно через iFrames. Один из этих XPages случайным образом вызывал ошибку времени выполнения в 25% случаев. Своего рода конфликт в модели JSF в контексте одного сеанса.

решение: viewState="nostate"

не уверен, что это поможет в вашем случае, но этот вариант решил много проблем в наших приложениях. Он был представлен в версии 8.5.3. И это должно быть особенно полезно для так называемых агентов XAgent.

person Denny    schedule 12.03.2013
comment
Я думаю, что в обычном XPage это может вызвать проблемы с сохранением состояния. - person Fredrik Norling; 14.03.2013

Трудно дать намек, не зная больше обо всем остальном, но я помню, что видел и это. Всего несколько идей: указывает ли XSPDocument.getNoteID() на действительный документ, если это произойдет? Возможно, это указывает на другой документ, чем вы ожидали? Может ли происходить какое-то динамическое изменение источников данных? Может какой-то таймаут, чтобы сервер вдруг забыл, кто вы (в редких случаях у меня такое бывает)? Лотар/edcom

person Lothar Mueller    schedule 12.03.2013

Было бы полезно получить еще несколько деталей. Я предполагаю, что документ ранее был сохранен, и это не новая заметка?

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

person David Leedy    schedule 13.03.2013
comment
Я с радостью добавлю больше информации, но проблема в том, что добавить. ;-) - person Fredrik Norling; 14.03.2013