axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thomas Gentsch ...@e-tge.de>
Subject Re: XML reader/writer buffer size problem?
Date Thu, 27 Jan 2011 16:47:37 GMT
Just opened AXIS2C-1534 and attached the test progs + data.
Any help is appreciated!!
Rgds,
  tge

On Thu, 2011-01-27 at 13:16 +0100, Thomas Gentsch wrote:
> Minor correction in the code below (I merged two functions) ...
> 
> On Thu, 2011-01-27 at 13:03 +0100, Thomas Gentsch wrote:
> > Hi all,
> > 
> > I'm still with Axis2c 1.6 and have a problem (de)serializing an XML
> > string. Is there anything know about such a problem (haven't found
> > anything in Jira)?
> > 
> > The essential piece is a string buffer containing an XML structure,
> > which is created from a Tuscany SDO. Then that string buffer gets
> > converted to an Axiom Node (using the Tuscany AxiomHelper) to be
> > returned to the calling Axis2c client. Normally this works nicely, but
> > if the XML is very long (in my example 484460 bytes), it gets truncated.
> > 
> > I can see the string buffer "str" (below) as still intact. Then,
> > essentially the following happens:
> > ===========
> > AxiomHelper::toAxiomNode()
> > {
> > ...
> > axiom_xml_reader_t * reader =
> > axiom_xml_reader_create_for_memory(
> >   the_env, (void*)str, strlen(str),
> >   (const axis2_char_t *)"UTF-8", AXIS2_XML_PARSER_TYPE_BUFFER);
> > axiom_stax_builder_t* builder =
> >   axiom_stax_builder_create(the_env, reader);
> > axiom_document_t* document =
> >   axiom_stax_builder_get_document(builder, the_env);
> > axiom_node_t* root_node =
> >   axiom_document_get_root_element(document, the_env);
> > axiom_document_build_all(document, the_env);
> 
> The code above is function1 and returns "document".
> Below is function2 dealing with that document.
> 
> > axiom_node_t* root_node =
> >   axiom_document_get_root_element(doc, the_env);
> > return  root_node;
> > }
> > 
> > Now I have the Axiom node "n" and dump it (just for testing):
> > 
> > axiom_xml_writer_t * w = axiom_xml_writer_create_for_memory(env,
> >   NULL, AXIS2_TRUE, 0, AXIS2_XML_PARSER_TYPE_BUFFER);
> > axiom_output_t * om_output = axiom_output_create(env, w);
> > axiom_node_serialize(n, env, om_output);
> > axis2_char_t * buf = (axis2_char_t *) axiom_xml_writer_get_xml(w, env);
> > 
> > fprintf(f, "\nData: '%s'\n", buf);
> > =============
> > 
> > and the output is truncated to 17253 bytes ending with some control
> > characters.
> > As said, that code has been working for months/years now w/o any
> > problems, so I believe that it is OK in general and I rather suspect the
> > Axis2c XML handling in conjunction with large buffers ...
> > 
> > I'll extract the pieces into a standalone testprog for easier
> > troubleshooting - but still: Any ideas?
> > 
> > Many thx!!!
> >   tge
> > 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: c-user-unsubscribe@axis.apache.org
> For additional commands, e-mail: c-user-help@axis.apache.org
> 




---------------------------------------------------------------------
To unsubscribe, e-mail: c-user-unsubscribe@axis.apache.org
For additional commands, e-mail: c-user-help@axis.apache.org


Mime
View raw message