ClassCastException with webservices with arrays

Hi,
I am trying to call a webservice from Fuego, where one of the webservice parameter is an array of string, which causes problems (when I remove this paramter everything works fine)
When I invoke the call, I get the following ClassCastException.
Could this be a bug of Fuego?
Thank you
Lui
Details:
The method 'CIL_mailAutorizado' from class 'BEA_Systems__Inc__.SolicitaCajeros.Default_1_0.Instance' could not be successfully executed.
Caused by: java.lang.ClassCastException
fuego.lang.ComponentExecutionException: The method 'CIL_mailAutorizado' from class 'BEA_Systems__Inc__.SolicitaCajeros.Default_1_0.Instance' could not be successfully executed.
     at fuego.component.ExecutionThreadContext.invokeMethod(ExecutionThreadContext.java:496)
     at fuego.component.ExecutionThreadContext.invokeMethod(ExecutionThreadContext.java:249)
     at fuego.fengine.FEEngineExecutionContext.invokeMethodAsCil(FEEngineExecutionContext.java:216)
     at fuego.server.execution.EngineExecutionContext.runCil(EngineExecutionContext.java:1068)
     at fuego.server.execution.TaskExecution.invoke(TaskExecution.java:391)
     at fuego.server.execution.TaskExecution.executeCIL(TaskExecution.java:475)
     at fuego.server.execution.TaskExecution.executeTask(TaskExecution.java:649)
     at fuego.server.execution.TaskExecution.executeTask(TaskExecution.java:610)
     at fuego.server.execution.TaskExecution.executeTask(TaskExecution.java:152)
     at fuego.server.execution.activities.XAutomatic.execute(XAutomatic.java:54)
     at fuego.metadata.Activity.execute(Activity.java:1019)
     at fuego.server.execution.ToDoItemAutomatic.execute(ToDoItemAutomatic.java:35)
     at fuego.server.execution.DefaultEngineExecution$AtomicExecutionTA.runTransaction(DefaultEngineExecution.java:290)
     at fuego.transaction.TransactionAction.startBaseTransaction(TransactionAction.java:465)
     at fuego.transaction.TransactionAction.startTransaction(TransactionAction.java:543)
     at fuego.transaction.TransactionAction.start(TransactionAction.java:216)
     at fuego.server.execution.DefaultEngineExecution.executeImmediate(DefaultEngineExecution.java:116)
     at fuego.server.execution.DefaultEngineExecution.executeAutomaticWork(DefaultEngineExecution.java:56)
     at fuego.server.execution.EngineExecution.executeAutomaticWork(EngineExecution.java:42)
     at fuego.server.execution.ToDoItem.executeAutomaticWork(ToDoItem.java:265)
     at fuego.server.execution.ToDoItem.run(ToDoItem.java:536)
     at fuego.component.ExecutionThread.processMessage(ExecutionThread.java:752)
     at fuego.component.ExecutionThread.processBatch(ExecutionThread.java:732)
     at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:138)
     at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:130)
     at fuego.fengine.ToDoQueueThread$PrincipalWrapper.processBatch(ToDoQueueThread.java:429)
     at fuego.component.ExecutionThread.work(ExecutionThread.java:816)
     at fuego.component.ExecutionThread.run(ExecutionThread.java:395)
Caused by: java.lang.ClassCastException
     at fuego.soaptype.SoapCall.fixInputArguments(SoapCall.java:303)
     at fuego.soaptype.SoapCall.invoke(SoapCall.java:242)
     at fuego.soaptype.SoapObject.invoke(SoapObject.java:283)
     at fuego.lang.Invokeable.invokeImpl(Invokeable.java:220)
     at fuego.lang.Invokeable.invoke(Invokeable.java:161)
     at BEA_Systems__Inc__.SolicitaCajeros.Default_1_0.Instance.CIL_mailAutorizado(Instance.java:2112)
     at BEA_Systems__Inc__.SolicitaCajeros.Default_1_0.Instance.CIL_mailAutorizado(Instance.java:2156)
     at sun.reflect.GeneratedMethodAccessor75.invoke(Unknown Source)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
     at java.lang.reflect.Method.invoke(Unknown Source)
     at fuego.component.ExecutionThreadContext.invokeMethod(ExecutionThreadContext.java:489)
     ... 27 more

Meanwhile, most suggestions offered for my original
post add a type parameter for the inner class Entry.
If I created an Entry object instead of an array of
Entry objects, no type parameter would be necessary.
Why should this not work for arrays?
Not entirely sure I follow you, but this version, which is close to your original proposition will not compile:
public class EntryArray<T> {
    private Entry[] data;
    public EntryArray() {
        data = new Entry[20];
    public void setValueAt(T value, int idx) {
        data[idx] = new Entry(value);
    public T getValueAt(int idx) {
        return data[idx].field;
    private class Entry {
        private final T field;
        private Entry(T newField) {
            field = newField;
  public static void main(String[] args) {
        EntryArray<String> thing = new EntryArray<String>();
        thing.setValueAt("foo",0);
        System.out.println(thing.getValueAt(0));   
EntryArray.java [17:1] generic array creation
        data = new Entry[20];Obviously here we've made Entry a NON-static inner class again, thus every Entry has an enclosing EntryArray<T> and thus the compiler can't generate array creation code for it, not knowing what T is.
If you're asking why this is, I believe the answer has to do with the way memory is allocated when an array is initialized. It needs to know what 'T' actually is to do it, and it can't know this because T has been erased. Perhaps someone else can provide a precise explanation?

Similar Messages

  • ClassCastException with arrays

    I have a class with a type parameter and an inner class. The inner class uses the type parameter, but is not itself parametized. The following compiles but gives a ClassCastException when MyClass's constructor executes. How do I avoid this error? Thanks.
    public class MyClass<T> {
      private Entry[] data;
      public MyClass() {
        data = (Entry[]) new Object[20];
      private class Entry {
        private T field;
        private Entry(T newField) {
          field = newField;
      public static void main(String[] args) {
        MyClass<String> thing = new MyClass<String>();
    }      

    Meanwhile, most suggestions offered for my original
    post add a type parameter for the inner class Entry.
    If I created an Entry object instead of an array of
    Entry objects, no type parameter would be necessary.
    Why should this not work for arrays?
    Not entirely sure I follow you, but this version, which is close to your original proposition will not compile:
    public class EntryArray<T> {
        private Entry[] data;
        public EntryArray() {
            data = new Entry[20];
        public void setValueAt(T value, int idx) {
            data[idx] = new Entry(value);
        public T getValueAt(int idx) {
            return data[idx].field;
        private class Entry {
            private final T field;
            private Entry(T newField) {
                field = newField;
      public static void main(String[] args) {
            EntryArray<String> thing = new EntryArray<String>();
            thing.setValueAt("foo",0);
            System.out.println(thing.getValueAt(0));   
    EntryArray.java [17:1] generic array creation
            data = new Entry[20];Obviously here we've made Entry a NON-static inner class again, thus every Entry has an enclosing EntryArray<T> and thus the compiler can't generate array creation code for it, not knowing what T is.
    If you're asking why this is, I believe the answer has to do with the way memory is allocated when an array is initialized. It needs to know what 'T' actually is to do it, and it can't know this because T has been erased. Perhaps someone else can provide a precise explanation?

  • ADF Mobile: WebService data control method call with array

    JDev 11.1.2.3
    ADF Mobile deployed to Android emulator
    Hello All,
    I am trying to invoke a method in my Web Service data control and get the following exception
    Caused by: ERROR [oracle.adfmf.framework.exception.AdfInvocationRuntimeException] - Cannot serialize: [I@1dbae822
            at oracle.adfmf.dc.ws.soap.SoapTransportLayer.invokeSoapRequest(Lorg/ksoap2/SoapEnvelope;)Ljava/lang/Object;(Unknown Source)
            at oracle.adfmf.dc.ws.soap.SoapWebServiceOperation.invoke(Ljava/lang/String;Loracle/adfmf/dc/ws/soap/SoapGenericType;)Ljava/lang/Object;(Unknown Source)
            at oracle.adfmf.dc.ws.soap.SoapWebServiceOperation.invoke(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/Object;(Unknown Source)
            at oracle.adfmf.dc.JavaBeanOperation.execute(Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;(Unknown Source)
            at oracle.adfmf.dc.ws.WebServiceDataControlAdapter.invokeOperation(Ljava/util/Map;Loracle/adfmf/bindings/OperationBinding;)Z(Unknown Source)
            at oracle.adfmf.bindings.dbf.AmxMethodActionBinding.execute()Ljava/lang/Object;(Unknown Source) This method is an AppModule method exposed as a service interface and the parameter for this method is a List<oracle.jbo.domain.Number>. The schema definition for the input is as follows:
    <element name="acceptTask">
       <complexType>
         <sequence>
                <element maxOccurs="unbounded" minOccurs="0" name="taskID" type="decimal"/>
         </sequence>
       </complexType>
    </element>For the input to my binding, I have tried int[], Integer[] and List<Integer>. All of these result in similar errors.
    I have also tried invoking this through a regular ADF application and that works fine with an int[]. It looks like something specific to the ADF Mobile SOAP layer.
    Is this a bug or a restriction in the framework? Any workarounds that has worked for anyone?

    No luck. A WS DC method call with a simple parameter (java.lang.String or java.lang.Integer) works fine but I can't get it to work when there is an array input.
    I have tried WS methods with int arrays and simple string arrays without any luck. All of them result in a cannot serialize error.
    I can't figure out what I am doing wrong. Are there any working WS Datacontrol samples with array inputs?

  • Property List error: Unexpected character b at line 1 / JSON error: JSON text did not start with array or object and option to allow fragments not set.

    Hi,
    I have a MBP 13' Late 2011 and Yosemite 10.10.2 (14C1514).
    Until yesterday, I was using Garmin ConnectIQ SDK and all was working fine.
    Yesterday, I've updated my system with latest security updates and Xcode updates too (Version 6.2 (6C131e)).
    Since, I can't launch the ConnectIQ simulator app, I have this message in console :
    8/04/2015 15:19:04,103 mds[38]: There was an error parsing the Info.plist for the bundle at URL Info.plist -- file:///Volumes/Leto/connectiq-sdk-mac-1.1.0_2/ios/ConnectIQ.bundle/
    The data couldn’t be read because it isn’t in the correct format.
    <CFBasicHash 0x7fa64f44e9a0 [0x7fff7dfc7cf0]>{type = immutable dict, count = 2,
    entries =>
      0 : <CFString 0x7fff7df92580 [0x7fff7dfc7cf0]>{contents = "NSDebugDescription"} = <CFString 0x7fa64f44f0a0 [0x7fff7dfc7cf0]>{contents = "Unexpected character b at line 1"}
      1 : <CFString 0x7fff7df9f5e0 [0x7fff7dfc7cf0]>{contents = "kCFPropertyListOldStyleParsingError"} = Error Domain=NSCocoaErrorDomain Code=3840 "The data couldn’t be read because it isn’t in the correct format." (Conversion of string failed.) UserInfo=0x7fa64f44eda0 {NSDebugDescription=Conversion of string failed.}
    I have looked at this file and it looks like a binary plist
    bplist00ß^P^V^A^B^C^D^E^F^G^H
    ^K^L^M^N^O^P^Q^R^S^T^U^V^W^X^Y^Z^[^\^]^^^_ !"$%&'()'+,^[\CFBundleNameWDTXcodeYDTSDKName_^P^XNSHumanReadableCopyrightZDTSDKBuild_^P^YCFBundleDevelopmentRegion_^P^OCFBundleVersi    on_^P^SBuildMachineOSBuild^DTPlatformName_^P^SCFBundlePackageType_^P^ZCFBundleShortVersionString_^P^ZCFBundleSupportedPlatforms_^P^]CFBundleInfoDictionaryVersion_^P^RCFBundleE    xecutableZDTCompiler_^P^PMinimumOSVersion_^P^RCFBundleIdentifier^UIDeviceFamily_^P^QDTPlatformVersion\DTXcodeBuild_^P^QCFBundleSignature_^P^ODTPlatformBuildYConnectIQT0611[iph    oneos8.1o^P-^@C^@o^@p^@y^@r^@i^@g^@h^@t^@ ^@©^@ ^@2^@0^@1^@5^@ ^@G^@a^@r^@m^@i^@n^@.^@ ^@A^@l^@l^@ ^@r^@i^@g^@h^@t^@s^@ ^@r^@e^@s^@e^@r^@v^@e^@d^@.V12B411RenQ1V14C109Xiphoneos    TBNDLS1.0¡#XiPhoneOSS6.0YConnectIQ_^P"com.apple.compilers.llvm.clang.1_0S8.1_^P^Tcom.garmin.ConnectIQ¡*^P^AW6A2008aT????^@^H^@7^@D^@L^@V^@q^@|^@<98>^@ª^@À^@Ï^@å^A^B^A^_^A?^AT^    A_^Ar^A<87>^A<96>^Aª^A·^AË^AÝ^Aç^Aì^Aø^BU^B\^B_^Ba^Bh^Bq^Bv^Bz^B|^B<85>^B<89>^B<93>^B¸^B¼^BÓ^BÕ^B×^Bß^@^@^@^@^@^@^B^A^@^@^@^@^@^@^@-^@^@^@^@^@^@^@^@^@^@^@^@^@^@^Bä
    I guess it is a normal format but my system seems to be unable to read binary plist ?
    I tried some stuff with plutil
    plutil -lint Info.plist
    Info.plist: Unexpected character b at line 1
    Same for convert
    plutil -convert xml1 Info.plist
    Info.plist: Property List error: Unexpected character b at line 1 / JSON error: JSON text did not start with array or object and option to allow fragments not set.
    I also try to download a fresh version of the connectIQ SDK and no changes.
    Any idea ?
    Thanks

    Step by step, how did you arrive at seeing this agreement?

  • What are right parameter types of ODCIIndexInsert in case of creating indextype WITH ARRAY DML option (documentation mismatch)

    Hello.
    During developing Domain Index for Oracle 11.2.0.1.0 (problem also appears in 12с) i was faced with misunderstanding of parameter types of function
    ODCIIndexInsert in case of creating indextype  WITH ARRAY DML option
    According to Oracle documentation
    http://docs.oracle.com/cd/E11882_01/appdev.112/e10765/ext_idx_ref.htm#i76892
    In case of  WITH ARRAY DML option Oracle will invoke ODCIIndexInsert with following signature
    FUNCTION ODCIIndexInsert(
      ia ODCIIndexInfo,
      ridlist ODCIRidList,
      newvallist varray_of_column_type,
      env ODCIEnv)
    RETURN NUMBER
    In my case indexed column has datatype NUMBER so i defined varray_of_column_type as SYS.ODCINumberList
    STATIC FUNCTION ODCIIndexInsert(ia in sys.ODCIIndexInfo, ridlist in sys.ODCIRidList,  newvallist in sys.ODCINumberList, env in SYS.ODCIEnv) RETURN NUMBER
    Indextype was created as
    CREATE INDEXTYPE test_index_type
    FOR
    test_eq(number, number)
    USING index_methods
    WITH ARRAY DML(number, sys.ODCINumberList)
    WITH LOCAL RANGE PARTITION
    WITH SYSTEM MANAGED STORAGE TABLES;
    or
    CREATE INDEXTYPE test_index_type
    FOR
    test_eq(number, number)
    USING index_methods
    WITH ARRAY DML
    WITH LOCAL RANGE PARTITION
    WITH SYSTEM MANAGED STORAGE TABLES;
    (problem occurs in all cases)
    CREATE TABLE test_table (id NUMBER (19,0));
    CREATE INDEX test_index ON test_table(id) INDEXTYPE IS test_index_type;
    When attempting to insert data in the table
    insert into test_table values (1);
    oracle raise exception
    Error starting at line 53 in command:
    insert into test_table values (1)
    Error at Command Line:53 Column:1
    Error report:
    SQL Error: ORA-29925: cannot execute SCOTT.INDEX_METHODS.ODCIINDEXINSERT
    ORA-06553: PLS-306: wrong number or types of arguments in call to 'ODCIINDEXINSERT'
    ORA-06553: PLS-306: wrong number or types of arguments in call to 'ODCIINDEXINSERT'
    29925. 00000 -  "cannot execute %s"
    *Cause:    The specified function does not exist or does not have an
               appropriate signature.
    *Action:   Implement the function with the appropriate signature.
    So my question is.
    Is it normal behavior  of oracle (according to documentation)?
    What is correct signature of ODCIIndexInsert function in case of INDEXTYPE creation with 'WITH ARRAY DML' option and fact that indexed column has NUMBER datatype?
    By the way if i define indextype without 'WITH ARRAY DML' option signature is clear, and working. But this approach doesn't satisfies our performance needs.
    Also if i define index type with option 'WITH ARRAY DML WITHOUT COLUMN DATA' and use signature
    static function ODCIIndexInsert(ia sys.odciindexinfo,   ridlist sys.odciridlist, env sys.ODCIEnv) return number
    Everything works too. But this approach doesn't satisfies our business needs.
    Is it a way to define ODCIIndexInsert  parameter types (in case of indexing number column)  so that batch inserting works according to documentation ?
    FUNCTION ODCIIndexInsert(
          ia ODCIIndexInfo,
          ridlist ODCIRidList,
          newvallist varray_of_column_type,
          env ODCIEnv)
    I am attaching full sql script to recreate environment and reproduce the problem.
    Type definition:
    CREATE OR REPLACE TYPE index_methods AS OBJECT
      step number,
      STATIC FUNCTION ODCIGetInterfaces(ifclist OUT SYS.ODCIObjectList) RETURN NUMBER,
      STATIC FUNCTION ODCIIndexCreate (ia SYS.ODCIIndexInfo, parms VARCHAR2, env SYS.ODCIEnv) RETURN NUMBER,
      STATIC FUNCTION ODCIIndexAlter (ia sys.ODCIIndexInfo, parms IN OUT VARCHAR2, altopt number, env sys.ODCIEnv) RETURN NUMBER,
      STATIC FUNCTION ODCIIndexDrop(ia SYS.ODCIIndexInfo, env SYS.ODCIEnv) RETURN NUMBER,
      STATIC FUNCTION ODCIIndexExchangePartition(ia SYS.ODCIIndexInfo, ia1 SYS.ODCIIndexInfo, env SYS.ODCIEnv) RETURN NUMBER,
      STATIC FUNCTION ODCIIndexUpdPartMetadata(ia sys.ODCIIndexInfo, palist sys.ODCIPartInfoList, env sys.ODCIEnv) RETURN NUMBER,
      STATIC FUNCTION ODCIIndexInsert(ia in sys.ODCIIndexInfo, ridlist in sys.ODCIRidList,  newvallist in sys.ODCINumberList, env in SYS.ODCIEnv) RETURN NUMBER,
      STATIC FUNCTION ODCIIndexDelete(ia SYS.ODCIIndexInfo, rid VARCHAR2, oldval number, env SYS.ODCIEnv) RETURN NUMBER,
      STATIC FUNCTION ODCIIndexUpdate(ia SYS.ODCIIndexInfo, rid VARCHAR2, oldval number, newval number, env SYS.ODCIEnv) RETURN NUMBER,
      STATIC FUNCTION ODCIIndexStart(sctx IN OUT index_methods, ia SYS.ODCIIndexInfo,
        op SYS.ODCIPredInfo, qi sys.ODCIQueryInfo, strt number, stop number, cmpval number, env SYS.ODCIEnv) RETURN NUMBER,
      MEMBER FUNCTION ODCIIndexFetch(self IN OUT index_methods, nrows NUMBER, rids OUT SYS.ODCIridlist, env SYS.ODCIEnv) RETURN NUMBER,
      MEMBER FUNCTION ODCIIndexClose(self IN index_methods, env SYS.ODCIEnv) RETURN NUMBER
    CREATE OR REPLACE TYPE BODY index_methods IS
    STATIC FUNCTION ODCIGetInterfaces(ifclist OUT sys.ODCIObjectList) RETURN NUMBER IS
    BEGIN
      ifclist := sys.ODCIObjectList(sys.ODCIObject('SYS','ODCIINDEX2'));
      RETURN ODCIConst.Success;
    END ODCIGetInterfaces;
    STATIC FUNCTION ODCIIndexCreate (ia sys.ODCIIndexInfo, parms VARCHAR2,  env sys.ODCIEnv) RETURN NUMBER IS
    BEGIN
      RETURN ODCIConst.Success;
    END ODCIIndexCreate;
    STATIC FUNCTION ODCIIndexDrop(ia sys.ODCIIndexInfo, env sys.ODCIEnv) RETURN NUMBER IS
    BEGIN
      RETURN ODCIConst.Success;
    END ODCIIndexDrop;
    STATIC FUNCTION ODCIIndexAlter (
      ia sys.ODCIIndexInfo,
      parms IN OUT VARCHAR2,
      altopt NUMBER,
      env sys.ODCIEnv)
    RETURN NUMBER IS
    BEGIN
      RETURN ODCIConst.Success;
    END ODCIIndexAlter;
    STATIC FUNCTION ODCIIndexUpdPartMetadata(
      ia sys.ODCIIndexInfo,
      palist sys.ODCIPartInfoList,
      env sys.ODCIEnv)
    RETURN NUMBER IS
    BEGIN
      RETURN ODCIConst.Success;
    END ODCIIndexUpdPartMetadata;
    STATIC FUNCTION ODCIIndexExchangePartition(
      ia sys.ODCIIndexInfo,
      ia1 sys.ODCIIndexInfo,
      env sys.ODCIEnv)
    RETURN NUMBER IS
    BEGIN
      RETURN ODCIConst.Success;
    END ODCIIndexExchangePartition;
    STATIC FUNCTION ODCIIndexInsert(
       ia sys.ODCIIndexInfo,
       ridlist sys.ODCIRidList,
       newvallist sys.ODCINumberList,
       env sys.ODCIEnv)
    RETURN NUMBER IS
    BEGIN
      return ODCIConst.Success;
    END;
    STATIC FUNCTION ODCIIndexDelete(
       ia SYS.ODCIIndexInfo,
       rid VARCHAR2,
       oldval number,
       env SYS.ODCIEnv)
    RETURN NUMBER IS
    BEGIN
      return ODCIConst.Success;
    END;
    STATIC FUNCTION ODCIIndexUpdate(
       ia SYS.ODCIIndexInfo,
       rid VARCHAR2,
       oldval number,
       newval number,
       env SYS.ODCIEnv)
    RETURN NUMBER AS
    BEGIN
      return ODCIConst.Success;
    END;
    STATIC FUNCTION ODCIIndexStart(
      sctx IN OUT index_methods,
      ia SYS.ODCIIndexInfo,
      op SYS.ODCIPredInfo,
      qi sys.ODCIQueryInfo,
      strt number,
      stop number,
      cmpval  number,
      env SYS.ODCIEnv)
    RETURN NUMBER AS
    BEGIN
      sctx := index_methods(1);
      return ODCIConst.Success;
    END;
    MEMBER FUNCTION ODCIIndexFetch(
      self IN OUT index_methods,
      nrows NUMBER,
      rids OUT SYS.ODCIridlist,
      env SYS.ODCIEnv)
    RETURN NUMBER AS
    BEGIN
      return ODCIConst.Success;
    END;
    MEMBER FUNCTION ODCIIndexClose(self IN index_methods, env SYS.ODCIEnv) RETURN NUMBER AS
    BEGIN
      return ODCIConst.Success;
    END;
    end;
    Problem workaround:
    --drop function test_eq_fun;
    CREATE FUNCTION test_eq_fun(a number, b number) RETURN NUMBER AS
    BEGIN
      IF a = b then
        RETURN 1;
      ELSE
        RETURN 0;
      END IF;
    END;
    --drop operator test_eq;
    CREATE OPERATOR test_eq
    BINDING (number, number) RETURN NUMBER
    USING test_eq_fun;
    --drop indextype test_index_type;
    CREATE INDEXTYPE test_index_type
    FOR
    test_eq(number, number)
    USING index_methods
    WITH ARRAY DML(number, sys.ODCINumberList)
    WITH LOCAL RANGE PARTITION
    WITH SYSTEM MANAGED STORAGE TABLES;
    CREATE INDEXTYPE test_index_type
    FOR
    test_eq(number, number)
    USING index_methods
    WITH ARRAY DML
    WITH LOCAL RANGE PARTITION
    WITH SYSTEM MANAGED STORAGE TABLES;
    --drop table test_table;
    CREATE TABLE test_table (id NUMBER (19,0));
    CREATE INDEX test_index ON test_table(id) INDEXTYPE IS test_index_type;
    insert into test_table values (1);

    I get single for 1 row and batch for 2 or more rows in the following simplified simulation.
    SCOTT@orcl12c> DESC SYS.ODCINUMBERLIST
    SYS.ODCINUMBERLIST VARRAY(32767) OF NUMBER
    SCOTT@orcl12c> CREATE OR REPLACE TYPE index_methods AS OBJECT
      2  (
      3    step number,
      4    STATIC FUNCTION ODCIGetInterfaces(ifclist OUT SYS.ODCIObjectList) RETURN NUMBER,
      5    STATIC FUNCTION ODCIIndexCreate (ia SYS.ODCIIndexInfo, parms VARCHAR2, env SYS.ODCIEnv) RETURN NUMBER,
      6    STATIC FUNCTION ODCIIndexAlter (ia sys.ODCIIndexInfo, parms IN OUT VARCHAR2, altopt number, env sys.ODCIEnv) RETURN NUMBER,
      7    STATIC FUNCTION ODCIIndexDrop(ia SYS.ODCIIndexInfo, env SYS.ODCIEnv) RETURN NUMBER,
      8    STATIC FUNCTION ODCIIndexExchangePartition(ia SYS.ODCIIndexInfo, ia1 SYS.ODCIIndexInfo, env SYS.ODCIEnv) RETURN NUMBER,
      9    STATIC FUNCTION ODCIIndexUpdPartMetadata(ia sys.ODCIIndexInfo, palist sys.ODCIPartInfoList, env sys.ODCIEnv) RETURN NUMBER,
    10    STATIC FUNCTION ODCIIndexInsert(ia in sys.ODCIIndexInfo, rid in VARCHAR2,  newval in NUMBER, env in SYS.ODCIEnv) RETURN NUMBER,
    11    STATIC FUNCTION ODCIIndexInsert(ia in sys.ODCIIndexInfo, ridlist in sys.ODCIRidList,  newvallist in your_type, env in SYS.ODCIEnv) RETURN NUMBER,
    12    STATIC FUNCTION ODCIIndexDelete(ia SYS.ODCIIndexInfo, rid VARCHAR2, oldval number, env SYS.ODCIEnv) RETURN NUMBER,
    13    STATIC FUNCTION ODCIIndexUpdate(ia SYS.ODCIIndexInfo, rid VARCHAR2, oldval number, newval number, env SYS.ODCIEnv) RETURN NUMBER,
    14    STATIC FUNCTION ODCIIndexStart(sctx IN OUT index_methods, ia SYS.ODCIIndexInfo,
    15       op SYS.ODCIPredInfo, qi sys.ODCIQueryInfo, strt number, stop number, cmpval number, env SYS.ODCIEnv) RETURN NUMBER,
    16    MEMBER FUNCTION ODCIIndexFetch(self IN OUT index_methods, nrows NUMBER, rids OUT SYS.ODCIridlist, env SYS.ODCIEnv) RETURN NUMBER,
    17    MEMBER FUNCTION ODCIIndexClose(self IN index_methods, env SYS.ODCIEnv) RETURN NUMBER
    18  );
    19  /
    Type created.
    SCOTT@orcl12c> CREATE OR REPLACE TYPE BODY index_methods IS
      2  STATIC FUNCTION ODCIGetInterfaces(ifclist OUT sys.ODCIObjectList) RETURN NUMBER IS
      3  BEGIN
      4    ifclist := sys.ODCIObjectList(sys.ODCIObject('SYS','ODCIINDEX2'));
      5    RETURN ODCIConst.Success;
      6  END ODCIGetInterfaces;
      7
      8  STATIC FUNCTION ODCIIndexCreate (ia sys.ODCIIndexInfo, parms VARCHAR2,  env sys.ODCIEnv) RETURN NUMBER IS
      9  BEGIN
    10    RETURN ODCIConst.Success;
    11  END ODCIIndexCreate;
    12
    13  STATIC FUNCTION ODCIIndexDrop(ia sys.ODCIIndexInfo, env sys.ODCIEnv) RETURN NUMBER IS
    14  BEGIN
    15    RETURN ODCIConst.Success;
    16  END ODCIIndexDrop;
    17
    18  STATIC FUNCTION ODCIIndexAlter (
    19    ia sys.ODCIIndexInfo,
    20    parms IN OUT VARCHAR2,
    21    altopt NUMBER,
    22    env sys.ODCIEnv)
    23  RETURN NUMBER IS
    24  BEGIN
    25    RETURN ODCIConst.Success;
    26  END ODCIIndexAlter;
    27
    28  STATIC FUNCTION ODCIIndexUpdPartMetadata(
    29    ia sys.ODCIIndexInfo,
    30    palist sys.ODCIPartInfoList,
    31    env sys.ODCIEnv)
    32  RETURN NUMBER IS
    33  BEGIN
    34    RETURN ODCIConst.Success;
    35  END ODCIIndexUpdPartMetadata;
    36
    37  STATIC FUNCTION ODCIIndexExchangePartition(
    38    ia sys.ODCIIndexInfo,
    39    ia1 sys.ODCIIndexInfo,
    40    env sys.ODCIEnv)
    41  RETURN NUMBER IS
    42  BEGIN
    43    RETURN ODCIConst.Success;
    44  END ODCIIndexExchangePartition;
    45
    46  STATIC FUNCTION ODCIIndexInsert(
    47      ia sys.ODCIIndexInfo,
    48      rid VARCHAR2,
    49      newval NUMBER,
    50      env sys.ODCIEnv)
    51  RETURN NUMBER IS
    52  BEGIN
    53    dbms_output.put_line ('single');
    54    return ODCIConst.Success;
    55  END;
    56
    57  STATIC FUNCTION ODCIIndexInsert(
    58      ia sys.ODCIIndexInfo,
    59      ridlist sys.ODCIRidList,
    60      newvallist your_type,
    61      env sys.ODCIEnv)
    62  RETURN NUMBER IS
    63  BEGIN
    64    dbms_output.put_line ('batch');
    65    return ODCIConst.Success;
    66  END;
    67
    68  STATIC FUNCTION ODCIIndexDelete(
    69      ia SYS.ODCIIndexInfo,
    70      rid VARCHAR2,
    71      oldval number,
    72      env SYS.ODCIEnv)
    73  RETURN NUMBER IS
    74  BEGIN
    75    return ODCIConst.Success;
    76  END;
    77
    78  STATIC FUNCTION ODCIIndexUpdate(
    79      ia SYS.ODCIIndexInfo,
    80      rid VARCHAR2,
    81      oldval number,
    82      newval number,
    83      env SYS.ODCIEnv)
    84  RETURN NUMBER AS
    85  BEGIN
    86    return ODCIConst.Success;
    87  END;
    88
    89  STATIC FUNCTION ODCIIndexStart(
    90    sctx IN OUT index_methods,
    91    ia SYS.ODCIIndexInfo,
    92    op SYS.ODCIPredInfo,
    93    qi sys.ODCIQueryInfo,
    94    strt number,
    95    stop number,
    96    cmpval  number,
    97    env SYS.ODCIEnv)
    98  RETURN NUMBER AS
    99  BEGIN
    100    sctx := index_methods(1);
    101    return ODCIConst.Success;
    102  END;
    103
    104  MEMBER FUNCTION ODCIIndexFetch(
    105    self IN OUT index_methods,
    106    nrows NUMBER,
    107    rids OUT SYS.ODCIridlist,
    108    env SYS.ODCIEnv)
    109  RETURN NUMBER AS
    110  BEGIN
    111    return ODCIConst.Success;
    112  END;
    113
    114  MEMBER FUNCTION ODCIIndexClose(self IN index_methods, env SYS.ODCIEnv) RETURN NUMBER AS
    115  BEGIN
    116    return ODCIConst.Success;
    117  END;
    118  end;
    119  /
    Type body created.
    SCOTT@orcl12c> CREATE FUNCTION test_eq_fun(a number, b number) RETURN NUMBER AS
      2  BEGIN
      3    IF a = b then
      4       RETURN 1;
      5    ELSE
      6       RETURN 0;
      7    END IF;
      8  END;
      9  /
    Function created.
    SCOTT@orcl12c> CREATE OPERATOR test_eq
      2  BINDING (number, number) RETURN NUMBER
      3  USING test_eq_fun
      4  /
    Operator created.
    SCOTT@orcl12c> CREATE INDEXTYPE test_index_type
      2  FOR
      3  test_eq(number, number)
      4  USING index_methods
      5  WITH ARRAY DML(number, your_type)
      6  WITH LOCAL RANGE PARTITION
      7  WITH SYSTEM MANAGED STORAGE TABLES
      8  /
    Indextype created.
    SCOTT@orcl12c> CREATE TABLE test_table (id NUMBER (19,0))
      2  /
    Table created.
    SCOTT@orcl12c> CREATE INDEX test_index ON test_table(id) INDEXTYPE IS test_index_type
      2  /
    Index created.
    SCOTT@orcl12c> insert into test_table values (1)
      2  /
    single
    1 row created.
    SCOTT@orcl12c> insert into test_table
      2  select 2 from dual union all
      3  select 3 from dual
      4  /
    batch
    2 rows created.
    SCOTT@orcl12c> insert into test_table select deptno from dept
      2  /
    batch
    4 rows created.
    SCOTT@orcl12c> insert into test_table select object_id from user_objects
      2  /
    batch
    34 rows created.
    SCOTT@orcl12c>

  • Trouble with arrays

    Hi!
    I have to write a program where you enter a name of a person and his points in a game using arrays. The program stops when you enter -99
    Then the output should be like this
    Person 1 45
    Person 2 89
    Person 30 X
    We have just begun with arrays and i am not so good at it, i don't know what to enter in the brackets []. Can somebody help me? It has a lot of errors
    Here is my program:
    public class GradeArray {
         public static void main(String args[]) {
         String NameArray[] = new String [ 30 ];
         String NumberString;
         int NumberArray[] = new int [ 30 ];
         int ControlExit = 0;
         String output = "Name\t\tPoints\n";
         while (ControlExit == 0) { // start while
         NameArray[] = JOptionPane.showInputDialog(
    null, "Enter the name of the person");
         NumberString = JOptionPane.showInputDialog(
         null, "Enter "+NameArray[]+"'s points(0-100) Enter -99 toExit");
         NumberArray[] = Integer.parseInt(NumberString);
         if (NumberArray[] == -99)
         ControlExit = 1;
         } // end while
         for (int Control = 1; Control <= NumberArray.length; Control++)
         output += NameArray[] + "\t\t" + NumberArray[] + "\n";     
              JTextArea outputArea = new JTextArea();
              outputArea.setText( output );
    JOptionPane.showMessageDialog(null,
    outputArea);
    System.exit( 0 );

    ok, i understand it better but my modified program has still errors
    import javax.swing.*;
    public class GradeArray2 {
    public static void main(String args[]) {
    String NameArray[] = new String [ 30 ];
    String NumberString;
    int Number;
    int NumberArray[] = new int [ 30 ];
    int ControlExit = 0;
    String output = "Name\t\tGrade\n";
    while (ControlExit == 0) { // start while
    Name = JOptionPane.showInputDialog(
    null, "Enter the name of the person");
    Name = NameArray[Name];
    NumberString = JOptionPane.showInputDialog(
    null, "Enter "+NameArray+"'s points(0-100) Enter -99 to Exit");
    Number = Integer.parseInt(NumberString);
    NumberArray[Number] = Number;
    if (NumberArray[Number] == -99)
    ControlExit = 1;
    } // end while
    for (int Control = 1; Control <= NumberArray.length; Control++)
    output += NameArray[Name] + "\t\t" + NumberArray[Number] + "\n";
    JTextArea outputArea = new JTextArea();
    outputArea.setText( output );
    JOptionPane.showMessageDialog(null,
    outputArea);
    System.exit( 0 );
    [\CODE]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Need help with Arrays

    Hey guys, I'm a beginner programmer and I'm having a bit of a tough time with arrays. I could really use some help!
    What I'm trying to do is roll one die and then record the rolls.
    Here is my sample I/O:
    How many times should I roll a die?
    -> 8
    rolling 8 times
    2, 1, 5, 6, 2, 3, 6, 5
    number of 1's: 1
    number of 2's: 2
    and so on....
    Here is my incomplete code at this moment:
    //CountDieFaces.java
    import java.util.Scanner;
    import java.io.*;
    import library.Gamble;
    public class CountDieFaces
        //prompt for and read in: number of times user wants to roll one die
        //simulate rolling a die that many times, counting how many times each face 1 thru 6 comes up
        //print out: each roll
        //AND the total number of times each face occured and the percentage of the time each face occured.
        Scanner scan = new Scanner(System.in);
        int[] faceCount= {0,0,0,0,0,0,0};
        int dice;
        System.out.println("How many times would you like to roll the die?");
        int dieCount = scan.nextInt();
        int dieRoll = Gamble.rollDie(); // Main calling class method
        int count = 1;
        while(count < dieCount)
            System.out.println(faceCount[count]);
            count++;
    }Here is the gamble library:
    //Gamble.java
    package library;
    public class Gamble
         // returns 1, 2, 3, 4, 5, or 6
         public static int rollDie()
              int dieRoll = (int)(Math.random()*6)+1;
              return dieRoll;
    }and here are the errors I have so far:
    ----jGRASP exec: javac -g CountDieFaces.java
    CountDieFaces.java:19: <identifier> expected
         System.out.println("How many times would you like to roll the die?");
         ^
    CountDieFaces.java:19: illegal start of type
         System.out.println("How many times would you like to roll the die?");
         ^
    CountDieFaces.java:25: illegal start of type
         while(count < dieCount)
         ^
    CountDieFaces.java:25: > expected
         while(count < dieCount)
         ^
    CountDieFaces.java:25: ')' expected
         while(count < dieCount)
         ^
    CountDieFaces.java:26: ';' expected
         ^
    CountDieFaces.java:27: illegal start of type
              System.out.println(faceCount[count]);
              ^
    CountDieFaces.java:27: ';' expected
              System.out.println(faceCount[count]);
              ^
    CountDieFaces.java:27: invalid method declaration; return type required
              System.out.println(faceCount[count]);
              ^
    CountDieFaces.java:27: ']' expected
              System.out.println(faceCount[count]);
              ^
    CountDieFaces.java:27: ')' expected
              System.out.println(faceCount[count]);
    I'm really confused with how a the gamble library gets put into the array, so any help is appreciated! Also if anyone could explain the errors to me, I would really appreciate it.
    thanks in advance,
    wootens
    Edited by: Wootens on Oct 18, 2010 8:55 PM

    D'oh!
    Thanks you guys, fixed that. Although I'm having trouble with storing the die roll in the array. Any suggestions?
    java.io.*;
    public class CountDieFaces
        //prompt for and read in: number of times user wants to roll one die
        //simulate rolling a die that many times, counting how many times each face 1 thru 6 comes up
        //print out: each roll
        //AND the total number of times each face occured and the percentage of the time each face occured.
        public static void main(String[] args)
            Scanner scan = new Scanner(System.in);
            int[] faceCount= {0,0,0,0,0,0};
            int dice;
            System.out.println("How many times would you like to roll the die?");
            int dieCount = scan.nextInt();
            int dieRoll = rollDie(); // Main calling class method
            int count = 0;
            while(count < dieCount)
                System.out.println(faceCount[dieRoll]);
                count++;
        public static int rollDie()
            int dieRoll = (int)(Math.random()*6)+1;
            return dieRoll;
    }Wootens

  • How to do like this with array?

    How to do like this with array?
    I have 2 constants array put in main while loop ( array1{6,6}; array2{4,4} ). Those arrays will be come the input data for st in the small while loop inside.
    The input data look like : [6,6],[4,4],[6,6],[4,4]...... I have to put input data to result array[8]. The method is:
    input data result data
    [6,6] --------------------------------------------> [6,6,0,0,0,0,0,0]
    [4,4] --------------------------------------------> [6,6,4,4,0,0,0,0] ( this period, just add each element in new array)
    [6,6] --------------------------------------------> [6,6,4,4,6,6,0,0]
    [4,4] --------------------------------------------> [6,6,4,4,6,6,4,4]
    [6,6,4,4,6,6,4,4] ( 1st period )
    When the las index of result data array is filled in, I have to collapse the result data array to be this array:
    ----------> collapse: [6,4,6,4,0,0,0,0] ( take the average of 2 continuous element add to new result data array)
    Next input data
    [6,6] --------------------------------------------> [6,4,6,4,6,0,0,0]
    [4,4] --------------------------------------------> [6,4,6,4,6,4,0,0] ( this period, add the average of 2 continuous elements in new array )
    [6,6] --------------------------------------------> [6,4,6,4,6,4,6,0]
    [4,4] --------------------------------------------> [6,4,6,4,6,4,6,4]
    [6,4,6,4,6,4,6,4] ( 2 nd period)
    ----------> 2nd collapse [5,5,5,5,0,0,0,0] ( take the average of 2 continous element add to new result data array)
    Next input data
    [6,6] ....wait until input data has 4 elements
    [4,4] -------------------------------------------------------------------------------------> [5,5,5,5,5,0,0,0]
    [6,6] ....wait until input data has 4 elements
    [4,4] -------------------------------------------------------------------------------------> [5,5,5,5,5,5,0,0]
    [6,6] ....wait until input data has 4 elements
    [4,4] -------------------------------------------------------------------------------------> [5,5,5,5,5,5,5,0]
    [6,6] ....wait until input data has 4 elements
    [4,4] -------------------------------------------------------------------------------------> [5,5,5,5,5,5,5,5]
    [5,5,5,5,5,5,5,5] ( third period )
    ----------> 3rd collapse [5,5,5,5,0,0,0,0]
    This wayl to make the tren graph.I  made  an VI to do that , but it's not yet correct.
    Attachments:
    tryyyyyyy.vi ‏39 KB
    trend_mode.JPG ‏49 KB

    Frankly, I don't understand your problem description or your VI.
    In the description, the output array has a fixed size of 8 elements, is this correct? In this case you should initialize an array of 8 elements and do all operations "in place". I don't udnerstand the purpose of all the other code.
    There are a lof of things that don't make any sense at all.
    The second largest loop has no purpose, because it iterates only once per call
    Sometimes you are concatenating an empty array to an existing array. This makes no difference.
    Why is some of your data EXT representation???
    What's up with complicated constructs such as that small loop shown in the picture. I show a somewhat simpler alternative.
    Anyway, I have a hard time understanding your description. What should happen at the end? Do you have a link to a website that describes the algorithm? Does the algorithm have a name?
    Message Edited by altenbach on 01-10-2008 09:55 AM
    LabVIEW Champion . Do more with less code and in less time .
    Attachments:
    Simplify.png ‏5 KB

  • Problem is detected with Array : 01

    I was backing up my server when it suddenly turned off. When it restarted it showed a critical error message saying "Problem is detected with Array : 01".
    Windows tried starting and kept rebooting so I just turned it off.
    When I launch the RAID utility I clearly see that the drive 02:01 seems ok but the other one is marked as "failed orisconnected" (it is connected ans spinning).
    This is the spec: On the server I have windows 2012R2 installed on two HD 1TB on RAID1.
    I habe an unused NAS, so I decided to create an iSCSI drive as a Target, and run the windows backup utility to do a Full Backup on it.hat may I have done wrong and how could I resolve this issue?
    This clearly is related to the windows backup utility since this server was working fine until then.
    Thanks.

    Hi,
    The issue could be due to that one of the two drive is failed in the RAID 1. You need to replace the failed drive and rebuild the array automatically.
    Best Regards,
    Mandy 
    We
    are trying to better understand customer views on social support experience, so your participation in this
    interview project would be greatly appreciated if you have time.
    Thanks for helping make community forums a great place.

  • I Want to graph useing MSGraph with array data

    Hi..
    I need to skill to graph using the msgraph with array data
    My forte version 2.0h
    E-MAIL ADDRESS : [email protected]
    TEL(C) : 02)273-3131(5233), 0331)40-8366(&Ccedil;&ouml;&Agrave;&ccedil; &iquest;&copy;&plusmn;&acirc; &Agrave;&Ouml;&frac12;&iquest;)
    PAGER : 015-959-9390
    HAND PHONE : 011-411-9395
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    This #pdfloc data is generated by RMSDK when user highlight (annotation) pdf and keep it in XML format in file system: E.g.
    <annotation y="-116" isvisible="False" x="-110" width="220" height="100">
            <dc:identifier>urn:uuid:DF061693-A668-49DF-A20B-DE243C463919</dc:identifier>
            <dc:date>2015-03-02T12:04:53Z</dc:date>
            <dc:creator>creator id</dc:creator>
            <dc:title>Page 4, 02-Mar-2015 5:34 pm</dc:title>
            <target>
                <fragment start="#pdfloc(7f54,3,37,0,0,0,0,1)" end="#pdfloc(7f54,3,37,3,1,0,1,1)">
                    <text>by Matt</text>
                </fragment>
            </target>
            <content>
                <dc:date>2015-03-02T12:04:53Z</dc:date>
                <text></text>
            </content>
    </annotation>

  • Simple question with arrays

    Im a couple days new in java, Ive been searching for an answer for hours and havent found a solution.
    This is the mistake it shows (when trying to use any element of the array):
    array required, but java.util.ArrayList <java.lang.String> found
    The array is:
    public static ArrayList<String> numList = new ArrayList<String>();
    Im filling it this way: (so that it contains each word of a file in separate)
    BufferedReader br = new BufferedReader(new FileReader("Archivo.txt"));
    try
    while(true)
    String aLine = br.readLine();
    if(aLine == null) throw new EOFException("Le?do todo el archivo.");
    if(!aLine.equals(""))
    StringTokenizer st = new StringTokenizer(aLine);
    while(st.hasMoreTokens())
    numList.add(st.nextToken());
    }catch(EOFException e)
    The problem comes when I try to use the elements of the array (in specific when trying to convert each element of the array to int, so that i can do math operations with them).
    for example:
    for (a=0; w>a; a++)
    int x = Integer.parseInt(numList[a])
    Can anyone help me with this? (where is the mistake and how to convert from string array elements to int)
    Thank you // Muchas Gracias

    The trouble is that you're confusing ArrayLists with arrays. They're not the same thing.
    Currently you're making an ArrayList. If you want an array of String, do this:
    String[] myArray = new String[50];
    int i = 0;
    while(st.hasMoreTokens()) {
      myArray[i] = st.nextToken();
      i++;
    }Or perhaps better yet:
    String[] numListArray = numList.toArray(new String[0]);But you really don't need an array for what you're doing. Use an Iterator.
    Iterator<String> strings = numList.iterator();
    while(strings.hasNext()) {
      int x = Integer.parseInt(strings.next());
    }You get the idea. Read the Collections tutorial about iterators. Read the language spec about arrays. Also look at the java.util.Arrays class.

  • Building DLLs from VIs with array as output

    Is there any special way to build DLLs from VIs having arrays as outputs. Suppose I have a VI "Random" with input "nrand" and output an array "the_random2". When I build DLL from the VI, I have something like this in my header file
    void __stdcall Random(long nrand, double the_random2[]);
    Now it returns void. So I have to pass the array as pointer and retrieve it. If I use Mathscript to load the DLL and call this function, how do I pass the pointer to the array "the_random2"? Simply speaking, any useful method to build DLLs with array outputs and the right way to call them from Mathscript would be appreciated.
    Regards
    NRK

    Hi,
    Building DLLs in LabVIEW is described in this tutorial.  
    Mathscript can call shared libraries such as DLLs, however make sure
    that they are compliant with the supported data types as stated here in
    this help page.  All supported functions for calling/loading shared libraries is described here. 
    Note that these functions are not supported with the base package.  The
    details of the sytax of each function is described in their specific
    help page.
    Hope this helps!
    Regards,
    Nadim
    Applications Engineering
    National Instruments

  • Sort values of structure with arrays

    Hi
    For a shopping cart I'm using a structure with arrays to store the items in the cart. I tried to use StructSort but did not work...
    This is how I store the items in the cart:
    <cfscript>
                if (not(isdefined("session.cart"))) {                // Check to make sure that the Shopping cart structure exists.
                    session.cart = structnew();
                // The item structure we are going to use to store the items in the cart
                // is going to have four parts...
                //         1.  The item id
                //         2.  The item name
                //         3.  The price per unit
                //         4.  The quantity
                tempvalue = listtoarray('#attributes.id#,#attributes.name#,#attributes.price#,#attributes.quantity#') ;
                // if the item is not yet in the cart, simply add it to the cart
                if (not(structKeyExists(session.cart, attributes.name))) {
                    StructInsert(session.cart,attributes.name,tempvalue);
                // if the item is already in the cart, update the item quantity
                else {
                    tempvalue[4]=session.cart[attributes.name][4]+attributes.quantity;
                    StructUpdate(session.cart,attributes.name,tempvalue);
    </cfscript>
    Any help will be appreciated.
    Thank you.
    TJ

    To loop over an array one has two options:
    <cfloop index="i" from="1" to="#arrayLen(a)#">
    Or:
    <cfloop index="someVar" array="#a#">
    Personally I use the former because I think the implementation of array-looping with <cfloop> is cocked-up as it's not the index that gets put into "someVar", it's the array element itself.  So by way of pedantic protest, I don't use that syntax.
    But anyway...
    The reason why your struct is unordered is because structs are - innately, and by definition - unordered.  If you want an ordered data structure, you use an array.
    However what you are wanting to do is to sort your array by a subkey value of the structs the array contains.  If you want to do that, you will need to roll your own sorting solution.
    Personally I'd stick with using an array and just use its intrinsic ordering (the order in which items are added to it).  However if you wanted to sort on one of the inner struct keys, you could maintain a separate struct keyed on the value you wish to sort on, containing a reference to the array element in the original array.  Then you could extract a structKeyArray() from that, and use arraySort() to order those index keys in whichever order you like.
    Adam

  • OSB java call out with array parameters

    Hi all,
    I have a java call out with array parameters, follow the firm of java method:
    logBody2(String category, XmlObject headerXml, String[] level, XmlObject[] xml)
    The java call out have String[] and XmlObject[] arrays in intput, my question is how I can pass these arrays of values at java call out?
    Thk
    L.

    For array, comma-separated values should be passed. For e.g. -
    If input parameter is of type String[] then passed values should be comma-separated strings like - 'Anuj','Dwivedi'
    If input parameter is of type XmlObject[] then passed values should be comma-separated XmlObject like - <anuj/>,<dwivedi/>
    Regards,
    Anuj

  • ERROR:JAVA.LANG.CLASSCASTEXCEPTION WITH JDEVELOPER 10.0.1.3

    I´m trying to use JSTL functions but I have the error
    "Error:java.lang.ClassCastException with JDeveloper 10.0.1.3".
    When I make or rebuild the code I have the error.
    The test <c:when test="${fn:length(P_LIGACOES) > 0}" > has error. I´ve been
    used others functions and the error is the same.
    Please, see JSP code as follows:
    <%@ page import="java.text.DateFormat"%>
    <%@ page import="java.text.SimpleDateFormat"%>
    <%@ page import="java.text.NumberFormat"%>
    <%@ page import="com.celesc.tf.BilheteTelefonico"%>
    <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Ligações Telefônicas</title>
    <style type="text/css">
    Body{
    background-image: url(images/fdo.jpg);
    background-repeat: no-repeat;
    background-color: #FFFFFF;
    </style>
    <link href="css/ligtel.css" rel="stylesheet" type="text/css">
    </head>
    <body>
    <h1 align=center> </h1>
    <h1 align=center> </h1>
    <c:choose>
    <c:when test="${!empty mensagem}">
    <h1 align=center>
    <img src="images/erro.jpg"><font size="5" face="Verdana, Arial, Helvetica,
    sans-serif"><c:out value="${mensagem}"/></font></h1>
    </c:when>
    <c:otherwise>
    <%
    Vector ligacoes = (Vector) request.getAttribute("P_LIGACOES");
    SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy
    HH:mm:ss");
    double totalligacoes = 0;
    NumberFormat preco = NumberFormat.getCurrencyInstance();
    %>
    <c:choose>
    <c:when test="${fn:length(P_LIGACOES) > 0}" >
    <h1 align=center><font size="5" face="Verdana, Arial, Helvetica,
    sans-serif">Nenhuma ligação Realizada</font></h1>
    </c:when>
    <c:otherwise>
    <h1 align=center><font size="5" face="Verdana, Arial, Helvetica,
    sans-serif">Relação das Ligações</font></h1>
    <table class="table-normal" width="70%" align="center">
    <tr class="table-result">
    <td colspan="5"><b><%= ligacoes.size()%> </b> Ligações Realizadas</td>
    </tr>
    <tr class="table-title">
    <td>Fone Chamado</td>
    <td>Ramal</td>
    <td>Data</td>
    <td>Duração</td>
    <td>Custo(R$)</td>
    </tr>
    <c:forEach items="${P_LIGACOES}" var="bilhete">
    <tr class="table-content">
    <td><c:out value="${bilhete.numeroChamado}"/></td>
    <td><c:out value="${bilhete.ramalOrigem}"/></td>
    <td><c:out value="${bilhete.dataLigacao}"/></td>
    <td><c:out value="${bilhete.duracao}"/></td>
    <!--<td><c:out value="${bilhete.custo}"/></td>-->
    <td><c:out value="${bilhete.custo}"/></td>
    <c:set var="totalligacoes" value="${totalligacoes +
    bilhete.custo}"/>
    </tr>
    </c:forEach>
    <tr class="table-result">
    <td colspan="4" align="right"><B>Total</B></td>
    <!-- <td ><B><%= preco.format(totalligacoes)%></B></td> -->
    <td><B><c:out value="${totalligacoes}" /></B></td>
    </tr>
    </table>
    </c:otherwise>
    </c:choose>
    </c:otherwise>
    </c:choose>
    </body>
    </html>

    Hi,
    Please make sure that there is no other version of *"net.nrj.alf.DimensionLabel"* class present in any other Class Loader
    There are various kind of Class Loaders : PreMordial Class Loader, BootStrap ClassLoader, System Class Loader (WebLogic ClassLoader), Application ClassLoader, Module Class Loader....
    net.nrj.service.SearchServiceProcessor java.lang.ClassCastException: net.nrj.alf.DimensionLabel java.lang.ClassCastException: net.nrj.alf.DimensionLabel If your code is working fine in WLS9.2 it means in WLS10.3.3 the same class is getting loaded from different Class Loaders...In order to find out which classLoader is being used to load that class please do the following:
    <b><font color=maroon>
    Class dimentionLevel=Class.forName("net.nrj.alf.DimensionLabel")
    ClassLoader cl=dimentionLevel.getClassLoader();
    System.out.println("\n\n\t DimentionLevel is loaded from ClassLoader: "+cl);
    </font></b>
    Above 3 Lines of code you need to write for "net.nrj.service.SearchServiceProcessor" class as well...Because i suspect that these two classes are getting loaded from two different class Loaders.
    If the Application Code is 100% correct The Main reason of ClassCastException is Classes are getting Loaded from two Different Class Loaders. You can also look at the Filtering ClassLoader Feature of WebLogic to Tell WebLogic to Load some Classes from a Specific ClassLoaders...As described Here .*http://middlewaremagic.com/weblogic/?page_id=192*
    Thanks
    Jay SenSharma
    http://middlewaremagic.com/weblogic/?page_id=2261  (Middleware magic Is Here)

  • Trying to teach self Java-question with arrays

    I have a question with arrays. I have a simple inventory program that I am writing(very simple). I have declared and created my array. Is this the time I should build a new class outside of my main in order to hold my array? I am still trying to sort through classes and when to create them. My thought is that because it is a hierarchy I should have a new class. For example, Albums is at the top and then there are specific types of albums, like TributeAlbum, PremiereAlbum, etc. Do I need a class for each of these? When I create the class, do I use the same name as the array?
    More info, just in case: My original class is AlbumInventory. I have created an array to hold 25 TributeAlbums which has 4 instance variables.
    Question 2: Why can I not refer to an album variable like TributeAlbums[0].itemNumber?
    Thanks in advance for your input.
    Denise

    I have a question with arrays. Okay.
    I have a simple
    inventory program that I am writing(very simple). I
    have declared and created my array. Is this the time
    I should build a new class outside of my main in
    order to hold my array? In an OO language classes are usually a good idea.
    I am still trying to sort
    through classes and when to create them. My thought
    is that because it is a hierarchy I should have a new
    class.This sounds a bit confused. You should have a new class when it is appropriate to do so.
    For example, Albums is at the top and then
    there are specific types of albums, like
    TributeAlbum, PremiereAlbum, etc. Do I need a class
    for each of these? Not sure. Why is the type not an attribute of the Album class? This (attribute) seems at first glance to be the way to do it.
    When I create the class, do I use
    the same name as the array?
    ? I am going to say no but I'm not following what you are really asking here.
    More info, just in case: My original class is
    AlbumInventory. I have created an array to hold 25
    TributeAlbums which has 4 instance variables.
    Can you please post some of your actual formatted code? It would also be helpful to know what the attributes for an Album are as you have them.

Maybe you are looking for

  • What is causing Motion 5 to crash overtime I attempt to export movie?

    Hi, I just purchased Motion 5 for my iMac and after creating my first project I've attempted now multiple times, to export it as a movie and EVERY time I do it crashes.  I've tried restarting the program, shutting down my computer, installing the lat

  • DVI adapter crashes MacBook Pro

    Hello, I have a MacBook Pro with a DVI output, So I bought a DVI to HDMI adapter just like this one: http://www.sanace.com/IT/images/dvi-hdmi.jpg Whenever I plug the adapter into my MacBook Pro (with or without any HDMI cable) it crashes by shutting

  • ABAP query using PSJ

    Is there a way to get the company code project profile and the co amount using an Query . something similar to CJI3 but with the comapny code and project profile. Or if i have to use ABAP.

  • ERROR[BEA-101359] When Starting Weblogic10 on AIX5.3

    I installed Weblogic 10 for PSeries on AIX 5.3 the env is: OS: AIS 5305 CSP JDK: java version "1.5.0" Java(TM) 2 Runtime Environment, Standard Edition (build pap32dev-20070511(SR5)) IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 AIX ppc-32 j9vmap3223-20

  • Administrator login not available at bootup anymore?

    Before HD crash I had an auto screen come up where I had to login as the administrator. After new installation of Leopard 10.5.1 the admin Login screen has gone and it goes straight into my desktop. I want to have the forced Login back to help securi