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.