I finished my first test. For it was the correct solution to check for 
getClassLoader==null, then getSystemClassLoader, I
found out that it was not good to change that code line (only) in DeployerDesc.java, 
as I please Philippe to do for this
test: For getClassLoader is the problem and not DeploymentDesc, this is the wrong 
location for the solution. I scanned the
source code and found that there are the following lines that have to be changed 
instead:


Necessary Changes:

1) EJBServiceImpl.java (I have not noticed the line number; it's in the addBeans 
method, near after the comments "// Loads
the specific EJBHome class". Just seek for "getClassLoader" and you'll find.

2) JBeanSession.java (238)

3) JEntityHome.java (202)

4) DeploymentDesc.java (222)


Nice to have changed:

5) DeployerMenuBar.java (173)



The solution is clear: This four (five) lines have to be changed in a manner that 
.getClassLoader() has to be checked for
==null, and if it is null, ClassLoader.getSystemClassLoader() has to be used. I did 
not find that
ClassLoader.getSystemClassLoader() could be or was ==null in any case, so it's up to 
you if you check that for null, too, or
not (it's an academic question of seeking for failures that may not rise if a JVM is 
well done in accordance to J2SDK DOC).

I think, with this four (five) lines changed, there is no need to do the test in 
DeploymentDesc.java line 73, as Philippe
Did, because in that case classLoader cannot be ==null, because the source of that 
reference is in DeploymentDesc.java line
222, and THERE it should be solved as I wrote above.

It's clear that this bug is NOT a Novell bug as Philippe wrote in the source comments 
in DeploymentDesc.java line 73, but it
is a misunderstanding of the J2SDK DOCs: javadocs for java.lang.Class clearly tell 
that Class.getClassLoader may be null what
means that the ClassLoader of this class is the SystemClassLoader, so it is quite the 
best solution to fix it as I wrote
above: if it is null, get the SystemClassLoader. This solution, suggested by Philippe, 
is quite correct, but only it has to
be done at the different places I pointed out above and NOT in that place Philippe did 
for this test only.

Ok, with this small change I made JOnAS 2.2.4 run the SB example without any problem 
on Novell NetWare 5! Even if I did not
try the eb example (I will do this after my break), I think you can change your home 
page and add "Novell NetWare 5" to the
list of running platforms. :-)

I would please you to do this changes so that this contribution will be in the next 
release of JOnAS. As I described, there
is no problem for the other platforms, since it is only additional to what JOnAS did 
in the past AND it is quite what J2SDK
DOCs wants us to do.

Thank you, and especially Philippe for your engagement in this case! :-)
Markus

Reply via email to