David Karr wrote:
> On Aug 12, 5:14 pm, Wojtek <nowh...@a.com> wrote:
>> David Karr wrote :
>>
>>
>>
>>> On Aug 12, 12:59 pm, Roedy Green <see_webs...@mindprod.com.invalid>
>>> wrote:
>>>> On Wed, 12 Aug 2009 11:39:37 -0700 (PDT), "david.karr"
>>>> <davidmichaelk...@gmail.com> wrote, quoted or indirectly quoted
>>>> someone who said :
>>>>> What could be going wrong here?
>>>> seehttp://mindprod.com/jgloss/sscce.html
>>>> We need to see the details.
>>> I'm not sure what else I can provide. A fully working (or failing, as
>>> the case might be) example would be pretty unlikely.
>>> The only other directly relevant code is the "makeRecord()" method,
>>> which is approximately this:
>>> -------------
>>> private Record makeRecord(final ResultSet rs)
>>> throws SQLException {
>>> Record record = new Record();
>>> record.id = trimOrNull(rs.getString(1));
>> You should use getters and setters, so the above would be:
>> record.setID( trimOrNull(rs.getString(1)) );
>
> Does this have any relevance to the problem?
>
>>> private String trimOrNull(String str) {
>>> return (str != null ? str.trim() : null);
>>> }
>> This is an expensive way of doing it. Trim the value before you store
>> it, then just retrieve it.
>
> Actually, I realized it has to be a little more complicated than
> that. I have to set it to null if the string is empty or nothing but
> blanks. My current method implements that, but this is also
> irrelevant to the problem.
Look into commons-lang, they have a nifty class with a nice static method:
org.apache.commons.lang.StringUtils.trimToNull(Str ing )
<http://commons.apache.org/lang/apidocs/org/apache/commons/lang/StringUtils.html#trimToNull(java.lang.String)>
Yes, you *can* write the code yourself, but why bother? Not to mention
there are a lot of other nifty classes and methods in that library

>
>> You did not say HOW the records were duplicated:
>>
>> 1
>> 1
>> 2
>> 2
>> 3
>> 3
>> 4
>> 4
>>
>> or
>>
>> 1
>> 2
>> 3
>> 4
>> 1
>> 2
>> 3
>> 4
>
> The latter.
>
> The other interesting detail is that I don't see this happen all the
> time, even when it's retrieving the exact same set of records. My
> current test case has 7 particular records. Sometimes it correctly
> returns only the 7 records, sometimes it starts over again after the
> 7th, retrieving 1-7 again.
Sounds like the problem is on line 42 of the file you didn't show us.
In other words, we can't help you unless you can provide an SSCCE. Over
half of the benefit from constructing an SSCCE is in the process of
constructing it. You may find that you have done something silly, or
that its not actually happining the way you suspect. At the very
least, I would add some kind of logging to your while loop, to test
whether you're actually going through the result-set twice, or if the
result-set is twice as long as it should be.
--
Daniel Pitts' Tech Blog: <http://virtualinfinity.net/wordpress/>