Re: XmlPullParser::next() hangs midway after receiving a few tokens

Aleksander Slominski <[email protected]> Sun, 19 Nov 2006 19:51:22 -0500
Newsgroups gmane.text.xml.xmlpull.devel
Message-ID <[email protected]>
--luZAkruIXiZXXvNsucdBakQzJNuEwabkxMvkGgV
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

mvemulak wrote:
> I have a simple Jabber(XMPP) client. When I use JDK (J2SE), he parser
> pulls
> the data fine. But when I use the same in J2ME (MIDP) environment, the
> client hangs after receiving a few messages. It hangs at
> XmlPullParser::next().
> Any ideas ?
>   
input stream (how you set it up) and character encoding are common
suspects. for example see [1]

HTH,

alek
[1]


-------- Original Message --------
Subject: 	Re: [Kxml-devel] Howto parse large amounts of XML data
Date: 	Mon, 13 Nov 2006 23:47:22 +0100
From: 	Florian Schricker <[email protected]>
To: 	Stefan Haustein <[email protected]>
CC: 	[email protected]
References: 	<1162990214.12921.10.camel@localhost>
<[email protected]> <1163151856.7060.9.camel@localhost>
<[email protected]> <1163166085.24520.9.camel@localhost>
<[email protected]>



Hi Stefan!


On Sun, 2006-11-12 at 23:44 +0100, Stefan Haustein wrote:

> Could you try to use the InputStreamReader in your while loop, and try 
> to read chunks of 128 characters?

Given a successful HttpConnection c, I ran:

        InputStreamReader isr = new
        InputStreamReader(c.openInputStream());
        int ch;
        char[] chunk = new char[128];
        while ((ch = isr.read(chunk, 0, 128)) != -1) {
          System.out.print(chunk);
        }


This bails out with:

java.lang.ArrayIndexOutOfBoundsException: 
	at com.sun.kvem.cldc.i18n.j2me.GenericReader.read(+139)
	at java.io.InputStreamReader.read(+56)
	at MainMIDlet.startApp(+152)
	at javax.microedition.midlet.MIDletProxy.startApp(+7)
	at com.sun.midp.midlet.Scheduler.schedule(+270)
	at com.sun.midp.main.Main.runLocalClass(+28)
	at com.sun.midp.main.Main.main(+116)


> The error probably stems from a mismatch of the default encoding of the 
> InputStreamReader on your platform and the actual encoding of the XML 
> document

Yes, after setting the encoding to "utf-8" when constructing the
InputStreamReader, reading the stream was successful!


Thanks for your help! I guess this "user mistake" (mine!) is now sorted
out - and I learned something... And maybe these mails help someone
sometime... :-)


-- 
regards,
Florian


_______________________________________________
Kxml-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/kxml-devel



--luZAkruIXiZXXvNsucdBakQzJNuEwabkxMvkGgV
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
</head>

<!-- Network content -->


<body style="background-color: #ffffff;">

<!--~-|**|PrettyHtmlStartT|**|-~-->
<div id="ygrp-mlmsg" style="width:655px; position:relative;">
  <div id="ygrp-msg" style="width: 490px; padding: 0 15px 0 0; float:left;  z-index:1;">
<!--~-|**|PrettyHtmlEndT|**|-~-->

    <div id="ygrp-text">
            <p>mvemulak wrote:<br>
&gt; I have a simple Jabber(XMPP) client. When I use JDK (J2SE), he parser<br>
&gt; pulls<br>
&gt; the data fine. But when I use the same in J2ME (MIDP) environment, the<br>
&gt; client hangs after receiving a few messages. It hangs at<br>
&gt; XmlPullParser:<wbr>:next().<br>
&gt; Any ideas ?<br>
&gt;   <br>
input stream (how you set it up) and character encoding are common<br>
suspects. for example see [1]<br>
<br>
HTH,<br>
<br>
alek<br>
[1]<br>
<br>
-------- Original Message --------<br>
Subject: 	Re: [Kxml-devel] Howto parse large amounts of XML data<br>
Date: 	Mon, 13 Nov 2006 23:47:22 &#43;0100<br>
From: 	Florian Schricker &lt;<a href="mailto:fschricker%40web.de">fschricker@web.<wbr>de</a>&gt;<br>
To: 	Stefan Haustein &lt;<a href="mailto:sh%40kobjects.org">sh@kobjects.<wbr>org</a>&gt;<br>
CC: 	<a href="mailto:kxml-devel%40lists.sourceforge.net">kxml-devel@lists.<wbr>sourceforge.<wbr>net</a><br>
References: 	&lt;1162990214.<wbr>12921.10.<wbr>camel@localhost&gt;<br>
&lt;<a href="mailto:45526E37.7000707%40kobjects.org">45526E37.7000707@<wbr>kobjects.<wbr>org</a>&gt; &lt;1163151856.<wbr>7060.9.camel@<wbr>localhost&gt;<br>
&lt;<a href="mailto:45545D2E.6000306%40kobjects.org">45545D2E.6000306@<wbr>kobjects.<wbr>org</a>&gt; &lt;1163166085.<wbr>24520.9.camel@<wbr>localhost&gt;<br>
&lt;<a href="mailto:4557A3C8.3060907%40kobjects.org">4557A3C8.3060907@<wbr>kobjects.<wbr>org</a>&gt;<br>
<br>
Hi Stefan!<br>
<br>
On Sun, 2006-11-12 at 23:44 &#43;0100, Stefan Haustein wrote:<br>
<br>
&gt; Could you try to use the InputStreamReader in your while loop, and try <br>
&gt; to read chunks of 128 characters?<br>
<br>
Given a successful HttpConnection c, I ran:<br>
<br>
InputStreamReader isr = new<br>
        InputStreamReader(<wbr>c.openInputStrea<wbr>m());<br>
        int ch;<br>
        char[] chunk = new char[128];<br>
        while ((ch = isr.read(chunk, 0, 128)) != -1) {<br>
          System.out.print(<wbr>chunk);<br>
        }<br>
<br>
This bails out with:<br>
<br>
java.lang.ArrayInde<wbr>xOutOfBoundsExce<wbr>ption: <br>
	at com.sun.kvem.<wbr>cldc.i18n.<wbr>j2me.GenericRead<wbr>er.read(&#43;<wbr>139)<br>
	at java.io.InputStream<wbr>Reader.read(<wbr>&#43;56)<br>
	at MainMIDlet.startApp<wbr>(&#43;152)<br>
	at javax.microedition.<wbr>midlet.MIDletPro<wbr>xy.startApp(<wbr>&#43;7)<br>
	at com.sun.midp.<wbr>midlet.Scheduler<wbr>.schedule(<wbr>&#43;270)<br>
	at com.sun.midp.<wbr>main.Main.<wbr>runLocalClass(<wbr>&#43;28)<br>
	at com.sun.midp.<wbr>main.Main.<wbr>main(&#43;116)<br>
<br>
&gt; The error probably stems from a mismatch of the default encoding of the <br>
&gt; InputStreamReader on your platform and the actual encoding of the XML <br>
&gt; document<br>
<br>
Yes, after setting the encoding to &quot;utf-8&quot; when constructing the<br>
InputStreamReader, reading the stream was successful!<br>
<br>
Thanks for your help! I guess this &quot;user mistake&quot; (mine!) is now sorted<br>
out - and I learned something... And maybe these mails help someone<br>
sometime... :-)<br>
<br>
-- <br>
regards,<br>
Florian<br>
<br>
____________<wbr>_________<wbr>_________<wbr>_________<wbr>________<br>
Kxml-devel mailing list<br>
<a href="mailto:Kxml-devel%40lists.sourceforge.net">Kxml-devel@lists.<wbr>sourceforge.<wbr>net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/kxml-devel">https://lists.<wbr>sourceforge.<wbr>net/lists/<wbr>listinfo/<wbr>kxml-devel</a><br>
<br>
</p>
    </div>  

    <!--~-|**|PrettyHtmlStart|**|-~-->
    <span width="1" style="color: white;">__._,_.___</span>
    <!-- Start the section with Message In topic -->
    <div id="ygrp-actbar">
              <span class="left">
          <a href="http://groups.yahoo.com/group/xmlpull-dev/message/865;_ylc=X3oDMTMybGI0anZkBF9TAzk3MzU5NzE0BGdycElkAzY0NTYyNTUEZ3Jwc3BJZAMxNzA2MDMwMzkwBG1zZ0lkAzg2NgRzZWMDZnRyBHNsawN2dHBjBHN0aW1lAzExNjM5ODQ2NjAEdHBjSWQDODY1">
            Messages in this topic          </a> (<span class="bld">2</span>)
        </span>
        <a href="http://groups.yahoo.com/group/xmlpull-dev/post;_ylc=X3oDMTJvcWNqa250BF9TAzk3MzU5NzE0BGdycElkAzY0NTYyNTUEZ3Jwc3BJZAMxNzA2MDMwMzkwBG1zZ0lkAzg2NgRzZWMDZnRyBHNsawNycGx5BHN0aW1lAzExNjM5ODQ2NjA-?act=reply&messageNum=866">
          <span class="bld">
            Reply          </span> (via web post)
        </a>  | 
        <a href="http://groups.yahoo.com/group/xmlpull-dev/post;_ylc=X3oDMTJlMDJlZHJjBF9TAzk3MzU5NzE0BGdycElkAzY0NTYyNTUEZ3Jwc3BJZAMxNzA2MDMwMzkwBHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTE2Mzk4NDY2MA--" class="bld">
          Start a new topic        </a>
          </div> 
    <!-------     Start Nav Bar  ------>
    <!-- |**|begin egp html banner|**| -->
    <div id="ygrp-vitnav">
                <a href="http://groups.yahoo.com/group/xmlpull-dev/messages;_ylc=X3oDMTJlMWppNmRjBF9TAzk3MzU5NzE0BGdycElkAzY0NTYyNTUEZ3Jwc3BJZAMxNzA2MDMwMzkwBHNlYwNmdHIEc2xrA21zZ3MEc3RpbWUDMTE2Mzk4NDY2MA--">Messages</a>  
        
        
        
        
        
        
        
    </div>  
    <!-- |**|end egp html banner|**| -->

    <!-- Do not have place to put it yet -->
    <div id="ygrp-grft">
          </div>

    <!-- yahoo logo -->
    <!-- |**|begin egp html banner|**| -->
    <div id="ygrp-ft">
      <a href="http://groups.yahoo.com/;_ylc=X3oDMTJkanRmOXQwBF9TAzk3MzU5NzE0BGdycElkAzY0NTYyNTUEZ3Jwc3BJZAMxNzA2MDMwMzkwBHNlYwNmdHIEc2xrA2dmcARzdGltZQMxMTYzOTg0NjYw">
      <img src="http://us.i1.yimg.com/us.yimg.com/i/yg/img/logo/ma_grp_160.gif" height="15" width="106" border="0" alt="Yahoo! Groups"></a> <br>
      <a href="http://groups.yahoo.com/group/xmlpull-dev/join;_ylc=X3oDMTJmdW0yZjk2BF9TAzk3MzU5NzE0BGdycElkAzY0NTYyNTUEZ3Jwc3BJZAMxNzA2MDMwMzkwBHNlYwNmdHIEc2xrA3N0bmdzBHN0aW1lAzExNjM5ODQ2NjA-">Change settings via the Web</a> (Yahoo! ID required) <br>
      Change settings via email: <a href="mailto:[email protected]?subject=Email Delivery: Digest">Switch delivery to Daily Digest</a> | <a href = "mailto:[email protected]?subject=Change Delivery Format: Traditional">Switch format to Traditional</a> <br>

      <a href="http://groups.yahoo.com/group/xmlpull-dev;_ylc=X3oDMTJkZmQ5bG0zBF9TAzk3MzU5NzE0BGdycElkAzY0NTYyNTUEZ3Jwc3BJZAMxNzA2MDMwMzkwBHNlYwNmdHIEc2xrA2hwZgRzdGltZQMxMTYzOTg0NjYw">
        Visit Your Group 
      </a> |
      <a href="http://docs.yahoo.com/info/terms/">
        Yahoo! Groups Terms of Use      </a> |
      <a href="mailto:[email protected]?subject=">
        Unsubscribe      </a> 
    </div>     <!-- |**|end egp html banner|**| -->
  </div> <!-- ygrp-msg -->

  
  <!-- Sponsor -->
  <!-- |**|begin egp html banner|**| -->
  <div id="ygrp-sponsor" style="width:140px;float: left; clear: none; margin-left: 5px; background:white; margin-bottom:25px ;position:absolute; top:0; right: 0;">
    <!-- Network content -->
    
    <!-- Start vitality -->
    <div id="ygrp-vital">
              <div id="vithd">Recent Activity</div>
        <ul style="list-style-type:none; padding: 0; margin: 2px 0;">
                <li style="clear: both;">
      <div class="ct" style="float: right;"><span style="display:none">&nbsp;</span>1</div>
      <div class="cat"><a href="http://groups.yahoo.com/group/xmlpull-dev/members;_ylc=X3oDMTJmODQxN3VzBF9TAzk3MzU5NzE0BGdycElkAzY0NTYyNTUEZ3Jwc3BJZAMxNzA2MDMwMzkwBHNlYwN2dGwEc2xrA3ZtYnJzBHN0aW1lAzExNjM5ODQ2NjA-">New Members</a></div>
    </li>
  
            
            
            
            
            
        </ul>
            <a href="http://groups.yahoo.com/group/xmlpull-dev;_ylc=X3oDMTJlM3RpZ2NiBF9TAzk3MzU5NzE0BGdycElkAzY0NTYyNTUEZ3Jwc3BJZAMxNzA2MDMwMzkwBHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTE2Mzk4NDY2MA--">
        Visit Your Group      </a>
    </div> 
                <div id="hd">SPONSORED LINKS</div>
      <div id="ov">
        <ul>
                    <li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjbTlzZ2FsBF9TAzk3MzU5NzE0BF9wAzEEZ3JwSWQDNjQ1NjI1NQRncnBzcElkAzE3MDYwMzAzOTAEc2VjA3NsbW9kBHN0aW1lAzExNjM5ODQ2NjA-?t=ms&k=Xml+sql+server&w1=Xml+sql+server&w2=Xml+content+management&w3=Xml+document&w4=Rss+xml&w5=Xml+training&c=5&s=97&g=2&.sig=D5pjkrPnFZ4IBdgwTFPeNw">Xml sql server</a></li>
                    <li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjOWF1YW8wBF9TAzk3MzU5NzE0BF9wAzIEZ3JwSWQDNjQ1NjI1NQRncnBzcElkAzE3MDYwMzAzOTAEc2VjA3NsbW9kBHN0aW1lAzExNjM5ODQ2NjA-?t=ms&k=Xml+content+management&w1=Xml+sql+server&w2=Xml+content+management&w3=Xml+document&w4=Rss+xml&w5=Xml+training&c=5&s=97&g=2&.sig=-MKTBHng5j2E0enZ0lu6MA">Xml content management</a></li>
                    <li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjNWFhNGowBF9TAzk3MzU5NzE0BF9wAzMEZ3JwSWQDNjQ1NjI1NQRncnBzcElkAzE3MDYwMzAzOTAEc2VjA3NsbW9kBHN0aW1lAzExNjM5ODQ2NjA-?t=ms&k=Xml+document&w1=Xml+sql+server&w2=Xml+content+management&w3=Xml+document&w4=Rss+xml&w5=Xml+training&c=5&s=97&g=2&.sig=4a401E3_nwYau1YewoooSg">Xml document</a></li>
                    <li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjM3R1dDI2BF9TAzk3MzU5NzE0BF9wAzQEZ3JwSWQDNjQ1NjI1NQRncnBzcElkAzE3MDYwMzAzOTAEc2VjA3NsbW9kBHN0aW1lAzExNjM5ODQ2NjA-?t=ms&k=Rss+xml&w1=Xml+sql+server&w2=Xml+content+management&w3=Xml+document&w4=Rss+xml&w5=Xml+training&c=5&s=97&g=2&.sig=Nz2s-9B48CdGLIFKmmKhHw">Rss xml</a></li>
                    <li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjMHJhbHRuBF9TAzk3MzU5NzE0BF9wAzUEZ3JwSWQDNjQ1NjI1NQRncnBzcElkAzE3MDYwMzAzOTAEc2VjA3NsbW9kBHN0aW1lAzExNjM5ODQ2NjA-?t=ms&k=Xml+training&w1=Xml+sql+server&w2=Xml+content+management&w3=Xml+document&w4=Rss+xml&w5=Xml+training&c=5&s=97&g=2&.sig=83TLc5fP2HqZY9QrkpSu3w">Xml training</a></li>
                  </ul>
      </div>
    
    <!-- Network content -->
                <div id="nc">
              <div class="ad">
                      <div id="hd1">New business?</div> 
<p><a href="http://us.ard.yahoo.com/SIG=12hso6n7f/M=493064.8985663.9760769.8674578/D=groups/S=1706030390:NC/Y=YAHOO/EXP=1163991860/A=3848640/R=0/SIG=131an6mds/*http://searchmarketing.yahoo.com/arp/srchv2.php?o=US2002&cmp=Yahoo&ctv=Groups1&s=Y&s2=&s3=&b=50">Get new customers.</a></p> 
<p>List your web site</p> 
<p>in Yahoo! Search.</p>                  </div>
                    <div class="ad">
                        <div id="hd1">Y! Toolbar</div>
  <p><a href="http://us.lrd.yahoo.com/_ylc=X3oDMTJvcGp1NHNxBF9TAzk3MzU5NzE0BF9wAzIEZ3JwSWQDNjQ1NjI1NQRncnBzcElkAzE3MDYwMzAzOTAEc2VjA25jbW9kBHNsawN0b29sYmFyBHN0aW1lAzExNjM5ODQ2NjA-;_ylg=1/SIG=11c6dvmk9/**http%3a//toolbar.yahoo.com/%3f.cpdl=ygrps">Get it Free!</a></p>
  <p>easy 1-click access</p>
  <p>to your groups.</p>
                  </div>
                    <div class="ad">
                        <div id="hd1">Yahoo! Groups</div>
  <p><a href="http://groups.yahoo.com/start;_ylc=X3oDMTJvMGZvYzJmBF9TAzk3MzU5NzE0BF9wAzMEZ3JwSWQDNjQ1NjI1NQRncnBzcElkAzE3MDYwMzAzOTAEc2VjA25jbW9kBHNsawNncm91cHMyBHN0aW1lAzExNjM5ODQ2NjA-">Start a group</a></p>
  <p>in 3 easy steps.</p>
  <p>Connect with others.</p>
                  </div>
          </div>
      
  </div>   <!-- |**|end egp html banner|**| -->
  <div style="clear:both; color: #FFF; font-size:1px;">.</div>
</div> <img src="http://geo.yahoo.com/serv?s=97359714/grpId=6456255/grpspId=1706030390/msgId=866/stime=1163984660/nc1=3848640/nc2=2/nc3=3" width="1" height="1"> <br>
<span  style="color: white;">__,_._,___</span>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</body>
<!--~-|**|PrettyHtmlStart|**|-~-->
<head>
<style type="text/css">
<!--
#ygrp-mlmsg {font-size:13px; font-family: arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}
#ygrp-mlmsg table {font-size:inherit;font:100%;}
#ygrp-mlmsg select, input, textarea {font:99% arial,helvetica,clean,sans-serif;}
#ygrp-mlmsg pre, code {font:115% monospace;*font-size:100%;}
#ygrp-mlmsg * {line-height:1.22em;}
#ygrp-text{
    font-family: Georgia;	
}
#ygrp-text p{
    margin: 0 0 1em 0;
}
#ygrp-tpmsgs{
    font-family: Arial;	
    clear: both;
}
#ygrp-vitnav{
	padding-top: 10px;
	font-family: Verdana;
	font-size: 77%;
	margin: 0;
}
#ygrp-vitnav a{
	padding: 0 1px;
}
#ygrp-actbar{
	clear: both;
	margin: 25px 0;
	white-space:nowrap;
	color: #666;
	text-align: right;
}
#ygrp-actbar .left{
	float: left;
	white-space:nowrap;
}
.bld{font-weight:bold;}
#ygrp-grft{
	font-family: Verdana;
	font-size: 77%;
	padding: 15px 0;
}
#ygrp-ft{
  font-family: verdana;
  font-size: 77%;
  border-top: 1px solid #666; 
  padding: 5px 0; 
}
#ygrp-mlmsg #logo{
  padding-bottom: 10px;
}

#ygrp-vital{
	background-color: #e0ecee;
	margin-bottom: 20px;
	padding: 2px 0 8px 8px;
}
#ygrp-vital #vithd{
	font-size: 77%;
	font-family: Verdana;
	font-weight: bold;
	color: #333;
	text-transform: uppercase;
}
#ygrp-vital ul{
	padding: 0;
	margin: 2px 0;
}
#ygrp-vital ul li{
  list-style-type: none;
  clear: both;
  border: 1px solid #e0ecee;  
}
#ygrp-vital ul li .ct{
  font-weight: bold;
  color: #ff7900;
  float: right;
  width: 2em;
  text-align:right;
  padding-right: .5em;
}
#ygrp-vital ul li .cat{
  font-weight: bold;
}
#ygrp-vital a {
	text-decoration: none;
}

#ygrp-vital a:hover{
  text-decoration: underline;
}

#ygrp-sponsor #hd{
	color: #999;
	font-size: 77%;
}
#ygrp-sponsor #ov{
	padding: 6px 13px;
	background-color: #e0ecee;
	margin-bottom: 20px;
}
#ygrp-sponsor #ov ul{
	padding: 0 0 0 8px;
	margin: 0;
}
#ygrp-sponsor #ov li{
	list-style-type: square;
	padding: 6px 0;
	font-size: 77%;
}
#ygrp-sponsor #ov li a{
	text-decoration: none;
	font-size: 130%;
}
#ygrp-sponsor #nc {
  background-color: #eee;
  margin-bottom: 20px;
  padding: 0 8px;
}
#ygrp-sponsor .ad{
	padding: 8px 0;
}
#ygrp-sponsor .ad #hd1{
	font-family: Arial;
	font-weight: bold;
	color: #628c2a;
	font-size: 100%;
	line-height: 122%;
}
#ygrp-sponsor .ad a{
	text-decoration: none;
}
#ygrp-sponsor .ad a:hover{
	text-decoration: underline;
}
#ygrp-sponsor .ad p{
	margin: 0;
}
o {font-size: 0; }
.MsoNormal {
   margin: 0 0 0 0;
}
#ygrp-text tt{
  font-size: 120%;
}
blockquote{margin: 0 0 0 4px;}
.replbq {margin:4}
-->
</style>
</head>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</html><!--End group email -->


--luZAkruIXiZXXvNsucdBakQzJNuEwabkxMvkGgV--