我正在我的桌面应用程序上实现Java 8的一些新功能,而Hibernate 3.6似乎不喜欢它.
我在接口中添加了一个"默认方法",从那时起它就抛出了Hibernate:
2014-10-02 14:01:25,538 WARN entity.PojoEntityTuplizer - could not create proxy factory for:modelo.ChequeTercero
org.hibernate.HibernateException: Javassist Enhancement failed: modelo.ChequeTercero
at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxyFactory(JavassistLazyInitializer.java:169)
at org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.postInstantiate(JavassistProxyFactory.java:65)
Caused by: java.lang.VerifyError: (class: modelo/ChequeTercero_$$_javassist_45, method: _d21getNumeroValor signature: ()Ljava/lang/String;) Illegal use of nonvirtual function call
Run Code Online (Sandbox Code Playgroud)
对于实现接口的EACH类,在接口中为EACH默认方法相乘.由于此日志是Level.WARN,因此每次打开应用程序时都会在用户上生成biiiiiiiii日志文件.
我试图制作一些记录器过滤器但是没有工作
<filter class="org.hibernate.proxy.pojo.BasicLazyInitializer">
<param name="LevelMin" value="FATAL" />
<param name="LevelMax" value="FATAL" />
</filter>
<filter class="org.apache.log4j.filter.ExpressionFilter">
<param name="expression" value="EXCEPTION ~= org.hibernate.proxy.pojo.BasicLazyInitializer"/>
<param name="acceptOnMatch" value="false"/>
</filter>
<filter class="org.apache.log4j.varia.StringMatchFilter">
<param name="StringToMatch" value="org.hibernate.HibernateException: Javassist Enhancement failed"/>
<param name="AcceptOnMatch" value="false" />
</filter>
<!--<filter class="org.apache.log4j.varia.DenyAllFilter"/> -->
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?如果我取消注释DenyAllFilter,也不再出现任何日志
这是一个jdk/jre错误吗?当jdk7发布但我从未收到反馈时,我报告了这一点,是否正常获得13个阵列?
String[] months = DateFormatSymbols.getInstance().getMonths();
System.out.println(months.length + " " + Arrays.toString(months));
Run Code Online (Sandbox Code Playgroud)
输出:13 [enero,febrero,marzo,abril,mayo,junio,julio,agosto,septiembre,octubre,noviembre,diciembre,]