[GeoNetwork-devel] what specifically is it about JVM 1.5+ ?

I have fixed (?!) the problem that prevented Geonetwork running under JVM
1.6. In summary, I was using JVM 1.6 (a beta), and Jeroen suggested that my
problem may be due to a tightening of XSL standards between JVM versions
(since similar problems were found in earlier JVM upgrades).

Not having time to test/fix this myself, I've gone ahead and tested and
fixed it(!!)... the error I was getting was a cyclic definition of the
'geonetUri' variable. I tracked this down to the file metadata-utils.xsl,
and found an interesting "this is a hack" comment. More particularly,
there's initialisation of the geonetUri variable from a variable that is
defined in a nested block inside the variable definition itself.

Figuring this was probably a "used before defined" type of error, I moved
the nested variable definition outside and before the geoNetUri variable,
and I have found that I can now run GeoNetwork OK using JVM 1.6. So this
was definitely THE problem that was causing my system not to run. Now I
don't know if I've broken anything else, but thought I'd post this to the
list so that others can comment.

Here's the replacement code for metadata-utils.xsl

  <!--
  hack to extract geonet URI; I know, I could have used a string
constant like
  <xsl:variable name="geonetUri"
select="'http://www.fao.org/geonetwork’"/>
  but this is more interesting
  -->

  <!--ad-->
  <xsl:variable name="geonetNodeSet"><geonet:dummy/></xsl:variable>

  <xsl:variable name="geonetUri">
    <!--ad <xsl:variable
name="geonetNodeSet"><geonet:dummy/></xsl:variable>-->
    <xsl:value-of
select="namespace-uri(xalan:nodeset($geonetNodeSet)/*)"/>
  </xsl:variable>

I moved the variable definition of 'geonetNodeSet' to before the definition
of geonetUri, and commented out the definition inside geonetUri.

Cheers
A
--
Andrew Davie
Geometry.