Return-Path: Delivered-To: apmail-couchdb-commits-archive@www.apache.org Received: (qmail 74497 invoked from network); 20 Nov 2010 12:40:42 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 20 Nov 2010 12:40:42 -0000 Received: (qmail 32394 invoked by uid 500); 20 Nov 2010 12:41:13 -0000 Delivered-To: apmail-couchdb-commits-archive@couchdb.apache.org Received: (qmail 32270 invoked by uid 500); 20 Nov 2010 12:41:13 -0000 Mailing-List: contact commits-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list commits@couchdb.apache.org Received: (qmail 32263 invoked by uid 99); 20 Nov 2010 12:41:12 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 20 Nov 2010 12:41:12 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 20 Nov 2010 12:41:11 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 2876C23889D7; Sat, 20 Nov 2010 12:39:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1037194 - in /couchdb/trunk: share/www/script/test/rewrite.js src/couchdb/couch_httpd_rewrite.erl Date: Sat, 20 Nov 2010 12:39:58 -0000 To: commits@couchdb.apache.org From: jan@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20101120123958.2876C23889D7@eris.apache.org> Author: jan Date: Sat Nov 20 12:39:57 2010 New Revision: 1037194 URL: http://svn.apache.org/viewvc?rev=1037194&view=rev Log: Send a user friendly error message when rewrite rules are a String, not a JSON Array. Modified: couchdb/trunk/share/www/script/test/rewrite.js couchdb/trunk/src/couchdb/couch_httpd_rewrite.erl Modified: couchdb/trunk/share/www/script/test/rewrite.js URL: http://svn.apache.org/viewvc/couchdb/trunk/share/www/script/test/rewrite.js?rev=1037194&r1=1037193&r2=1037194&view=diff ============================================================================== --- couchdb/trunk/share/www/script/test/rewrite.js (original) +++ couchdb/trunk/share/www/script/test/rewrite.js Sat Nov 20 12:39:57 2010 @@ -437,7 +437,16 @@ couchTests.rewrite = function(debug) { T(result.uuids.length == 1); var first = result.uuids[0]; }); - }); - + + // test invalid rewrites + // string + var ddoc = { + _id: "_design/invalid", + rewrites: "[{\"from\":\"foo\",\"to\":\"bar\"}]" + } + db.save(ddoc); + var res = CouchDB.request("GET", "/test_suite_db/_design/invalid/_rewrite/foo"); + TEquals(400, res.status, "should return 400"); + } Modified: couchdb/trunk/src/couchdb/couch_httpd_rewrite.erl URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_httpd_rewrite.erl?rev=1037194&r1=1037193&r2=1037194&view=diff ============================================================================== --- couchdb/trunk/src/couchdb/couch_httpd_rewrite.erl (original) +++ couchdb/trunk/src/couchdb/couch_httpd_rewrite.erl Sat Nov 20 12:39:57 2010 @@ -135,7 +135,10 @@ handle_rewrite_req(#httpd{ case couch_util:get_value(<<"rewrites">>, Props) of undefined -> couch_httpd:send_error(Req, 404, <<"rewrite_error">>, - <<"Invalid path.">>); + <<"Invalid path.">>); + Bin when is_binary(Bin) -> + couch_httpd:send_error(Req, 400, <<"rewrite_error">>, + <<"Rewrite rules are a String. They must be a JSON Array.">>); Rules -> % create dispatch list from rules DispatchList = [make_rule(Rule) || {Rule} <- Rules],