Clearing Java Objects

My code uses Java objects that I created and provide to ML in a .jar file.
After my code terminates, I try to run "clear java" and I get a message back that some of my objects still exist and Java cannot be cleared:
Warning: Objects of Param/TableCellRenderer class exist - not clearing java Warning: Objects of Param/RowHeaderRenderer class exist - not clearing java
How can I clear these objects? The only way that I have found is to restart ML. Not fun when co-developing between ML and Java.

3 Comments

The documentation suggests "If any Java objects exist outside the workspace (for example, in user data or persistent variables in a locked code file), clear issues a warning and does not remove the Java class definition." - is this the case with your Java class?
Hi Kaustubha,
No, that's not the case. As and experiment, I removed my .jar file from the Java dynamic class path and added it to the static class path by modifying classpath.txt and re-starting Matlab. Guess what...the problem went away. So, this problem lies in the fact that ML is not properly de-referencing java objects on the dynamic classpath. Or, some aspect of my .java code is causing it not to be properly de-referenced when it's on the dynamic classpath. I have other java objects that don't have this problem and work fine on the dynamic path. Can anyone shed some light on why this might be. Thanks.
Interesting problem. You might want to consider contacting Tech Support to see if they've seen this before.

Sign in to comment.

Answers (1)

Joseph Burgel
Joseph Burgel on 28 Jun 2011

2 votes

As an experiment, I removed my .jar file from the Java dynamic class path and added it to the static class path by modifying classpath.txt and re-starting Matlab. Guess what...the problem went away. So, this problem lies in the fact that ML is not properly de-referencing java objects on the dynamic classpath. Or, some aspect of my .java code is causing it not to be properly de-referenced when it's on the dynamic classpath. I have other java objects that don't have this problem and work fine on the dynamic path.

Asked:

on 21 Jun 2011

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!