From b8882758036a1abe86c5405889410c55da958a80 Mon Sep 17 00:00:00 2001 From: aronshen Date: Tue, 20 Jan 2015 11:54:10 +0800 Subject: [PATCH] change findBaseAccessor method in hibernate4.3.7,because javassist3.18.1's class name generate rule is '_$$_jvst'+... --- .../java/org/apache/struts2/json/JSONWriter.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java b/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java index fd9b8440f..dc53967e3 100644 --- a/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java +++ b/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java @@ -305,7 +305,18 @@ public class JSONWriter { } catch (Exception ex) { LOG.debug(ex.getMessage(), ex); } - } else { + + //in hibernate4.3.7,because javassist3.18.1's class name generate rule is '_$$_jvst'+... + } else if(clazz.getName().contains("$$_jvst")){ + try { + baseAccessor = Class.forName( + clazz.getName().substring(0, clazz.getName().indexOf("_$$"))) + .getMethod(accessor.getName(), accessor.getParameterTypes()); + } catch (Exception ex) { + LOG.debug(ex.getMessage(), ex); + } + } + else { return accessor; } return baseAccessor;