While I call JNI method on SWT, crash occured

There are C++ codes for serial port communication and mathematical computations. I call this C++ code with JNI on SWT. I sometimes get below error and exit the program. how can I solve this problem. My system is 64 bit Ubuntu.
SIGSEGV (0xb) at pc=0x004d67a0, pid=8090, tid=2526133136
# Java VM: Java HotSpot(TM) Server VM (1.5.0_12-b04 mixed mode)
# Problematic frame:
# C [libpthread.so.0+0x77a0]

how can I solve this problem.Find the pointer bugs in your code and fix them.

Similar Messages

  • Error calling JNI method

    Hello Everyone,
    I´m trying to call a method wich is inside a DDL by JNI. This works fine in a Java console application. However, this call doesn´t work when i put this operation in a web apllication and deploy in a weblogic server. I´ve already put the dll path in the PATH variable but it didn´t work. When I debug the application, the DLL can be loaded but i call the native method a error happens and a get the following message:
    java.lang.UnsatisfiedLinkError: criptografa
         at com.tim.util.cripto.ACC_Cripto.criptografa(Native Method)
    Why does it work when I use a java console application ?
    Thanks for help
    Rodrigo Lopes

    I see yere points but what I see on linux is it makes it to the constructor of the Java object and somewhere afterwards it bails out, the Java app does work alone. It appears to have problems initializing the JFrame, could there be a problem with the Java inheritance when a JVM is invoked throurgh native invocation??
    Here's some of the Java stuff
    public class Framework extends WindowAdapter {
        public int numWindows = 0;
        private Point lastLocation = null;
        private int maxX = 500;
        private int maxY = 500;
        public Framework() {
            System.out.println("JAVA Framework cnst");//GETTING HERE
            makeNewWindow();
        public void makeNewWindow() {
            System.out.println("JAVA makeWindow"); //GETTING HERE
            JFrame frame = new MyFrame(this); //NOT GETTING HERE!!!!!!!!!
            numWindows++;
            System.out.println("Number of windows: " + numWindows);
            System.out.println("Frame location: " + lastLocation);
            frame.setVisible(true);
            System.out.println("Post Java set frame visible");
        public static void main(String[] args) {
        System.out.println("Main method in Framework");
            Framework framework = new Framework();//GETTING HERE
    class MyFrame extends JFrame {
        protected Dimension defaultSize = new Dimension(200, 200);
        protected Framework framework = null;
        public MyFrame(Framework controller) {
            super("New Frame");
            System.out.println("MyFrame cnst ");//NOT GETTING HERE!!!!!!
            framework = controller;
            setDefaultCloseOperation(DISPOSE_ON_CLOSE);
            addWindowListener(framework);
            JMenu menu = new JMenu("Window");
            menu.setMnemonic(KeyEvent.VK_W);
           setSize(defaultSize);
    }

  • Error call JNI method

    In call native method print in sign applet got following error:
    java.lang.UnsatisfiedLinkError: LabelPrinter.print Possible causes: If you are trying to use J/Direct (@dll.import), check your compiler version (for JVC, requires 4336 or greater.) If you are trying to use RNI, there are new requirements: see documentation.
    at LabelPrinter.print (LabelPrinter.java)
    at LabelPrinter.start (LabelPrinter.java:110)
    at com/ms/applet/AppletPanel.securedCall0 (AppletPanel.java)
    at com/ms/applet/AppletPanel.securedCall (AppletPanel.java)
    at com/ms/applet/AppletPanel.processSentEvent (AppletPanel.java)
    at com/ms/applet/AppletPanel.run (AppletPanel.java)
    at java/lang/Thread.run (Thread.java)
    I not using J/Direct or RNI.
    Any ideas?
    Thanks
    Carlo Cerqueira

    This could be a matter of incorrect case in the Method or library you are calling out to - or it could be that the DLL is not found - are you specifying the full path to it on the client system?

  • UnsatisfiedLinkError while calling a JNI Method

    Hi everyone,
    I have been struggling with this problem for two weeks now. I have a third party SDK that provides JNI library and all i need to do is implement the SDK, load the JNI library they have provided, and call the JNI methods. I was successfully able to load the JNI library and call the JNI methods when i don't put the classes in the package. But when i put the classes in a package then the library gets loaded successfully but an unsatisfiedLinkError occurs when calling the JNI methods. Please help!!! Please remember that the JNI library is provided by the third party vendor and I don't need to write the C/C++ code or call javah to create a .h file and then a c/c++ file.
    This is the error i get:
    Exception in thread "main" java.lang.UnsatisfiedLinkError: ss.tts.JNILayer.InitDFTTSEngineEx3(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[I[I)V
         at ss.tts.JNILayer.InitDFTTSEngineEx3(Native Method)
         at ss.tts.Speech.test(Speech.java:854)
         at ss.tts.SSMain.main(SSMain.java:13)
    The three classes are SSMain, Speech, and JNILayer. JNILayer has the jni methods, speech calls the jni method, and SSMain is main class.
    Thank you in advance.

    which ever class which contains the "InitDFTTSEngineEx3" method. should not be altered, even its package should not be altered.[same for other class which has the native method declared in them]
    because in native code jni method signatures will be based on the java class's fully qualified name.
    so when you change the package the FQN will change and no matching method for this
    ss.tts.JNILayer.InitDFTTSEngineEx3(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[I[I)V
    will be found in native code.
    i hope u understood.

  • Unusual  NoSuchMethodError  thrown by GetMethodID  while making a JNI call

    Hi All,
    I am using Java 1.6 on solaris and I am calling a method of a java class from a c program. As part of JNI procedure to call this java method, I sometimes get NoSuchMethodError thrown by Jni's GetMethodID which I will be calling before CallVoidMethodV. Strange thing is , I don't get this error every time. My program frequently invokes a java method from c program based on some events and at certain times I get this error. Any input on this problem will be really helpful.
    Regards
    Prem

    As one guess, a C memory bug.
    Such bugs can cause almost any sort of behavior. If you see crashes then that would insure it. But it could occur because the memory bug represents deterministic behavior so it only occurs when a specific execution path is taken.
    Of course there could be some other context, for example if you are using class loaders and relying on different versions of code then it could be getting the older version.

  • Error while calling a method on Bean (EJB 3.0)

    I am getting an error while calling a method on EJB. I am using EJB3.0 and my bean is getting properly deployed(i am sure b'cos i can see the successfullly deployed message). Can any body help me
    Error is -->
    Error while destroying resource :An I/O error has occured while flushing the output - Exception: java.io.IOException: An established connection was aborted by the software in your host machine
    Stack Trace:
    java.io.IOException: An established connection was aborted by the software in your host machine
    at sun.nio.ch.SocketDispatcher.write0(Native Method)
    at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:33)
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:104)
    at sun.nio.ch.IOUtil.write(IOUtil.java:75)
    at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:302)
    at com.sun.enterprise.server.ss.provider.ASOutputStream.write(ASOutputStream.java:138)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
    at org.postgresql.PG_Stream.flush(PG_Stream.java:352)
    at org.postgresql.core.QueryExecutor.sendQuery(QueryExecutor.java:159)
    at org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:70)
    at org.postgresql.jdbc1.AbstractJdbc1Connection.ExecSQL(AbstractJdbc1Connection.java:482)
    at org.postgresql.jdbc1.AbstractJdbc1Connection.ExecSQL(AbstractJdbc1Connection.java:461)
    at org.postgresql.jdbc1.AbstractJdbc1Connection.rollback(AbstractJdbc1Connection.java:1031)
    at org.postgresql.jdbc2.optional.PooledConnectionImpl$ConnectionHandler.invoke(PooledConnectionImpl.java:223)
    at $Proxy34.close(Unknown Source)
    at com.sun.gjc.spi.ManagedConnection.destroy(ManagedConnection.java:274)
    at com.sun.enterprise.resource.LocalTxConnectorAllocator.destroyResource(LocalTxConnectorAllocator.java:103)
    at com.sun.enterprise.resource.AbstractResourcePool.destroyResource(AbstractResourcePool.java:603)
    at com.sun.enterprise.resource.AbstractResourcePool.resourceErrorOccurred(AbstractResourcePool.java:713)
    at com.sun.enterprise.resource.PoolManagerImpl.putbackResourceToPool(PoolManagerImpl.java:424)
    at com.sun.enterprise.resource.PoolManagerImpl.resourceClosed(PoolManagerImpl.java:393)
    at com.sun.enterprise.resource.LocalTxConnectionEventListener.connectionClosed(LocalTxConnectionEventListener.java:69)
    at com.sun.gjc.spi.ManagedConnection.connectionClosed(ManagedConnection.java:618)
    at com.sun.gjc.spi.ConnectionHolder.close(ConnectionHolder.java:163)
    at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.closeDatasourceConnection(DatabaseAccessor.java:379)
    at oracle.toplink.essentials.internal.databaseaccess.DatasourceAccessor.closeConnection(DatasourceAccessor.java:367)
    at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.closeConnection(DatabaseAccessor.java:402)
    at oracle.toplink.essentials.internal.databaseaccess.DatasourceAccessor.afterJTSTransaction(DatasourceAccessor.java:100)
    at oracle.toplink.essentials.threetier.ClientSession.afterTransaction(ClientSession.java:104)
    at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.afterTransaction(UnitOfWorkImpl.java:1816)
    at oracle.toplink.essentials.transaction.AbstractSynchronizationListener.afterCompletion(AbstractSynchronizationListener.java:161)
    at oracle.toplink.essentials.transaction.JTASynchronizationListener.afterCompletion(JTASynchronizationListener.java:87)
    at com.sun.ejb.containers.ContainerSynchronization.afterCompletion(ContainerSynchronization.java:174)
    at com.sun.enterprise.distributedtx.J2EETransaction.commit(J2EETransaction.java:467)
    at com.sun.enterprise.distributedtx.J2EETransactionManagerOpt.commit(J2EETransactionManagerOpt.java:357)
    at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:3653)
    at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3431)
    at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1247)
    at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:197)
    at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:110)
    at $Proxy84.addDepartment(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:121)
    at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:650)
    at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:193)
    at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1705)
    at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1565)
    at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:947)
    at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:178)
    at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:717)
    at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.dispatch(SocketOrChannelConnectionImpl.java:473)
    at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.doWork(SocketOrChannelConnectionImpl.java:1270)
    at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:479)
    End of Stack Trace
    |#]
    RAR5035:Unexpected exception while destroying resource. To get exception stack, please change log level to FINE.
    EJB5018: An exception was thrown during an ejb invocation on [DepartmentSessionBean]
    javax.ejb.EJBException: Unable to complete container-managed transaction.; nested exception is: javax.transaction.SystemException
    javax.transaction.SystemException
    at com.sun.enterprise.distributedtx.J2EETransaction.commit(J2EETransaction.java:452)
    at com.sun.enterprise.distributedtx.J2EETransactionManagerOpt.commit(J2EETransactionManagerOpt.java:357)
    at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:3653)
    at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3431)
    at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1247)
    at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:197)
    at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:110)
    at $Proxy84.addDepartment(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    Means theres an error in XML/ABAP conversion probably due a syntax error...
    Regards
    Juan

  • Operation not found error while calling AM methods from managed bean

    Hi,
    operation not found error while calling AM methods from managed bean.
    written a method with two parameters in AM.
    exposed the method in AM client interface
    in the page bindings added the method in method action ..left empty in the value fields of the parameters.
    calling the method from managed bean like below
    String userNameVal = (String)userName.getValue();
    String passwordVal = (String)password.getValue();
    OperationBinding operationBinding =
    ADFUtils.findOperation("verifyLogin");
    operationBinding.getParamsMap().put("userName",userNameVal);
    operationBinding.getParamsMap().put("password",passwordVal);
    operationBinding.execute();
    i am getting operation verifyLogin not found error.Please suggest me something to do.
    Thanks
    Satya

    Hi vlsn,
    Can you try with the below code
    // in your backing bean
    OperationBinding operation = bindings.getOperationBinding("verifyLogin");
    //Put your both parameters here
    operation.getParamsMap().put("parameter_name1", parameterValue1);
    operation.getParamsMap().put("parameter_name2", parameterValue2);
    operation.execute();
    if (operation.getResult() != null) {
    Boolean result = (Boolean) operation.getResult();
    and share the result.
    regards,
    Rajan

  • Error while updating data using session and call transaction method

    Hi all,
        i have to update data using MM01 transaction from flat file to database.i have used both session method and call transaction method to do that.in both the methods data has been transferred from internal tables to screens but while updating the data that is by clicking the ok-code at the end of the transaction iam getting a dialogue box stating
       SAP EXPRESS DOCUMENT "UPDATE WAS TERMINATED" RECEIVED FROM AUTHOR "SAP".
      please tell whether the problem lies and solution for that.
                                       thanks and regards.

    hi,
    check your recording.check whether u saved your material no in recording or not.
    once again record the transacton mm01.
           MATNR LIKE RMMG1-MATNR,
           MBRSH LIKE RMMG1-MBRSH,
           MTART LIKE RMMG1-MTART,
           MAKTX LIKE MAKT-MAKTX,
           MEINS LIKE MARA-MEINS,
           MATKL LIKE MARA-MATKL,
           BISMT LIKE MARA-BISMT,
           EXTWG LIKE MARA-EXTWG,
    these are the fields which u have to take in internal table.
    this is the record which i took in my flatfile.use filetype as asc and hasfieldseperator as 'X'.
    SUDHU-6     R     ROH     MATSUDHU     "     001     7890     AA
    i did the same.but i didn't get any error.

  • JNI - core dump - internal error on linux after calling Java method

    I'm getting a core dump after calling athe main statric method using JNNI.
    On linux.
    I can get the class id correcttly but when I attempt to call the method it craches with an internal error , anyone know why it would crash instead of just not work.
    if(cls)
        main_methodID = env->GetStaticMethodID(cls, "main", "([Ljava/lang/String;)V");
           printf("Class Found Successfully\n");
      else
        printf ( "cls not found\n");
        return 0;
      if(main_methodID)
              jstring first_str = env->NewStringUTF("The First String");//create string
              jobjectArray args = (jobjectArray)env->NewObjectArray(1,env->FindClass("java/lang/String"), first_str);//new array with 2 elements
                   env->SetObjectArrayElement(args, 2, first_str);//insert the second string into index 1 of the array
              jstring second_str = env->NewStringUTF("The Second String");//create string
              env->SetObjectArrayElement(args, 1, second_str);//insert the second string into index 1 of the array
         env->CallStaticVoidMethod(cls, main_methodID, args);//pass the array to the Java main method
                                  The JAVA method is
      public static void main(String[] args) {
        System.out.println("Main method in Framework");
            Framework framework = new Framework();
                                 

    I see yere points but what I see on linux is it makes it to the constructor of the Java object and somewhere afterwards it bails out, the Java app does work alone. It appears to have problems initializing the JFrame, could there be a problem with the Java inheritance when a JVM is invoked throurgh native invocation??
    Here's some of the Java stuff
    public class Framework extends WindowAdapter {
        public int numWindows = 0;
        private Point lastLocation = null;
        private int maxX = 500;
        private int maxY = 500;
        public Framework() {
            System.out.println("JAVA Framework cnst");//GETTING HERE
            makeNewWindow();
        public void makeNewWindow() {
            System.out.println("JAVA makeWindow"); //GETTING HERE
            JFrame frame = new MyFrame(this); //NOT GETTING HERE!!!!!!!!!
            numWindows++;
            System.out.println("Number of windows: " + numWindows);
            System.out.println("Frame location: " + lastLocation);
            frame.setVisible(true);
            System.out.println("Post Java set frame visible");
        public static void main(String[] args) {
        System.out.println("Main method in Framework");
            Framework framework = new Framework();//GETTING HERE
    class MyFrame extends JFrame {
        protected Dimension defaultSize = new Dimension(200, 200);
        protected Framework framework = null;
        public MyFrame(Framework controller) {
            super("New Frame");
            System.out.println("MyFrame cnst ");//NOT GETTING HERE!!!!!!
            framework = controller;
            setDefaultCloseOperation(DISPOSE_ON_CLOSE);
            addWindowListener(framework);
            JMenu menu = new JMenu("Window");
            menu.setMnemonic(KeyEvent.VK_W);
           setSize(defaultSize);
    }

  • Error while calling Proxy Method

    Hi All,
    I am trying to call aproxy method to send some information.
    However it raises an exception...The details of the exception are as follows:
    CX_SXML_PARSE_ERROR:Exception CX_SOAP_ROOT occurred (program: CL_SOAP_RUNTIME_ROOT==========CP, include: CL_SOAP_RUNTIME_ROOT==========CM004, line: 110)..Exception CX_SOAP_ROOT occurred (program: CL_SOAP_MESSAGE_NEW===========CP,include: CL_SOAP_MESSAGE_NEW===========CM00R, line: 39)..Error while parsing an XML stream: 'BOM / charset detection failed'.
    Any idea of what could be the problem...
    NOTE: I had generated the Proxy using the WSDL file...

    Hi Hanife,
    My report using the client proxy failed with the error 'BOM / charset detection failed' while trying to pass string value to the generated variable.
    I solved this issue by converting the string to an xstring either by function module SCMS_STRING_TO_XSTRING or xslt function call transformation ID
    After that the proxy call was successful. Test if the webservice could deal with the result created by the proxy runtime have not been done yet.
    Hope this helps.
    Kind regards,
    Jochen

  • Error while using  CALL METHOD

    I am getting a error while using CALL METHOD cl_ssf_xsf_utilities=>get_bds_graphic_as_bmp
    The error is class "CL_SSF_XSF_UTILITIES is unknown. How to correct that?? please help I am new to object oriented programming??
    Edited by: priya singh on Nov 18, 2008 2:14 PM

    This is my code.
    REPORT ZSAVE_FUNCTION .
    D A T A D E C L A R A T I O N S *
    DATA: v_bitmap TYPE xstring, "graphic data
    v_file TYPE string, "file name
    v_length TYPE i. "length of binary file
    DATA: BEGIN OF it_bitmaps OCCURS 0,
    object TYPE tdobjectgr, "object
    name TYPE tdobname, "name
    id TYPE tdidgr, "id
    tdbtype TYPE tdbtype, "graphic type
    END OF it_bitmaps.
    DATA: itab TYPE TABLE OF x.
    *class cl_ssf_xsf_utilities definition.
        public section.
      methods : get_bds_graphic_as_bmp
    DATA: L_GRAPHIC_XSTR TYPE XSTRING.
    *method cl_ssf_xsf_utilities
    S E L E C T I O N - S C R E E N *
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
    PARAMETERS: p_object TYPE tdobjectgr, "object
    p_btype TYPE tdbtype, "graphic type
    p_name TYPE tdobname, "name
    p_id TYPE tdidgr. "id
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.
    PARAMETERS: p_file TYPE rlgrap-filename. "file name
    SELECTION-SCREEN END OF BLOCK b2.
    *A T S E L E C T I O N - S C R E E N O N V A L U E - R E Q U E S T *
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_name.
    *-- Creating f4 help for the parameters
    PERFORM get_f4_object_name.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
    *-- Getting the current value entered
    PERFORM get_current_value.
    *-- Value Request Functionality For Input File Name
    PERFORM f4_value_request.
    S T A R T O F - S E L E C T I O N *
    START-OF-SELECTION.
    *--Getting the graphic as a BMP file
    PERFORM get_graphic_bmp.
    *--Convert the Xstring format to binary format
    PERFORM convert_to_binary.
    *--Download the graphic
    PERFORM download_graphic.
    *& Form get_current_value
    Get the current file path entered
    FORM get_current_value .
    DATA: BEGIN OF li_dynp_value_tab OCCURS 0.
    INCLUDE STRUCTURE dynpread.
    DATA: END OF li_dynp_value_tab.
    DATA: l_program_name LIKE d020s-prog,
    l_dynpro_number LIKE d020s-dnum.
    l_program_name = sy-cprog.
    l_dynpro_number = sy-dynnr.
    REFRESH li_dynp_value_tab.
    li_dynp_value_tab-fieldname = 'P_FILE'.
    APPEND li_dynp_value_tab.
    CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
    dyname = l_program_name
    dynumb = l_dynpro_number
    TABLES
    dynpfields = li_dynp_value_tab
    EXCEPTIONS
    invalid_abapworkarea = 04
    invalid_dynprofield = 08
    invalid_dynproname = 12
    invalid_dynpronummer = 16
    invalid_request = 20
    no_fielddescription = 24
    undefind_error = 28.
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    READ TABLE li_dynp_value_tab INDEX 1.
    p_file = li_dynp_value_tab-fieldvalue.
    ENDFORM. " get_current_value
    *& Form f4_value_request
    Provinding the f4 for the given path
    FORM f4_value_request .
    *-- if the file is to be downloaded to presentation server
    CALL FUNCTION '/SAPDMC/LSM_F4_FRONTEND_FILE'
    EXPORTING
    pathname = p_file
    CHANGING
    pathfile = p_file
    EXCEPTIONS
    canceled_by_user = 1
    system_error = 2
    OTHERS = 3.
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    ENDFORM. " f4_value_request
    *& Form GET_GRAPHIC_BMP
    Get the graphic as a BMP file
    FORM get_graphic_bmp.
    CALL METHOD cl_ssf_xsf_utilities=>get_bds_graphic_as_bmp
    EXPORTING
    p_object = p_object
    p_name = p_name
    p_id = p_id
    p_btype = p_btype
    RECEIVING
    p_bmp = L_GRAPHIC_XSTR
    EXCEPTIONS
    not_found = 1
    internal_error = 2
    OTHERS = 3.
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    ENDFORM. " GET_GRAPHIC_BMP
    *& Form CONVERT_TO_BINARY
    Converting the xstring to binary format
    FORM convert_to_binary .
    CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
    EXPORTING
    buffer = v_bitmap
    IMPORTING
    output_length = v_length
    TABLES
    binary_tab = itab.
    ENDFORM. " CONVERT_TO_BINARY
    *& Form DOWNLOAD_GRAPHIC
    Download the graphic
    FORM download_graphic .
    v_file = p_file.
    CONCATENATE p_file '.BMP' INTO v_file.
    CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
    bin_filesize = v_length
    filename = v_file
    filetype = 'BIN'
    TABLES
    data_tab = itab
    EXCEPTIONS
    file_write_error = 1
    no_batch = 2
    gui_refuse_filetransfer = 3
    invalid_type = 4
    no_authority = 5
    unknown_error = 6
    header_not_allowed = 7
    separator_not_allowed = 8
    filesize_not_allowed = 9
    header_too_long = 10
    dp_error_create = 11
    dp_error_send = 12
    dp_error_write = 13
    unknown_dp_error = 14
    access_denied = 15
    dp_out_of_memory = 16
    disk_full = 17
    dp_timeout = 18
    file_not_found = 19
    dataprovider_exception = 20
    control_flush_error = 21
    OTHERS = 22.
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    ENDFORM. " DOWNLOAD_GRAPHIC
    *& Form GET_F4_OBJECT_NAME
    Get F4 values for object names
    FORM get_f4_object_name .
    DATA: dynpfld_mapping TYPE STANDARD TABLE OF dselc WITH HEADER LINE,
    return_tab TYPE STANDARD TABLE OF ddshretval WITH HEADER LINE.
    *--Selecting the values to be provided as f4 help
    SELECT tdobject
    tdname
    tdid
    tdbtype
    FROM stxbitmaps
    INTO TABLE it_bitmaps.
    *--To update the values in the remaining fields
    dynpfld_mapping-fldname = 'F0001'.
    dynpfld_mapping-dyfldname = 'P_OBJECT'.
    APPEND dynpfld_mapping.
    dynpfld_mapping-fldname = 'F0002'.
    dynpfld_mapping-dyfldname = 'P_NAME'.
    APPEND dynpfld_mapping.
    dynpfld_mapping-fldname = 'F0003'.
    dynpfld_mapping-dyfldname = 'P_ID'.
    APPEND dynpfld_mapping.
    dynpfld_mapping-fldname = 'F0004'.
    dynpfld_mapping-dyfldname = 'P_BTYPE'.
    APPEND dynpfld_mapping.
    *--Providing f4 help with the selected values
    CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
    retfield = 'TDOBNAME'
    dynpprog = sy-repid
    dynpnr = sy-dynnr
    dynprofield = 'P_NAME'
    value_org = 'S'
    TABLES
    value_tab = it_bitmaps
    dynpfld_mapping = dynpfld_mapping
    EXCEPTIONS
    parameter_error = 1
    no_values_found = 2
    OTHERS = 3.
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    ENDFORM. " GET_F4_OBJECT_NAME

  • JNI method call performance

    Hi ,
    I need to call C++ from java.
    I want to have 10 methods that return primitives and call each one after the other.
    Is it better performance (beside the general fact that 10 method calls is more time then 1) to call one method and return a structure of primitives ?
    Will it be much worse performance then calling this methods if they were written in java and not in C++ ?

    You can create a Java object in JNI (you can use an Object array, a String array if you have only Strings, or a true Java class object if you really do not like referring to fields by indexes) and return it. It is a laborious task, but not a complicated issue.
    Performance issues: the java.util.BigInteger was programmed in JNI in earlier versions of the JDK. Today the JIT compiler produces acceptable code, so java.util.BigInteger does not use JNI code anymore - it is Pure Java. It is good enough to produce RSA digital signatures.

  • Calling a pure C function from JNI method

    Is it posible to call a pure C function from a JNI method.?
    I am communicating with an external device whose API is written in C language.
    Would it work this way
    If I declare empty native methods in Java and those methods in C call pure C methods?
    Thank You...

    Hello,
    I have a similar problem and I posted it here http://www.velocityreviews.com/forums/t724826-jni-calling-an-outside-function-in-the-c-file-which-is-being-called-by-the-java-file.html. If you can answer the question, it would greatly help me.
    Thanks
    Nick

  • AutomationException while calling a method

    Hi all,
    I've got a problem accessing a COM/DCOM component in a Win2k box (Advanced Server)
    with jcom. I configured the server and client described in the "JSP to COM" example.
    The only difference: I don't want to access the excel sheet and I don't use a jsp
    to execute.
    I used the java2com.exe to create the proxies from my dll ScriptableUniversalTransAgt.dll.
    But when I try to call a method on the dll via Java, I get the exception:
    AutomationException: 0x80070005 - General access denied error in 'Invoke'
         at com.bea.jcom.Rpc.a(Rpc.java)
         at com.bea.jcom.be.a(be.java)
         at com.bea.jcom.StdObjRef.a(StdObjRef.java)
         at com.bea.jcom.Dispatch.vtblInvoke(Dispatch.java)
         at de.conet.galileo.suta.IScriptableUniversalTransAgentProxy.setHcmName(IScriptableUniversalTransAgentProxy.java:271)
         at de.conet.galileo.suta.ScriptableUniversalTransAgent.setHcmName(ScriptableUniversalTransAgent.java:336)
         at de.conet.galileo.SUTATest.start(SUTATest.java:33)
         at de.conet.galileo.SUTATest.main(SUTATest.java:27)
    I checked everything on the server, the user has all rights he needs but it doesn't
    work. In the eventlog of the server I can see that the login was successful.
    The attachment contains some log files and my program with the dll.
    Maybe someone can help me?
    Thanks
    Michael
    [src.zip]

    "Jeff Muller" <[email protected]> wrote in message
    news:[email protected]...
    Yeah, now I'm getting this error on code that worked two days ago.
    javax.servlet.ServletException: Unable to initialize servlet:
    AutomationExceptio
    n: 0x80070005 - General access denied error, status: Getting instance, and
    calli
    ng initialize.
    at com.teloquent.MyApp.MyServlet.initCOMObj(MyServlet.
    java:308)
    at com.teloquent.MyApp.MyServlet.init(MyServlet.java:8
    1)
    at
    weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubIm
    pl.java:700)
    at
    weblogic.servlet.internal.ServletStubImpl.createInstances(ServletStub
    Impl.java:643)
    at
    weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubI
    mpl.java:588)
    at
    weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.
    java:368)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:242)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:200)
    at
    weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
    rvletContext.java:2495)
    at
    weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
    pl.java:2204)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
    >
    ... but then again, I don't expect any response here.
    "Michael" <[email protected]> wrote in message
    news:[email protected]...
    Hi all,
    I've got a problem accessing a COM/DCOM component in a Win2k box
    (Advanced
    Server)
    with jcom. I configured the server and client described in the "JSP toCOM" example.
    The only difference: I don't want to access the excel sheet and I don'tuse a jsp
    to execute.
    I used the java2com.exe to create the proxies from my dllScriptableUniversalTransAgt.dll.
    But when I try to call a method on the dll via Java, I get the
    exception:
    >>
    AutomationException: 0x80070005 - General access denied error in'Invoke'
    at com.bea.jcom.Rpc.a(Rpc.java)
    at com.bea.jcom.be.a(be.java)
    at com.bea.jcom.StdObjRef.a(StdObjRef.java)
    at com.bea.jcom.Dispatch.vtblInvoke(Dispatch.java)
    atde.conet.galileo.suta.IScriptableUniversalTransAgentProxy.setHcmName(IScript
    ableUniversalTransAgentProxy.java:271)
    at
    de.conet.galileo.suta.ScriptableUniversalTransAgent.setHcmName(ScriptableUni
    versalTransAgent.java:336)
    at de.conet.galileo.SUTATest.start(SUTATest.java:33)
    at de.conet.galileo.SUTATest.main(SUTATest.java:27)
    I checked everything on the server, the user has all rights he needs butit doesn't
    work. In the eventlog of the server I can see that the login wassuccessful.
    The attachment contains some log files and my program with the dll.
    Maybe someone can help me?
    Thanks
    Michael

  • Using Intel's MKL C++ Library in JNI causes JVM to Crash at GC

    We're using JDK 1.6.0_07 on RedHat 4 (32-bit) and RedHat 5 (32-bit JVM on 64-bit processor). Our app uses JNI to access Intel's Math Kernel Library (MKL) for optimized algorithms; however, it crashes in libjvm.so/libpthread.so in the GC thread once the garbage collector runs (usually pretty quick).
    The MKL library uses it's own threading model built on pthreads. So, the basic flow goes like this:
    A Java GUI spawns a separate thread to:
    1) Call native method to initialize settings and allocate buffers
    2) Call native method to load data (using mapped buffers)
    3) Call native method to process data
    4) Call native method to unload data back into mapped buffers
    It seems like the MKL threading model (parallel processing) is causing issues with the JVM. Is there a safe way to call a MT native method? BTW, the native code never calls back into Java.

    Crashes normally indicate
    1. A problem with pointers in your code
    2. Incorrect usage of the library that you are calling (which cause a problem with pointers.)
    3. Incorrect usage of JNI.
    C/C++ pointer problem can cause failure much latter than the actual point where the error occurred. Much later in this case would be the garbage collector.
    Might or might not help....as far as I can recall, a recent thread had a gc problem because the JNI code was constructing java objects incorrectly.

Maybe you are looking for

  • G/L accounts or cost elements for maintenance order

    Hi, Can anybody explain the following. 1- What are the applications of inventory and consumption cost element / GL accounts, while posting goods issuance, good receipt and maintain service entry sheet with reference of maintenance orders' reservation

  • Can't Print from various Applications

    Safari Application will print, Appleworks, Excel, Word, PowerPoint will not print. E-Mail will. I have a HP Business Jet 1200 v3.3 driver and a HP Color LaserJet 3500 with the most current drivers. I have reset the printer settings, run a program Dis

  • File-IDoc scnario : Error in call adapter

    Hi Experts, I have developed File to IDoc scenario. And getting the following error in "Call Adapter" pipeline step. I have mapped the control record values in IDoc like Sender Partner, no, port and same for receiver. Have created: In XI: RFC destina

  • How finder shares multiple images at once and how can I use this in my app?

    You can share multiple images (or other documents) at once in finder. It's probably possible to make an app in Xcode that does exactly the same thing as well, but I don't know how. I really want to because I'm a bit curios. I would love if there are

  • Delete planning functions messages

    Hi Experts. I have an application on WAD. When I execute a planning function on it, I get the result messages wich I don't want to be seen on the web application. I have read a thread on this forum but I'm not sure if this can be applied on planning