SASGIS - SAS.Планета |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0002717 | SAS.Планета | [All Projects] Баг | public | 08-05-2015 12:21 | 29-07-2015 12:26 |
|
Reporter | zed | |
Assigned To | zed | |
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | resolved | Resolution | fixed | |
Platform | | OS | | OS Version | |
Product Version | .Nightly | |
Target Version | 150915 | Fixed in Version | 150915 | |
|
Summary | 0002717: AV при сохранении нового полигона |
Description | Словил несколько раз разрушительную авешку при попытке сохранить новый полигон в БД. Полигон создавался в гуе и нажималась кнопочка "Сохранить", после чего вываливалась AV в функции TMarkDbSml.UpdateMark (один раз получилось словить ошибку под отладчиком), программа закрывалась и файл меток становился равен нулю. Очень плохая ошибка. |
Steps To Reproduce | Сохранялся простой полигон из трёх точек, но в базе было много сложных полигонов, общим числом от 500 и более. |
Additional Information | Может и ошибаюсь, но кажется нашёл, в чём могла быть ошибка: при сохранении нового полигона вызывался метод TfrmMain.TBEditPathSaveClick а оттуда метод FMarkDBGUI.SaveMarkModal и указывалось, что это существующий полигон (AIsNewMark = False). Возможно это и приводило иногда к косякам. |
Tags | No tags attached. |
Relationships | |
Attached Files | |
|
Issue History |
Date Modified | Username | Field | Change |
08-05-2015 12:21 | zed | New Issue | |
08-05-2015 12:22 | zed | Note Added: 0015870 | |
09-05-2015 07:50 | vdemidov | Note Added: 0015873 | |
09-05-2015 07:55 | zed | Note Added: 0015874 | |
09-05-2015 08:08 | zed | Note Edited: 0015874 | bug_revision_view_page.php?bugnote_id=15874#r6585 |
09-05-2015 08:12 | vdemidov | Note Added: 0015875 | |
09-05-2015 08:18 | zed | Note Added: 0015876 | |
09-05-2015 08:27 | vdemidov | Note Added: 0015877 | |
09-05-2015 08:31 | zed | Note Added: 0015878 | |
09-05-2015 08:43 | vdemidov | Note Added: 0015879 | |
29-07-2015 12:25 | vdemidov | Note Added: 0016237 | |
29-07-2015 12:25 | vdemidov | Status | new => resolved |
29-07-2015 12:25 | vdemidov | Fixed in Version | => 150915 |
29-07-2015 12:25 | vdemidov | Resolution | open => fixed |
29-07-2015 12:25 | vdemidov | Assigned To | => zed |
29-07-2015 12:26 | vdemidov | Target Version | => 150915 |
Notes |
|
(0015870)
|
zed
|
08-05-2015 12:22
|
|
Собственно, поведение в TfrmMain.TBEditPathSaveClick изменил, теперь этот метод должен вызываться только для обновления существующих полигонов.
Посмотрим, будет ли падать теперь. |
|
|
|
Не изменил поведение при нажатии на Enter.
Но оно и так не должно было влиять. AIsNewMark влияет только, если исходная метка передающаяся в тот метод пустая. А для нового полигона она должна быть пустой. |
|
|
(0015874)
|
zed
|
09-05-2015 07:55
(edited on: 09-05-2015 08:08) |
|
О, оно ещё и по Enter что-то делало? Не знал.
P.S. Пофиксил.
|
|
|
|
> после чего вываливалась AV в функции TMarkDbSml.UpdateMark
В каком месте? |
|
|
(0015876)
|
zed
|
09-05-2015 08:18
|
|
Точно не скажу. Где-то в конце. Может и на Save, потому как файл меток обнулялся.
AV было про write adress и адрес какой-то странный типа 80500000 (в начале пара цифр, а в конце много нулей). |
|
|
|
Просто то что ты исправил никак не должно было повлиять. Разве что в поле FEditMarkPoly попал мусор уже после смены режима, то есть tbitmSaveMark.DropdownCombo установилась правильно, а потом значение FEditMarkPoly испортилось. А ты получается не убрал это повреждение, а просто замаскировал. |
|
|
(0015878)
|
zed
|
09-05-2015 08:31
|
|
Да, тоже была мысль про мусор.
Но я вообще исправлял не ради багофикса, а чтобы сделать быстрый Save без вызова диалога. Переделывал я это уже напоровшись пару раз на AV и чисто случайно увидел что в этом месте как-то неправильно вызываются методы - сохранение нового полигона под видом существующего. Отсюда и предположение. |
|
|
|
|
|
|
Будем считать исправленным. |
|