Title: UtUtils methods using setAccessible doesn't work in Java 17 · Issue #2026 · UnitTestBot/UTBotJava · GitHub
Open Graph Title: UtUtils methods using setAccessible doesn't work in Java 17 · Issue #2026 · UnitTestBot/UTBotJava
X Title: UtUtils methods using setAccessible doesn't work in Java 17 · Issue #2026 · UnitTestBot/UTBotJava
Description: Description UtUtils methods using setAccessible doesn't work in Java 17 That results in failing successful executions. To Reproduce Run the 'utbot' project in IntelliJ Idea 2022.3 Ultimate Install plugin built from unit-test-bot/rc2023.3...
Open Graph Description: Description UtUtils methods using setAccessible doesn't work in Java 17 That results in failing successful executions. To Reproduce Run the 'utbot' project in IntelliJ Idea 2022.3 Ultimate Install ...
X Description: Description UtUtils methods using setAccessible doesn't work in Java 17 That results in failing successful executions. To Reproduce Run the 'utbot' project in IntelliJ Idea 2022.3 Ultim...
Opengraph URL: https://github.com/UnitTestBot/UTBotJava/issues/2026
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"UtUtils methods using setAccessible doesn't work in Java 17","articleBody":"**Description**\r\n\r\nUtUtils methods using setAccessible doesn't work in Java 17\r\nThat results in failing successful executions.\r\n\r\n**To Reproduce**\r\n\r\n1. Run the 'utbot' project in IntelliJ Idea 2022.3 Ultimate\r\n2. Install [plugin built from unit-test-bot/rc2023.3 branch](https://github.com/UnitTestBot/UTBotJava/actions/runs/4487896210)\r\n3. Create a new project with JDK 17 (f.i. Maven)\r\n4. Add the following dependency to pom.xml:\r\n\r\n```xml\r\n \u003cdependency\u003e\r\n \u003cgroupId\u003eorg.slf4j\u003c/groupId\u003e\r\n \u003cartifactId\u003eslf4j-api\u003c/artifactId\u003e\r\n \u003cversion\u003e1.7.36\u003c/version\u003e\r\n \u003c/dependency\u003e\r\n```\r\n\r\n5. Copy-paste `mixed\\LoggerExample.java` into it\r\n6. _**Generate and Run**_ tests with mocks + static mocks (default settings)\r\n\r\n**Expected behavior**\r\n\r\nTests classified as Successful should pass.\r\n\r\n**Actual behavior**\r\n\r\n3 successful executions generated by Symbolic engine - fail.\r\nThe following error is produced by `UtUtils.getStaticFieldValue()` :\r\n\r\n**java.lang.reflect.InaccessibleObjectException: Unable to make private native java.lang.reflect.Field[] java.lang.Class.getDeclaredFields0(boolean) accessible: module java.base does not \"opens java.lang\" to unnamed module @5afa04c**\r\n\r\n**Visual proofs (screenshots, logs, images)**\r\n\r\n~~~java\r\n @Test\r\n @DisplayName(\"loggerUsage: -\u003e return 2\")\r\n public void testLoggerUsage_Return2() throws ClassNotFoundException, IllegalAccessException, NoSuchFieldException {\r\n org.mockito.MockedStatic mockedStatic = null;\r\n try {\r\n Class loggerExampleClazz = Class.forName(\"org.utbot.examples.mixed.LoggerExample\");\r\n Logger prevLogger = ((Logger) getStaticFieldValue(loggerExampleClazz, \"logger\"));\r\n try {\r\n Logger loggerMock = mock(Logger.class);\r\n (when(loggerMock.isDebugEnabled())).thenReturn(false);\r\n setStaticField(loggerExampleClazz, \"logger\", loggerMock);\r\n mockedStatic = mockStatic(org.slf4j.LoggerFactory.class);\r\n (mockedStatic.when(() -\u003e org.slf4j.LoggerFactory.getLogger(any(Class.class)))).thenReturn(loggerMock);\r\n LoggerExample loggerExample = new LoggerExample();\r\n\r\n int actual = loggerExample.loggerUsage();\r\n\r\n assertEquals(2, actual);\r\n } finally {\r\n setStaticField(LoggerExample.class, \"logger\", prevLogger);\r\n }\r\n } finally {\r\n mockedStatic.close();\r\n }\r\n }\r\n~~~\r\n\r\n**Environment**\r\n\r\nIntelliJ IDEA 2022.3.3 Ultimate\r\nJDK 17\r\n\r\n**Additional context**\r\n\r\nThe same tests generated in UTBotJava project pass.\r\nThat happens because of specially added list of \"--add-opens\" keys to jvmArgs.\r\n\r\nWhen the following keys are added to the test run configuration in the new project - the tests pass.\r\n`-ea --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED`\r\n","author":{"url":"https://github.com/alisevych","@type":"Person","name":"alisevych"},"datePublished":"2023-03-23T14:52:37.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":2},"url":"https://github.com/2026/UTBotJava/issues/2026"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:a302e14d-f81b-b72a-1351-c07585412d90 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | D08E:3AFAA9:BF5664:101F401:698E4439 |
| html-safe-nonce | c171cdcc2eddad304bc877eed8479ab0b60b7dd2768b27fcfbc6834bf24e1a5c |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEMDhFOjNBRkFBOTpCRjU2NjQ6MTAxRjQwMTo2OThFNDQzOSIsInZpc2l0b3JfaWQiOiI1MjcyNDI5MDc2MTE5NzAwNTM4IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | d708953b91741f904097d2e7341be2186408d4b1f8dc4800a3175e96a9ef71c4 |
| hovercard-subject-tag | issue:1637701483 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/UnitTestBot/UTBotJava/2026/issue_layout |
| twitter:image | https://opengraph.githubassets.com/0e5bb23e1e2e8a9b57a80308436813d81764964941aacea11ed26f3299a569cf/UnitTestBot/UTBotJava/issues/2026 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/0e5bb23e1e2e8a9b57a80308436813d81764964941aacea11ed26f3299a569cf/UnitTestBot/UTBotJava/issues/2026 |
| og:image:alt | Description UtUtils methods using setAccessible doesn't work in Java 17 That results in failing successful executions. To Reproduce Run the 'utbot' project in IntelliJ Idea 2022.3 Ultimate Install ... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | alisevych |
| hostname | github.com |
| expected-hostname | github.com |
| None | a5632af64f7fed7bff1d6a428d1aca1b94fa7a48f760de2d39d9b1effdbf0082 |
| turbo-cache-control | no-preview |
| go-import | github.com/UnitTestBot/UTBotJava git https://github.com/UnitTestBot/UTBotJava.git |
| octolytics-dimension-user_id | 87413538 |
| octolytics-dimension-user_login | UnitTestBot |
| octolytics-dimension-repository_id | 480810501 |
| octolytics-dimension-repository_nwo | UnitTestBot/UTBotJava |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 480810501 |
| octolytics-dimension-repository_network_root_nwo | UnitTestBot/UTBotJava |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 3dda52e29a416820ced574e74040033b820613a2 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width