Skip to content

Commit f158f7c

Browse files
committed
refactor(db): recover the previous exception handling strategy
1. delete the exception throwing
1 parent 8b62bc1 commit f158f7c

8 files changed

Lines changed: 29 additions & 11 deletions

File tree

chainbase/src/main/java/org/tron/common/storage/leveldb/LevelDbDataSourceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ public void initDB() {
128128
private void openDatabase(Options dbOptions) throws IOException {
129129
final Path dbPath = getDbPath();
130130
if (dbPath == null || dbPath.getParent() == null) {
131-
throw new IOException(String.format("db path is illegal, %s/%s", parentPath, dataBaseName));
131+
return;
132132
}
133133
if (!Files.isSymbolicLink(dbPath.getParent())) {
134134
Files.createDirectories(dbPath.getParent());

chainbase/src/main/java/org/tron/common/utils/ForkController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ public synchronized void update(BlockCapsule blockCapsule) {
167167
stats[slot] = VERSION_UPGRADE;
168168
manager.getDynamicPropertiesStore().statsByVersion(version, stats);
169169
logger.info(
170-
"******* Update hard fork: {}, witness size: {}, solt: {}, witness: {}, version: {}.",
170+
"Update hard fork: {}, witness size: {}, solt: {}, witness: {}, version: {}.",
171171
Streams.zip(witnesses.stream(), Stream.of(ArrayUtils.toObject(stats)), Maps::immutableEntry)
172172
.map(e -> Maps
173173
.immutableEntry(encode58Check(e.getKey().toByteArray()), e.getValue()))

chainbase/src/main/java/org/tron/core/db/BlockStore.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ private List<BlockCapsule> pack(Set<byte[]> values) {
5353
try {
5454
blocks.add(new BlockCapsule(bytes));
5555
} catch (BadItemException e) {
56-
throw new TronDBException(e);
56+
logger.error("Find bad item: {}", e.getMessage());
57+
// throw new TronDBException(e);
5758
}
5859
}
5960
blocks.sort(Comparator.comparing(BlockCapsule::getNum));

chainbase/src/main/java/org/tron/core/db/accountstate/AccountStateEntity.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.tron.core.db.accountstate;
22

3+
import com.google.protobuf.InvalidProtocolBufferException;
34
import lombok.extern.slf4j.Slf4j;
45
import org.tron.common.utils.StringUtil;
56
import org.tron.protos.Protocol.Account;
@@ -24,8 +25,8 @@ public AccountStateEntity(Account account) {
2425
public static AccountStateEntity parse(byte[] data) {
2526
try {
2627
return new AccountStateEntity().setAccount(Account.parseFrom(data));
27-
} catch (Exception e) {
28-
logger.error("Parse to AccountStateEntity error!", e);
28+
} catch (InvalidProtocolBufferException e) {
29+
logger.error("Parse to AccountStateEntity error! reason: {}", e.getMessage());
2930
}
3031
return null;
3132
}

chainbase/src/main/java/org/tron/core/db/common/iterator/RockStoreIterator.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,12 @@ public boolean hasNext() {
3636
dbIterator.close();
3737
}
3838
} catch (Exception e) {
39-
throw new TronDBException(e);
39+
logger.error(e.getMessage(), e);
40+
try {
41+
dbIterator.close();
42+
} catch (Exception e1) {
43+
logger.error(e.getMessage(), e);
44+
}
4045
}
4146
return hasNext;
4247
}

chainbase/src/main/java/org/tron/core/db/common/iterator/StoreIterator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public boolean hasNext() {
3535
dbIterator.close();
3636
}
3737
} catch (Exception e) {
38-
throw new TronDBException(e);
38+
logger.error(e.getMessage(), e);
3939
}
4040

4141
return hasNext;

chainbase/src/main/java/org/tron/core/db2/core/SnapshotManager.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,7 @@ public void destroy() {
473473
snapshotManager.revoke();
474474
}
475475
} catch (Exception e) {
476-
throw new RevokingStoreIllegalStateException(e);
476+
logger.error("Revoke database error.", e);
477477
}
478478
if (disableOnExit) {
479479
snapshotManager.disable();
@@ -482,7 +482,17 @@ public void destroy() {
482482

483483
@Override
484484
public void close() {
485-
destroy();
485+
try {
486+
if (applySnapshot) {
487+
snapshotManager.revoke();
488+
}
489+
} catch (Exception e) {
490+
logger.error("Revoke database error.", e);
491+
throw new RevokingStoreIllegalStateException(e);
492+
}
493+
if (disableOnExit) {
494+
snapshotManager.disable();
495+
}
486496
}
487497
}
488498

framework/src/main/java/org/tron/core/db/accountstate/AccountStateEntity.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.tron.core.db.accountstate;
22

3+
import com.google.protobuf.InvalidProtocolBufferException;
34
import lombok.extern.slf4j.Slf4j;
45
import org.tron.common.utils.StringUtil;
56
import org.tron.protos.Protocol.Account;
@@ -23,8 +24,8 @@ public AccountStateEntity(Account account) {
2324
public static AccountStateEntity parse(byte[] data) {
2425
try {
2526
return new AccountStateEntity().setAccount(Account.parseFrom(data));
26-
} catch (Exception e) {
27-
logger.error("Parse to AccountStateEntity error!", e);
27+
} catch (InvalidProtocolBufferException e) {
28+
logger.error("Parse to AccountStateEntity error! reason: {}", e.getMessage());
2829
}
2930
return null;
3031
}

0 commit comments

Comments
 (0)