 
     [Bindable(event="propertyChange")]
 
-	/**
-	 *  The number of reconnect attempts that the Producer makes in the event
-	 *  that the destination is unavailable or the connection to the destination closes. 
-	 *  A value of -1 enables infinite attempts.
-	 *  A value of zero disables reconnect attempts.
-	 * 	<p>
-	 *  Reconnect attempts are made at a constant rate according to the reconnect interval
-	 *  value. When a reconnect attempt is made if the underlying channel for the Producer is not
-	 *  connected or attempting to connect the channel will start a connect attempt. 
-	 *  Subsequent Producer reconnect attempts that occur while the underlying
-	 *  channel connect attempt is outstanding are effectively ignored until
-	 *  the outstanding channel connect attempt succeeds or fails. 
-	 *  </p>
-	 * 
-	 *  @see mx.messaging.Producer#reconnectInterval
-	 */
-	public function get reconnectAttempts():int
-	{
-	    return _reconnectAttempts;
-	}
-	
-	/**
-	 *  @private
-	 */
-	public function set reconnectAttempts(value:int):void
-	{
-	    if (_reconnectAttempts != value)
-	    {
-	        if (value == 0)
-	            stopReconnectTimer();
-	        
-	        var event:PropertyChangeEvent = PropertyChangeEvent.createUpdateEvent(this, "reconnectAttempts", _reconnectAttempts, value);
-	        _reconnectAttempts = value;
-	        dispatchEvent(event);
-	    }  
-	}
-    
-    //----------------------------------
-	//  reconnectInterval
-	//----------------------------------
+    /**
+     *  The number of reconnect attempts that the Producer makes in the event
+     *  that the destination is unavailable or the connection to the destination closes. 
+     *  A value of -1 enables infinite attempts.
+     *  A value of zero disables reconnect attempts.
+     * 
+     *  <p>Reconnect attempts are made at a constant rate according to the reconnect interval
+     *  value. When a reconnect attempt is made if the underlying channel for the Producer is not
+     *  connected or attempting to connect the channel will start a connect attempt. 
+     *  Subsequent Producer reconnect attempts that occur while the underlying
+     *  channel connect attempt is outstanding are effectively ignored until
+     *  the outstanding channel connect attempt succeeds or fails. </p>
+     * 
+     *  @see mx.messaging.Producer#reconnectInterval
+     */
+    public function get reconnectAttempts():int
+    {
+        return _reconnectAttempts;
+    }
+    
+    /**
+     *  @private
+     */
+    public function set reconnectAttempts(value:int):void
+    {
+        if (_reconnectAttempts != value)
+        {
+            if (value == 0)
+                stopReconnectTimer();
+            
+            var event:PropertyChangeEvent = PropertyChangeEvent.createUpdateEvent(this, "reconnectAttempts", _reconnectAttempts, value);
+            _reconnectAttempts = value;
+            dispatchEvent(event);
+        }  
+    }
+    
+    //----------------------------------
+    //  reconnectInterval
+    //----------------------------------
 
     /**
      *  @private

     *  @param msg The original message.
     * 
     *  @param routeToStore currently not used.  Previously was a flag used to
     *  indicate if the faulted message shoudl be stored offline to retry.
     * 
     *  @param ignoreDisconnectBarrier If true the message is faulted regardless 
     *  of whether disconnect() has been invoked. Generally a disconnect() will 
     *  supress pending acks and faults.
	 */
	mx_internal function internalFault(errMsg:ErrorMessage, msg:IMessage, 
	                                   routeToStore:Boolean = true, 
	                                   ignoreDisconnectBarrier:Boolean = false):void
	{
	    // Ignore faults for any outstanding messages that return after disconnect() is invoked.
	    if (_disconnectBarrier && !ignoreDisconnectBarrier)
	        return;
        
        if (msg is CommandMessage && CommandMessage(msg).operation == CommandMessage.CLIENT_PING_OPERATION)
        {

    // Private Methods
    // 
    //--------------------------------------------------------------------------
    
    /**
     *  @private
     *  Builds an ErrorMessage for a failed connect attempt.
     * 
     *  @return The ErrorMessage.
     */
    private function buildConnectErrorMessage():ErrorMessage
    {
        var errMsg:ErrorMessage = new ErrorMessage();
        errMsg.faultCode = "Client.Error.Connect";
        errMsg.faultString = resourceManager.getString(
            "messaging", "producerConnectError");
        errMsg.faultDetail = resourceManager.getString(
            "messaging", "failedToConnect");
        errMsg.correlationId = _connectMsg.messageId;
        return errMsg;
    }
    
    /**
     *  @private
     *  Builds a 'connect' message to use for a connect attempt.
     *  
     *  @return The 'connect' CommandMessage.
     */
    private function buildConnectMessage():CommandMessage
    {
        var msg:CommandMessage = new CommandMessage();
        msg.operation = CommandMessage.CLIENT_PING_OPERATION;
        msg.clientId = clientId;
        msg.destination = destination;
        return msg;
    }
    
}

}
