вот ещё джавная экзотика
Dec. 10th, 2013 05:17 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
if ("".equals(request.getContextPath())) { return uri.endsWith(filterProcessesUrl); } return uri.endsWith(request.getContextPath() + filterProcessesUrl);
if ("".equals(request.getContextPath())) { return uri.endsWith(filterProcessesUrl); } return uri.endsWith(request.getContextPath() + filterProcessesUrl);
no subject
Date: 2013-12-11 01:38 am (UTC)no subject
Date: 2013-12-11 02:14 am (UTC)В одном месте filterProcessedUrl в апперкейсе, а в другом та же константа да в нижнем.
а разве http url case insensitive?
Date: 2013-12-11 07:20 am (UTC)Что в коде в разных местах может быть две разные констатны - ну это дурь, но другая.
Re: а разве http url case insensitive?
Date: 2013-12-11 05:03 pm (UTC)no subject
Date: 2013-12-11 05:02 am (UTC)no subject
Date: 2013-12-11 06:25 am (UTC)это вы про "".equals(request.getContextPath()?
Date: 2013-12-11 07:17 am (UTC)no subject
Date: 2013-12-11 07:27 am (UTC)Re: это вы про "".equals(request.getContextPath()?
Date: 2013-12-11 07:32 am (UTC)а какая разница?
Date: 2013-12-11 07:46 am (UTC)В конечном счете все сводится к:
"".equals(null)
vs
null.equals("")
Первое корректно говорит, что не равно, второе падает. Выглядит может и странно, но работает надежно, и читается теми кто в теме тоже нормально.
Re: а какая разница?
Date: 2013-12-11 07:54 am (UTC)Returns the portion of the request URI that indicates the context of the request.
А как так, в такой постановке вопроса, она может возвращать null? Не найденная часть подстроки - это пустая строка нулевой длины, но не null.
Вы согласны? А то мы так договоримся до того, что String.substring() тоже null возвращать начнет.
Re: а какая разница?
Date: 2013-12-12 07:07 am (UTC)А в целом да, согласен. Только к сожалению в реальности нет хорошего способа описать, и главное, выполнять подобный контракт для методов.
Вернее, описать-то (скажем как @NonNull) можно, только оно ничего не гарантирует в runtime.