You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by "Simon Laws (JIRA)" <tu...@ws.apache.org> on 2007/09/05 01:30:45 UTC

[jira] Assigned: (TUSCANY-1660) @Conversational + @Scope("REQUEST") Failed on java.lang.ClassCastException: java.lang.String incompatible with java.lang.Thread

     [ https://issues.apache.org/jira/browse/TUSCANY-1660?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Simon Laws reassigned TUSCANY-1660:
-----------------------------------

    Assignee: Simon Laws

> @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
>            Assignee: Simon Laws
>             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: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org