<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
FaultManager (Apache Sandesha2)
</TITLE>


<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="FaultManager (Apache Sandesha2)";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">
<HR>


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/FaultManager.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../org/apache/sandesha2/util/AcknowledgementManager.html" title="class in org.apache.sandesha2.util"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/sandesha2/util/LoggingControl.html" title="class in org.apache.sandesha2.util"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/apache/sandesha2/util/FaultManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="FaultManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.sandesha2.util</FONT>
<BR>
Class FaultManager</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.sandesha2.util.FaultManager</B>
</PRE>
<HR>
<DL>
<DT><PRE>public class <B>FaultManager</B><DT>extends java.lang.Object</DL>
</PRE>

<P>
Has logic to check for possible RM related faults and create it.
<P>

<P>
<HR>

<P>

<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/sandesha2/util/FaultManager.html#FaultManager()">FaultManager</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/sandesha2/util/FaultManager.html#checkForInvalidAcknowledgement(org.apache.sandesha2.RMMsgContext, org.apache.sandesha2.wsrm.SequenceAcknowledgement, org.apache.sandesha2.storage.StorageManager, org.apache.sandesha2.storage.beans.RMSBean, boolean)">checkForInvalidAcknowledgement</A></B>(<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A>&nbsp;ackRMMessageContext,
                               <A HREF="../../../../org/apache/sandesha2/wsrm/SequenceAcknowledgement.html" title="class in org.apache.sandesha2.wsrm">SequenceAcknowledgement</A>&nbsp;sequenceAcknowledgement,
                               <A HREF="../../../../org/apache/sandesha2/storage/StorageManager.html" title="class in org.apache.sandesha2.storage">StorageManager</A>&nbsp;storageManager,
                               <A HREF="../../../../org/apache/sandesha2/storage/beans/RMSBean.html" title="class in org.apache.sandesha2.storage.beans">RMSBean</A>&nbsp;rmsBean,
                               boolean&nbsp;piggybackedMessage)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Check weather the Acknowledgement is invalid and generate a fault if it
 is.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/sandesha2/util/FaultManager.html#checkForLastMsgNumberExceeded(org.apache.sandesha2.RMMsgContext, org.apache.sandesha2.storage.StorageManager)">checkForLastMsgNumberExceeded</A></B>(<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A>&nbsp;applicationRMMessage,
                              <A HREF="../../../../org/apache/sandesha2/storage/StorageManager.html" title="class in org.apache.sandesha2.storage">StorageManager</A>&nbsp;storageManager)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Check weather the LastMessage number has been exceeded and generate the
 fault if it is.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/sandesha2/util/FaultManager.html#checkForMessageNumberRoleover(org.apache.axis2.context.MessageContext)">checkForMessageNumberRoleover</A></B>(org.apache.axis2.context.MessageContext&nbsp;messageContext)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/sandesha2/util/FaultManager.html#checkForMessageRolledOver(org.apache.sandesha2.RMMsgContext, java.lang.String, long, org.apache.sandesha2.storage.beans.RMDBean)">checkForMessageRolledOver</A></B>(<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A>&nbsp;rmMessageContext,
                          java.lang.String&nbsp;sequenceId,
                          long&nbsp;msgNo,
                          <A HREF="../../../../org/apache/sandesha2/storage/beans/RMDBean.html" title="class in org.apache.sandesha2.storage.beans">RMDBean</A>&nbsp;bean)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks to see if the message number received is == to the Long.MAX_VALUE
 
 Throws and AxisFault, or sends a Fault message if the condition is met.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/sandesha2/util/FaultManager.html#checkForSequenceClosed(org.apache.sandesha2.RMMsgContext, java.lang.String, org.apache.sandesha2.storage.beans.RMDBean, boolean)">checkForSequenceClosed</A></B>(<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A>&nbsp;referenceRMMessage,
                       java.lang.String&nbsp;sequenceID,
                       <A HREF="../../../../org/apache/sandesha2/storage/beans/RMDBean.html" title="class in org.apache.sandesha2.storage.beans">RMDBean</A>&nbsp;rmdBean,
                       boolean&nbsp;piggybackedMessage)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/sandesha2/util/FaultManager.html#checkForSequenceTerminated(org.apache.sandesha2.RMMsgContext, java.lang.String, org.apache.sandesha2.storage.beans.RMSequenceBean, boolean)">checkForSequenceTerminated</A></B>(<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A>&nbsp;referenceRMMessage,
                           java.lang.String&nbsp;sequenceID,
                           <A HREF="../../../../org/apache/sandesha2/storage/beans/RMSequenceBean.html" title="class in org.apache.sandesha2.storage.beans">RMSequenceBean</A>&nbsp;bean,
                           boolean&nbsp;piggybackedMessage)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks if a sequence is terminated and returns a SequenceTerminated fault.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/sandesha2/util/FaultManager.html#checkForUnknownSequence(org.apache.sandesha2.RMMsgContext, java.lang.String, org.apache.sandesha2.storage.StorageManager, boolean)">checkForUnknownSequence</A></B>(<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A>&nbsp;rmMessageContext,
                        java.lang.String&nbsp;sequenceID,
                        <A HREF="../../../../org/apache/sandesha2/storage/StorageManager.html" title="class in org.apache.sandesha2.storage">StorageManager</A>&nbsp;storageManager,
                        boolean&nbsp;piggybackedMessage)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Check whether a Sequence message (a) belongs to a unknown sequence
 (generates an UnknownSequence fault) (b) message number exceeds a
 predifined limit ( genenrates a Message Number Rollover fault)</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/sandesha2/util/FaultManager.html#getOrSendFault(org.apache.sandesha2.RMMsgContext, org.apache.sandesha2.FaultData, boolean, org.apache.axis2.addressing.EndpointReference)">getOrSendFault</A></B>(<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A>&nbsp;referenceRMMsgContext,
               <A HREF="../../../../org/apache/sandesha2/FaultData.html" title="class in org.apache.sandesha2">FaultData</A>&nbsp;data,
               boolean&nbsp;throwable,
               org.apache.axis2.addressing.EndpointReference&nbsp;acksToEPR)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the necessary Fault elements as properties to the message context.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/sandesha2/util/FaultManager.html#isRMFault(java.lang.String)">isRMFault</A></B>(java.lang.String&nbsp;faultSubcodeValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/sandesha2/util/FaultManager.html#makeCreateSequenceRefusedFault(org.apache.sandesha2.RMMsgContext, java.lang.String, java.lang.Exception, org.apache.axis2.addressing.EndpointReference)">makeCreateSequenceRefusedFault</A></B>(<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A>&nbsp;rmMessageContext,
                               java.lang.String&nbsp;detail,
                               java.lang.Exception&nbsp;e,
                               org.apache.axis2.addressing.EndpointReference&nbsp;acksToEPR)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Makes a Create sequence refused fault</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/sandesha2/util/FaultManager.html#makeInvalidAcknowledgementFault(org.apache.sandesha2.RMMsgContext, org.apache.sandesha2.wsrm.SequenceAcknowledgement, org.apache.sandesha2.util.Range, org.apache.sandesha2.storage.StorageManager, boolean, org.apache.axis2.addressing.EndpointReference)">makeInvalidAcknowledgementFault</A></B>(<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A>&nbsp;rmMsgCtx,
                                <A HREF="../../../../org/apache/sandesha2/wsrm/SequenceAcknowledgement.html" title="class in org.apache.sandesha2.wsrm">SequenceAcknowledgement</A>&nbsp;sequenceAcknowledgement,
                                <A HREF="../../../../org/apache/sandesha2/util/Range.html" title="class in org.apache.sandesha2.util">Range</A>&nbsp;acknowledgementRange,
                                <A HREF="../../../../org/apache/sandesha2/storage/StorageManager.html" title="class in org.apache.sandesha2.storage">StorageManager</A>&nbsp;storageManager,
                                boolean&nbsp;piggybackedMessage,
                                org.apache.axis2.addressing.EndpointReference&nbsp;acksToEPR)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Makes an InvalidAcknowledgement fault.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/sandesha2/util/FaultManager.html#makeMissingSelectionFault(org.apache.sandesha2.RMMsgContext)">makeMissingSelectionFault</A></B>(<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A>&nbsp;rmMessageContext)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Makes WSMC MissingSelectionFault</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/sandesha2/util/FaultManager.html#makeUnsupportedSelectionFault(org.apache.sandesha2.RMMsgContext, javax.xml.namespace.QName)">makeUnsupportedSelectionFault</A></B>(<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A>&nbsp;rmMessageContext,
                              javax.xml.namespace.QName&nbsp;unsupportedElement)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Makes the WSMC UnsupportedSelectionFault</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;org.apache.axis2.engine.Handler.InvocationResponse</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/sandesha2/util/FaultManager.html#processMessagesForFaults(org.apache.sandesha2.RMMsgContext, org.apache.sandesha2.storage.StorageManager)">processMessagesForFaults</A></B>(<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A>&nbsp;rmMsgCtx,
                         <A HREF="../../../../org/apache/sandesha2/storage/StorageManager.html" title="class in org.apache.sandesha2.storage">StorageManager</A>&nbsp;storageManager)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="FaultManager()"><!-- --></A><H3>
FaultManager</H3>
<PRE>
public <B>FaultManager</B>()</PRE>
<DL>
</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="checkForLastMsgNumberExceeded(org.apache.sandesha2.RMMsgContext, org.apache.sandesha2.storage.StorageManager)"><!-- --></A><H3>
checkForLastMsgNumberExceeded</H3>
<PRE>
public static void <B>checkForLastMsgNumberExceeded</B>(<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A>&nbsp;applicationRMMessage,
                                                 <A HREF="../../../../org/apache/sandesha2/storage/StorageManager.html" title="class in org.apache.sandesha2.storage">StorageManager</A>&nbsp;storageManager)
                                          throws org.apache.axis2.AxisFault</PRE>
<DL>
<DD>Check weather the LastMessage number has been exceeded and generate the
 fault if it is.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>msgCtx</CODE> - 
<DT><B>Throws:</B>
<DD><CODE>org.apache.axis2.AxisFault</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="checkForMessageNumberRoleover(org.apache.axis2.context.MessageContext)"><!-- --></A><H3>
checkForMessageNumberRoleover</H3>
<PRE>
public static <A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A> <B>checkForMessageNumberRoleover</B>(org.apache.axis2.context.MessageContext&nbsp;messageContext)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="checkForUnknownSequence(org.apache.sandesha2.RMMsgContext, java.lang.String, org.apache.sandesha2.storage.StorageManager, boolean)"><!-- --></A><H3>
checkForUnknownSequence</H3>
<PRE>
public static boolean <B>checkForUnknownSequence</B>(<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A>&nbsp;rmMessageContext,
                                              java.lang.String&nbsp;sequenceID,
                                              <A HREF="../../../../org/apache/sandesha2/storage/StorageManager.html" title="class in org.apache.sandesha2.storage">StorageManager</A>&nbsp;storageManager,
                                              boolean&nbsp;piggybackedMessage)
                                       throws org.apache.axis2.AxisFault</PRE>
<DL>
<DD>Check whether a Sequence message (a) belongs to a unknown sequence
 (generates an UnknownSequence fault) (b) message number exceeds a
 predifined limit ( genenrates a Message Number Rollover fault)
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>msgCtx</CODE> - 
<DT><B>Returns:</B><DD>true if no exception has been thrown and the sequence doesn't exist
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/sandesha2/SandeshaException.html" title="class in org.apache.sandesha2">SandeshaException</A></CODE>
<DD><CODE>org.apache.axis2.AxisFault</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="checkForInvalidAcknowledgement(org.apache.sandesha2.RMMsgContext, org.apache.sandesha2.wsrm.SequenceAcknowledgement, org.apache.sandesha2.storage.StorageManager, org.apache.sandesha2.storage.beans.RMSBean, boolean)"><!-- --></A><H3>
checkForInvalidAcknowledgement</H3>
<PRE>
public static boolean <B>checkForInvalidAcknowledgement</B>(<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A>&nbsp;ackRMMessageContext,
                                                     <A HREF="../../../../org/apache/sandesha2/wsrm/SequenceAcknowledgement.html" title="class in org.apache.sandesha2.wsrm">SequenceAcknowledgement</A>&nbsp;sequenceAcknowledgement,
                                                     <A HREF="../../../../org/apache/sandesha2/storage/StorageManager.html" title="class in org.apache.sandesha2.storage">StorageManager</A>&nbsp;storageManager,
                                                     <A HREF="../../../../org/apache/sandesha2/storage/beans/RMSBean.html" title="class in org.apache.sandesha2.storage.beans">RMSBean</A>&nbsp;rmsBean,
                                                     boolean&nbsp;piggybackedMessage)
                                              throws org.apache.axis2.AxisFault</PRE>
<DL>
<DD>Check weather the Acknowledgement is invalid and generate a fault if it
 is.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>msgCtx</CODE> - 
<DT><B>Returns:</B><DD>
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/sandesha2/SandeshaException.html" title="class in org.apache.sandesha2">SandeshaException</A></CODE>
<DD><CODE>org.apache.axis2.AxisFault</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="makeInvalidAcknowledgementFault(org.apache.sandesha2.RMMsgContext, org.apache.sandesha2.wsrm.SequenceAcknowledgement, org.apache.sandesha2.util.Range, org.apache.sandesha2.storage.StorageManager, boolean, org.apache.axis2.addressing.EndpointReference)"><!-- --></A><H3>
makeInvalidAcknowledgementFault</H3>
<PRE>
public static void <B>makeInvalidAcknowledgementFault</B>(<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A>&nbsp;rmMsgCtx,
                                                   <A HREF="../../../../org/apache/sandesha2/wsrm/SequenceAcknowledgement.html" title="class in org.apache.sandesha2.wsrm">SequenceAcknowledgement</A>&nbsp;sequenceAcknowledgement,
                                                   <A HREF="../../../../org/apache/sandesha2/util/Range.html" title="class in org.apache.sandesha2.util">Range</A>&nbsp;acknowledgementRange,
                                                   <A HREF="../../../../org/apache/sandesha2/storage/StorageManager.html" title="class in org.apache.sandesha2.storage">StorageManager</A>&nbsp;storageManager,
                                                   boolean&nbsp;piggybackedMessage,
                                                   org.apache.axis2.addressing.EndpointReference&nbsp;acksToEPR)
                                            throws org.apache.axis2.AxisFault</PRE>
<DL>
<DD>Makes an InvalidAcknowledgement fault.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>rmMsgCtx</CODE> - <DD><CODE>storageManager</CODE> - <DD><CODE>message</CODE> - 
<DT><B>Throws:</B>
<DD><CODE>org.apache.axis2.AxisFault</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="makeCreateSequenceRefusedFault(org.apache.sandesha2.RMMsgContext, java.lang.String, java.lang.Exception, org.apache.axis2.addressing.EndpointReference)"><!-- --></A><H3>
makeCreateSequenceRefusedFault</H3>
<PRE>
public static void <B>makeCreateSequenceRefusedFault</B>(<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A>&nbsp;rmMessageContext,
                                                  java.lang.String&nbsp;detail,
                                                  java.lang.Exception&nbsp;e,
                                                  org.apache.axis2.addressing.EndpointReference&nbsp;acksToEPR)
                                           throws org.apache.axis2.AxisFault</PRE>
<DL>
<DD>Makes a Create sequence refused fault
<P>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE>org.apache.axis2.AxisFault</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="makeUnsupportedSelectionFault(org.apache.sandesha2.RMMsgContext, javax.xml.namespace.QName)"><!-- --></A><H3>
makeUnsupportedSelectionFault</H3>
<PRE>
public static void <B>makeUnsupportedSelectionFault</B>(<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A>&nbsp;rmMessageContext,
                                                 javax.xml.namespace.QName&nbsp;unsupportedElement)
                                          throws org.apache.axis2.AxisFault</PRE>
<DL>
<DD>Makes the WSMC UnsupportedSelectionFault
<P>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE>org.apache.axis2.AxisFault</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="makeMissingSelectionFault(org.apache.sandesha2.RMMsgContext)"><!-- --></A><H3>
makeMissingSelectionFault</H3>
<PRE>
public static void <B>makeMissingSelectionFault</B>(<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A>&nbsp;rmMessageContext)
                                      throws org.apache.axis2.AxisFault</PRE>
<DL>
<DD>Makes WSMC MissingSelectionFault
<P>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE>org.apache.axis2.AxisFault</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="checkForSequenceTerminated(org.apache.sandesha2.RMMsgContext, java.lang.String, org.apache.sandesha2.storage.beans.RMSequenceBean, boolean)"><!-- --></A><H3>
checkForSequenceTerminated</H3>
<PRE>
public static boolean <B>checkForSequenceTerminated</B>(<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A>&nbsp;referenceRMMessage,
                                                 java.lang.String&nbsp;sequenceID,
                                                 <A HREF="../../../../org/apache/sandesha2/storage/beans/RMSequenceBean.html" title="class in org.apache.sandesha2.storage.beans">RMSequenceBean</A>&nbsp;bean,
                                                 boolean&nbsp;piggybackedMessage)
                                          throws org.apache.axis2.AxisFault</PRE>
<DL>
<DD>Checks if a sequence is terminated and returns a SequenceTerminated fault.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>referenceRMMessage</CODE> - <DD><CODE>sequenceID</CODE> - <DD><CODE>rmdBean</CODE> - 
<DT><B>Returns:</B><DD>
<DT><B>Throws:</B>
<DD><CODE>org.apache.axis2.AxisFault</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="checkForSequenceClosed(org.apache.sandesha2.RMMsgContext, java.lang.String, org.apache.sandesha2.storage.beans.RMDBean, boolean)"><!-- --></A><H3>
checkForSequenceClosed</H3>
<PRE>
public static boolean <B>checkForSequenceClosed</B>(<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A>&nbsp;referenceRMMessage,
                                             java.lang.String&nbsp;sequenceID,
                                             <A HREF="../../../../org/apache/sandesha2/storage/beans/RMDBean.html" title="class in org.apache.sandesha2.storage.beans">RMDBean</A>&nbsp;rmdBean,
                                             boolean&nbsp;piggybackedMessage)
                                      throws org.apache.axis2.AxisFault</PRE>
<DL>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE>org.apache.axis2.AxisFault</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getOrSendFault(org.apache.sandesha2.RMMsgContext, org.apache.sandesha2.FaultData, boolean, org.apache.axis2.addressing.EndpointReference)"><!-- --></A><H3>
getOrSendFault</H3>
<PRE>
public static void <B>getOrSendFault</B>(<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A>&nbsp;referenceRMMsgContext,
                                  <A HREF="../../../../org/apache/sandesha2/FaultData.html" title="class in org.apache.sandesha2">FaultData</A>&nbsp;data,
                                  boolean&nbsp;throwable,
                                  org.apache.axis2.addressing.EndpointReference&nbsp;acksToEPR)
                           throws org.apache.axis2.AxisFault</PRE>
<DL>
<DD>Adds the necessary Fault elements as properties to the message context.
 Or if this is a SOAP11 Fault, generates the correct RM Fault and sends.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>referenceRMMsgContext</CODE> - - Message in reference to which the fault will be generated.<DD><CODE>data</CODE> - - data for the fault<DD><CODE>throwable</CODE> - - This tells weather or not it is ok to throw the fault out. I.e. this should not be done when processing 
                                          piggybacked acks since this will stop the carrier message from being processed.
<DT><B>Throws:</B>
<DD><CODE>org.apache.axis2.AxisFault</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="isRMFault(java.lang.String)"><!-- --></A><H3>
isRMFault</H3>
<PRE>
public static boolean <B>isRMFault</B>(java.lang.String&nbsp;faultSubcodeValue)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="processMessagesForFaults(org.apache.sandesha2.RMMsgContext, org.apache.sandesha2.storage.StorageManager)"><!-- --></A><H3>
processMessagesForFaults</H3>
<PRE>
public static org.apache.axis2.engine.Handler.InvocationResponse <B>processMessagesForFaults</B>(<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A>&nbsp;rmMsgCtx,
                                                                                          <A HREF="../../../../org/apache/sandesha2/storage/StorageManager.html" title="class in org.apache.sandesha2.storage">StorageManager</A>&nbsp;storageManager)
                                                                                   throws org.apache.axis2.AxisFault</PRE>
<DL>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE>org.apache.axis2.AxisFault</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="checkForMessageRolledOver(org.apache.sandesha2.RMMsgContext, java.lang.String, long, org.apache.sandesha2.storage.beans.RMDBean)"><!-- --></A><H3>
checkForMessageRolledOver</H3>
<PRE>
public static boolean <B>checkForMessageRolledOver</B>(<A HREF="../../../../org/apache/sandesha2/RMMsgContext.html" title="class in org.apache.sandesha2">RMMsgContext</A>&nbsp;rmMessageContext,
                                                java.lang.String&nbsp;sequenceId,
                                                long&nbsp;msgNo,
                                                <A HREF="../../../../org/apache/sandesha2/storage/beans/RMDBean.html" title="class in org.apache.sandesha2.storage.beans">RMDBean</A>&nbsp;bean)
                                         throws org.apache.axis2.AxisFault</PRE>
<DL>
<DD>Checks to see if the message number received is == to the Long.MAX_VALUE
 
 Throws and AxisFault, or sends a Fault message if the condition is met.
<P>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE>org.apache.axis2.AxisFault</CODE></DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/FaultManager.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../org/apache/sandesha2/util/AcknowledgementManager.html" title="class in org.apache.sandesha2.util"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/sandesha2/util/LoggingControl.html" title="class in org.apache.sandesha2.util"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/apache/sandesha2/util/FaultManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="FaultManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
Copyright © <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>