You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flex.apache.org by "Cyrill Zadra (JIRA)" <ji...@apache.org> on 2012/12/24 07:00:21 UTC

[jira] [Commented] (FLEX-33268) Falcon Compile Error: NPE when not existing namespace is used in element.

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

Cyrill Zadra commented on FLEX-33268:
-------------------------------------

solution suggestion for org.apache.flex.compiler.internal.css.CSSNamespaceDefinition:

add following logic in constructor -> if uri ends with / remove this charachter

.. or should the compiler return a warning/error?




                
> Falcon Compile Error: NPE when not existing namespace is used in <fx:Style> element.
> ------------------------------------------------------------------------------------
>
>                 Key: FLEX-33268
>                 URL: https://issues.apache.org/jira/browse/FLEX-33268
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: MXML Compiler
>            Reporter: Cyrill Zadra
>              Labels: Falcon
>             Fix For: Apache Flex Next
>
>
> Code Example to reproduce error:
> <?xml version="1.0" encoding="utf-8"?>
> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
> 			   xmlns:s="library://ns.adobe.com/flex/spark" 
> 			   xmlns:mx="library://ns.adobe.com/flex/mx">
> 	
> 	<fx:Style>
> 		@namespace s "library://ns.adobe.com/flex/spark/";
> 		
> 		s|Label {
> 			color:red;
> 		}
> 		
> 	</fx:Style>	
> 	
> 	<s:Label text="asdf " />
> </s:Application>
> Exception: 
> C:\dev\apache-flex\falcon\compiler.tests\functional-tests\f\mxml\StyleNPE_2Test.mxml
> Error: Internal error in ABC generator subsystem, when generating code for: C:\dev\apache-flex\falcon\compiler.tests\functional-tests\f\mxml\StyleNPE_2Test.mxml: java.lang.NullPointerException
> 	at org.apache.flex.abc.instructionlist.InstructionList.addAll(InstructionList.java:420)
> 	at org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.processMXMLStyle(MXMLClassDirectiveProcessor.java:3194)
> 	at org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.processNode(MXMLClassDirectiveProcessor.java:771)
> 	at org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.traverse(MXMLClassDirectiveProcessor.java:649)
> 	at org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.traverse(MXMLClassDirectiveProcessor.java:619)
> 	at org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.processMainClassDefinitionNode(MXMLClassDirectiveProcessor.java:515)
> 	at org.apache.flex.compiler.internal.as.codegen.GlobalDirectiveProcessor.declareMXMLDocument(GlobalDirectiveProcessor.java:510)
> 	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:198)
> 	at org.apache.flex.compiler.internal.units.CompilationUnitBase.processABCBytesRequest(CompilationUnitBase.java:866)
> 	at org.apache.flex.compiler.internal.units.CompilationUnitBase.access$3(CompilationUnitBase.java:864)
> 	at org.apache.flex.compiler.internal.units.CompilationUnitBase$3$1.call(CompilationUnitBase.java:309)
> 	at org.apache.flex.compiler.internal.units.CompilationUnitBase$3$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)
> Output with -ea  assertion
> C:\dev\apache-flex\falcon\compiler.tests\functional-tests\f\mxml\StyleNPE_2Test.mxml
> Error: Internal error in ABC generator subsystem, when generating code for: C:\dev\apache-flex\falcon\compiler.tests\functional-tests\f\mxml\StyleNPE_2Test.mxml: java.lang.AssertionError: Unable to resolve type selector: s|Label
> 	at org.apache.flex.compiler.internal.css.codegen.CSSReducer.getSelecterLiteralForABC(CSSReducer.java:552)
> 	at org.apache.flex.compiler.internal.css.codegen.CSSReducer.reduceSelector(CSSReducer.java:499)
> 	at org.apache.flex.compiler.internal.css.codegen.CSSEmitter.action_12(CSSEmitter.java:196)
> 	at org.apache.flex.compiler.internal.css.codegen.CSSEmitter.dispatchAction(CSSEmitter.java:270)
> 	at org.apache.flex.compiler.internal.css.codegen.CSSEmitter.reduceAntecedent(CSSEmitter.java:1146)
> 	at org.apache.flex.compiler.internal.css.codegen.CSSEmitter.reduce(CSSEmitter.java:1124)
> 	at org.apache.flex.compiler.internal.css.codegen.CSSEmitter.reduceSubgoals(CSSEmitter.java:1171)
> 	at org.apache.flex.compiler.internal.css.codegen.CSSEmitter.reduceAntecedent(CSSEmitter.java:1145)
> 	at org.apache.flex.compiler.internal.css.codegen.CSSEmitter.reduce(CSSEmitter.java:1124)
> 	at org.apache.flex.compiler.internal.css.codegen.CSSEmitter.reduceSubgoals(CSSEmitter.java:1162)
> 	at org.apache.flex.compiler.internal.css.codegen.CSSEmitter.reduceAntecedent(CSSEmitter.java:1145)
> 	at org.apache.flex.compiler.internal.css.codegen.CSSEmitter.reduce(CSSEmitter.java:1124)
> 	at org.apache.flex.compiler.internal.css.codegen.CSSEmitter.reduceSubgoals(CSSEmitter.java:1171)
> 	at org.apache.flex.compiler.internal.css.codegen.CSSEmitter.reduceAntecedent(CSSEmitter.java:1145)
> 	at org.apache.flex.compiler.internal.css.codegen.CSSEmitter.reduce(CSSEmitter.java:1124)
> 	at org.apache.flex.compiler.internal.css.codegen.CSSEmitter.reduceSubgoals(CSSEmitter.java:1162)
> 	at org.apache.flex.compiler.internal.css.codegen.CSSEmitter.reduceAntecedent(CSSEmitter.java:1145)
> 	at org.apache.flex.compiler.internal.css.codegen.CSSEmitter.reduce(CSSEmitter.java:1124)
> 	at org.apache.flex.compiler.internal.css.codegen.CSSEmitter.burm(CSSEmitter.java:1205)
> 	at org.apache.flex.compiler.internal.css.codegen.CSSEmitter.burm(CSSEmitter.java:1197)
> 	at org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.processMXMLStyle(MXMLClassDirectiveProcessor.java:3185)
> 	at org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.processNode(MXMLClassDirectiveProcessor.java:771)
> 	at org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.traverse(MXMLClassDirectiveProcessor.java:649)
> 	at org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.traverse(MXMLClassDirectiveProcessor.java:619)
> 	at org.apache.flex.compiler.internal.as.codegen.MXMLClassDirectiveProcessor.processMainClassDefinitionNode(MXMLClassDirectiveProcessor.java:515)
> 	at org.apache.flex.compiler.internal.as.codegen.GlobalDirectiveProcessor.declareMXMLDocument(GlobalDirectiveProcessor.java:510)
> 	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:198)
> 	at org.apache.flex.compiler.internal.units.CompilationUnitBase.processABCBytesRequest(CompilationUnitBase.java:866)
> 	at org.apache.flex.compiler.internal.units.CompilationUnitBase.access$3(CompilationUnitBase.java:864)
> 	at org.apache.flex.compiler.internal.units.CompilationUnitBase$3$1.call(CompilationUnitBase.java:309)
> 	at org.apache.flex.compiler.internal.units.CompilationUnitBase$3$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)

--
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