Mercurial > dive4elements > gnv-client
comparison gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/horizontalcrosssection/HorizontalCrossSectionMeshOutputState.java @ 829:95733e564896
Bugfix: Put some Code that is responsible for Synchonization into the final-block to prevent that the lock is not released.
gnv-artifacts/trunk@923 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Tue, 13 Apr 2010 14:26:21 +0000 |
parents | bb7afd783321 |
children | 2423cefe7d39 |
comparison
equal
deleted
inserted
replaced
828:28028979c813 | 829:95733e564896 |
---|---|
1 package de.intevation.gnv.state.profile.horizontalcrosssection; | 1 package de.intevation.gnv.state.profile.horizontalcrosssection; |
2 | |
3 import java.awt.Dimension; | |
4 import java.io.File; | |
5 import java.io.IOException; | |
6 import java.io.OutputStream; | |
7 import java.util.ArrayList; | |
8 import java.util.Collection; | |
9 import java.util.Date; | |
10 import java.util.HashMap; | |
11 import java.util.List; | |
12 import java.util.Map; | |
13 | |
14 import org.apache.log4j.Logger; | |
15 import org.w3c.dom.Document; | |
16 import org.w3c.dom.Element; | |
17 import org.w3c.dom.Node; | |
2 | 18 |
3 import com.vividsolutions.jts.geom.Coordinate; | 19 import com.vividsolutions.jts.geom.Coordinate; |
4 import com.vividsolutions.jts.geom.Envelope; | 20 import com.vividsolutions.jts.geom.Envelope; |
5 import com.vividsolutions.jts.geom.MultiLineString; | 21 import com.vividsolutions.jts.geom.MultiLineString; |
6 import com.vividsolutions.jts.geom.MultiPolygon; | 22 import com.vividsolutions.jts.geom.MultiPolygon; |
7 import com.vividsolutions.jts.geom.Polygon; | 23 import com.vividsolutions.jts.geom.Polygon; |
8 | 24 |
9 import de.intevation.artifactdatabase.Config; | 25 import de.intevation.artifactdatabase.Config; |
10 import de.intevation.artifactdatabase.XMLUtils; | 26 import de.intevation.artifactdatabase.XMLUtils; |
11 | |
12 import de.intevation.artifacts.ArtifactNamespaceContext; | 27 import de.intevation.artifacts.ArtifactNamespaceContext; |
13 import de.intevation.artifacts.CallContext; | 28 import de.intevation.artifacts.CallContext; |
14 | |
15 import de.intevation.gnv.artifacts.cache.CacheFactory; | 29 import de.intevation.gnv.artifacts.cache.CacheFactory; |
16 | |
17 import de.intevation.gnv.artifacts.context.GNVArtifactContext; | 30 import de.intevation.gnv.artifacts.context.GNVArtifactContext; |
18 | |
19 import de.intevation.gnv.geobackend.base.Result; | 31 import de.intevation.gnv.geobackend.base.Result; |
20 import de.intevation.gnv.geobackend.base.ResultDescriptor; | 32 import de.intevation.gnv.geobackend.base.ResultDescriptor; |
21 | |
22 import de.intevation.gnv.geobackend.base.query.QueryExecutor; | 33 import de.intevation.gnv.geobackend.base.query.QueryExecutor; |
23 import de.intevation.gnv.geobackend.base.query.QueryExecutorFactory; | 34 import de.intevation.gnv.geobackend.base.query.QueryExecutorFactory; |
24 | |
25 import de.intevation.gnv.geobackend.base.query.exception.QueryException; | 35 import de.intevation.gnv.geobackend.base.query.exception.QueryException; |
26 | |
27 import de.intevation.gnv.geobackend.sde.datasources.RasterObject; | 36 import de.intevation.gnv.geobackend.sde.datasources.RasterObject; |
28 | |
29 import de.intevation.gnv.math.AreaInterpolation; | 37 import de.intevation.gnv.math.AreaInterpolation; |
30 import de.intevation.gnv.math.AttributedPoint2ds; | 38 import de.intevation.gnv.math.AttributedPoint2ds; |
31 import de.intevation.gnv.math.Point2d; | 39 import de.intevation.gnv.math.Point2d; |
32 import de.intevation.gnv.math.QueriedXYDepth; | 40 import de.intevation.gnv.math.QueriedXYDepth; |
33 | |
34 import de.intevation.gnv.raster.ExternalIndexConverter; | 41 import de.intevation.gnv.raster.ExternalIndexConverter; |
35 import de.intevation.gnv.raster.IsoAttributeGenerator; | 42 import de.intevation.gnv.raster.IsoAttributeGenerator; |
36 import de.intevation.gnv.raster.JTSMultiLineStringProducer; | 43 import de.intevation.gnv.raster.JTSMultiLineStringProducer; |
37 import de.intevation.gnv.raster.JTSMultiPolygonProducer; | 44 import de.intevation.gnv.raster.JTSMultiPolygonProducer; |
38 import de.intevation.gnv.raster.Palette; | 45 import de.intevation.gnv.raster.Palette; |
39 import de.intevation.gnv.raster.PaletteManager; | 46 import de.intevation.gnv.raster.PaletteManager; |
40 import de.intevation.gnv.raster.Raster; | 47 import de.intevation.gnv.raster.Raster; |
41 import de.intevation.gnv.raster.Vectorizer; | 48 import de.intevation.gnv.raster.Vectorizer; |
42 | |
43 import de.intevation.gnv.state.InputData; | 49 import de.intevation.gnv.state.InputData; |
44 import de.intevation.gnv.state.OutputStateBase; | 50 import de.intevation.gnv.state.OutputStateBase; |
45 | |
46 import de.intevation.gnv.state.exception.StateException; | 51 import de.intevation.gnv.state.exception.StateException; |
47 | |
48 import de.intevation.gnv.utils.ExclusiveExec; | 52 import de.intevation.gnv.utils.ExclusiveExec; |
49 import de.intevation.gnv.utils.FileUtils; | 53 import de.intevation.gnv.utils.FileUtils; |
50 import de.intevation.gnv.utils.MapfileGenerator; | 54 import de.intevation.gnv.utils.MapfileGenerator; |
51 import de.intevation.gnv.utils.MetaWriter; | 55 import de.intevation.gnv.utils.MetaWriter; |
52 import de.intevation.gnv.utils.Pair; | 56 import de.intevation.gnv.utils.Pair; |
53 import de.intevation.gnv.utils.ShapeFileWriter; | 57 import de.intevation.gnv.utils.ShapeFileWriter; |
54 import de.intevation.gnv.utils.StringUtils; | 58 import de.intevation.gnv.utils.StringUtils; |
55 import de.intevation.gnv.utils.WKTUtils; | 59 import de.intevation.gnv.utils.WKTUtils; |
56 | |
57 import java.awt.Dimension; | |
58 | |
59 import java.io.File; | |
60 import java.io.IOException; | |
61 import java.io.OutputStream; | |
62 | |
63 import java.util.ArrayList; | |
64 import java.util.Collection; | |
65 import java.util.Date; | |
66 import java.util.HashMap; | |
67 import java.util.List; | |
68 import java.util.Map; | |
69 | |
70 import org.apache.log4j.Logger; | |
71 | |
72 import org.w3c.dom.Document; | |
73 import org.w3c.dom.Element; | |
74 import org.w3c.dom.Node; | |
75 | 60 |
76 /** | 61 /** |
77 * @author <a href="mailto:tim.englich@intevation.de">Tim Englich</a> | 62 * @author <a href="mailto:tim.englich@intevation.de">Tim Englich</a> |
78 * @author <a href="mailto:sascha.teichmann@intevation.de">Sascha L. Teichmann</a> | 63 * @author <a href="mailto:sascha.teichmann@intevation.de">Sascha L. Teichmann</a> |
79 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> | 64 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
347 pathElement.setTextContent(path); | 332 pathElement.setTextContent(path); |
348 } | 333 } |
349 else { | 334 else { |
350 AttributedPoint2ds result = getResult(uuid, callContext); | 335 AttributedPoint2ds result = getResult(uuid, callContext); |
351 ExclusiveExec.UniqueKey key = ExclusiveExec.INSTANCE.acquire(uuid); | 336 ExclusiveExec.UniqueKey key = ExclusiveExec.INSTANCE.acquire(uuid); |
337 try{ | |
352 if (result != null | 338 if (result != null |
353 && (path = writeToShapeFile(uuid, result, callContext)) != null) { | 339 && (path = writeToShapeFile(uuid, result, callContext)) != null) { |
354 ExclusiveExec.INSTANCE.release(key); | |
355 | 340 |
356 String paramType = findParameterType(callContext); | 341 String paramType = findParameterType(callContext); |
357 | 342 |
358 InputData inputTitle = this.inputData.get("title"); | |
359 String title = getLayerTitle(inputData); | 343 String title = getLayerTitle(inputData); |
360 if (title == null) { | 344 if (title == null) { |
361 title = uuid; | 345 title = uuid; |
362 } | 346 } |
363 callContext.putContextValue( | 347 callContext.putContextValue( |
375 MapfileGenerator.getInstance().update(); | 359 MapfileGenerator.getInstance().update(); |
376 return meta; | 360 return meta; |
377 } | 361 } |
378 | 362 |
379 pathElement.setTextContent(path); | 363 pathElement.setTextContent(path); |
364 } | |
365 }finally{ | |
366 ExclusiveExec.INSTANCE.release(key); | |
380 } | 367 } |
381 } | 368 } |
382 | 369 |
383 return document; | 370 return document; |
384 } | 371 } |