Timing of delegate method invocation!!

In my app, I use MKReverseGeocoder method to to build (location) string that some other class uses it as output to the user. In testing I see that very often the location string is not displayed. I kept thinking that the MKReverseGecoder is failing - but it is not. It is a timing issue.
What I do is that I build the (location) string (e.g. Las Vegas, Nevada, US) in the delegate method for MKReverseGeocoder. That string is stored in one of the the AppDelegate's instance variables. The consumer of the location string then accesses it later on.
In the following snapshot of the console log, the delegate method logs (-----> Las Vegas, Nevada, US) and the consumer logs (===> string value). The first section shows that the delegate is called after the consumer is called - that's why the value is "not set yet". The second section shows the intended sequence of execution.
2010-05-31 17:28:21.517 Sam[6677:207] delegateEmailSetup=YES // Try 1.
2010-05-31 17:28:43.489 Sam[6677:207] Location manager initialized
2010-05-31 17:28:44.023 Sam[6677:207] geocoder = (null)
2010-05-31 17:28:44.073 Sam[6677:207] geocoder = <MKReverseGeocoder: 0x17d070>
2010-05-31 17:28:44.096 Sam[6677:207] geocoder released
2010-05-31 17:28:44.437 Sam[6677:207] ===> is not set yet // Use of the Location String that is not built yet
2010-05-31 17:28:44.759 Sam[6677:207] geocoder = <MKReverseGeocoder: 0x1714e0>
2010-05-31 17:28:44.783 Sam[6677:207] geocoder released
2010-05-31 17:28:45.174 Sam[6677:207] -----> Las Vegas, Nevada, US // Location string is built here (a little late)
2010-05-31 17:28:45.181 Sam[6677:207] Location manager released
2010-05-31 17:28:47.035 Sam[6677:207] fromSendButton: NO
2010-05-31 17:29:22.884 Sam[6677:207] Location manager initialized // Try 2.
2010-05-31 17:29:22.982 Sam[6677:207] geocoder = <MKReverseGeocoder: 0x15ff10>
2010-05-31 17:29:22.989 Sam[6677:207] geocoder released
2010-05-31 17:29:23.541 Sam[6677:207] -----> Las Vegas, Nevada, US // Location String is built in time
2010-05-31 17:29:23.544 Sam[6677:207] Location manager released
2010-05-31 17:29:24.502 Sam[6677:207] ===> Las Vegas, Nevada, US // and is available to the user of the string
2010-05-31 17:29:25.810 Sam[6677:207] fromSendButton: NO
How can the execution sequence be guaranteed to be in a particular order? Should I put a sleep in the consumer, so that the delegate has time to finish it's job?
Sam!

Shnaps wrote:
The consumer of the location string then accesses it later on. ...
How can the execution sequence be guaranteed to be in a particular order?
I don't think I have enough info to understand your requirement, Sam. You say the consumer runs "later on", but you need to prevent it from running too soon. What needs to happen between the time the geocoder finishes and the comsumer starts? Or to put it another way, why can't the consumer simply be started by reverseGeocoder:didFindPlacemark:?
Should I put a sleep in the consumer, so that the delegate has time to finish it's job?
Only as a last resort. In that case you wouldn't want the consumer to literally sleep, you'd probably want to set a boolean ivar from reverseGeocoder:didFindPlacemark:. When the consumer needed to run, it would start polling that ivar (i.e. start a repeating timer whose fired method would either cancel the timer and start the consumer when the ivar became True, or else raise a timeout alert).
But as above, polling should be your last choice. Even if the consumer is waiting on some additional asynchronous event(s), so long as you can get a message at the end of each event, you should be able to avoid polling by using the last such message to start your consumer.
\- Ray

Similar Messages

  • How to solve the "Method invocation failed" error in script?

    Hello,
    I'm trying to modify the script that enumerates all the txt (csv) files on folder and deletes empty columns, but with no luck. The script is working when I execute it on single csv file. But when I put script on loop, it generates errors:
    Method invocation failed because [System.Management.Automation.PSCustomObject] does not contain a method named 'split'.
    At C:\scripts\populate.ps1:25 char:1
    + $b = $line.split(",")
    + ~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation: (split:String) [], RuntimeException
        + FullyQualifiedErrorId : MethodNotFound
    The script looks the following:
    $files = Get-ChildItem C:\scripts\Results\csv\* -include *.txt
    #Process files by performing a search and replace
    foreach ($infile in $files)
    $infilen = 'C:\scripts\Results\csv\'+[io.path]::GetFileName($infile)
    $infile = import-csv $infilen
    ##remove blank coloumns##
    $cStore = @() # array to store used column numbers
    $rNumber = 0
    foreach ($line in $infile)
    if ($rNumber -eq 0)
    {# ignore header
    else
    $b = $line.split(",")
    $fieldNum = 0
    foreach ($field in $b)
    if ($field -ne '')
    if ($cStore -notcontains $fieldNum) {$cStore += $fieldNum}
    $fieldNum += 1
    $rNumber +=1
    # array $cStore now contains column numbers with values
    $cStore = $cStore | sort
    foreach ($line in $infile)
    $nLine = ""
    $c = $line.split(",")
    foreach ($ar in $cStore)
    $nLine += $c[$ar]+","
    # remove trailing ,
    $nLine = $nLine.Substring(0, $nLine.Length-1)
    $fnFriendly = [io.path]::GetFileNameWithoutExtension($infile)
    $result=$fnFriendly+'cl.txt'
    Write-Output $nLine >> $result
    Also I have found the explanation on this error on this
    link but it seems this is not the case.  Can you help to solve this?
    Thanks!

    You are importing a CSV file which implies that you are creating an object (pscustomobject) and each item in that object is represented by $line. The issue is that this $line has multiple properties (for each column of the CSV) that you need to decide
    on which one to split:
    $c = $line.propertyname.split(",")
    I'm not sure, but it seems that if you are trying to split by a comma, then maybe you are assuming that you did something similar to a
    get-content on the file in which the original approach that you have done would work.
    Boe Prox
    Blog |
    Twitter
    PoshWSUS |
    PoshPAIG | PoshChat |
    PoshEventUI
    PowerShell Deep Dives Book

  • Why must this method invocation be caught?!

    Hi there. I have this following piece of code:
    public class Dog extends Animal {
         public static void main(String[] args) {
              Animal animal = new Dog();
              System.out.println(animal.getAge(args[0]));
         int getAge(String arg) {
              return Integer.parseInt(arg);
    class Animal {
         int getAge(String x) throws Exception {
              return 5;
    }Ok, I compiled this an received this notification from the compiler:
    Dog.java:4: unreported exception java.lang.Exception; must be caught or declared
    to be thrown
                    System.out.println(animal.getAge(args[0]));
                                                    ^
    1 errorIm a little confused here as to why I am receiving this notification...
    The reason being is firstly I thought that when you override a method you can declare fewer or narrower checked
    exceptions than the method that is being overridden and secondly,
    this is a polymorphic method invocation on line 4 as Dog's getAge method is being called,
    not class Animal's getAge method.
    Any clarification would be well received,
    thank you indeed.
    Edited by: shamrock08 on May 6, 2008 10:23 AM
    Edited by: shamrock08 on May 6, 2008 10:23 AM

    shamrock08 wrote:
    BigDaddyLoveHandles wrote:
    you don't get that compile-time error. Why do you get it with the first code? In expression animal.getAge(args[0]), variable animal is of type Animal, and Animal's getAge method signature includes "throws Exception". Typing is done statically, at compile-time, hence the syntax error.Im not sure im entirely understanding.
    I thought that in relation to overridden instance methods, the Object type determines which method
    will be invoked at runtime. Yes.
    So in this case wont the Dog getAge method be invoked? Yes.
    Im just a little confused as my book says that
    when a method overrides an inherited instance method it can declare fewer or narrower checked exceptions,
    Thanks for the input & regards.That's also true. I think what you are missing is the realization that compiler errors are based on static type information not runtime information.
    Consider this method:
    void f(Dog d, Animal a) {
        d.getAge("");
        a.getAge("");
    }The method invocation d.getAge("") doesn't throw Exception, because that is how you overrode getAge in class Dog.
    The method invocation a.getAge("") may throw a checked exception, because that is how the method is defined in class Animal. So the compiler will complain about this line: either catch or propagate the exception. Note that this compiler error is independent of what object a refers to -- a could be pointing to a Dog, it doesn't matter. Only the static typing matters at compile-time.

  • Error sending method invocation request(oc4j 10g(10.1.3.1))

    Dear,
    I have two applications a.ear and b.ear. They both are deployed on same oc4j container (10g(10.1.3.1))
    Both applications use each others session beans. In order to make communications between these two applications possible I set global-jndi-lookup-enabled attribute in <application-server> element in server.xml file, to be true.
    One of the applications use hibernate 3.1. According to some of posts from your forum, I replaced antlr.jar from toplink\jlib folder with one form with the one provided by the Hibernate 3 distribution.
    In order to integrate Hibernate with Container managed transactions, I set in hibernate.cfg.xml:
    hibernate.transaction.factory_class parameter to: org.hibernate.transaction.CMTTransactionFactory and
    hibernate.transaction.manager_lookup_class to: org.hibernate.transaction.OC4JTransactionManagerLookup.
    Everything works well since I save/update data in database. I save or update data, calling method from remote session bean.
    I am getting java.lang.NullPointerException. Here is my error log:
    2007-02-23 13:03:32.687 WARNING J2EE EJB-08002 [WorkflowManager] thread HTTPThreadGroup-12 encountered an exception while trying to end the transaction: oracle.oc4j.rmi.OracleRemoteException: An exception occurred during transaction completion: ; nested exception is:
    javax.transaction.RollbackException
    WARN processException, Unhandled Exception thrown: class com.ed.ecomm.edcore.exception.RepException
    2007-02-23 13:03:32.750 ERROR ServletException cause
    mermig > 13:03:32.765 ERROR SecurityFilter - EXCEPTION:
    Error sending method invocation request; nested exception is:
    java.lang.NullPointerException
    javax.servlet.ServletException: Error sending method invocation request; nested exception is:
    java.lang.NullPointerException
    at org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:516)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:423)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
    at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
    at oracle.security.jazn.oc4j.JAZNFilter$1.run(JAZNFilter.java:396)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAsPrivileged(Subject.java:500)
    at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:410)
    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368)
    at com.evermind.server.http.ServletRequestDispatcher.unprivileged_forward(ServletRequestDispatcher.java:259)
    at com.evermind.server.http.ServletRequestDispatcher.access$100(ServletRequestDispatcher.java:50)
    at com.evermind.server.http.ServletRequestDispatcher$2.oc4jRun(ServletRequestDispatcher.java:193)
    at oracle.oc4j.security.OC4JSecurity.doPrivileged(OC4JSecurity.java:283)
    at com.evermind.server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:198)
    at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)
    at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:261)
    at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)
    at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:316)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
    at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
    at com.ed.mermig2plus.web.filters.AuthorizationFilter.doFilter(AuthorizationFilter.java:115)
    at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
    at com.ed.ecomm.edcore.web.filters.MonitoringFilter.doFilter(MonitoringFilter.java:180)
    at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17)
    at com.ed.ecomm.edcore.web.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:93)
    at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17)
    at com.ed.ecomm.edcore.web.filters.DoFilterPrivilegedAction.run(DoFilterPrivilegedAction.java:65)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:320)
    at com.ed.ecomm.edcore.web.filters.jaas.OracleJAASProvider.performAction(OracleJAASProvider.java:166)
    at com.ed.ecomm.edcore.web.filters.SecurityFilter.performAction(SecurityFilter.java:595)
    at com.ed.ecomm.edcore.web.filters.SecurityFilter.doFilter(SecurityFilter.java:292)
    at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17)
    at oracle.security.jazn.oc4j.JAZNFilter$1.run(JAZNFilter.java:396)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAsPrivileged(Subject.java:500)
    at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:410)
    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:619)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368)
    at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:866)
    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:448)
    at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:216)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:117)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:110)
    at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
    at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:239)
    at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:34)
    at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:880)
    at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:298)
    at java.lang.Thread.run(Thread.java:534)
    Can you help me? I can not find anything about this exception
    The same works for me in 10.1.2.0.2
    Thanks and regards,
    -- Smiljka

    OC4J can work with many different DataSources implementations to work against many different databases. We have not hardcoded it work only against an Oracle database. We have reworked the Data Source area in 10.1.3 to make it simpler and more consistent.
    I'd recommend having a read of the the J2EE Services Guide for 10.1.3 (http://download-west.oracle.com/otn/java/oc4j/1013/doc/web.1013/b14427.pdf)
    and have a look at chapter 4 where our new and improved DataSource implementation s discussed.
    -steve-

  • Detecting the source of a method invocation.

    Within a given method, is there a way to detect what class/method made the invocation call?
    I need to find a way to modify instance variables within a method, based on the invoking class ... I thought of navigating back through the Stack, but I am working with a multi-threaded application so I fear that I cannot absolutely depend on the last Stack call being the actual invoking class/method. Any ideas? - please help.
    Many thanks,
    Thomas

    How does one access the method invocation stack?I'm not sure if an easier way exists, but you can extend SecurityManager to fetch the Class context of the current Thread, which will provide you with an array of Class obejcts, ordered according to the method invocation stack. Thus, you can determine what Class invoked a particular method, but you can not determine what Object (not via the SecurityManager funcationality).
    Here is a simple class I often use for such a need (excuse any formating issues- or misspellings in the documenation)... ... although, it should be stated, this class may not work in certain environments- specifically ones that deny permission "createSecurityManager".
    * This class provides static utility methods for retrieving information
    * on the class context.  The methods in this class can provide a
    * resource with a list of the classes that invoked it, thus allowing
    * clases to determine if a particular method is being accessed by
    * the proper caller or allow Class variables to be initialized statically,
    * with out having to instantiate the type.
    * <p>This class is meant to provide simple functionality in familiar
    * environments.  Its funcationality may not work properly when executing
    * in an enviroment with strigent security permissions.  Specifically, if
    * permission is denied to construct a new SecurityManager instance, the
    * methods of this class will fail.
    * @author: Sean Flanerry
    public final class ClassLookup extends SecurityManager {
      private static final ClassLookup instance = new ClassLookup();
      private ClassLookup() { }
      * This method returns the class context for the current thread in format
      * <ul>
      * <li>Class for currently executing method
      * <li>Class that invoked the above method
      * <li>Class that invoked the above method...
      * </ul>
      * The first two elements in the returned array will be of type ClassLookup.
      * @see java.lang.SecurityManager#getClassContext()
      public static Class [] fetchClassContext() {
        return instance.getClassContext();
      * This method returns the Class that invoked this method.  This method
      * is used primarily by static initializers that have to retrieve a handle
      * to the java.lang.Class instance that wraps the current type, but that
      * can not instantiate the current type, eg <br>
      * <code>public static final Class currentClass = ClassLookup.getCallingClass();
      public static Class getCallingClass() {
        return instance.getClassContext()[3];
      * This returns the Class that invoked the current method on the calling
      * Class.  If for example, Race.startRace() invokes Runner.sprint(), Runner.sprint()
      * can determine what class invoked it by calling this method.  In other
      * words, this method lets other methods determine which class invoked
      * it.
      * <p>Remember that this method returns a Class instance for which
      * ever type contains the method which invoked the caller so the
      * Object returned by this method might be the caller's type if the
      * caller was spawned by a method with in the same class.  Consider,
      * <ul>
      * <li>Race.start() invokes
      * <li>Runner.sprint() which invokes
      * <li>Runner.fatigue()
      * </ul>
      * If Runner.fatigue() invokes this method, an instance of Runner.class will
      * be returned, <b>not</b> Race.class because fatigue was invoked by sprint.
      * <p>This method is typically used by resources that wish to determine
      * if the current method is being invoked via the proper context, ie the
      * invoking class is a trused resource.
      public static Class getInvokingClass() {
        return instance.getClassContext()[4];
      public static void main(String args[]) {
        Class [] c = fetchClassContext();
        for (int i = 0; i < c.length; i++) {
          System.out.println(c.getName());

  • Trouble in dynamic method invocation

    hai forum,
    Your previous responses on this topic 'method invocation' has greatly helped me in writing a code to invoke method dynamically.As some experts pointed out,the parameters had to be type casted.
    Please help me out of my latest trouble.I invoke only a particular method 'methodName' of a particular calss instance 'instance'.But when i run the code Exceptions are thrown for all the methods of that class whereas i require exceptions connected with "methodName" only.
    I just could not figure out my mistake, so please help me out.
    Thank you.
        private class MethodInvoke implements ActionListener
            private String methodName=""; //name of the method
            Object instance;                          //instance of the class
            private int paraNum=0;             //num of parameters
            public void setParameters(String methodName,Object instance,int paraNum)
                this.methodName = methodName;
                this.instance=instance;
                this.paraNum=paraNum;
            public void actionPerformed(ActionEvent e)
                 try
                           //TAKE PARAMETERS FROM USER USING TEXTFIELDS INTO AN ARRAY LIST
                        Component[] cList = textfieldPanel.getComponents();
                        ArrayList parameterList = new ArrayList(paraNum);
                        Object[] parameters = new Object[parameterList.size()];
                         for (int x = 0; x < paraNum; x++)
                                if (cList[x] instanceof JTextField)
                                    String value = ((JTextField) cList[x]).getText(); 
                                    parameterList.add(value);
                        Method[] allMethods = instance.getClass().getMethods();
                        Method method = null;
                        for (int i = 0; i < allMethods.length; i++)
                                if (allMethods.getName().equals(methodName))
    method = allMethods[i];
    break;
    if (method == null)
    throw new RuntimeException("Method not found");
    Class[] types = method.getParameterTypes();
    for (int i = 0; i < paraNum; i++)
    String values = (String)parameterList.get(i);
    if (types[i].equals(Integer.class))
    parameters[i] = new Integer(values);
    else if (types[i].equals(Long.class))
    parameters[i] = new Long(values);
    else if (types[i].equals(String.class))
    parameters[i] = values;
    else if (types[i].equals(Float.class))
    parameters[i]=new Float(values);
    else if (types[i].equals(Boolean.class))
    parameters[i]=new Boolean(values);
    else
    System.out.println("Do not support the data type");
    Object result = method.invoke(instance, parameters);
    System.out.println("Invoked result: " + result);
    catch(Exception e3)
    System.out.println(e3);

    This is the Emp class which iam calling.Hope this will help you.
    import java.io.*;
    public class Emp
         private String designation;
         private int salary;
         private int id;
         private String name;
         public Emp()
         public void setId(int i)
              id=i;
         public int getId()
              return id;
         public void setDesignation(String d)
              designation=d;
         public void setName(String d)
              name=d;
         public void setSalary(int s)
              salary=s;
         public String getDesignation()
              return designation;
         public int getSalary()
              return salary;
         public String getName()
              return name;
         public void setAll()
              try
                   System.out.println("Enter name:");
                   BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
                   String n=br.readLine();
                   setName(n);
                   System.out.println("Enter ID:");
                   setId(Integer.parseInt(br.readLine()));
                   System.out.println("Enter Designation:");
                   n=br.readLine();
                   setDesignation(n);
                   //System.out.println("Enter Salary:");
                   //setSalary(Integer.parseInt(br.readLine()));
              catch(Exception e)
         public void getAll()
              System.out.println("Name: "+getName()+"\n ID: "+getId()+
                        "\n Designation: "+getDesignation());
         public void pay(int w)
              getAll();
              System.out.println("Name: "+name+"\nAmount to be paid : "+w);
         /*public static void main(String[] args)
              Emp e=new Emp();
              e.setAll();
              e.getAll();
    }

  • Automatically call specific method at other method invocation~ish?

    I have a class which basically acts as a wrapper around a List. It contains a List object and some methods that do something with that list.
    Now, in order to prevent exceptions, I've made a basic method that just checks if the List field is null and, if so, it will create a new ArrayList and chuck it in that field.
    Right now, I just have a call to that particular method in each other method that performs an operation on the list, like so:
    public class SomeClass<T> {
       private List<T> list;
       private void checkList() {
         if ( list == null) {
           list = new ArrayList<T>();
      public int method() {
        checkList();
        return list.doSomething();
      }Is there a way, prefferably a native Java way, to automatically have the checkList() method called before each and any method invocation? As in, whenever a method is called in the SomeClass, Java / the JVM automatically calls the checkList method?
    }

    Yop wrote:
    I have a class which basically acts as a wrapper around a List. It contains a List object and some methods that do something with that list.
    Now, in order to prevent exceptions, I've made a basic method that just checks if the List field is null and, if so, it will create a new ArrayList and chuck it in that field.
    Right now, I just have a call to that particular method in each other method that performs an operation on the list, like so:
    public class SomeClass<T> {
    private List<T> list;
    private void checkList() {
    if ( list == null) {
    list = new ArrayList<T>();
    public int method() {
    checkList();
    return list.doSomething();
    }Is there a way, prefferably a native Java way, to automatically have the checkList() method called before each and any method invocation? As in, whenever a method is called in the SomeClass, Java / the JVM automatically calls the checkList method?
    }Why not return the List<T> in the check() method? Like this:
    List<T> check() {
       if (list == null) list= new ArrayList<T>();
       return list;
    void otherMethod(T t) {
       check().add(t);
    }Instead of using variable 'list' directly, use the 'check()' method.
    kind regards,
    Jos

  • JVMTI & jni  - object tracing and method invocation

    I need to log all method invocations in the form:
    <caller object's tag, called object's tag>
    May be I 'll elaborate:
    Suppose some object of class B say b invokes a method on an object of
    class A, say instance a..
    In need the info: <object tag of b, object tag of a>
    (P.S. I donot want just the class name.. thats is available in
    stacktrace.)
    Assume tagging is done and each instance is tagged with its
    instantiation history, so two instances of same class may have have
    different tags.
    How do I do this.
    It would be great if I could get some help.

    Hi,
    are you providing in your Setup class (i am assuming is the RMI server) the two arguments constructor needed by Activatable OBject??
    it should look like this
    public Setup(ActivationID id, MarshalledObject data)
    that hopefully solves your problems
    regards
    marco

  • Generic method invocations with explicit type parameters

    If I interpret the JSR14 public draft spec (June 23, 2003) section 5.6 correctly the following method invocations with explicit type parameters should compile: package generics;
    public class G121 {
      void f() {
        this.<String>f2();
        <String>f2(); // compilation error
        <String>f3(); // compilation error
      <T> void f2() {
      static <T> void f3() {
    }but the class does not compile: jc -J-showversion generics\G121.javajava version "1.5.0-beta"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-beta-b32c)
    Java HotSpot(TM) Client VM (build 1.5.0-beta-b32c, mixed mode)
    generics\G121.java:6: illegal start of expression
        <String>f2(); // compilation error
                ^
    generics\G121.java:8: illegal start of expression
        <String>f3(); // compilation error
                ^
    2 errors
    >A bug or do I miss something?

    I get this error:
    LineCount.java:104: cannot find symbol
    symbol : method <java.io.File>sort(java.util.List<java.io.File>)
    location: class java.util.Collections
    Collections.<File>sort( list );
    ^
    1 errorYou don't need the explicit type argument there, but anyway...
    If you look at the docs for Collections.sort(List<T> list) you'll see it is declared as:
    static <T extends Comparable<? super T>> void Collections.sort(List<T> list) Unfortunately, although File implements Comparable, it doesn't actually implement Comparable<File> or even Comparable<Object>, so I guess it can't satisfy the bound.
    You can get it to compile by removing the explicit type argument and casting to the raw type List, but that's not very nice.
    This seems like an oversight to me - File already has both int compareTo(Object o) and int compareTo(File pathname) so I don't see why it can't implement Comparable<File>. This isn't the only such case in the API though, so maybe I'm missing something.
    Mark

  • How can I delegate method from modalView to the parentView

    Hi
    I've 2 ViewControllers: parent,and child(ModalView)
    the parent is named "testDelegationViewController" and the child is "modal"
    then I want to send some parameters from the modalView to parentView On dismiss of the child
    but it doesn't work. I think that something is missing on my code.
    testDelegationViewController.h:
    #import <UIKit/UIKit.h>
    #import "modal.h";
    @interface testDelegationViewController : UIViewController<myDelegate> {
    IBOutlet UIButton *btnParent ;
    IBOutlet UILabel *lblParent ;
    @property (nonatomic, retain) IBOutlet UIButton *btnParent;
    @property (nonatomic, retain) IBOutlet UILabel *lblParent;
    -(IBAction) parentButtonclicked;
    @end
    testDelegationViewController.m
    #import "testDelegationViewController.h"
    #import "modal.h";
    @implementation testDelegationViewController
    @synthesize btnParent;
    @synthesize lblParent;
    -(IBAction) parentButtonclicked
    self.lblParent.text=@"changed by btnParent";
    modal *m = \[\[modal alloc\] initWithNibName:@"modal" bundle:nil\];
    \[self presentModalViewController:m animated:YES\];
    - (void)modalButtonlicked:(NSString *)subcontroller
    NSLog(@"modal Button clicked");// >>>>>>>>>>method not called problem here<<<<<<<<<<<<<<<<<
    //NSString *myData = \[subcontroller getData\];
    // \[self dimissModalViewControllerAnimated:YES\];
    - (void)didReceiveMemoryWarning {
    \[super didReceiveMemoryWarning\];
    - (void)viewDidUnload {
    - (void)dealloc {
    \[super dealloc\];
    @end
    modal.h
    #import <UIKit/UIKit.h>
    //@protocol myDelegate;
    @protocol myDelegate
    -(void)modalButtonlicked:(NSString *)subController;
    //-(void)clickedButton:(modal *)subController;
    @end
    @interface modal : UIViewController {
    IBOutlet UIButton *btnmodal ;
    id<myDelegate> delegate;
    NSString *data;
    @property (nonatomic, retain) IBOutlet UIButton *btnmodal;
    @property (nonatomic, assign) id<myDelegate> delegate;
    -(IBAction) returnParent;
    -(NSString *)getData;
    @end
    modal.m
    #import "modal.h"
    @implementation modal
    @synthesize btnmodal;
    @synthesize delegate;
    -(IBAction) returnParent
    NSLog(@"child button clicked");
    \[delegate modalButtonlicked:@"change parent label from modal"\];
    // \[delegate modalButtonlicked:self\];//the dismiss must be in the parentView
    \[super dismissModalViewControllerAnimated:YES\];
    - (void)didReceiveMemoryWarning {
    \[super didReceiveMemoryWarning\];
    - (void)viewDidUnload {
    \[super viewDidUnload\];
    - (void)dealloc {
    \[super dealloc\];
    @end
    can you help me?
    thanks in advance
    null

    Hi Sculpteur, and wecome to the Dev Forum!
    It looks like you never connected the delegate property of the modal view controller to the parent view controller. The easiest way to fix that is to make the connection in code right after the modal controller is created:
    -(IBAction) parentButtonclicked
    self.lblParent.text=@"changed by btnParent";
    modal *m = [[modal alloc] initWithNibName:@"modal" bundle:nil];
    m.delegate = self; // <-- make this object the delegate of m
    [self presentModalViewController:m animated:YES];
    [m release]; // <-- fix memory leak
    - Ray

  • Multithread remote method invocation problem

    Hello all
    I have simple method that is entry point of CORBA remote invocation method
    Inside it I have some kind of Logic I need to perform the this logic is inside method and I like
    That each method that performs logic will be executed in its own thread ( from thread pool )
    this method also returns parameters by reference back to the server .
    here is example:
    public boolean RemothMethod(Object obj1,Object obj2){
         //this is where I allocate thread from thread pool to invoke the logic method
         ThreadPool.getTask(LogicMethod(Object obj1,Object obj2));
    }But the problem I have here that I can get several "RemothMethod" calls
    And the returned Parameters can be from the wrong thread call .
    My question is how can I force the right thread to return the right parameters to the "RemothMethod" call

    I have simple method that is entry point of CORBA
    remote invocation method
    Inside it I have some kind of Logic I need to perform
    the this logic is inside method and I like
    That each method that performs logic will be executed
    in its own thread ( from thread pool )Why? Each remote method is already being executed in its own thread.
    //this is where I allocate thread from thread pool
    l to invoke the logic method
    ThreadPool.getTask(LogicMethod(Object obj1,Object obj2));What are these APIs?
    But the problem I have here that I can get several
    "RemothMethod" calls
    And the returned Parameters can be from the wrong
    thread call . Something wrong with the ThreadPool API you seem to have written.
    My question is how can I force the right thread to
    return the right parameters to the "RemothMethod" callGet rid of it and execute whatever you need to execute directly in the remote method body. There is no advantage to what you're trying to do. You already have a thread per concurrent client executing the remote method; you're trying to stall those threads and create yet more threads from an evidently non-working ThreadPool. This seems quite pointless.

  • Can AS do reflection and method invocation?

    Hello,
    Can actionscript do reflection, instantiation, and subsequent
    invocation of a method, as in java ?
    this.incidentVO=incident;
    Class c = IncidentRules.class;
    Class[] parameterTypes = null;
    Method methodName;
    methodName =
    c.getMethod("validate"+commandName,parameterTypes);
    methodName.setAccessible(true);
    methodName.invoke(this,null);

    Unlike Java, AS is dynamic:
    var ClassReference:Class =
    getDefinitionByName(“flash.display.Sprite”) as Class;
    var instance:Object = new ClassReference();
    instance.graphics.beginFill(bgColor);
    instance.graphics.drawRect(0, 0, size, size);
    instance.graphics.endFill();
    addChild(DisplayObject(instance));
    Note the type of variable called 'instance'. It's Object.
    Still, it's calling method(s) of the underlying object without a
    compile time warning.
    Also, unlike Java AS has construct like object["property"]
    which would either return the reference to the property of null if
    object doesn't have given property.
    Also in AS you have class called Function that represents a
    function.
    Now, the real fun begins! Although AS doesn't have OO
    reflection like Java, but we can combine above constructs to do the
    job.
    here is you basic class with two functions:
    public class XV
    public function hello1(s:String) : void {
    trace('message from XV.hello1: ' + s);
    public function hello2(s:String) : void {
    trace('message from XV.hello2: ' + s);
    now you want to call hello1 and hello2.
    Now, if you run code like:
    1 var xv:XV = new XV();
    2 var m:String = "hello";
    3 var f:Function = xv[m + "1"];
    4 f.call(this, 'Hello World!');
    note line 3 above. You're looking for a property called
    hello1 and you *know* it's a function so you get a reference of it.
    On line 4 so simply call it with only argument of type String!
    Hope this helps!
    ATTA

  • Type mismatch on SOAP Web Service method invocation

    When I run the generated client for a web service, I get the following error, which I can get rid of by using a primitive type (e.g. String) as the parameter to doSomething instead of wstest.test2.APIClass3, i.e. the SOAP server seems happy handling wstest.test2.APIClass1 as a return type, but not a similar class as a parameter type:
    [SOAPException: faultCode=SOAP-ENV:Server; msg=type mismatch [java.lang.IllegalArgumentException]]
         wstest.test2.APIClass1 wstest.test2.EmbeddedStatelessTest2Stub.doSomething(wstest.test2.APIClass3)
              EmbeddedStatelessTest2Stub.java:89
         void wstest.test2.EmbeddedStatelessTest2Stub.main(java.lang.String[])
              EmbeddedStatelessTest2Stub.java:48
    I am using JDeveloper9i 9.0.3 Preview and the standalone OC4J 9.0.3 that came with it. I followed the Oracle9i JDeveloper 9.0.3 Web Services Quickstart Install (http://otn.oracle.com/tech/webservices/htdocs/quickstart/quickstart903.html) to get OC4J running standalone. I had to register the stateless EJB provider, and the WEB services wizard didn't manage to include APIClass2 (an instance of which is contained in APIClass1) in the .dd so I added it manually which works fine with APIClass1 as the method return type.
    Sorry for the length of this posting, but I wasn't sure which bits would be relevant.
    WSDL
    ====
    <?xml version = '1.0' encoding = 'windows-1252'?>
    <!--Generated by the Oracle9i JDeveloper Web Services WSDL Generator-->
    <!--Date Created: Wed Sep 11 15:54:08 BST 2002-->
    <definitions
    name="StatelessTest2"
    targetNamespace="http://wstest/test2/StatelessTest2.wsdl"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:tns="http://wstest/test2/StatelessTest2.wsdl"
    xmlns:ns1="http://wstest.test2/IStatelessTest2.xsd">
    <types>
    <schema
    targetNamespace="http://wstest.test2/IStatelessTest2.xsd"
    xmlns="http://www.w3.org/2001/XMLSchema"
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
    <complexType name="wstest_test2_APIClass3" jdev:packageName="wstest.test2" xmlns:jdev="http://xmlns.oracle.com/jdeveloper/webservices">
    <all>
    <element name="Name" type="string"/>
    <element name="Value" type="double"/>
    </all>
    </complexType>
    <complexType name="wstest_test2_APIClass1" jdev:packageName="wstest.test2" xmlns:jdev="http://xmlns.oracle.com/jdeveloper/webservices">
    <all>
    <element name="Name" type="string"/>
    <element name="Value" type="double"/>
    <element name="APIClass2" type="ns1:wstest_test2_APIClass2"/>
    </all>
    </complexType>
    <complexType name="wstest_test2_APIClass2" jdev:packageName="wstest.test2" xmlns:jdev="http://xmlns.oracle.com/jdeveloper/webservices">
    <all>
    <element name="IntegerValue" type="int"/>
    <element name="DoubleValue" type="double"/>
    <element name="Name" type="string"/>
    </all>
    </complexType>
    </schema>
    </types>
    <message name="doSomething0Request">
    <part name="p0" type="ns1:wstest_test2_APIClass3"/>
    </message>
    <message name="doSomething0Response">
    <part name="return" type="ns1:wstest_test2_APIClass1"/>
    </message>
    <portType name="StatelessTest2PortType">
    <operation name="doSomething">
    <input name="doSomething0Request" message="tns:doSomething0Request"/>
    <output name="doSomething0Response" message="tns:doSomething0Response"/>
    </operation>
    </portType>
    <binding name="StatelessTest2Binding" type="tns:StatelessTest2PortType">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="doSomething">
    <soap:operation soapAction="" style="rpc"/>
    <input name="doSomething0Request">
    <soap:body use="encoded" namespace="wstest.test2.StatelessTest2" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    </input>
    <output name="doSomething0Response">
    <soap:body use="encoded" namespace="wstest.test2.StatelessTest2" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    </output>
    </operation>
    </binding>
    <service name="StatelessTest2">
    <port name="StatelessTest2Port" binding="tns:StatelessTest2Binding">
    <soap:address location="http://localhost:8888/soap/servlet/soaprouter"/>
    </port>
    </service>
    </definitions>
    Deployment Decriptor
    ====================
    <?xml version = '1.0' encoding = 'windows-1252'?>
    <!--Generated by the Oracle9i JDeveloper Web Services Deployment Descriptor Generator-->
    <!--This Deployment Descriptor file is for use with the Oracle9iAS Release 2 / Apache 2.2 SOAP Server SOAP Server-->
    <!--Date Created: Wed Sep 11 15:54:09 BST 2002-->
    <isd:service
    id="wstest.test2.StatelessTest2"
    type="rpc"
    xmlns:isd="http://xmlns.oracle.com/soap/2001/04/deploy/service">
    <isd:provider
    id="stateless-ejb-provider"
    methods="doSomething"
    scope="Request">
    <isd:option key="JNDILocation" value="StatelessTest2"/>
    <isd:option key="DeploymentName" value="StatelessTest2"/>
    </isd:provider>
    <isd:faultListener
    class="org.apache.soap.server.DOMFaultListener"/>
    <isd:mappings>
    <isd:map
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:x="http://wstest.test2/IStatelessTest2.xsd"
    qname="x:wstest_test2_APIClass1"
    javaType="wstest.test2.APIClass1"
    java2XMLClassName="org.apache.soap.encoding.soapenc.BeanSerializer"
    xml2JavaClassName="org.apache.soap.encoding.soapenc.BeanSerializer"/>
    <isd:map
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:x="http://wstest.test2/IStatelessTest2.xsd"
    qname="x:wstest_test2_APIClass2"
    javaType="wstest.test2.APIClass2"
    java2XMLClassName="org.apache.soap.encoding.soapenc.BeanSerializer"
    xml2JavaClassName="org.apache.soap.encoding.soapenc.BeanSerializer"/>
    <isd:map
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:x="http://wstest.test2/IStatelessTest2.xsd"
    qname="x:wstest_test2_APIClass3"
    javaType="wstest.test2.APIClass3"
    java2XMLClassName="org.apache.soap.encoding.soapenc.BeanSerializer"
    xml2JavaClassName="org.apache.soap.encoding.soapenc.BeanSerializer"/>
    </isd:mappings>
    </isd:service>
    StatelesTest2.java
    ==================
    package wstest.test2;
    import javax.ejb.EJBObject;
    import java.rmi.RemoteException;
    public interface StatelessTest2 extends EJBObject {
    * @webmethod
    APIClass1 doSomething(APIClass3 p0) throws RemoteException;
    StatelessTest2Bean.java
    =======================
    package wstest.test2.impl;
    import javax.ejb.SessionBean;
    import javax.ejb.SessionContext;
    import wstest.test2.APIClass1;
    import wstest.test2.APIClass2;
    import wstest.test2.APIClass3;
    public class StatelessTest2Bean implements SessionBean {
    public void ejbCreate() {
    public void ejbActivate() {
    public void ejbPassivate() {
    public void ejbRemove() {
    public void setSessionContext(SessionContext ctx) {
    public APIClass1 doSomething(APIClass3 p0) {
    APIClass1 ac1 = new APIClass1();
    ac1.setName(p0.getName() + "1");
    ac1.setValue(p0.getValue());
    APIClass2 ac2 = ac1.getAPIClass2();
    ac2.setName(p0.getName() + "2");
    ac2.setIntegerValue(new Integer(ac1.getValue().intValue()));
    ac2.setDoubleValue(new Double(ac1.getValue().doubleValue() * 2.0));
    return ac1;
    EmbeddedStatelessTest2Stub.java
    ===============================
    I change the http port from 8988 to 8888 to get this working. Also, the generated referenced a new class APIClass31, also generated, but as it didn't make any difference to the problem I replaced it with APIClass3, which has essentially the same characteristics.
    package wstest.test2;
    import oracle.soap.transport.http.OracleSOAPHTTPConnection;
    import org.apache.soap.encoding.soapenc.BeanSerializer;
    import org.apache.soap.encoding.SOAPMappingRegistry;
    import org.apache.soap.util.xml.QName;
    import java.net.URL;
    import org.apache.soap.Constants;
    import org.apache.soap.Fault;
    import org.apache.soap.SOAPException;
    import org.apache.soap.rpc.Call;
    import org.apache.soap.rpc.Parameter;
    import org.apache.soap.rpc.Response;
    import wstest.test2.*;
    import java.util.Vector;
    import java.util.Properties;
    import wstest.test2.APIClass1;
    import wstest.test2.APIClass2;
    import wstest.test2.APIClass3;
    * Generated by the Oracle9i JDeveloper Web Services Stub/Skeleton Generator.
    * Date Created: Wed Sep 11 15:41:19 BST 2002
    * WSDL URL: file:/C:/Projects/WSTest/Test2/src/wstest/test2/StatelessTest2.wsdl
    public class EmbeddedStatelessTest2Stub
    public EmbeddedStatelessTest2Stub()
    m_httpConnection = new OracleSOAPHTTPConnection();
    m_smr = new SOAPMappingRegistry();
    BeanSerializer beanSer = new BeanSerializer();
    m_smr.mapTypes(Constants.NS_URI_SOAP_ENC, new QName("http://wstest.test2/IStatelessTest2.xsd", "wstest_test2_APIClass1"), wstest.test2.APIClass1.class, beanSer, beanSer);
    m_smr.mapTypes(Constants.NS_URI_SOAP_ENC, new QName("http://wstest.test2/IStatelessTest2.xsd", "wstest_test2_APIClass2"), wstest.test2.APIClass2.class, beanSer, beanSer);
    m_smr.mapTypes(Constants.NS_URI_SOAP_ENC, new QName("http://wstest.test2/IStatelessTest2.xsd", "wstest_test2_APIClass3"), wstest.test2.APIClass3.class, beanSer, beanSer);
    public static void main(String[] args)
    try
    EmbeddedStatelessTest2Stub stub = new EmbeddedStatelessTest2Stub();
    // Add your own code here.
    APIClass3 ac3 = new APIClass3();
    ac3.setName("fred");
    ac3.setValue(new Double(17.36));
    printAPIClass3("Input", ac3);
    APIClass1 retAc1 = stub.doSomething(ac3);
    printAPIClass1("Return", retAc1);
    catch(Exception ex)
    ex.printStackTrace();
    public String endpoint = "http://172.25.1.176:8888/soap/servlet/soaprouter";
    private OracleSOAPHTTPConnection m_httpConnection = null;
    private SOAPMappingRegistry m_smr = null;
    public APIClass1 doSomething(APIClass3 p0) throws Exception
    APIClass1 returnVal = null;
    URL endpointURL = new URL(endpoint);
    Call call = new Call();
    call.setSOAPTransport(m_httpConnection);
    call.setTargetObjectURI("wstest.test2.StatelessTest2");
    call.setMethodName("doSomething");
    call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
    Vector params = new Vector();
    params.addElement(new Parameter("p0", wstest.test2.APIClass3.class, p0, null));
    call.setParams(params);
    call.setSOAPMappingRegistry(m_smr);
    Response response = call.invoke(endpointURL, "");
    if (!response.generatedFault())
    Parameter result = response.getReturnValue();
    returnVal = (APIClass1)result.getValue();
    else
    Fault fault = response.getFault();
    throw new SOAPException(fault.getFaultCode(), fault.getFaultString());
    return returnVal;
    private static void printAPIClass3(String prefix, APIClass3 ac3)
    System.out.println(prefix + ": [" + ac3.getName() + ", " + ac3.getValue() + "]");
    private static void printAPIClass1(String prefix, APIClass1 ac1)
    APIClass2 ac2 = ac1.getAPIClass2();
    System.out.println(prefix + ": [" + ac1.getName() + ", " + ac1.getValue() + " ["
    + ac2.getName() + ", " + ac2.getIntegerValue() + ", " + ac2.getDoubleValue()
    + "]]");
    public void setMaintainSession(boolean maintainSession)
    m_httpConnection.setMaintainSession(maintainSession);
    public boolean getMaintainSession()
    return m_httpConnection.getMaintainSession();
    public void setTransportProperties(Properties props)
    m_httpConnection.setProperties(props);
    public Properties getTransportProperties()
    return m_httpConnection.getProperties();
    APIClass1.java
    ==============
    package wstest.test2;
    import java.io.Serializable;
    public class APIClass1 implements Serializable {
    private String name;
    private Double value;
    private APIClass2 apiClass2;
    public APIClass1() {
    name = new String("");
    value = new Double(0.0);
    apiClass2 = new APIClass2();
    public String getName() {
    return name;
    public void setName(String newName) {
    name = new String(newName);
    public Double getValue() {
    return value;
    public void setValue(Double newValue) {
    value = new Double(newValue.doubleValue());
    public APIClass2 getAPIClass2() {
    return apiClass2;
    public void setAPIClass2(APIClass2 newAPIClass2) {
    apiClass2 = new APIClass2();
    apiClass2.setName(newAPIClass2.getName());
    apiClass2.setDoubleValue(newAPIClass2.getDoubleValue());
    apiClass2.setIntegerValue(newAPIClass2.getIntegerValue());
    APIClass2.java
    ==============
    package wstest.test2;
    import java.io.Serializable;
    public class APIClass2 implements Serializable {
    private String name;
    private Integer iVal;
    private Double dVal;
    public APIClass2() {
    iVal = new Integer(0);
    dVal = new Double(0.0);
    name = new String("");
    public Integer getIntegerValue() {
    return iVal;
    public void setIntegerValue(Integer newIVal) {
    iVal = new Integer(newIVal.intValue());
    public Double getDoubleValue() {
    return dVal;
    public void setDoubleValue(Double newDoubleValue) {
    dVal = new Double(newDoubleValue.doubleValue());
    public String getName() {
    return name;
    public void setName(String newName) {
    name = new String(newName);
    APIClass3.java
    ==============
    package wstest.test2;
    import java.io.Serializable;
    public class APIClass3 implements Serializable {
    private String name;
    private Double value;
    public APIClass3() {
    public String getName() {
    return name;
    public void setName(String newName) {
    name = new String(newName);
    public Double getValue() {
    return value;
    public void setValue(Double newValue) {
    value = new Double(newValue.doubleValue());
    APIClass31.java
    ===============
    package wstest.test2;
    * Generated by the Oracle9i JDeveloper Web Services Stub/Skeleton Generator.
    * Date Created: Wed Sep 11 10:44:56 BST 2002
    * <pre>
    * &lt;complexType name="wstest_test2_APIClass3" jdev:packageName="wstest.test2" xmlns:jdev="http://xmlns.oracle.com/jdeveloper/webservices">
    * &lt;all>
    * &lt;element name="Name" type="string"/>
    * &lt;element name="Value" type="double"/>
    * &lt;/all>
    * &lt;/complexType>
    * </pre>
    public class APIClass31 {
    private String m_Name;
    private Double m_Value;
    public APIClass31() {
    public APIClass31(String Name, Double Value) {
    m_Name = Name;
    m_Value = Value;
    public void setName(String Name) {
    m_Name = Name;
    public String getName() {
    return m_Name;
    public void setValue(Double Value) {
    m_Value = Value;
    public Double getValue() {
    return m_Value;

    I believe this is a bug in JDev/OC4J 9.0.3 that is being further investigated right now. I have duplicated your problem in a simpler test case and folks are looking into it.
    Mike.

  • Why do we obtain a java.rmi.MarshalException during a stateless session bean method invocation from a client java program?

    Hello,
    we're using iAS SP3.
    We deployed a stateless session bean that has a business methods with a Vector as argument (put (vector, String)).
    If we call it from a servlet, it works fine. But when we try to call it from a thread, started in a standalone java client program, we obtain a java.rmi.MarshalException.
    We tried to use Vector and HashSet objects as arguments, but we always obtain this kind of exception. It seems strange because a similar
    method that returns a Collection of objects (getAll) works fine. This is the our bean Remote Interface:
    public interface Receive extends EJBObject {
    public void putMessage(Message message, java.lang.String la) throws RemoteException; // it works fine!!!
    public void putMessages(java.util.Vector messages, java.lang.String la) throws RemoteException; // it doesn't work!!!
    Collection getAll (java.lang.String la) throws RemoteException, EJBException; // it works fine!!!!
    This is the java client stack trace:
    java.rmi.MarshalException: CORBA MARSHAL 0 No; nested exception is:
    org.omg.CORBA.MARSHAL: minor code: 0 completed: No
    org.omg.CORBA.MARSHAL: minor code: 0 completed: No
    at java.lang.Class.newInstance0(Native Method)
    at java.lang.Class.newInstance(Class.java:241)
    at com.sun.corba.ee.internal.iiop.ReplyMessage.getSystemException(ReplyMessage.java:93)
    at com.sun.corba.ee.internal.iiop.ClientResponseImpl.getSystemException(ClientResponseImpl.java:82)
    at com.sun.corba.ee.internal.corba.ClientDelegate.invoke(ClientDelegate.java:199)
    at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:248)
    at ejb._Receive_Stub.putMessages(_Receive_Stub.java:731)
    at commlayer.Receiver.run(Receiver.java:67)
    Does anyone know how to solve this problem?
    Thank you in advance,
    Maurizio

    This is big bug!
    This seems to occur when you try to return complex objects (e.g. a vector of classes or even the Date class).
    As a workaround you can add this Ejb or module to the iPlanet Classpath (NT via kregedit, Sun via iasenv skript.).
    This helps but i really don't know why.
    It should be fixed in 6.5, maybe. We'll see.
    Regards

  • Logging Denied EJB Method Invocation

    In Weblogic Application Server, v 6.1, I'm experimenting around with
    the AuditProvider. Several of my EJB's have method-permission
    declarations that limit who is able to execute those methods. When
    WLS correctly denies an attempt to invoke a method for which its
    method-permission does not allow the user permission, the
    AuditProvider method (checkPermission) does not seem to get called.
    Should checkPermission() be called if a permission check against an
    EJB method-permission fails? If not, is there somewhere else I can
    capture and audit disallowed attempts to execute these methods?
    Thanks.
    -- Edgar

    Thanks, Tom.
    We are on SP3. I'll double-check my findings, put together a test
    case I can send with it, and open a support case.
    Thanks again.
    -- Edgar
    "Tom Hegadorn" <[email protected]> wrote in message news:<[email protected]>...
    Hi,
    I'm not sure but it sounds like it may be a bug. Please make
    sure you are on the latest service pack (SP3 at time of this
    writing). If so, and you still see the behavior I would recommend
    opening a case with BEA Support. Please provide a detailed
    test case so that a support engineer can replicate the behavior.
    Thanks.
    Regards,
    Tom Hegadorn
    Developer Relations Engineer
    BEA Support
    [email protected] (Edgar) wrote:
    In Weblogic Application Server, v 6.1, I'm experimenting around with
    the AuditProvider. Several of my EJB's have method-permission
    declarations that limit who is able to execute those methods. When
    WLS correctly denies an attempt to invoke a method for which its
    method-permission does not allow the user permission, the
    AuditProvider method (checkPermission) does not seem to get called.
    Should checkPermission() be called if a permission check against an
    EJB method-permission fails? If not, is there somewhere else I can
    capture and audit disallowed attempts to execute these methods?
    Thanks.
    -- Edgar

Maybe you are looking for

  • Create debit memo from Contract w/ DP91

    Hi everyone, In the process I use, I create a sales contract with an item containing a DIP profile. I use the pricing type PR00 with the price I want. I don't have any price condition for PR00 for the material I use since the price will change every

  • Jagged edges on logo

    i am using one of the templates from dvd sp 4 when i try to replace some of the pre built text with a logo 1. i could not do it - i deleted the text then tried to drop in the logo, it would not let me 2. i made a button which let me drop in the logo

  • GVM and gthumb

    After upgrading to Gnome 2.16, I've noticed a few things no longer work.  gnome-volume-manager doesn't seem to get started with the Gnome session and doesn't work when I run it manually from a terminal.  Also, gthumb is no longer able to import photo

  • Help with Updating Page

    Hi, I have inherited the updating of our website. I am trying to edcuate myself about Dreamweaver, CSS and HTML with as much reading of books, online material like this forum and tutorials. I am a novice with limited training in DW, but am willing to

  • About crystal reports

    I need to know about Web Intelligence;Crystal Xcelsius;Crystal Reports Could u please give me the explanation about these contents...