SASGIS - SAS.Планета
View Issue Details
0002541SAS.Планета[All Projects] Багpublic14-11-2014 08:0428-11-2014 19:19
RGF 
zed 
normalmajoralways
resolvedfixed 
WindowsXPSP3
141111 
141212141212 
0002541: Переход 140505 -> 141111 и дальнейшие ночные сборки, перестали показываться метки
После перехода на 141111 с предыдущей, 140505, путем перезаписи поверх файлов в папке, перестали показываться метки и категории меток.

В панели управления метками в правом нижнем углу надпись красным "только для чтения".
Попытка поставить метку не увенчивается успехом.

При удалении файлов и создании новых путем простановки меток файлы marks.sml Categorymarks.sml создаются и по структуре ничем не отличны от старых.
загрузить мои файлы меток в папку
http://rghost.ru/59056440
No tags attached.
Issue History
14-11-2014 08:04RGFNew Issue
14-11-2014 08:07RGFNote Added: 0014884
14-11-2014 08:15zedNote Added: 0014885
14-11-2014 08:48vdemidovTarget Version => 150915
14-11-2014 08:52vdemidovNote Added: 0014886
14-11-2014 08:52vdemidovStatusnew => acknowledged
14-11-2014 08:57zedNote Added: 0014887
14-11-2014 08:57zedNote Deleted: 0014885
14-11-2014 08:58GarlNote Added: 0014888
14-11-2014 08:59GarlNote Deleted: 0014888
14-11-2014 09:01GarlNote Edited: 0014884bug_revision_view_page.php?bugnote_id=14884#r6311
14-11-2014 09:03RGFNote Added: 0014889
14-11-2014 09:22vdemidovStatusacknowledged => confirmed
14-11-2014 09:23vdemidovSteps to Reproduce Updatedbug_revision_view_page.php?rev_id=6313#r6313
14-11-2014 09:23vdemidovAdditional Information Updatedbug_revision_view_page.php?rev_id=6315#r6315
14-11-2014 09:24vdemidovNote Added: 0014890
14-11-2014 09:28zedNote Added: 0014891
14-11-2014 09:29vdemidovNote Added: 0014892
14-11-2014 09:43zedNote Added: 0014893
14-11-2014 09:55zedNote Added: 0014894
14-11-2014 09:58GarlNote Added: 0014895
14-11-2014 10:09zedNote Added: 0014896
14-11-2014 10:10GarlNote Added: 0014897
14-11-2014 10:17vdemidovNote Added: 0014898
14-11-2014 10:19zedNote Added: 0014899
14-11-2014 10:29vdemidovNote Added: 0014900
14-11-2014 14:32zedNote Added: 0014901
14-11-2014 18:21RGFNote Added: 0014902
15-11-2014 05:17zedNote Added: 0014903
15-11-2014 07:11RGFNote Added: 0014904
15-11-2014 07:23GarlNote Edited: 0014904bug_revision_view_page.php?bugnote_id=14904#r6317
15-11-2014 07:24GarlNote Edited: 0014904bug_revision_view_page.php?bugnote_id=14904#r6318
15-11-2014 07:24GarlNote Added: 0014905
15-11-2014 10:40zedNote Added: 0014906
17-11-2014 08:10RGFNote Added: 0014914
17-11-2014 08:58zedNote Added: 0014918
17-11-2014 09:18RGFNote Added: 0014923
17-11-2014 09:34zedStatusconfirmed => resolved
17-11-2014 09:34zedFixed in Version => 150915
17-11-2014 09:34zedResolutionopen => fixed
17-11-2014 09:34zedAssigned To => zed
28-11-2014 19:19vdemidovTarget Version150915 => 141212
28-11-2014 19:19vdemidovFixed in Version150915 => 141212

Notes
(0014884)
RGF   
14-11-2014 08:07   
(edited on: 14-11-2014 09:01)
файл не прошел по размеру, прилагаю ссылку на внешний источник:
http://rghost.ru/59056401
(http://turbobit.net/0b10syghtllb.html)

(0014886)
vdemidov   
14-11-2014 08:52   
Как интересно. Ошибок похоже аж две. Сначала ловим експшен при загрузке меток из файла. В одной из строчек:

              FCdsMarks.LoadFromStream(FStream);
              UpgradeXmlSchema;
              FCdsMarks.MergeChangeLog;
              FCdsMarks.LogChanges := False;

Где точно неизвестно, потому что при обработке ошибок ловим второй эксепшен. уже внутри InitEmptyDS. На строчках
  with FCdsMarks.IndexDefs.AddIndexDef do begin
    Name := 'MarkIDIdx';

В общем, нужно сначала лечить проблему в InitEmptyDS, а уже потом проблему загрузки конкретного файла.
(0014887)
zed   
14-11-2014 08:57   
Похоже, тут проблема с одинаковыми id у меток. Из-за чего и вылетает "EDBClient 'Key violation'", а уже дальше оно падает из-за того, что не может создать индекс по этому полю.
(0014889)
RGF   
14-11-2014 09:03   
перезалил
http://rghost.ru/59056440
(0014890)
vdemidov   
14-11-2014 09:24   
>уже дальше оно падает из-за того, что не может создать индекс по этому полю.
Ну вот это и нужно в первую очередь лечить.
(0014891)
zed   
14-11-2014 09:28   
Можно полечить, но для решения тикета это никак не поможет.
(0014892)
vdemidov   
14-11-2014 09:29   
Не спорю. Но исправлять обработку ошибок нужно в первую очередь.
(0014893)
zed   
14-11-2014 09:43   
Ну исправил.
(0014894)
zed   
14-11-2014 09:55   
Мне тут видится только workaround: при открытии БД для импорта, не создавать индексы и игнорировать дублирующиеся id. Тогда можно будет открыть эти метки и импортировать их в пустую базу, но уже с новыми уникальными id. Ну или придумать какой-то метод Repair, который должен попытаться восстановить метки при обнаружении такого рода проблем.
(0014895)
Garl   
14-11-2014 09:58   
Категории показывает, а метки нет
(0014896)
zed   
14-11-2014 10:09   
В метках конфликт id и эксепшен.
(0014897)
Garl   
14-11-2014 10:10   
может сделать вывод сообщения как при дублировании GUID ?
(0014898)
vdemidov   
14-11-2014 10:17   
А почему оно раньше работало?
(0014899)
zed   
14-11-2014 10:19   
Потому что раньше не использовался индекс в датасете. Поиск работал перебором но и датасет не сильно возражал против дублирующихся id.
(0014900)
vdemidov   
14-11-2014 10:29   
Ну, ИМХО вариант более толерантного к ошибкам импорта мне кажется вполне нормальным.
(0014901)
zed   
14-11-2014 14:32   
> может сделать вывод сообщения
Да, какое-то сообщение нужно выводить.

> вариант более толерантного к ошибкам импорта мне кажется вполне нормальным.
Сделал.

RGF, а каким способом вы создаёте метки? Просто утверждение "При удалении файлов и создании новых путем простановки меток файлы marks.sml Categorymarks.sml создаются и по структуре ничем не отличны от старых" в корне не верно. Содержимое должно отличаться, потому что у старых меток были разнабойные id (в старую базу метки добавлялись/удалялись), а при создании новой базы и импорта/добавления туда меток, id будут увеличиваться строго последовательно.
(0014902)
RGF   
14-11-2014 18:21   
Метки создаю стандартными инструментами + экспорт путей из *.plt, *.kml.
Про структуру я имел ввиду xml: теги, заголовки, версию.
Метки и удалялись и добавлялись, конечно.
(0014903)
zed   
15-11-2014 05:17   
В общем, если хотите юзать новую версию программы, то берите ночнушку и импортируйте свои метки из sml.
(0014904)
RGF   
15-11-2014 07:11   
(edited on: 15-11-2014 07:24)
Импортировать через импорт?
 Не просто подложив файлы?

 Я вроде смотрел, задвоений id нет?

(0014905)
Garl   
15-11-2014 07:24   
задвоение одно есть что щас не помнию но чтото типа id=3026
(0014906)
zed   
15-11-2014 10:40   
> Импортировать через импорт?
Да, именно через импорт.
(0014914)
RGF   
17-11-2014 08:10   
спасибо!
руками удалил дубли, все заработало.
(0014918)
zed   
17-11-2014 08:58   
> руками удалил дубли
А чего не через импорт? Руками найти дубликаты было наверное весьма трудоёмко.
(0014923)
RGF   
17-11-2014 09:18   
На php скриптик написал по разбору xml'я и поиску дублей.
Импортов побаиваюсь иррационально :)