Skip to content

Commit 8f1025f

Browse files
committed
fix TurnArray + LocalizedProperties + MemoryManager
1 parent 620fd80 commit 8f1025f

File tree

3 files changed

+18
-12
lines changed

3 files changed

+18
-12
lines changed

net.lecousin.core/src/main/java/net/lecousin/framework/collections/TurnArray.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -627,7 +627,7 @@ private void removeAt(int index) {
627627
end--;
628628
return;
629629
}
630-
System.arraycopy(array, index + 1, array, index, end - 1);
630+
System.arraycopy(array, index + 1, array, index, end - index);
631631
array[--end] = null;
632632
return;
633633
} finally {

net.lecousin.core/src/main/java/net/lecousin/framework/locale/LocalizedProperties.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,7 @@ public void freeMemory(FreeMemoryLevel level) {
349349
}
350350
synchronized (namespaces) {
351351
for (Namespace ns : namespaces.values()) {
352+
if (ns.languages != null)
352353
for (Namespace.Language lang : ns.languages) {
353354
synchronized (lang) {
354355
if (lang.loading == null) continue;
@@ -370,16 +371,18 @@ public Collection<String> getAvailableLanguageCodes() {
370371
boolean first = true;
371372
synchronized (namespaces) {
372373
for (Namespace ns : namespaces.values()) {
373-
List<String> found = new LinkedList<>();
374-
for (Namespace.Language l : ns.languages) {
375-
String tag = String.join("-", l.tag);
376-
if (first) avail.add(tag);
377-
else found.add(tag);
378-
}
379-
if (first) first = false;
380-
else for (Iterator<String> it = avail.iterator(); it.hasNext(); ) {
381-
if (!found.contains(it.next()))
382-
it.remove();
374+
if (ns.languages != null) {
375+
List<String> found = new LinkedList<>();
376+
for (Namespace.Language l : ns.languages) {
377+
String tag = String.join("-", l.tag);
378+
if (first) avail.add(tag);
379+
else found.add(tag);
380+
}
381+
if (first) first = false;
382+
else for (Iterator<String> it = avail.iterator(); it.hasNext(); ) {
383+
if (!found.contains(it.next()))
384+
it.remove();
385+
}
383386
}
384387
}
385388
}

net.lecousin.core/src/main/java/net/lecousin/framework/memory/MemoryManager.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,10 @@ public static void freeMemory(FreeMemoryLevel level) {
273273
}
274274
for (IMemoryManageable m : list) {
275275
if (logger.debug()) logger.debug("Free memory level " + level.name() + " on " + m.getDescription());
276-
m.freeMemory(level);
276+
try { m.freeMemory(level); }
277+
catch (Throwable t) {
278+
logger.error("Error freeing memory from " + m.getDescription(), t);
279+
}
277280
}
278281
}
279282

0 commit comments

Comments
 (0)