Author: achiumenti Date: Thu Jul 17 10:54:54 2008 New Revision: 63
Modified: trunk/main/claw-core/src/server.lisp Log: updating error handling logic
Modified: trunk/main/claw-core/src/server.lisp ============================================================================== --- trunk/main/claw-core/src/server.lisp (original) +++ trunk/main/claw-core/src/server.lisp Thu Jul 17 10:54:54 2008 @@ -423,7 +423,6 @@
(defmethod render-error-page ((clawserver clawserver) &optional (error-code +http-not-found+)) (let ((connector (clawserver-connector clawserver))) - (setf (claw-return-code) +http-ok+) (page-render (make-instance 'error-page :title (format nil "Server error: ~a" error-code) :writer (connector-writer connector) @@ -460,6 +459,16 @@ for action = (cdr dispatcher) do (when (starts-with-subseq rel-script-name url) (return (funcall action)))))))))) (or http-result + (let ((error-handler (and *claw-current-lisplet* + (gethash (or + (let ((return-code (claw-return-code))) + (if (= return-code +http-ok+) + nil + return-code)) + +http-not-found+) + (lisplet-error-handlers *claw-current-lisplet*))))) + (when error-handler + (funcall error-handler))) (with-output-to-string (*standard-output*) (render-error-page clawserver (or (let ((return-code (claw-return-code)))