diff --git a/source/contract/contract-jvm/src/main/java/com/jd/blockchain/contract/jvm/JavaContractCode.java b/source/contract/contract-jvm/src/main/java/com/jd/blockchain/contract/jvm/JavaContractCode.java
index fa4d8260..42c8711a 100644
--- a/source/contract/contract-jvm/src/main/java/com/jd/blockchain/contract/jvm/JavaContractCode.java
+++ b/source/contract/contract-jvm/src/main/java/com/jd/blockchain/contract/jvm/JavaContractCode.java
@@ -1,7 +1,9 @@
package com.jd.blockchain.contract.jvm;
+import java.lang.reflect.UndeclaredThrowableException;
import java.util.concurrent.Callable;
+import com.jd.blockchain.ledger.ContractExecuteException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -100,8 +102,12 @@ public class JavaContractCode extends AbstractContractCode {
}
@Override
- public BytesValue call() throws Exception {
- return JavaContractCode.super.processEvent(eventContext);
+ public BytesValue call() {
+ try {
+ return JavaContractCode.super.processEvent(eventContext);
+ } catch (Exception e) {
+ throw new UndeclaredThrowableException(new ContractExecuteException());
+ }
}
}
diff --git a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/MerkleAccountSet.java b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/MerkleAccountSet.java
index 9ee496cc..2f6f216c 100644
--- a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/MerkleAccountSet.java
+++ b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/MerkleAccountSet.java
@@ -250,7 +250,7 @@ public class MerkleAccountSet implements Transactional, MerkleProvable, AccountQ
}
long version = merkleDataset.getVersion(address);
if (version >= 0) {
- throw new LedgerException("The registering account already exist!", TransactionState.DATA_ACCOUNT_EXIST);
+ throw new LedgerException("The registering account already exist!", TransactionState.ACCOUNT_REGISTER_CONFLICT);
}
if (!accessPolicy.checkRegistering(address, pubKey)) {
diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionState.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionState.java
index 10b34ebc..562ec830 100644
--- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionState.java
+++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionState.java
@@ -29,11 +29,6 @@ public enum TransactionState {
*/
DATA_ACCOUNT_DOES_NOT_EXIST((byte) 0x02),
- /**
- * 数据账户存在;
- */
- DATA_ACCOUNT_EXIST((byte) 0x12),
-
/**
* 用户不存在;
*/
@@ -64,6 +59,11 @@ public enum TransactionState {
*/
REJECTED_BY_SECURITY_POLICY((byte) 0x10),
+ /**
+ * 账户注册冲突;
+ */
+ ACCOUNT_REGISTER_CONFLICT((byte) 0x12),
+
/**
* 由于在错误的账本上执行交易而被丢弃;
*/
diff --git a/source/runtime/runtime-context/pom.xml b/source/runtime/runtime-context/pom.xml
index d73390c6..be55a091 100644
--- a/source/runtime/runtime-context/pom.xml
+++ b/source/runtime/runtime-context/pom.xml
@@ -15,11 +15,5 @@
utils-common
${project.version}
-
-
- com.jd.blockchain
- ledger-model
- ${project.version}
-
\ No newline at end of file
diff --git a/source/runtime/runtime-context/src/main/java/com/jd/blockchain/runtime/AbstractModule.java b/source/runtime/runtime-context/src/main/java/com/jd/blockchain/runtime/AbstractModule.java
index e3faa296..90c69b20 100644
--- a/source/runtime/runtime-context/src/main/java/com/jd/blockchain/runtime/AbstractModule.java
+++ b/source/runtime/runtime-context/src/main/java/com/jd/blockchain/runtime/AbstractModule.java
@@ -1,12 +1,12 @@
package com.jd.blockchain.runtime;
-import java.io.InputStream;
-import java.util.concurrent.Callable;
-
-import com.jd.blockchain.ledger.ContractExecuteException;
import com.jd.blockchain.utils.concurrent.AsyncFuture;
import com.jd.blockchain.utils.concurrent.CompletableAsyncFuture;
+import java.io.InputStream;
+import java.lang.reflect.UndeclaredThrowableException;
+import java.util.concurrent.Callable;
+
public abstract class AbstractModule implements Module {
@@ -93,8 +93,17 @@ public abstract class AbstractModule implements Module {
}
try {
return callable.call();
+ } catch (UndeclaredThrowableException e) {
+ if(e.getCause() == null){
+ throw e;
+ }
+ if(e.getCause() instanceof RuntimeException){
+ throw (RuntimeException)e.getCause();
+ }
+
+ throw new IllegalStateException(e.getCause().getMessage(), e.getCause());
} catch (Exception e) {
- throw new ContractExecuteException(e.getMessage(), e);
+ throw new IllegalStateException(e.getMessage(), e);
} finally {
if (origClassLoader != Thread.currentThread().getContextClassLoader()) {
Thread.currentThread().setContextClassLoader(origClassLoader);
diff --git a/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/LedgerInitializeWebController.java b/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/LedgerInitializeWebController.java
index 272aa85c..125dc8ee 100644
--- a/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/LedgerInitializeWebController.java
+++ b/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/LedgerInitializeWebController.java
@@ -272,9 +272,9 @@ public class LedgerInitializeWebController implements LedgerInitProcess, LedgerI
do {
allPermitted = startRequestPermissions(currentId, privKey);
if (!allPermitted) {
- if (retry < 181) {
+ if (retry < 601) {
try {
- Thread.sleep(10000);
+ Thread.sleep(3000);
} catch (InterruptedException e) {
// ignore interrupted exception;
}