× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Hi Everyone,
Good morning, I am sorry for the lengthy email.... I am encountering this error when calling prototype that contains calls to Java method from the main rpgle program....

I am calling the procedure with following eval statement from main program... First time I call the procedure, I instantiate the object with Constructer.... The second time I call the procedure ... I donot want to call the constructer method again. When the procedure is call second time, The intitialization loop is bypassed and the call to l java method is done ... The program errors saying "JVM 1 has ended" and Pointer not set for location referenced. The program works fine if i initialize (that is call the CONSTRUCTER) every time the sub procedure is called...
       Any help you could provide would be much appreciated....

Thank You !!!!


=========== Part of Main Program =============
D $Encrypt        PR         32767    Varying
D  AlgID                        32
D  KeyID                        64
D UnencryptedStr             32767    Const Varying

Eval      Encrypted =
         $Encrypt(AlgID : KeyID : UnencryptedStr)

================ End of Partial Main Program ==========

========== Here is the sub procedure ==================


    H NoMain Debug Option(*NoDebugIO)

‚*=====================================================================
    ‚*  Data Definition Specifications:
‚*=====================================================================
    ‚*

    D AccessCtl      UDS            60    Dtaara(Ingrian)
    D  SrvProvider                  20
    D  User_Name                    20
    D  Pass_Word                    20

    D Initialization UDS                  Dtaara(*LDA)
    D  CryptoObject                 11

    D $Encrypt        PR         32767    Varying
    D  AlgID                        32
    D  KeyID                        64
    D UnEncryptedStr             32767    Const Varying

    P $Encrypt        B                   Export

    D $Encrypt        PI         32767    Varying
    D  AlgID                        32
    D  KeyID                        64
    D UnEncryptedStr             32767    Const Varying

    D ReturnMessage   S           1000    Varying
    D NotEncrypted    C                   'Not Encrypted'
    D Initialized     C                   'Initialized'

    ‚* Prototype for Java constructor in class CipherHandler

    D CipherHandlerObjCtor...
D PR O EXTPROC(*JAVA : 'com.sbux.crypto.c+
    D                                     ontrollers.CipherHandler' :
    D                                      *CONSTRUCTOR)
D CLASS(*JAVA : 'com.sbux.crypto.con+
    D                                     trollers.CipherHandler' )

    ‚* Prototype for Java method Encrypt in class CipherHandler

D Encrypt PR O CLASS(*JAVA : 'com.sbux.crypto.com+
    D                                     mon.ReturnObject' )
D EXTPROC(*JAVA : 'com.sbux.crypto.c+ D ontrollers.CipherHandler' : 'encry+
    D                                     pt' )
D O CLASS(*JAVA : 'java.lang.String' ) D O CLASS(*JAVA : 'java.lang.String' ) D O CLASS(*JAVA : 'java.lang.String' )

    ‚* Definition of a Java method, getBytes() on the String class

    D GetBytes        PR         65535A   ExtProc(*JAVA:
    D                                     'java.lang.String':
    D                                     'getBytes') Varying

    ‚* Prototype for Java constructor in class
    ‚*  getReturnCode in class ReturnObject

D GetReturnCode PR 10I 0 EXTPROC(*JAVA : 'com.sbux.crypto.c+ D ommon.ReturnObject' : 'getReturnCo+
    D                                     de' )
    D

    ‚* Prototype for Java method
    ‚*  getReturnString in class ReturnObject

    D GetReturnStringValue...
D PR O CLASS(*JAVA : 'java.lang.String' ) D EXTPROC(*JAVA : 'com.sbux.crypto.c+ D ommon.ReturnObject' : 'getReturnSt+
    D                                     ringValue' )

    ‚* Prototype for Java constructor in class ReturnObject

    D ReturnObjectObjCtor...
D PR O EXTPROC(*JAVA : 'com.sbux.crypto.c+ D ommon.ReturnObject' : *CONSTRUCTOR) D CLASS(*JAVA : 'com.sbux.crypto.com+
    D                                     mon.ReturnObject' )

    ‚* Prototype for Java method:
‚* registerAccessCredentials in class CipherHandler in package com.sbux.crypto.controllers

    D RegisterAccessCredentials...
D PR EXTPROC(*JAVA : 'com.sbux.crypto.c+ D ontrollers.CipherHandler' : 'regis+
    D                                     terAccessCredentials' )
D O CLASS(*JAVA : 'java.lang.String' ) D O CLASS(*JAVA : 'java.lang.String' ) D O CLASS(*JAVA : 'java.lang.String' )

    ‚* Prototype for Java method:
‚* getReturnMessage in class ReturnObject in package com.sbux.cryptsbux.crypto.common

    D GetReturnMessage...
D PR O CLASS(*JAVA : 'java.lang.String' ) D EXTPROC(*JAVA : 'com.sbux.crypto.c+ D ommon.ReturnObject' : 'getReturnMe+
    D                                     ssage' )


    ‚* Definition of Java constructor for the String class

    D StringC         PR              O   ExtProc(*JAVA:
    D                                     'java.lang.String':
    D                                     *CONSTRUCTOR)
    D                            65535A   Const Varying

    ‚* Java class CipherHandler Object

    D CipherHandlerObj...
D S O CLASS(*JAVA: 'com.sbux.crypto.cont+
    D                                     rollers.CipherHandler' )

    ‚* Returned field Enclaration for Java method:
    ‚*    Encrypt in class CipherHandler
    ‚*    Java returned type is com.sbux.crypto.common.ReturnObject

D EncryptRet S O CLASS(*JAVA : 'com.sbux.crypto.com+
    D                                     mon.ReturnObject' )

‚* Returned field for Java method getReturnCode in class ReturnObject

    D GetReturnCodeRet...
    D                 S             10I 0

    D GetReturnMessageRet...
D S O CLASS(*JAVA : 'java.lang.String' )

‚* Prototype for Java method getReturnStringValue in class ReturnObject

    D GetReturnStringValueRet...
D S O CLASS(*JAVA : 'java.lang.String' )

    ‚* Parameter field Enclarations for Java method:
    ‚*     registerAccessCredentials in class CipherHandler

D Provider S O CLASS(*JAVA : 'java.lang.String' ) D User S O CLASS(*JAVA : 'java.lang.String' ) D Password S O CLASS(*JAVA : 'java.lang.String' )

    ‚* Parameter field Enclarations for Java method:
    ‚*   Encrypt in class CipherHandler

D J_AlgID S O CLASS(*JAVA : 'java.lang.String' ) D J_KeyID S O CLASS(*JAVA : 'java.lang.String' ) D J_UnEncrypted S O CLASS(*JAVA : 'java.lang.String' )

‚* Java object of class ReturnObject in package com.sbux.crypto.common

    D ReturnObjectObj...
D S O CLASS(*JAVA: 'com.sbux.crypto.comm+
    D                                     on.ReturnObject' )

‚*=====================================================================
    ‚* Mainline
‚*=====================================================================

     /Free
      If CryptoObject <> Initialized;
        CipherHandlerObj = CipherHandlerObjCtor();
        ReturnObjectObj = ReturnObjectObjCtor;

        In *Lock AccessCtl;
        Unlock AccessCtl;

        Provider = StringC(%Trim(SrvProvider));
        User     = StringC(%Trim(User_Name));
        PassWord = StringC(%Trim(Pass_Word));

        CALLP registerAccessCredentials( cipherHandlerObj :
                                                 Provider :
                                                     User :
                                                 PassWord ) ;

        CryptoObject = Initialized;
        Out Initialization;

      EndIf;

      J_AlgID       = StringC(%Trim(AlgID));
      J_KeyID       = StringC(%Trim(KeyID));
      J_Unencrypted = StringC(%TrimR(UnEncryptedStr));

      EncryptRet = Encrypt( CipherHandlerObj :
                                     J_AlgID :
                                     J_KeyID :
                               J_Unencrypted );

      GetReturnStringValueRet =
          GetReturnStringValue(EncryptRet);

      If getReturnStringValueRet <> *NULL;
          Return GetBytes(getReturnStringValueRet);

      Else;

          getReturnCodeRet = getReturnCode( EncryptRet );
          getReturnMessageRet = getReturnMessage( EncryptRet );

             If getReturnMessageRet <>  *NULL;
                 ReturnMessage = getBytes(getReturnMessageRet);
             EndIF;

          Return NotEncrypted + ' ' + %Trim(ReturnMessage);
      EndIf;

     /End-Free
    P $Encrypt        E






VENKAT REDDY



As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.