@@ -470,23 +470,71 @@ public void handleASAPAssimilate(ASAP_AssimilationPDU_1_0 asapAssimilationPDU, A
470470 //>>>>>>>>>>>>>>>>>>>debug
471471
472472 if (listener != null ) {
473- /////// notify listeners - if any
473+ /////// notify listeners - if any and do it in a separate thread
474+ // no extra thread required - it is handled by ASAPPeer Wrapper
475+ // NotifyListenerThread notifyListenerThread = new NotifyListenerThread(listener);
474476 if (eraSender != ASAP .TRANSIENT_ERA ) {
475- listener .chunkStored (this .format ,
477+ // notifyListenerThread.chunkStored(this.format,
478+ listener .chunkStored (this .format ,
476479 senderE2E ,
477480 uri ,
478481 eraSender ,
479482 asapHopList
480483 );
481484 } else {
485+ // notifyListenerThread.transientMessagesReceived(transientMessages, lastHop);
482486 listener .transientMessagesReceived (transientMessages , lastHop );
483487 }
484488
485489 } else {
486490 Log .writeLog (this , this .toString (), "no chunk assimilated listener found" );
487491 }
488492 }
493+ /*
494+ private class NotifyListenerThread extends Thread {
495+ private final ASAPChunkAssimilatedListener listener;
496+ private String format;
497+ private String senderE2E;
498+ private int eraSender;
499+ private List<ASAPHop> asapHopList;
500+ private ASAPInMemoTransientMessages transientMessages;
501+ private ASAPHop lastHop;
502+ private String uri;
503+
504+ private NotifyListenerThread(ASAPChunkAssimilatedListener listener) {
505+ this.listener = listener;
506+ }
507+
508+ public void chunkStored(String format, String senderE2E, String uri, int eraSender, List<ASAPHop> asapHopList) {
509+ this.format = format;
510+ this.senderE2E = senderE2E;
511+ this.uri = uri;
512+ this.eraSender = eraSender;
513+ this.asapHopList = asapHopList;
514+ this.start();
515+ }
489516
517+ public void transientMessagesReceived(ASAPInMemoTransientMessages transientMessages, ASAPHop lastHop) {
518+ this.transientMessages = transientMessages;
519+ this.lastHop = lastHop;
520+ this.start();
521+ }
522+
523+ public void run() {
524+ Log.writeLog(this, "thread notifies listener about received messages");
525+ try {
526+ if(this.transientMessages != null) {
527+ this.listener.transientMessagesReceived(this.transientMessages, this.lastHop);
528+ } else {
529+ this.listener.chunkStored(this.format, this.senderE2E, this.uri, this.eraSender, this.asapHopList);
530+ }
531+ } catch (IOException e) {
532+ Log.writeLogErr(this, "problems notifying listener about received messages: "
533+ + e.getLocalizedMessage());
534+ }
535+ }
536+ }
537+ */
490538 private ASAPInternalChunk getIncomingChunk (String encounteredPeer , ASAP_AssimilationPDU_1_0 asapAssimilationPDU )
491539 throws IOException , ASAPException {
492540
0 commit comments