многопользовательский режим - PullRequest
0 голосов
/ 18 января 2012

Я работаю над «ресурсным» контроллером, использующим последние Spring3 и JBoss Modeshape (указывающим на объединенное хранилище с использованием коннекторов файловой системы) для извлечения ресурса.

Когда я захожу на любую веб-страницу, используя контроллер, он возвращает большинство изображений, а затем вызывает исключение NullPointerException в вызове "getNode" для других ...

С моей стороны, я не делаю ничего особенного (мои тестовые случаи работают нормально):

  1. Создание / настройка двигателя (только один раз)
  2. Войдите и получите сеанс
  3. Попробуйте найти узел
  4. Выход из сеанса

Код выглядит примерно так:

session = createSession();
Node node = session.getNode(path);

После первого попадания на страницу (с ошибками), каждое попадание после этого работает идеально, и с этого момента все нормально загружается.

Я перехожу по этой ссылке Тяжелый параллелизм: лучший способ управления сеансами JCR для создания / управления сеансами.

Похоже, что у меня есть несколько потоков, пытающихся настроить JcrNodeDefinition в Modeshape. Если я отмечу enureRequirePrimaryTypesLoaded() метод как synchronized, то я никогда не получаю ошибку.

У кого-нибудь есть опыт / предложения по использованию Modeshape, параллелизма и управления сессиями?

Трассировка стека:

java.lang.NullPointerException at org.modeshape.jcr.JcrNodeDefinition.ensureRequiredPrimaryTypesLoaded (JcrNodeDefinition.java:114) at org.modeshape.jcr.JcrNodeDefinition.allowsChildWithType (JcrNodeDefinition.java:275) at org.modeshape.jcr.RepositoryNodeTypeManager.findChildNodeDefinition (RepositoryNodeTypeManager.java:1142) в org.modeshape.jcr.JcrNodeTypeManager.findChildNodeDefinition (JcrNodeTypeManager.java:433) в org.modeshape.jcr.SessionCache $ JcrNodeOperations.materialize (SessionCache.java:2711) в org.modeshape.graph.session.GraphSession $ Node.load (GraphSession.java:1755) в org.modeshape.graph.session.GraphSession $ Node.getPayload (GraphSession.java:3030) в org.modeshape.jcr.AbstractJcrNode.getNode (AbstractJcrNode.java:950) в org.modeshape.jcr.AbstractJcrNode.getNode (AbstractJcrNode.java:96) в com.acme.beans.contents.FileNodeAdapter. (FileNodeAdapter.java:26) в com.acme.web.views.ResourceController.getStream (ResourceController.java:77) на com.acme.web.views.ResourceController.handleResource (ResourceController.java:46)

1 Ответ

0 голосов
/ 18 января 2012

Я бы рекомендовал опубликовать это на ModeShape форумах и, в этом случае, регистрировать проблему, чтобы команда разработчиков могла оценить ее. Это лучшие способы напрямую общаться с пользователями ModeShape и задавать вопросы о проблемах или вопросах, связанных с ModeShape.

...