[Source] XJ3D issues

Felipe Bacim fbacim at vt.edu
Tue Jun 8 11:32:47 PDT 2010


*
Does anyone know any workaround for these two issues that I posted 2 weeks
ago? Has anyone else experienced the same problems described here?

Second issue
*
The second issue I'm having is with the replaceWorld function, just exactly
as described in http://www.web3d.org/message_boards/viewtopic.php?f=7&t=1353
 and http://bugzilla.xj3d.org/show_bug.cgi?id=616. Even though the topic and
the bug report only talk about adding nodes, with the most recent revision
I'm not being able to do anything, even when I just try to get a root node
and change some field. The only solution I could find for this is to dispose
the window and use a new x3dBrowser instance, which is far from ideal. This
happens AFTER the second time I use the replaceWorld function. With the
older version I was using, a 2007 snapshot, this problem didn't exist.


*Third issue
*
The last issue I have is that, in addition to all that was described above,
the replaceWorld() function seems to have serious memory leak issues. The
.java source in http://dl.dropbox.com/u/2103745/MemoryLeakTest.zip exemplifies
this problem by loading an x3d file every time you press a button. Its going
from ~170mb up to ~680mb by just loading the same x3d file over and over
again. I'm not sure if its an issue with xj3d or with java but it gets even
worse when using this function in an application that loads x3d files all
the time. However, this does not generates any errors, and despite high
memory usage, the application seems to keep working just fine no matter how
many times I call replaceWorld. This changes when I register listeners to
nodes in the scene every time I load an x3d; then I get an OutOfMemoryError.
I guess one possible solution for this would be to remove the event
listeners before calling replaceWorld, but just using the
removeX3DEventListener function doesn't seem to solve the problem. Perhaps
that's the function that is generating the error? Anyway, both versions of
xj3d that I used to date have this issue (2007 snapshot and latest revision
in the svn).


Note: I'm using the same object for all listeners and that the events are
not being generated. This problem happens even when I just register
listeners to nodes, so this shouldn't be a problem with my code considering
also that everything works just fine when I don't register listeners.

Felipe

On Fri, May 28, 2010 at 12:13 PM, Felipe Bacim <fbacim at vt.edu> wrote:

> Terry,
>
> Thanks, that makes sense. I guess I skipped that part of the "How to
> Install" doc. I didn't even think about classpath issues because the errors
> were not pointing in any particular direction and, as I have all
> library dependencies in the lib directory, I just assumed it was being set
> by the makefile or something like that.
>
> Felipe
>
> On Fri, May 28, 2010 at 1:54 AM, Norbraten, Terry <tdnorbra at nps.edu>wrote:
>
>>  Felipe,
>>
>>     I can tell you that I ran into similar build problems in the past.
>>  What you have to do is set up your environment ahead of time (before
>> compile) and the easiest way that I’ve found to do this (I also build on
>> Mac) is to first “source xj3d_profile” on the command line.
>>
>>     You’ll have to modify the enclosed xj3d_profile to suite your build
>> set up, but it works.  The Xj3D doc “How to Install” talks about
>> Environmental set up where you modify your bashrc file with pretty much the
>> same elements of the xj3d_profile, however, not many may want to permanently
>> do this with their bashrc.
>>
>>     The reason ErrorReporter never compiled is that it depends on a third
>> party jar: j3d-org-all_1.0.0.jar which you have discovered to set in your
>> classpath with your javac call with the –extdirs switch.  So, now you have
>> two ways to ensure your environment is setup.
>>
>>     The other issue will have to be addressed by others.
>>
>> Cheers,
>>
>> Terry
>>
>>
>>
>> On 5/27/10 3:02 PM, "Felipe Bacim" <fbacim at vt.edu> wrote:
>>
>> Hi all,
>>
>> I'm writing to the list to report a few issues I'm having with the xj3d
>> libraries, the first one being related to the code available in the svn and
>> the other ones to the replaceWorld function.
>>
>> *First issue
>> *
>> First, my build environment is Mac OS 10.6.3, JDK 1.6.0_17. I'm having
>> serious issues using the Makefile provided, more specifically when I do
>> "make ogl". All errors (or most of, since this is from 2008) can be seen in
>> this webpage: http://www.vrspace.org/~joe/xj3d/Xj3D-linux-howto.html.
>> This guy used Fedora 8, JDK 1.6.0_06, so I'm guessing this is not a problem
>> exclusive to Mac OS. The problem is that the java compiler can't seem to
>> find reference to classes that are in the same directory.
>> One example of this is this very first error that I got:
>> Building directory src/java/org/web3d/util/
>>
>>
>> Compiling ErrorReporter.java
>> Compiling DefaultErrorReporter.java
>>
>>
>> src/java/org/web3d/util/DefaultErrorReporter.java:32: cannot find symbol
>> symbol: class ErrorReporter
>>
>>
>> public class DefaultErrorReporter implements ErrorReporter {
>>                                              ^
>>
>>
>> Anyway, as described in that webpage, the solution is pretty simple. Every
>> time this error occurs, just do
>>
>>
>> javac -d classes -extdirs lib src/java/org/web3d/util/*.java
>> and everything is compiled without errors. Well, since with the most
>> recent revision in the svn the number of times this happens is even greater
>> than what is described in that webpage, I've decided to write a python app
>> that, when executed from the trunk directory, parses the Makefile-opengl
>> file to find the directory build order, and opens the Makefile on each one
>> of the directories to find what files need to be compiled. The output is a
>> bash script that is doing all the necessary make steps and compiling
>> everything before "make ogl-jar" is called. This may seem like an overkill
>> and may not be the best workaround for this issue, but to me it seemed
>> easier to write the parser (it took me less than 20 minutes to write it)
>> than to keep my eyes on the compilation process or to go through the
>> Makefiles and find what is causing this with a library that is so big.
>> Anyway, I'm now able to compile everything without a problem. If anyone is
>> interested in either the Python parser or the bash script, just let me know
>> and I will post them here.
>>
>>
>>
>> *Second issue
>> *
>> The second issue I'm having is with the replaceWorld function, just
>> exactly as described in
>> http://www.web3d.org/message_boards/viewtopic.php?f=7&t=1353 and
>> http://bugzilla.xj3d.org/show_bug.cgi?id=616. Even though the topic and
>> the bug report only talk about adding nodes, with the most recent revision
>> I'm not being able to do anything, even when I just try to get a root node
>> and change some field. The only solution I could find for this is to dispose
>> the window and use a new x3dBrowser instance, which is far from ideal. This
>> happens AFTER the second time I use the replaceWorld function. With the
>> older version I was using, a 2007 snapshot, this problem didn't exist.
>>
>>
>>
>> *Third issue
>> *
>> The last issue I have is that, in addition to all that was described
>> above, the replaceWorld() function seems to have serious memory leak issues.
>> The .java source in http://dl.dropbox.com/u/2103745/MemoryLeakTest.zipexemplifies this problem by loading an x3d file every time you press a
>> button. Its going from ~170mb up to ~680mb by just loading the same x3d file
>> over and over again. I'm not sure if its an issue with xj3d or with java but
>> it gets even worse when using this function in an application that loads x3d
>> files all the time. However, this does not generates any errors, and despite
>> high memory usage, the application seems to keep working just fine no matter
>> how many times I call replaceWorld. This changes when I register listeners
>> to nodes in the scene every time I load an x3d; then I get an
>> OutOfMemoryError. I guess one possible solution for this would be to remove
>> the event listeners before calling replaceWorld, but just using the
>> removeX3DEventListener function doesn't seem to solve the problem. Perhaps
>> that's the function that is generating the error? Anyway, both versions of
>> xj3d that I used to date have this issue (2007 snapshot and latest revision
>> in the svn).
>>
>>
>> Note: I'm using the same object for all listeners and that the events are
>> not being generated. This problem happens even when I just register
>> listeners to nodes, so this shouldn't be a problem with my code considering
>> also that everything works just fine when I don't register listeners.
>>
>>
>>
>> If anyone knows of a snapshot version on which these issues don't exist,
>> please let me know.
>>
>> Best regards,
>> Felipe Bacim
>>
>> ------------------------------
>> _______________________________________________
>> Source mailing list
>> Source at web3d.org
>> http://web3d.org/mailman/listinfo/source_web3d.org
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/mailman/private/source_web3d.org/attachments/20100608/a82b702b/attachment.html>


More information about the Source mailing list