Agreed, we need to do something smarter. Ah freemarker "model" classes are interfaces are they not... so it should be pretty easy to implement TemplateHashModel to back directly onto a feature, instead of copying everything from the feature into a SimpleHash.
Andrea Aime wrote: > 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 > > !DSPAM:4007,47e0ec35320931336712104! > ------------------------------------------------------------------------- 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
