Verify arguments in public methods
[mono.git] / mcs / class / System.Threading.Tasks.Dataflow / System.Threading.Tasks.Dataflow / MessageBox.cs
index 683f12681ca337141706261c958c9378cca3859b..e58228a748a4415499a175378a3af5e2ca5f8f32 100644 (file)
@@ -64,7 +64,13 @@ namespace System.Threading.Tasks.Dataflow {
                        ISourceBlock<TInput> source, bool consumeToAccept)
                {
                        if (!messageHeader.IsValid)
-                               return DataflowMessageStatus.Declined;
+                               throw new ArgumentException ("The messageHeader is not valid.",
+                                       "messageHeader");
+                       if (consumeToAccept && source == null)
+                               throw new ArgumentException (
+                                       "consumeToAccept may only be true if provided with a non-null source.",
+                                       "consumeToAccept");
+
                        if (MessageQueue.IsAddingCompleted || !compHelper.CanRun)
                                return DataflowMessageStatus.DecliningPermanently;