On 3/19/2015 3:53 PM, Laurent Bourgès wrote:
> One important functional issue that I think we should address early
on is that there are a number of property references in
MarlinRenderingEngine and MarlinConst that I don't think are protected
by AccessController doPrivileged blocks. These pieces of code cannot be
run inside an applet or any context managed by a SecurityManager as
access to arbitrary system properties is one of the first things to be
disabled by security managers. I'd recommend addressing that early on -
your call as to whether you want to address it before the first push.
I understand it can be a problem but for me applets are legacy... Anyway
could you give me a code pattern to use... to properly get System
properties in that secure environment.
Look at the source for
java.awt.GraphicsEnvironment.getHeadlessProperty(). It's much more
complicated than your needs, but it shows the way to wrap some code in a
doPrivileged block.
I'd recommend moving all of the getProperty() calls into a single static
initialization block (in the Const class for instance), wrapped in a
single doPrivileged() block which then sets static booleans to the
indicated values so that you don't have to fire up a doPrivileged()
block every time anyone calls any of those methods. The methods in the
Const class then just become getters for the saved booleans.
> - There are a number of single-line "/** short comment */" style
comments sprinkled around. They aren't really doc comments since they
don't contain all of the parts that one would expect in a doc comment.
They should probably just be shortened to a regular comment (/* ... */),
and any that are embedded in a class talking about a field could just as
easily be a single-line comment format (// ...), but having them pretend
to be doc comments (with the "/**") seems to be overkill.
Ok I will take care. Could you indicate some of them?
I pulled up the patch file (from the top of the webrev index page) and
just used a regex search for "[/][*][*].*[*][/]". Lots of lines, but
they appear to be grouped in just a few new blocks of new code.
I agree some long lines remain but we have very large displays in 2015,
don't you ?
Yes, but they aren't all large enough to hold 2 pages of text side by
side if the lines get too long. Pull up the sdiffs of the webrev and
notice that you have to scroll side to side to review the changes on
some of your files (unless you have a really wide screen, but many of us
work on laptops so 2x80 characters is comfortable and as you get much
wider then you need to start scrolling side to side - 2x100 is iffy).
In particular, the sdiff of Renderer.java in your last patch overflows
the width of my retina MBP screen by about 25-30% mostly because of long
lines in the "new" version.
(I'll note that with your changes, Dasher.java was actually improved -
it just barely doesn't overflow that same screen because you shortened
some of the old lines that were in there from previous fixes - thanks!)
...jim