- 
        Couldn't load subscription status. 
- Fork 45
Disabled NPE checks for non-public library fields by default #353
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
        
          
                utbot-framework-api/src/main/kotlin/org/utbot/framework/UtSettings.kt
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                utbot-framework/src/main/kotlin/org/utbot/engine/UtBotSymbolicEngine.kt
              
                Outdated
          
            Show resolved
            Hide resolved
        
      There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems good.
e05263e    to
    aeb2a17      
    Compare
  
    | As discussed, defining "trusted" libraries was suggested so we do not check NPE for final/non-public fields in them. | 
aeb2a17    to
    808db1e      
    Compare
  
            
          
                utbot-framework-api/src/main/kotlin/org/utbot/framework/TrustedLibraries.kt
              
                Outdated
          
            Show resolved
            Hide resolved
        
      2f36cf6    to
    0fcd216      
    Compare
  
    There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The code looks good, but I think that the default set of trusted libraries should be reduced.
        
          
                utbot-framework-api/src/main/kotlin/org/utbot/framework/TrustedLibraries.kt
              
                Outdated
          
            Show resolved
            Hide resolved
        
      0fcd216    to
    c8bef4d      
    Compare
  
    There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
c8bef4d    to
    be48844      
    Compare
  
    commit 31fbc83 Author: Andrey Tarbeev <dinis.taranov@mail.ru> Date: Fri Jul 8 10:50:52 2022 +0300 Minimize exceptions in signature (#418) * Minimize exceptions in test methods signatures commit 63eb9b0 Author: Yury Kamenev <yurkam447@gmail.com> Date: Thu Jul 7 15:13:45 2022 +0300 Removed always used coverage-based minimization strategy (#450) commit fe0f7f8 Author: Yury Kamenev <yurkam447@gmail.com> Date: Thu Jul 7 14:19:53 2022 +0300 Disabled NPE checks for non-public library fields by default (#353) commit d1b51fe Author: Yury Kamenev <yurkam447@gmail.com> Date: Thu Jul 7 13:44:46 2022 +0300 Fixed NPE for processing static field as first statement in MUT (#433) commit acc2fff Author: Nikita Vlaev <nikitavlaev00@gmail.com> Date: Wed Jul 6 15:37:28 2022 +0300 Added ForceStaticMockListener to run "configure mockito-inline" action. Refactored url listener in notifications. commit 80c2328 Author: Nikita Stroganov <54814796+IdeaSeeker@users.noreply.github.com> Date: Thu Jul 7 11:21:13 2022 +0300 Support -P parameters in the utbot-gradle (#377) commit a92e289 Author: Sergey Pospelov <sergeypospelov59@gmail.com> Date: Tue Jul 5 10:29:45 2022 +0300 Fix searching of modifiers field for JDK 8-17 commit 9a3acb6 Author: Amandel Pie <105506115+amandelpie@users.noreply.github.com> Date: Wed Jul 6 14:16:09 2022 +0300 Disabled clustering of tests generated by Fuzzer (#431) * Disabled clustering of tests generated by Fuzzer * Refactored the multiple calls commit c09568f Author: Vassiliy Kudryashov <vassiliy.kudryashov@gmail.com> Date: Wed Jul 6 10:21:52 2022 +0300 Existing test file without test class obstruct generation #160 (#425) commit 2ec8fb3 Author: Denis Fokin <Denis.Fokin@gmail.com> Date: Tue Jul 5 16:52:42 2022 +0300 Better naming commit 68c66ef Author: Vassiliy Kudryashov <vassiliy.kudryashov@gmail.com> Date: Tue Jul 5 19:51:55 2022 +0300 SVG logo contains 'inaccurate' holes #330 (#411) commit 1d48789 Author: Dmitrii Timofeev <dtim@comitative.com> Date: Tue Jul 5 17:08:38 2022 +0300 Workaround: run concrete execution for invokedynamic commit 65d95c1 Author: Vassiliy Kudryashov <vassiliy.kudryashov@gmail.com> Date: Tue Jul 5 19:42:55 2022 +0300 Plugin fails with an exception if no SDK is configured for the test module #399 (#424) commit 6f9f2d8 Author: Maksim Pelevin <maks.pelevin@gmail.com> Date: Tue Jul 5 17:49:58 2022 +0300 Fix CNFE: kotlin.collections.ArrayDeque in ContestEstimator (#419) commit 67cc7d9 Author: Denis Fokin <Denis.Fokin@gmail.com> Date: Tue Jul 5 11:58:40 2022 +0300 Put concrete executor jar in resources for contest estimator commit 63e2252 Author: Alena Lisevych <37301492+alisevych@users.noreply.github.com> Date: Tue Jul 5 15:48:29 2022 +0300 Tooltips correction for #343 (#410) Co-authored-by: Alena Lisevych <> commit 8b3defa Author: Vassiliy Kudryashov <vassiliy.kudryashov@gmail.com> Date: Tue Jul 5 13:22:31 2022 +0300 Write access exception on test generating in Idea project with JDK 11 #350 (#409) commit c02883c Author: Amandel Pie <105506115+amandelpie@users.noreply.github.com> Date: Tue Jul 5 11:21:21 2022 +0300 Enables 40 tests for utbot-summary module (#389) * Repair testPow * Repaired ReturnExampleTest tests * Restored SummaryCycleTest.kt * Restored all the tests commit 65c07f8 Author: Victoria <32179813+victoriafomina@users.noreply.github.com> Date: Tue Jul 5 09:51:44 2022 +0300 Update Dockerfile_java_cli (#396) commit 3b21112 Author: Alexey Menshutin <alex.menshutin99@gmail.com> Date: Mon Jul 4 21:16:53 2022 +0300 ToString support for abstract collection using makeSymbolic #391 commit c2673df Author: Vassiliy Kudryashov <vassiliy.kudryashov@gmail.com> Date: Mon Jul 4 21:56:43 2022 +0300 IDE fatal error during tests generation #68 (#379) commit 43693fb Author: Nikita Vlaev <vlaev.nikita@huawei.com> Date: Mon Jul 4 18:59:57 2022 +0300 Bring back test class generation (#403) commit 1c01193 Author: Yury Kamenev <yurkam447@gmail.com> Date: Mon Jul 4 20:24:03 2022 +0300 Added the wrapper for static methods of java.util.List (#400) commit a805f31 Author: Nikita Vlaev <vlaev.nikita@huawei.com> Date: Fri Jul 1 20:16:28 2022 +0300 Add title pane with unsupported jdk notification (#373) commit 16c13fb Author: Dmitrii Timofeev <dtim@comitative.com> Date: Mon Jul 4 18:35:36 2022 +0300 Initiate concrete execution if a wrapper method is missing (#392) If a JVM class is overridden but a method is missing from the wrapper, the engine will discard the path and fall back to concrete execution instead of analysing the real JVM code graph. This approach fixes the problem with methods that have been introduced in newer JDKs. Now wrappers are mostly limited to Java 1.8 interfaces and fail to analyze methods like `String::isBlank` or `String::lines` when the code runs under JDK 11. Building graphs from the real JDK code fails because the wrapper does not have private fields that the original code uses. TODO: to allow symbolic analysis of the code, missing methods should be actually implemented in corresponding wrappers.
Description
Disable NPE checks for non-public fields from library classes by default, as for final fields.
Fixes #358
Type of Change
How Has This Been Tested?
Automated Testing
See
org.utbot.examples.stdlib.DateExampleTestManual Scenario
Checks #358 description.
Checklist (remove irrelevant options):