View Issue Details

IDProjectCategoryView StatusLast Update
0001808SAS.ПланетаБаг / Bugpublic03-02-2013 20:01
Reportervasketsov Assigned Tovdemidov  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
PlatformWindowsOSVistaOS VersionUltimate
Product Version110418 
Target Version131111Fixed in Version131111 
Summary0001808: При ошибке доступа к прокси, ошибка в обработке ошибки для случая URL с символами процента (kosmosnimki)
DescriptionОписание (чего я написал vdemidov-у):

В строке 350 в даунлоадере (при невозможности подключения к локальному прокси) BuildLoadErrorByUnknownReason зовётся без параметров []. Текст исключения типа: 'Не удается установить связь с сервером - URL:http://127.0.0.1:6666/TileSender.ashx?ModeKey=tile&MapName=1D30C72D02914C5FB90D1D448159CAB6&LayerName=C9458F2DCB754CEEACC54216C7D1EB0A&key=Ziu6TPYb5bPGbzlMGJvEZW9aC%2BYgOPqEXyTtc%2FFzrigkewPGSWWdyNRVV3hxbKprIr1J7K8jXKpeEuTkmomVn1AUbkLajGQDqsAnKntbkhDtmVuIYVdBKwH%2Br%2BDot55QmYj4wsQcst33J4zRjQlbGg%3D%3D&x=29&y=49&z=8'

Как видишь - в УРЛе есть проценты. Так вот лишние проценты и стреляют. При любом количестве аргументов всегда может быть УРЛ, где будет больше процентов. Варианта принципиально тут два, либо сам УРЛ в итоге пропихивать как аргумент через %s (и тянуть с самого места возникновения текст и аргументы), либо конкретно для этого вызова проверить наличие параметров: if Length(FErrorTextArgs)>0 then Я в итоге добавил второй вариант, но лишь бы не вставало лишний раз при отладке. Гарантии, как сейчас сделано (2 разнесённых вызова Format), что всегда будет работать - никакой (как только до второго формата УРЛ попадает в строку). Поэтому и сделал, что при except просто покажется оригинальный текст.

Ещё раз обращаю внимание, что если кинуть исключение оттуда - на тайле вообще ничего не покажется (если скачивать по одному тайлу кликом). Что самый наихудший вариант. Поэтому основная предпосылка - оттуда нельзя кидать исключения. Поэтому except там должен быть в любой версии, а не только в дебажной.
Steps To ReproduceДля URL с символами % указать например недоступный локальный адрес и порт. В моём случае я просто забыл поднять локальный перловый прокси-сервер. Ну и ткнуться мышой скачать один тайл. Под отладчиком всё отлично видно ))
TagsNo tags attached.

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
03-02-2013 20:01 vasketsov New Issue
03-02-2013 20:01 vasketsov Status new => assigned
03-02-2013 20:01 vasketsov Assigned To => vdemidov
03-02-2013 20:01 vasketsov Status assigned => resolved
03-02-2013 20:01 vasketsov Fixed in Version => 131111
03-02-2013 20:01 vasketsov Resolution open => fixed
08-08-2025 13:22 zed Category Баг => Баг / Bug