@@ -148,16 +148,27 @@ await DiagnosticService.EmitAsync(
148148 {
149149 while ( await reader . ReadAsync ( cancellationToken ) )
150150 {
151- var record = commandBuilder . BuildQueuedMessageRecord ( reader ) ;
152- var messageContent = record . Content ;
153- var headers = DeserializeHeaders ( record . Headers ) ;
151+ try
152+ {
153+ var record = commandBuilder . BuildQueuedMessageRecord ( reader ) ;
154+ var messageContent = record . Content ;
155+ var headers = DeserializeHeaders ( record . Headers ) ;
154156#pragma warning disable 612
155- var principal = await ResolvePrincipal ( headers , record . SenderPrincipal ) ;
157+ var principal = await ResolvePrincipal ( headers , record . SenderPrincipal ) ;
156158#pragma warning restore 612
157- var message = new Message ( headers , messageContent ) . WithoutSecurityToken ( ) ;
158- var attempts = record . Attempts ;
159- var queuedMessage = new QueuedMessage ( message , principal , attempts ) ;
160- queuedMessages . Add ( queuedMessage ) ;
159+ var message = new Message ( headers , messageContent ) . WithoutSecurityToken ( ) ;
160+ var attempts = record . Attempts ;
161+ var queuedMessage = new QueuedMessage ( message , principal , attempts ) ;
162+ queuedMessages . Add ( queuedMessage ) ;
163+ }
164+ catch ( Exception ex )
165+ {
166+ DiagnosticService . Emit ( new SQLEventBuilder ( this , SQLEventType . MessageRecordFormatError )
167+ {
168+ Detail = "Error reading previously queued message record; skipping" ,
169+ Exception = ex
170+ } . Build ( ) ) ;
171+ }
161172 }
162173 }
163174 }
0 commit comments