[rules-users] Exception when trying to find a field when debugging

skasab2s skasab2s at smail.inf.fh-brs.de
Wed Sep 21 06:41:24 EDT 2011


Hello,

I have an object with a timestamp field which I declared this way in my rule
file: 

/declare VpAction
    @role( event )
    @timestamp ( myGregorianCalendar.getTimeInMillis())
end /

where myGregorianCalendar is from type java.util.GregorianCalendar.

Using the rule file in my application works fine (and the timestamp of the
events is recognized correctly, comparisons of events like 'before' and
'after' work too), but when I try setting a breakpoint within this rule
file, I get an exception (see below).

Nevertheless the breakpoint appears as 'set'. But when I debug my
application as a drools application, all breakpoints of my rule file are
skipped, so debugging is impossible. My other rule files don't have event
declarations and the exception doesn't appear there and the rules there are
debuggable.

Any ideas? Thanks in advance!

Here is the exception:
/!SUBENTRY 1 org.drools.eclipse 4 0 2011-09-20 22:27:47.251
!MESSAGE Cannot determine ruleInfo
L/RulesDepotConf/GarmischRulesConf/rules/ValidationEarLeavingActions.drl 69
!STACK 0
org.drools.RuntimeDroolsException: Field/method
'zeitStempel.getTimeInMillis()' not found for class 'e.ar.data.VpAction'

	at
org.drools.base.ClassFieldAccessorFactory.getClassFieldReader(ClassFieldAccessorFactory.java:136)
	at
org.drools.base.ClassFieldAccessorCache$CacheEntry.getReadAccessor(ClassFieldAccessorCache.java:169)
	at
org.drools.base.ClassFieldAccessorCache.getReadAcessor(ClassFieldAccessorCache.java:102)
	at
org.drools.base.ClassFieldAccessorStore.wire(ClassFieldAccessorStore.java:419)
	at
org.drools.base.ClassFieldAccessorStore.getReader(ClassFieldAccessorStore.java:118)
	at
org.drools.base.ClassFieldAccessorStore.getReader(ClassFieldAccessorStore.java:95)
	at
org.drools.compiler.PackageBuilder.processTypeDeclarations(PackageBuilder.java:1553)
	at org.drools.compiler.PackageBuilder.mergePackage(PackageBuilder.java:985)
	at org.drools.compiler.PackageBuilder.newPackage(PackageBuilder.java:973)
	at
org.drools.compiler.PackageBuilder.processTypeDeclarations(PackageBuilder.java:1439)
	at org.drools.compiler.PackageBuilder.mergePackage(PackageBuilder.java:985)
	at org.drools.compiler.PackageBuilder.newPackage(PackageBuilder.java:973)
	at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:686)
	at
org.drools.eclipse.DroolsEclipsePlugin.generateParsedResource(DroolsEclipsePlugin.java:439)
	at
org.drools.eclipse.DroolsEclipsePlugin.generateParsedResource(DroolsEclipsePlugin.java:360)
	at
org.drools.eclipse.DroolsEclipsePlugin.parseResource(DroolsEclipsePlugin.java:273)
	at
org.drools.eclipse.debug.core.DroolsLineBreakpoint.setJavaBreakpointProperties(DroolsLineBreakpoint.java:90)
	at
org.drools.eclipse.debug.core.DroolsDebugTarget.breakpointAdded(DroolsDebugTarget.java:91)
	at
org.eclipse.debug.internal.core.BreakpointManager$BreakpointNotifier.run(BreakpointManager.java:920)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at
org.eclipse.debug.internal.core.BreakpointManager$BreakpointNotifier.notify(BreakpointManager.java:946)
	at
org.eclipse.debug.internal.core.BreakpointManager.fireUpdate(BreakpointManager.java:860)
	at
org.eclipse.debug.internal.core.BreakpointManager.addBreakpoints(BreakpointManager.java:579)
	at
org.eclipse.debug.internal.core.BreakpointManager.addBreakpoints(BreakpointManager.java:549)
	at
org.eclipse.debug.internal.core.BreakpointManager.addBreakpoint(BreakpointManager.java:542)
	at
org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint.register(JavaBreakpoint.java:194)
	at
org.eclipse.jdt.internal.debug.core.breakpoints.JavaLineBreakpoint$1.run(JavaLineBreakpoint.java:150)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
	at org.eclipse.debug.core.model.Breakpoint.run(Breakpoint.java:335)
	at
org.eclipse.jdt.internal.debug.core.breakpoints.JavaLineBreakpoint.<init>(JavaLineBreakpoint.java:153)
	at
org.drools.eclipse.debug.core.DroolsLineBreakpoint.<init>(DroolsLineBreakpoint.java:58)
	at
org.drools.eclipse.editors.DroolsLineBreakpointAdapter.toggleLineBreakpoints(DroolsLineBreakpointAdapter.java:93)
	at
org.eclipse.debug.ui.actions.ToggleBreakpointAction.run(ToggleBreakpointAction.java:106)
	at
org.eclipse.ui.texteditor.AbstractTextEditor$14.triggerAction(AbstractTextEditor.java:2909)
	at
org.eclipse.ui.texteditor.AbstractTextEditor$14.mouseDoubleClick(AbstractTextEditor.java:2934)
	at
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:189)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3540)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3161)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
	at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
	at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
	at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1408)

!ENTRY org.eclipse.jdt.debug 4 125 2011-09-20 22:27:56.287
!MESSAGE Internal error logged from JDI Debug: 
!STACK 0
org.drools.RuntimeDroolsException: Field/method
'zeitStempel.getTimeInMillis()' not found for class 'e.ar.data.VpAction'

	at
org.drools.base.ClassFieldAccessorFactory.getClassFieldReader(ClassFieldAccessorFactory.java:136)
	at
org.drools.base.ClassFieldAccessorCache$CacheEntry.getReadAccessor(ClassFieldAccessorCache.java:169)
	at
org.drools.base.ClassFieldAccessorCache.getReadAcessor(ClassFieldAccessorCache.java:102)
	at
org.drools.base.ClassFieldAccessorStore.wire(ClassFieldAccessorStore.java:419)
	at
org.drools.base.ClassFieldAccessorStore.getReader(ClassFieldAccessorStore.java:118)
	at
org.drools.base.ClassFieldAccessorStore.getReader(ClassFieldAccessorStore.java:95)
	at
org.drools.compiler.PackageBuilder.processTypeDeclarations(PackageBuilder.java:1553)
	at org.drools.compiler.PackageBuilder.mergePackage(PackageBuilder.java:985)
	at org.drools.compiler.PackageBuilder.newPackage(PackageBuilder.java:973)
	at
org.drools.compiler.PackageBuilder.processTypeDeclarations(PackageBuilder.java:1439)
	at org.drools.compiler.PackageBuilder.mergePackage(PackageBuilder.java:985)
	at org.drools.compiler.PackageBuilder.newPackage(PackageBuilder.java:973)
	at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:686)
	at
org.drools.eclipse.DroolsEclipsePlugin.generateParsedResource(DroolsEclipsePlugin.java:439)
	at
org.drools.eclipse.DroolsEclipsePlugin.generateParsedResource(DroolsEclipsePlugin.java:360)
	at
org.drools.eclipse.DroolsEclipsePlugin.parseResource(DroolsEclipsePlugin.java:273)
	at
org.drools.eclipse.debug.core.DroolsLineBreakpoint.setJavaBreakpointProperties(DroolsLineBreakpoint.java:90)
	at
org.drools.eclipse.debug.core.DroolsDebugTarget.breakpointRemoved(DroolsDebugTarget.java:481)
	at
org.eclipse.debug.internal.core.BreakpointManager$BreakpointNotifier.run(BreakpointManager.java:923)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at
org.eclipse.debug.internal.core.BreakpointManager$BreakpointNotifier.notify(BreakpointManager.java:946)
	at
org.eclipse.debug.internal.core.BreakpointManager.fireUpdate(BreakpointManager.java:860)
	at
org.eclipse.debug.internal.core.BreakpointManager.removeBreakpoints(BreakpointManager.java:471)
	at
org.eclipse.debug.internal.core.BreakpointManager.removeBreakpoint(BreakpointManager.java:450)
	at org.eclipse.debug.core.model.Breakpoint.delete(Breakpoint.java:122)
	at
org.drools.eclipse.editors.DroolsLineBreakpointAdapter.toggleLineBreakpoints(DroolsLineBreakpointAdapter.java:86)
	at
org.eclipse.debug.ui.actions.ToggleBreakpointAction.run(ToggleBreakpointAction.java:106)
	at
org.eclipse.ui.texteditor.AbstractTextEditor$14.triggerAction(AbstractTextEditor.java:2909)
	at
org.eclipse.ui.texteditor.AbstractTextEditor$14.mouseDoubleClick(AbstractTextEditor.java:2934)
	at
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:189)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3540)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3161)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
	at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
	at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
	at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1408)/

--
View this message in context: http://drools.46999.n3.nabble.com/Exception-when-trying-to-find-a-field-when-debugging-tp3355071p3355071.html
Sent from the Drools: User forum mailing list archive at Nabble.com.



More information about the rules-users mailing list