Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » Visual Editor (VE) » Parse error on a custom panel ArrayIndexOutOfBoundsException
Parse error on a custom panel ArrayIndexOutOfBoundsException [message #130562] Fri, 01 September 2006 09:28 Go to next message
Eclipse UserFriend
Originally posted by: blumbroso.yahoo.fr

Hello,

I write a custom panel to manage a wizard and visual editor works well
with it but i have an error in the error log when i open the panel:
java.lang.ArrayIndexOutOfBoundsException: -1
at org.eclipse.emf.common.util.BasicEList.get(BasicEList.java:5 14)

i have some custom attribute in my bean, i think it can come from it, but
the
error is not clear...

if you remove the comment // @jve
visual editor goes in nullPointerException!!!

do you know to remove the error ArrayIndexOutOfBoundsException ?

Thanks

the source code :
package com.misys.gpl.editor;

import java.beans.EventSetDescriptor;
import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;

import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.events.FocusAdapter;
import org.eclipse.swt.events.FocusEvent;
import org.eclipse.swt.events.FocusListener;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.SWT;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.internal.presentations.util.TabDragHandler;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Button;

import com.sun.org.apache.bcel.internal.generic.CPInstruction;

public class WizardPanel extends Composite {

private FormToolkit formToolkit = null; //
@jve:decl-index=0:visual-constraint=""

private Composite composite = null;

private Button cancelButton = null;

String maChaine;


private Button finishButton = null;

private Button nextButton = null;

private Button backButton = null;

private Composite[] panelSteps;

private int currentStep = 0;

private CTabFolder ivjTabFolder;

public WizardPanel(Composite parent, int style) {
super(parent, style);
initialize();
}

private void initialize() {
GridData gridData = new GridData();
gridData.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
gridData.grabExcessHorizontalSpace = true;
gridData.heightHint = 4;
Composite separator = getFormToolkit().createCompositeSeparator(this);
separator.setLayoutData(gridData);
this
.setBackground(Display.getCurrent().getSystemColor(
SWT.COLOR_WHITE));
createComposite();
setSize(new Point(500, 57));
setLayout(new GridLayout());

}

private void manageEnabledButtons() {

backButton.setEnabled(!(currentStep == 0));
nextButton.setEnabled((currentStep + 1 < panelSteps.length));
finishButton.setEnabled((currentStep == panelSteps.length-1));
ivjTabFolder.setSelection(currentStep);
}

/**
* This method initializes formToolkit
*
* @return org.eclipse.ui.forms.widgets.FormToolkit
*/
private FormToolkit getFormToolkit() {
if (formToolkit == null) {
formToolkit = new FormToolkit(Display.getCurrent());
}
return formToolkit;
}

/**
* This method initializes composite
*
*/
private void createComposite() {
GridData gridData2 = new GridData();
gridData2.horizontalAlignment = org.eclipse.swt.layout.GridData.END;
gridData2.grabExcessHorizontalSpace = true;
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 4;
GridData gridData1 = new GridData();
gridData1.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
gridData1.grabExcessHorizontalSpace = true;
composite = getFormToolkit().createComposite(this);
composite.setLayoutData(gridData1);
composite.setLayout(gridLayout);
backButton = new Button(composite, SWT.NONE);
backButton.setText("Back");
backButton.setLayoutData(gridData2);
backButton.addMouseListener(new org.eclipse.swt.events.MouseAdapter() {
public void mouseDown(org.eclipse.swt.events.MouseEvent e) {
backPressed();
}

});
nextButton = new Button(composite, SWT.NONE);
nextButton.setText("Next");
nextButton.addMouseListener(new org.eclipse.swt.events.MouseAdapter() {
public void mouseDown(org.eclipse.swt.events.MouseEvent e) {
nextPressed();
}
});
finishButton = new Button(composite, SWT.NONE);
finishButton.setText("Finish");
finishButton.addMouseListener(new org.eclipse.swt.events.MouseAdapter() {
public void mouseDown(org.eclipse.swt.events.MouseEvent e) {
finishPressed();
}

});
cancelButton = getFormToolkit().createButton(composite, "Cancel",
SWT.PUSH);
cancelButton
.addMouseListener(new org.eclipse.swt.events.MouseAdapter() {
public void mouseDown(org.eclipse.swt.events.MouseEvent e) {
cancelPressed();
}

});
}

private void nextPressed() {
setCurrentTabItem(currentStep + 1);
for(int i=currentStep+1;i<panelSteps.length;i++) {
ivjTabFolder.getItem(i).dispose();
}

}

private void backPressed() {
setCurrentTabItem(currentStep - 1);

}
public void cancelPressed() {

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActi vePage().closeEditor(
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActi vePage().getActiveEditor(),
false);
}

private void finishPressed() {
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActi vePage().closeEditor(
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActi vePage().getActiveEditor(),
false);


}
public String getMaChaine() {
return maChaine;
}

public void setMaChaine(String maChaine) {
this.maChaine = maChaine;
}


public void setPanelSteps(CTabFolder tabFolder, Composite[] panelSteps) {
this.panelSteps = panelSteps;
this.ivjTabFolder = tabFolder;

for (Composite current:panelSteps) {
current.setVisible(false);
}

setCurrentTabItem(0);
}

public void setCurrentTabItem(int index) {
currentStep = index;
if (currentStep>=ivjTabFolder.getItemCount()) {
CTabItem ctabItem = new CTabItem(ivjTabFolder,SWT.NONE); // @jve
panelSteps[currentStep].setVisible(true);
ctabItem.setControl(panelSteps[currentStep]);
ctabItem.setText( panelSteps[currentStep].getData().toString() );
ivjTabFolder.getParent().layout();
}
manageEnabledButtons();
}

}










error detail :
eclipse.buildId=M20060629-1905
java.version=1.6.0-beta2
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=fr_FR
Command-line arguments: -os win32 -ws win32 -arch x86 -clean

Error
Fri Sep 01 10:59:02 CEST 2006
Exception thrown.

java.lang.ArrayIndexOutOfBoundsException: -1
at org.eclipse.emf.common.util.BasicEList.get(BasicEList.java:5 14)
at
org.eclipse.emf.ecore.resource.impl.ResourceImpl.getEObjectF orURIFragmentRootSegment(ResourceImpl.java:642)
at
org.eclipse.emf.ecore.resource.impl.ResourceImpl.getEObject( ResourceImpl.java:692)
at
org.eclipse.emf.ecore.resource.impl.ResourceImpl.getEObject( ResourceImpl.java:671)
at
org.eclipse.emf.ecore.xmi.impl.XMLHandler.setValueFromId(XML Handler.java:2511)
at
org.eclipse.emf.ecore.xmi.impl.XMLHandler.setAttribValue(XML Handler.java:2439)
at
org.eclipse.emf.ecore.xmi.impl.SAXXMIHandler.handleObjectAtt ribs(SAXXMIHandler.java:74)
at
org.eclipse.emf.ecore.xmi.impl.XMLHandler.createObjectFromFa ctory(XMLHandler.java:1929)
at
org.eclipse.emf.ecore.xmi.impl.XMLHandler.createObjectFromTy peName(XMLHandler.java:1833)
at
org.eclipse.emf.ecore.xmi.impl.XMLHandler.createObject(XMLHa ndler.java:1768)
at
org.eclipse.emf.ecore.xmi.impl.XMLHandler.handleFeature(XMLH andler.java:1576)
at
org.eclipse.emf.ecore.xmi.impl.XMLHandler.processElement(XML Handler.java:876)
at
org.eclipse.emf.ecore.xmi.impl.XMIHandler.processElement(XMI Handler.java:82)
at
org.eclipse.emf.ecore.xmi.impl.XMLHandler.startElement(XMLHa ndler.java:854)
at
org.eclipse.emf.ecore.xmi.impl.XMLHandler.startElement(XMLHa ndler.java:626)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser .startElement(Unknown
Source)
at
com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocume ntParser.emptyElement(Unknown
Source)
at
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScanner Impl.scanStartElement(Unknown
Source)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentS cannerImpl$FragmentContentDriver.next(Unknown
Source)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerIm pl.next(Unknown
Source)
at
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScanner Impl.next(Unknown
Source)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentS cannerImpl.scanDocument(Unknown
Source)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuratio n.parse(Unknown
Source)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuratio n.parse(Unknown
Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(U nknown
Source)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser .parse(Unknown
Source)
at
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSA XParser.parse(Unknown
Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl. java:179)
at
org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doLoad(XMLRes ourceImpl.java:179)
at
org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(Resour ceImpl.java:1089)
at
org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(Resour ceImpl.java:895)
at
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo ad(ResourceSetImpl.java:249)
at
org.eclipse.jem.internal.util.emf.workbench.ProjectResourceS etImpl.demandLoad(ProjectResourceSetImpl.java:83)
at
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLo adHelper(ResourceSetImpl.java:264)
at
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResou rce(ResourceSetImpl.java:390)
at
org.eclipse.jem.internal.util.emf.workbench.ProjectResourceS etImpl.getResource(ProjectResourceSetImpl.java:262)
at
org.eclipse.ve.internal.java.codegen.util.VEModelCacheUtilit y.doLoadFromCache(VEModelCacheUtility.java:103)
at
org.eclipse.ve.internal.java.codegen.core.VEModelInstance.cr eateComposition(VEModelInstance.java:100)
at
org.eclipse.ve.internal.java.codegen.core.JavaSourceTranslat or.reConnect(JavaSourceTranslator.java:1134)
at
org.eclipse.ve.internal.java.codegen.core.JavaSourceTranslat or.decodeDocument(JavaSourceTranslator.java:910)
at
org.eclipse.ve.internal.java.codegen.core.JavaSourceTranslat or.loadModel(JavaSourceTranslator.java:597)
at
org.eclipse.ve.internal.java.codegen.editorpart.JavaVisualEd itorPart$Setup.run(JavaVisualEditorPart.java:1978)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)
Re: Parse error on a custom panel ArrayIndexOutOfBoundsException [message #130591 is a reply to message #130562] Fri, 01 September 2006 15:30 Go to previous message
Eclipse UserFriend
Originally posted by: richkulp.us.NO_SPAM.ibm.com

It is a bug, but the workaround is to change maChaine to:

String maChaine; // @jve:decl-index=0

This forces maChaine to be in the model even though there aren't any
visuals referring to it.

Please create a bugzilla bug so that we can fix this for others. Please
attach your class to the bug as a example of the error.

Also, please include the following text so that we don't need to
reinvestigate the problem again.

------------
The problem is that String maChaine's bean was never added to the model.
But there was an AnnotationEMF created for it. This had an annotates
reference to it, but since the maChaine bean was not in the model, it
was a dangling reference. The standard ResourceImpl expects references
to have a resource, so that it can calculate the URI. But without being
in a resource it didn't know what to do so it punted to -1.

Fix needs to remove Annotiations for any bean that is deleted from the
model. It currently leaves them around.

--
Thanks,
Rich Kulp
Re: Parse error on a custom panel ArrayIndexOutOfBoundsException [message #614592 is a reply to message #130562] Fri, 01 September 2006 15:30 Go to previous message
Eclipse UserFriend
Originally posted by: richkulp.us.NO_SPAM.ibm.com

It is a bug, but the workaround is to change maChaine to:

String maChaine; // @jve:decl-index=0

This forces maChaine to be in the model even though there aren't any
visuals referring to it.

Please create a bugzilla bug so that we can fix this for others. Please
attach your class to the bug as a example of the error.

Also, please include the following text so that we don't need to
reinvestigate the problem again.

------------
The problem is that String maChaine's bean was never added to the model.
But there was an AnnotationEMF created for it. This had an annotates
reference to it, but since the maChaine bean was not in the model, it
was a dangling reference. The standard ResourceImpl expects references
to have a resource, so that it can calculate the URI. But without being
in a resource it didn't know what to do so it punted to -1.

Fix needs to remove Annotiations for any bean that is deleted from the
model. It currently leaves them around.

--
Thanks,
Rich Kulp
Previous Topic:JAR Files with Eclipse
Next Topic:JAR Files with Eclipse
Goto Forum:
  


Current Time: Wed Apr 24 21:04:45 GMT 2024

Powered by FUDForum. Page generated in 0.02737 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top