<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
<META content="MSHTML 5.00.2920.0" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT color=#0000ff face=Arial size=2><SPAN 
class=308392915-07032001>Hi,</SPAN></FONT></DIV>
<DIV><FONT color=#0000ff face=Arial size=2><SPAN 
class=308392915-07032001></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT color=#0000ff face=Arial size=2><SPAN class=308392915-07032001>Try 
loading the stream into a byte array first, use the ByteArrayInputStream class 
and then once you have the data then send that stream to SAXBuilder or create a 
new one from the bytes you read in...</SPAN></FONT></DIV>
<DIV><FONT color=#0000ff face=Arial size=2><SPAN 
class=308392915-07032001></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT color=#0000ff face=Arial size=2><SPAN class=308392915-07032001>That 
way you can be sure that you have ALL the data prior to using JDOM.&nbsp; You 
can then bomb out yourself if the stream breaks down.</SPAN></FONT></DIV>
<DIV><FONT color=#0000ff face=Arial size=2><SPAN 
class=308392915-07032001></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT color=#0000ff face=Arial size=2><SPAN 
class=308392915-07032001>G.</SPAN></FONT></DIV>
<BLOCKQUOTE style="MARGIN-RIGHT: 0px">
  <DIV align=left class=OutlookMessageHeader dir=ltr><FONT face=Tahoma 
  size=2>-----Original Message-----<BR><B>From:</B> jdom-interest-admin@jdom.org 
  [mailto:jdom-interest-admin@jdom.org]<B>On Behalf Of </B>Etienne-Hugues 
  Fortin<BR><B>Sent:</B> Wednesday, March 07, 2001 3:06 PM<BR><B>To:</B> 
  JDOM<BR><B>Subject:</B> [jdom-interest] Problem<BR><BR></DIV></FONT>
  <DIV>Hi,</DIV>
  <DIV>&nbsp;</DIV>
  <DIV><FONT face=Arial size=2>Sorry if this message appears again in the 
  future, I sent it with the wrong email account so it has been retain at the 
  border (moderator)...&nbsp; Anyway, this one should go through 
  directly...</FONT><BR><BR>I'm using jdom since early october and I'm 
  experiencing some problems.<BR>First, the context.<BR><BR>I have a servlet 
  running on a master server.&nbsp; One of the features of this<BR>servlet is to 
  be able to send the content of a table in XML, task that seems<BR>to work 
  well.<BR><BR>I also have a process on a slave server that connect to the 
  master once in a<BR>while and ask about data for some tables.&nbsp; It seems 
  to work well also but<BR>for small table.&nbsp; One of the table contains 3442 
  records with 
  this<BR>definition:<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  ID int auto_increment NOT 
  NULL,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Name char(80) DEFAULT 
  '',<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Description text DEFAULT 
  '',<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Creation_Date Datetime DEFAULT 
  '',<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  SIZE int DEFAULT 
  0,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Keywords VARCHAR(255) DEFAULT 
  '',<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  SubmitBy int DEFAULT 
  1,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Version CHAR(12) DEFAULT 
  '',<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  DirectoryID int DEFAULT 
  0,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  ProjectID int DEFAULT 
  1,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Status int DEFAULT 
  1,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Filetype VARCHAR(10) DEFAULT 
  '',<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  CVSID int DEFAULT 
  0,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  LastUpdated timestamp<BR><BR>As you can see, it's not a really heavy 
  table.&nbsp; I estimate the whole data<BR>under 500K.&nbsp; Here's an example 
  of the data I receive:<BR><BR>&lt;?xml version="1.0" encoding="UTF-8" 
  ?&gt;<BR>&lt;Table Name="Artifacts"&gt;<BR>&lt;Record 
  Id="8787"&gt;<BR>&lt;ProjectID&gt;31&lt;/ProjectID&gt;<BR>&lt;SubmitBy&gt;1&lt;/SubmitBy&gt;<BR>&lt;Description 
  /&gt;<BR>&lt;DirectoryID&gt;1136&lt;/DirectoryID&gt;<BR>&lt;Creation_Date&gt;2001-02-15 
  17:15:40&lt;/Creation_Date&gt;<BR>&lt;SIZE&gt;0&lt;/SIZE&gt;<BR>&lt;Name&gt;MyFile.pdf&lt;/Name&gt;<BR>&lt;Filetype&gt;L&lt;/Filetype&gt;<BR>&lt;Status&gt;1&lt;/Status&gt;<BR>&lt;Version 
  /&gt;<BR>&lt;Keywords 
  /&gt;<BR>&lt;CVSID&gt;98&lt;/CVSID&gt;<BR>&lt;LastUpdated&gt;20010215171540&lt;/LastUpdated&gt;<BR>&lt;/Record&gt;<BR>...<BR>&lt;/Table&gt;<BR><BR>And 
  here's the error (not always the same but always about 
  incorrect<BR>end-tag):<BR><BR>org.jdom.JDOMException: Error on line 2941: The 
  element type "LastUpdated"<BR>must be terminated by the matching end-tag 
  "&lt;/LastUpdated&gt;".<BR><BR>Finally, here's the code that I use on the 
  client side:<BR><BR>--- begin ---<BR>&nbsp;&nbsp; unet = 
  Url.openConnection();<BR>&nbsp;&nbsp; unet.setDoOutput(true);<BR>&nbsp;&nbsp; 
  unet.setRequestProperty("Cookie", cookie);<BR>&nbsp;&nbsp; 
  unet.setRequestProperty("content-type",<BR>"application/x-www-form-urlencoded");<BR>&nbsp;&nbsp; 
  out = new DataOutputStream(unet.getOutputStream());<BR>&nbsp;&nbsp; 
  out.writeBytes(<BR>&nbsp;&nbsp;&nbsp;&nbsp; "Act=getupdate&amp;tablename=" + 
  tableName);<BR>&nbsp;&nbsp; out.flush();<BR>&nbsp;&nbsp; 
  out.close();<BR><BR>&nbsp;&nbsp; SAXBuilder jdom = new 
  SAXBuilder();<BR>&nbsp;&nbsp; Document doc = 
  jdom.build(unet.getInputStream());<BR>--- end ---<BR><BR>The exception is 
  generated in the jdom.build.&nbsp; Based on that, there's big<BR>change that 
  either the master server don't always send everything (I doubt<BR>on this 
  because if I connect with a browser, I always get the full result<BR>but it 
  can take time) or the slave timed-out or lost the connection at 
  some<BR>point.<BR><BR>What would be the best thing to do in that 
  situation?&nbsp; Is there something to<BR>know about jdom.build(InputStream) 
  concerning timeout?&nbsp; Is there a mechanism<BR>already existing that would 
  give me the capability to establish that a<BR>problem occurs and that would 
  retry in some way?<BR><BR>Somebody else tried to do something 
  similar?<BR><BR><BR>Thanks.<BR><BR><BR>Etienne Fortin<BR></DIV>
  <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV></BLOCKQUOTE></BODY></HTML>