Go Down

Topic: IDE12 Auto Format on Ubuntu 8.04 crashes (Read 1 time) previous topic - next topic

absolutum

whenever I call "Auto Format"
I got an Index out of BoundsExecption: String Index out of range:1022

mellis

What's the code that it happens on?  Can you post a minimal example with the same problem?

absolutum

The comment part at begin seems to be the problem,
without it Auto Format works

-------------------------

//
// panorobot program for Olympus E510 DZ Kit
// - with serial LCD
// - with Nunchuk
// - EasyDriver 3
// - opto coupled remote focus and shutter trigger
// - Arduino Nano
//
// - 4 Eckbrennweiten des Kits und drei BWs für 70-300mm
// - mehrreihig
// - BKT
// - optional Delay
// - Timelaps with FL 0
// - Nullpunkt setzen, Anzeige der Bildzahl ab Nullpunkt zur gewählten BW
//

// Timelaps funktion ohne Bewegung evtl. einfach ohne Motorstrom?

//
//  TODO: evtl. opt. kurze Erinnerung an AEL, AFL, RemoteSet, WB, no Liveview, Delay
//

#define VERSION "?fabso.lutum V16"

// set params for 7 certain focallengths FL / and 0 for timelapse without moving
#define MAX_INDEX 7
unsigned int FL_MM[] = {
 0, 14, 40, 42, 150, 70, 200, 300};
unsigned int MAX_ROW[] = {
 1, 4, 10, 10, 36, 17, 48, 72}; // max number of rows
long STEPS_FL_H[] = {
 0, 39996, 15383, 14813, 4166, 8888, 3100, 2072};
long STEPS_FL_V[] = {
 0, 49995, 19998, 19998, 5555, 11764, 4166, 2778};
unsigned int NPP[] ={
 0,350,155,350,250,0,0,0};

// Pins for shuttercontrol
#define FOCUS_PIN 6
#define SHUTTER_PIN 7

//LCD Pins (only D3)
#include <SoftwareSerial.h>
#define rxPin 4  // rxPin is immaterial - not used - just make this an unused Arduino pin number
#define txPin 3

#include <Wire.h>

SoftwareSerial mySerial =  SoftwareSerial(rxPin, txPin);

// NUNCHUK (Pins: A4 green, A5 yellow
static uint8_t nunchuck_buf[6];   // array to store nunchuck data
// nunchuck X Y
int NUN_X;
int NUN_Y;
// nunchuk buttons
int NUN_C;
int NUN_Z;

// Globals
byte LU_ZERO_SET = 0;
byte LU_FL_Index = 0;
byte LU_DONE;
byte LU_BKT = LOW;
unsigned int LU_Pics_to_do = 1; // change here init no of pics !!!
unsigned int LU_Pic_Delay = 1;   // delay between two pics = wait before move
unsigned int LU_Rows_to_do = 1;  // number of rows

// STEPPER (Pins: D9,D10,D11,D12)
// horizontal
int hsteppin = 9;
int hdirpin = 10;
long LU_STEPS_H = 0;
// vertikal
int vsteppin = 11;
int vdirpin = 12;
long LU_STEPS_V = 0;

// Cam data
int no_of_pics;
int row;
int CAM_position; // 0 at start, 1 if position is set
int CAM_hori_pics;// 0 at start, n if no of horizontal pics is set
int CAM_row_pics;// 1 at start, n if no of vertical pics is set
int CAM_MM = 0; // initial focal lenght
long CAM_STEPS = 0; // initial horizontal steps for 1 pic
long CAM_STEPS_ROW = 0; // initial vertical steps per row
int CAM_NPP; // cam NPP in tenth of mm


//-------------------------
void setup() {

 // init LCD
 delay(5000); // give LCD Time to warm up
 pinMode(txPin, OUTPUT);
 mySerial.begin(9600);    // 9600 baud is LCD chip comm speed
 mySerial.print("?G420");
 delay(100);                 // pause to allow LCD EEPROM to program
 mySerial.print("?c0");   // turn cursor off
 delay(200);  

 // init nunchuck
 Serial.begin(19200);
 nunchuck_init(); // send the initilization handshake
 delay(200);
 nunchuck_zero();
 nunchuck_get_data();
 delay(200);

 // cam pins
 pinMode(FOCUS_PIN, OUTPUT);
 pinMode(SHUTTER_PIN, OUTPUT);
 digitalWrite(FOCUS_PIN, LOW);
 digitalWrite(SHUTTER_PIN, LOW);

 // vertikal motor pins
 pinMode(vdirpin, OUTPUT);
 pinMode(vsteppin, OUTPUT);

 // horizontal motor pins
 pinMode(hdirpin, OUTPUT);
 pinMode(hsteppin, OUTPUT);

 // initial values
 LU_BKT = 0;         // no bracketing  
 LU_Rows_to_do = 1;  // 1 row

}

mellis

Does the same thing happen if you delete most of the sketch?  Can you post a short example with the same problem?

absolutum

I deleted some more lines, the bug happens as long as the arrays are initialized.

-------------------------
//
// panorobot program for Olympus E510 DZ Kit
// - with serial LCD
// - with Nunchuk
// - EasyDriver 3
// - opto coupled remote focus and shutter trigger
// - Arduino Nano
//
// - 4 Eckbrennweiten des Kits und drei BWs für 70-300mm
// - mehrreihig
// - BKT
// - optional Delay
// - Timelaps with FL 0
// - Nullpunkt setzen, Anzeige der Bildzahl ab Nullpunkt zur gewählten BW
//
//
// Timelaps funktion ohne Bewegung evtl. einfach ohne Motorstrom?
//
//
//  TODO: evtl. opt. kurze Erinnerung an AEL, AFL, RemoteSet, WB, no Liveview, Delay
//

// set params for 7 certain focallengths FL / and 0 for timelapse without moving

unsigned int FL_MM[] = {
 0, 14, 40, 42, 150, 70, 200, 300};
unsigned int MAX_ROW[] = {
 1, 4, 10, 10, 36, 17, 48, 72}; // max number of rows
long STEPS_FL_H[] = {
 0, 39996, 15383, 14813, 4166, 8888, 3100, 2072};
long STEPS_FL_V[] = {
 0, 49995, 19998, 19998, 5555, 11764, 4166, 2778};
unsigned int NPP[] ={
 0,350,155,350,250,0,0,0};

void setup() {
 // init LCD
 delay(5000); // give LCD Time to warm up
}

mellis

I had a problem with the space after the last closing curly brace.  Does deleting it fix things for you?

absolutum

#6
Oct 25, 2008, 05:39 pm Last Edit: Oct 25, 2008, 05:41 pm by absolutum Reason: 1
no, I deleted all trailing blanks, but Auto Format still crashes
---------------------------------------------------------

java.lang.StringIndexOutOfBoundsException: String index out of range: 1022
     at java.lang.String.charAt(String.java:687)
     at processing.app.tools.AutoFormat.getchr(AutoFormat.java:313)
     at processing.app.tools.AutoFormat.cpp_comment(AutoFormat.java:243)
     at processing.app.tools.AutoFormat.getnl(AutoFormat.java:370)
     at processing.app.tools.AutoFormat.show(AutoFormat.java:675)
     at processing.app.Editor$15.actionPerformed(Editor.java:728)
     at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
     at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
     at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
     at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
     at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
     at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1220)
     at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1261)
     at java.awt.Component.processMouseEvent(Component.java:6041)
     at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
     at java.awt.Component.processEvent(Component.java:5806)
     at java.awt.Container.processEvent(Container.java:2058)
     at java.awt.Component.dispatchEventImpl(Component.java:4413)
     at java.awt.Container.dispatchEventImpl(Container.java:2116)
     at java.awt.Component.dispatchEvent(Component.java:4243)
     at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
     at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
     at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
     at java.awt.Container.dispatchEventImpl(Container.java:2102)
     at java.awt.Component.dispatchEvent(Component.java:4243)
     at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
     at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
     at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
     at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

absolutum

same bug with windows xp:
______________________________
java.lang.ArrayIndexOutOfBoundsException: 1024

     at processing.app.tools.AutoFormat.getnl(AutoFormat.java:343)

     at processing.app.tools.AutoFormat.show(AutoFormat.java:621)

     at processing.app.Editor$15.actionPerformed(Editor.java:728)

     at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

     at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknown Source)

     at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)

     at javax.swing.DefaultButtonModel.setPressed(Unknown Source)

     at javax.swing.AbstractButton.doClick(Unknown Source)

     at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)

     at javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased(Unknown Source)

     at java.awt.Component.processMouseEvent(Unknown Source)

     at java.awt.Component.processEvent(Unknown Source)

     at java.awt.Container.processEvent(Unknown Source)

     at java.awt.Component.dispatchEventImpl(Unknown Source)

     at java.awt.Container.dispatchEventImpl(Unknown Source)

     at java.awt.Component.dispatchEvent(Unknown Source)

     at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)

     at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)

     at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)

     at java.awt.Container.dispatchEventImpl(Unknown Source)

     at java.awt.Component.dispatchEvent(Unknown Source)

     at java.awt.EventQueue.dispatchEvent(Unknown Source)

     at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)

     at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

     at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

     at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

     at java.awt.EventDispatchThread.run(Unknown Source)

gnu_linux

It looks like the array in AutoFormat.java is overflowing

Seems interesting that it is occurring on multiple operating systems

:)

mellis

Can you guys post an (even) shorter example with the problem?

absolutum

Short example WinXP:
--------------------------
//
// Auto Format bug
unsigned int FL_MM[] = {
0, 14, 40, 42, 150, 70, 200, 300};

void setup() {
delay(5000); // give LCD Time to warm up
}
------------------------------------------------------

java.lang.ArrayIndexOutOfBoundsException: 1024

     at processing.app.tools.AutoFormat.getnl(AutoFormat.java:343)

     at processing.app.tools.AutoFormat.show(AutoFormat.java:621)

     at processing.app.Editor$15.actionPerformed(Editor.java:728)

     at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

     at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknown Source)

     at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)

     at javax.swing.DefaultButtonModel.setPressed(Unknown Source)

     at javax.swing.AbstractButton.doClick(Unknown Source)

     at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)

     at javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased(Unknown Source)

     at java.awt.Component.processMouseEvent(Unknown Source)

     at java.awt.Component.processEvent(Unknown Source)

     at java.awt.Container.processEvent(Unknown Source)

     at java.awt.Component.dispatchEventImpl(Unknown Source)

     at java.awt.Container.dispatchEventImpl(Unknown Source)

     at java.awt.Component.dispatchEvent(Unknown Source)

     at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)

     at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)

     at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)

     at java.awt.Container.dispatchEventImpl(Unknown Source)

     at java.awt.Component.dispatchEvent(Unknown Source)

     at java.awt.EventQueue.dispatchEvent(Unknown Source)

     at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)

     at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

     at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

     at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

     at java.awt.EventDispatchThread.run(Unknown Source)

Go Up