[ 
https://issues.apache.org/jira/browse/FLEX-35190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15724494#comment-15724494
 ] 

Santanu Karar commented on FLEX-35190:
--------------------------------------

I would like to propose a fix that I tested locally. Please, check attached 
herewith devsena.patch file for more details. The relevant area to fix is as 
this:
{panel}
-#Mon Jun 08 13:23:50 PDT 2015
-eclipse.preferences.version=1
-encoding/<project>=utf-8
diff --git 
a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DataItemRenderer.as
 
b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DataItemRenderer.as
index 7de2389..815f40a 100644
--- 
a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DataItemRenderer.as
+++ 
b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DataItemRenderer.as
@@ -28,6 +28,7 @@ package org.apache.flex.html.supportClasses
                import 
org.apache.flex.html.beads.controllers.ItemRendererMouseController;
        }
        import org.apache.flex.core.ValuesManager;
+       [DefaultProperty("mxmlContent")]
 
        /**
         *  The DataItemRenderer class is the base class for most 
itemRenderers. This class
diff --git a/frameworks/projects/HTML/src/test/flex/build.xml 
b/frameworks/projects/HTML/src/test/flex/build.xml
index 2b6e1af..e5a0628 100644
{panel}

Let me know if I can propose a pull request. 

> [FlexJS] DataItemRenderer breaks if extends as MXML file
> --------------------------------------------------------
>
>                 Key: FLEX-35190
>                 URL: https://issues.apache.org/jira/browse/FLEX-35190
>             Project: Apache Flex
>          Issue Type: Bug
>    Affects Versions: Apache FlexJS 0.8.0
>            Reporter: Santanu Karar
>
> I took a nightly build of Apache FlexJS and tried by it's supplied 
> *DataGridExample* example project. The example used a custom DataItemRenderer 
> class, but it was an ActionScript implementation. 
> When I tried to create MXML file extending same DataItemRenderer class, when 
> used to DataGrid component, I couldn't even able to build but thrown by 
> compiler error:
> *1551: Internal error in ABC generator subsystem, when generating code for: 
> E:\apache-flex-flexjs-0.8.0-bin\examples\flexjs\DataGridExample\src\products\ProductItemRendererMXML.mxml:
>  java.lang.NullPointerException*
> I'm attaching herewith the full error details for your review:
> {panel}
> Description   Resource        Path    Location        Type
> 1551: Internal error in ABC generator subsystem, when generating code for: 
> E:\apache-flex-flexjs-0.8.0-bin\examples\flexjs\DataGridExample\src\products\ProductItemRendererMXML.mxml:
>  java.lang.NullPointerException
>       at 
> org.apache.flex.compiler.internal.codegen.databinding.BindingInfo.analyzeExpression(BindingInfo.java:488)
>       at 
> org.apache.flex.compiler.internal.codegen.databinding.BindingInfo.finishInit(BindingInfo.java:171)
>       at 
> org.apache.flex.compiler.internal.codegen.databinding.BindingInfo.<init>(BindingInfo.java:115)
>       at 
> org.apache.flex.compiler.internal.codegen.databinding.BindingAnalyzer.analyze(BindingAnalyzer.java:56)
>       at 
> org.apache.flex.compiler.internal.codegen.databinding.BindingDatabase.analyze(BindingDatabase.java:122)
>       at 
> org.apache.flex.compiler.internal.codegen.databinding.MXMLBindingDirectiveHelper.visitNode(MXMLBindingDirectiveHelper.java:116)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.processMXMLDataBinding(MXMLClassDirectiveProcessor.java:4797)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.processMXMLPropertySpecifier(MXMLClassDirectiveProcessor.java:3696)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.processNode(MXMLClassDirectiveProcessor.java:962)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.traverse(MXMLClassDirectiveProcessor.java:861)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.traverse(MXMLClassDirectiveProcessor.java:831)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.processMXMLInstance(MXMLClassDirectiveProcessor.java:3349)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.processNode(MXMLClassDirectiveProcessor.java:939)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.traverse(MXMLClassDirectiveProcessor.java:861)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.traverse(MXMLClassDirectiveProcessor.java:831)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.processMXMLArray(MXMLClassDirectiveProcessor.java:3088)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.processNode(MXMLClassDirectiveProcessor.java:926)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.traverse(MXMLClassDirectiveProcessor.java:861)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.processMXMLPropertySpecifier(MXMLClassDirectiveProcessor.java:3605)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.processNode(MXMLClassDirectiveProcessor.java:962)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.traverse(MXMLClassDirectiveProcessor.java:861)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.traverse(MXMLClassDirectiveProcessor.java:831)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.processMXMLInstance(MXMLClassDirectiveProcessor.java:3349)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.processNode(MXMLClassDirectiveProcessor.java:939)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.traverse(MXMLClassDirectiveProcessor.java:861)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.traverse(MXMLClassDirectiveProcessor.java:831)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.processMXMLArray(MXMLClassDirectiveProcessor.java:3088)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.processNode(MXMLClassDirectiveProcessor.java:926)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.traverse(MXMLClassDirectiveProcessor.java:861)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.processMXMLPropertySpecifier(MXMLClassDirectiveProcessor.java:3605)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.processNode(MXMLClassDirectiveProcessor.java:962)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.traverse(MXMLClassDirectiveProcessor.java:861)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.traverse(MXMLClassDirectiveProcessor.java:831)
>       at 
> org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.processMainClassDefinitionNode(MXMLClassDirectiveProcessor.java:653)
>       at 
> org.apache.flex.compiler.internal.as.codegen.GlobalDirectiveProcessor.declareMXMLDocument(GlobalDirectiveProcessor.java:518)
>       at 
> org.apache.flex.compiler.internal.as.codegen.DirectiveProcessor.processNode(DirectiveProcessor.java:232)
>       at 
> org.apache.flex.compiler.internal.as.codegen.DirectiveProcessor.traverse(DirectiveProcessor.java:188)
>       at 
> org.apache.flex.compiler.internal.as.codegen.ABCGenerator.generate(ABCGenerator.java:122)
>       at 
> org.apache.flex.compiler.internal.units.MXMLCompilationUnit.handleABCBytesRequest(MXMLCompilationUnit.java:199)
>       at 
> org.apache.flex.compiler.internal.units.CompilationUnitBase.processABCBytesRequest(CompilationUnitBase.java:866)
>       at 
> org.apache.flex.compiler.internal.units.CompilationUnitBase.access$300(CompilationUnitBase.java:107)
>       at 
> org.apache.flex.compiler.internal.units.CompilationUnitBase$4$1.call(CompilationUnitBase.java:309)
>       at 
> org.apache.flex.compiler.internal.units.CompilationUnitBase$4$1.call(CompilationUnitBase.java:305)
>       at 
> org.apache.flex.compiler.internal.units.requests.RequestMaker$1.call(RequestMaker.java:228)
>       at 
> org.apache.flex.compiler.internal.units.requests.RequestMaker$1.call(RequestMaker.java:222)
>       at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
>       at java.util.concurrent.FutureTask.run(Unknown Source)
>       at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown 
> Source)
>       at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>       at java.lang.Thread.run(Unknown Source) ProductItemRendererMXML.mxml    
> /DataGridExample/src/products   line 0  Flex Problem
> {panel}
> The MXML custom renderer class was simple:
> {code}
> <js:DataItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009";
>                               xmlns:js="library://ns.apache.org/flexjs/basic">
>     <fx:Script>
>         <![CDATA[
>                       import org.apache.flex.html.Label;
>                       import 
> org.apache.flex.html.supportClasses.DataItemRenderer;
>               ]]>
>     </fx:Script>
>       <js:Container width="100%" height="100%">
>               <js:Label id="output" width="100" text="{data.image}" />
>       </js:Container>
> </js:DataItemRenderer>
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to