You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am trying to integrate quasar fiber with Apache Camel. The way I am trying to achieve this is by doing something like this-
Fiber fiberExchange = new Fiber(new SuspendableCallable() {
public Exchange run() throws SuspendExecution, InterruptedException {
return producerTemplate.send(clientURL, exchange);
}
}).start();
fiberExchange.get();
This internally uses HttpClient which was causing CPU hogging but nonetheless I was able to get responses correctly without error.
To solve for CPU hogging, I tried to override HttpClient by FiberHttpClient provided by Comsat-
public class FiberHttpEndpoint extends HttpEndpoint {
public FiberHttpEndpoint(final HttpEndpoint httpEndpoint
, final HttpComponent httpComponent) throws URISyntaxException {
super(httpEndpoint.getEndpointUri()
, httpComponent
, httpEndpoint.getHttpUri()
, httpEndpoint.getClientBuilder()
, httpEndpoint.getClientConnectionManager()
, httpEndpoint.getHttpClientConfigurer());
}
And passing this Component while calling the endpoint.
But after doing this change, I have started getting SuspendExecution Error due to uninstrumented methods in Fiber.java exec() method.
I have already enabled “-Dco.paralleluniverse.fibers.verifyInstrumentation=true” but it is now giving any uninstrumented method. VerifyInstrumentation was giving me warning earlier, but it got solved after marking those methods as suspendable. This is resulting in response not getting set correctly set in camel exchange.
Could you please point me to what am I missing here and how can I check which methods are uninstrumented resulting in this error.
The text was updated successfully, but these errors were encountered:
I am trying to integrate quasar fiber with Apache Camel. The way I am trying to achieve this is by doing something like this-
Fiber fiberExchange = new Fiber(new SuspendableCallable() {
public Exchange run() throws SuspendExecution, InterruptedException {
return producerTemplate.send(clientURL, exchange);
}
}).start();
fiberExchange.get();
This internally uses HttpClient which was causing CPU hogging but nonetheless I was able to get responses correctly without error.
To solve for CPU hogging, I tried to override HttpClient by FiberHttpClient provided by Comsat-
public class FiberHttpEndpoint extends HttpEndpoint {
public FiberHttpEndpoint(final HttpEndpoint httpEndpoint
, final HttpComponent httpComponent) throws URISyntaxException {
super(httpEndpoint.getEndpointUri()
, httpComponent
, httpEndpoint.getHttpUri()
, httpEndpoint.getClientBuilder()
, httpEndpoint.getClientConnectionManager()
, httpEndpoint.getHttpClientConfigurer());
}
}
public class FiberHttpComponent extends HttpComponent {
private static LoggerFacade LOGGER = LoggerFacadeManager.getLogger(HystrixHttpComponent.class);
public FiberHttpComponent(){
super();
}
}
And passing this Component while calling the endpoint.
But after doing this change, I have started getting SuspendExecution Error due to uninstrumented methods in Fiber.java exec() method.
I have already enabled “-Dco.paralleluniverse.fibers.verifyInstrumentation=true” but it is now giving any uninstrumented method. VerifyInstrumentation was giving me warning earlier, but it got solved after marking those methods as suspendable. This is resulting in response not getting set correctly set in camel exchange.
Could you please point me to what am I missing here and how can I check which methods are uninstrumented resulting in this error.
The text was updated successfully, but these errors were encountered: