Версия приложения:
RSDN@Home версия 1.2.0 alpha 4 ревизия 1228
Тип БД:
MSSql
Трассировка стека:
at Rsdn.SmartApp.InstancingHelper.CreateInstance(Type type, IServiceProvider provider, InstancingCustomParam[] customParams) in C:\Work\R.Server\R.SAT\R.SAT-Common\Instancing\InstancingHelper.cs:line 67
at Rsdn.SmartApp.ActivePartManager.Activate() in C:\Work\R.Server\R.SAT\R.SAT-Common\ActiveParts\ActivePartManager.cs:line 76
at Rsdn.Janus.JanusHost.EndInit()
at Rsdn.SmartApp.DisposableHelper.Disposable.Dispose() in C:\Work\R.Server\R.SAT\R.SAT-Common\DisposableHelper.cs:line 38
at Rsdn.Janus.Janus.Main()
выделенный Select помоему лишний. Так например в случае если выше по ветке есть что пометить, а ниже нету, то результат получается не правильный.
Версия приложения:
RSDN@Home версия 1.2.0 alpha 4 ревизия 1231
Тип БД:
MSSql
Трассировка стека:
в Rsdn.Janus.ForumMessageCommandHelper.CanSetMessageReadMark(IMsg msg, Boolean isRead, Boolean withReplies)
в Rsdn.Janus.ForumMessageCommandTarget.<>c__DisplayClass14.<QuerySetTopicReadMarkStatus>b__13(IMsg msg)
в System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate) в C:\Work\Mono\System.Core\System.Linq\Enumerable.cs:строка 128
в Rsdn.Janus.ForumMessageCommandTarget.<>c__DisplayClass14.<QuerySetTopicReadMarkStatus>b__11()
в Rsdn.Janus.CommandStatusHelper.DisabledIfNot(CommandStatus baseStatus, Func`1 condition)
в Rsdn.Janus.ForumMessageCommandTarget.QuerySetTopicReadMarkStatus(ICommandContext context, Int32[] messageIds, Boolean isRead)
... << RSDN@Home 1.2.0 alpha 4 rev. 1231>>
Re: В экземпляре объекта не задана ссылка на объект.
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>мне почему-то казалось по кнопки ввиде конверта со стрелкой вниз помечалась прочитаным не вся тема, а только ветка...
ДА>значит надо не Select выкидывать а добавить фильтр: ДА>
ДА>.Where(msg => msg.Topic <> null)
ДА>
ДА>или разобраться почему там получается null, ведь в обычном форуме ничего не валится.
Скорее всего в списке поиска используется другая реализация класса сообщения, которая просто возвращает null. Раньше кнопки пометки сообщений прочтенным в поиске не показывались, поэтому и эта лажа не выявлялась. Так что фиксить надо это класс, а не обработчик команды.
Версия приложения:
RSDN@Home версия 1.2.0 alpha 4 ревизия 1228
Тип БД:
SQLite
Трассировка стека:
at Rsdn.TreeGrid.TreeGrid.ExpandAllParents(ITreeNode CurNode)
at Rsdn.TreeGrid.TreeGrid.set_ActiveNode(ITreeNode value)
at Rsdn.Janus.ForumDummyForm.MessageNavigated(Object sender, EventArgs e)
at System.EventHandler.Invoke(Object sender, EventArgs e)
at Rsdn.Janus.ForumNavigator.HistoryNavigateFired(Object sender, MessageNavigateEventArgs e)
at Rsdn.Janus.MessageViewHistory.OnMessageNavigate(MessageNavigateEventArgs e)
at Rsdn.Janus.MessageViewHistory.Navigate(Int32 msgId)
at Rsdn.Janus.ForumNavigator.SelectMessage(Int32 forumId, Int32 msgId)
at Rsdn.Janus.ForumDummyForm.<>c__DisplayClass9.<_tgMsgs_AfterActivateNode>b__8()
at Rsdn.Janus.AsyncHelper.<>c__DisplayClass4.<PostOperationCompleted>b__3(Object state)
... << RSDN@Home 1.2.0 alpha 4 rev. 1228>>
Object reference not set to an instance of an object.
Ошибка:
Object reference not set to an instance of an object.
Описание:
Версия приложения:
RSDN@Home версия 1.2.0 alpha 4 ревизия 1227
Тип БД:
SQLite
Трассировка стека:
at Rsdn.Janus.ForumMessageCommandHelper.CanSetMessageReadMark(IMsg msg, Boolean isRead, Boolean withReplies)
at Rsdn.Janus.ForumMessageCommandTarget.<>c__DisplayClass14.<QuerySetTopicReadMarkStatus>b__13(IMsg msg)
at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate) in C:\Work\Mono\System.Core\System.Linq\Enumerable.cs:line 128
at Rsdn.Janus.ForumMessageCommandTarget.<>c__DisplayClass14.<QuerySetTopicReadMarkStatus>b__11()
at Rsdn.Janus.CommandStatusHelper.DisabledIfNot(CommandStatus baseStatus, Func`1 condition)
at Rsdn.Janus.ForumMessageCommandTarget.QuerySetTopicReadMarkStatus(ICommandContext context, Int32[] messageIds, Boolean isRead)
... << RSDN@Home 1.2.0 alpha 4 rev. 1227>>
Re[2]: В экземпляре объекта не задана ссылка на объект.
Здравствуйте, jenyavb, Вы писали:
J>Скорее всего в списке поиска используется другая реализация класса сообщения, которая просто возвращает null.
Точно, это LinearTreeMsg, используемый [Obsolete] ModeratingForm и SearchDummyForm (поиск Lucene)
J>Так что фиксить надо это класс, а не обработчик команды.
Но Rsdn.Janus.ObjectModel.IMsg
/// <summary>Возвращает корневое сообщение (тему) или null если такая
/// функциональность не поддерживается текущей реализацией.</summary>
IMsg Topic{ get; }
хотя...
// TODO: эту кашу наждо рефакторить.
/// <summary>
/// Summary description for IMsg.
/// </summary>
Версия приложения:
RSDN@Home версия 1.2.0 alpha 4 ревизия 1231
Тип БД:
MSSql
Трассировка стека:
at BLToolkit.Data.DbManager.OnOperationException(OperationType op, DataException ex)
at BLToolkit.Data.DbManager.HandleOperationException(OperationType op, Exception ex)
at BLToolkit.Data.DbManager.ExecuteOperation[T](OperationType operationType, Func`1 operation)
at BLToolkit.Data.DbManager.ExecuteReaderInternal(CommandBehavior commandBehavior)
at BLToolkit.Data.DbManager.ExecuteObjectInternal(Object entity, Type type, Object[] parameters)
at BLToolkit.Data.DbManager.ExecuteObject[T]()
at Rsdn.Janus.DatabaseManager.CheckTopicInfoIntegrity()
at Rsdn.Janus.Janus.Main()
... << RSDN@Home 1.2.0 alpha 4 rev. 1231>>
— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Object reference not set to an instance of an object.
Ошибка:
Object reference not set to an instance of an object.
Описание:
Версия приложения:
RSDN@Home версия 1.2.0 alpha 4 ревизия 1228
Тип БД:
MSSql
Трассировка стека:
at Rsdn.Janus.ForumMessageCommandHelper.CanSetMessageReadMark(IMsg msg, Boolean isRead, Boolean withReplies)
at Rsdn.Janus.ForumMessageCommandTarget.<>c__DisplayClass14.<QuerySetTopicReadMarkStatus>b__13(IMsg msg)
at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate) in C:\Work\Mono\System.Core\System.Linq\Enumerable.cs:line 128
at Rsdn.Janus.ForumMessageCommandTarget.<>c__DisplayClass14.<QuerySetTopicReadMarkStatus>b__11()
at Rsdn.Janus.CommandStatusHelper.DisabledIfNot(CommandStatus baseStatus, Func`1 condition)
at Rsdn.Janus.ForumMessageCommandTarget.QuerySetTopicReadMarkStatus(ICommandContext context, Int32[] messageIds, Boolean isRead)
Ошибка:
В экземпляре объекта не задана ссылка на объект.
Описание:
Версия приложения:
RSDN@Home версия 1.2.0 alpha 4 ревизия 1228
Тип БД:
SQLite
Трассировка стека:
в Rsdn.Janus.ForumMessageCommandHelper.CanSetMessageReadMark(IMsg msg, Boolean isRead, Boolean withReplies)
в Rsdn.Janus.ForumMessageCommandTarget.<>c__DisplayClass14.<QuerySetTopicReadMarkStatus>b__13(IMsg msg)
в System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate) в C:\Work\Mono\System.Core\System.Linq\Enumerable.cs:строка 128
в Rsdn.Janus.ForumMessageCommandTarget.<>c__DisplayClass14.<QuerySetTopicReadMarkStatus>b__11()
в Rsdn.Janus.CommandStatusHelper.DisabledIfNot(CommandStatus baseStatus, Func`1 condition)
в Rsdn.Janus.ForumMessageCommandTarget.QuerySetTopicReadMarkStatus(ICommandContext context, Int32[] messageIds, Boolean isRead)
... << RSDN@Home 1.2.0 alpha 4 rev. 1228>>
Re[3]: В экземпляре объекта не задана ссылка на объект.
Здравствуйте, jenyavb, Вы писали:
ДА>>мне почему-то казалось по кнопки ввиде конверта со стрелкой вниз помечалась прочитаным не вся тема, а только ветка...
ДА>>значит надо не Select выкидывать а добавить фильтр: ДА>>
ДА>>.Where(msg => msg.Topic <> null)
ДА>>
ДА>>или разобраться почему там получается null, ведь в обычном форуме ничего не валится.
J>Скорее всего в списке поиска используется другая реализация класса сообщения, которая просто возвращает null. Раньше кнопки пометки сообщений прочтенным в поиске не показывались, поэтому и эта лажа не выявлялась. Так что фиксить надо это класс, а не обработчик команды.
Кстати в туже тему. Последовательность действий.
Ищем поиском. Переходим на сообщение. Ставим пометку прочитано\не прочитано. Возвращамся в поиск. Сообщения, которые висят в поиске статус не изменили.
С уважением, ixor.
RSDN@Home 1.2.0 alpha 4 rev. 1233 + Windows XP 5.1.2600.196608 + SqLite
Re[4]: В экземпляре объекта не задана ссылка на объект.
Правой кнопкой на сообщении в поиске или из тулбара-> пометить сообщение как прочитаное.
System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.NullReferenceException: В экземпляре объекта не задана ссылка на объект.
в Rsdn.Janus.ForumDummyForm.AfterReadMarkChanged(IMessageMarkService sender, ICollection`1 changedEntries)
в Rsdn.Janus.ReadMarkEventHandler.Invoke(IMessageMarkService sender, ICollection`1 changedEntries)
в Rsdn.Janus.MessageMarkService.<>c__DisplayClassd.<OnReadMarkChanged>b__c()
в Rsdn.Janus.AsyncHelper.<>c__DisplayClass1.<Post>b__0(Object state)
--- Конец трассировки внутреннего стека исключений ---
в System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
в System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
в System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
в System.Delegate.DynamicInvokeImpl(Object[] args)
в System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
в System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
в System.Threading.ExecutionContext.runTryCode(Object userData)
в System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
в System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
в System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
в System.Windows.Forms.Control.InvokeMarshaledCallbacks()
в System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)
в System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)
в System.Windows.Forms.WindowsFormsSynchronizationContext.Send(SendOrPostCallback d, Object state)
в Rsdn.Janus.AsyncHelper.Send(AsyncOperation asyncOp, Action runner)
в Rsdn.Janus.NotifyIconService.set_ContextMenuName(String value)
в Rsdn.Janus.NotifyIconService.Dispose()
в Rsdn.SmartApp.DisposableHelper.DisposeAll(IEnumerable`1 disposables) в C:\Work\R.Server\R.SAT\R.SAT-Common\DisposableHelper.cs:строка 22
в Rsdn.SmartApp.ServiceManager.Dispose() в C:\Work\R.Server\R.SAT\R.SAT-Common\Services\ServiceManager.cs:строка 260
в Rsdn.Janus.JanusHost.Dispose()
в Rsdn.Janus.Janus.Main()
С уважением, ixor.
RSDN@Home 1.2.0 alpha 4 rev. 1233 + Windows XP 5.1.2600.196608 + SqLite
Re[6]: В экземпляре объекта не задана ссылка на объект.
Здравствуйте, ixor, Вы писали:
I>Легче не стало.
У меня стало.
I>Лечит не то или не так.
Лечит то, что и должно, а именно исключение в корне этой ветки.
I>Правой кнопкой на сообщении в поиске или из тулбара-> пометить сообщение как прочитаное.
ставим помечать прочитанным в 10000 и
+ становимся в форуме на не прочитанное, быстро помечаем его избранным, переходим в избранное. ба бах.
+ становимся в форуме на не прочитанное, потом на другое не прочитанное, быстро переходим в исходящие. ба бах.
+ становимся в форуме на не прочитанное, потом на другое не прочитанное, быстро переходим в поиск. ба бах.
проблема в том, что в избранном/поиске/исходящих отсутствует активный форум, т. е. Forums.Instance.ActiveForum == null
Здравствуйте, _Raz_, Вы писали:
_R_>Здравствуйте, ixor, Вы писали:
I>>Легче не стало. _R_>У меня стало.
I>>Лечит не то или не так. _R_>Лечит то, что и должно, а именно исключение в корне этой ветки.
Понавставлял проверок. исключения сыпаться перестали. Вместе с ними естественно отвалился функционал пометки Что предсказуемо.
Вот что у меня вызывает опасения, не угробят ли рано или поздно эти поверки базу данных. Там местами есть отмена процесса пометок. Или я его неправильно понял.
Здравствуйте, ixor, Вы писали:
I>Понавставлял проверок. исключения сыпаться перестали.
Я то же пробывал, но днем, так что пишу по памяти.
I>Вместе с ними естественно отвалился функционал пометки
Оно помечается, но только в форуме, где расположено искомое сообщение. А в поиске не обновляется. Если перейти в другой форум, а потом вернуться, то уже будет помеченным.
Если добавить и подписаться на уведомления IMessageMarkService, то помечается. В обработчиках событий я просто делал перерисовку таблицы.
Плюс возможно правильней использовать ForumHelper.MsgMark (что-то такое вызывается по таймеру в ForumDummyForm) напрямую, а не через обработчик контекстного меню.
I>Что предсказуемо.
Разве? По моему там просто останавливался таймер. Хотя у меня исключения выбрасываются по месту возникновения и мог не дойти до таких мест или я уже забыл, что там.
I>Вот что у меня вызывает опасения, не угробят ли рано или поздно эти поверки базу данных. Там местами есть отмена процесса пометок. Или я его неправильно понял.
Трудно сказать.
Ястно только, что меню в форме поиска надо сократить. Поскольку "Помечать тему прочитанной" валиться с cross-thread exception, а смысла в поиске не имеет. Так же как и экспорт, который не падает, но и не работает.
I>У Вас еще есть патчи?
Нет.
Ошибка:
В экземпляре объекта не задана ссылка на объект.
Описание:
Версия приложения:
RSDN@Home версия 1.2.0 alpha 4 ревизия 1237
Тип БД:
SQLite
Трассировка стека:
в Rsdn.Janus.ForumMessageCommandHelper.CanSetMessageReadMark(IMsg msg, Boolean isRead, Boolean withReplies)
в Rsdn.Janus.ForumMessageCommandTarget.<>c__DisplayClass14.<QuerySetTopicReadMarkStatus>b__13(IMsg msg)
в System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate) в C:\Work\Mono\System.Core\System.Linq\Enumerable.cs:строка 128
в Rsdn.Janus.ForumMessageCommandTarget.<>c__DisplayClass14.<QuerySetTopicReadMarkStatus>b__11()
в Rsdn.Janus.CommandStatusHelper.DisabledIfNot(CommandStatus baseStatus, Func`1 condition)
в Rsdn.Janus.ForumMessageCommandTarget.QuerySetTopicReadMarkStatus(ICommandContext context, Int32[] messageIds, Boolean isRead)
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Re[7]: В экземпляре объекта не задана ссылка на объект.
Здравствуйте, _Raz_, Вы писали:
_R_>проблема в том, что в избранном/поиске/исходящих отсутствует активный форум, т. е. Forums.Instance.ActiveForum == null _R_>Для справки: Forums.Instance.ActiveForum.get используется в 25 местах, причем завязан на ObjectModel.Features.Instance.ActiveFeature.
Проблема в том, что в ForumDummyForm нет свойства CurrentForum, а вместо этого есть офигенное решение — хранить ActiveForum в синглтоне и постоянно синхронизировваться с ним, что создает кучу неудобств. Собственно нужно перенести ActiveForum в ForumDummyForm, а доступ к нему из вне организовать через сервисы IForumViewerService и IActiveForumService... Затра попробую заняться, если время будет...