Commit 948934b7 authored by Steffen Gieseler's avatar Steffen Gieseler

Version 1.2.0: Memory-Leak korrigiert




git-svn-id: svn://ntoserver/Datenverteiler/VRZ3/trunk/de.bsvrz.kex.lmstic3@66642 40c0be50-5d29-0410-901d-fb59edb5cafc
parent ce7526bc
......@@ -30,6 +30,12 @@ zusätzliche Bibliotheken bzw. Softwareeinheiten erforderlich:
Versionsgeschichte
==================
Version 1.2.0
==================
- Memory-Leak korrigiert
Version 1.1.0
==================
......
......@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>de.bsvrz.kex</groupId>
<artifactId>de.bsvrz.kex.lmstic3</artifactId>
<version>1.1.0-SNAPSHOT</version>
<version>1.2.0-SNAPSHOT</version>
<name>Segment KEx, SWE LMS-TIC3</name>
<url>http://www.bitctrl.de</url>
......@@ -25,7 +25,7 @@
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>8</java.version>
<project.status>BETA</project.status>
<project.standDatum>2017-06-21</project.standDatum>
<project.standDatum>2017-07-04</project.standDatum>
</properties>
<repositories>
......
......@@ -267,29 +267,6 @@ public class Meldungserzeugung extends Thread implements ClientReceiverInterface
}
}
/**
* Listener f&uuml;r &Auml;nderungen der Menge der RDS-Meldungen des
* Landesmeldestelle.
*/
class MengeListener implements MutableSetChangeListener {
@Override
public void update(final MutableSet set, final SystemObject[] addedObjects,
final SystemObject[] removedObjects) {
LMSTIC3LogTools.log(debug, LmsMsg.FineMengenAenderung);
for (final SystemObject so : addedObjects) {
LMSTIC3LogTools.log(debug, LmsMsg.InfoMeldungNeu, so.getPid());
hinzufuegenMeldung(so);
}
for (final SystemObject so : removedObjects) {
LMSTIC3LogTools.log(debug, LmsMsg.InfoMeldungEntfernt, so.getPid());
entfernenMeldung(so);
}
}
}
/**
* Attributgruppe der Kommunikationsparameter.
*/
......@@ -433,7 +410,7 @@ public class Meldungserzeugung extends Thread implements ClientReceiverInterface
try {
tmcMeldung.abmeldenDavEmpfang(dav);
} catch (final TIC3Exception e) {
debug.error("abmeldenDavEmpfang: " + e.getMessage());
debug.error("abmeldenDavEmpfang '" + so.getPid() + "': " + e.getMessage());
}
meldungenTMC.remove(so.getPid());
}
......@@ -445,7 +422,7 @@ public class Meldungserzeugung extends Thread implements ClientReceiverInterface
try {
externeMeldung.abmeldenDavEmpfang(dav);
} catch (final TIC3Exception e) {
debug.error("abmeldenDavEmpfang: " + e.getMessage());
debug.error("abmeldenDavEmpfang '" + so.getPid() + "': " + e.getMessage());
}
meldungenTIC3.remove(so.getPid());
}
......@@ -748,11 +725,13 @@ public class Meldungserzeugung extends Thread implements ClientReceiverInterface
for (final SystemObject so : removedObjects) {
mliste.remove(so);
output.append(so.getPid() + " ");
if (so.isValid()) {
try {
debug.info("Meldung '" + so.getPid() + "' wird invalidiert");
so.invalidate();
} catch (final ConfigurationChangeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
debug.warning("Invalidierung '" + so.getPid() + "' fehlgeschlagen: " + e.getMessage());
}
}
}
......@@ -786,7 +765,8 @@ public class Meldungserzeugung extends Thread implements ClientReceiverInterface
}
debug.info(name + " am Objekt '" + lms + "' werden gelöscht!");
meldungsmenge.addChangeListener(new MeldungListenerSync(myLock, new ArrayList<>(loeschen)));
final MeldungListenerSync meldungListener = new MeldungListenerSync(myLock, new ArrayList<>(loeschen));
meldungsmenge.addChangeListener(meldungListener);
meldungsmenge.remove(loeschen.toArray(new SystemObject[loeschen.size()]));
if (loeschen.size() != 0) {
final List<SystemObject> mi = new ArrayList<>(loeschen);
......@@ -806,6 +786,7 @@ public class Meldungserzeugung extends Thread implements ClientReceiverInterface
} else {
debug.info("keine Meldungen aus der Menge '" + menge + "' zu löschen");
}
meldungsmenge.removeChangeListener(meldungListener);
// Meldungen, die nicht in der Menge enthalten sind:
final List<SystemObject> robjekte = dav.getDataModel().getType(typ).getElements();
......@@ -820,7 +801,9 @@ public class Meldungserzeugung extends Thread implements ClientReceiverInterface
if (del) {
debug.info("Meldung '" + so + "' wird gelöscht!");
if (so.isValid()) {
so.invalidate();
}
i++;
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment