void CJavaDebugAgentSettings::LoadL(RReadStream* aStream)
{
    // Read in and verify the signature
    for (TInt k=0; k<KPrefsFileSignature().Length(); k++) {
        TUint8 sig = aStream->ReadUint8L();
        if (sig != KPrefsFileSignature()[k]) {
            User::Leave(KErrCorrupt);
        }
    }

    // Read individual settings
    for (;;) {
        TInt len = 0;
        TRAPD(err, len = aStream->ReadInt32L());
        if (err != KErrNone) {
            if (err == KErrEof) break;
            User::Leave(err);
        }
        if (len < 4) User::Leave(KErrCorrupt);
        TParam* param = FindParam(aStream->ReadInt32L());
        if (param) {
            param->ReadL(aStream, len-4);
        } else {
            aStream->ReadL(len-4);
        }
    }
}