Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
nbauma109 committed Dec 18, 2022
2 parents 5fc5c95 + a6a7885 commit 1bd66bb
Show file tree
Hide file tree
Showing 2 changed files with 178 additions and 0 deletions.
20 changes: 20 additions & 0 deletions src/test/java/jd/core/test/DefaultExceptionContextTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package jd.core.test;

import org.apache.commons.io.IOUtils;
import org.junit.Test;

import java.nio.charset.StandardCharsets;

import static org.junit.Assert.assertEquals;

/*
* Test for duplicate variable declaration bug fix.
* Check for declaredNames in FastInstructionListBuilder.analyzeTryAndSynchronized().
*/
public class DefaultExceptionContextTest extends AbstractTestCase {
@Test
public void test() throws Exception {
String output = decompile("org/apache/commons/lang3/exception/DefaultExceptionContext");
assertEquals(IOUtils.toString(getClass().getResource("DefaultExceptionContext.txt"), StandardCharsets.UTF_8), output);
}
}
158 changes: 158 additions & 0 deletions src/test/resources/jd/core/test/DefaultExceptionContext.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
/* */ package org.apache.commons.lang3.exception;
/* */
/* */ import java.io.Serializable;
/* */ import java.util.ArrayList;
/* */ import java.util.HashSet;
/* */ import java.util.List;
/* */ import java.util.Set;
/* */ import org.apache.commons.lang3.StringUtils;
/* */ import org.apache.commons.lang3.tuple.ImmutablePair;
/* */ import org.apache.commons.lang3.tuple.Pair;
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */ public class DefaultExceptionContext
/* */ implements ExceptionContext, Serializable
/* */ {
/* */ private static final long serialVersionUID = 20110706L;
/* 46 */ private final List<Pair<String, Object>> contextValues = new ArrayList();
/* */
/* */
/* */
/* */
/* */ public DefaultExceptionContext addContextValue(String label, Object value)
/* */ {
/* 53 */ this.contextValues.add(new ImmutablePair(label, value));
/* 54 */ return this;
/* */ }
/* */
/* */
/* */
/* */
/* */ public DefaultExceptionContext setContextValue(String label, Object value)
/* */ {
/* 62 */ this.contextValues.removeIf( p -> { return StringUtils.equals(label, (CharSequence)p.getKey()); } );
/* 63 */ addContextValue(label, value);
/* 64 */ return this;
/* */ }
/* */
/* */
/* */
/* */
/* */ public List<Object> getContextValues(String label)
/* */ {
/* 72 */ List<Object> values = new ArrayList();
/* 73 */ for (Pair<String, Object> pair : this.contextValues) {
/* 74 */ if (StringUtils.equals(label, (CharSequence)pair.getKey())) {
/* 75 */ values.add(pair.getValue());
/* */ }
/* */ }
/* 78 */ return values;
/* */ }
/* */
/* */
/* */
/* */
/* */ public Object getFirstContextValue(String label)
/* */ {
/* 86 */ for (Pair<String, Object> pair : this.contextValues) {
/* 87 */ if (StringUtils.equals(label, (CharSequence)pair.getKey())) {
/* 88 */ return pair.getValue();
/* */ }
/* */ }
/* 91 */ return null;
/* */ }
/* */
/* */
/* */
/* */
/* */ public Set<String> getContextLabels()
/* */ {
/* 99 */ Set<String> labels = new HashSet();
/* 100 */ for (Pair<String, Object> pair : this.contextValues) {
/* 101 */ labels.add(pair.getKey());
/* */ }
/* 103 */ return labels;
/* */ }
/* */
/* */
/* */
/* */
/* */ public List<Pair<String, Object>> getContextEntries()
/* */ {
/* 111 */ return this.contextValues;
/* */ }
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */ public String getFormattedExceptionMessage(String baseMessage)
/* */ {
/* 122 */ StringBuilder buffer = new StringBuilder(256);
/* 123 */ if (baseMessage != null) {
/* 124 */ buffer.append(baseMessage);
/* */ }
/* */
/* 127 */ if (!this.contextValues.isEmpty()) {
/* 128 */ if (buffer.length() > 0) {
/* 129 */ buffer.append('\n');
/* */ }
/* 131 */ buffer.append("Exception Context:\n");
/* */
/* 133 */ int i = 0;
/* 134 */ for (Pair<String, Object> pair : this.contextValues) {
/* 135 */ buffer.append("\t[");
/* 136 */ buffer.append(++i);
/* 137 */ buffer.append(':');
/* 138 */ buffer.append((String)pair.getKey());
/* 139 */ buffer.append("=");
/* 140 */ Object value = pair.getValue();
/* 141 */ if (value == null) {
/* 142 */ buffer.append("null");
/* */ } else {
/* */ String valueStr;
/* */ String valueStr;
/* 146 */ try { valueStr = value.toString();
/* */ } catch (Exception e) {
/* 148 */ valueStr = "Exception thrown on toString(): " + ExceptionUtils.getStackTrace(e);
/* */ }
/* 150 */ buffer.append(valueStr);
/* */ }
/* 152 */ buffer.append("]\n");
/* */ }
/* 154 */ buffer.append("---------------------------------");
/* */ }
/* 156 */ return buffer.toString();
/* */ }
/* */ }

0 comments on commit 1bd66bb

Please sign in to comment.