@@ -1638,26 +1638,33 @@ public void getController(String modelId, ActionListener<MLController> listener)
1638
1638
*/
1639
1639
public void getConnector (String connectorId , ActionListener <Connector > listener ) {
1640
1640
GetRequest getRequest = new GetRequest ().index (CommonValue .ML_CONNECTOR_INDEX ).id (connectorId );
1641
- client .get (getRequest , ActionListener .wrap (r -> {
1642
- if (r != null && r .isExists ()) {
1643
- try (
1644
- XContentParser parser = MLNodeUtils
1645
- .createXContentParserFromRegistry (NamedXContentRegistry .EMPTY , r .getSourceAsBytesRef ())
1646
- ) {
1647
- ensureExpectedToken (XContentParser .Token .START_OBJECT , parser .nextToken (), parser );
1648
- Connector connector = Connector .createConnector (parser );
1649
- listener .onResponse (connector );
1650
- } catch (Exception e ) {
1651
- log .error ("Failed to parse connector:" + connectorId );
1652
- listener .onFailure (e );
1641
+ try (ThreadContext .StoredContext context = client .threadPool ().getThreadContext ().stashContext ()) {
1642
+ ActionListener <Connector > wrappedListener = ActionListener .runBefore (listener , context ::restore );
1643
+ client .get (getRequest , ActionListener .wrap (r -> {
1644
+ if (r != null && r .isExists ()) {
1645
+ try (
1646
+ XContentParser parser = MLNodeUtils
1647
+ .createXContentParserFromRegistry (NamedXContentRegistry .EMPTY , r .getSourceAsBytesRef ())
1648
+ ) {
1649
+ ensureExpectedToken (XContentParser .Token .START_OBJECT , parser .nextToken (), parser );
1650
+ Connector connector = Connector .createConnector (parser );
1651
+ wrappedListener .onResponse (connector );
1652
+ } catch (Exception e ) {
1653
+ log .error ("Failed to parse connector:" + connectorId );
1654
+ wrappedListener .onFailure (e );
1655
+ }
1656
+ } else {
1657
+ wrappedListener
1658
+ .onFailure (new OpenSearchStatusException ("Failed to find connector:" + connectorId , RestStatus .NOT_FOUND ));
1653
1659
}
1654
- } else {
1655
- listener .onFailure (new OpenSearchStatusException ("Failed to find connector:" + connectorId , RestStatus .NOT_FOUND ));
1656
- }
1657
- }, e -> {
1660
+ }, e -> {
1661
+ log .error ("Failed to get connector" , e );
1662
+ wrappedListener .onFailure (new OpenSearchStatusException ("Failed to get connector:" + connectorId , RestStatus .NOT_FOUND ));
1663
+ }));
1664
+ } catch (Exception e ) {
1658
1665
log .error ("Failed to get connector" , e );
1659
- listener .onFailure (new OpenSearchStatusException ( "Failed to get connector:" + connectorId , RestStatus . NOT_FOUND ) );
1660
- }));
1666
+ listener .onFailure (e );
1667
+ }
1661
1668
}
1662
1669
1663
1670
/**
0 commit comments