Skip to content
This repository

Uncaught Exception Error in Serial IO Package #120

Closed
wcunning opened this Issue October 13, 2012 · 15 comments

6 participants

William Cunningham Jan Willem Janssen Matthias Blaicher Julian Eric Preston Stephan Walter
William Cunningham

Connecting and talking to an up to date openbench logic sniffer does not work with OLS 0.9.6 and Fedora 17 x86_64. The device definitely registers at /dev/ttyACM0, but when I attempt to begin a capture or get device metadata, the attached pastebin'd output shows up. I don't know what I need to do to diagnose this, so suggestions are appreciated.

http://pastebin.com/SduP1EpU

Jan Willem Janssen
Owner

Do you coincidentally run on Linux 3.5? If so, you (and many others) are suffering from a bug in PureJavacomm: nyholku/purejavacomm#12 which is not yet resolved (though there's a rudimentary fix for it)...

Matthias Blaicher

Oh well, I am also running into this problem with kernel 3.4.7. This is really unfortunate. So I guess I have to stick to ols 0.9.4 for the foreseeable future.

Julian

Jawi there is a fix out. nyholku/purejavacomm@df25644

Jan Willem Janssen jawi referenced this issue from a commit October 29, 2012
Jan Willem Janssen Fixed issue #120:
- upgraded to PureJavacomm v0.0.10 to fix the serial issues on
  recent Linux kernels with CDC/ACM devices.
a11961d
Jan Willem Janssen
Owner

I've released a service pack for OLS client 0.9.6 that incorporates the latest version of PureJavacomm. See http://dangerousprototypes.com/forum/viewtopic.php?f=57&t=1198&p=12425#p12425 for download links.

Jan Willem Janssen jawi closed this October 29, 2012
Eric Preston

Uh... this error is still happening for me on F17 x86_64 with 0.9.6.1 and kernel 3.6.3-1.fc17.x86_64

Jan Willem Janssen
Owner

That's odd; could you supply me a stacktrace of the error, is it the exact same issue or perhaps a slightly different one?

Anyways, I'll try to set up a F17 in a virtual machine to see what's causing this...

Eric Preston

It's exactly the same, at least the first few lines and last few lines at a quick glance.
I'll try to post a error log shortly.

Jan Willem Janssen
Owner

Ok; I got around to installing F17 in a virtual machine, using the latest updates (Linux fedora 3.6.6-1.fc17.x86_64 ...) and saw two observations:

  1. initially, the Analyzer port dropdown is empty (which is good as I don't want to make any educated guess about the port the device is presumed on), but;
  2. if I hit the Show device metadata button, it can lead to a similar exception as mentioned in this thread earlier. It looks very similar, but in fact is referring to slightly different line numbers.

Once I select the proper port in the Analyzer port dropdown, I am able to successfully detect the device metadata and run a capture normally. I only saw this behavior once, and could no longer reproduce it after selecting a device port.

So, the question is: did you explicitly select an device port or not? If not, does the problem go away if you do? If so, does it help to update your Fedora installation?

Eric Preston

Show device metadata gives me the following stack trace:

java.lang.IllegalStateException: JTermios call returned -1 at class jtermios.JTermios$JTermiosLogging line 489
at purejavacomm.PureJavaSerialPort.checkReturnCode(PureJavaSerialPort.java:908)
at purejavacomm.PureJavaSerialPort.(PureJavaSerialPort.java:707)
at purejavacomm.CommPortIdentifier.open(CommPortIdentifier.java:138)
at nl.lxtreme.ols.io.serial.CommConnectionFactory.getSerialPort(CommConnectionFactory.java:141)
at nl.lxtreme.ols.io.serial.CommConnectionFactory.obtainSerialPort(CommConnectionFactory.java:177)
at nl.lxtreme.ols.io.serial.CommConnectionFactory.createConnection(CommConnectionFactory.java:72)
at nl.lxtreme.ols.io.ConnectorServiceImpl.open(ConnectorServiceImpl.java:160)
at org.sump.device.logicsniffer.LogicSnifferDevice.createStreamConnection(LogicSnifferDevice.java:159)
at org.sump.device.logicsniffer.LogicSnifferDetectionTask.call(LogicSnifferDetectionTask.java:82)
at org.sump.device.logicsniffer.LogicSnifferDeviceProfilePanel.obtainDeviceMetadata(LogicSnifferDeviceProfilePanel.java:353)
at org.sump.device.logicsniffer.LogicSnifferDeviceProfilePanel$ShowDeviceMetadataAction.actionPerformed(LogicSnifferDeviceProfilePanel.java:243)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3312)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:682)
at java.awt.EventQueue$3.run(EventQueue.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:696)
at java.awt.EventQueue$4.run(EventQueue.java:694)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:155)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
at java.awt.Dialog.show(Dialog.java:1077)
at java.awt.Component.show(Component.java:1651)
at java.awt.Component.setVisible(Component.java:1603)
at java.awt.Window.setVisible(Window.java:1014)
at java.awt.Dialog.setVisible(Dialog.java:1003)
at org.sump.device.logicsniffer.LogicSnifferConfigDialog.showDialog(LogicSnifferConfigDialog.java:586)
at org.sump.device.logicsniffer.LogicSnifferDevice.setupCapture(LogicSnifferDevice.java:138)
at nl.lxtreme.ols.client.ClientController.captureData(ClientController.java:535)
at nl.lxtreme.ols.client.action.CaptureAction.actionPerformed(CaptureAction.java:97)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3312)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:682)
at java.awt.EventQueue$3.run(EventQueue.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:696)
at java.awt.EventQueue$4.run(EventQueue.java:694)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

Jan Willem Janssen
Owner

But, has the Analyzer Port dropdown a value or not? Does the exception disappear when you explicitly (re)select a value?

Eric Preston

My bad. Backtrace is when no port is selected.
Capture is working but "Show Meta Data" resets device type pull-down menu to a blank entry
but no backtrace occurs.

Jan Willem Janssen
Owner

Ok; forked a new issue about this: #129.

Thanks for testing this!

Stephan Walter
sw commented June 22, 2013

Both capture and "show device metadata" are not working form me on 0.9.6.1 with the same error.

I'm running Ubuntu 64-Bit, Linux 3.8.0-25. Trying to connect to a Bus Pirate v3.b Firmware v6.1 r1676.

Port is /dev/ttyUSB0
Bus 001 Device 009: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

Stephan Walter
sw commented June 22, 2013

It's working with ols-0.9.7-SNAPSHOT. This seems to be a duplicate of #133

Jan Willem Janssen
Owner
jawi commented June 22, 2013

Thanks for testing this out. This issue was already closed, and #133 is a continuation of this issue...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.