[ 
https://issues.apache.org/jira/browse/HADOOP-5348?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12683427#action_12683427
 ] 

Steve Loughran commented on HADOOP-5348:
----------------------------------------

Some sample exception classes, mostly soapfault related, that so similarish 
things

Axis 1.x AxisFault
http://svn.apache.org/viewvc/webservices/axis/trunk/java/src/org/apache/axis/AxisFault.java?view=markup
* lots of complexity related to XML fragments, parsing, namespaces -stuff to 
avoid.
* automatically adds hostname as one of the elements, very good for tracking 
down trouble in a cluster
* Security: the normal Axis servlet strips out the stack before sending the 
fault over the wire, unless the machine has a "development box" switch set. 

Axis 2 AxisFault
http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/AxisFault.java?view=markup
* lots of SOAP1.2 complexity
* extracts the inner cause of a InvocationTargetException or 
UndeclaredThrowableException and discards the wrapper
* Security: has methods used to print the fault in an HTML page, methods that 
sanitize all strings by escaping angle brackets

Alpine faulting
http://smartfrog.svn.sourceforge.net/viewvc/smartfrog/trunk/projects/alpine/prototype/M32/src/java/org/smartfrog/projects/alpine/faults/
* Lots of SOAP1.1/1.2 complexity
* has an interface, {{SoapFaultSource}}, that you can implement in any subclass 
of Throwable to say "I'll handle the fault to SOAP conversion".
* does some escaping of all received details, in case a malicious far end 
decides to send back malicious html as the fault name
* Can back-convert to an exception, but never tries to do the original (Because 
of this [www.hpl.hp.com/techreports/2005/HPL-2005-83.pdf] )

All of these suffer from the complexity of SOAP stacks, and the SOAP1.2 fault 
design in particular. what may be relevant is
# Hostnames are invaluable to retain, to add to new exceptions
# Being able to add name, value data is good, but full XML is far too much. 
String->string works well
# It's nice to have a client/server flag
# We may need to think of security, at least the use case of converting an 
exception into HTML to display on a report page.


> Create a stable wire format for exceptions
> ------------------------------------------
>
>                 Key: HADOOP-5348
>                 URL: https://issues.apache.org/jira/browse/HADOOP-5348
>             Project: Hadoop Core
>          Issue Type: New Feature
>          Components: ipc
>    Affects Versions: 0.20.0, 0.21.0
>            Reporter: Steve Loughran
>         Attachments: ThrowableWritable.java
>
>
> HADOOP-5201 and other issues would benefit from a stable representation of 
> exceptions, one that can be sent over the network, maybe pushed out to web 
> UIs and which we can be 100% sure that the far end will be able to handle if 
> they have the hadoop-core JAR on their classpath.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to