@Conversational + @Scope("REQUEST") Failed on java.lang.ClassCastException: java.lang.String incompatible with java.lang.Thread --------------------------------------------------------------------------------------------------------------------------------
Key: TUSCANY-1660 URL: https://issues.apache.org/jira/browse/TUSCANY-1660 Project: Tuscany Issue Type: Bug Affects Versions: Java-SCA-0.99 Environment: WindowsXP, IBM JDK5 Reporter: Jun JIe Nan Fix For: Java-SCA-0.99 I tried to make some sense on @Conversational and @Scope("REQUEST"), but failed. The error message: java.lang.ClassCastException: java.lang.String incompatible with java.lang.Thread at org.apache.tuscany.sca.core.scope.RequestScopeContainer.getWrapper (RequestScopeContainer.java:35) at org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.getInstance(JavaImplementationInvoker.java:62) at org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke (JavaImplementationInvoker.java:85) at org.apache.tuscany.sca.binding.sca.impl.RuntimeSCABindingInvoker.invoke(RuntimeSCABindingInvoker.java:48) at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke (JDKInvocationHandler.java:270) at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:114) at $Proxy9.empty(Unknown Source) at samples.hex.HexTest.testCartService (HexTest.java:77) I tried: 1. @Conversational + @Scope("STATELESS") 2. @Conversational + @Scope("CONVERSATION") 3. @Conversational + @Scope("COMPOSITE") All the above 3 worked fine and did not have the error message above. Anybody can give me some hints, thanks! The component definition: <component name="CartComponent"> <implementation.java class="samples.hex.cart.impl.CartImpl"/> </component> The implementation: package samples.hex.cart.impl; import java.util.HashMap; import java.util.Map; import org.osoa.sca.annotations.ConversationID; import org.osoa.sca.annotations.Destroy; import org.osoa.sca.annotations.Init; import org.osoa.sca.annotations.Scope; import org.osoa.sca.annotations.Service; import samples.hex.cart.services.CartService; @Scope("REQUEST") @Service(CartService.class) public class CartImpl implements CartService { @ConversationID protected String conversationID; protected Map<String, Integer> cart; @Init protected void init(){ if(cart==null) cart = new HashMap<String, Integer>(); } public void empty() { cart.clear(); } public Map<String, Integer> getItems() { return cart; } public void updateItem(String itemID, int quantity) { if(quantity<=0) cart.remove(itemID); cart.put(itemID, quantity); System.out.println (conversationID + ":" + this); } @Destroy protected void destroy(){ empty(); } } The interface: package samples.hex.cart.services; import java.util.Map ; import org.osoa.sca.annotations.Conversational; @Conversational public interface CartService{ public void updateItem(String itemID, int quantity); public void empty(); public Map<String, Integer> getItems(); } The Test Code: @Test public void testCartService(){ CartService cart = hex.getService(CartService.class, "CartComponent/CartService"); assertNotNull(cart); cart.empty(); } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]