@@ -1727,10 +1727,9 @@ void IssueBuildSubmissionToSchedulerImpl(BuildSubmission submission, bool allowM
17271727 HandleNewRequest ( Scheduler . VirtualNode , blocker ) ;
17281728 }
17291729 }
1730- catch ( Exception ex ) when ( ! ExceptionHandling . IsCriticalException ( ex ) )
1730+ catch ( Exception ex ) when ( IsInvalidProjectOrIORelatedException ( ex ) )
17311731 {
1732- var projectException = ex as InvalidProjectFileException ;
1733- if ( projectException != null )
1732+ if ( ex is InvalidProjectFileException projectException )
17341733 {
17351734 if ( ! projectException . HasBeenLogged )
17361735 {
@@ -1739,10 +1738,6 @@ void IssueBuildSubmissionToSchedulerImpl(BuildSubmission submission, bool allowM
17391738 projectException . HasBeenLogged = true ;
17401739 }
17411740 }
1742- else if ( ( ex is BuildAbortedException ) || ExceptionHandling . NotExpectedException ( ex ) )
1743- {
1744- throw ;
1745- }
17461741
17471742 lock ( _syncLock )
17481743 {
@@ -1752,7 +1747,7 @@ void IssueBuildSubmissionToSchedulerImpl(BuildSubmission submission, bool allowM
17521747 _legacyThreadingData . MainThreadSubmissionId = - 1 ;
17531748 }
17541749
1755- if ( projectException == null )
1750+ if ( ex is not InvalidProjectFileException )
17561751 {
17571752 var buildEventContext = new BuildEventContext ( submission . SubmissionId , 1 , BuildEventContext . InvalidProjectInstanceId , BuildEventContext . InvalidProjectContextId , BuildEventContext . InvalidTargetId , BuildEventContext . InvalidTaskId ) ;
17581753 ( ( IBuildComponentHost ) this ) . LoggingService . LogFatalBuildError ( buildEventContext , ex , new BuildEventFileInfo ( submission . BuildRequestData . ProjectFullPath ) ) ;
@@ -1772,6 +1767,11 @@ void IssueBuildSubmissionToSchedulerImpl(BuildSubmission submission, bool allowM
17721767 }
17731768 }
17741769
1770+ private bool IsInvalidProjectOrIORelatedException ( Exception e )
1771+ {
1772+ return ! ExceptionHandling . IsCriticalException ( e ) && ! ExceptionHandling . NotExpectedException ( e ) && e is not BuildAbortedException ;
1773+ }
1774+
17751775 private void ExecuteGraphBuildScheduler ( GraphBuildSubmission submission )
17761776 {
17771777 try
@@ -1855,15 +1855,15 @@ private void ExecuteGraphBuildScheduler(GraphBuildSubmission submission)
18551855 submission . SubmissionId ,
18561856 new ReadOnlyDictionary < ProjectGraphNode , BuildResult > ( resultsPerNode ?? new Dictionary < ProjectGraphNode , BuildResult > ( ) ) ) ) ;
18571857 }
1858- catch ( Exception ex ) when ( ! ExceptionHandling . IsCriticalException ( ex ) )
1858+ catch ( Exception ex ) when ( IsInvalidProjectOrIORelatedException ( ex ) )
18591859 {
18601860 GraphBuildResult result = null ;
18611861
18621862 // ProjectGraph throws an aggregate exception with InvalidProjectFileException inside when evaluation fails
18631863 if ( ex is AggregateException aggregateException && aggregateException . InnerExceptions . All ( innerException => innerException is InvalidProjectFileException ) )
18641864 {
18651865 // Log each InvalidProjectFileException encountered during ProjectGraph creation
1866- foreach ( var innerException in aggregateException . InnerExceptions )
1866+ foreach ( Exception innerException in aggregateException . InnerExceptions )
18671867 {
18681868 var projectException = ( InvalidProjectFileException ) innerException ;
18691869 if ( ! projectException . HasBeenLogged )
@@ -1881,23 +1881,16 @@ private void ExecuteGraphBuildScheduler(GraphBuildSubmission submission)
18811881 BuildEventContext projectBuildEventContext = new BuildEventContext ( submission . SubmissionId , 1 , BuildEventContext . InvalidProjectInstanceId , BuildEventContext . InvalidProjectContextId , BuildEventContext . InvalidTargetId , BuildEventContext . InvalidTaskId ) ;
18821882 ( ( IBuildComponentHost ) this ) . LoggingService . LogInvalidProjectFileError ( projectBuildEventContext , new InvalidProjectFileException ( ex . Message , ex ) ) ;
18831883 }
1884- else if ( ex is BuildAbortedException || ExceptionHandling . NotExpectedException ( ex ) )
1885- {
1886- throw ;
1887- }
18881884 else
18891885 {
18901886 // Arbitrarily just choose the first entry point project's path
1891- var projectFile = submission . BuildRequestData . ProjectGraph ? . EntryPointNodes . First ( ) . ProjectInstance . FullPath
1887+ string projectFile = submission . BuildRequestData . ProjectGraph ? . EntryPointNodes . First ( ) . ProjectInstance . FullPath
18921888 ?? submission . BuildRequestData . ProjectGraphEntryPoints ? . First ( ) . ProjectFile ;
18931889 BuildEventContext buildEventContext = new BuildEventContext ( submission . SubmissionId , 1 , BuildEventContext . InvalidProjectInstanceId , BuildEventContext . InvalidProjectContextId , BuildEventContext . InvalidTargetId , BuildEventContext . InvalidTaskId ) ;
18941890 ( ( IBuildComponentHost ) this ) . LoggingService . LogFatalBuildError ( buildEventContext , ex , new BuildEventFileInfo ( projectFile ) ) ;
18951891 }
18961892
1897- if ( result == null )
1898- {
1899- result = new GraphBuildResult ( submission . SubmissionId , ex ) ;
1900- }
1893+ result ??= new GraphBuildResult ( submission . SubmissionId , ex ) ;
19011894
19021895 ReportResultsToSubmission ( result ) ;
19031896
0 commit comments