Author: sumedha
Date: Sun Jan 6 02:56:49 2008
New Revision: 11883
Log:
Database connection should not close, when inside a call-query call
Modified:
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/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
Sun Jan 6 02:56:49 2008
@@ -100,16 +100,16 @@
HashMap inputs = new HashMap();
for (Iterator iter = inputMessage.getChildElements();
iter.hasNext();) {
OMElement element = (OMElement) iter.next();
- inputs.put(element.getLocalName(), element.getText());
+ inputs.put(element.getLocalName().toLowerCase(),
element.getText());
}
OMElement callQueryElement =
operationElement.getFirstChildWithName(new
QName("call-query"));
- return getRDBMSResult(callQueryElement, axisService, inputs);
+ return getRDBMSResult(callQueryElement, axisService,
inputs,false);
}
private static OMElement getRDBMSResult(OMElement callQueryElement,
AxisService axisService,
- HashMap inputs) {
+ HashMap inputs,boolean callFromNestedQuery) {
OMElement resultElement = null;
OMElement queryElement ;
try {
@@ -145,9 +145,9 @@
if(inOutType == null){
inOutType = "IN";
}
- params.put(paramName, sqlType);
- paramOrder.put(new Integer(position +
1), paramName);
- paramType.put(paramName, inOutType);
+ params.put(paramName.toLowerCase(),
sqlType);
+ paramOrder.put(new Integer(position +
1), paramName.toLowerCase());
+ paramType.put(paramName.toLowerCase(),
inOutType);
position++;
//}
}
@@ -160,13 +160,13 @@
if (firstPartOfSQL.equalsIgnoreCase("SELECT")) {
resultElement =
- getSelectResult(queryElement, inputs,
params, paramOrder,paramType, axisService, false);
+ getSelectResult(queryElement, inputs,
params, paramOrder,paramType, axisService, false,callFromNestedQuery);
} else if (firstPartOfSQL.equalsIgnoreCase("INSERT")
||
firstPartOfSQL.equalsIgnoreCase("UPDATE")
||
firstPartOfSQL.equalsIgnoreCase("DELETE")
||
firstPartOfSQL.equalsIgnoreCase("CREATE")) {
- resultElement = getSelectResult(queryElement,
inputs, params, paramOrder,paramType, axisService, true);
+ resultElement = getSelectResult(queryElement,
inputs, params, paramOrder,paramType, axisService, true,callFromNestedQuery);
}else {
//This can be a stored procedure call
@@ -367,7 +367,7 @@
} else if
(resultObj.getElementLocalNames()[a].equals("call-query")) {
//OMElement element = (OMElement)
elements.next();
OMElement element =
(OMElement)tmpElementsArrayList.get(a);
- OMElement rowElement =
getRDBMSResult(element, axisService, elementValues);
+ OMElement rowElement =
getRDBMSResult(element, axisService, elementValues,true);
row.addChild(rowElement);
}
}
@@ -486,7 +486,8 @@
private static OMElement getSelectResult(OMElement queryElement,
HashMap inputValues,
- HashMap params, HashMap paramOrder,HashMap paramType,
AxisService axisService, boolean isDML)
+ HashMap params, HashMap paramOrder,HashMap paramType,
AxisService axisService, boolean isDML
+ ,boolean callFromNestedQuery)
throws AxisFault {
OMElement resultElement = null;
Connection conn = null;
@@ -495,6 +496,8 @@
OMNamespace omNs = null;
Result resultObj = null;
String columnDefalut = null;
+
+
String sqlQuery = queryElement.getFirstChildWithName(new
QName("sql")).getText();
try {
@@ -607,9 +610,9 @@
row.addAttribute(displayTagName, elementValue, omNs);
}
} else if
(resultObj.getElementLocalNames()[a].equals("call-query")) {
- //OMElement element = (OMElement)
elements.next();
+ //OMElement element = (OMElement)
elements.next();
OMElement element =
(OMElement)tmpElementsArrayList.get(a);
- OMElement rowElement =
getRDBMSResult(element, axisService, elementValues);
+ OMElement rowElement =
getRDBMSResult(element, axisService, elementValues,true);
row.addChild(rowElement);
}
}
@@ -627,7 +630,7 @@
finally {
try {
- if (conn != null) {
+ if (conn != null && !callFromNestedQuery) {
conn.commit();
conn.close();
}
@@ -1185,7 +1188,7 @@
paramName = (String) paramOrder.get(new Integer(i + 1));
sqlType = (String) params.get(paramName);
paramType = (String)paramTypes.get(paramName);
- value = (String) inputs.get(paramName.toLowerCase());
+ value = (String) inputs.get(paramName);
log.debug("Param name : "+paramName
+" SQL Type : "+sqlType
+" Value : "+value);
_______________________________________________
Commons-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/commons-dev