You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by sc...@apache.org on 2007/10/10 15:59:47 UTC
svn commit: r583477 - in /webservices/axis2/trunk/java/modules:
jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/
jaxws/src/org/apache/axis2/jaxws/message/impl/
jaxws/src/org/apache/axis2/jaxws/server/dispatcher/
kernel/src/org/apache/axis2/co...
Author: scheu
Date: Wed Oct 10 06:59:46 2007
New Revision: 583477
URL: http://svn.apache.org/viewvc?rev=583477&view=rev
Log:
AXIS2-3260
JavaDispatcher/JavaProvider fixes.
Extra trace in other classes.
Modified:
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SourceBlockImpl.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockImpl.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/JavaDispatcher.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/ProviderDispatcher.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/externalize/DebugObjectInput.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/externalize/DebugObjectOutputStream.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/externalize/SafeObjectInputStream.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/externalize/SafeObjectOutputStream.java
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SourceBlockImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SourceBlockImpl.java?rev=583477&r1=583476&r2=583477&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SourceBlockImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SourceBlockImpl.java Wed Oct 10 06:59:46 2007
@@ -78,6 +78,10 @@
// Dynamically discover if StAXSource is available
staxSource = forName("javax.xml.transform.stax.StAXSource");
} catch (Exception e) {
+ if (log.isDebugEnabled()) {
+ log.debug("StAXSource is not present in the JDK. " +
+ "This is acceptable. Processing continues");
+ }
}
try {
// Woodstox does not work with StAXSource
@@ -106,6 +110,9 @@
(busObject.getClass().equals(staxSource)) ||
busObject instanceof JAXBSource) {
// Okay, these are supported Source objects
+ if (log.isDebugEnabled()) {
+ log.debug("data object is a " + busObject.getClass().getName());
+ }
} else {
throw ExceptionFactory.makeWebServiceException(
Messages.getMessage("SourceNotSupported", busObject.getClass().getName()));
@@ -199,9 +206,19 @@
/** Creates an XMLStreamReader from a Source using a slow but proven algorithm. */
private XMLStreamReader _slow_getReaderFromSource(Source src) throws XMLStreamException {
+ if (log.isDebugEnabled()) {
+ log.debug("Start _slow_getReaderFromSource");
+ }
byte[] bytes = (byte[]) ConvertUtils.convert(src, byte[].class);
+ if (log.isDebugEnabled()) {
+ log.debug("Successfully converted to ByteArray");
+ }
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
- return StAXUtils.createXMLStreamReader(bais);
+ XMLStreamReader reader = StAXUtils.createXMLStreamReader(bais);
+ if (log.isDebugEnabled()) {
+ log.debug("End _slow_getReaderFromSource =" + reader);
+ }
+ return reader;
}
@Override
@@ -209,8 +226,17 @@
throws XMLStreamException, WebServiceException {
// There is no fast way to output the Source to a writer, so get the reader
// and pass use the default reader->writer.
+ if (log.isDebugEnabled()) {
+ log.debug("Start _outputFromBO");
+ }
XMLStreamReader reader = _getReaderFromBO(busObject, busContext);
+ if (log.isDebugEnabled()) {
+ log.debug("Obtained reader=" + reader);
+ }
_outputFromReader(reader, writer);
+ if (log.isDebugEnabled()) {
+ log.debug("End _outputReaderFromBO");
+ }
// REVIEW Should we call close() on the Source ?
}
@@ -339,11 +365,19 @@
public byte[] getXMLBytes(String encoding) throws UnsupportedEncodingException {
+ if (log.isDebugEnabled()) {
+ log.debug("Start getXMLBytes");
+ }
+ byte[] bytes = null;
try {
- return (byte[])
+ bytes = (byte[])
ConvertUtils.convert(getBusinessObject(false), byte[].class);
} catch (XMLStreamException e) {
throw ExceptionFactory.makeWebServiceException(e);
}
+ if (log.isDebugEnabled()) {
+ log.debug("End getXMLBytes");
+ }
+ return bytes;
}
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockImpl.java?rev=583477&r1=583476&r2=583477&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockImpl.java Wed Oct 10 06:59:46 2007
@@ -322,6 +322,9 @@
public void outputTo(XMLStreamWriter writer, boolean consume)
throws XMLStreamException, WebServiceException {
+ if (log.isDebugEnabled()) {
+ log.debug("Start outputTo");
+ }
if (consumed) {
// In some scenarios, the message is written out after the service instance is invoked.
// In these situations, it is preferable to simply ignore this block.
@@ -333,15 +336,27 @@
}
if (omElement != null) {
if (consume) {
+ if (log.isDebugEnabled()) {
+ log.debug("Write using OMElement.serializeAndConsume");
+ }
omElement.serializeAndConsume(writer);
} else {
+ if (log.isDebugEnabled()) {
+ log.debug("Write Using OMElement.serialize");
+ }
omElement.serialize(writer);
}
} else if (busObject != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Write business object");
+ }
busObject = _getBOFromBO(busObject, busContext, consume);
_outputFromBO(busObject, busContext, writer);
}
setConsumed(consume);
+ if (log.isDebugEnabled()) {
+ log.debug("End outputTo");
+ }
return;
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/JavaDispatcher.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/JavaDispatcher.java?rev=583477&r1=583476&r2=583477&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/JavaDispatcher.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/JavaDispatcher.java Wed Oct 10 06:59:46 2007
@@ -99,79 +99,86 @@
}
public Object call() throws Exception {
- if (log.isDebugEnabled()) {
- log.debug("Invoking target endpoint via the async worker.");
- }
-
- // Set the proper class loader so that we can properly marshall the
- // outbound response.
- ClassLoader currentLoader = Thread.currentThread().getContextClassLoader();
- if (classLoader != null) {
- Thread.currentThread().setContextClassLoader(classLoader);
- if (log.isDebugEnabled()) {
- log.debug("Context ClassLoader set to:" + classLoader);
- }
- }
-
- // We have the method that is going to be invoked and the parameter data to invoke it
- // with, so just invoke the operation.
- Object output = null;
- boolean faultThrown = false;
- Throwable fault = null;
try {
- output = invokeTargetOperation(method, params);
- }
- catch (Exception e) {
- fault = ClassUtils.getRootCause(e);
- faultThrown = true;
- }
-
- // If this is a one way invocation, we are done and just need to return.
- if (eic.isOneWay()) {
if (log.isDebugEnabled()) {
- log.debug("Invocation pattern was one way, work complete.");
- return null;
+ log.debug("Invoking target endpoint via the async worker.");
}
- }
-
- // Create the response MessageContext
- MessageContext request = eic.getRequestMessageContext();
- MessageContext response = null;
- if (faultThrown) {
- // If a fault was thrown, we need to create a slightly different
- // MessageContext, than in the response path.
- response = createFaultResponse(request, fault);
- } else {
- if (log.isDebugEnabled()) {
- log.debug("Async invocation of the endpoint was successful. Creating response message.");
+
+ // Set the proper class loader so that we can properly marshall the
+ // outbound response.
+ ClassLoader currentLoader = Thread.currentThread().getContextClassLoader();
+ if (classLoader != null) {
+ Thread.currentThread().setContextClassLoader(classLoader);
+ if (log.isDebugEnabled()) {
+ log.debug("Context ClassLoader set to:" + classLoader);
+ }
+ }
+
+ // We have the method that is going to be invoked and the parameter data to invoke it
+ // with, so just invoke the operation.
+ Object output = null;
+ boolean faultThrown = false;
+ Throwable fault = null;
+ try {
+ output = invokeTargetOperation(method, params);
+ }
+ catch (Exception e) {
+ fault = ClassUtils.getRootCause(e);
+ faultThrown = true;
+ }
+
+ // If this is a one way invocation, we are done and just need to return.
+ if (eic.isOneWay()) {
+ if (log.isDebugEnabled()) {
+ log.debug("Invocation pattern was one way, work complete.");
+ return null;
+ }
+ }
+
+ // Create the response MessageContext
+ MessageContext request = eic.getRequestMessageContext();
+ MessageContext response = null;
+ if (faultThrown) {
+ // If a fault was thrown, we need to create a slightly different
+ // MessageContext, than in the response path.
+ response = createFaultResponse(request, fault);
+ } else {
+ if (log.isDebugEnabled()) {
+ log.debug("Async invocation of the endpoint was successful. Creating response message.");
+ }
+ response = createResponse(request, params, output);
}
- response = createResponse(request, params, output);
- }
- EndpointInvocationContext eic = null;
- if (request.getInvocationContext() != null) {
- eic = (EndpointInvocationContext) request.getInvocationContext();
- eic.setResponseMessageContext(response);
- }
-
- EndpointCallback callback = eic.getCallback();
- boolean handleFault = response.getMessage().isFault();
- if (!handleFault) {
- if (log.isDebugEnabled()) {
- log.debug("No fault detected in response message, sending back application response.");
+ EndpointInvocationContext eic = null;
+ if (request.getInvocationContext() != null) {
+ eic = (EndpointInvocationContext) request.getInvocationContext();
+ eic.setResponseMessageContext(response);
}
- callback.handleResponse(eic);
- }
- else {
- if (log.isDebugEnabled()) {
- log.debug("A fault was detected. Sending back a fault response.");
+
+ EndpointCallback callback = eic.getCallback();
+ boolean handleFault = response.getMessage().isFault();
+ if (!handleFault) {
+ if (log.isDebugEnabled()) {
+ log.debug("No fault detected in response message, sending back application response.");
+ }
+ callback.handleResponse(eic);
}
- callback.handleFaultResponse(eic);
+ else {
+ if (log.isDebugEnabled()) {
+ log.debug("A fault was detected. Sending back a fault response.");
+ }
+ callback.handleFaultResponse(eic);
+ }
+
+ // Set the thread's ClassLoader back to what it originally was.
+ Thread.currentThread().setContextClassLoader(currentLoader);
+
+ } catch (Throwable e) {
+ // Exceptions are swallowed, there is no reason to rethrow them
+ log.error("AN UNEXPECTED ERROR OCCURRED IN THE ASYNC WORKER THREAD");
+ log.error("Exception is:" + e);
}
-
- // Set the thread's ClassLoader back to what it originally was.
- Thread.currentThread().setContextClassLoader(currentLoader);
-
+
return null;
}
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/ProviderDispatcher.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/ProviderDispatcher.java?rev=583477&r1=583476&r2=583477&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/ProviderDispatcher.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/ProviderDispatcher.java Wed Oct 10 06:59:46 2007
@@ -71,14 +71,10 @@
private static Log log = LogFactory.getLog(ProviderDispatcher.class);
- private BlockFactory blockFactory = null;
- private Class providerType = null;
+ private BlockFactory _blockFactory = null; // Cache the block factory
+ private Class _providerType = null; // Cache the provider type
private Provider providerInstance = null;
- private Service.Mode providerServiceMode = null;
private Message message = null;
- private Protocol messageProtocol;
-
- private EndpointDescription endpointDesc;
/**
* Constructor
@@ -104,6 +100,7 @@
Object param = createRequestParameters(request);
if (log.isDebugEnabled()) {
+ Class providerType = getProviderType();
final Object input = providerType.cast(param);
log.debug("Invoking Provider<" + providerType.getName() + ">");
if (input != null) {
@@ -125,9 +122,6 @@
fault = ClassUtils.getRootCause(e);
faultThrown = true;
}
-
- // TODO (NLG): Need to find a better way to sync this across both Dispatchers.
- endpointDesc = request.getEndpointDescription();
// Create the response MessageContext
MessageContext responseMsgCtx = null;
@@ -153,6 +147,7 @@
Object param = createRequestParameters(request);
if (log.isDebugEnabled()) {
+ Class providerType = getProviderType();
final Object input = providerType.cast(param);
log.debug("Invoking Provider<" + providerType.getName() + ">");
if (input != null) {
@@ -190,6 +185,7 @@
Object param = createRequestParameters(request);
if (log.isDebugEnabled()) {
+ Class providerType = getProviderType();
final Object input = providerType.cast(param);
log.debug("Invoking Provider<" + providerType.getName() + ">");
if (input != null) {
@@ -219,7 +215,7 @@
public Object createRequestParameters(MessageContext request) {
// First we need to know what kind of Provider instance we're going
// to be invoking against
- providerType = getProviderType();
+ Class providerType = getProviderType();
// REVIEW: This assumes there is only one endpoint description on the service. Is that always the case?
EndpointDescription endpointDesc = request.getEndpointDescription();
@@ -240,12 +236,12 @@
}
// Save off the protocol info so we can use it when creating the response message.
- messageProtocol = message.getProtocol();
+ Protocol messageProtocol = message.getProtocol();
// Determine what type blocks we want to create (String, Source, etc) based on Provider Type
BlockFactory factory = createBlockFactory(providerType);
- providerServiceMode = endpointDesc.getServiceMode();
+ Service.Mode providerServiceMode = endpointDesc.getServiceMode();
if (providerServiceMode != null && providerServiceMode == Service.Mode.MESSAGE) {
if (providerType.equals(SOAPMessage.class)) {
@@ -289,33 +285,64 @@
}
public MessageContext createResponse(MessageContext request, Object[] input, Object output) {
+ if (log.isDebugEnabled()) {
+ log.debug("Start createResponse");
+ }
Message m;
+ EndpointDescription endpointDesc = null;
try {
- m = createMessageFromValue(output);
- } catch (Exception e) {
- throw ExceptionFactory.makeWebServiceException(e);
+ endpointDesc = request.getEndpointDescription();
+ Service.Mode mode = endpointDesc.getServiceMode();
+ m = createMessageFromValue(output, request.getMessage().getProtocol(), mode);
+ } catch (Throwable t) {
+ if (log.isDebugEnabled()) {
+ log.debug("Throwable caught");
+ log.debug("Throwable=" + t);
+ }
+ throw ExceptionFactory.makeWebServiceException(t);
}
- // Enable MTOM if indicated by the binding
- String bindingType = endpointDesc.getBindingType();
- if (bindingType != null) {
- if (bindingType.equals(SOAPBinding.SOAP11HTTP_MTOM_BINDING)
- || bindingType.equals(SOAPBinding.SOAP12HTTP_MTOM_BINDING)) {
- m.setMTOMEnabled(true);
- }
+ if (log.isDebugEnabled()) {
+ log.debug("Response message is created.");
}
+
+ MessageContext response = null;
+ try {
+ // Enable MTOM if indicated by the binding
+ String bindingType = endpointDesc.getBindingType();
+ if (bindingType != null) {
+ if (bindingType.equals(SOAPBinding.SOAP11HTTP_MTOM_BINDING)
+ || bindingType.equals(SOAPBinding.SOAP12HTTP_MTOM_BINDING)) {
+ m.setMTOMEnabled(true);
+ }
+ }
- MessageContext response = MessageContextUtils.createResponseMessageContext(request);
- response.setMessage(m);
+ response = MessageContextUtils.createResponseMessageContext(request);
+ response.setMessage(m);
+ } catch (RuntimeException e) {
+ if (log.isDebugEnabled()) {
+ log.debug("Throwable caught creating Response MessageContext");
+ log.debug("Throwable=" + e);
+ }
+ } finally {
+ if (log.isDebugEnabled()) {
+ log.debug("End createResponse");
+ }
+ }
return response;
}
public MessageContext createFaultResponse(MessageContext request, Throwable fault) {
+ if (log.isDebugEnabled()) {
+ log.debug("Create XMLFault for createFaultResponse");
+ }
Message m;
try {
+ EndpointDescription endpointDesc = request.getEndpointDescription();
+ Service.Mode mode = endpointDesc.getServiceMode();
XMLFault xmlFault = MethodMarshallerUtils.createXMLFaultFromSystemException(fault);
- m = createMessageFromValue(xmlFault);
+ m = createMessageFromValue(xmlFault, request.getMessage().getProtocol(), mode);
} catch (Exception e) {
throw ExceptionFactory.makeWebServiceException(e);
}
@@ -369,37 +396,52 @@
/*
* Create a Message object out of the value object that was returned.
*/
- private Message createMessageFromValue(Object value) throws Exception {
+ private Message createMessageFromValue(Object value, Protocol protocol,
+ Service.Mode mode) throws Exception {
MessageFactory msgFactory =
(MessageFactory)FactoryRegistry.getFactory(MessageFactory.class);
Message message = null;
if (value != null) {
+ Class providerType = getProviderType();
BlockFactory factory = createBlockFactory(providerType);
if (value instanceof XMLFault) {
- message = msgFactory.create(messageProtocol);
+ if (log.isDebugEnabled()) {
+ log.debug("Creating message from XMLFault");
+ }
+ message = msgFactory.create(protocol);
message.setXMLFault((XMLFault)value);
- } else if (providerServiceMode != null && providerServiceMode == Service.Mode.MESSAGE) {
+ } else if (mode != null && mode == Service.Mode.MESSAGE) {
// For MESSAGE mode, work with the entire message, Headers and Body
// This is based on logic in org.apache.axis2.jaxws.client.XMLDispatch.createMessageFromBundle()
if (value instanceof SOAPMessage) {
+ if (log.isDebugEnabled()) {
+ log.debug("Creating message from SOAPMessage");
+ }
message = msgFactory.createFrom((SOAPMessage)value);
} else {
+ if (log.isDebugEnabled()) {
+ log.debug("Creating message using " + factory);
+ }
Block block = factory.createFrom(value, null, null);
- message = msgFactory.createFrom(block, null, messageProtocol);
+ message = msgFactory.createFrom(block, null, protocol);
}
} else {
// PAYLOAD mode deals only with the body of the message.
+ if (log.isDebugEnabled()) {
+ log.debug("Creating message (payload) using " + factory);
+ }
Block block = factory.createFrom(value, null, null);
- message = msgFactory.create(messageProtocol);
+ message = msgFactory.create(protocol);
message.setBodyBlock(block);
}
}
- if (message == null)
+ if (message == null) {
// If we didn't create a message above (because there was no value), create one here
- message = msgFactory.create(messageProtocol);
+ message = msgFactory.create(protocol);
+ }
return message;
@@ -441,6 +483,9 @@
*/
private Class<?> getProviderType() {
+ if (_providerType != null) {
+ return _providerType;
+ }
Class providerType = null;
Type[] giTypes = serviceImplClass.getGenericInterfaces();
@@ -462,6 +507,7 @@
providerType = (Class)paramType.getActualTypeArguments()[0];
}
}
+ _providerType = providerType;
return providerType;
}
@@ -496,24 +542,25 @@
* Given a target class type for a payload, load the appropriate BlockFactory.
*/
private BlockFactory createBlockFactory(Class type) {
- if (blockFactory != null)
- return blockFactory;
+ if (_blockFactory != null) {
+ return _blockFactory;
+ }
if (type.equals(String.class)) {
- blockFactory = (XMLStringBlockFactory)FactoryRegistry.getFactory(
+ _blockFactory = (XMLStringBlockFactory)FactoryRegistry.getFactory(
XMLStringBlockFactory.class);
} else if (type.equals(Source.class)) {
- blockFactory = (SourceBlockFactory)FactoryRegistry.getFactory(
+ _blockFactory = (SourceBlockFactory)FactoryRegistry.getFactory(
SourceBlockFactory.class);
} else if (type.equals(SOAPMessage.class)) {
- blockFactory = (SOAPEnvelopeBlockFactory)FactoryRegistry.getFactory(
+ _blockFactory = (SOAPEnvelopeBlockFactory)FactoryRegistry.getFactory(
SOAPEnvelopeBlockFactory.class);
} else {
- ExceptionFactory.makeWebServiceException("Unable to find BlockFactory " +
+ throw ExceptionFactory.makeWebServiceException("Unable to find BlockFactory " +
"for type: " + type.getClass().getName());
}
- return blockFactory;
+ return _blockFactory;
}
protected Method getJavaMethod() {
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/externalize/DebugObjectInput.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/externalize/DebugObjectInput.java?rev=583477&r1=583476&r2=583477&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/externalize/DebugObjectInput.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/externalize/DebugObjectInput.java Wed Oct 10 06:59:46 2007
@@ -143,7 +143,7 @@
trace("start readObject()");
Object value = oi.readObject();
- trace("end readObject()="+ value);
+ trace("end readObject()="+ valueName(value));
return value;
}
@@ -195,4 +195,13 @@
}
}
+ private String valueName(Object obj) {
+ if (obj == null) {
+ return "null";
+ } else if (obj instanceof String) {
+ return (String) obj;
+ } else {
+ return "Object of class = " + obj.getClass().getName();
+ }
+ }
}
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/externalize/DebugObjectOutputStream.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/externalize/DebugObjectOutputStream.java?rev=583477&r1=583476&r2=583477&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/externalize/DebugObjectOutputStream.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/externalize/DebugObjectOutputStream.java Wed Oct 10 06:59:46 2007
@@ -131,7 +131,7 @@
}
public void writeObject(Object obj) throws IOException {
- trace ("start writeObject(v) v=" + obj);
+ trace ("start writeObject(v) v=" + valueName(obj));
out.writeObject(obj);
trace ("end writeObject(v)");
}
@@ -151,6 +151,16 @@
public void trace(String str) {
if (isDebug) {
log.debug(str);
+ }
+ }
+
+ private String valueName(Object obj) {
+ if (obj == null) {
+ return "null";
+ } else if (obj instanceof String) {
+ return (String) obj;
+ } else {
+ return "Object of class = " + obj.getClass().getName();
}
}
}
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/externalize/SafeObjectInputStream.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/externalize/SafeObjectInputStream.java?rev=583477&r1=583476&r2=583477&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/externalize/SafeObjectInputStream.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/externalize/SafeObjectInputStream.java Wed Oct 10 06:59:46 2007
@@ -200,7 +200,7 @@
}
// Put the key and value in the map
if (isDebug) {
- log.debug("Read key=" + key + " value="+value);
+ log.debug("Read key=" + valueName(key) + " value="+valueName(value));
}
map.put(key, value);
} catch (ClassNotFoundException e) {
@@ -273,9 +273,9 @@
tempOIS.close();
bais.close();
}
- // Put the key and value in the map
+ // Put the key and value in the list
if (isDebug) {
- log.debug("Read value="+value);
+ log.debug("Read value="+valueName(value));
}
list.add(value);
} catch (IOException e) {
@@ -341,10 +341,20 @@
}
if (isDebug) {
- log.debug("Read object=" + obj);
+ log.debug("Read object=" + valueName(obj));
}
return obj;
+ }
+
+ private String valueName(Object obj) {
+ if (obj == null) {
+ return "null";
+ } else if (obj instanceof String) {
+ return (String) obj;
+ } else {
+ return "Object of class = " + obj.getClass().getName();
+ }
}
/**
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/externalize/SafeObjectOutputStream.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/externalize/SafeObjectOutputStream.java?rev=583477&r1=583476&r2=583477&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/externalize/SafeObjectOutputStream.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/externalize/SafeObjectOutputStream.java Wed Oct 10 06:59:46 2007
@@ -332,7 +332,7 @@
boolean isSafe) throws IOException {
if (isDebug) {
- log.debug("Writing object:" + obj);
+ log.debug("Writing object:" + valueName(obj));
}
// Shortcut for null objects
@@ -431,7 +431,8 @@
boolean isSafe2) throws IOException {
if (isDebug) {
- log.debug("Writing key=" + obj1 + " value="+obj2);
+ log.debug("Writing key=" + valueName(obj1) +
+ " value="+valueName(obj2));
}
// Shortcut for non-serializable objects
if ((!isSafe1 && !isSerializable(obj1)) ||
@@ -505,7 +506,7 @@
boolean isSafe) throws IOException {
if (isDebug) {
- log.debug("Writing obj=" + obj);
+ log.debug("Writing obj=" + valueName(obj));
}
// Shortcut for non-serializable objects
if (!isSafe && !isSerializable(obj)) {
@@ -692,6 +693,15 @@
}
}
+ private String valueName(Object obj) {
+ if (obj == null) {
+ return "null";
+ } else if (obj instanceof String) {
+ return (String) obj;
+ } else {
+ return "Object of class = " + obj.getClass().getName();
+ }
+ }
/**
* MyBAOS is a ByteArrayOutputStream with a few additions.
*
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org