小编Kar*_*ars的帖子

后端 (JVM) 内部错误。为什么我会收到此 IDE 错误,而其他具有相同代码的人却不会?

我是在 Kotlin 中开发程序的小组的一员。我最近从开发分支中提取了新代码。问题是我收到了这个奇怪的错误。我是唯一得到它的人;我的队友有相同的代码,对他们来说运行良好。

我试过谷歌搜索错误。我没有找到任何帮助,因为它是一个非常具体的帮助。另外就像我说我的队友没有收到这个错误。因此它可能与代码无关。

我得到的错误是这样的:

Error:Kotlin: [Internal Error] java.lang.IllegalStateException: Backend Internal error: Exception during code generation
Cause: Back-end (JVM) Internal error: Error type encountered: [ERROR : For SuccessOrFailure] (ErrorType).
Cause: Error type encountered: [ERROR : For SuccessOrFailure] (ErrorType).
File being compiled at position: (32,28) in C:/Users/Gebruiker/Desktop/Repo/game/src/main/kotlin/nl/han/asd/a1/network/networkstates/EndRoundState.kt
The root cause was thrown at: KotlinTypeMapper.java:116
File being compiled at position: file://C:/Users/Gebruiker/Desktop/Repo/game/src/main/kotlin/nl/han/asd/a1/network/networkstates/EndRoundState.kt
The root cause was thrown at: ExpressionCodegen.java:322
    at org.jetbrains.kotlin.codegen.CompilationErrorHandler.lambda$static$0(CompilationErrorHandler.java:24)
    at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generate(PackageCodegenImpl.java:74)
    at org.jetbrains.kotlin.codegen.DefaultCodegenFactory.generatePackage(CodegenFactory.kt:97)
    at org.jetbrains.kotlin.codegen.DefaultCodegenFactory.generateModule(CodegenFactory.kt:68)
    at org.jetbrains.kotlin.codegen.KotlinCodegenFacade.doGenerateFiles(KotlinCodegenFacade.java:47)
    at org.jetbrains.kotlin.codegen.KotlinCodegenFacade.compileCorrectFiles(KotlinCodegenFacade.java:39)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.generate(KotlinToJVMBytecodeCompiler.kt:446) …
Run Code Online (Sandbox Code Playgroud)

illegalstateexception kotlin

6
推荐指数
1
解决办法
6952
查看次数

Spring Boot WebMvcTest,这里导致 IllegalArgumentException 的原因是什么?

我在 Spring Boot 项目中有以下 WebMvcTest 。我启用了 HTTPS 和 JWT 令牌身份验证。该测试在我使用 HTTPS 和 JWT 之前就有效,但在添加它们之后,它给出了 IllegalArgumentException。

我一生都无法弄清楚异常是从哪里来的。有人能指出我正确的方向吗?

测试类:

@RunWith(SpringRunner.class)
@WebMvcTest(controllers = ActionController.class)
public class ActionControllerTests {

    @Autowired
    private MockMvc mvc;

    @MockBean
    private ActionService service;

    @MockBean
    private UserDetailsService userDetailsService;

    @MockBean
    private JwtRequestFilter jwtRequestFilter;

    @Test
    @WithMockUser
    public void testGetActions_returns_result_from_service() throws Exception {
        int actionId = 1;
        Action action = new Action();
        action.setId(actionId);
        List<Action> actionsList = Arrays.asList(action);

        given(service.getActions()).willReturn(actionsList);

        mvc.perform(get("/actions").secure(true)
                .contentType(MediaType.APPLICATION_JSON))
                .andExpect(status().isOk())
                .andExpect(jsonPath("$", hasSize(1)))
                .andExpect(jsonPath("$[0].id", Matchers.is(actionId)));
    }
}
Run Code Online (Sandbox Code Playgroud)

它抛出这个 IllegalArgumentException:

java.lang.IllegalArgumentException: Attribute name must not …
Run Code Online (Sandbox Code Playgroud)

java spring-boot

5
推荐指数
1
解决办法
2966
查看次数

Spring-Boot WebMvcTest:如何使用身份验证对象参数测试控制器方法?

这是这个问题的延续 Spring WebMvcTest how to mock Authentication?

我正在尝试在 Spring-boot 中测试接收Authentication对象作为参数的控制器方法。控制器是一个RestController@CrossOrigin注释的。该方法如下所示:

@GetMapping("/authentication")
public String testAuthentication(Authentication authentication) {
    UserDetailsStub userDetailsStub = (UserDetailsStub) authentication.getPrincipal();
    return userDetailsStub.getUsername();
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我从参数中从身份验证中获取了主体。

问题是,在我的WebMvcTest测试用例中,我得到一个NullPointerException因为在测试用例中,authentication似乎为空。我的问题是为什么?

我尝试添加一个given调用,该调用将在测试用例的UserDetails@PostConstruct注释的方法中返回一个自定义对象,但我仍然得到NullPointerException.

我的测试用例如下所示:

@Import(SecurityConfiguration.class)
@RunWith(SpringRunner.class)
@WebMvcTest(PDPController.class)
@AutoConfigureMockMvc(addFilters = false)
public class PDPControllerTests {

    @Autowired
    private MockMvc mvc;

    @MockBean(name = "userDetailsService")
    private MyUserDetailsService userDetailsService;
    
    //..

    @PostConstruct
    public void setup() {
        given(userDetailsService.loadUserByUsername(anyString()))
                .willReturn(new UserDetailsStub());
    }
    
    //..

    @Test …
Run Code Online (Sandbox Code Playgroud)

java spring spring-security spring-boot

5
推荐指数
1
解决办法
548
查看次数

Prolog 从集合中获取最大值

这是一个简单的问题。

has(steve, 5).
has(mark, 6).
has(craig, 4).
Run Code Online (Sandbox Code Playgroud)

你如何从 Prolog 中获得最多的人?

我试过了,has(Who, Max)但这没有帮助。有可以在这里使用的运算符吗?

谢谢。

prolog

2
推荐指数
1
解决办法
81
查看次数