You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2012/04/04 17:21:38 UTC

svn commit: r1309451 - in /tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src: main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/ test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/

Author: rfeng
Date: Wed Apr  4 15:21:37 2012
New Revision: 1309451

URL: http://svn.apache.org/viewvc?rev=1309451&view=rev
Log:
Fix the ASM code gen for long/double parameters

Modified:
    tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/RootResourceClassGenerator.java
    tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/MockedResource.java
    tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/Resource.java
    tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/ResourceWrapper.java
    tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/RootResourceClassGeneratorTestCase.java

Modified: tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/RootResourceClassGenerator.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/RootResourceClassGenerator.java?rev=1309451&r1=1309450&r2=1309451&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/RootResourceClassGenerator.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/RootResourceClassGenerator.java Wed Apr  4 15:21:37 2012
@@ -101,9 +101,15 @@ public class RootResourceClassGenerator 
         mv.visitCode();
         mv.visitFieldInsn(GETSTATIC, className, DELEGATE_FIELD, getSignature(interfaceName));
         Class<?>[] paramTypes = method.getParameterTypes();
+        int index = 1;
         for (int i = 0; i < paramTypes.length; i++) {
             String signature = Type.getDescriptor(paramTypes[i]);
-            mv.visitVarInsn(CodeGenerationHelper.getLoadOPCode(signature), i + 1);
+            mv.visitVarInsn(CodeGenerationHelper.getLoadOPCode(signature), index);
+            if(paramTypes[i] == long.class || paramTypes[i] == double.class) {
+                index+=2; // Increase the index by 2 for the 64bit numbers
+            } else {
+                index++;
+            }
         }
         mv.visitMethodInsn(INVOKEINTERFACE, interfaceName, method.getName(), methodDescriptor);
 

Modified: tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/MockedResource.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/MockedResource.java?rev=1309451&r1=1309450&r2=1309451&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/MockedResource.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/MockedResource.java Wed Apr  4 15:21:37 2012
@@ -32,7 +32,7 @@ public class MockedResource implements R
         return value;
     }
 
-    public void create(String value) {
+    public void create(long id, String value) {
         this.value = value;
     }
 

Modified: tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/Resource.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/Resource.java?rev=1309451&r1=1309450&r2=1309451&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/Resource.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/Resource.java Wed Apr  4 15:21:37 2012
@@ -42,7 +42,7 @@ public interface Resource {
     void update(String value);
 
     @POST
-    void create(String value);
+    void create(long id, String value);
 
     @DELETE
     void delete();

Modified: tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/ResourceWrapper.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/ResourceWrapper.java?rev=1309451&r1=1309450&r2=1309451&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/ResourceWrapper.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/ResourceWrapper.java Wed Apr  4 15:21:37 2012
@@ -39,8 +39,8 @@ public class ResourceWrapper implements 
         return delegate.get();
     }
 
-    public void create(String value) {
-        delegate.create(value);
+    public void create(long id, String value) {
+        delegate.create(id, value);
     }
 
     public void delete() {

Modified: tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/RootResourceClassGeneratorTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/RootResourceClassGeneratorTestCase.java?rev=1309451&r1=1309450&r2=1309451&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/RootResourceClassGeneratorTestCase.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/interface-java-jaxrs/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxrs/RootResourceClassGeneratorTestCase.java Wed Apr  4 15:21:37 2012
@@ -74,7 +74,7 @@ public class RootResourceClassGeneratorT
 
         Resource resourceProxy = (Resource)cls.newInstance();
         Assert.assertNull(resourceProxy.get());
-        resourceProxy.create("123");
+        resourceProxy.create(1l, "123");
         Assert.assertEquals("123", resourceProxy.get());
         resourceProxy.update("ABC");
         Assert.assertEquals("ABC", resourceProxy.get());