我遵循http://asm.ow2.org/current/asm-transformations.pdf中的“3.2.6 Inline Method”中的示例代码,将MethodNode内联到一个调用站点。 我的问题是内联后生成的字节码中出现了一些意外的指令(这些字节码与我的代码不一致),并且问题仅在ifeq在内联方法体之后存在并且xLoad加载堆栈上的variables时才存在。 我还没有find问题的根源。 现在我开始删除所有不明智的代码,旨在用最less的代码重现它。 任何人有好的build议,欢迎。 下面是我现有的创始人之一:问题是不相关的框架,因为问题仍然存在当configurationClassRewiter是COMPUTE_FRAMES|ClassWriter.COMPUTE_MAXS和configurationClassReader ClassReader.SKIP_DEBUG | ClassReader.SKIP_FRAMES ClassReader.SKIP_DEBUG | ClassReader.SKIP_FRAMES 为了简化问题,被调用者的身体是: public invokeExact(Ljava/lang/String;)Z ICONST_0 IRETURN 来电者是: public String invokeExact(String a, String b){ boolean flag = _guard.invokeExact(a); if(flag) { return a; } return b; } 。 MethodWriter调用者的相应的字节码操作跟踪是: public java.lang.String invokeExact(java.lang.String, java.lang.String) …. 4: aload_1 5: astore_3 6: astore 4 8: iconst_0 visitJumpInsn […]
我正在开发一个小的Spring应用程序。 我必须将学生信息的详细信息存储在数据库中。 我开发了一个SimpleFormController。 我使用了NetBeans + Hibernate mapping + Spring。 当我部署项目时,会发生以下错误。 我的spring-config-db-applicationContext.xml如下所示: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <!– Hibernate session factory –> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <constructor-arg index="0"> <value>${driverClassName}</value> </constructor-arg> <constructor-arg index="1"> <value>${url}</value> </constructor-arg> <constructor-arg index="2"> <value>${username}</value> </constructor-arg> <constructor-arg index="3"> <value>${password}</value> </constructor-arg> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource"/> </property> <!– […]