[kepler-dev] possible bug in DocManager.java
Chad Berkley
berkley at nceas.ucsb.edu
Mon Apr 23 16:31:44 PDT 2007
Cool. Thanks Christopher. That's pretty much what I thought the
problem was. I think the exception was causing execution to return
early from the showDocAttributeTableau() method which hoses the docs
for kepler.
chad
Christopher Brooks wrote:
> Hi Chad,
>
> Getting the documentation for Sinewave works in the devel version of
> Ptolemy II built from CVS today.
>
> However, it was printing a stacktrace about Sinewave not being found,
> it looks like the "See also" was failing:
>
> java.lang.ClassNotFoundException: ptolemy.actor.lib.Sinewave
> at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:164)
> at ptolemy.vergil.actor.DocManager.docClassNameToURL(DocManager.java:438
> )
> at ptolemy.vergil.actor.DocManager.getSeeAlso(DocManager.java:799)
> at ptolemy.vergil.actor.DocViewer._init(DocViewer.java:960)
> at ptolemy.vergil.actor.DocViewer.<init>(DocViewer.java:114)
> at ptolemy.vergil.actor.DocTableau.<init>(DocTableau.java:90)
> at ptolemy.vergil.basic.GetDocumentationAction.showDocAttributeTableau(G
> etDocumentationAction.java:364)
> at ptolemy.vergil.basic.GetDocumentationAction.actionPerformed(GetDocumentationAction.java:156)
> at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
> at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
> at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
> at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
> at javax.swing.AbstractButton.doClick(AbstractButton.java:302)
> at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1000)
> at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1041)
> at java.awt.Component.processMouseEvent(Component.java:5501)
> at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
> at java.awt.Component.processEvent(Component.java:5266)
> at java.awt.Container.processEvent(Container.java:1966)
> at java.awt.Component.dispatchEventImpl(Component.java:3968)
> at java.awt.Container.dispatchEventImpl(Container.java:2024)
> at java.awt.Component.dispatchEvent(Component.java:3803)
> at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
> at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
> at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
> at java.awt.Container.dispatchEventImpl(Container.java:2010)
> at java.awt.Window.dispatchEventImpl(Window.java:1778)
> at java.awt.Component.dispatchEvent(Component.java:3803)
> at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
> at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
> at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
> at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
>
> I modified vergil/actor/DocManager.java so that we catch and ignore
> the exception, which gets rid of the message.
>
> DocManager is set up to print any stacktraces and then return null.
> Perhaps it should be modified so that it does not try to look up the
> Java class on an Actor Oriented class such as Sinewave, but I think
> ignoring the exception is right, because the portion of getSeeAlso()
> that is calling docClassNameToURL() and triggering printing the
> exception is:
>
> URL toRead = docClassNameToURL(_configuration, className, true,
> true, true, false);
> if (toRead != null) {
> result.append("<li><a href=\"" + toRead.toExternalForm()
> + "\">");
> if (toRead.toExternalForm().endsWith(".html")) {
> result.append("Javadoc Documentation");
> } else if (toRead.toExternalForm().endsWith(".java")) {
> result.append("Java Source");
> } else if (toRead.toExternalForm().endsWith(".xml")) {
> result.append("Class Documentation");
> }
> result.append("</a></li>");
> }
>
> The Sinewave Actor Oriented class does not have Javadoc or Java
> source, and it looks like we already have the Class Documentation, so
> I think we are set.
>
> Edward?
>
> _Christopher
> --------
>
> Hi,
>
> I've recently run across a ClassNotFoundException when trying to view
> the documentation for Sinewave in Kepler. I've traced it to
> DocManager.java where, in the method docClassNameToURL, there is a call
> to Class.forName(). The problem is that Sinewave is a moml class, not a
> java class so this fails. I'm not sure if the changes I put into the
> documentation system a few months ago might have caused this or if it is
> just a bug. Has anyone else (specifically those running ptii without
> kepler) had this problem?
>
> thanks,
> chad
>
> ---------------------------------------------------------------------------
> -
> Posted to the ptolemy-hackers mailing list. Please send administrative
> mail for this list to: ptolemy-hackers-request at ptolemy.eecs.berkeley.edu
> --------
More information about the Kepler-dev
mailing list