The code shown is still internal to your Data Adapter and does not reference anything in Lightstreamer Adapter interface.
I mean that SubscriptionInfo, subscribedItems, and onDelete are still defined in your code.
So, it is difficult for us to devise any needed change.
This is furtherly complicated by the fact that the code is inspired in part to our StockQuotesDataAdapter.java code sample (which defines SubscriptionInfo and subscribedItems) and in part by the PortfolioDataAdapter.java code sample (which defines onDelete).

Anyway, if you manage to invoke onDelete and the implementation of onDelete is the one included in our PortfolioDataAdapter.java, this should correctly send the DELETE command.
However, we didn't see that reported in the log.
So, please debug your Adapter to ensure that
  • onDelete is invoked,
  • onDelete invokes listener.smartUpdate with the correct parameters,
  • after the invocation, the Server logs the update as expected (on LightstreamerLogger.subscriptions at DEBUG level).

If you dump the parameters upon the invocation of listener.smartUpdate, together with the current time, we can help you in comparing those with the log.