| Summary: | IR has a different default value for an annotation in a Clean build vs an Incremental build | ||||||
|---|---|---|---|---|---|---|---|
| Product: | z_Archived | Reporter: | Brian Svihovec <svihovec> | ||||
| Component: | EDT | Assignee: | Project Inbox <edt.mofmodel-inbox> | ||||
| Status: | RESOLVED FIXED | QA Contact: | |||||
| Severity: | normal | ||||||
| Priority: | P3 | CC: | jspadea, pharmon | ||||
| Version: | unspecified | ||||||
| Target Milestone: | --- | ||||||
| Hardware: | PC | ||||||
| OS: | Windows XP | ||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
Created attachment 214553 [details]
Add missing initial value
I've attached a patch that fixes this, but Paul should review it first. The problem has to do with converting an IR to a binding, the IR's initial value was not being copied.
This has been fixed with a change to Mof2BindingMember. The default value for the annotion fields were not being set in the FlexibleRecordBinding fixed |
Create a Handler with the following content: handler H4 type RUIhandler{initialUI =[var1_ui ], onConstructionFunction = start, cssFile = "css/P1.css", title = "H4"} var1 Rec1; var1_ui GridLayout { rows = 1, columns = 2, cellPadding = 4, children = [ var1_item1_nameLabel,var1_item1_field ] }; var1_item1_nameLabel TextLabel { text="item1" , layoutData = new GridLayoutData { row = 1, column = 1} }; var1_item1_field DojoTextField { readOnly = true , layoutData = new GridLayoutData { row = 1, column = 2} }; var1_item1_controller Controller { @MVC {model = var1.item1, view = var1_item1_field} }; function start() end end Record Rec1 item1 String {@InputRequired}; end If you run an incremental build, it will compile cleanly. If you run a clean build, you will get the following NPE: org.eclipse.edt.mof.codegen.api.TemplateException: java.lang.NullPointerException at org.eclipse.edt.mof.codegen.api.TemplateContext.doInvoke(TemplateContext.java:420) at org.eclipse.edt.mof.codegen.api.TemplateContext.invoke(TemplateContext.java:273) at org.eclipse.edt.gen.javascript.templates.FieldTemplate.preGen(FieldTemplate.java:48) at sun.reflect.GeneratedMethodAccessor709.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.edt.mof.codegen.api.TemplateContext.doInvoke(TemplateContext.java:360) at org.eclipse.edt.mof.codegen.api.TemplateContext.invoke(TemplateContext.java:261) at org.eclipse.edt.gen.javascript.templates.EGLClassTemplate.preGenField(EGLClassTemplate.java:92) at sun.reflect.GeneratedMethodAccessor708.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.edt.mof.codegen.api.TemplateContext.doInvoke(TemplateContext.java:362) at org.eclipse.edt.gen.EglContext.invoke(EglContext.java:397) at org.eclipse.edt.gen.javascript.templates.EGLClassTemplate.preGenFields(EGLClassTemplate.java:87) at sun.reflect.GeneratedMethodAccessor831.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.edt.mof.codegen.api.TemplateContext.doInvoke(TemplateContext.java:360) at org.eclipse.edt.gen.EglContext.invoke(EglContext.java:397) at org.eclipse.edt.gen.javascript.templates.EGLClassTemplate.preGenClassBody(EGLClassTemplate.java:41) at sun.reflect.GeneratedMethodAccessor829.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.edt.mof.codegen.api.TemplateContext.doInvoke(TemplateContext.java:360) at org.eclipse.edt.gen.EglContext.invoke(EglContext.java:397) at org.eclipse.edt.gen.javascript.templates.PartTemplate.preGenPart(PartTemplate.java:37) at sun.reflect.GeneratedMethodAccessor828.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.edt.mof.codegen.api.TemplateContext.doInvoke(TemplateContext.java:360) at org.eclipse.edt.gen.EglContext.invoke(EglContext.java:397) at org.eclipse.edt.gen.javascript.JavaScriptGenerator.generate(JavaScriptGenerator.java:77) at org.eclipse.edt.gen.AbstractGeneratorCommand.generate(AbstractGeneratorCommand.java:106) at org.eclipse.edt.gen.javascriptdev.ide.JavaScriptDevGenerator.generate(JavaScriptDevGenerator.java:37) at org.eclipse.edt.ide.core.internal.generation.GenerationQueue.invokeGenerators(GenerationQueue.java:264) at org.eclipse.edt.ide.core.internal.generation.GenerationQueue.generate(GenerationQueue.java:192) at org.eclipse.edt.ide.core.internal.generation.GenerationQueue.generate(GenerationQueue.java:145) at org.eclipse.edt.ide.core.internal.generation.AbstractGenerator.build(AbstractGenerator.java:49) at org.eclipse.edt.ide.core.internal.generation.GenerationBuilder.cleanBuild(GenerationBuilder.java:100) at org.eclipse.edt.ide.core.internal.generation.GenerationBuilder.build(GenerationBuilder.java:50) at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:629) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:172) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:203) at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:255) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:258) at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:311) at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:343) at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:144) at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:242) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) Caused by: java.lang.NullPointerException at org.eclipse.edt.gen.javascript.annotation.templates.MVCTemplate.setValidators(MVCTemplate.java:608) at org.eclipse.edt.gen.javascript.annotation.templates.MVCTemplate.getImplicitReferencedParts(MVCTemplate.java:1123) at org.eclipse.edt.gen.javascript.annotation.templates.MVCTemplate.preGen(MVCTemplate.java:109) After looking at the code, it looks like the MVCTemplate is throwing an NPE because the IR has no default value for the annotation during a clean build, but it has a default value of 'YES' during an incremental build.