<Swing Dev> JSplitPane / heavyweight vs. lightweight components

Christopher Deckers chrriis at gmail.com
Tue Jan 17 20:47:30 UTC 2012


Hi Alex,

>>> Does this means there is going to be some work in JDK 8 so that the
>>> smart invalidation becomes the default?
>
> I wish we could have turned it on by default,
> but it caused regressions in the users' code
> so we made it optional to preserve the backward compatibility

User's code is broken whenever it is not on and native components are
used. It is hard to figure out this property.

When I upgraded our codebase to Java 7  (at work), I had issues at
certain places (empty arrays were returned instead of nulls for
example) but I was happy to fix those places and have the newest Java
and more importantly a more coherent logic of the runtime. Are you
implying that these new behaviors are regressions and should have had
corresponding properties to be active
(-Djava.awt.emptyArraysInsteadOfNull=true)?

Are there so many regressions that it outweighs the benefits of having
smart invalidation by default? Why not have a
"-Djava.awt.dumbInvalidate=true" for those regressions instead?

Note that this topic is of interest for me because I ship a library
that contains native components. I am sure that I will occasionaly
lose time and effort with users before finding out dumb invalidation
was the culprit.

Cheers,
-Christopher



More information about the swing-dev mailing list