Program: 63499
Project: 63499
Buggy source:
@Override protected void onCreate(Bundle savedInstanceState){
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  mMapView=findViewById(R.id.mapView);
  mCommentListView=findViewById(R.id.comment_list);
  List<String> commentList=new ArrayList<>();
  ArrayList<Feature> featureList=new ArrayList<>();
  ArcGISMap map=new ArcGISMap(Basemap.createStreets());
  ArcGISMapImageLayer serviceRequestMapImageLayer=new ArcGISMapImageLayer(getString(R.string.map_service));
  serviceRequestMapImageLayer.loadTablesAndLayersAsync();
  GraphicsOverlay graphicsOverlay=new GraphicsOverlay();
  serviceRequestMapImageLayer.addDoneLoadingListener(() -> {
    if (serviceRequestMapImageLayer.getLoadStatus() == LoadStatus.LOADED) {
      Envelope extent=serviceRequestMapImageLayer.getFullExtent();
      mMapView.setViewpoint(new Viewpoint(extent));
      ServiceFeatureTable commentsTable=serviceRequestMapImageLayer.getTables().get(0);
      QueryParameters queryParameters=new QueryParameters();
      queryParameters.setWhereClause("String_Node_Str");
      ListenableFuture<FeatureQueryResult> commentQueryResultFuture=commentsTable.queryFeaturesAsync(queryParameters,ServiceFeatureTable.QueryFeatureFields.LOAD_ALL);
      commentQueryResultFuture.addDoneListener(() -> {
        try {
          FeatureQueryResult commentQueryResult=commentQueryResultFuture.get();
          for (          Feature feature : commentQueryResult) {
            featureList.add(feature);
            commentList.add(feature.getAttributes().get("String_Node_Str").toString());
          }
          ArrayAdapter<String> adapter=new ArrayAdapter<>(MainActivity.this,android.R.layout.simple_list_item_1,commentList);
          mCommentListView.setAdapter(adapter);
        }
 catch (        InterruptedException|ExecutionException e) {
          Log.e(TAG,"String_Node_Str");
        }
      }
);
    }
  }
);
  mCommentListView.setOnItemClickListener((parent,view,position,id) -> {
    graphicsOverlay.getGraphics().clear();
    Feature selectedComment=featureList.get(position);
    ServiceFeatureTable commentsTable=serviceRequestMapImageLayer.getTables().get(0);
    RelationshipInfo commentsRelationshipInfo=commentsTable.getLayerInfo().getRelationshipInfos().get(0);
    RelatedQueryParameters relatedQueryParameters=new RelatedQueryParameters(commentsRelationshipInfo);
    relatedQueryParameters.setReturnGeometry(true);
    ListenableFuture<List<RelatedFeatureQueryResult>> relatedRequestResult=commentsTable.queryRelatedFeaturesAsync((ArcGISFeature)selectedComment,relatedQueryParameters);
    relatedRequestResult.addDoneListener(() -> {
      try {
        RelatedFeatureQueryResult result=relatedRequestResult.get().get(0);
        ArcGISFeature serviceRequestFeature=(ArcGISFeature)result.iterator().next();
        if (serviceRequestFeature == null) {
          Toast.makeText(MainActivity.this,"String_Node_Str",Toast.LENGTH_SHORT).show();
          return;
        }
        serviceRequestFeature.loadAsync();
        serviceRequestFeature.addDoneLoadingListener(() -> {
          if (serviceRequestFeature.getLoadStatus() == LoadStatus.LOADED) {
            Point serviceRequestPoint=(Point)serviceRequestFeature.getGeometry();
            Symbol selectedRequestedSymbol=new SimpleMarkerSymbol(SimpleMarkerSymbol.Style.CIRCLE,Color.CYAN,14);
            Graphic requestGraphic=new Graphic(serviceRequestPoint,selectedRequestedSymbol);
            graphicsOverlay.getGraphics().add(requestGraphic);
            mMapView.setViewpointCenterAsync(serviceRequestPoint,150000);
          }
        }
);
      }
 catch (      InterruptedException|ExecutionException e) {
        Log.e(TAG,"String_Node_Str");
      }
    }
);
  }
);
  map.getOperationalLayers().add(serviceRequestMapImageLayer);
  mMapView.getGraphicsOverlays().add(graphicsOverlay);
  mMapView.setMap(map);
}

Fixed version (ground truth):
@Override protected void onCreate(Bundle savedInstanceState){
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  mMapView=findViewById(R.id.mapView);
  mCommentListView=findViewById(R.id.comment_list);
  List<String> commentList=new ArrayList<>();
  ArrayList<Feature> featureList=new ArrayList<>();
  ArcGISMap map=new ArcGISMap(Basemap.createStreets());
  ArcGISMapImageLayer serviceRequestMapImageLayer=new ArcGISMapImageLayer(getString(R.string.map_service));
  serviceRequestMapImageLayer.loadTablesAndLayersAsync();
  GraphicsOverlay graphicsOverlay=new GraphicsOverlay();
  serviceRequestMapImageLayer.addDoneLoadingListener(() -> {
    if (serviceRequestMapImageLayer.getLoadStatus() == LoadStatus.LOADED) {
      Envelope extent=serviceRequestMapImageLayer.getFullExtent();
      mMapView.setViewpoint(new Viewpoint(extent));
      ServiceFeatureTable commentsTable=serviceRequestMapImageLayer.getTables().get(0);
      QueryParameters queryParameters=new QueryParameters();
      queryParameters.setWhereClause("String_Node_Str");
      ListenableFuture<FeatureQueryResult> commentQueryResultFuture=commentsTable.queryFeaturesAsync(queryParameters,ServiceFeatureTable.QueryFeatureFields.LOAD_ALL);
      commentQueryResultFuture.addDoneListener(() -> {
        try {
          FeatureQueryResult commentQueryResult=commentQueryResultFuture.get();
          for (          Feature feature : commentQueryResult) {
            featureList.add(feature);
            commentList.add(feature.getAttributes().get("String_Node_Str").toString());
          }
          ArrayAdapter<String> adapter=new ArrayAdapter<>(MainActivity.this,android.R.layout.simple_list_item_1,commentList);
          mCommentListView.setAdapter(adapter);
        }
 catch (        InterruptedException|ExecutionException e) {
          Log.e(TAG,"String_Node_Str");
        }
      }
);
    }
  }
);
  mCommentListView.setOnItemClickListener((parent,view,position,id) -> {
    graphicsOverlay.getGraphics().clear();
    Feature selectedComment=featureList.get(position);
    ServiceFeatureTable commentsTable=serviceRequestMapImageLayer.getTables().get(0);
    RelationshipInfo commentsRelationshipInfo=commentsTable.getLayerInfo().getRelationshipInfos().get(0);
    RelatedQueryParameters relatedQueryParameters=new RelatedQueryParameters(commentsRelationshipInfo);
    relatedQueryParameters.setReturnGeometry(true);
    ListenableFuture<List<RelatedFeatureQueryResult>> relatedRequestResult=commentsTable.queryRelatedFeaturesAsync((ArcGISFeature)selectedComment,relatedQueryParameters);
    relatedRequestResult.addDoneListener(() -> {
      try {
        RelatedFeatureQueryResult result=relatedRequestResult.get().get(0);
        serviceRequestFeature=null;
        for (        Feature relatedFeature : result) {
          if (!relatedFeature.getGeometry().isEmpty()) {
            serviceRequestFeature=(ArcGISFeature)relatedFeature;
            break;
          }
        }
        if (serviceRequestFeature == null) {
          Toast.makeText(MainActivity.this,"String_Node_Str",Toast.LENGTH_SHORT).show();
          return;
        }
        serviceRequestFeature.loadAsync();
        serviceRequestFeature.addDoneLoadingListener(() -> {
          if (serviceRequestFeature.getLoadStatus() == LoadStatus.LOADED) {
            Point serviceRequestPoint=(Point)serviceRequestFeature.getGeometry();
            Symbol selectedRequestedSymbol=new SimpleMarkerSymbol(SimpleMarkerSymbol.Style.CIRCLE,Color.CYAN,14);
            Graphic requestGraphic=new Graphic(serviceRequestPoint,selectedRequestedSymbol);
            graphicsOverlay.getGraphics().add(requestGraphic);
            mMapView.setViewpointCenterAsync(serviceRequestPoint,150000);
          }
        }
);
      }
 catch (      InterruptedException|ExecutionException e) {
        Log.e(TAG,"String_Node_Str");
      }
    }
);
  }
);
  map.getOperationalLayers().add(serviceRequestMapImageLayer);
  mMapView.getGraphicsOverlays().add(graphicsOverlay);
  mMapView.setMap(map);
}