Internal error in the mapping processor: java.lang.NegativeArraySizeException

Internal error in the mapping processor: java.lang.NegativeArraySizeException


在Java中通过@Mapper注解的接口生成实现类,在编译代码时遇到如下错误:

Internal error in the mapping processor: java.lang.NegativeArraySizeException
          at org.mapstruct.ap.internal.writer.IndentationCorrectingWriter.getIndentation(IndentationCorrectingWriter.java:101)
          at org.mapstruct.ap.internal.writer.IndentationCorrectingWriter.access$200(IndentationCorrectingWriter.java:47)
          at org.mapstruct.ap.internal.writer.IndentationCorrectingWriter$State$1.doOnEntry(IndentationCorrectingWriter.java:142)
          at org.mapstruct.ap.internal.writer.IndentationCorrectingWriter$State.onEntry(IndentationCorrectingWriter.java:354)
          at org.mapstruct.ap.internal.writer.IndentationCorrectingWriter.write(IndentationCorrectingWriter.java:75)
          at java.io.BufferedWriter.flushBuffer(BufferedWriter.java:129)
          at java.io.BufferedWriter.flush(BufferedWriter.java:253)
          at org.mapstruct.ap.shaded.freemarker.core.Environment.process(Environment.java:238)
          at org.mapstruct.ap.shaded.freemarker.template.Template.process(Template.java:262)
          at org.mapstruct.ap.internal.writer.FreeMarkerModelElementWriter.write(FreeMarkerModelElementWriter.java:48)
          at org.mapstruct.ap.internal.model.common.ModelElement.write(ModelElement.java:38)
          at org.mapstruct.ap.internal.writer.ModelWriter.writeModel(ModelWriter.java:84)
          at org.mapstruct.ap.internal.processor.MapperRenderingProcessor.createSourceFile(MapperRenderingProcessor.java:70)
          at org.mapstruct.ap.internal.processor.MapperRenderingProcessor.writeToSourceFile(MapperRenderingProcessor.java:52)
          at org.mapstruct.ap.internal.processor.MapperRenderingProcessor.process(MapperRenderingProcessor.java:42)
          at org.mapstruct.ap.internal.processor.MapperRenderingProcessor.process(MapperRenderingProcessor.java:37)
          at org.mapstruct.ap.MappingProcessor.process(MappingProcessor.java:270)
          at org.mapstruct.ap.MappingProcessor.processMapperTypeElement(MappingProcessor.java:250)
          at org.mapstruct.ap.MappingProcessor.processMapperElements(MappingProcessor.java:216)
          at org.mapstruct.ap.MappingProcessor.process(MappingProcessor.java:155)
          at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
          at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:705)
          at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
          at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
          at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
          at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
          at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856)
          at com.sun.tools.javac.main.Main.compile(Main.java:523)
          at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:129)
          at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:138)
          at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:126)
          at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:174)
          at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:1075)
          at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:168)
          at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
          at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210)
          at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)
          at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
          at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
          at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
          at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
          at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
          at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
          at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
          at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
          at org.apache.maven.cli.MavenCli.execute(MavenCli.java:957)
          at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:289)
          at org.apache.maven.cli.MavenCli.main(MavenCli.java:193)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:498)
          at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)
          at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)
          at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)
          at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)

看起来像是缩进的问题,但实际问题是Mappings内容填写错误,错误代码如下:

    @Override
    @Mappings ({
    	@Mapping (target = "posX" ,source = "posX" ),
    	...
        @Mapping (target = "model" , expression= "java(util.getModel(dto.getModel())))"),
        ...
    })

出错的地方在于expression表达式多写了一个括号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值