5858import org .geppetto .model .util .GeppettoModelTraversal ;
5959import org .geppetto .model .util .GeppettoVisitingException ;
6060import org .geppetto .model .variables .Variable ;
61+ import com .google .gson .JsonSyntaxException ;
6162
6263/**
6364 * @author matteocantarelli
@@ -183,12 +184,14 @@ public Object caseSimpleQuery(SimpleQuery query)
183184 {
184185 if (!count || (count && query .isRunForCount ()))
185186 {
187+ String processedQueryString = "" ;
188+ String url = "" ;
186189 try
187190 {
188191 if (QueryChecker .check (query , getVariable ()))
189192 {
190193 ADataSourceService dataSourceService = getDataSourceService (query );
191- String url = getDataSource (query ).getUrl ();
194+ url = getDataSource (query ).getUrl ();
192195 String queryString = null ;
193196 if (count )
194197 {
@@ -208,7 +211,7 @@ public Object caseSimpleQuery(SimpleQuery query)
208211 properties .putAll (processingOutputMap );
209212 }
210213
211- String processedQueryString = VelocityUtils .processTemplate (dataSourceService .getTemplate (), properties );
214+ processedQueryString = VelocityUtils .processTemplate (dataSourceService .getTemplate (), properties );
212215
213216 String response = null ;
214217 switch (dataSourceService .getConnectionType ())
@@ -226,6 +229,7 @@ public Object caseSimpleQuery(SimpleQuery query)
226229 }
227230 catch (GeppettoDataSourceException e )
228231 {
232+ System .out .println ("Query request: " + url + "?" + processedQueryString );
229233 return new GeppettoVisitingException (e );
230234 }
231235 catch (GeppettoInitializationException e )
@@ -242,18 +246,23 @@ public Object caseSimpleQuery(SimpleQuery query)
242246 */
243247 private void processResponse (String response , ADataSourceService dataSourceService ) throws GeppettoDataSourceException
244248 {
245- if (count )
246- {
247- Map <String , Object > responseMap = JSONUtility .getAsMap (response );
248- results = dataSourceService .getQueryResponseProcessor ().processResponse (responseMap );
249- // TODO How to get the count if it is actually specified?
250- }
251- else
252- {
253- Map <String , Object > responseMap = JSONUtility .getAsMap (response );
254- results = dataSourceService .getQueryResponseProcessor ().processResponse (responseMap );
249+ try {
250+ if (count )
251+ {
252+ Map <String , Object > responseMap = JSONUtility .getAsMap (response );
253+ results = dataSourceService .getQueryResponseProcessor ().processResponse (responseMap );
254+ // TODO How to get the count if it is actually specified?
255+ }
256+ else
257+ {
258+ Map <String , Object > responseMap = JSONUtility .getAsMap (response );
259+ results = dataSourceService .getQueryResponseProcessor ().processResponse (responseMap );
260+ }
261+ }catch (JsonSyntaxException e ){
262+ System .out .println ("JsonSyntaxException handling: " + response );
263+ System .out .println (e );
264+ throw new GeppettoDataSourceException (e );
255265 }
256-
257266 }
258267
259268 /**
0 commit comments