GUI crashes when calling native code..

Hi,
I have interfaced to an existing C program using the Java Native Interface and I am controlling the C program using a GUI. The problem is that everytime I click on the button to call the native method, the GUI crashes... The bizarre thing is that the C code seems to actually execute properly and no exceptions are thrown..
Anyone come across this problem?
/john

Hi,
Thanks for the replies...
The GUI completely disappears. No error file is generated. No exceptions are thrown. Here it is in more detail..
The C code is invoked using the java native interface. The C code converts a MIDI file to a text file. It is normally run in DOS and accepts two parameters. You would run it in DOS normally as follows:
mf2t Example1.mid Example1.txt.
In the GUI I select the MIDI file and specify the output file (Example1.txt). I then pass these two parameters to the C code. The C code originally used argc and argv to accept the parameters. I replaced these with "fileArray" and "parameter"... "mf2t" replaces "main" in the native code...
On the java side the code looks like this:
static public native boolean mf2t(String s6, String s7);
public String infile; // Input MIDI file
public String textOut; // Output text file
private void MIDIButtonActionPerformed(java.awt.event.ActionEvent evt) {
Object target=evt.getSource();
if(target == MIDIButton) {
if(mf2t(infile,textOut)){
InfoLabel.setText("MIDI to text conversion complete");
The code is built on the C side into a DLL using MS Visual Studio.
On the C side the code looks something like this:
static char *fileArray[5];
static int argument=3;
static char midiArray[25];
static char txtArray[25];
void mf2t(int argument,char * fileArray[]);
// Entry point to native C code is here
JNIEXPORT jboolean JNICALL
Java_MainWindow_mf2t (JNIEnv *env, jobject j1, jstring midi, jstring txt)
const jbyte *midiFile;
const jbyte *txtFile;
midiFile=(*env)->GetStringUTFChars(env,midi, NULL);
txtFile=(*env)->GetStringUTFChars(env,txt, NULL);
// The lines above just convert the java string into a C equivalent..
strcpy(midiArray,midiFile);
strcpy(txtArray,txtFile);
fileArray[0]="mf2t.exe"; // Here I get fileArray to point to the converted strings
fileArray[1]=midiArray;
fileArray[2]=txtArray;
mf2t(argument,fileArray); // Then I pass this to a native method
(*env)->ReleaseStringUTFChars(env,midi, midiFile);
(*env)->ReleaseStringUTFChars(env,txt, txtFile);
return 1;
void mf2t(int argument,char * fileArray[]){
// native code in here
I think it may have something to do with threads.. I'm not sure though.. It's impossible to know whats going on in the C code when the GUI crashes. If anything looks strange it's because I left out some code here for the sake of brevity... Still if you see anything that stands out let me know..
Thanks,
John

Similar Messages

  • Dreamweaver crashes when loading external code or files.

    Dreamwever CC crashes when I paste code retrieved from an external source (hubspot template, html source files, etc).
    If the code contains live links to certain servers (jquery on Google, etc) then Dreamweaver takes a lot to load and often crashes.
    I have a very powerful PC config, so the hardware is NOT responsible for this behavior.
    Here is what I did so far:
    - I applied the register fix (ResolveRemoteURLToIPAddress = FALSE)
    - unchecked "Enable Related Files"
    - unchecked View > Style Rendering > Display Styles
    - unchecked "Automatically Sync Remote Files"
    - blocked Dreamweaver from accessing the net in my firewall
    The damn thing is still crashing and the only solution is to disable / manually remove the internet cable from the PC.
    Any help or advice is highly appreciated.

    Try putting links to external scripts, servers, etc... into a server-side include.  It works for me.
    Nancy O.

  • Calling native code from Flex

    I was wondering, is there any way to call native code from Flex?
    Currently, we're writing browser plugins in order to call native code from a Flex application. However, it would be nice to be able to call native code directly from Flex, so that we could write it only per-platform, as opposed to currently per-platform-per-browser.

    In general, the sandbox does not allow you to access native code from Flex.
    I believe you can use Merapi, but perhaps only for AIR:
    http://www.merapiproject.net/
    You might be able to code around the Flex sandbox, but it would be a ton of work.
    If this post answers your question or helps, please mark it as such.

  • VM crash when calling crystal report in java (Unix)

    We experience a serious problem when try to develop a crystal report application that run at Sun Solaris 9. Our program is to export pdf from crystal report. The program will always got VM crash when open the crystal report (but it's not 100% happened, it will always happen when we second time open the same report). I got no problem when run my program in the windows XP or another unix machine of Solaris 8. The report path is correct, but don't know why it will crash when open the report. May anyone help on it?
    Below see the system log:
    Jul  8 09:32:05 prospero genunix: [ID 269049 kern.notice] NOTICE: java[23499] at
    tempt to execute non-executable data at 0x0 by uid 65639
    Jul  8 09:33:04 prospero genunix: [ID 269049 kern.notice] NOTICE: java[23720] at
    tempt to execute non-executable data at 0x0 by uid 65639
    Jul  8 09:36:07 prospero genunix: [ID 269049 kern.notice] NOTICE: java[24335] at
    tempt to execute non-executable data at 0x0 by uid 65639
    Below see the java coding and the VM crash message:
    reportDocument = new ReportClientDocument();
    reportDocument.open(mSummaryReportName, 0); <=== always crash here
    String query = " SELECT BRCH_RPT_SUMM.NM_BRIEF_ACC, BRCH_RPT_SUMM.NM_PRAD, BRCH_RPT.DT_VAL_CURR, BRCH_RPT_SUMM.CD_ACC, BRCH_RPT_SUMM.NM_SHRT_ACC, BRCH_RPT_SUMM.IN_FUD_BRCH_WRN, BRCH_RPT_SUMM.CD_BTCH, BRCH_RPT_SUMM.ID_PRSN, BRCH_RPT_SUMM.CD_PRTR, BRCH_RPT_SUMM.IN_BRCH_SPRS " +
    "FROM COMPLIANCE.BRCH_RPT BRCH_RPT INNER JOIN COMPLIANCE.BRCH_RPT_SUMM BRCH_RPT_SUMM ON ((BRCH_RPT.CD_BTCH=BRCH_RPT_SUMM.CD_BTCH) AND (BRCH_RPT.ID_PRSN=BRCH_RPT_SUMM.ID_PRSN)) AND (BRCH_RPT.CD_PRTR=BRCH_RPT_SUMM.CD_PRTR) " +
    " WHERE BRCH_RPT_SUMM.IN_BRCH_SPRS='N' " +
    "AND BRCH_RPT.cd_btch = '" + mBtchCd + "' " +
    "and BRCH_RPT.cd_prtr = '" + mPrtrCd + "' " +
    " and BRCH_RPT.id_prsn = " + mPrsnId;
    Statement statement = mDb.getConnection().createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
    String tableAlias = reportDocument.getDatabaseController().getDatabase().getTables().getTable(0).getAlias();
    ResultSet resultSet = statement.executeQuery(query);
    reportDocument.getDatabaseController().setDataSource(resultSet, tableAlias , "resultsetTable");
    byteArrayInputStream = (ByteArrayInputStream)reportDocument.getPrintOutputController().export(ReportExportFormat.PDF);
    //Use the Java I/O libraries to write the exported content to the file system.
    byteArray = new bytehttp://byteArrayInputStream.available();
    //Create a new file that will contain the exported result.
    file = new File(mReportExportPath);
    fileOutputStream = new FileOutputStream(file);
    byteArrayOutputStream = new ByteArrayOutputStream(byteArrayInputStream.available());
    x = byteArrayInputStream.read(byteArray, 0, byteArrayInputStream.available());
    byteArrayOutputStream.write(byteArray, 0, x);
    byteArrayOutputStream.writeTo(fileOutputStream);
    statement.close();
    resultSet.close();
    byteArrayInputStream.close();
    byteArrayOutputStream.close();
    fileOutputStream.close();
    reportDocument.close();
    An unexpected error has been detected by HotSpot Virtual Machine:
    Internal Error (53484152454432554E54494D450E43505001A8 01), pid=28689, tid=1
    Java VM: Java HotSpot(TM) Server VM (1.5.0_13-b05 mixed mode)
    T H R E A D
    Current thread (0x000386f0): JavaThread "main" threadin_Java, id=1
    Stack: [0xffb7e000,0xffc00000), sp=0xffbfc690, free space=505k
    Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
    V http://libjvm.so+0x70c3c4
    V http://libjvm.so+0x4383b4
    V http://libjvm.so+0x2fbde0
    V http://libjvm.so+0x274bf4
    C http://libthread.so.1+0x15bb4
    C http://libthread.so.1+0xf80c
    C http://libthread.so.1+0xf9bc
    j java.util.HashMap.removeEntryForKey(Ljava/lang/Object;)Ljava/util/HashMap$Entry;+119
    j java.util.HashMap.remove(Ljava/lang/Object;)Ljava/lang/Object;+2
    j com.crystaldecisions.reports.reportdefinition.kv.a(Lcom/crystaldecisions/reports/queryengine/af;Lcom/crystaldecisions/reports/queryengine/af;Z)V+135
    j com.crystaldecisions.reports.reportdefinition.datainterface.g.a(Lcom/crystaldecisions/reports/queryengine/ch;Lcom/crystaldecisions/reports/queryengine/ch;ZZ)V+229
    j com.crystaldecisions.reports.reportdefinition.datainterface.g.a(Lcom/crystaldecisions/reports/queryengine/ch;Lcom/crystaldecisions/reports/queryengine/ch;ZZLcom/crystaldecisions/reports/queryengine/b/w;)V+235
    j com.crystaldecisions.reports.reportdefinition.datainterface.g.a(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Lcom/crystaldecisions/reports/reportdefinition/datainterface/a;)V+682
    j com.crystaldecisions.reports.dataengine.bj.new()V+24
    j com.crystaldecisions.reports.common.as.a(Lcom/crystaldecisions/reports/common/af;)V+96
    j com.crystaldecisions.reports.common.ae.a(Lcom/crystaldecisions/reports/common/l;)V+20
    j com.businessobjects.reports.sdk.b.w.a(Lcom/crystaldecisions/reports/reportdefinition/bi;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)V+207
    j com.businessobjects.reports.sdk.b.w.int(Lcom/crystaldecisions/sdk/occa/report/lib/PropertyBag;Ljava/lang/String;)V+231
    j com.businessobjects.reports.sdk.JRCCommunicationAdapter.request(IILjava/lang/String;Lcom/crystaldecisions/client/helper/ISecurityContext;Lcom/crystaldecisions/xml/serialization/IXMLSerializable;)Lcom/crystaldecisions/proxy/remoteagent/ResultInfo;+3326
    j com.crystaldecisions.proxy.remoteagent.x.a(Lcom/crystaldecisions/client/helper/ISecurityContext;Ljava/lang/String;IILcom/crystaldecisions/xml/serialization/IXMLSerializable;Lcom/crystaldecisions/proxy/remoteagent/j;)Lcom/crystaldecisions/proxy/remoteagent/ResultInfo;+70
    j com.crystaldecisions.proxy.remoteagent.q.a(IILcom/crystaldecisions/xml/serialization/IXMLSerializable;Lcom/crystaldecisions/proxy/remoteagent/j;)Lcom/crystaldecisions/proxy/remoteagent/ResultInfo;+83
    j com.crystaldecisions.sdk.occa.report.application.dd.a(IILcom/crystaldecisions/xml/serialization/IXMLSerializable;)Lcom/crystaldecisions/proxy/remoteagent/ResultInfo;+44
    j com.crystaldecisions.sdk.occa.report.application.DatabaseController.a(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V+284
    j com.crystaldecisions.sdk.occa.report.application.DatabaseController.setDataSource(Ljava/sql/ResultSet;Ljava/lang/String;Ljava/lang/String;)V+5
    j com.crystaldecisions.reports.sdk.DatabaseController.setDataSource(Ljava/sql/ResultSet;Ljava/lang/String;Ljava/lang/String;)V+7
    j com.jpmorgan.awm.jfam.ptc.reporting.AnalysisExporter.exportReport()V+157
    j com.jpmorgan.awm.jfam.ptc.reporting.EODReport.main([Ljava/lang/String;)V+744
    v ~StubRoutines::call_stub
    V http://libjvm.so+0x19b514
    V http://libjvm.so+0x2dd44c
    C java0x222c main0x1164

    According to the documentation for interpreting hotspot logs, the following can be determined from yours:
    "An unexpected error has been detected by HotSpot Virtual Machine:
    Internal Error (53484152454432554E54494D450E43505001A8 01), pid=28689, tid=1
    Java VM: Java HotSpot(TM) Server VM (1.5.0_13-b05 mixed mode)"
    When the HotSpot VM generates an internal error it is referring to a line of code in your application.  The hexidecimal string is encoding the source module and line number where the error occurs.
    "Current thread (0x000386f0): JavaThread "main" threadin_Java, id=1"
    Essentially means that the JavaThread is running interpreted or compiled code when the error occurs.
    The rest of the hotspot identifies what the thread has done up to this point.... even though to you it appears that it fails on the open method, it looks like it is actually failing after the setDataSource method call.
    I would suggest that you look at other logs, ie: application server logs, Solaris message logs, database logs to see if you can identify where things actually fall apart.  The first place to start would be the database connectivity because it appears that is the last thing that gets generated in the log file.

  • VB6 applications crashes when calling C# dll's in production environment

    Hi All,
    I'm basically .NET developer, not much aware of VB language or VB visual Basic 6.0.
    We are trying to work out with VB application running/ using C# dll's. The scenario is like VB exe applications using C# dll's and C# dll's are referenced to VB application using .tlb file.
    In development environment(debug mode) the application looks fine and working as expected. But when the same code is put into production environment VB applications are crashing when pointing to C# method calls. We trying to know the reason but application
    is getting killed. The issue seems to be sporadic and not able to catch in MsgView(debug tool).
    In one more scenario, the VB application is loading C# form and getting data back to VB but when we repeat the same workflow again application is crashing either in 2nd attempt or 3rd attempt.
    Has anybody seen such issue? Any input is welcomed.
    Thanks,
    Shesh

    Hi Shesh.ugare
    Welcome to MSDN.
    I am afraid that these forums donot support VB6, you could refer to this thread:
    Where to post your VB 6 questions
    If this issue regarding VB6 then you could consider posting this issue in these forums below:
    These forums do not support Visual Basic 6, however there are many third-party support sites that do. If you have a VB6-related question please visit these popular forums:
    VB Forums
    VB City
    If not, then you could share more detailed code with us.
    Thanks for your understanding.
    Regards.
    Youjun Tang
    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.
    Click
    HERE to participate the survey.

  • VM crash when calling crystal report in java

    =======
    REPOST
    =======
    We experience a serious problem when try to develop a crystal report application that run at Sun Solaris 10. Our program is to export pdf from crystal report. The program will always got VM crash when open the crystal report or export the crystal report (but it's not 100% happened, it will always happen when we second time open the same report). I got no problem when run my program in the windows XP. May anyone help on it?
    Below see the coding and the VM crash message:
    reportDocument = new ReportClientDocument();
    reportDocument.open(mSummaryReportName, 0);
    String query = " SELECT BRCH_RPT_SUMM.NM_BRIEF_ACC, BRCH_RPT_SUMM.NM_PRAD, BRCH_RPT.DT_VAL_CURR, BRCH_RPT_SUMM.CD_ACC, BRCH_RPT_SUMM.NM_SHRT_ACC, BRCH_RPT_SUMM.IN_FUD_BRCH_WRN, BRCH_RPT_SUMM.CD_BTCH, BRCH_RPT_SUMM.ID_PRSN, BRCH_RPT_SUMM.CD_PRTR, BRCH_RPT_SUMM.IN_BRCH_SPRS " +
    "FROM COMPLIANCE.BRCH_RPT BRCH_RPT INNER JOIN COMPLIANCE.BRCH_RPT_SUMM BRCH_RPT_SUMM ON ((BRCH_RPT.CD_BTCH=BRCH_RPT_SUMM.CD_BTCH) AND (BRCH_RPT.ID_PRSN=BRCH_RPT_SUMM.ID_PRSN)) AND (BRCH_RPT.CD_PRTR=BRCH_RPT_SUMM.CD_PRTR) " +
    " WHERE BRCH_RPT_SUMM.IN_BRCH_SPRS='N' " +
    "AND BRCH_RPT.cd_btch = '" + mBtchCd + "' " +
    "and BRCH_RPT.cd_prtr = '" + mPrtrCd + "' " +
    " and BRCH_RPT.id_prsn = " + mPrsnId;
    Statement statement = mDb.getConnection().createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
    String tableAlias = reportDocument.getDatabaseController().getDatabase().getTables().getTable(0).getAlias();
    ResultSet resultSet = statement.executeQuery(query);
    reportDocument.getDatabaseController().setDataSource(resultSet, tableAlias , "resultsetTable");
    byteArrayInputStream = (ByteArrayInputStream)reportDocument.getPrintOutputController().export(ReportExportFormat.PDF);
    //Use the Java I/O libraries to write the exported content to the file system.
    byteArray = new bytehttp://byteArrayInputStream.available();
    //Create a new file that will contain the exported result.
    file = new File(mReportExportPath);
    fileOutputStream = new FileOutputStream(file);
    byteArrayOutputStream = new ByteArrayOutputStream(byteArrayInputStream.available());
    x = byteArrayInputStream.read(byteArray, 0, byteArrayInputStream.available());
    byteArrayOutputStream.write(byteArray, 0, x);
    byteArrayOutputStream.writeTo(fileOutputStream);
    statement.close();
    resultSet.close();
    byteArrayInputStream.close();
    byteArrayOutputStream.close();
    fileOutputStream.close();
    reportDocument.close();
    An unexpected error has been detected by HotSpot Virtual Machine:
    Internal Error (53484152454432554E54494D450E43505001A8 01), pid=28689, tid=1
    Java VM: Java HotSpot(TM) Server VM (1.5.0_13-b05 mixed mode)
    T H R E A D
    Current thread (0x000386f0): JavaThread "main" threadin_Java, id=1
    Stack: [0xffb7e000,0xffc00000), sp=0xffbfc690, free space=505k
    Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
    V http://libjvm.so+0x70c3c4
    V http://libjvm.so+0x4383b4
    V http://libjvm.so+0x2fbde0
    V http://libjvm.so+0x274bf4
    C http://libthread.so.1+0x15bb4
    C http://libthread.so.1+0xf80c
    C http://libthread.so.1+0xf9bc
    j java.util.HashMap.removeEntryForKey(Ljava/lang/Object;)Ljava/util/HashMap$Entry;+119
    j java.util.HashMap.remove(Ljava/lang/Object;)Ljava/lang/Object;+2
    j com.crystaldecisions.reports.reportdefinition.kv.a(Lcom/crystaldecisions/reports/queryengine/af;Lcom/crystaldecisions/reports/queryengine/af;Z)V+135
    j com.crystaldecisions.reports.reportdefinition.datainterface.g.a(Lcom/crystaldecisions/reports/queryengine/ch;Lcom/crystaldecisions/reports/queryengine/ch;ZZ)V+229
    j com.crystaldecisions.reports.reportdefinition.datainterface.g.a(Lcom/crystaldecisions/reports/queryengine/ch;Lcom/crystaldecisions/reports/queryengine/ch;ZZLcom/crystaldecisions/reports/queryengine/b/w;)V+235
    j com.crystaldecisions.reports.reportdefinition.datainterface.g.a(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Lcom/crystaldecisions/reports/reportdefinition/datainterface/a;)V+682
    j com.crystaldecisions.reports.dataengine.bj.new()V+24
    j com.crystaldecisions.reports.common.as.a(Lcom/crystaldecisions/reports/common/af;)V+96
    j com.crystaldecisions.reports.common.ae.a(Lcom/crystaldecisions/reports/common/l;)V+20
    j com.businessobjects.reports.sdk.b.w.a(Lcom/crystaldecisions/reports/reportdefinition/bi;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)V+207
    j com.businessobjects.reports.sdk.b.w.int(Lcom/crystaldecisions/sdk/occa/report/lib/PropertyBag;Ljava/lang/String;)V+231
    j com.businessobjects.reports.sdk.JRCCommunicationAdapter.request(IILjava/lang/String;Lcom/crystaldecisions/client/helper/ISecurityContext;Lcom/crystaldecisions/xml/serialization/IXMLSerializable;)Lcom/crystaldecisions/proxy/remoteagent/ResultInfo;+3326
    j com.crystaldecisions.proxy.remoteagent.x.a(Lcom/crystaldecisions/client/helper/ISecurityContext;Ljava/lang/String;IILcom/crystaldecisions/xml/serialization/IXMLSerializable;Lcom/crystaldecisions/proxy/remoteagent/j;)Lcom/crystaldecisions/proxy/remoteagent/ResultInfo;+70
    j com.crystaldecisions.proxy.remoteagent.q.a(IILcom/crystaldecisions/xml/serialization/IXMLSerializable;Lcom/crystaldecisions/proxy/remoteagent/j;)Lcom/crystaldecisions/proxy/remoteagent/ResultInfo;+83
    j com.crystaldecisions.sdk.occa.report.application.dd.a(IILcom/crystaldecisions/xml/serialization/IXMLSerializable;)Lcom/crystaldecisions/proxy/remoteagent/ResultInfo;+44
    j com.crystaldecisions.sdk.occa.report.application.DatabaseController.a(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V+284
    j com.crystaldecisions.sdk.occa.report.application.DatabaseController.setDataSource(Ljava/sql/ResultSet;Ljava/lang/String;Ljava/lang/String;)V+5
    j com.crystaldecisions.reports.sdk.DatabaseController.setDataSource(Ljava/sql/ResultSet;Ljava/lang/String;Ljava/lang/String;)V+7
    j com.jpmorgan.awm.jfam.ptc.reporting.AnalysisExporter.exportReport()V+157
    j com.jpmorgan.awm.jfam.ptc.reporting.EODReport.main([Ljava/lang/String;)V+744
    v ~StubRoutines::call_stub
    V http://libjvm.so+0x19b514
    V http://libjvm.so+0x2dd44c
    C java0x222c main0x1164

    This is a problem of the VM itself. You will need to address the issue at SUN forums.

  • Extproc crashes when calling external routine

    Can anyone point me to documentation on the causes of extproc.exe crashing when trying to invoke an external procedure? The standard documentation set isn't too helpful for debugging such a problem.
    I have been able to call one external procedure. With two others, I always get an extproc crash with (I believe) an access violation.
    The routines I am trying to call are 3rd-party, so I do not have the ability to view their source, though I do have the list of parameters and the sizes and types.
    What I am hoping to find somewhere is a list of the kinds of things that cause extproc to crash so I can see if any of them are likely culprits in my situation.
    Thanks,
    Bruce Merkle

    Have you tried calling into the dll that CVI calls directly from TestStand?  I am curious to know if this also crashes.
    I am also curious to know if there are any path references in the dll that is called by the CVI program.  If so are they relative, or absolute paths?
    I ask because one of the possibilities is that relative paths are being used to specify a path from the location of the code that is called, and they are not working because the current working directory is being specified by TestStand, and the paths are not relative to the working directory given by TestStand.
    Jensen
    National Instruments
    Applications Engineer

  • JVM dies when JNI native code causes a SIGABRT from assertions

    Hi,
    I am wondering whether there is a way to prevent the JVM from dying when the JNI native code hits an assertion.
    #include "NativeTest.h"
    #include <assert.h>
    JNIEXPORT jstring JNICALL Java_NativeTest_sayHello (JNIEnv *env, jobject thisobject, jstring js)
    assert(0);
    return js;
    Calling this code from Java through JNI causes a SIGABRT when assert(0) is hit. This causes the java program to terminate. Is there a way for the JVM to recover from the SIGABRT from the native code?

    929919 wrote:
    I am wondering whether there is a way to prevent the JVM from dying when the JNI native code hits an assertion.There is no way to prevent the VM from exiting if native code does anything that causes an exit.
    An assertion is only one way that can happen.
    So to prevent the VM from exiting - don't run native code. The safe way to execute OS native library is to do the following.
    1. Wrap the library in an executable.
    2. Create a communications API for the executable.
    3. Manage the executable via Java Runtime.exec/ProcessBuilder.
    4. Talk to the executable using the communications API from 2 in the java code.
    The above is safe because if the library exits it exits the executable, not the VM.

  • GUI resizes when calling JLabel.setText()

    Case:
    I have a GUI with a GridbagLayout.
    This is the code for building the GUI.
    Important bits:
    please note the scrollConsole and adding it way at the end, because that's getting bigger:
    NOTE: KwartoButtons are a selfmade class that behaves like a button.
         setSize(600,600);
              Container p1 = getContentPane();
              p1.setLayout(new GridBagLayout());
                        GridBagConstraints c = new GridBagConstraints();
                        c.gridx = 0;
                        c.insets.set(5,8,5,8);
                   p1.setBackground(Color.DARK_GRAY);
                          panelVeld = new JPanel(new GridLayout(4,4));
                          panelStukken = new JPanel(new GridLayout(4,4));
                          labelVeld = new JLabel("Speelveld");
                          labelOngespeeld = new JLabel("Ongespeelde Stukken");
                        buttonStop = new JButton("Stop");
                          buttonConsole = new JButton("Hide/Show Console");
                          buttonStart = new JButton("Start");
                   textAreaConsole = new JTextArea("");
                   buttonPanel = new JPanel(new FlowLayout());
                   textAreaConsole.setFont(new Font("Courier",Font.PLAIN, 12));
                   aanZet = new JLabel("Niemand aan zet");
                          labelVeld.setForeground(Color.LIGHT_GRAY);
                          labelOngespeeld.setForeground(Color.LIGHT_GRAY);   
                       aanZet.setForeground(Color.LIGHT_GRAY);
                       scrollConsole = new JScrollPane(textAreaConsole,                   JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
                      buttonPanel.add(buttonStart);
                      buttonPanel.add(buttonStop);
                      buttonPanel.setBackground(Color.DARK_GRAY);
                     for(int i=0; i < veld.length; i++)
                          veld[i] = new KwartoButton(null, i, true);
                          veld.addMouseListener(this);
                   veld[i].setEnabled(false);
                   panelVeld.add(veld[i]);
              Set<Stuk> stukkenSet = spel.getOngespeeld();
              int i=0;
              for(Stuk stuk: stukkenSet)
                   stukken[i] = new KwartoButton(stuk, i, false);
                   stukken[i].addMouseListener(this);
                   stukken[i].setEnabled(false);
                   panelStukken.add(stukken[i]);
                   i++;
              c.fill = GridBagConstraints.NONE;     
              c.gridx = 0;
                   p1.add(labelVeld, c);
              c.gridx = 1;
                   p1.add(labelOngespeeld, c);
              c.weightx = 0.5;
              c.weighty = 0.9;
              c.fill = GridBagConstraints.BOTH;     
              c.gridx = 0;
                   p1.add(panelVeld, c);
              c.gridx = 1;
                   p1.add(panelStukken, c);
              c.fill = GridBagConstraints.VERTICAL;
              c.gridx=0;
              c.gridwidth=2;
              c.weightx=0;
              c.weighty=0;
              p1.add(aanZet,c);
              c.fill = GridBagConstraints.VERTICAL;     
              c.weighty = 0.0;               
              c.gridy=3;
              c.gridwidth=1;
              c.gridx=0;
                   p1.add(buttonPanel, c);
              c.gridx=1;
                   p1.add(buttonConsole, c);
              c.gridwidth = GridBagConstraints.REMAINDER;     
              c.gridx=0;
              c.gridy=4;
              c.weightx = 1.0;
    c.weighty = 0.1;     
                   c.fill = GridBagConstraints.BOTH;
              p1.add(scrollConsole, c);          
    This is the code I run when the resize happens:
    public void setMessage(String s)  {
    String message =""
    message =s
                  if(!message.equals("")) {
                       addToConsole(message);
                       aanZet.setText(message);
    public void addToConsole(String s)  {
                   // Determine whether the scrollbar is currently at the very bottom position.
                   JScrollBar vbar = scrollConsole.getVerticalScrollBar();
                   boolean autoScroll = ((vbar.getValue() + vbar.getVisibleAmount()) == vbar.getMaximum());
                   // append to the JTextArea (that's wrapped in a JScrollPane named 'scrollPane'
                   textAreaConsole.append(s+"\n");
                   // now scroll if we were already at the bottom.
                   if( autoScroll ) textAreaConsole.setCaretPosition( textAreaConsole.getDocument().getLength() );
         }What my GUI does: When I invoke setMessage(), my scrollConsole grows about one line, until it overpowers the entire GUI (except the buttons).
    If I remove the 'auto-scrolldown' functionality of addToConsole, it still resizes, so I reckon that's not the problem.

    Here you go.
    Thanks in advance.
    import java.awt.*;
    import javax.swing.*;
    * SSCCE Class for my problem.
    * Problem: GUI Resizes after calling the update method.
    public class TestingClass extends JFrame {
                   private JTextArea textAreaConsole;
                   private JLabel aanZet;
                   private JScrollPane scrollConsole;
         public void update(String s) {          //the problematic method
                       addToConsole(s);                         
                       aanZet.setText(s);
       public void addToConsole(String s) { //adds text to console
                   // Determine whether the scrollbar is currently at the very bottom position.
                   JScrollBar vbar = scrollConsole.getVerticalScrollBar();
                   boolean autoScroll = ((vbar.getValue() + vbar.getVisibleAmount()) == vbar.getMaximum());
                   // append to the JTextArea (that's wrapped in a JScrollPane named 'scrollPane'
                   textAreaConsole.append(s+"\n");
                   // now scroll if we were already at the bottom.
                   if( autoScroll ) textAreaConsole.setCaretPosition( textAreaConsole.getDocument().getLength() );
         public TestingClass() {
              super("Test");
              buildGUI();
              setVisible(true);
              update("a");
              update("b");
              update("c");
                   update("d");
                        update("e");
                             update("f");
                                  update("g");
                                       update("h");
                                            update("i");
                                                 update("j");
                                                      update("k");
                                                           update("l");
                                                                update("m");
                                                                     update("n");
                                                                          update("o"); //add more to see more effect, remove to kill problem
         public void buildGUI() { //building the gui
              setSize(600,600);
              Container p1 = getContentPane();
              p1.setLayout(new GridBagLayout());
                        GridBagConstraints c = new GridBagConstraints();
                        c.gridx = 0;
                        c.insets.set(5,8,5,8);
                        JPanel panelVeld = new JPanel(new GridLayout(4,4));
                JPanel panelStukken = new JPanel(new GridLayout(4,4));
                        textAreaConsole = new JTextArea("");
                        textAreaConsole.setFont(new Font("Courier",Font.PLAIN, 12));
                        aanZet = new JLabel("Test!");
                      scrollConsole = new JScrollPane(textAreaConsole, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
                 for(int i=0; i < 16; i++)
                          panelVeld.add(new JButton("x"));
                          panelStukken.add(new JButton("y"));
          c.weightx = 0.5;
          c.weighty = 0.9;
          c.fill = GridBagConstraints.BOTH;     
          c.gridx = 0;
                p1.add(panelVeld, c);
          c.gridx = 1;
                   p1.add(panelStukken, c);
                 c.fill = GridBagConstraints.VERTICAL;
                 c.gridx=0;
                 c.gridwidth=2;
                 c.weightx=0;
                 c.weighty=0;
                      p1.add(aanZet,c);
                 c.gridwidth = GridBagConstraints.REMAINDER;     
                 c.gridx=0;
                 c.gridy=4;
                 c.weightx = 1.0;
          c.weighty = 0.1;                    
                   c.fill = GridBagConstraints.BOTH;            
                      p1.add(scrollConsole, c);
    public static void main(String[] args) { //starting up!
              new TestingClass();
    }

  • Application crashes when calling run_report_object , FRM-93652: The runtime process has terminated abnormally

    I got this error when calling report from my form:
    FRM-93652: The runtime process has terminated abnormally
    Forms Session ID is WLS FORMS.formsapp.101
    Here is the trace dump info :
    Last Trigger  FORM/BLOCK/FIELD: FRM_ACTIVITY_QUEUE.BLK_ACTIVITY_QUEUE.BTN_PRINT
    Last Trigger: WHEN-BUTTON-PRESSED - (In Progress)
    Last Builtin: RUN_REPORT_OBJECT - (In Progress)
    ----- Call Stack Trace -----
    calling              call     entry                argument values in hex
    location             type     point                (? means dubious value)
    siehDumpStackTrace(  call     kgdsdst()            000000000 ? 000000000 ?
    )+104                                              7FFFBF18D110 ? 7FFFBF18D1D8 ?
                                                       7FFFBF1AD130 ? 000000000 ?
    siehjmpterm()+650    call     siehDumpStackTrace(  000000000 ? 2B1668E4EB00 ?
                                  )                    7FFFBF18D110 ? 7FFFBF18D1D8 ?
                                                       7FFFBF1AD130 ? 000000000 ?
    __restore_rt()       call     siehjmpterm()        00000000B ? 2B1668E4EB00 ?
                                                       7FFFBF18D110 ? 7FFFBF18D1D8 ?
                                                       7FFFBF1AD130 ? 000000000 ?
    00002B1660459EB0     signal   __restore_rt()       2B16603F2929 ? 7FFFBF1ADBD8 ?
                                                       000000000 ? 000000002 ?
                                                       000000001 ? 0EBC57ED8 ?
    Anybody knows what might be the cause ?
    Thanks

    Refer to : Oracle Support :  Forms Runtime Crash (FRM-93652) When calling RUN_REPORT_OBJECT in 11g (Doc ID 1306368.1)

  • Crash when calling Clipboard.GetContent() in Page Loaded event

    Hello
    I found a crash when using
    Clipboard.GetContent() method ,
    the steps to reproduce this are very simple:
    -create C# Windows store application ,
    -add loaded event for main page
    -call Clipboard.GetContent()  inside it(loaded event handler).
    -run the application as release Ctrl+F5 , the application will crash , note that when you run as debug no problems
    -this problem appears not on GetContent() only , it appears when you use any method of ClipBoard class indside main page loaded event.
    Is this bug? , if yes , what is the workaround for this.

    Hi shaker,
    Firstly, I have to say that, yes, I can reproduce your issue on my side.
    However, as far as I know that the Clipboard operations are used to enable users to cut, copy, and paste data, but why you just call the Clipboard.GetContent() method in the Grid_Loaded event? Could you please show me more information
    about your requirement so that I can better understand your scenario?
    Thanks.
    Vicky Song [MSFT]
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

  • Skype is crashing when calling/answering calls

    Ever since i updated to windows 10 skype keeps crashing when ever i call someone, or someone calls me. Can anybody help me?

    Please,  run the DirectX diagnostics tool. Go to Windows Start  and in the Run box type dxdiag.exe and press the OK button. This will start the DirectX diagnostics program. Run this diagnostics and save the results to a file. Please, attach this file to your post. Be aware that you will have to zip this file before attaching it here.

  • Java Runtime crash while executing native code.(version 1.6.0_10-beta)

    HI all
    i observed a crash while execution a native fuction , which is initializing an
    char array of size (1024*1024).Plz see the code snippet below:
    But it is working with java version: 1.5.0
    FileTest.c:
    #include<stdio.h>
    #include<fcntl.h>
    #include<string.h>
    #include<stdlib.h>
    #include "HelloWorld.h"
    JNIEXPORT jint JNICALL Java_HelloWorld_CreateLargestF<div style="direction: ltr">ile (JNIEnv * env, jclass obj)
    //int CreateLargestFile(char* filename)
    char *filename = "LargestFile.tmp";
    int fd = creat(filename, 0666);
    if(fd == -1)
    return 0;
    int size = 1024 * 1024;
    char buffer[size];
    //buffer is not filled fully, JRE aborts after i reaches to 61327 approx.
    int i;
    for( i = 0;i<size;i++)
    buffer[i] = 'a';
    printf("\n\n==>> Executing FSTLD0001 : buffer %d = %c \n",i,buffer);
    printf("\n\n==>> Executing FSTLD0001 : after init\n");
    //memset(buffer, 'a', size);
    while(1)
    long bytes = write(fd, buffer, size);
    if(bytes < size)
    break;
    close(fd);
    return 1;
    HelloWorld.java
    public class HelloWorld {
    public static native int CreateLargestFile();
    public static void main(String[] args)
    String dir = System.getProperty("user.dir");
    String libpath = dir + "/libFileTest.so";
    System.load(libpath);
    CreateLargestFile();
    jni.h version used is: 1.56 03/12/19
    jni_md.h version used is : 1.14 03/12/19
    FULL PRODUCT VERSION :
    java version "1.6.0_10-beta"
    Java(TM) SE Runtime Environment (build 1.6.0_10-beta-b14)
    Java HotSpot(TM) Client VM (11.0-b11 mixed mode, sharing)
    FULL OS VERSION :
    Linux debian 2.6.18-6-686 #1 SMP Sun Feb 10 22:11:31 UTC 2008 i686 GNU/Linux
    ERROR MESSAGES:
    # An unexpected error has been detected by Java Runtime Environment:
    # SIGSEGV (0xb) at pc=0xb7eec667, pid=7128, tid=3084340144
    # Java VM: Java HotSpot(TM) Client VM (11.0-b11 mixed mode, sharing linux-x86)
    # Problematic frame:
    # C [libFileTest.so+0x667] Java_HelloWorld_CreateLargestFile+0x8b
    <div style="direction: ltr">#
    # If you would like to submit a bug report, please visit:
    # [http://java.sun.com/webapps/bugreport/crash.jsp]
    # The crash happened outside the Java Virtual Machine in native code.
    # See problematic frame for where to report the bug.</div>
    May i have any feedbacks or help?
    Thanks
    </div>

    Stack size perhaps?
    Allocate the buffer off the heap instead of the stack.
    The following might be related (might not as well.)
    http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6227033
    There is a flag that adds info for jni via the command line turn it on.

  • HELP!....GUI crashes when i call a multi-threaded program from it

    Hi..I have encountered a problem in my end of year project, which i cant see to solve. The problem is i am starting a multi-threaded program for a JButton on a GUI. All though this starts the other program it crashes the GUI completely how do i stop this.
    this is the code i use to call the threaded program.
    public void actionPerformed(ActionEvent e)
    Object target=e.getSource();
    String line = new String();
    if( target==b1 )
         try
    cl = new client();
         cl.startup();
         catch(Exception ex){ex.printStackTrace();}
    thanks Mike

    No there is no exceptions being given. this is one of the reasons why i dont no what to do. i thought myself that the threaded was taking all the resources and not going back to the GUI. if this is the case is there anyway that i can call back the GUI and keep the threaded program running?
    thanks
    mike.

  • Java.lang.Class- getFields() results in JVM crash when called through JNI

    From a C++ application, I use Invocation APIs to create a JVM and call some Java methods using JNI
    I get a crash in jvm.dll with EXCEPTION_ACCESS_VIOLATION
    when I try to call "getFields" method of java.lang.Class in order to get the Fields of the java class
    This method call, should return a java/lang/reflect/Fields[] on success
    I am able to get the method ID of this method by using pEnv->GetMethodID(..)
    However, when I call this method using CallObjectMethod(..), HotSpt JVM crashes with access violation with the dump given below.
    Any clues on how to debug and find the problem?
    Or has anyone tried getting the fields of a Java class from C++ by calling reflection APIs uing JNI?
    Thanks in advance!
    Sample code
    jclass testerClass = pEnv->FindClass("com/test/Tester");
    jmethodID cid = pEnv->GetMethodID(testerClass,"<init>","()V");
    if(NULL == cid)
    pEnv->ExceptionDescribe();
    jobject testerObject = pEnv->NewObjectV(testerClass, mid);
    jmethodID mid = pEnv->GetMethodID(testerClass, "getClass",
                             "()Ljava/lang/Class;");
    jobject clsObj = (jobject)pEnv->CallObjectMethod(testerObject, mid);
    pEnv->ExceptionDescribe();
    jclass      jCls = pEnv->GetObjectClass(clsObj);
    jmethodID midGetFields = pEnv->GetMethodID(jCls, "getFields",
                                            "()[Ljava/lang/reflect/Field;");
    jobjectArray jobjArray = (jobjectArray)pEnv->CallObjectMethod(testerObject, midGetFields);
    pEnv->ExceptionDescribe();
    Crash dump
    Unexpected Signal : EXCEPTION_ACCESS_VIOLATION (0xc0000005) occurred at PC=0x809E69F
    Function=JVM_FindSignal+0x11505
    Library=D:\Java\j2re1.4.2_03\bin\client\jvm.dll
    Current Java thread:
         at java.lang.Class.privateGetDeclaredFields(Unknown Source)
         at java.lang.Class.privateGetPublicFields(Unknown Source)
         at java.lang.Class.getFields(Unknown Source)
    Dynamic libraries:
    0x00400000 - 0x00419000      E:\SC\SC12.1\SCApplications\SNMP\Bin\JNITester.exe
    0x77F50000 - 0x77FF7000      C:\WINDOWS\System32\ntdll.dll
    0x77E60000 - 0x77F46000      C:\WINDOWS\system32\kernel32.dll
    0x10000000 - 0x10023000      E:\SC\SC12.1\SCApplications\SNMP\Bin\JniUtils.dll
    0x00320000 - 0x00332000      E:\SnmpIpmNativeTestDriver\MTFStubHelper.dll
    0x00340000 - 0x0035B000      E:\SnmpIpmNativeTestDriver\MTFXMLFileAPI.dll
    0x12000000 - 0x122B1000      e:\sc\sc12.1\bin\xerces-c_2_2_0D.dll
    0x77DD0000 - 0x77E5D000      C:\WINDOWS\system32\ADVAPI32.dll
    0x78000000 - 0x78086000      C:\WINDOWS\system32\RPCRT4.dll
    0x10200000 - 0x1026C000      e:\sc\sc12.1\bin\MSVCRTD.dll
    0x102A0000 - 0x102B7000      e:\sc\sc12.1\bin\MSVCIRTD.dll
    0x5F800000 - 0x5F8E9000      e:\sc\sc12.1\bin\MFC42uD.DLL
    0x77C70000 - 0x77CB0000      C:\WINDOWS\system32\GDI32.dll
    0x77D40000 - 0x77DCC000      C:\WINDOWS\system32\USER32.dll
    0x5F700000 - 0x5F746000      e:\sc\sc12.1\bin\MFCD42uD.DLL
    0x5F500000 - 0x5F5C6000      e:\sc\sc12.1\bin\MFCO42uD.DLL
    0x10480000 - 0x104FE000      e:\sc\sc12.1\bin\MSVCP60D.dll
    0x15020000 - 0x15042000      e:\sc\sc12.1\bin\SCTraceLib.dll
    0x6D510000 - 0x6D58D000      C:\WINDOWS\System32\dbghelp.dll
    0x77C10000 - 0x77C63000      C:\WINDOWS\system32\msvcrt.dll
    0x77C00000 - 0x77C07000      C:\WINDOWS\system32\VERSION.dll
    0x00360000 - 0x0037D000      e:\sc\sc12.1\bin\SCFileManager.dll
    0x76BF0000 - 0x76BFB000      C:\WINDOWS\System32\PSAPI.DLL
    0x00420000 - 0x00580000      e:\sc\sc12.1\bin\BctCoreCL.dll
    0x5D920000 - 0x5D929000      C:\WINDOWS\System32\RPCNS4.dll
    0x71B20000 - 0x71B31000      C:\WINDOWS\system32\MPR.dll
    0x71C20000 - 0x71C6E000      C:\WINDOWS\System32\NETAPI32.dll
    0x71AB0000 - 0x71AC5000      C:\WINDOWS\System32\WS2_32.dll
    0x71AA0000 - 0x71AA8000      C:\WINDOWS\System32\WS2HELP.dll
    0x15000000 - 0x15012000      e:\sc\sc12.1\bin\CTEventLog.dll
    0x773D0000 - 0x77BC2000      C:\WINDOWS\system32\SHELL32.dll
    0x70A70000 - 0x70AD4000      C:\WINDOWS\system32\SHLWAPI.dll
    0x771B0000 - 0x772D1000      C:\WINDOWS\system32\ole32.dll
    0x77120000 - 0x771AB000      C:\WINDOWS\system32\OLEAUT32.dll
    0x1F7A0000 - 0x1F7D6000      C:\WINDOWS\System32\ODBC32.dll
    0x77340000 - 0x773CB000      C:\WINDOWS\system32\COMCTL32.dll
    0x763B0000 - 0x763F5000      C:\WINDOWS\system32\comdlg32.dll
    0x08000000 - 0x08138000      D:\Java\j2re1.4.2_03\bin\client\jvm.dll
    0x76B40000 - 0x76B6C000      C:\WINDOWS\System32\WINMM.dll
    0x5FD00000 - 0x5FD0D000      C:\WINDOWS\System32\MFC42LOC.DLL
    0x71950000 - 0x71A34000      C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.10.0_x-ww_f7fb5805\comctl32.dll
    0x1F840000 - 0x1F857000      C:\WINDOWS\System32\odbcint.dll
    0x5DAC0000 - 0x5DAC7000      C:\WINDOWS\System32\rdpsnd.dll
    0x00FE0000 - 0x00FE7000      D:\Java\j2re1.4.2_03\bin\hpi.dll
    0x01000000 - 0x0100E000      D:\Java\j2re1.4.2_03\bin\verify.dll
    0x01010000 - 0x01029000      D:\Java\j2re1.4.2_03\bin\java.dll
    0x01030000 - 0x0103D000      D:\Java\j2re1.4.2_03\bin\zip.dll
    0x76C90000 - 0x76CB2000      C:\WINDOWS\system32\imagehlp.dll
    Heap at VM Abort:
    Heap
    def new generation total 576K, used 132K [0x15050000, 0x150f0000, 0x15530000)
    eden space 512K, 25% used [0x15050000, 0x15071250, 0x150d0000)
    from space 64K, 0% used [0x150d0000, 0x150d0000, 0x150e0000)
    to space 64K, 0% used [0x150e0000, 0x150e0000, 0x150f0000)
    tenured generation total 1408K, used 0K [0x15530000, 0x15690000, 0x19050000)
    the space 1408K, 0% used [0x15530000, 0x15530000, 0x15530200, 0x15690000)
    compacting perm gen total 4096K, used 964K [0x19050000, 0x19450000, 0x1d050000)
    the space 4096K, 23% used [0x19050000, 0x191410e0, 0x19141200, 0x19450000)
    Local Time = Wed Aug 25 21:06:44 2004
    Elapsed Time = 0
    # HotSpot Virtual Machine Error : EXCEPTION_ACCESS_VIOLATION
    # Error ID : 4F530E43505002EF
    # Please report this error at
    # http://java.sun.com/cgi-bin/bugreport.cgi
    # Java VM: Java HotSpot(TM) Client VM (1.4.2_03-b02 mixed mode)

    You are right, I tried getting the java.lang.Class reference for the com.test.Tester by calling getClass() on com.test.Tester
    And using this jclass reference for java.lang.Class, I tried getting the method ID of getFields and eventually the Field[]
    Thanks for the help
    I have some more questions.
    Assumption - Using JNI, I got the fields array of com.test.Tester and I am iterating through the fields
    1.Assuming that the Tester class had an Integer field say m_nIntVal, then once I get the jobject equivalent of this Field in C++.
    Now I need to get the type of the field (I call the method java.lang.reflect.getType() from JNI)
    This gives me a jclass reference to it's type i.e java.lang.Integer
    2.I need to get the name of this type i.e I want to get the name of the type in a string as "java.lang.Integer"
    For this, on the jclass reference of java.lang.Integer got in Step 1, I call getClass() from JNI (to get the java.lang.Class) and then getName()
    Now, for calling getClass(), I need a temporary object reference corresponding to the jclass of java.lang.Integer, The problem is that Integer does not have a default constructor, so my call to create the jobject fails.
    But, since I do not know that I am constructing an Integer (remember that is what I am trying to find out - getType), I cant pass any values to constructor
    Now, how do I go about creating a jobject of Integer, without knowing that I am constructing that, as this does not have a default constructor without parameters
    Also, I tried using AllocObject to get the jobject and then tried to get the method ID of getClass(). Even this failed
    3. If the com.test.Tester class had a primitive "int" field, say m_nPrimitiveInt
    for which java provides a Class representation, I am able to get the jclass reference to the type of m_nPrimitiveInt
    Now, how do I get the name of the type as "int" in a string?
    Forllowing a similar procedure like in Step 2 fails when I try to pass the jclass reference to the type of m_nPrimitiveInt to the GetMethodID
    with the error FATAL ERROR in native method: JNI received a class argument that is not a class
    Can you tell me what is the way out?
    Thanks in advance,
    Also, can I mail you with some doubts that I have? If its ok, please contact me at [email protected]

Maybe you are looking for