Ошибка SVN - 501 не реализована фиксация не удалась

== сравнивает ссылки на объекты.

.equals() сравнивает значения String.

Иногда == дает иллюзии сравнения значений String, как в следующих случаях:

String a="Test";
String b="Test";
if(a==b) ===> true

Это связано с тем, что при создании любого строкового литерала JVM сначала ищет этот литерал в пуле строк, и если он найдет совпадение, эта же ссылка будет передана новой String. Из-за этого получаем:

(a == b) ===> true

                       String Pool
     b -----------------> "test" <-----------------a

Однако == не выполняется в следующем случае:

String a="test";
String b=new String("test");
if (a==b) ===> false

В этом случае для new String("test") оператор new String будет создан в куче, и эта ссылка будет указана на b, поэтому b будет дана ссылка на кучу, а не на String pool.

Теперь a указывает на String в пуле String, а b указывает на String в куче. Из-за этого мы получаем:

, если (a == b) ===> false.

                String Pool
     "test" <-------------------- a

                   Heap
     "test" <-------------------- b

Пока .equals() всегда сравнивает значение String, поэтому дает true в обоих случаях:

String a="Test";
String b="Test";
if(a.equals(b)) ===> true

String a="test";
String b=new String("test");
if(a.equals(b)) ===> true

Таким образом, использование .equals() всегда лучше.

7
задан dodegaard 18 February 2009 в 16:36
поделиться

5 ответов

Был старый устаревший URL к соединительной линии репозитория. Мне жаль, что ошибка не была немного более описательной. Спасибо парни...., если бы у меня было больше репутации, я предоставил бы Вам обоим точки!

3
ответ дан dodegaard 19 February 2009 в 02:36
поделиться
  • 1
    Определите " fine". одна только доктрина 2 может легко сократить сотни мс от времени выполнения. Гидратация является супер медленной в Доктрине 1.x. Маршрутизация в Symfony 1.x является также очень медленной. – Jeremy Kauffman 26 July 2011 в 15:48

Это обычно - или вирусный сканер прокси / брандмауэр, отклоняющий запросы DAV (PROPFIND не является 'нормальным' запросом HTTP, но используемый с DAV).

Так: проверьте свой и/или вирусный сканер прокси / брандмауэр и настройте их для разрешения запросов DAV.

кроме того, иногда это помогает использовать https вместо http так, чтобы те приложения не могли больше проверять сетевой трафик и вмешиваться в него.

7
ответ дан Stefan 19 February 2009 в 02:36
поделиться

Ответ был то, что svn URL сервера был изменен ранее и затем когда попытка перепроверить его в нем будет ошибка. Прием тогда должен был уничтожить .svn папки, выпадающие новый, и затем скопировать с моими новыми изменениями. Мне жаль, что сообщение об ошибке не было лучше.

2
ответ дан dodegaard 19 February 2009 в 02:36
поделиться
  • 1
    Прекрасный означает, что Вы пишете свое приложение, и его пользователи не жалуются на замедление. То довольно прекрасное мне. Пользователи don' t заботятся о сравнительных тестах. Лучше более медленная программа, которая работает, чем более быстрый, который является багги. Несмотря на то, что Доктрина 1.x и маршрутизация SF 1.4 являются медленными, можно оптимизировать Вас приложение и добраться 200ms< запросы времени обработки. – P. R. Ribeiro 26 July 2011 в 05:57

Если вы используете субклип, попробуйте изменить клиент интерфейса SVN с JavaHL на SVNKid

0
ответ дан 6 December 2019 в 23:13
поделиться

Также проверьте, не устанавливался ли mod_security недавно. По крайней мере, в CentOS в его конфигурации по умолчанию нет строк, необходимых для разрешения SVN.

В /etc/httpd/modsecurity.d/modsecurity_crs_30_http_policy.conf я поместил это в раздел разрешенных методов запроса :

SecRule REQUEST_METHOD "^(PROPFIND|PROPPATCH)$" allow
SecRule REQUEST_METHOD "^(REPORT|OPTIONS)$" allow
SecRule REQUEST_METHOD "^(MKACTIVITY|CHECKOUT)$" allow
SecRule REQUEST_METHOD "^(PUT|DELETE|MERGE)$" allow
0
ответ дан 6 December 2019 в 23:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: