code: private void reportDiffs( Checker checker, JavaType[] origClasses, JavaType[] currentClasses )
      {
          try
          {
              checker.reportDiffs( origClasses, currentClasses );
          }
          catch ( CheckerException e )
          {
              getLog().error( e.getMessage() );
  
              // remove class with errors
              int matchingClasses = 0;
              int j = 0;
              for ( int i = 0; i < origClasses.length; i++ )
              {
                  if ( !e.getMessage().endsWith( origClasses[i].getName() ) )
                  {
                      matchingClasses++;
                  }
              }
              JavaType[] origClasses2 = new JavaType[matchingClasses];
              for ( int i = 0; i < origClasses.length; i++ )
              {
                  if ( !e.getMessage().endsWith( origClasses[i].getName() ) )
                  {
                      origClasses2[j++] = origClasses[i];
                  }
              }
  
              matchingClasses = 0;
              j = 0;
              for ( int i = 0; i < currentClasses.length; i++ )
              {
                  if ( !e.getMessage().endsWith( currentClasses[i].getName() ) )
                  {
                      matchingClasses++;
                  }
              }
              JavaType[] currentClasses2 = new JavaType[matchingClasses];
              for ( int i = 0; i < currentClasses.length; i++ )
              {
                  if ( !e.getMessage().endsWith( currentClasses[i].getName() ) )
                  {
                      currentClasses2[j++] = currentClasses[i];
                  }
              }
  
              reportDiffs( checker, origClasses2, currentClasses2 );
          }
      }
docs: Calls {@link Checker#reportDiffs(JavaType[], JavaType[])} and take care of BCEL errors.
  
  @param checker        not null
  @param origClasses    not null
  @param currentClasses not null
  @see Checker#reportDiffs(JavaType[], JavaType[])