Closed Bug 437988 Opened 17 years ago Closed 17 years ago

Rhino fails to implement abstract method

Categories

(Rhino Graveyard :: Compiler, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: norrisboyd, Assigned: norrisboyd)

Details

Using this: var tableModel = new AbstractTableModel() { getRowCount: function() { return 2; }, getColumnCount: function() { return 2; }, getValueAt: function(row, column) { return "ABC"; } }; var jTable = new JTable(tableModel); results in this: Exception in thread "main" java.lang.AbstractMethodError: adapter1.getColumnCount()I at javax.swing.JTable.createDefaultColumnsFromModel(Unknown Source) at javax.swing.JTable.tableChanged(Unknown Source) at javax.swing.JTable.setModel(Unknown Source) at javax.swing.JTable.<init>(Unknown Source) at javax.swing.JTable.<init>(Unknown Source) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.mozilla.javascript.MemberBox.newInstance(MemberBox.java:184) at org.mozilla.javascript.NativeJavaClass.constructSpecific(NativeJavaClass.java:274) at org.mozilla.javascript.NativeJavaClass.construct(NativeJavaClass.java:193) at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:3380) at ... Same error also for: var tableModel = new JavaAdapter(AbstractTableModel, { getRowCount: function() { return 2; }, getColumnCount: function() { return 2; }, getValueAt: function(row, column) { return "ABC"; } }); var jTable = new JTable(tableModel);
Bug was that Rhino didn't discover abstract methods defined only in interfaces of base classes. Fixed: Checking in src/org/mozilla/javascript/JavaAdapter.java; /cvsroot/mozilla/js/rhino/src/org/mozilla/javascript/JavaAdapter.java,v <-- JavaAdapter.java new revision: 1.115; previous revision: 1.114 done RCS file: /cvsroot/mozilla/js/rhino/testsrc/jstests/437988.jstest,v done Checking in testsrc/jstests/437988.jstest; /cvsroot/mozilla/js/rhino/testsrc/jstests/437988.jstest,v <-- 437988.jstest initial revision: 1.1 done
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
It still does not work with javax.swing.AbstractAction: Example: importPackage(javax.swing) var action = new AbstractAction() { actionPerformed: function(event) { print("clicked") } } var button = new JButton(action) button.doClick() Result: Exception in thread "main" java.lang.AbstractMethodError: adapter1.actionPerformed(Ljava/awt/event/ActionEvent;)V at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.AbstractButton.doClick(AbstractButton.java:374) at javax.swing.AbstractButton.doClick(AbstractButton.java:354) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:161) at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:247) at org.mozilla.javascript.optimizer.OptRuntime.callProp0(OptRuntime.java:119) at org.mozilla.javascript.gen.c1._c0(Unknown Source) at org.mozilla.javascript.gen.c1.call(Unknown Source) at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:398) at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3065) at org.mozilla.javascript.gen.c1.call(Unknown Source) at org.mozilla.javascript.gen.c1.exec(Unknown Source) at org.mozilla.javascript.tools.shell.Main.evaluateScript(Main.java:564) at org.mozilla.javascript.tools.shell.Main.processFileSecure(Main.java:486) at org.mozilla.javascript.tools.shell.Main.processFile(Main.java:452) at org.mozilla.javascript.tools.shell.Main.processSource(Main.java:443) at org.mozilla.javascript.tools.shell.Main.processFiles(Main.java:196) at org.mozilla.javascript.tools.shell.Main$IProxy.run(Main.java:117) at org.mozilla.javascript.Context.call(Context.java:515) at org.mozilla.javascript.ContextFactory.call(ContextFactory.java:507) at org.mozilla.javascript.tools.shell.Main.exec(Main.java:179) at org.mozilla.javascript.tools.shell.Main.main(Main.java:157) Rhino version: Rhino 1.7 release 0.7.r2.fc12 2009 07 28
You need to log in before you can comment on or make changes to this bug.