|
16 | 16 | import io.nats.client.support.JsonValue;
|
17 | 17 |
|
18 | 18 | import java.time.ZonedDateTime;
|
| 19 | +import java.util.ArrayList; |
19 | 20 | import java.util.HashMap;
|
20 | 21 | import java.util.List;
|
21 | 22 | import java.util.Map;
|
@@ -48,13 +49,20 @@ public class StreamState {
|
48 | 49 | lastTime = readDate(vStreamState, LAST_TS);
|
49 | 50 | subjectCount = readLong(vStreamState, NUM_SUBJECTS, 0);
|
50 | 51 | deletedCount = readLong(vStreamState, NUM_DELETED, 0);
|
51 |
| - subjects = Subject.listOf(readValue(vStreamState, SUBJECTS)); |
52 | 52 | deletedStreamSequences = readLongList(vStreamState, DELETED);
|
53 | 53 | lostStreamData = LostStreamData.optionalInstance(readValue(vStreamState, LOST));
|
54 | 54 |
|
| 55 | + subjects = new ArrayList<>(); |
55 | 56 | subjectMap = new HashMap<>();
|
56 |
| - for (Subject s : subjects) { |
57 |
| - subjectMap.put(s.getName(), s.getCount()); |
| 57 | + JsonValue vSubjects = readValue(vStreamState, SUBJECTS); |
| 58 | + if (vSubjects != null && vSubjects.map != null) { |
| 59 | + for (String subject : vSubjects.map.keySet()) { |
| 60 | + Long count = getLong(vSubjects.map.get(subject)); |
| 61 | + if (count != null) { |
| 62 | + subjects.add(new Subject(subject, count)); |
| 63 | + subjectMap.put(subject, count); |
| 64 | + } |
| 65 | + } |
58 | 66 | }
|
59 | 67 | }
|
60 | 68 |
|
|
0 commit comments