-
Notifications
You must be signed in to change notification settings - Fork 122
Open
Description
Vineflower version
vineflower develop/1.12.0 ad2e67c
Describe the bug
This class, compiled with openjdk8, can't be decompiled with vineflower develop/1.12.0 ad2e67c
import java.util.ArrayList;
import java.util.HashSet;
public final class CustomerOrderHistoryManager {
private static final int GUEST_CHECKOUT = 1;
private static final int REGISTERED_USER = 2;
private static final int SUBSCRIPTION_RENEWAL = 3;
private static final int EXPRESS_DELIVERY = 4;
private static final int INTERNATIONAL_SHIPPING = 5;
public void processTransactionDetails(final int status, final ArrayList<OrderData> batch) {
for (final OrderData transaction : batch) {
switch (status) {
case GUEST_CHECKOUT:
case REGISTERED_USER: {
final HashSet<ProductItem> items = new HashSet<>();
for (final ProductItem item : items) {
updateInventoryLog(item);
}
break;
}
case SUBSCRIPTION_RENEWAL: {
for (final ProductItem item : transaction.getPurchasedItems()) {
updateInventoryLog(item);
}
}
case EXPRESS_DELIVERY:
case INTERNATIONAL_SHIPPING: {
for (final ProductItem item : transaction.getPurchasedItems()) {
updateInventoryLog(item);
}
}
}
}
}
private void updateInventoryLog(final ProductItem item) {}
static class ProductItem {
}
static class OrderData {
public ProductItem[] getPurchasedItems() {
return null;
}
}
}Additional information
Stacktrace is:
WARN: Method processTransactionDetails (ILjava/util/ArrayList;)V in class CustomerOrderHistoryManager couldn't be decompiled.
java.lang.IllegalStateException: Could not find destination nodes for stat id {If}:19 from source 27_foreach_vardef
at org.jetbrains.java.decompiler.modules.decompiler.flow.FlattenStatementsHelper.setEdges(FlattenStatementsHelper.java:563)
at org.jetbrains.java.decompiler.modules.decompiler.flow.FlattenStatementsHelper.buildDirectGraph(FlattenStatementsHelper.java:50)
at org.jetbrains.java.decompiler.modules.decompiler.MergeHelper.isVarUsedBefore(MergeHelper.java:828)
at org.jetbrains.java.decompiler.modules.decompiler.MergeHelper.matchForEach(MergeHelper.java:674)
at org.jetbrains.java.decompiler.modules.decompiler.MergeHelper.enhanceLoop(MergeHelper.java:49)
at org.jetbrains.java.decompiler.modules.decompiler.MergeHelper.enhanceLoopsRec(MergeHelper.java:35)
at org.jetbrains.java.decompiler.modules.decompiler.MergeHelper.enhanceLoopsRec(MergeHelper.java:30)
at org.jetbrains.java.decompiler.modules.decompiler.MergeHelper.enhanceLoopsRec(MergeHelper.java:30)
at org.jetbrains.java.decompiler.modules.decompiler.MergeHelper.enhanceLoops(MergeHelper.java:21)
at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:273)
at org.jetbrains.java.decompiler.main.rels.ClassWrapper.init(ClassWrapper.java:77)
at org.jetbrains.java.decompiler.main.ClassesProcessor.initWrappers(ClassesProcessor.java:556)
at org.jetbrains.java.decompiler.main.ClassesProcessor.processClass(ClassesProcessor.java:451)
at org.jetbrains.java.decompiler.main.Fernflower.processClass(Fernflower.java:188)
at org.jetbrains.java.decompiler.struct.ContextUnit.lambda$save$3(ContextUnit.java:182)
at java.base/java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1403)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
This class can be used in unit tests.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels