modify InterruptedException
diff --git a/alpha/alpha-benchmark/src/main/java/org/apache/servicecomb/pack/alpha/benchmark/SagaEventBenchmark.java b/alpha/alpha-benchmark/src/main/java/org/apache/servicecomb/pack/alpha/benchmark/SagaEventBenchmark.java
index ab8f6ad..c36ce04 100644
--- a/alpha/alpha-benchmark/src/main/java/org/apache/servicecomb/pack/alpha/benchmark/SagaEventBenchmark.java
+++ b/alpha/alpha-benchmark/src/main/java/org/apache/servicecomb/pack/alpha/benchmark/SagaEventBenchmark.java
@@ -32,12 +32,15 @@
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
+import java.security.SecureRandom;
@Component
public class SagaEventBenchmark {
private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+ private final static SecureRandom SECURERANDOM = new SecureRandom();
+
@Autowired(required = false)
SagaMessageSender sender;
int warmUpConcurrency;
@@ -98,6 +101,7 @@
}
} catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
LOG.error(e.getMessage(), e);
}
LOG.info("OK");
@@ -118,7 +122,8 @@
try {
end.await();
} catch (InterruptedException e) {
- LOG.error("warmUp Exception = [{}]", e.getMessage(), e);
+ Thread.currentThread().interrupt();
+ LOG.error("warmUp Exception = [{}]", e.getMessage(), e);
}
}
@@ -177,6 +182,7 @@
}
end.countDown();
} catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
LOG.error(e.getMessage(), e);
}
}
@@ -213,11 +219,10 @@
private String[] generateRandomIdPrefix(int numberOfWords) {
String[] randomStrings = new String[numberOfWords];
- Random random = new Random();
for (int i = 0; i < numberOfWords; i++) {
char[] word = new char[8];
for (int j = 0; j < word.length; j++) {
- word[j] = (char) ('a' + random.nextInt(26));
+ word[j] = (char) ('a' + SECURERANDOM.nextInt(26));
}
randomStrings[i] = new String(word);
}
diff --git a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/channel/kafka/KafkaChannelAutoConfiguration.java b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/channel/kafka/KafkaChannelAutoConfiguration.java
index a96621c..a2a32b4 100644
--- a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/channel/kafka/KafkaChannelAutoConfiguration.java
+++ b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/channel/kafka/KafkaChannelAutoConfiguration.java
@@ -111,6 +111,9 @@
.createTopics(Collections.singleton(newTopic));
createTopicsResult.values().get(topic).get();
} catch (InterruptedException | ExecutionException e) {
+ if (e.getCause() instanceof InterruptedException) {
+ Thread.currentThread().interrupt();
+ }
if (!(e.getCause() instanceof TopicExistsException)) {
throw new RuntimeException(e.getMessage(), e);
}
@@ -147,4 +150,4 @@
return new KafkaSagaEventConsumer(actorSystem, sagaShardRegionActor, metricsService,
bootstrap_servers, topic);
}
-}
\ No newline at end of file
+}
diff --git a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/channel/kafka/KafkaMessagePublisher.java b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/channel/kafka/KafkaMessagePublisher.java
index fe41fb3..f156bc2 100644
--- a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/channel/kafka/KafkaMessagePublisher.java
+++ b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/channel/kafka/KafkaMessagePublisher.java
@@ -44,6 +44,9 @@
try {
kafkaTemplate.send(topic, data.getGlobalTxId(), data).get();
} catch (InterruptedException | ExecutionException | UnsupportedOperationException e) {
+ if (e.getCause() instanceof InterruptedException) {
+ Thread.currentThread().interrupt();
+ }
throw new RuntimeException(e);
}
}
diff --git a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/ElasticsearchTransactionRepository.java b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/ElasticsearchTransactionRepository.java
index 4d02443..dffffcf 100644
--- a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/ElasticsearchTransactionRepository.java
+++ b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/ElasticsearchTransactionRepository.java
@@ -268,6 +268,7 @@
try {
Thread.sleep(refreshTime);
} catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
LOG.error(e.getMessage(), e);
}
}
diff --git a/omega/omega-connector/omega-connector-grpc/src/main/java/org/apache/servicecomb/pack/omega/connector/grpc/core/GrpcOnErrorHandler.java b/omega/omega-connector/omega-connector-grpc/src/main/java/org/apache/servicecomb/pack/omega/connector/grpc/core/GrpcOnErrorHandler.java
index d2ad6ee..33b049f 100644
--- a/omega/omega-connector/omega-connector-grpc/src/main/java/org/apache/servicecomb/pack/omega/connector/grpc/core/GrpcOnErrorHandler.java
+++ b/omega/omega-connector/omega-connector-grpc/src/main/java/org/apache/servicecomb/pack/omega/connector/grpc/core/GrpcOnErrorHandler.java
@@ -74,6 +74,7 @@
}
return messageSender;
} catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
throw new OmegaException("Failed to get reconnected sender", e);
}
}
diff --git a/omega/omega-connector/omega-connector-grpc/src/main/java/org/apache/servicecomb/pack/omega/connector/grpc/saga/RetryableMessageSender.java b/omega/omega-connector/omega-connector-grpc/src/main/java/org/apache/servicecomb/pack/omega/connector/grpc/saga/RetryableMessageSender.java
index 1149778..49c52b1 100644
--- a/omega/omega-connector/omega-connector-grpc/src/main/java/org/apache/servicecomb/pack/omega/connector/grpc/saga/RetryableMessageSender.java
+++ b/omega/omega-connector/omega-connector-grpc/src/main/java/org/apache/servicecomb/pack/omega/connector/grpc/saga/RetryableMessageSender.java
@@ -67,6 +67,7 @@
try {
return ((SagaMessageSender)availableMessageSenders.take()).send(event);
} catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
throw new OmegaException("Failed to send event " + event + " due to interruption", e);
}
}
diff --git a/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/wrapper/RecoveryPolicyTimeoutWrapper.java b/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/wrapper/RecoveryPolicyTimeoutWrapper.java
index 894d981..9873ac9 100644
--- a/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/wrapper/RecoveryPolicyTimeoutWrapper.java
+++ b/omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/wrapper/RecoveryPolicyTimeoutWrapper.java
@@ -60,6 +60,7 @@
throw new OmegaException(timeoutProb.getInterruptFailureException());
}
} catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
if (timeoutProb.getInterruptFailureException() != null) {
throw new OmegaException(timeoutProb.getInterruptFailureException());
}else{