Note that there are some explanatory texts on larger screens.

plurals
  1. POJ2ME obfuscated app stacktrace
    primarykey
    data
    text
    <p>I'm debugging J2ME (written in eclipse) code on nokia N95 (wasn't written by me) trying to find error and printing out stacktrace gave me this:</p> <pre><code> 03:08:479 TSKR. Error: java.lang.NullPointerException: 0 - java.lang.String.&lt;init&gt;(), bci=6 - v.b(), bci=9 - v.e(), bci=805 - v.e(), bci=3 </code></pre> <p>Could anyone please help me to understand that? Which line , where to look for and is there a way to understand it or at least get some valuable and usefull information. Thank you</p> <p>UPDATE</p> <p>Sorry.. Here's the function that throws error:</p> <pre><code>public void bluetoothFileProcessBytes(){//--------tracing out of memory error try{ partCurrentLoop++; fileCurrentLoop++; debug("Loop " + fileCurrentLoop + " of " + fileTotalLoops); bluetoothUpdateBytes(fileDataString.length()); guiUpdateProgressBar(true, partCurrentLoop, partTotalLoops); // LOOP Step 2: If there is no byte[] created for storing the bytes, create it. if (fileBytesIsEmpty) { if (partCurrentNumber == partTotalNumber) { fileBytes = new byte[fileSize % (loopsPerHttpComm * BYTES_PER_LOOP)]; } else fileBytes = new byte[loopsPerHttpComm * BYTES_PER_LOOP]; } fileBytesIsEmpty = false; //LOOP Step 3: fill in the byte array with data from StringBuffer for (int i = 0; i &lt; fileDataString.length(); i++) { j = i + (partCurrentLoop - 1) * BYTES_PER_LOOP; c = fileDataString.charAt(i); fileBytes[j] = (byte) c; } c=0; j=0; i=0; //LOOP Step 4: Send the email if the byte array is full with a new HttpComm Thread if ((fileCurrentLoop % loopsPerHttpComm == 0 || fileCurrentLoop == fileTotalLoops) &amp;&amp; checkHttpCommStatus()) { // update partName and httpCommStatus String partName = fileName + " .part " + partCurrentNumber; httpCommStatus = HTTP_RUNNING; if (fileCurrentLoop == fileTotalLoops) { // FILE_END debug("New HttpComm Thread: FILE END"); httpCommUpdateBytes(fileBytes.length);//&lt;===================remove httpCommSucceeded();//&lt;====================================remove /*new Thread(new HttpFileEnd(this, fileBytes, toAddress, fromAddress, fromName, digidownMAC, partName, fileName, fileSize, digidownSoftwareVersion, partCurrentNumber, //&lt;===============uncomment partTotalNumber, DigidownApp.textObject.getActiveLanguage())).start();*/ } else { // FILE_PART //debug("Step 5");//&lt;--------------------------------------------------------------------------------&lt;-remove debug("New HttpComm Thread: FILE PART: " + partName); debug("&gt;&gt;&gt;&gt;&gt;SEEEENDIIIING!&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;");//&lt;===========remove httpCommUpdateBytes(fileBytes.length);//&lt;================remove httpCommSucceeded();//&lt;==============================remove /*new Thread(new HttpFilePart(this, fileBytes, toAddress, fromAddress, fromName,//&lt;===============uncomment digidownMAC, partName, fileSize, digidownSoftwareVersion, partCurrentNumber, DigidownApp.textObject.getActiveLanguage())).start();*/ // Updating the new partTotalLoops if (partCurrentNumber == partTotalNumber){ partTotalLoops = fileTotalLoops - (loopsPerHttpComm * (partCurrentNumber - 1)); } else partTotalLoops = loopsPerHttpComm; partCurrentNumber++; partCurrentLoop = 0; } fileBytesIsEmpty = true; } // Leave the loop if failed if (!errorHandlerActivated) { if (fileCurrentLoop &lt; fileTotalLoops) { try{ bluetoothIOStream.getFileBytes();//-throws null pointer exception ! }catch(RuntimeException ea){debug("Wammaaa!!! " + ea.toString()); ea.printStackTrace();} } else if(fileCurrentLoop == fileTotalLoops &amp;&amp; checkHttpCommStatus()) { bluetoothIOStream.getFileEnd(); } } } catch(RuntimeException e1) { Alert alert = new Alert("Fckn error!", e1.toString(), null, null); alert.setTimeout(Alert.FOREVER); debug("Error:"); System.err.println(); e1.printStackTrace(); //throw e1; } } </code></pre> <p>..and the stack trace of unobfuscated app; this time it was null pointer exception after <code>// Leave the loop if failed</code>:</p> <pre><code>02:57:382 TSKR. Loop 972 of 1349 02:57:383 BIOS. Rec 978 02:57:588 TSKR. Loop 973 of 1349 02:57:590 BIOS. Rec 979 02:57:815 TSKR. Wammaaa!!! java.lang.NullPointerException: 0 java.lang.NullPointerException: 0 - java.lang.String.&lt;init&gt;(), bci=6 - net.digidown.m.digidown.bluetooth.BluetoothIOStream.readLineAsString(), bci=9 - net.digidown.m.digidown.bluetooth.BluetoothIOStream.getVariable(), bci=844 - net.digidown.m.digidown.bluetooth.BluetoothIOStream.getFileBytes(), bci=3 - net.digidown.m.digidown.TaskRunner.bluetoothFileProcessBytes(), bci=430 - net.digidown.m.digidown.bluetooth.BluetoothIOStream.getVariable(), bci=857 - net.digidown.m.digidown.bluetooth.BluetoothIOStream.getFileBytes(), bci=3 - net.digidown.m.digidown.TaskRunner.bluetoothFileProcessBytes(), bci=430 - net.digidown.m.digidown.bluetooth.BluetoothIOStream.getVariable(), bci=857 - net.digidown.m.digidown.bluetooth.BluetoothIOStream.getFileBytes(), bci=3 - net.digidown.m.digidown.TaskRunner.bluetoothFileProcessBytes(), bci=430 - net.digidown.m.digidown.bluetooth.BluetoothIOStream.getVariable(), bci=857 - net.digidown.m.digidown.bluetooth.BluetoothIOStream.getFileBytes(), bci=3 - net.digidown.m.digidown.TaskRunner.bluetoothFileProcessBytes(), bci=430 - net.digidown.m.digidown.bluetooth.BluetoothIOStream.getVariable(), bci=857 </code></pre> <p>Goes like that for a while and then..:</p> <pre><code> - net.digidown.m.digidown.TaskRunner.bluetoothDoCommand_file(), bci=227 - net.digidown.m.digidown.bluetooth.BluetoothIOStream.getVariable(), bci=829 - net.digidown.m.digidown.bluetooth.BluetoothIOStream.getFileSettings(), bci=9 - net.digidown.m.digidown.TaskRunner.bluetoothTask(), bci=90 - net.digidown.m.digidown.bluetooth.BluetoothIOStream.getVariable(), bci=513 - net.digidown.m.digidown.bluetooth.BluetoothIOStream.getTask(), bci=2 - net.digidown.m.digidown.TaskRunner.bluetoothTask(), bci=172 - net.digidown.m.digidown.bluetooth.BluetoothIOStream.getVariable(), bci=513 - net.digidown.m.digidown.bluetooth.BluetoothIOStream.getTask(), bci=2 - net.digidown.m.digidown.TaskRunner.bluetoothConnected(), bci=89 - net.digidown.m.digidown.bluetooth.BluetoothIOStream.getVariable(), bci=444 - net.digidown.m.digidown.bluetooth.BluetoothIOStream.getVariable(), bci=426 - net.digidown.m.digidown.bluetooth.BluetoothIOStream.run(), bci=366 - java.lang.Thread.run(), bci=11 03:01:211 TSKR. Finished Task 03:01:212 BIOS. Rec 6 03:01:356 BIOS. task = &gt; 03:01:357 TSKR. :: Got Task: (0x3e) 03:01:358 TSKR. 03:01:359 TSKR. ERROR HANDLER: 116 - Bluetooth communication error 03:01:389 BIOS. Initiated 03:01:389 BIOS. About to read 03:01:394 BIOS. Phone(InitiateDigidownError) received: '0x3e 0xea Data CK' 03:01:397 BIOS. About to writeLine 'error' 03:01:468 BIOS. quitStatus = QUIT_STATUS </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload