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

Michael Schmalle commented on FLEX-33252:
-----------------------------------------

I have had time to look at this and was just trying to figure out "why" putting 
the initialization in the constructor worked since it was initialized before 
the super call. It seems that there is recursion going on and multiple flex fxg 
transcoder instances. As it loops, it gets to an instance where the public 
transcode() method is not called and you get the resulting NPE.

I'll change this to the constructor.
                
> Falcon Compiler Error - NPE when TextGraphic element is used
> ------------------------------------------------------------
>
>                 Key: FLEX-33252
>                 URL: https://issues.apache.org/jira/browse/FLEX-33252
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: MXML Compiler
>            Reporter: Cyrill Zadra
>              Labels: Falcon
>             Fix For: Apache Flex Next
>
>         Attachments: DefinitionTextGraphic.fxg, FLEX-33252.patch, 
> FxgNPETest.mxml
>
>
> Compiling the attached example throws a NullPointerException.
> java.lang.NullPointerException
>       at 
> org.apache.flex.compiler.fxg.flex.FlexFXG2SWFTranscoder.getDefinition(FlexFXG2SWFTranscoder.java:198)
>       at 
> org.apache.flex.compiler.fxg.flex.FlexFXG2SWFTranscoder.addDependency(FlexFXG2SWFTranscoder.java:184)
>       at 
> org.apache.flex.compiler.fxg.flex.FlexFXG2SWFTranscoder.flexText(FlexFXG2SWFTranscoder.java:562)
>       at 
> org.apache.flex.compiler.fxg.flex.FlexFXG2SWFTranscoder.text(FlexFXG2SWFTranscoder.java:527)
>       at 
> org.apache.flex.compiler.fxg.swf.FXG2SWFTranscoder.graphicContentNode(FXG2SWFTranscoder.java:424)
>       at 
> org.apache.flex.compiler.fxg.flex.FlexFXG2SWFTranscoder.graphicContentNode(FlexFXG2SWFTranscoder.java:342)
>       at 
> org.apache.flex.compiler.fxg.swf.FXG2SWFTranscoder.graphicContentNodes(FXG2SWFTranscoder.java:355)
>       at 
> org.apache.flex.compiler.fxg.swf.FXG2SWFTranscoder.definition(FXG2SWFTranscoder.java:819)
>       at 
> org.apache.flex.compiler.fxg.swf.FXG2SWFTranscoder.PlaceObject3TagInstance(FXG2SWFTranscoder.java:790)
>       at 
> org.apache.flex.compiler.fxg.swf.FXG2SWFTranscoder.graphicContentNode(FXG2SWFTranscoder.java:420)
>       at 
> org.apache.flex.compiler.fxg.flex.FlexFXG2SWFTranscoder.graphicContentNode(FlexFXG2SWFTranscoder.java:342)
>       at 
> org.apache.flex.compiler.fxg.swf.FXG2SWFTranscoder.graphicContentNodes(FXG2SWFTranscoder.java:355)
>       at 
> org.apache.flex.compiler.fxg.swf.FXG2SWFTranscoder.transcode(FXG2SWFTranscoder.java:208)
>       at 
> org.apache.flex.compiler.fxg.flex.FlexFXG2SWFTranscoder.transcode(FlexFXG2SWFTranscoder.java:134)
>       at 
> org.apache.flex.compiler.internal.units.FXGCompilationUnit.handleOutgoingDependenciesRequest(FXGCompilationUnit.java:235)
>       at 
> org.apache.flex.compiler.internal.units.CompilationUnitBase.processOutgoingDependenciesRequest(CompilationUnitBase.java:882)
>       at 
> org.apache.flex.compiler.internal.units.CompilationUnitBase.access$5(CompilationUnitBase.java:880)
>       at 
> org.apache.flex.compiler.internal.units.CompilationUnitBase$5$1.call(CompilationUnitBase.java:378)
>       at 
> org.apache.flex.compiler.internal.units.CompilationUnitBase$5$1.call(CompilationUnitBase.java:1)
>       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:1)
>       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)
> Internal error: java.lang.NullPointerException
>       at 
> org.apache.flex.compiler.internal.units.FXGCompilationUnit$1.addToFrame(FXGCompilationUnit.java:355)
>       at 
> org.apache.flex.compiler.internal.targets.SWFTarget.addCompilationUnitsAndDependenciesToFrame(SWFTarget.java:398)
>       at 
> org.apache.flex.compiler.internal.targets.SWFTarget$FramesInformation.createFrame(SWFTarget.java:831)
>       at 
> org.apache.flex.compiler.internal.targets.FlexAppSWFTarget$FlexApplicationFramesInformation.createFrames(FlexAppSWFTarget.java:754)
>       at 
> org.apache.flex.compiler.internal.targets.SWFTarget.build(SWFTarget.java:243)
>       at org.apache.flex.compiler.clients.MXMLC.buildSWFModel(MXMLC.java:658)
>       at org.apache.flex.compiler.clients.MXMLC.buildArtifact(MXMLC.java:644)
>       at org.apache.flex.compiler.clients.MXMLC.compile(MXMLC.java:525)
>       at org.apache.flex.compiler.clients.MXMLC.mainNoExit(MXMLC.java:214)
>       at org.apache.flex.compiler.clients.MXMLC.mainNoExit(MXMLC.java:182)
>       at f.MXMLTests.compileMXML(MXMLTests.java:47)
>       at f.MXMLTests.testFxgNPETest(MXMLTests.java:95)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>       at java.lang.reflect.Method.invoke(Unknown Source)
>       at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
>       at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
>       at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
>       at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
>       at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
>       at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
>       at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
>       at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
>       at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
>       at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
>       at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
>       at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
>       at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
>       at 
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
>       at 
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to