From e8486e2afe6e49f5597313da8a4e4f37e2029bc2 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Fri, 26 Sep 2014 16:07:01 +0200 Subject: [PATCH] Tracking ASM 5.0.4 development: Fix for ASM issue 317539 Issue: SPR-12255 --- .../src/main/java/org/springframework/asm/TypePath.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/spring-core/src/main/java/org/springframework/asm/TypePath.java b/spring-core/src/main/java/org/springframework/asm/TypePath.java index af5140b7cc..87df7c2aba 100644 --- a/spring-core/src/main/java/org/springframework/asm/TypePath.java +++ b/spring-core/src/main/java/org/springframework/asm/TypePath.java @@ -152,6 +152,9 @@ public class TypePath { typeArg = typeArg * 10 + c - '0'; i += 1; } + if (i < n && typePath.charAt(i) == ';') { + i += 1; + } out.put11(TYPE_ARGUMENT, typeArg); } } @@ -164,7 +167,7 @@ public class TypePath { * ARRAY_ELEMENT} steps are represented with '[', {@link #INNER_TYPE * INNER_TYPE} steps with '.', {@link #WILDCARD_BOUND WILDCARD_BOUND} steps * with '*' and {@link #TYPE_ARGUMENT TYPE_ARGUMENT} steps with their type - * argument index in decimal form. + * argument index in decimal form followed by ';'. */ @Override public String toString() { @@ -182,7 +185,7 @@ public class TypePath { result.append('*'); break; case TYPE_ARGUMENT: - result.append(getStepArgument(i)); + result.append(getStepArgument(i)).append(';'); break; default: result.append('_');