Author: amilas Date: Fri Apr 23 10:34:41 2010 New Revision: 937237 URL: http://svn.apache.org/viewvc?rev=937237&view=rev Log: apply the patch for AXIS2-4642
Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisService.java axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/ListingAgent.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisService.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisService.java?rev=937237&r1=937236&r2=937237&view=diff ============================================================================== --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisService.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisService.java Fri Apr 23 10:34:41 2010 @@ -922,6 +922,12 @@ public class AxisService extends AxisDes httpLocationDispatcherMap.put(string, axisOperation); } + /** + * Prints the schema to the given output stream. + * @param out The output stream for the data to be written. NOTE: the stream is not closed after the operation, + * it is the responsibility of the caller to close the stream after usage. + * @throws AxisFault + */ public void printSchema(OutputStream out) throws AxisFault { for (int i = 0; i < schemaList.size(); i++) { XmlSchema schema = addNameSpaces(i); @@ -1052,6 +1058,15 @@ public class AxisService extends AxisDes return eprs; } + /** + * Prints the given definition object. + * @param definition The definition. + * @param out The output stream the data to be written to. NOTE: the stream is not closed after the operation, + * it is the responsibility of the caller to close the stream after usage. + * @param requestIP The host IP address. + * @throws AxisFault + * @throws WSDLException + */ private void printDefinitionObject(Definition definition, OutputStream out, String requestIP) throws AxisFault, WSDLException { if (isModifyUserWSDLPortAddress()) { @@ -1070,6 +1085,14 @@ public class AxisService extends AxisDes printUserWSDL(out, wsdlName, null); } + /** + * Prints the user WSDL. + * @param out The output stream for the data to be written. NOTE: the stream is not closed after the operation, + * it is the responsibility of the caller to close the stream after usage. + * @param wsdlName The name of the WSDL. + * @param ip The host IP address. + * @throws AxisFault + */ public void printUserWSDL(OutputStream out, String wsdlName, String ip) throws AxisFault { Definition definition = null; @@ -1255,7 +1278,8 @@ public class AxisService extends AxisDes * OutputStream. * * @param out - * destination stream. + * destination stream, NOTE: the stream is not closed after the operation, + * it is the responsibility of the caller to close the stream after usage. * @param xsd * schema name * @return -1 implies not found, 0 implies redirect to root, 1 implies @@ -1272,7 +1296,6 @@ public class AxisService extends AxisDes updateSchemaLocation(schema); schema.write(new OutputStreamWriter(out, "UTF8")); out.flush(); - out.close(); return 1; } } @@ -1296,7 +1319,6 @@ public class AxisService extends AxisDes // schema is there - pump it outs schema.write(new OutputStreamWriter(out, "UTF8")); out.flush(); - out.close(); } else { // make sure we are only serving .xsd files and ignore requests with // ".." in the name. @@ -1328,7 +1350,6 @@ public class AxisService extends AxisDes if (schema != null) { schema.write(new OutputStreamWriter(out, "UTF8")); out.flush(); - out.close(); } } else { String xsdNotFound = "<error>" @@ -1336,7 +1357,6 @@ public class AxisService extends AxisDes + "</error>"; out.write(xsdNotFound.getBytes()); out.flush(); - out.close(); } } return 1; @@ -1347,7 +1367,8 @@ public class AxisService extends AxisDes * OutputStream. * * @param out - * destination stream. The WSDL will be sent here. + * destination stream. The WSDL will be sent here. NOTE: the stream is not closed after the operation, + * it is the responsibility of the caller to close the stream after usage. * @param requestIP * the hostname the WSDL request was directed at. This should be * the address that appears in the generated WSDL. @@ -1408,7 +1429,8 @@ public class AxisService extends AxisDes * Print the WSDL with a default URL. This will be called only during * codegen time. * - * @param out + * @param out The output stream for the data to be written. NOTE: the stream is not closed after the operation, + * it is the responsibility of the caller to close the stream after usage. * @throws AxisFault */ public void printWSDL(OutputStream out) throws AxisFault { @@ -1597,6 +1619,12 @@ public class AxisService extends AxisDes } } + /** + * Retrieves the WSDL data associated with the given serviceURL. + * @param out The output stream for the WSDL data to be written, NOTE: the stream is not closed after the operation, + * it is the responsibility of the caller to close the stream after usage. + * @param serviceURL The fist element of this array i.e. serviceURL[0] is taken in retrieving the target service. + */ private void getWSDL(OutputStream out, String[] serviceURL) throws AxisFault { // Retrieve WSDL using the same data retrieval path for GetMetadata @@ -1616,17 +1644,29 @@ public class AxisService extends AxisDes try { XMLPrettyPrinter.prettify(wsdlElement, out); out.flush(); - out.close(); } catch (Exception e) { throw AxisFault.makeFault(e); } } } + /** + * Prints generic WSDL error to the given output stream. + * @param out The output stream the data to be written to. NOTE: the stream is not closed after the operation, + * it is the responsibility of the caller to close the stream after usage. + * @throws AxisFault + */ private void printWSDLError(OutputStream out) throws AxisFault { printWSDLError(out, null); } + /** + * Prints WSDL error condition that is given in the exception. + * @param out The output stream for the error message to be written. NOTE: the stream is not closed after the operation, + * it is the responsibility of the caller to close the stream after usage. + * @param e The exception describing the error condition. + * @throws AxisFault + */ private void printWSDLError(OutputStream out, Exception e) throws AxisFault { try { String wsdlntfound = "<error>" @@ -1641,7 +1681,6 @@ public class AxisService extends AxisDes } out.write("</error>".getBytes()); out.flush(); - out.close(); } catch (IOException ex) { throw AxisFault.makeFault(ex); } @@ -1651,13 +1690,21 @@ public class AxisService extends AxisDes * Print the WSDL2.0 with a default URL. This will be called only during * codegen time. * - * @param out + * @param out The output stream for the data to be written for. NOTE: the stream is not closed after the operation, + * it is the responsibility of the caller to close the stream after usage. * @throws AxisFault */ public void printWSDL2(OutputStream out) throws AxisFault { printWSDL2(out, null); } + /** + * Prints WSDL2.0 data for the service with the given host IP address. + * @param out The output stream for the data to be written for. NOTE: the stream is not closed after the operation, + * it is the responsibility of the caller to close the stream after usage. + * @param requestIP The host IP address. + * @throws AxisFault + */ public void printWSDL2(OutputStream out, String requestIP) throws AxisFault { AxisService2WSDL20 axisService2WSDL2 = new AxisService2WSDL20(this); try { @@ -1667,7 +1714,6 @@ public class AxisService extends AxisDes OMElement wsdlElement = axisService2WSDL2.generateOM(); wsdlElement.serialize(out); out.flush(); - out.close(); } catch (Exception e) { throw AxisFault.makeFault(e); } @@ -1678,7 +1724,8 @@ public class AxisService extends AxisDes * OutputStream. * * @param out - * destination stream. + * destination stream. NOTE: the stream is not closed after the operation, + * it is the responsibility of the caller to close the stream after usage. * @param wsdl * wsdl name * @return -1 implies not found, 0 implies redirect to root, 1 implies Modified: axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/ListingAgent.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/ListingAgent.java?rev=937237&r1=937236&r2=937237&view=diff ============================================================================== --- axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/ListingAgent.java (original) +++ axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/ListingAgent.java Fri Apr 23 10:34:41 2010 @@ -195,12 +195,8 @@ public class ListingAgent extends Abstra if (wsdlName != null && wsdlName.length()>0) { axisService.printUserWSDL(out, wsdlName, ip); - out.flush(); - out.close(); } else { axisService.printWSDL(out, ip); - out.flush(); - out.close(); } return; } else if (xsd >= 0) {