Hello,
I would like to report some issues that occurred while testing the Ruta
Workbench.
There seems to be a problem with certain composed disjunctive rules in
combination with quantifiers.
Please see the source and input files below for clarification.
OS: Windows 8.1
Eclipse Version: Kepler Service Release 1, Build id: 20130919-0819
UIMA Runtime: 2.4.2
Ruta Version: 2.1.0
JDK
Best wishes
Joerg
_____
Ruta Source file:
DECLARE TMP_ConcreteSpecialPLUS;
DECLARE TMP_ConcreteSpecialComposedPLUS;
DECLARE TMP_ConcreteSpecialComposedSTAR;
DECLARE TMP_ConcreteSpecialNumComposedPLUS;
DECLARE TMP_ConcreteNumSpecialComposedPLUS;
DECLARE TMP_GenericAny;
DECLARE TMP_GenericAnyPLUS;
DECLARE TMP_GenericAnyPLUS_Reluctant;
DECLARE TMP_GenericAnySTAR;
DECLARE TMP_GenericAnySTAR_Reluctant;
DECLARE TMP_GenericAll;
DECLARE TMP_GenericAllPLUS;
DECLARE TMP_GenericAllPLUS_Reluctant;
DECLARE TMP_GenericAllSTAR;
DECLARE TMP_GenericAllSTAR_Reluctant;
DECLARE TMP_GenericSharp;
DECLARE TMP_GenericWordPLUS;
DECLARE TMP_ConcreteSw;
DECLARE TMP_ConcreteCw;
DECLARE TMP_ConcreteCwPLUS;
DECLARE TMP_ConcreteSwPLUS;
DECLARE TMP_ConcreteSwCwComposedPLUS;
//
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++
// DOCUMENTATION:
//
// * Rules without comments annotate as intended
// * Commented rules indicate a problem
//
// Adding the '?' modifier to any of the composed disjunctive rules as '(
... | ... )+' or '( ... | ... )*' below
// throws an exception: see excerpt of log file at the end
//
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++
//
============================================================================
=========================================
// Does not match anything
SPECIAL ( SPECIAL | CW | SW )* {-> MARK(TMP_ConcreteSpecialComposedSTAR)}
SPECIAL;
// Does not match anything
(SPECIAL ( SPECIAL | CW )+ SPECIAL) {->
MARK(TMP_ConcreteSpecialComposedPLUS)};
// when adding a '?' after '(...)+' an exception is thrown
(SPECIAL ( NUM | CW )+ SPECIAL) {->
MARK(TMP_ConcreteSpecialNumComposedPLUS)};
(NUM ( SPECIAL | CW )+ NUM) {-> MARK(TMP_ConcreteNumSpecialComposedPLUS)};
//
============================================================================
=========================================
// Works only with '?' - it's the same problem as 'ANY+' resp. 'ALL+' below
(SPECIAL SPECIAL+? SPECIAL) {-> MARK(TMP_ConcreteSpecialPLUS)};
//
============================================================================
=========================================
(SPECIAL CW SPECIAL) {-> MARK(TMP_ConcreteCw)};
(SPECIAL SW SPECIAL) {-> MARK(TMP_ConcreteSw)};
(SPECIAL CW+ SPECIAL) {-> MARK(TMP_ConcreteCwPLUS)};
(SPECIAL SW+ SPECIAL) {-> MARK(TMP_ConcreteSwPLUS)};
// throws an exception when adding a '?' after '(...)+'
(SPECIAL (CW | SW)+ SPECIAL) {-> MARK(TMP_ConcreteSwCwComposedPLUS)};
(SPECIAL W+ SPECIAL) {-> MARK(TMP_GenericWordPLUS)};
//
============================================================================
=========================================
(SPECIAL ANY SPECIAL) {-> MARK(TMP_GenericAny)};
// does not match anything
(SPECIAL ANY+ SPECIAL) {-> MARK(TMP_GenericAnyPLUS)};
(SPECIAL ANY+? SPECIAL) {-> MARK(TMP_GenericAnyPLUS_Reluctant)};
// does not match anything
(SPECIAL ANY* SPECIAL) {-> MARK(TMP_GenericAnySTAR)};
(SPECIAL ANY*? SPECIAL) {-> MARK(TMP_GenericAnySTAR_Reluctant)};
//
============================================================================
=========================================
(SPECIAL ALL SPECIAL) {-> MARK(TMP_GenericAll)};
// does not match anything
(SPECIAL ALL+ SPECIAL) {-> MARK(TMP_GenericAllPLUS)};
(SPECIAL ALL+? SPECIAL) {-> MARK(TMP_GenericAllPLUS_Reluctant)};
// does not match anything
(SPECIAL ALL* SPECIAL) {-> MARK(TMP_GenericAllSTAR)};
(SPECIAL ALL*? SPECIAL) {-> MARK(TMP_GenericAllSTAR_Reluctant)};
//
============================================================================
=========================================
(SPECIAL # SPECIAL) {-> MARK(TMP_GenericSharp)};
_____
Input file:
( CAP CAP CAP sw CAP CAP Cw sw CAP Cw )
( sw Cw sw Cw )
( sw Cw <TAG> sw )
( sw sw )
( Cw Cw )
( CAP CAP )
( sw )
(sw)
(Cw)
( Cw )
( CAP )
( )
( $$$ )
1 Cw $ Cw Cw $ 8
( Cw $ Cw Cw $ )
( Cw 5 Cw Cw 8 )
_____
Log file:
!ENTRY org.eclipse.core.jobs 4 2 2013-12-13 15:56:10.403
!MESSAGE An internal error occurred during: "Label Job".
!STACK 0
org.eclipse.swt.SWTException: Invalid thread access
at org.eclipse.swt.SWT.error(SWT.java:4397)
at org.eclipse.swt.SWT.error(SWT.java:4312)
at org.eclipse.swt.SWT.error(SWT.java:4283)
at org.eclipse.swt.widgets.Display.error(Display.java:1258)
at
org.eclipse.swt.widgets.Display.checkDevice(Display.java:764)
at
org.eclipse.swt.widgets.Display.disposeExec(Display.java:1203)
at
org.eclipse.jdt.internal.ui.viewsupport.ImageDescriptorRegistry.hookDisplay(
ImageDescriptorRegistry.java:77)
at
org.eclipse.jdt.internal.ui.viewsupport.ImageDescriptorRegistry.<init>(Image
DescriptorRegistry.java:40)
at
org.eclipse.jdt.internal.ui.JavaPlugin.internalGetImageDescriptorRegistry(Ja
vaPlugin.java:954)
at
org.eclipse.jdt.internal.ui.JavaPlugin.getImageDescriptorRegistry(JavaPlugin
.java:347)
at
org.eclipse.jdt.internal.debug.ui.JDIModelPresentation.getVariableImage(JDIM
odelPresentation.java:914)
at
org.eclipse.jdt.internal.debug.ui.JDIModelPresentation.getImage(JDIModelPres
entation.java:682)
at
org.eclipse.debug.internal.ui.LazyModelPresentation.getImage(LazyModelPresen
tation.java:127)
at
org.eclipse.debug.internal.ui.DelegatingModelPresentation.getImage(Delegatin
gModelPresentation.java:143)
at
org.eclipse.debug.internal.ui.views.launch.DebugElementHelper.getImageDescri
ptor(DebugElementHelper.java:70)
at
org.eclipse.debug.internal.ui.model.elements.DebugElementLabelProvider.getIm
ageDescriptor(DebugElementLabelProvider.java:72)
at
org.eclipse.debug.internal.ui.model.elements.VariableLabelProvider.getImageD
escriptor(VariableLabelProvider.java:70)
at
org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider.getImageDe
scriptor(ElementLabelProvider.java:289)
at
org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider.retrieveLa
bel(ElementLabelProvider.java:216)
at
org.eclipse.jdt.internal.debug.ui.variables.JavaVariableLabelProvider.retrie
veLabel(JavaVariableLabelProvider.java:183)
at
org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider$LabelUpdat
er.run(ElementLabelProvider.java:160)
at
org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider$LabelJob.r
un(ElementLabelProvider.java:74)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
---
Diese E-Mail ist frei von Viren und Malware, denn der avast! Antivirus Schutz
ist aktiv.
http://www.avast.com