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 wh...@apache.org on 2005/06/15 22:24:22 UTC

cvs commit: ws-axis/c/tests/auto_build/testcases/dynamic/DynUnrefAttachmentTest DynUnrefAttachmentTest.cpp

whitlock    2005/06/15 13:24:22

  Modified:    c/include/axis AxisException.hpp
               c/include/axis/client Call.hpp
               c/src/engine/client Call.cpp
               c/src/soap AxisSoapException.cpp ContentIdSet.cpp
                        ContentIdSet.hpp SoapAttachment.cpp
                        SoapAttachment.hpp SoapSerializer.cpp
                        SoapSerializer.h
               c/tests/auto_build/testcases/dynamic/DynUnrefAttachmentTest
                        DynUnrefAttachmentTest.cpp
  Log:
  Unreferenced attachments.
  Add in the ContentIdSet class to generate Content-Ids and ensure user-defined Content-Ids are unique
  
  Revision  Changes    Path
  1.8       +51 -50    ws-axis/c/include/axis/AxisException.hpp
  
  Index: AxisException.hpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/include/axis/AxisException.hpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- AxisException.hpp	23 Mar 2005 15:44:53 -0000	1.7
  +++ AxisException.hpp	15 Jun 2005 20:24:22 -0000	1.8
  @@ -97,68 +97,69 @@
   /*21*/   CLIENT_SSLCHANNEL_INVALID_SOCKET_ERROR,
   /*22*/   CLIENT_SSLCHANNEL_CONTEXT_CREATE_ERROR,
   /*23*/   CLIENT_SSLCHANNEL_ERROR,
  +/*24*/   CLIENT_MIME_CONTENT_ID_NOT_UNIQUE,
   
       /* Server faults */
  -/*24*/    SERVER_ENGINE_EXCEPTION,
  -/*25*/    SERVER_ENGINE_COULD_NOT_LOAD_SRV,
  -/*26*/    SERVER_ENGINE_COULD_NOT_LOAD_HDL,
  -/*27*/    SERVER_ENGINE_LOADING_TRANSPORT_FAILED,
  -/*28*/    SERVER_ENGINE_LOADING_PARSER_FAILED,
  -/*29*/    SERVER_ENGINE_HANDLER_FAILED,
  -/*30*/    SERVER_ENGINE_WEBSERVICE_FAILED,
  -/*31*/    SERVER_ENGINE_HANDLER_INIT_FAILED,
  -/*32*/    SERVER_ENGINE_HANDLER_CREATION_FAILED,
  -/*33*/    SERVER_ENGINE_LIBRARY_LOADING_FAILED,
  -/*34*/    SERVER_ENGINE_HANDLER_NOT_LOADED,
  -/*35*/    SERVER_ENGINE_HANDLER_BEING_USED,
  -/*36*/    SERVER_ENGINE_GET_HANDLER_FAILED,
  -/*37*/    SERVER_ENGINE_WRONG_HANDLER_TYPE,
  -/*38*/    SERVER_CONFIG_EXCEPTION,
  -/*39*/    SERVER_CONFIG_TRANSPORT_CONF_FAILED,
  -/*40*/    SERVER_CONFIG_LIBRARY_PATH_EMPTY,
  -/*41*/    SERVER_WSDD_FILE_NOT_FOUND,
  -/*42*/    SERVER_WSDD_EXCEPTION,
  -/*43*/    SERVER_WSDD_NO_HANDLERS_CONFIGURED,
  -/*44*/    SERVER_SOAP_EXCEPTION,
  -/*45*/    SERVER_TRANSPORT_EXCEPTION,
  -/*46*/    SERVER_TRANSPORT_RECEPTION_EXCEPTION,
  -/*47*/    SERVER_TRANSPORT_SENDING_EXCEPTION,
  -/*48*/    SERVER_TRANSPORT_PROCESS_EXCEPTION,
  -/*49*/    SERVER_TRANSPORT_UNKNOWN_HTTP_RESPONSE,
  -/*50*/    SERVER_TRANSPORT_HTTP_EXCEPTION,
  -/*51*/    SERVER_TRANSPORT_UNEXPECTED_STRING,
  -/*52*/    SERVER_TRANSPORT_CHANNEL_INIT_ERROR,
  -/*53*/    SERVER_TRANSPORT_SOCKET_CREATE_ERROR,
  -/*54*/    SERVER_TRANSPORT_SOCKET_CONNECT_ERROR,
  -/*55*/    SERVER_TRANSPORT_INVALID_SOCKET,
  -/*56*/    SERVER_TRANSPORT_OUTPUT_STREAMING_ERROR,
  -/*57*/    SERVER_TRANSPORT_INPUT_STREAMING_ERROR,
  -/*58*/    SERVER_TRANSPORT_TIMEOUT_EXCEPTION,
  -/*59*/    SERVER_TRANSPORT_TIMEOUT_EXPIRED,
  -/*60*/    SERVER_TRANSPORT_LOADING_SSLCHANNEL_FAILED,
  -/*61*/	  SERVER_TRANSPORT_LOADING_CHANNEL_FAILED,
  -/*62*/    SERVER_TRANSPORT_BUFFER_EMPTY,
  -/*63*/    SERVER_PARSE_BUFFER_EMPTY,
  -/*64*/    SERVER_PARSE_PARSER_FAILED, 
  -/*65*/    SERVER_PARSE_TRANSPORT_FAILED,
  -/*66*/    SERVER_TEST_EXCEPTION,
  -/*67*/    SERVER_UNKNOWN_ERROR,
  -/*68*/    SERVER_CLIENT_ENGINE_MISMATCH,
  +/*25*/    SERVER_ENGINE_EXCEPTION,
  +/*26*/    SERVER_ENGINE_COULD_NOT_LOAD_SRV,
  +/*27*/    SERVER_ENGINE_COULD_NOT_LOAD_HDL,
  +/*28*/    SERVER_ENGINE_LOADING_TRANSPORT_FAILED,
  +/*29*/    SERVER_ENGINE_LOADING_PARSER_FAILED,
  +/*30*/    SERVER_ENGINE_HANDLER_FAILED,
  +/*31*/    SERVER_ENGINE_WEBSERVICE_FAILED,
  +/*32*/    SERVER_ENGINE_HANDLER_INIT_FAILED,
  +/*33*/    SERVER_ENGINE_HANDLER_CREATION_FAILED,
  +/*34*/    SERVER_ENGINE_LIBRARY_LOADING_FAILED,
  +/*35*/    SERVER_ENGINE_HANDLER_NOT_LOADED,
  +/*36*/    SERVER_ENGINE_HANDLER_BEING_USED,
  +/*37*/    SERVER_ENGINE_GET_HANDLER_FAILED,
  +/*38*/    SERVER_ENGINE_WRONG_HANDLER_TYPE,
  +/*39*/    SERVER_CONFIG_EXCEPTION,
  +/*40*/    SERVER_CONFIG_TRANSPORT_CONF_FAILED,
  +/*41*/    SERVER_CONFIG_LIBRARY_PATH_EMPTY,
  +/*42*/    SERVER_WSDD_FILE_NOT_FOUND,
  +/*43*/    SERVER_WSDD_EXCEPTION,
  +/*44*/    SERVER_WSDD_NO_HANDLERS_CONFIGURED,
  +/*45*/    SERVER_SOAP_EXCEPTION,
  +/*46*/    SERVER_TRANSPORT_EXCEPTION,
  +/*47*/    SERVER_TRANSPORT_RECEPTION_EXCEPTION,
  +/*48*/    SERVER_TRANSPORT_SENDING_EXCEPTION,
  +/*49*/    SERVER_TRANSPORT_PROCESS_EXCEPTION,
  +/*50*/    SERVER_TRANSPORT_UNKNOWN_HTTP_RESPONSE,
  +/*51*/    SERVER_TRANSPORT_HTTP_EXCEPTION,
  +/*52*/    SERVER_TRANSPORT_UNEXPECTED_STRING,
  +/*53*/    SERVER_TRANSPORT_CHANNEL_INIT_ERROR,
  +/*54*/    SERVER_TRANSPORT_SOCKET_CREATE_ERROR,
  +/*55*/    SERVER_TRANSPORT_SOCKET_CONNECT_ERROR,
  +/*56*/    SERVER_TRANSPORT_INVALID_SOCKET,
  +/*57*/    SERVER_TRANSPORT_OUTPUT_STREAMING_ERROR,
  +/*58*/    SERVER_TRANSPORT_INPUT_STREAMING_ERROR,
  +/*59*/    SERVER_TRANSPORT_TIMEOUT_EXCEPTION,
  +/*60*/    SERVER_TRANSPORT_TIMEOUT_EXPIRED,
  +/*61*/    SERVER_TRANSPORT_LOADING_SSLCHANNEL_FAILED,
  +/*62*/	  SERVER_TRANSPORT_LOADING_CHANNEL_FAILED,
  +/*63*/    SERVER_TRANSPORT_BUFFER_EMPTY,
  +/*64*/    SERVER_PARSE_BUFFER_EMPTY,
  +/*65*/    SERVER_PARSE_PARSER_FAILED, 
  +/*66*/    SERVER_PARSE_TRANSPORT_FAILED,
  +/*67*/    SERVER_TEST_EXCEPTION,
  +/*68*/    SERVER_UNKNOWN_ERROR,
  +/*69*/    SERVER_CLIENT_ENGINE_MISMATCH,
   
       /* AXIS C faults */
       /*Following exceptions are not releated to soap faults
        */
  -/*60*/    AXISC_SERVICE_THROWN_EXCEPTION,
  -/*70*/    AXISC_UNKNOWN_ELEMENT_EXCEPTION,
  -/*71*/    AXISC_NODE_VALUE_MISMATCH_EXCEPTION,
  -/*72*/    AXISC_READ_CONF_EXCEPTION,
  +/*70*/    AXISC_SERVICE_THROWN_EXCEPTION,
  +/*71*/    AXISC_UNKNOWN_ELEMENT_EXCEPTION,
  +/*72*/    AXISC_NODE_VALUE_MISMATCH_EXCEPTION,
  +/*73*/    AXISC_READ_CONF_EXCEPTION,
   
       /*
        * This FAULT_LAST is not used as a fault code, but instead is used 
        * internaly in the code. Developers should not use this as a fault 
        * code.
        */
  -/*73*/    FAULT_LAST 
  +/*74*/    FAULT_LAST 
   } AXISC_EXCEPTIONS;
   
   /**
  
  
  
  1.31      +2 -0      ws-axis/c/include/axis/client/Call.hpp
  
  Index: Call.hpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/include/axis/client/Call.hpp,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- Call.hpp	14 Jun 2005 09:31:21 -0000	1.30
  +++ Call.hpp	15 Jun 2005 20:24:22 -0000	1.31
  @@ -63,6 +63,7 @@
   class SoapDeSerializer;
   class SoapSerializer;
   class ISoapAttachment;
  +class ContentIdSet;
   
   class STORAGE_CLASS_INFO CallBase
   {
  @@ -676,6 +677,7 @@
       // Samisa m_pchSessionID was misssing and there was a compile error due to this
       char* m_pchSessionID;
   
  +	ContentIdSet *m_pContentIdSet;
   };
   AXIS_CPP_NAMESPACE_END
   
  
  
  
  1.117     +6 -2      ws-axis/c/src/engine/client/Call.cpp
  
  Index: Call.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/engine/client/Call.cpp,v
  retrieving revision 1.116
  retrieving revision 1.117
  diff -u -r1.116 -r1.117
  --- Call.cpp	14 Jun 2005 09:31:21 -0000	1.116
  +++ Call.cpp	15 Jun 2005 20:24:22 -0000	1.117
  @@ -56,6 +56,7 @@
       
       m_nStatus = AXIS_SUCCESS;
       m_pchSessionID = NULL;
  +	m_pContentIdSet = new ContentIdSet();
   
       // Setup Transport
       try
  @@ -131,6 +132,8 @@
       if (m_pcEndPointUri)
           delete [] m_pcEndPointUri;  
   	m_pcEndPointUri = NULL;
  +	delete m_pContentIdSet;
  +	m_pContentIdSet = NULL;
   
   	list<ISoapAttachment*>::iterator it = m_attachments.begin();
   	while (it != m_attachments.end())
  @@ -262,10 +265,11 @@
                           msgData->setProperty("sessionid", m_pchSessionID);
                       }
   
  +					m_pIWSSZ->setContentIdSet(m_pContentIdSet);
   					list<ISoapAttachment*>::iterator itAtt = m_attachments.begin();
   					while (itAtt != m_attachments.end())
   					{
  -						m_pIWSSZ->addAttachment((*itAtt)->getHeader("Content-Id"),*itAtt);
  +						m_pIWSSZ->addAttachment((*itAtt)->getHeader(AXIS_CONTENT_ID),*itAtt);
   						itAtt++;
   					}
   					m_attachments.clear();
  @@ -1053,5 +1057,5 @@
   
   ISoapAttachment* Call::createSoapAttachment()
   {
  -	return new SoapAttachment();
  +	return new SoapAttachment(m_pContentIdSet);
   }
  
  
  
  1.18      +3 -0      ws-axis/c/src/soap/AxisSoapException.cpp
  
  Index: AxisSoapException.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/soap/AxisSoapException.cpp,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- AxisSoapException.cpp	18 Oct 2004 09:40:27 -0000	1.17
  +++ AxisSoapException.cpp	15 Jun 2005 20:24:22 -0000	1.18
  @@ -121,6 +121,9 @@
           case CLIENT_SOAP_CONTENT_NOT_SOAP:
               m_sMessage = "AxisSoapException:Content is not a valid soap message";
               break;
  +        case CLIENT_MIME_CONTENT_ID_NOT_UNIQUE:
  +            m_sMessage = "AxisSoapException:Content is not unique within the MIME message";
  +            break;
           default:
               m_sMessage = "AxisSoapException:Unknown Soap Exception";
       }
  
  
  
  1.2       +55 -0     ws-axis/c/src/soap/ContentIdSet.cpp
  
  Index: ContentIdSet.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/soap/ContentIdSet.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ContentIdSet.cpp	15 Jun 2005 13:37:31 -0000	1.1
  +++ ContentIdSet.cpp	15 Jun 2005 20:24:22 -0000	1.2
  @@ -17,17 +17,72 @@
    */
   
   #include "ContentIdSet.hpp"
  +#include "AxisSoapException.h"
  +#include <list>
   
  +using namespace std;
   AXIS_CPP_NAMESPACE_START
   
   ContentIdSet::ContentIdSet()
   {
  +	m_maxId = 0;
   }
   
   ContentIdSet::~ContentIdSet()
   {
  +	clearAll();
   }
   
  +void ContentIdSet::registerId(const char* id)
  +{
  +	for (list<const char*>::iterator it = m_set.begin(); it != m_set.end(); it++)
  +	{
  +		if ((*it) && 0==strcmp(id,*it)) throw AxisSoapException(CLIENT_MIME_CONTENT_ID_NOT_UNIQUE);
  +	}
  +	char *copy = new char[strlen(id)+1];
  +	strcpy(copy,id);
  +	m_set.push_back(const_cast<const char *>(copy));
  +}
  +
  +const char *ContentIdSet::generateId()
  +{
  +	m_maxId++;
  +	char pszId[8];
  +	sprintf(pszId,"%u",m_maxId);
  +	bool found = true;
  +	while (found)
  +	{
  +		found = false;
  +		for (list<const char*>::iterator it = m_set.begin(); it != m_set.end(); it++)
  +		{
  +			if ((*it) && 0==strcmp(*it,pszId))
  +			{
  +				m_maxId++;
  +				sprintf(pszId,"%u",m_maxId);
  +				found = true;
  +				break;
  +			}
  +		}
  +	}
  +
  +	char *copy = new char[strlen(pszId)+1];
  +	strcpy(copy,pszId);
  +	m_set.push_back(const_cast<const char *>(copy));
  +	return const_cast<const char *>(copy);
  +}
  +
  +void ContentIdSet::clearAll()
  +{
  +	for (list<const char*>::iterator it = m_set.begin(); it != m_set.end(); it++)
  +	{
  +		char *id = const_cast<char*>(*it);
  +		delete [] id;
  +	}
  +	m_set.clear();
  +	m_maxId = 0;
  +}
  +
  +
   AXIS_CPP_NAMESPACE_END
   
   
  
  
  
  1.2       +12 -2     ws-axis/c/src/soap/ContentIdSet.hpp
  
  Index: ContentIdSet.hpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/soap/ContentIdSet.hpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ContentIdSet.hpp	15 Jun 2005 13:37:31 -0000	1.1
  +++ ContentIdSet.hpp	15 Jun 2005 20:24:22 -0000	1.2
  @@ -23,9 +23,18 @@
   #include <string>
   #include <axis/GDefine.hpp>
   
  -AXIS_CPP_NAMESPACE_START
   using namespace std;
  +AXIS_CPP_NAMESPACE_START
   
  +/**
  + * ContentIdSet is the set of MIME Content-Ids for all attachments in a MIME message.
  + * Each Content-Id must be unique within the MIME message. This class ensures uniqueness
  + * by providing a registerId method which fails when the content id has already been 
  + * registered. Content ids can be automatically generated by the generate method.
  + *
  + * The WS-I profile specifies the format of Content-Ids. This class should implement
  + * those rules.
  + */
   class ContentIdSet
   {
   public:
  @@ -35,7 +44,8 @@
   	const char *generateId();
   	void clearAll();
   private:	
  -	list<char*> m_set;
  +	list<const char*> m_set;
  +	int m_maxId;
   };
   
   AXIS_CPP_NAMESPACE_END
  
  
  
  1.10      +7 -5      ws-axis/c/src/soap/SoapAttachment.cpp
  
  Index: SoapAttachment.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/soap/SoapAttachment.cpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- SoapAttachment.cpp	15 Jun 2005 13:37:31 -0000	1.9
  +++ SoapAttachment.cpp	15 Jun 2005 20:24:22 -0000	1.10
  @@ -41,23 +41,25 @@
   
   //////////////////////////////////////////////////////////////////////
   
  -SoapAttachment::SoapAttachment()
  +SoapAttachment::SoapAttachment(ContentIdSet *pContentIdSet)
   {	
   	m_AttachmentHeaders = new SoapAttachmentHeaders();
   	m_AttachmentBody = 0;
  +	m_pContentIdSet = pContentIdSet;
  +	m_AttachmentHeaders->addHeader(AXIS_CONTENT_ID, pContentIdSet->generateId());
   }
   
   SoapAttachment::~SoapAttachment()
   {
   	delete m_AttachmentHeaders;
  -	m_AttachmentHeaders =0;
  -
  -	delete m_AttachmentBody;
  +	if (m_AttachmentBody) delete m_AttachmentBody;
   	m_AttachmentBody =0;
   }
   
   void SoapAttachment::addHeader(const char* pchName, const char* pchValue)
   {
  +	// Registering the contentid here ensures that it is unique within the mime message.
  +	if (0==strcmp(AXIS_CONTENT_ID,pchName)) m_pContentIdSet->registerId(pchValue);
   	m_AttachmentHeaders->addHeader(pchName, pchValue);
   }
   
  @@ -127,7 +129,7 @@
   
   const char* SoapAttachment::getAttachmentId()
   {
  -   return getHeader("Content-Id");
  +   return getHeader(AXIS_CONTENT_ID);
   }
   
   AXIS_CPP_NAMESPACE_END
  
  
  
  1.8       +9 -3      ws-axis/c/src/soap/SoapAttachment.hpp
  
  Index: SoapAttachment.hpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/soap/SoapAttachment.hpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- SoapAttachment.hpp	15 Jun 2005 13:37:31 -0000	1.7
  +++ SoapAttachment.hpp	15 Jun 2005 20:24:22 -0000	1.8
  @@ -41,22 +41,28 @@
   #include <axis/AxisUserAPI.hpp>
   #include <axis/ISoapAttachment.hpp>
   #include "SoapAttachmentHeaders.hpp"
  +#include "ContentIdSet.hpp"
   #include <string>
   
   using namespace std;
   
   AXIS_CPP_NAMESPACE_START
   
  +#ifdef WIN32
  +#pragma warning (disable : 4251)
  +#endif
  +
   class SoapSerializer;
   
   class STORAGE_CLASS_INFO SoapAttachment : public ISoapAttachment
   {
   private:	
  -	SoapAttachmentHeaders* m_AttachmentHeaders;
  +	SoapAttachmentHeaders *m_AttachmentHeaders;
   	xsd__base64Binary* m_AttachmentBody;
       char *m_binaryBody;
       int iEncodingStyle;
  -    
  +    ContentIdSet *m_pContentIdSet;
  +
   public:	
       const char* getAttachmentId();
   	const char* getHeader(const char* pchName);
  @@ -65,7 +71,7 @@
   	void addBody(xsd__base64Binary* objBody);
       void addBody(char* pchBinaryBody);
   	void addHeader(const char* pchName, const char* pchValue);
  -	SoapAttachment();
  +	SoapAttachment(ContentIdSet *pContentIdSet);
   	virtual ~SoapAttachment();	
   };
   
  
  
  
  1.124     +8 -4      ws-axis/c/src/soap/SoapSerializer.cpp
  
  Index: SoapSerializer.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/soap/SoapSerializer.cpp,v
  retrieving revision 1.123
  retrieving revision 1.124
  diff -u -r1.123 -r1.124
  --- SoapSerializer.cpp	15 Jun 2005 13:37:31 -0000	1.123
  +++ SoapSerializer.cpp	15 Jun 2005 20:24:22 -0000	1.124
  @@ -56,6 +56,7 @@
       m_iSoapVersion = SOAP_VER_1_1;
       m_pOutputStream = NULL;
   	m_pNamespace = NULL;
  +	m_pContentIdSet = NULL;
   }
   
   SoapSerializer::~SoapSerializer()
  @@ -1165,7 +1166,7 @@
   
   	if (m_SoapAttachments[achId] == NULL)
   	{
  -		m_SoapAttachments[achId] = new SoapAttachment();		
  +		m_SoapAttachments[achId] = new SoapAttachment(m_pContentIdSet);		
   	}
   
   	m_SoapAttachments[achId]->addHeader( achHeaderName, achHeaderValue);
  @@ -1176,7 +1177,7 @@
   {
   	if( m_SoapAttachments[achId] == NULL)
   	{
  -		m_SoapAttachments[achId] = new SoapAttachment();		
  +		m_SoapAttachments[achId] = new SoapAttachment(m_pContentIdSet);		
   	}
   
   	m_SoapAttachments[achId]->addBody( pAttchBody);
  @@ -1204,9 +1205,12 @@
   
   ISoapAttachment* SoapSerializer::createSoapAttachment()
   {
  -	SoapAttachment * pSAttch = new SoapAttachment();
  +	return new SoapAttachment(m_pContentIdSet);
  +}
   
  -	return pSAttch;
  +void SoapSerializer::setContentIdSet(ContentIdSet *pContentIdSet) 
  +{
  +	m_pContentIdSet = pContentIdSet;
   }
   
   bool SoapSerializer::checkAttachmentAvailability()
  
  
  
  1.50      +2 -0      ws-axis/c/src/soap/SoapSerializer.h
  
  Index: SoapSerializer.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/soap/SoapSerializer.h,v
  retrieving revision 1.49
  retrieving revision 1.50
  diff -u -r1.49 -r1.50
  --- SoapSerializer.h	15 Jun 2005 13:37:31 -0000	1.49
  +++ SoapSerializer.h	15 Jun 2005 20:24:22 -0000	1.50
  @@ -73,6 +73,7 @@
       PROVIDERTYPE m_ProviderType;
   	/* the local namespace for this serializer */
       AxisChar* m_pNamespace;
  +	ContentIdSet *m_pContentIdSet;
   
   public:
   	inline const AxisChar* AXISCALL getNamespace() const {return m_pNamespace;}; 
  @@ -181,6 +182,7 @@
   	void addAttachmentHeader(const AxisChar* achId, const AxisChar* achHeaderName, const AxisChar* achHeaderValue);
   	void addAttachment(const AxisChar* achId, ISoapAttachment* pAttach);
       void addAttachments(ISoapAttachment** pAttach, int iAttchArraySize);
  +	void setContentIdSet(ContentIdSet *pContentIdSet);
   	IHeaderBlock* getHeaderBlock(const AxisChar* pcName, const AxisChar* pcNamespace);
   	/*
   	* TODO: Have to remove this method. Date logged 13Jan2005
  
  
  
  1.4       +1 -1      ws-axis/c/tests/auto_build/testcases/dynamic/DynUnrefAttachmentTest/DynUnrefAttachmentTest.cpp
  
  Index: DynUnrefAttachmentTest.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/tests/auto_build/testcases/dynamic/DynUnrefAttachmentTest/DynUnrefAttachmentTest.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DynUnrefAttachmentTest.cpp	15 Jun 2005 13:16:44 -0000	1.3
  +++ DynUnrefAttachmentTest.cpp	15 Jun 2005 20:24:22 -0000	1.4
  @@ -30,7 +30,7 @@
   		call.setEndpointURI(argv[1]);
   
   		ISoapAttachment *att = call.createSoapAttachment();
  -		att->addHeader(AXIS_CONTENT_ID,"HERES_MY_CONTENT_ID");
  +		// att->addHeader(AXIS_CONTENT_ID,"HERES_MY_CONTENT_ID");
   		att->addHeader(AXIS_CONTENT_TYPE,"text/plain");
   		att->addHeader(AXIS_CONTENT_TRANSFER_ENCODING,"base64");