Hello,
I have successfully installed GN 2.4.2 on a Linux server running in Tomcat 6.0.18 container with PostgreSQL database. I am, for reasons connected with other webapps running in the same container, running my own copy of Geoserver - I have changed Intermap's mapServers.xml file to reflect this. On a fresh restart of Tomcat, GN behaves perfectly - I can log in as administrator, save metadata, and do everything I would expect. The logs (geonetwork.log and catalina.out) show no errors.
However, after a period of time (not sure how long but measured in hours) with no GN activity (but activity of other web apps in the same container, including Geoserver), even requesting the home page hangs. Trying again does at least produce some output but only to say "Requested operation could not be performed" and "NullPointerException". This can be reliably demonstrated by doing a fresh restart last thing before I go home, and then requesting the home page first thing when I return in the morning. Looking at the logs, I see this kind of thing:
66574730 [http-194.66.5.13-8080-15] INFO jeeves.request - ==========================================================
66574804 [http-194.66.5.13-8080-15] INFO jeeves.request - HTML Request (from 194.66.0.154) : /geonetwork/srv/en/main.home
66574804 [http-194.66.5.13-8080-15] DEBUG jeeves.request - Method : GET
66574804 [http-194.66.5.13-8080-15] DEBUG jeeves.request - Content type : null
66574804 [http-194.66.5.13-8080-15] DEBUG jeeves.request - Accept : text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
66574804 [http-194.66.5.13-8080-15] DEBUG jeeves.request - Session id is C7EE1A4103751273BFFE679EA08CE436
66574804 [http-194.66.5.13-8080-15] DEBUG jeeves.request - Session created for client : 194.66.0.154
66574805 [http-194.66.5.13-8080-15] INFO jeeves.service - Dispatching : main.home
66574805 [http-194.66.5.13-8080-15] DEBUG jeeves.service - -> no input parameters
66574805 [http-194.66.5.13-8080-15] INFO jeeves.service - -> dispatching to output for : main.home
WARNING: transformerfactory doesnt like saxon attributes!
SystemId Unknown; Line #22; Column #71; Could not find function: tokenize
SystemId Unknown; Line #22; Column #71; function token not found.
(Location of error unknown)java.lang.NullPointerException
3097158 [http-194.66.5.13-8080-3] ERROR jeeves.service - -> exception during transformation for : main.home
3097158 [http-194.66.5.13-8080-3] ERROR jeeves.service - -> (C) stylesheet : /data/web/webapps/geonetwork/web/geonetwork/xsl/main-page.xsl
3097158 [http-194.66.5.13-8080-3] ERROR jeeves.service - -> (C) message : null
3097158 [http-194.66.5.13-8080-3] ERROR jeeves.service - -> (C) exception : NullPointerException
3097163 [http-194.66.5.13-8080-3] DEBUG jeeves.service - Raised exception while executing service
<error id="error">
<message />
<class>NullPointerException</class>
<stack>
<at class="jeeves.utils.Xml" file="Xml.java" line="243" method="transform" />
<at class="jeeves.utils.Xml" file="Xml.java" line="204" method="transform" />
<at class="jeeves.server.dispatchers.ServiceManager" file="ServiceManager.java" line="678" method="dispatchOutput" />
<at class="jeeves.server.dispatchers.ServiceManager" file="ServiceManager.java" line="383" method="dispatch" />
<at class="jeeves.server.JeevesEngine" file="JeevesEngine.java" line="622" method="dispatch" />
<at class="jeeves.server.sources.http.JeevesServlet" file="JeevesServlet.java" line="175" method="execute" />
<at class="jeeves.server.sources.http.JeevesServlet" file="JeevesServlet.java" line="90" method="doGet" />
<at class="javax.servlet.http.HttpServlet" file="HttpServlet.java" line="617" method="service" />
<at class="javax.servlet.http.HttpServlet" file="HttpServlet.java" line="718" method="service" />
<at class="org.apache.catalina.core.ApplicationFilterChain" file="ApplicationFilterChain.java" line="290" method="internalDoFilter" />
</stack>
<request>
<language>en</language>
<service>main.home</service>
</request>
<response />
</error>
The first failure is at the line about TransformerFactory. I have read that this message may mean that GN is trying to use the Xalan XSLT processor rather than Saxon. I have changed the file javax.xml.transform.TransformerFactory in geonetwork/web/geonetwork/WEB-INF/classes/META-INF/services to contain net.sf.saxon.TransformerFactoryImpl rather than the original value (which wasn't Xalan either, and gave the same problems). I've changed the equivalent file for Intermap too, cleared out all the Catalina work directories and restarted Tomcat a number of times, but I still get the same behaviour.
I am at a loss to interpret this behaviour, as I can't see what could have changed to provoke it. Once GN is in this state there is no way I can make it work again except by restarting Tomcat.
Java options are:
-Djava.awt.headless=true -server -Xms1000m -Xmx1000m -Xss64m -d64 -Dfile.encoding=UTF-8
JVM is
Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
BEA JRockit(R) (build R27.6.0-50_o-100423-1.6.0_05-20080626-2104-linux-x86_64, compiled mode)
Thanks in advance for any insight on this one!
David Herbert
British Antarctic Survey.
Example of log when GN is working:
3454909 [http-194.66.5.13-8080-2] INFO jeeves.request - ==========================================================
3454913 [http-194.66.5.13-8080-2] INFO jeeves.request - HTML Request (from 194.66.0.154) : /geonetwork/srv/en/main.home
3454913 [http-194.66.5.13-8080-2] DEBUG jeeves.request - Method : GET
3454913 [http-194.66.5.13-8080-2] DEBUG jeeves.request - Content type : null
3454913 [http-194.66.5.13-8080-2] DEBUG jeeves.request - Accept : text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
3455000 [http-194.66.5.13-8080-2] DEBUG jeeves.request - Session id is 2DD6990882EFF8B22F84FE88F1BA3D6A
3455004 [http-194.66.5.13-8080-2] DEBUG jeeves.request - Session created for client : 194.66.0.154
3455532 [http-194.66.5.13-8080-2] INFO jeeves.service - Dispatching : main.home
3455533 [http-194.66.5.13-8080-2] DEBUG jeeves.service - -> no input parameters
3455621 [http-194.66.5.13-8080-2] INFO jeeves.service - -> dispatching to output for : main.home
3476982 [http-194.66.5.13-8080-2] INFO jeeves.service - -> transforming with stylesheet : /data/web/webapps/geonetwork/web/geonetwork/xsl/main-page.xsl
Recoverable error
XTRE0540: Ambiguous rule match for /
Matches both "document-node()" on line 13 of
file:/data/web/webapps/geonetwork/web/geonetwork/xsl/main-page.xsl
and "document-node()" on line 34 of file:/data/web/webapps/geonetwork/web/geonetwork/xsl/main.xsl
3479168 [http-194.66.5.13-8080-2] INFO jeeves.service - -> end transformation for : main.home
3479168 [http-194.66.5.13-8080-2] INFO jeeves.service - -> output ended for : main.home
3479168 [http-194.66.5.13-8080-2] INFO jeeves.service - -> dispatch ended for : main.home
Update: SETTING DEFAULT CONTEXT
CREATING VERSION V100 with string '1.0.0
CREATING VERSION V110 with string '1.1.0
CREATING VERSION V111 with string '1.1.1
CREATING VERSION V130 with string '1.3.0
No valid bbox found
---(986ms)--> ENDED HTTP request to http://www2.demis.nl/WMS/wms.ashx?wms=WorldMap&&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&LAYERS=Borders&SRS=EPSG:4326&BBOX=-180.0,-90.0,180.0,90.0&WIDTH=200&HEIGHT=100&FORMAT=image/png&TRANSPARENT=TRUE&STYLES=
---(986ms)--> ENDED HTTP request to http://www2.demis.nl/WMS/wms.ashx?wms=WorldMap&&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&LAYERS=Coastlines&SRS=EPSG:4326&BBOX=-180.0,-90.0,180.0,90.0&WIDTH=200&HEIGHT=100&FORMAT=image/png&TRANSPARENT=TRUE&STYLES=
imagePath: /data/web/webapps/geonetwork/web/intermap/tmp/temp49480.tmp
3497074 [http-194.66.5.13-8080-2] INFO jeeves.request - ==========================================================
3497074 [http-194.66.5.13-8080-2] INFO jeeves.request - HTML Request (from 194.66.0.154) : /geonetwork/srv/en/user.login
3497074 [http-194.66.5.13-8080-2] DEBUG jeeves.request - Method : POST
3497074 [http-194.66.5.13-8080-2] DEBUG jeeves.request - Content type : application/x-www-form-urlencoded
3497074 [http-194.66.5.13-8080-2] DEBUG jeeves.request - Accept : text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
3497074 [http-194.66.5.13-8080-2] DEBUG jeeves.request - Session id is 2DD6990882EFF8B22F84FE88F1BA3D6A
3497097 [http-194.66.5.13-8080-2] INFO jeeves.service - Dispatching : user.login
3497097 [http-194.66.5.13-8080-2] DEBUG jeeves.service - -> parameters are :
<request>
<password>magic123</password>
<username>admin</username>
</request>
3497183 [http-194.66.5.13-8080-2] INFO user.login - User 'admin' logged in as 'Administrator'
3497184 [http-194.66.5.13-8080-2] INFO jeeves.service - -> dispatching to output for : user.login
3497184 [http-194.66.5.13-8080-2] INFO jeeves.service - -> forwarding to : main.home
3497185 [http-194.66.5.13-8080-2] INFO jeeves.service - Dispatching : main.home
3497185 [http-194.66.5.13-8080-2] DEBUG jeeves.service - -> parameters are :
<request>
<forward service="user.login" />
</request>
3497185 [http-194.66.5.13-8080-2] INFO jeeves.service - -> dispatching to output for : main.home
3497742 [http-194.66.5.13-8080-2] INFO jeeves.service - -> transforming with stylesheet : /data/web/webapps/geonetwork/web/geonetwork/xsl/main-page.xsl
Recoverable error
XTRE0540: Ambiguous rule match for /
Matches both "document-node()" on line 13 of
file:/data/web/webapps/geonetwork/web/geonetwork/xsl/main-page.xsl
and "document-node()" on line 34 of file:/data/web/webapps/geonetwork/web/geonetwork/xsl/main.xsl
3498785 [http-194.66.5.13-8080-2] INFO jeeves.service - -> end transformation for : main.home
3498785 [http-194.66.5.13-8080-2] INFO jeeves.service - -> output ended for : main.home
3498785 [http-194.66.5.13-8080-2] INFO jeeves.service - -> dispatch ended for : main.home
No valid bbox found
imagePath: /data/web/webapps/geonetwork/web/intermap/tmp/temp49481.tmp
3526527 [http-194.66.5.13-8080-5] INFO jeeves.request - ==========================================================
3526527 [http-194.66.5.13-8080-5] INFO jeeves.request - HTML Request (from 194.66.0.154) : /geonetwork/srv/en/main.search.embedded
3526527 [http-194.66.5.13-8080-5] DEBUG jeeves.request - Method : GET
3526527 [http-194.66.5.13-8080-5] DEBUG jeeves.request - Content type : null
3526527 [http-194.66.5.13-8080-5] DEBUG jeeves.request - Accept : text/javascript, text/html, application/xml, text/xml, */*
3526527 [http-194.66.5.13-8080-5] DEBUG jeeves.request - Session id is 2DD6990882EFF8B22F84FE88F1BA3D6A
3526527 [http-194.66.5.13-8080-5] INFO jeeves.service - Dispatching : main.search.embedded
3526528 [http-194.66.5.13-8080-5] DEBUG jeeves.service - -> parameters are :
<request>
<category>datasets</category>
</request>
3526697 [http-194.66.5.13-8080-5] INFO search.embedded - Creating searchers
3527700 [http-194.66.5.13-8080-5] INFO search.embedded - Getting summary
3527701 [http-194.66.5.13-8080-5] INFO jeeves.service - -> dispatching to output for : main.search.embedded
3527702 [http-194.66.5.13-8080-5] INFO jeeves.service - -> forwarding to : main.present.embedded
3527702 [http-194.66.5.13-8080-5] INFO jeeves.service - Dispatching : main.present.embedded
3527702 [http-194.66.5.13-8080-5] DEBUG jeeves.service - -> parameters are :
<request>
<summary count="0" type="local">
<keywords />
</summary>
<forward service="main.search.embedded" />
</request>
3527745 [http-194.66.5.13-8080-5] INFO jeeves.service - -> dispatching to output for : main.present.embedded
3527921 [http-194.66.5.13-8080-5] INFO jeeves.service - -> transforming with stylesheet : /data/web/webapps/geonetwork/web/geonetwork/xsl/search-results-xhtml.xsl
3528355 [http-194.66.5.13-8080-5] INFO jeeves.service - -> end transformation for : main.present.embedded
3528355 [http-194.66.5.13-8080-5] INFO jeeves.service - -> output ended for : main.present.embedded
3528355 [http-194.66.5.13-8080-5] INFO jeeves.service - -> dispatch ended for : main.present.embedded
3549767 [http-194.66.5.13-8080-1] INFO jeeves.request - ==========================================================
3549767 [http-194.66.5.13-8080-1] INFO jeeves.request - HTML Request (from 194.66.0.154) : /geonetwork/srv/en/main.home
3549767 [http-194.66.5.13-8080-1] DEBUG jeeves.request - Method : GET
3549767 [http-194.66.5.13-8080-1] DEBUG jeeves.request - Content type : null
3549767 [http-194.66.5.13-8080-1] DEBUG jeeves.request - Accept : text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
3549767 [http-194.66.5.13-8080-1] DEBUG jeeves.request - Session id is 2DD6990882EFF8B22F84FE88F1BA3D6A
3549768 [http-194.66.5.13-8080-1] INFO jeeves.service - Dispatching : main.home
3549768 [http-194.66.5.13-8080-1] DEBUG jeeves.service - -> no input parameters
3549768 [http-194.66.5.13-8080-1] INFO jeeves.service - -> dispatching to output for : main.home
3550229 [http-194.66.5.13-8080-1] INFO jeeves.service - -> transforming with stylesheet : /data/web/webapps/geonetwork/web/geonetwork/xsl/main-page.xsl
Recoverable error
XTRE0540: Ambiguous rule match for /
Matches both "document-node()" on line 13 of
file:/data/web/webapps/geonetwork/web/geonetwork/xsl/main-page.xsl
and "document-node()" on line 34 of file:/data/web/webapps/geonetwork/web/geonetwork/xsl/main.xsl
3550842 [http-194.66.5.13-8080-1] INFO jeeves.service - -> end transformation for : main.home
3550843 [http-194.66.5.13-8080-1] INFO jeeves.service - -> output ended for : main.home
3550843 [http-194.66.5.13-8080-1] INFO jeeves.service - -> dispatch ended for : main.home