Skip to content
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

NPE building Micronaut native image with Freemarker #3469

Closed
ilopmar opened this issue Jun 14, 2021 · 2 comments
Closed

NPE building Micronaut native image with Freemarker #3469

ilopmar opened this issue Jun 14, 2021 · 2 comments
Assignees

Comments

@ilopmar
Copy link

ilopmar commented Jun 14, 2021

Describe the issue

Our CI has failed with a NullPointerException when building a Micronaut native image with Freemarker.

CI logs:

Steps to reproduce the issue

  • git clone https://github.com/micronaut-graal-tests/micronaut-views-graal
  • cd micronaut-views-graal
  • git checkout graalvm-npe
  • Use GraalVM compiled from master branch
  • ./gradlew nativeImage

Describe GraalVM and your environment:

  • GraalVM version: cbc5a97
  • JDK major version: 8 and 11
  • OS: Linux Mint 20.1
  • Architecture: AMD64

More details

[views-freemarker:34390]    classlist:   1,969.60 ms,  0.96 GB
[views-freemarker:34390]        (cap):     469.34 ms,  0.96 GB
[views-freemarker:34390]        setup:   1,945.13 ms,  0.96 GB
[views-freemarker:34390]     analysis:  24,941.47 ms,  3.86 GB
Fatal error:com.oracle.graal.pointsto.util.AnalysisError$ParsingError: Error encountered while parsing freemarker.ext.beans.ClassIntrospector.addConstructorsToClassIntrospectionData(java.util.Map, java.lang.Class, freemarker.ext.beans.ClassMemberAccessPolicy) 
Parsing context:
   at freemarker.ext.beans.ClassIntrospector.createClassIntrospectionData(ClassIntrospector.java:303)
   at freemarker.ext.beans.ClassIntrospector.get(ClassIntrospector.java:260)
   at freemarker.ext.beans.BeansWrapper.newInstance(BeansWrapper.java:1633)
   at freemarker.core._ObjectBuilderSettingEvaluator$BuilderCallExpression.callConstructor(_ObjectBuilderSettingEvaluator.java:1029)
   at freemarker.core._ObjectBuilderSettingEvaluator$BuilderCallExpression.eval(_ObjectBuilderSettingEvaluator.java:943)
   at freemarker.core._ObjectBuilderSettingEvaluator.ensureEvaled(_ObjectBuilderSettingEvaluator.java:161)
   at freemarker.core._ObjectBuilderSettingEvaluator.eval(_ObjectBuilderSettingEvaluator.java:129)
   at freemarker.core._ObjectBuilderSettingEvaluator.eval(_ObjectBuilderSettingEvaluator.java:106)
   at freemarker.template.Configuration.setSetting(Configuration.java:3434)
   at freemarker.core.Configurable.setSettings(Configurable.java:2995)
   at io.micronaut.views.freemarker.FreemarkerViewsRendererConfigurationProperties.setSettings(FreemarkerViewsRendererConfigurationProperties.java:140)
   at io.micronaut.views.freemarker.$FreemarkerViewsRendererConfigurationPropertiesDefinition.injectBean(Unknown Source)
   at io.micronaut.context.AbstractBeanDefinition.inject(AbstractBeanDefinition.java:341)
   at io.micronaut.context.DefaultBeanContext.doInject(DefaultBeanContext.java:2272)
   at io.micronaut.context.DefaultBeanContext.registerSingleton(DefaultBeanContext.java:575)
   at io.micronaut.context.DefaultApplicationContext.registerSingleton(DefaultApplicationContext.java:112)
[views-freemarker:34390]    at io.micronaut.context.ApplicationContext.registerSingleton(ApplicationContext.java:99)
     [total]:     at io.micronaut.context.ApplicationContext.registerSingleton(ApplicationContext.java:124)
29,099.70 ms,  3.86 GB
   at io.micronaut.context.DefaultApplicationContextBuilder.build(DefaultApplicationContextBuilder.java:273)
   at io.micronaut.runtime.Micronaut.start(Micronaut.java:67)
   at io.micronaut.runtime.Micronaut.run(Micronaut.java:311)
   at io.micronaut.runtime.Micronaut.run(Micronaut.java:297)
   at example.micronaut.Application.main(Application.java:8)
   at com.oracle.svm.core.JavaMainWrapper.runCore(JavaMainWrapper.java:146)
   at com.oracle.svm.core.JavaMainWrapper.run(JavaMainWrapper.java:182)
   at com.oracle.svm.core.code.IsolateEnterStub.JavaMainWrapper_run_5087f5482cc9a6abc971913ece43acb471d2631b(generated:0)

        at com.oracle.graal.pointsto.util.AnalysisError.parsingError(AnalysisError.java:126)
        at com.oracle.graal.pointsto.flow.MethodTypeFlow.createTypeFlow(MethodTypeFlow.java:311)
# Printing build artifacts to: /home/ivan/workspaces/micronaut-graal-tests/micronaut-views-graal/build/native-image/views-freemarker.build_artifacts.txt        at com.oracle.graal.pointsto.flow.MethodTypeFlow.ensureTypeFlowCreated(MethodTypeFlow.java:282)

        at com.oracle.graal.pointsto.flow.MethodTypeFlow.addContext(MethodTypeFlow.java:103)
        at com.oracle.graal.pointsto.DefaultAnalysisPolicy$DefaultSpecialInvokeTypeFlow.onObservedUpdate(DefaultAnalysisPolicy.java:363)
        at com.oracle.graal.pointsto.flow.TypeFlow.notifyObservers(TypeFlow.java:471)
        at com.oracle.graal.pointsto.flow.TypeFlow.update(TypeFlow.java:540)
        at com.oracle.graal.pointsto.BigBang$2.run(BigBang.java:539)
        at com.oracle.graal.pointsto.util.CompletionExecutor.executeCommand(CompletionExecutor.java:190)
        at com.oracle.graal.pointsto.util.CompletionExecutor.lambda$executeService$0(CompletionExecutor.java:174)
        at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
        at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
Caused by: java.lang.NullPointerException
        at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.registerUsedElements(MethodTypeFlowBuilder.java:249)
        at com.oracle.svm.hosted.analysis.flow.SVMMethodTypeFlowBuilder.registerUsedElements(SVMMethodTypeFlowBuilder.java:78)
        at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.parse(MethodTypeFlowBuilder.java:185)
        at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.apply(MethodTypeFlowBuilder.java:321)
        at com.oracle.graal.pointsto.flow.MethodTypeFlow.createTypeFlow(MethodTypeFlow.java:293)
        ... 14 more
Error: Image build request failed with exit status 1


@christianwimmer
Copy link
Member

Fixed in f648801

@ilopmar
Copy link
Author

ilopmar commented Jun 18, 2021

Thanks! CI already passed tonight :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants