Change hqm-20101004-JXi by [email protected] on 2010-10-04 19:14:13 EDT
    in /Users/hqm/openlaszlo/trunk-clean
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: fix for "lzc --runtime=swf10 does not print compiler warnings if Flex 
back-end has an error"

New Features:

Bugs Fixed: LPP-9400

Technical Reviewer: ptw
QA Reviewer: max
Doc Reviewer: (pending)

Documentation:

Release Notes:

Overview:
    

Details:

CompilationError.java:
Main.java:
It turns out that a CompilationError has a
vector of auxiliary errors that it owns, which are used to record
compilation warnings. And when Compiler.compile catches a fatal error,
it helpfully attaches any accumlated warnings to it and throws it
again.

I added a toPlainText() method CompilationError which returns a
string made from the main error message plus the warnings (analogous
to the existing CompilationError.toXML() method that is used to
display warnings in the dev-console)  lzc (Main.java) calls this
method when it catches a CompilationError from the compiler.


cm/CompilationManager.java:
cache/Cache.java:
sc/SWF9External.java:
compiler/LibraryCompiler.java:
compiler/ObjectWriter.java:
compiler/DHTMLWriter.java:
compiler/SWFWriter.java:
compiler/FileResolver.java:
compiler/Compiler.java:
compiler/Main.java:
compiler/SWF9Writer.java:
compiler/CompilationError.java:
compiler/Parser.java:
compiler/CompilerMediaCache.java:

I discovered that a newer version of log4j has a "TRACE" level, which
is intended for finer grain logging. we have way too much info that
gets printed in mLogger.DEBUG level, making it much less useful for a
lot of debugging. I updated to a newer log4j jar file, and changed a
lot of the logger.debug() calls to logger.trace().

I made the flex compiler status output messages into mLogger.debug()
level, so now if you compile "lzc --runtime=swf10", you don't get all
the extraneous flex compiler command line debugging info. You but can
still view it by calling lzc -ldebug --runtime=swf10

"lzc -ltrace" will show all the stuff that debug level used to log



Tests:

compile this with lzc in swf10

<canvas>
  <view >
    <attribute name="bar" type="number"/>
    <method name="broken" returns="String">
      // Then forget to return a string
    </method>
    <view name="bar" />
  </view>
</canvas> 

you should see the fatal flex error printed PLUS the LZX compiler warnings

  lzc --runtime=swf10 test/lpp-9400.lzx
  Compiling: test/lpp-9400.lzx to lpp-9400.swf10.swf
  compiler output is Loading configuration file 
/Users/hqm/openlaszlo/trunk-clean/WEB-INF/frameworks/flex-config.xml
  Compilation errors occurred:
  org.openlaszlo.sc.CompilerError: test/lpp-9400.lzx: 4: Error: Function does 
not return a value, in line: static var displayName = "<anonymous 
extends='view'>";static var children = [{attrs: {name: "bar"}, "class": 
LzView}];static var attributes = new LzInheritedHash(LzView.attributes);var 
bar;function broken ():String {}
  test/lpp-9400.lzx:8:24: element view has the same name="bar" attribute as a 
sibling element at test/lpp-9400.lzx:4:42
  test/lpp-9400.lzx:8:24: an attribute or method named 'bar' already is defined 
on element view



Files:
M       WEB-INF/lps/server/src/org/openlaszlo/cm/CompilationManager.java
M       WEB-INF/lps/server/src/org/openlaszlo/cache/Cache.java
M       WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9External.java
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/LibraryCompiler.java
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/ObjectWriter.java
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/DHTMLWriter.java
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/SWFWriter.java
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/FileResolver.java
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/Compiler.java
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/Main.java
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/SWF9Writer.java
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationError.java
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/Parser.java
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilerMediaCache.java


Changeset: http://svn.openlaszlo.org/openlaszlo/patches/hqm-20101004-JXi.tar

Reply via email to