Author: sumedha
Date: Fri Jan  4 07:10:29 2008
New Revision: 11848

Log:

fix when no response is being returned from service

Modified:
   
trunk/commons/data-services/src/main/java/org/wso2/ws/dataservice/CallQuery.java
   
trunk/commons/data-services/src/main/java/org/wso2/ws/dataservice/DBUtils.java

Modified: 
trunk/commons/data-services/src/main/java/org/wso2/ws/dataservice/CallQuery.java
==============================================================================
--- 
trunk/commons/data-services/src/main/java/org/wso2/ws/dataservice/CallQuery.java
    (original)
+++ 
trunk/commons/data-services/src/main/java/org/wso2/ws/dataservice/CallQuery.java
    Fri Jan  4 07:10:29 2008
@@ -199,6 +199,11 @@
                 OMElement query = (OMElement) queryElements.next();
                 queryRefList.add(query.getAttributeValue(new QName("href")));
             }
+        }else{//resultElement == null
+               //for services with no return types, there will not be a result
+               //element.
+               defaultNamespace = axisService.getTargetNamespace();
+               nsPrefix = axisService.getTargetNamespacePrefix();
         }
 
     }

Modified: 
trunk/commons/data-services/src/main/java/org/wso2/ws/dataservice/DBUtils.java
==============================================================================
--- 
trunk/commons/data-services/src/main/java/org/wso2/ws/dataservice/DBUtils.java  
    (original)
+++ 
trunk/commons/data-services/src/main/java/org/wso2/ws/dataservice/DBUtils.java  
    Fri Jan  4 07:10:29 2008
@@ -490,6 +490,12 @@
        throws AxisFault {
                OMElement resultElement = null;
                Connection conn = null;
+               boolean hasResponse = true;
+               OMFactory fac = null;
+               OMNamespace omNs = null;
+               Result resultObj = null;
+               String columnDefalut = null;
+               
                String sqlQuery = queryElement.getFirstChildWithName(new 
QName("sql")).getText();
                try {
                        Parameter dbConnectionParam = 
axisService.getParameter(DBConstants.DB_CONNECTION);  
@@ -512,39 +518,32 @@
                        }
 
                        OMElement result = 
queryElement.getFirstChildWithName(new QName("result"));
-                       Result resultObj = new Result(result);
-//                     String wrapperElementName = 
result.getAttributeValue(new QName("element"));
-//                     String rowElementName = result.getAttributeValue(new 
QName("rowName"));
-//                     
-//                     //if wrapper element || row element is not set, set 
default values to them
-//             if(wrapperElementName == null || 
wrapperElementName.trim().length() == 0){
-//                 //default value
-//                 wrapperElementName = "results";             
-//             }
-//             if(rowElementName == null || rowElementName.trim().length() == 
0){
-//                 //default value
-//                 rowElementName = "row";             
-//             } 
-               
-               //TODO : need to define a way to get values automatically
-                       
//getDefaultValuesForResultsWrapper(wrapperElementName,rowElementName);
-
-                       // check ??
-                       String columnDefalut = result.getAttributeValue(new 
QName("columnDefault"));
-
-                       OMFactory fac = OMAbstractFactory.getOMFactory();
-                       OMNamespace omNs = 
fac.createOMNamespace(axisService.getTargetNamespace(), "data");
-                       //OMNamespace omNs = fac.createOMNamespace("", "data");
-                       resultElement = 
fac.createOMElement(resultObj.getResultWrapper(), omNs);
+                       if(result == null){
+                               hasResponse = false;
+                       }
+                       
+                       if(hasResponse){
+                               resultObj = new Result(result);
+                       //TODO : need to define a way to get values 
automatically
+                               
//getDefaultValuesForResultsWrapper(wrapperElementName,rowElementName);
+                               // check ??
+                               columnDefalut = result.getAttributeValue(new 
QName("columnDefault"));
+                               fac = OMAbstractFactory.getOMFactory();
+                               omNs = 
fac.createOMNamespace(axisService.getTargetNamespace(), "data");
+                               //OMNamespace omNs = fac.createOMNamespace("", 
"data");
+                               resultElement = 
fac.createOMElement(resultObj.getResultWrapper(), omNs);                        
+                       }
                        
 
                        if (isDML) {
-                               resultElement
-                               .setText("Your query executed successfully. 
Return code from the database was "
-                                               + responseCode);
+                               if(hasResponse){
+                                       resultElement
+                                       .setText("Your query executed 
successfully. Return code from the database was "
+                                                       + responseCode);        
                                
+                               }
                        } else {
                                //check if wrapper element should be qualified
-                               if ( !axisService.isElementFormDefault()) {
+                               if (hasResponse && 
!axisService.isElementFormDefault()) {
                                        omNs =fac.createOMNamespace("", 
"data"); 
                                }
                                

_______________________________________________
Commons-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/commons-dev

Reply via email to