Hi Roman,
Speaking of boundaries, 2 points I would like to add:
- We don't bend the Java specs to prevent System.exit() from exiting, we
only install a SecurityManager. That is natural, because I don't want
users of the demos to mess with my server. For example, if you open a
file dialog in the demo, without the SecurityManager, users would be
able to modify files on my server. Or terminate the VM. All of which I
don't want.
- I noticed that L&F is not set in an AppContext like everything else in
Swing that would otherwise be a static/global field. This has the funny
effect that when one user in the demo that I linked sets a different
L&F, it gets shared to all users, current and future. Very funny.
However, I have my doubt if that is reasonable behavior, even in more
normal desktop/applet settings. Wouldn't there be a chance of unwanted
interference between apps in different appcontexts? Even potential
security problems? I guess I could design a malicious L&F that could
exploit the fact that it gets leaked to other AppContexts to do bad
things (not sure how though, but the fact that it's leaked out sounds a
bit scary).
About the last point. Take a look at the UIManager#setLookAndFeel method
implementation: it uses AppContext actually... Do you have an example
that shows the problem?
Regards, Pavel
Roman
Am Mittwoch, den 24.08.2011, 16:26 +0400 schrieb Pavel Porvatov:
Hi Neugens,
The vm doesn't terminate.
One VM to rule them all: the instances are separated via the
appcontext, but there is just one server vm running.
I'm not sure that's correct behavior. According to javadoc of
java.lang.System#exit: "Terminates the currently running Java Virtual
Machine.".
Regards, Pavel
Cheers,
Mario
--
Sent from HTC Desire...
pgp key: http://subkeys.pgp.net/ PGP Key ID: 80F240CF
Fingerprint: BA39 9666 94EC 8B73 27FA FC7C 4086 63E3 80F2 40CF
http://www.icedrobot.org
Proud GNU Classpath developer: http://www.classpath.org/
Read About us at: http://planet.classpath.org
OpenJDK: http://openjdk.java.net/projects/caciocavallo/
Please, support open standards:
http://endsoftpatents.org/
----- Reply message -----
Da: "Pavel Porvatov"<[email protected]>
Data: mer, ago 24, 2011 12:57
Oggetto:<Swing Dev> Is the following code supposed to leak?
A: "Clemens Eisserer"<[email protected]>
Cc:<[email protected]>
Hi Clemens,
Hi Pavel,
In common case you shouldn't remove listeners of course. But
in
your case you must remove listeners because of editor is
shared
between all JTextComponents (see javadoc of the
JTextComponent#getActions method and BasicTextUI#getEditorKit
implementation). So you added listeners not to a
JTextComponent
instance, but to the shared editor.
Thanks a lot for clarification, I wasn't sure this behaviour is
intended :/
Seems I have to adopt the jfc-demo Notepad to not leak memory
when
running on caciocavallo-web ;)
I took a look at the Notepad demo and didn't find any problems. It
adds
listeners only when the demo starts and there is no need to remove
listeners, because the demo closes via System.exit(0). Could you
please
explain how did you get memory leak in the demo?
Regards, Pavel