Revision 2823 org.gvsig.vcsgis/trunk/org.gvsig.vcsgis/org.gvsig.vcsgis.lib/org.gvsig.vcsgis.lib.impl/src/main/java/org/gvsig/vcsgis/lib/server/handlers/UpdateHandler.java
UpdateHandler.java | ||
---|---|---|
61 | 61 |
JsonReader reader = Json.createReader(request_contents); |
62 | 62 |
JsonObject jsonRequest = reader.readObject(); |
63 | 63 |
|
64 |
String entityName = jsonRequest.getString("EntityName"); |
|
65 | 64 |
|
65 |
JsonObject jsonParameters = jsonRequest.getJsonObject("Parameters"); |
|
66 |
String entityName = jsonParameters.getString("EntityName"); |
|
67 |
|
|
66 | 68 |
VCSGisUpdateRequest request = this.getRepository().createUpdateRequest(entityName); |
67 |
request.setLocalRevisionCode(jsonRequest.getString("LocalRevisionCode")); |
|
69 |
request.setLocalRevisionCode(jsonParameters.getString("LocalRevisionCode", null)); |
|
70 |
|
|
68 | 71 |
req.setValue(request); |
69 |
|
|
72 |
notifyRequestConsumers(); |
|
73 |
|
|
70 | 74 |
LOGGER.debug("===: ["+this.getName()+"] requestProducer 2 notifyRequestConsumers"); |
71 | 75 |
notifyRequestConsumers(); |
72 | 76 |
|
... | ... | |
75 | 79 |
|
76 | 80 |
@Override |
77 | 81 |
protected void responseProducer(VCSGisRequest req, OutputStream response_contents) throws IOException { |
78 |
final VCSGisCheckoutRequest request = (VCSGisCheckoutRequest) req; |
|
82 |
LOGGER.debug("===: ["+this.getName()+"] responseProducer 1"); |
|
83 |
final VCSGisUpdateRequest request = (VCSGisUpdateRequest) req; |
|
79 | 84 |
JsonGenerator gen = null; |
80 | 85 |
try { |
81 | 86 |
JsonGeneratorFactory genFactory = Json.createGeneratorFactory( |
82 | 87 |
Collections.singletonMap(JsonGenerator.PRETTY_PRINTING, true) |
83 | 88 |
); |
84 | 89 |
gen = genFactory.createGenerator(response_contents); |
90 |
LOGGER.debug("===: ["+this.getName()+"] responseProducer 2"); |
|
85 | 91 |
gen.writeStartObject(); |
86 | 92 |
|
87 | 93 |
gen.writeStartObject("Parameters"); |
88 | 94 |
gen.write("StatusCode", request.getLastErrorCode()); |
89 | 95 |
|
96 |
LOGGER.debug("===: ["+this.getName()+"] responseProducer 3"); |
|
90 | 97 |
notifyResponseConsumers(); |
98 |
gen.flush(); |
|
91 | 99 |
|
92 | 100 |
if( StringUtils.isBlank(request.getLastErrorMessage()) ) { |
93 | 101 |
gen.writeNull("StatusMessage"); |
... | ... | |
98 | 106 |
gen.write("Entity", request.getEntity().toJson()); |
99 | 107 |
gen.writeEnd(); // Paramaters |
100 | 108 |
|
109 |
LOGGER.debug("===: ["+this.getName()+"] responseProducer 4"); |
|
101 | 110 |
gen.writeStartArray("Data"); |
102 | 111 |
for (VCSGisRepositoryData data : request.getData()) { |
103 | 112 |
gen.write(data.toJson()); |
104 | 113 |
gen.flush(); |
105 | 114 |
} |
115 |
LOGGER.debug("===: ["+this.getName()+"] responseProducer 5"); |
|
106 | 116 |
gen.writeEnd(); // Data |
107 | 117 |
gen.writeEnd(); |
108 | 118 |
|
109 | 119 |
|
120 |
LOGGER.debug("===: ["+this.getName()+"] responseProducer 6 gen.flush()"); |
|
110 | 121 |
gen.flush(); |
122 |
LOGGER.debug("===: ["+this.getName()+"] responseProducer 7 response_contents.flush()"); |
|
111 | 123 |
response_contents.flush(); |
124 |
LOGGER.debug("===: ["+this.getName()+"] responseProducer 8 end"); |
|
112 | 125 |
|
113 | 126 |
|
114 | 127 |
} catch (Exception ex) { |
115 | 128 |
LOGGER.warn("Can't produce Json data for "+this.getName()+" response.",ex); |
116 | 129 |
|
117 | 130 |
} finally { |
131 |
LOGGER.debug("===: ["+this.getName()+"] responseProducer finally"); |
|
118 | 132 |
IOUtils.closeQuietly(gen); |
119 | 133 |
IOUtils.closeQuietly(response_contents); |
120 | 134 |
} |
Also available in: Unified diff