Re: [MAVEN DISTRIBUTION] getting the Ant and Maven aligned

2021-03-11 Thread Piotr Zarzycki
Hey Chris,

Unfortunately I cannot share with you code of that project, unless by
library you mean distribution which I have generated using your branches.

I will have to double check, but I'm sure that I have rebuild everything
using your branches.

Thanks,
Piotr

czw., 11 mar 2021 o 21:47 Christofer Dutz 
napisał(a):

> Hi Poitr,
>
> You re-built the compiler and then the framework (both in my branch and
> including distribution)?
>
> Would you be able to share the library so I could try on my side?
>
> Chris
>
> -Ursprüngliche Nachricht-
> Von: Piotr Zarzycki 
> Gesendet: Donnerstag, 11. März 2021 15:43
> An: Apache Royale Development 
> Betreff: Re: [MAVEN DISTRIBUTION] getting the Ant and Maven aligned
>
> Hi Chris,
>
> I have tested it with your changes and I'm getting same issue:
>
> Exception in thread "main" java.lang.NoClassDefFoundError:
> org/apache/commons/lang/StringEscapeUtils
> : at
>
> org.apache.royale.compiler.internal.codegen.js.jx.LiteralEmitter.emit(LiteralEmitter.java:225)
> : at
>
> org.apache.royale.compiler.internal.codegen.js.royale.JSRoyaleEmitter.emitLiteral(JSRoyaleEmitter.java:1040)
> : at
> org.apache.royale.compiler.internal.codegen.as
> .ASBlockWalker.visitLiteral(ASBlockWalker.java:479)
> : at
> org.apache.royale.compiler.internal.visitor.as
> .ASNodeSwitch.handle(ASNodeSwitch.java:373)
> : at
> org.apache.royale.compiler.internal.visitor.as
> .ASNodeHandler.handle(ASNodeHandler.java:85)
> : at
> org.apache.royale.compiler.internal.visitor.as
> .BeforeAfterStrategy.handle(BeforeAfterStrategy.java:110)
> : at
> org.apache.royale.compiler.internal.codegen.as
> .ASBlockWalker.walk(ASBlockWalker.java:159)
> : at
>
> org.apache.royale.compiler.internal.codegen.js.goog.JSGoogEmitter.emitAssignedValue(JSGoogEmitter.java:965)
> : at
>
> org.apache.royale.compiler.internal.codegen.js.JSEmitter.emitAssignmentCoercion(JSEmitter.java:917)
> : at
>
> org.apache.royale.compiler.internal.codegen.js.royale.JSRoyaleEmitter.emitAssignmentCoercion(JSRoyaleEmitter.java:1558)
> : at
>
> org.apache.royale.compiler.internal.codegen.js.jx.FunctionCallArgumentsEmitter.emitContents(FunctionCallArgumentsEmitter.java:103)
> : at
>
> org.apache.royale.compiler.internal.codegen.js.jx.FunctionCallArgumentsEmitter.emit(FunctionCallArgumentsEmitter.java:50)
> :
> : at
>
> org.apache.royale.compiler.internal.codegen.js.jx.FunctionCallArgumentsEmitter.emit(FunctionCallArgumentsEmitter.java:35)
> : at
>
> org.apache.royale.compiler.internal.codegen.js.JSEmitter.emitArguments(JSEmitter.java:259)
> : at
>
> org.apache.royale.compiler.internal.codegen.js.royale.JSRoyaleEmitter.emitArguments(JSRoyaleEmitter.java:986)
> : at
>
> org.apache.royale.compiler.internal.codegen.js.jx.FunctionCallEmitter.emit(FunctionCallEmitter.java:693)
> : at
>
> org.apache.royale.compiler.internal.codegen.js.royale.JSRoyaleEmitter.emitFunctionCall(JSRoyaleEmitter.java:906)
> : at
> org.apache.royale.compiler.internal.codegen.as
> .ASBlockWalker.visitFunctionCall(ASBlockWalker.java:330)
> : at
> org.apache.royale.compiler.internal.visitor.as
> .ASNodeSwitch.handle(ASNodeSwitch.java:207)
> : at
> org.apache.royale.compiler.internal.visitor.as
> .ASNodeHandler.handle(ASNodeHandler.java:85)
> : at
> org.apache.royale.compiler.internal.visitor.as
> .BeforeAfterStrategy.handle(BeforeAfterStrategy.java:110)
> : at
> org.apache.royale.compiler.internal.codegen.as
> .ASBlockWalker.walk(ASBlockWalker.java:159)
> : at
>
> org.apache.royale.compiler.internal.codegen.js.goog.JSGoogEmitter.emitAssignedValue(JSGoogEmitter.java:965)
> : at
>
> org.apache.royale.compiler.internal.codegen.js.JSEmitter.emitAssignmentCoercion(JSEmitter.java:917)
> : at
>
> org.apache.royale.compiler.internal.codegen.js.royale.JSRoyaleEmitter.emitAssignmentCoercion(JSRoyaleEmitter.java:1558)
> : at
>
> org.apache.royale.compiler.internal.codegen.js.jx.BinaryOperatorEmitter.super_emitBinaryOperator(BinaryOperatorEmitter.java:598)
> : at
>
> org.apache.royale.compiler.internal.codegen.js.jx.BinaryOperatorEmitter.emit(BinaryOperatorEmitter.java:500)
> : at
>
> org.apache.royale.compiler.internal.codegen.js.royale.JSRoyaleEmitter.emitBinaryOperator(JSRoyaleEmitter.java:1028)
> : at
> org.apache.royale.compiler.internal.codegen.as
> .ASBlockWalker.visitBinaryOperator(ASBlockWalker.java:538)
> : at
> org.apache.royale.compiler.internal.visitor.as
> .ASNodeSwitch.handle(ASNodeSwitch.java:348)
> : at
> org.apache.royale.compiler.internal.visitor.as
> .ASNodeHandler.handle(ASNodeHandler.java:85)
> : at
> org.apache.royale.compiler.internal.visitor.as
> .BeforeAfterStrategy.handle(BeforeAfterStrategy.java:110)
> : at
> org.apache.royale.compiler.internal.codegen.as
> .ASBlockWalker.walk(ASBlockWalker.java:159)
> : at
>
> org.apache.royale.compiler.internal.codegen.js.jx.StatementEmitter.emit(StatementEmitter.java:40)
> : at
>
> org.apache.royale.compiler.internal.codegen.js.jx.StatementEmitter.emit(StatementEmitter.java:29)
> : at
>
> 

AW: [MAVEN DISTRIBUTION] getting the Ant and Maven aligned

2021-03-11 Thread Christofer Dutz
Hi Poitr,

You re-built the compiler and then the framework (both in my branch and 
including distribution)?

Would you be able to share the library so I could try on my side?

Chris

-Ursprüngliche Nachricht-
Von: Piotr Zarzycki  
Gesendet: Donnerstag, 11. März 2021 15:43
An: Apache Royale Development 
Betreff: Re: [MAVEN DISTRIBUTION] getting the Ant and Maven aligned

Hi Chris,

I have tested it with your changes and I'm getting same issue:

Exception in thread "main" java.lang.NoClassDefFoundError:
org/apache/commons/lang/StringEscapeUtils
: at
org.apache.royale.compiler.internal.codegen.js.jx.LiteralEmitter.emit(LiteralEmitter.java:225)
: at
org.apache.royale.compiler.internal.codegen.js.royale.JSRoyaleEmitter.emitLiteral(JSRoyaleEmitter.java:1040)
: at
org.apache.royale.compiler.internal.codegen.as.ASBlockWalker.visitLiteral(ASBlockWalker.java:479)
: at
org.apache.royale.compiler.internal.visitor.as.ASNodeSwitch.handle(ASNodeSwitch.java:373)
: at
org.apache.royale.compiler.internal.visitor.as.ASNodeHandler.handle(ASNodeHandler.java:85)
: at
org.apache.royale.compiler.internal.visitor.as.BeforeAfterStrategy.handle(BeforeAfterStrategy.java:110)
: at
org.apache.royale.compiler.internal.codegen.as.ASBlockWalker.walk(ASBlockWalker.java:159)
: at
org.apache.royale.compiler.internal.codegen.js.goog.JSGoogEmitter.emitAssignedValue(JSGoogEmitter.java:965)
: at
org.apache.royale.compiler.internal.codegen.js.JSEmitter.emitAssignmentCoercion(JSEmitter.java:917)
: at
org.apache.royale.compiler.internal.codegen.js.royale.JSRoyaleEmitter.emitAssignmentCoercion(JSRoyaleEmitter.java:1558)
: at
org.apache.royale.compiler.internal.codegen.js.jx.FunctionCallArgumentsEmitter.emitContents(FunctionCallArgumentsEmitter.java:103)
: at
org.apache.royale.compiler.internal.codegen.js.jx.FunctionCallArgumentsEmitter.emit(FunctionCallArgumentsEmitter.java:50)
:
: at
org.apache.royale.compiler.internal.codegen.js.jx.FunctionCallArgumentsEmitter.emit(FunctionCallArgumentsEmitter.java:35)
: at
org.apache.royale.compiler.internal.codegen.js.JSEmitter.emitArguments(JSEmitter.java:259)
: at
org.apache.royale.compiler.internal.codegen.js.royale.JSRoyaleEmitter.emitArguments(JSRoyaleEmitter.java:986)
: at
org.apache.royale.compiler.internal.codegen.js.jx.FunctionCallEmitter.emit(FunctionCallEmitter.java:693)
: at
org.apache.royale.compiler.internal.codegen.js.royale.JSRoyaleEmitter.emitFunctionCall(JSRoyaleEmitter.java:906)
: at
org.apache.royale.compiler.internal.codegen.as.ASBlockWalker.visitFunctionCall(ASBlockWalker.java:330)
: at
org.apache.royale.compiler.internal.visitor.as.ASNodeSwitch.handle(ASNodeSwitch.java:207)
: at
org.apache.royale.compiler.internal.visitor.as.ASNodeHandler.handle(ASNodeHandler.java:85)
: at
org.apache.royale.compiler.internal.visitor.as.BeforeAfterStrategy.handle(BeforeAfterStrategy.java:110)
: at
org.apache.royale.compiler.internal.codegen.as.ASBlockWalker.walk(ASBlockWalker.java:159)
: at
org.apache.royale.compiler.internal.codegen.js.goog.JSGoogEmitter.emitAssignedValue(JSGoogEmitter.java:965)
: at
org.apache.royale.compiler.internal.codegen.js.JSEmitter.emitAssignmentCoercion(JSEmitter.java:917)
: at
org.apache.royale.compiler.internal.codegen.js.royale.JSRoyaleEmitter.emitAssignmentCoercion(JSRoyaleEmitter.java:1558)
: at
org.apache.royale.compiler.internal.codegen.js.jx.BinaryOperatorEmitter.super_emitBinaryOperator(BinaryOperatorEmitter.java:598)
: at
org.apache.royale.compiler.internal.codegen.js.jx.BinaryOperatorEmitter.emit(BinaryOperatorEmitter.java:500)
: at
org.apache.royale.compiler.internal.codegen.js.royale.JSRoyaleEmitter.emitBinaryOperator(JSRoyaleEmitter.java:1028)
: at
org.apache.royale.compiler.internal.codegen.as.ASBlockWalker.visitBinaryOperator(ASBlockWalker.java:538)
: at
org.apache.royale.compiler.internal.visitor.as.ASNodeSwitch.handle(ASNodeSwitch.java:348)
: at
org.apache.royale.compiler.internal.visitor.as.ASNodeHandler.handle(ASNodeHandler.java:85)
: at
org.apache.royale.compiler.internal.visitor.as.BeforeAfterStrategy.handle(BeforeAfterStrategy.java:110)
: at
org.apache.royale.compiler.internal.codegen.as.ASBlockWalker.walk(ASBlockWalker.java:159)
: at
org.apache.royale.compiler.internal.codegen.js.jx.StatementEmitter.emit(StatementEmitter.java:40)
: at
org.apache.royale.compiler.internal.codegen.js.jx.StatementEmitter.emit(StatementEmitter.java:29)
: at
org.apache.royale.compiler.internal.codegen.js.JSEmitter.emitStatement(JSEmitter.java:349)
: at
org.apache.royale.compiler.internal.codegen.js.royale.JSRoyaleEmitter.emitStatement(JSRoyaleEmitter.java:1204)
: at
org.apache.royale.compiler.internal.codegen.as.ASBlockWalker.visitBlock(ASBlockWalker.java:349)
: at
org.apache.royale.compiler.internal.visitor.as.ASNodeSwitch.handle(ASNodeSwitch.java:278)
: at
org.apache.royale.compiler.internal.visitor.as.ASNodeHandler.handle(ASNodeHandler.java:85)
: at
org.apache.royale.compiler.internal.visitor.as.BeforeAfterStrategy.handle(BeforeAfterStrategy.java:110)
: at

RE: [EXTERNAL] Re: Royale & NPE Behavior

2021-03-11 Thread Brian Raymes
The null pointer in this case is in the framework, not my code. I am using 
VSCode, pausing on exceptions is enabled, as well as pausing on uncaught 
exceptions.

The problem is, no exception is thrown. No error exists. Rendering just stops 
for whatever component encounters the NP.

To see what I'm talking about, try creating a VirtualList (jewel) without a 
ListPresentationModel. It will not render at all due to the NP. No errors, no 
exceptions.

Perhaps my first email was a bit misleading because I kept using NPE, when 
really it's NPs without the E.

I've noticed this same behavior within my own code. It's as is something is 
catching these and suppressing them.

The following will show my issue:










-Original Message-
From: Yishay Weiss  
Sent: Thursday, March 11, 2021 4:21 AM
To: dev@royale.apache.org
Subject: [EXTERNAL] Re: Royale & NPE Behavior

You got:

>Without, the code will throw a null pointer exception resulting in an empty 
>list being displayed.

And you expect:

>Bare minimum, it would be nice to at least see an uncaught exception with the 
>debugger.

Can you explain the difference? If what you need is for the debugger to halt 
execution with a stack trace, then you can switch on 'pause on exceptions' in 
the dev tools. I must be missing something...

From: Brian Raymes 
Sent: Wednesday, March 10, 2021 7:16 PM
To: dev@royale.apache.org 
Subject: Royale & NPE Behavior

Hi all,

I've been noticing a problem with Royale that I think is time to bring up with 
the greater audience.

What is the expected behavior when encountering an NPE within a Royale 
application? I've notice that NPEs seem to break the UI with no notice of any 
kind.

For example, I recently started trying out VirtualLists. For quite some time, I 
could not figure out why they would not render any of my data. It turns out, 
Virtual list requires the bead ListPresentationModel with a non-null rowHeight. 
This is due to VirtualListVerticalLayout's layout method assuming the existence 
of an IListPresentationModel. Without, the code will throw a null pointer 
exception resulting in an empty list being displayed.

The problem I want to highlight is that as a developer, without diving through 
the framework code, and ultimately guessing on trying various things 
beforehand, there was no way for me to know that happened. There is no console 
log output stating the error, no uncaught exception for the debugger to catch, 
and no visible reasoning for what is occurring.

Is this the expected behavior, or can this be improved? I've wasted a 
surprising amount of time chasing these issues in the past year while working 
with Royale.

Bare minimum, it would be nice to at least see an uncaught exception with the 
debugger.

Brian



Re: [MAVEN DISTRIBUTION] getting the Ant and Maven aligned

2021-03-11 Thread Piotr Zarzycki
Hi Chris,

I have tested it with your changes and I'm getting same issue:

Exception in thread "main" java.lang.NoClassDefFoundError:
org/apache/commons/lang/StringEscapeUtils
: at
org.apache.royale.compiler.internal.codegen.js.jx.LiteralEmitter.emit(LiteralEmitter.java:225)
: at
org.apache.royale.compiler.internal.codegen.js.royale.JSRoyaleEmitter.emitLiteral(JSRoyaleEmitter.java:1040)
: at
org.apache.royale.compiler.internal.codegen.as.ASBlockWalker.visitLiteral(ASBlockWalker.java:479)
: at
org.apache.royale.compiler.internal.visitor.as.ASNodeSwitch.handle(ASNodeSwitch.java:373)
: at
org.apache.royale.compiler.internal.visitor.as.ASNodeHandler.handle(ASNodeHandler.java:85)
: at
org.apache.royale.compiler.internal.visitor.as.BeforeAfterStrategy.handle(BeforeAfterStrategy.java:110)
: at
org.apache.royale.compiler.internal.codegen.as.ASBlockWalker.walk(ASBlockWalker.java:159)
: at
org.apache.royale.compiler.internal.codegen.js.goog.JSGoogEmitter.emitAssignedValue(JSGoogEmitter.java:965)
: at
org.apache.royale.compiler.internal.codegen.js.JSEmitter.emitAssignmentCoercion(JSEmitter.java:917)
: at
org.apache.royale.compiler.internal.codegen.js.royale.JSRoyaleEmitter.emitAssignmentCoercion(JSRoyaleEmitter.java:1558)
: at
org.apache.royale.compiler.internal.codegen.js.jx.FunctionCallArgumentsEmitter.emitContents(FunctionCallArgumentsEmitter.java:103)
: at
org.apache.royale.compiler.internal.codegen.js.jx.FunctionCallArgumentsEmitter.emit(FunctionCallArgumentsEmitter.java:50)
:
: at
org.apache.royale.compiler.internal.codegen.js.jx.FunctionCallArgumentsEmitter.emit(FunctionCallArgumentsEmitter.java:35)
: at
org.apache.royale.compiler.internal.codegen.js.JSEmitter.emitArguments(JSEmitter.java:259)
: at
org.apache.royale.compiler.internal.codegen.js.royale.JSRoyaleEmitter.emitArguments(JSRoyaleEmitter.java:986)
: at
org.apache.royale.compiler.internal.codegen.js.jx.FunctionCallEmitter.emit(FunctionCallEmitter.java:693)
: at
org.apache.royale.compiler.internal.codegen.js.royale.JSRoyaleEmitter.emitFunctionCall(JSRoyaleEmitter.java:906)
: at
org.apache.royale.compiler.internal.codegen.as.ASBlockWalker.visitFunctionCall(ASBlockWalker.java:330)
: at
org.apache.royale.compiler.internal.visitor.as.ASNodeSwitch.handle(ASNodeSwitch.java:207)
: at
org.apache.royale.compiler.internal.visitor.as.ASNodeHandler.handle(ASNodeHandler.java:85)
: at
org.apache.royale.compiler.internal.visitor.as.BeforeAfterStrategy.handle(BeforeAfterStrategy.java:110)
: at
org.apache.royale.compiler.internal.codegen.as.ASBlockWalker.walk(ASBlockWalker.java:159)
: at
org.apache.royale.compiler.internal.codegen.js.goog.JSGoogEmitter.emitAssignedValue(JSGoogEmitter.java:965)
: at
org.apache.royale.compiler.internal.codegen.js.JSEmitter.emitAssignmentCoercion(JSEmitter.java:917)
: at
org.apache.royale.compiler.internal.codegen.js.royale.JSRoyaleEmitter.emitAssignmentCoercion(JSRoyaleEmitter.java:1558)
: at
org.apache.royale.compiler.internal.codegen.js.jx.BinaryOperatorEmitter.super_emitBinaryOperator(BinaryOperatorEmitter.java:598)
: at
org.apache.royale.compiler.internal.codegen.js.jx.BinaryOperatorEmitter.emit(BinaryOperatorEmitter.java:500)
: at
org.apache.royale.compiler.internal.codegen.js.royale.JSRoyaleEmitter.emitBinaryOperator(JSRoyaleEmitter.java:1028)
: at
org.apache.royale.compiler.internal.codegen.as.ASBlockWalker.visitBinaryOperator(ASBlockWalker.java:538)
: at
org.apache.royale.compiler.internal.visitor.as.ASNodeSwitch.handle(ASNodeSwitch.java:348)
: at
org.apache.royale.compiler.internal.visitor.as.ASNodeHandler.handle(ASNodeHandler.java:85)
: at
org.apache.royale.compiler.internal.visitor.as.BeforeAfterStrategy.handle(BeforeAfterStrategy.java:110)
: at
org.apache.royale.compiler.internal.codegen.as.ASBlockWalker.walk(ASBlockWalker.java:159)
: at
org.apache.royale.compiler.internal.codegen.js.jx.StatementEmitter.emit(StatementEmitter.java:40)
: at
org.apache.royale.compiler.internal.codegen.js.jx.StatementEmitter.emit(StatementEmitter.java:29)
: at
org.apache.royale.compiler.internal.codegen.js.JSEmitter.emitStatement(JSEmitter.java:349)
: at
org.apache.royale.compiler.internal.codegen.js.royale.JSRoyaleEmitter.emitStatement(JSRoyaleEmitter.java:1204)
: at
org.apache.royale.compiler.internal.codegen.as.ASBlockWalker.visitBlock(ASBlockWalker.java:349)
: at
org.apache.royale.compiler.internal.visitor.as.ASNodeSwitch.handle(ASNodeSwitch.java:278)
: at
org.apache.royale.compiler.internal.visitor.as.ASNodeHandler.handle(ASNodeHandler.java:85)
: at
org.apache.royale.compiler.internal.visitor.as.BeforeAfterStrategy.handle(BeforeAfterStrategy.java:110)
: at
org.apache.royale.compiler.internal.codegen.as.ASBlockWalker.walk(ASBlockWalker.java:159)
: at
org.apache.royale.compiler.internal.codegen.as.ASEmitter.emitMethodScope(ASEmitter.java:830)
: at
org.apache.royale.compiler.internal.codegen.js.jx.MethodEmitter.emit(MethodEmitter.java:160)
: at

Re: Royale & NPE Behavior

2021-03-11 Thread Yishay Weiss
You got:

>Without, the code will throw a null pointer exception resulting in an empty 
>list being displayed.

And you expect:

>Bare minimum, it would be nice to at least see an uncaught exception with the 
>debugger.

Can you explain the difference? If what you need is for the debugger to halt 
execution with a stack trace, then you can switch on 'pause on exceptions' in 
the dev tools. I must be missing something...

From: Brian Raymes 
Sent: Wednesday, March 10, 2021 7:16 PM
To: dev@royale.apache.org 
Subject: Royale & NPE Behavior

Hi all,

I've been noticing a problem with Royale that I think is time to bring up with 
the greater audience.

What is the expected behavior when encountering an NPE within a Royale 
application? I've notice that NPEs seem to break the UI with no notice of any 
kind.

For example, I recently started trying out VirtualLists. For quite some time, I 
could not figure out why they would not render any of my data. It turns out, 
Virtual list requires the bead ListPresentationModel with a non-null rowHeight. 
This is due to VirtualListVerticalLayout's layout method assuming the existence 
of an IListPresentationModel. Without, the code will throw a null pointer 
exception resulting in an empty list being displayed.

The problem I want to highlight is that as a developer, without diving through 
the framework code, and ultimately guessing on trying various things 
beforehand, there was no way for me to know that happened. There is no console 
log output stating the error, no uncaught exception for the debugger to catch, 
and no visible reasoning for what is occurring.

Is this the expected behavior, or can this be improved? I've wasted a 
surprising amount of time chasing these issues in the past year while working 
with Royale.

Bare minimum, it would be nice to at least see an uncaught exception with the 
debugger.

Brian