Volkof
Well-Known Member
- Reaction score
- 31
Hi all,
I am running an SAX Parser in Netbean to extract 1GB of XML data and write into CSV file.
My program is running perfectly when I use test data of less then 1MB. The code runs displaying print outs that I expected and CSV files produced are correct.
So next I run my code with the 1GB XML. The code was running and displaying expected outputs for about 30mins (It was able to successfully read all the way to line 105439 in the XML),
after which, the Output just stopped showing. At the bottom of Netbean, it says the program is running, although the green bar kind of stopped flowing. This goes on for another half-an hour of nothingness. Then I noticed this error:
Someone told me that somewhere in my code, an integer looped till its max value and has overflowed. Problem is that I can't find which is the integer causing this. I suspect it might have something to do with my TreeSet, but I it doesn't really uses such large number, unless I'm mistaken.
Following hyperlink is my code dblp.java. Sorry for the huge code, but jump to the method populateAuthorArray(...). It is called by endElement(...). Please help me stop my mistake. Thanks
http://www.sendspace.com/file/5z06yr
I am running an SAX Parser in Netbean to extract 1GB of XML data and write into CSV file.
My program is running perfectly when I use test data of less then 1MB. The code runs displaying print outs that I expected and CSV files produced are correct.
So next I run my code with the 1GB XML. The code was running and displaying expected outputs for about 30mins (It was able to successfully read all the way to line 105439 in the XML),
after which, the Output just stopped showing. At the bottom of Netbean, it says the program is running, although the green bar kind of stopped flowing. This goes on for another half-an hour of nothingness. Then I noticed this error:
java.lang.IllegalArgumentException:Contents must be presorted - added value -2146647068is less than preceding value 2147447602 at org.netbeans.core.output2.IntList.add(IntList.java:76) at org.netbeans.core.output2.AbstractLines.lineUpdated(AbstractLines.java:764) at org.netbeans.core.output2.OutWriter.write(OutWriter.java:216) at org.netbeans.core.output2.OutWriter.doWrite(OutWriter.java:453) at org.netbeans.core.output2.OutWriter.println(OutWriter.java:488) at org.netbeans.core.output2.OutWriter.print(OutWriter.java:526) at org.netbeans.core.output2.NbIO$IOColorLinesImpl.println(NbIO.java:494) at org.openide.windows.IOColorLines.println(IOColorLines.java:88) at org.apache.tools.ant.module.run.StandardLogger.formatColoredMessageWithTime(StandardLogger.java:353) at org.apache.tools.ant.module.run.StandardLogger.buildFinished(StandardLogger.java:318)[catch] at org.apache.tools.ant.module.bridge.impl.NbBuildLogger.buildFinished(NbBuildLogger.java:440) at org.apache.tools.ant.Project.fireBuildFinished(Project.java:2093) at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:290) at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:541) at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:153)
Someone told me that somewhere in my code, an integer looped till its max value and has overflowed. Problem is that I can't find which is the integer causing this. I suspect it might have something to do with my TreeSet, but I it doesn't really uses such large number, unless I'm mistaken.
Following hyperlink is my code dblp.java. Sorry for the huge code, but jump to the method populateAuthorArray(...). It is called by endElement(...). Please help me stop my mistake. Thanks
http://www.sendspace.com/file/5z06yr