You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by rn...@apache.org on 2015/09/17 19:32:50 UTC

chttpd commit: updated refs/heads/master to 31c15c7

Repository: couchdb-chttpd
Updated Branches:
  refs/heads/master b518e2a33 -> 31c15c70d


POST to /{db}/_all_docs with invalid keys should return 400

Now they return 500. Since there is nothing wrong on the 500,
400 is more appropriate.

For example, turns requests like these:

http -a adm:pass POST http://127.0.0.1:15984/db1/_all_docs  keys:='["1",2]'
HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{
    "error": "2",
    "reason": "{illegal_docid,2}"
}

Into:

http -a adm:pass POST http://127.0.0.1:15984/db1/_all_docs  keys:='["1",2]'
HTTP/1.1 400 Bad Request
Content-Type: application/json

{
    "error": "illegal_docid",
    "reason": 2
}

COUCHDB-2815


Project: http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/commit/31c15c70
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/tree/31c15c70
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/diff/31c15c70

Branch: refs/heads/master
Commit: 31c15c70d1c1885ccf1cf6f03f18d0b079d664d9
Parents: b518e2a
Author: Nick Vatamaniuc <va...@gmail.com>
Authored: Wed Sep 16 16:48:20 2015 -0400
Committer: Nick Vatamaniuc <va...@gmail.com>
Committed: Wed Sep 16 16:48:20 2015 -0400

----------------------------------------------------------------------
 src/chttpd.erl                   | 2 ++
 test/chttpd_error_info_tests.erl | 4 ++++
 2 files changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/blob/31c15c70/src/chttpd.erl
----------------------------------------------------------------------
diff --git a/src/chttpd.erl b/src/chttpd.erl
index a5baa27..81552ca 100644
--- a/src/chttpd.erl
+++ b/src/chttpd.erl
@@ -818,6 +818,8 @@ error_info({error, {illegal_database_name, Name}}) ->
         "digits (0-9), and any of the characters _, $, (, ), +, -, and / ",
         "are allowed. Must begin with a letter.">>,
     {400, <<"illegal_database_name">>, Message};
+error_info({_DocID,{illegal_docid,DocID}}) ->
+    {400, <<"illegal_docid">>,DocID};
 error_info({missing_stub, Reason}) ->
     {412, <<"missing_stub">>, Reason};
 error_info(request_entity_too_large) ->

http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/blob/31c15c70/test/chttpd_error_info_tests.erl
----------------------------------------------------------------------
diff --git a/test/chttpd_error_info_tests.erl b/test/chttpd_error_info_tests.erl
index cb0a58a..acc4b5e 100644
--- a/test/chttpd_error_info_tests.erl
+++ b/test/chttpd_error_info_tests.erl
@@ -116,6 +116,10 @@ error_info_test() ->
                " the characters _, $, (, ), +, -, and / are allowed."
                " Must begin with a letter.">>}
         },
+	{
+            {Error, {illegal_docid,1}},
+            {400, <<"illegal_docid">>, 1}
+	},
         {
             {missing_stub, Reason},
             {412, <<"missing_stub">>, Reason}