Changeset 1409


Ignore:
Timestamp:
12/22/2009 10:38:31 AM (5 years ago)
Author:
lowjoel
Message:

-Display a proper error message box when errors occur in the worker thread
-Instead of checking the response code when getting the web response, we handle errors in exception handlers (WebException? is thrown)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eraser6/BlackBox/Eraser/BlackBoxUploadForm.cs

    r1408 r1409  
    103103        private void UploadWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) 
    104104        { 
    105             if (e.Error != null) 
    106                 MessageBox.Show(e.Error.Message); 
    107             ProgressLbl.Text = S._("Reports submitted successfully."); 
    108             CancelBtn.Text = S._("Close"); 
     105            if (e.Error == null) 
     106            { 
     107                ProgressLbl.Text = S._("Reports submitted successfully."); 
     108                CancelBtn.Text = S._("Close"); 
     109            } 
     110            else 
     111            { 
     112                MessageBox.Show(this, e.Error.Message, 
     113                    S._("Eraser"), MessageBoxButtons.OK, MessageBoxIcon.Error, 
     114                    MessageBoxDefaultButton.Button1, S.IsRightToLeft(this) ? 
     115                        MessageBoxOptions.RtlReading : 0); 
     116                Close(); 
     117            } 
    109118        } 
    110119 
     
    160169            } 
    161170 
    162             HttpWebResponse response = reportRequest.GetResponse() as HttpWebResponse; 
    163             if (response.StatusCode != HttpStatusCode.OK) 
    164             { 
     171            try 
     172            { 
     173                HttpWebResponse response = reportRequest.GetResponse() as HttpWebResponse; 
    165174                using (Stream responseStream = response.GetResponseStream()) 
     175                { 
     176                    XmlReader reader = XmlReader.Create(responseStream); 
     177                    reader.ReadToFollowing("crashReport"); 
     178                    string reportStatus = reader.GetAttribute("status"); 
     179                    switch (reportStatus) 
     180                    { 
     181                        case "exists": 
     182                            return false; 
     183 
     184                        case "new": 
     185                            return true; 
     186 
     187                        default: 
     188                            throw new InvalidDataException(S._("Unknown crash report server response.")); 
     189                    } 
     190                } 
     191            } 
     192            catch (WebException e) 
     193            { 
     194                using (Stream responseStream = e.Response.GetResponseStream()) 
    166195                { 
    167196                    try 
     
    177206                } 
    178207 
    179                 throw new InvalidDataException(response.StatusDescription); 
    180             } 
    181  
    182             using (Stream responseStream = response.GetResponseStream()) 
    183             { 
    184                 XmlReader reader = XmlReader.Create(responseStream); 
    185                 reader.ReadToFollowing("crashReport"); 
    186                 string reportStatus = reader.GetAttribute("status"); 
    187                 switch (reportStatus) 
    188                 { 
    189                     case "exists": 
    190                         return false; 
    191  
    192                     case "new": 
    193                         return true; 
    194  
    195                     default: 
    196                         throw new InvalidDataException(S._("Unknown crash report server response.")); 
    197                 } 
     208                throw new InvalidDataException(((HttpWebResponse)e.Response).StatusDescription); 
    198209            } 
    199210        } 
     
    265276                } 
    266277 
    267                 HttpWebResponse response = reportRequest.GetResponse() as HttpWebResponse; 
    268                 if (response.StatusCode != HttpStatusCode.OK) 
    269                 { 
    270                     using (Stream responseStream = response.GetResponseStream()) 
     278                try 
     279                { 
     280                    reportRequest.GetResponse(); 
     281                } 
     282                catch (WebException e) 
     283                { 
     284                    using (Stream responseStream = e.Response.GetResponseStream()) 
    271285                    { 
    272286                        try 
     
    282296                    } 
    283297 
    284                     throw new InvalidDataException(response.StatusDescription); 
     298                    throw new InvalidDataException(((HttpWebResponse)e.Response).StatusDescription); 
    285299                } 
    286300            } 
Note: See TracChangeset for help on using the changeset viewer.