[Bug 510246] Fix discovery inconsistency
The contentInstance was not removed from the URI Mapper table when
it is deleted due to a full container. This fix removes the entry
on this specific execution.
Signed-off-by: Francois Aissaoui <aissaoui@laas.fr>
diff --git a/org.eclipse.om2m.core/src/main/java/org/eclipse/om2m/core/controller/ContentInstanceController.java b/org.eclipse.om2m.core/src/main/java/org/eclipse/om2m/core/controller/ContentInstanceController.java
index 5f7bc2a..45fb3bf 100644
--- a/org.eclipse.om2m.core/src/main/java/org/eclipse/om2m/core/controller/ContentInstanceController.java
+++ b/org.eclipse.om2m.core/src/main/java/org/eclipse/om2m/core/controller/ContentInstanceController.java
@@ -222,9 +222,11 @@
if (container.getMaxNrOfInstances() != null && (cinList.size() == container.getMaxNrOfInstances().intValue())) {
LOGGER.info("Deleting oldest content instance due to container size limit: " +
container.getChildContentInstances().get(0).getHierarchicalURI());
+ String hierarchicalUriToDelete = container.getChildContentInstances().get(0).getHierarchicalURI();
dbs.getDAOFactory().getContentInstanceDAO().delete(transaction, container.getChildContentInstances().get(0));
transaction.commit();
transaction.close();
+ UriMapper.deleteUri(hierarchicalUriToDelete);
transaction = dbs.getDbTransaction();
transaction.open();
container = (ContainerEntity)dao.find(transaction, request.getTargetId());