|
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 mailing list archive is Copyright 1997-2025 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.