I’d be more than happy to do that ☺ Ideally at a bar at the beach with a nice selection of hops-smoothys ;-)
But for now, assuming you are using IntelliJ and Maven: All I do, is select “clean” and “install” in the maven tab, right-click and select “debug”. Additionally in the debugger tab, I click on “edit-breakpoints” and add a new “Java Exception Breakpoint” and define the class “java.lang.NullPointerException”. Then the execution will halt exactly where a NullPointerException is thrown. But beware … there might be quite a number of NPEs to step though. Chris Am 06.03.17, 15:56 schrieb "Harbs" <harbs.li...@gmail.com>: > When building with Maven it’s simple (I just click the “debug” button of my maven build). No Idea how to do that with Ant though. No idea what this even means. ;-) I’d really like to sit down with you while we’re in Miami and see how you are setup to work on the compiler. I really wish I was more capable of debugging this stuff… :-( > On Mar 6, 2017, at 4:19 PM, Christofer Dutz <christofer.d...@c-ware.de> wrote: > > Hi Harbs, > > Having a look at that part of the code: > > ASScope pkgScope = scope; > while (!(pkgScope instanceof PackageScope)) > pkgScope = pkgScope.getContainingScope(); <!—This is where it goes BOOM > String[] imports = pkgScope.getImports(); > > It seems the scope is null (unfortunately if pkgScope is null it is not of type PackageScope and satisfies the loop condition. Inside the loop everything goes BOOM then. > > Unfortunately, these NPEs make it very difficult to see what’s the real problem. In these cases, I usually set a NullPointerException breakpoint and have a look at what’s happening in the moment it explodes. > When building with Maven it’s simple (I just click the “debug” button of my maven build). No Idea how to do that with Ant though. > > Chris > > > > > Am 06.03.17, 15:01 schrieb "Harbs" <harbs.li...@gmail.com>: > > Anyone have an idea what this error might be? > > [compc] /Users/harbs/Documents/git/PrintUI/printui-flexjs/text_engine/frameworks/tlf/src/org/apache/flex/textLayout/container/TextContainerManager.as Error: Internal error in ABC generator subsystem, when generating code for: /Users/harbs/Documents/git/PrintUI/printui-flexjs/text_engine/frameworks/tlf/src/org/apache/flex/textLayout/container/TextContainerManager.as: java.lang.NullPointerException > [compc] at org.apache.flex.compiler.internal.projects.FlexProject.doubleCheckAmbiguousDefinition(FlexProject.java:2152) > [compc] at org.apache.flex.compiler.internal.scopes.ASScopeCache.findProperty(ASScopeCache.java:173) > [compc] at org.apache.flex.compiler.internal.scopes.ASScope.findProperty(ASScope.java:1428) > [compc] at org.apache.flex.compiler.internal.definitions.references.LexicalReference.resolve(LexicalReference.java:71) > [compc] at org.apache.flex.compiler.internal.definitions.DefinitionBase.resolveType(DefinitionBase.java:1054) > [compc] at org.apache.flex.compiler.internal.definitions.DefinitionBase.resolveType(DefinitionBase.java:1094) > [compc] at org.apache.flex.compiler.internal.definitions.DefinitionBase.resolveType(DefinitionBase.java:876) > [compc] at org.apache.flex.compiler.internal.as.codegen.ClassDirectiveProcessor.declareVariable(ClassDirectiveProcessor.java:1166) > [compc] at org.apache.flex.compiler.internal.as.codegen.DirectiveProcessor.processNode(DirectiveProcessor.java:226) > [compc] at org.apache.flex.compiler.internal.as.codegen.DirectiveProcessor.traverse(DirectiveProcessor.java:188) > [compc] at org.apache.flex.compiler.internal.as.codegen.GlobalDirectiveProcessor.declareClass(GlobalDirectiveProcessor.java:429) > [compc] at org.apache.flex.compiler.internal.as.codegen.DirectiveProcessor.processNode(DirectiveProcessor.java:206) > [compc] at org.apache.flex.compiler.internal.as.codegen.DirectiveProcessor.traverse(DirectiveProcessor.java:188) > [compc] at org.apache.flex.compiler.internal.as.codegen.ABCGenerator.generate(ABCGenerator.java:122) > [compc] at org.apache.flex.compiler.internal.units.ASCompilationUnit.handleABCBytesRequest(ASCompilationUnit.java:389) > [compc] at org.apache.flex.compiler.internal.units.CompilationUnitBase.processABCBytesRequest(CompilationUnitBase.java:873) > [compc] at org.apache.flex.compiler.internal.units.CompilationUnitBase.access$300(CompilationUnitBase.java:108) > [compc] at org.apache.flex.compiler.internal.units.CompilationUnitBase$4$1.call(CompilationUnitBase.java:310) > [compc] at org.apache.flex.compiler.internal.units.CompilationUnitBase$4$1.call(CompilationUnitBase.java:306) > [compc] at org.apache.flex.compiler.internal.units.requests.RequestMaker$1.call(RequestMaker.java:228) > [compc] at org.apache.flex.compiler.internal.units.requests.RequestMaker$1.call(RequestMaker.java:222) > [compc] at java.util.concurrent.FutureTask.run(FutureTask.java:266) > [compc] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > [compc] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > [compc] at java.lang.Thread.run(Thread.java:745) > > If I would have to guess, it would be coming from this code: > public override function dispatchEvent(event:Event):Boolean > { > if (event.type == DamageEvent.DAMAGE) > { > _textDamaged = true; > if (_composeState == COMPOSE_FACTORY) > _damaged = true; > } > else if (event.type == FlowOperationEvent.FLOW_OPERATION_BEGIN) > { > //TODO fix mouseChildren > // if (_container.mouseChildren == false) > // _container.mouseChildren = true; > } > var result:Boolean = super.dispatchEvent(event); > if (!result) > event.preventDefault(); > return result; > } > > > >