Skip to content

Commit 37d00d8

Browse files
Use getDetailFormatterFromArray() for all java versions (eclipse-jdt#677)
* Use getDetailFormatterFromArray() for all java versions * Version bump(s) for 4.37 stream --------- Co-authored-by: Eclipse JDT Bot <[email protected]>
1 parent 769a887 commit 37d00d8

File tree

3 files changed

+6
-48
lines changed

3 files changed

+6
-48
lines changed

org.eclipse.jdt.debug.ui/META-INF/MANIFEST.MF

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
22
Bundle-ManifestVersion: 2
33
Bundle-Name: %pluginName
44
Bundle-SymbolicName: org.eclipse.jdt.debug.ui; singleton:=true
5-
Bundle-Version: 3.15.0.qualifier
5+
Bundle-Version: 3.15.100.qualifier
66
Bundle-Activator: org.eclipse.jdt.internal.debug.ui.JDIDebugUIPlugin
77
Bundle-Vendor: %providerName
88
Bundle-Localization: plugin

org.eclipse.jdt.debug.ui/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
</parent>
1919
<groupId>org.eclipse.jdt</groupId>
2020
<artifactId>org.eclipse.jdt.debug.ui</artifactId>
21-
<version>3.15.0-SNAPSHOT</version>
21+
<version>3.15.100-SNAPSHOT</version>
2222
<packaging>eclipse-plugin</packaging>
2323
<properties>
2424
<defaultSigning-excludeInnerJars>true</defaultSigning-excludeInnerJars>

org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDetailFormattersManager.java

Lines changed: 4 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@
3333
import org.eclipse.debug.ui.IValueDetailListener;
3434
import org.eclipse.jdt.core.IJavaProject;
3535
import org.eclipse.jdt.core.IType;
36-
import org.eclipse.jdt.core.JavaCore;
37-
import org.eclipse.jdt.core.Signature;
3836
import org.eclipse.jdt.debug.core.IEvaluationRunnable;
3937
import org.eclipse.jdt.debug.core.IJavaArray;
4038
import org.eclipse.jdt.debug.core.IJavaArrayType;
@@ -43,7 +41,6 @@
4341
import org.eclipse.jdt.debug.core.IJavaInterfaceType;
4442
import org.eclipse.jdt.debug.core.IJavaObject;
4543
import org.eclipse.jdt.debug.core.IJavaPrimitiveValue;
46-
import org.eclipse.jdt.debug.core.IJavaReferenceType;
4744
import org.eclipse.jdt.debug.core.IJavaStackFrame;
4845
import org.eclipse.jdt.debug.core.IJavaThread;
4946
import org.eclipse.jdt.debug.core.IJavaType;
@@ -457,12 +454,8 @@ private Expression getCompiledExpression(IJavaObject javaObject, IJavaDebugTarge
457454
if (type instanceof IJavaClassType) {
458455
snippet = getDetailFormatter((IJavaClassType) type);
459456
}
460-
if (type instanceof IJavaArrayType jArray) {
461-
if (JavaCore.compareJavaVersions(debugTarget.getVersion(), JavaCore.VERSION_9) < 0) {
462-
snippet = getArraySnippet((IJavaArray) javaObject);
463-
} else {
464-
snippet = getDetailFormatterFromArray(jArray);
465-
}
457+
if (type instanceof IJavaArrayType javaArray) {
458+
snippet = getDetailFormatterFromArray(javaArray);
466459
}
467460
if (snippet != null) {
468461
IJavaProject project = getJavaProject(javaObject, thread);
@@ -510,10 +503,8 @@ private Expression getCompiledExpression(IJavaPrimitiveValue javaPM, IJavaDebugT
510503
}
511504
snippet = primitiveSnippets(snippet, jdiType.getName(), javaPM);
512505
}
513-
if (type instanceof IJavaArrayType) {
514-
if (JavaCore.compareJavaVersions(debugTarget.getVersion(), JavaCore.VERSION_9) < 0) {
515-
snippet = getArraySnippet((IJavaArray) javaPM);
516-
}
506+
if (type instanceof IJavaArrayType javaArray) {
507+
snippet = getDetailFormatterFromArray(javaArray);
517508
}
518509
if (snippet != null) {
519510
IJavaProject project = getJavaProject(javaPM, thread);
@@ -576,39 +567,6 @@ private String primitiveSnippets(String snippet, String typeName, IJavaPrimitive
576567

577568
}
578569

579-
protected String getArraySnippet(IJavaArray value) throws DebugException {
580-
String signature = value.getSignature();
581-
int nesting = Signature.getArrayCount(signature);
582-
if (nesting > 1) {
583-
// for nested primitive arrays, print everything
584-
String sig = Signature.getElementType(signature);
585-
if (sig.length() == 1 || "Ljava/lang/String;".equals(sig)) { //$NON-NLS-1$
586-
// return null so we get to "valueToString(IJavaValue)" for primitive and string types
587-
return null;
588-
}
589-
}
590-
if (((IJavaArrayType)value.getJavaType()).getComponentType() instanceof IJavaReferenceType) {
591-
int length = value.getLength();
592-
// guestimate at max entries to print based on char/space/comma per entry
593-
int maxLength = getMaxDetailLength();
594-
if (maxLength > 0){
595-
int maxEntries = (maxLength / 3) + 1;
596-
if (length > maxEntries) {
597-
StringBuilder snippet = new StringBuilder();
598-
snippet.append("Object[] shorter = new Object["); //$NON-NLS-1$
599-
snippet.append(maxEntries);
600-
snippet.append("]; System.arraycopy(this, 0, shorter, 0, "); //$NON-NLS-1$
601-
snippet.append(maxEntries);
602-
snippet.append("); "); //$NON-NLS-1$
603-
snippet.append("return java.util.Arrays.asList(shorter).toString();"); //$NON-NLS-1$
604-
return snippet.toString();
605-
}
606-
}
607-
return "java.util.Arrays.asList(this).toString()"; //$NON-NLS-1$
608-
}
609-
return null;
610-
}
611-
612570
/**
613571
* @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(PropertyChangeEvent)
614572
*/

0 commit comments

Comments
 (0)