opendap/src/main/java/opendap/dap/DSequence.java
private void oldDeserialize(DataInputStream source, ServerVersion sv,
                                StatusUI statusUI)
            throws IOException, DataReadException {
        try {
            for (; ;) {
                deserializeSingle(source, sv, statusUI);
            }
        }
        catch (EOFException e) {
        }
    }
private void oldDeserialize(DataInputStream source, ServerVersion sv,
                                StatusUI statusUI)
            throws IOException, DataReadException {
        try {
            for (; ;) {
                deserializeSingle(source, sv, statusUI);
            }
        }
        catch (EOFException e) {
        }
    }
The old deserialize protocol has a number of limitations stemming from
its inability to tell when the sequence is finished.  It's really only
good for a Dataset containing a single sequence, or where the sequence is
the last thing in the dataset.  To handle this, we just read single
instances until we get an IOException, then stop.

@param source   a <code>DataInputStream</code> to read from.
@param sv       the <code>ServerVersion</code> returned by the server.
@param statusUI the <code>StatusUI</code> object to use for GUI updates
and user cancellation notification (may be null).
@throws IOException       thrown on any InputStream exception other than EOF
(which is trapped here).
@throws DataReadException if an unexpected value was read.