Hi,
today I was trying out a KML generation and was greeted by the following
error:
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2882)
at
java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
at
java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)
at java.lang.StringBuffer.append(StringBuffer.java:224)
at java.io.StringWriter.write(StringWriter.java:84)
at
com.vividsolutions.jts.io.WKTWriter.appendCoordinate(WKTWriter.java:508)
at
com.vividsolutions.jts.io.WKTWriter.appendLineStringText(WKTWriter.java:581)
at
com.vividsolutions.jts.io.WKTWriter.appendPolygonText(WKTWriter.java:603)
at
com.vividsolutions.jts.io.WKTWriter.appendMultiPolygonText(WKTWriter.java:691)
at
com.vividsolutions.jts.io.WKTWriter.appendMultiPolygonTaggedText(WKTWriter.java:437)
at
com.vividsolutions.jts.io.WKTWriter.appendGeometryTaggedText(WKTWriter.java:327)
at
com.vividsolutions.jts.io.WKTWriter.writeFormatted(WKTWriter.java:291)
at com.vividsolutions.jts.io.WKTWriter.write(WKTWriter.java:226)
at com.vividsolutions.jts.geom.Geometry.toText(Geometry.java:947)
at com.vividsolutions.jts.geom.Geometry.toString(Geometry.java:935)
at java.lang.String.valueOf(String.java:2827)
at
org.geoserver.template.FeatureWrapper.wrapValue(FeatureWrapper.java:116)
at org.geoserver.template.FeatureWrapper.wrap(FeatureWrapper.java:169)
at
freemarker.template.Template.createProcessingEnvironment(Template.java:351)
at freemarker.template.Template.process(Template.java:232)
at
org.vfny.geoserver.wms.responses.featureInfo.FeatureTemplate.execute(FeatureTemplate.java:265)
at
org.vfny.geoserver.wms.responses.featureInfo.FeatureTemplate.title(FeatureTemplate.java:150)
at
org.vfny.geoserver.wms.responses.featureInfo.FeatureTemplate.title(FeatureTemplate.java:177)
at
org.vfny.geoserver.wms.responses.map.kml.KMLVectorTransformer$KMLTranslator.encodePlacemarkName(KMLVectorTransformer.java:694)
at
org.vfny.geoserver.wms.responses.map.kml.KMLVectorTransformer$KMLTranslator.encodePlacemark(KMLVectorTransformer.java:633)
at
org.vfny.geoserver.wms.responses.map.kml.KMLVectorTransformer$KMLTranslator.encode(KMLVectorTransformer.java:300)
at
org.vfny.geoserver.wms.responses.map.kml.KMLVectorTransformer$KMLTranslator.encode(KMLVectorTransformer.java:271)
at
org.vfny.geoserver.wms.responses.map.kml.KMLVectorTransformer$KMLTranslator.encode(KMLVectorTransformer.java:243)
at
org.vfny.geoserver.wms.responses.map.kml.KMLTransformer$KMLTranslator.encodeVectorLayer(KMLTransformer.java:208)
at
org.vfny.geoserver.wms.responses.map.kml.KMLTransformer$KMLTranslator.encode(KMLTransformer.java:155)
at
org.geotools.xml.transform.TransformerBase$XMLReaderSupport.parse(TransformerBase.java:702)
at
org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:484)
19 mar 11:28:58 INFO [geoserver.filters] - 127.0.0.1 "GET
/geoserver/wms?service=WMS&request=GetMap&forma
Now, how many times you do include the Geometry WKT in the placemark
name? :)
When this does not trigger an OOM, for sure it slows down a lot KML
generation since that WKT conversion is not needed.
Wondering, is there any way to lazily wrap a Feature so that we incur
in the translation cost only if a certain field is accessed?
(think also features with a ton of fields and the like...)
Cheers
Andrea
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel