Version: 12.0.0-rc-23-5
Build #: 29719
Build Date: 2012-Oct-12 01:27:27 PM
If i open a FluidShell terminal and use the command with the attached csv file (tar.csv) which doesnt have any contents, it gets printed to standard out csv2excel -s tar.csv
but if i use the command csv2excel -s tar.csv | source
I get Null Pointer Exception in the Log Files and I cannot use Ctrl+C to cancel and quit the command. The only way to come out of this is to close the FluidShell terminal and open a new one
Exception is below:
10/12 14:33:19.107 Fꆊᡀ∖̦ 5.p uncaught exception
java.lang.NullPointerException
at org.netbeans.lib.terminalemulator.InterpDumb.processChar(Unknown Source)
at \\...\\ .\\हिñçêČάй語简�?한\\.uꄥ⠲ꒂꑰ assert Object.processChar(Unknown Source)
at \\...\\ .\\हिñçêČάй語简�?한\\.qꈭꉕ̿ꅪ.processChar(Unknown Source)
at org.netbeans.lib.terminalemulator.Term.putc_work(Unknown Source)
at org.netbeans.lib.terminalemulator.Term.access$500(Unknown Source)
at org.netbeans.lib.terminalemulator.Term$BaseTermStream.putChars(Unknown Source)
at com.aquafold.datastudio.tools.shell.qꃅꐄ⠎ꒋ enum.putChars(Unknown Source)
at org.netbeans.lib.terminalemulator.Term$12.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:666)
at java.awt.EventQueue.access$400(EventQueue.java:81)
at java.awt.EventQueue$2.run(EventQueue.java:627)
at java.awt.EventQueue$2.run(EventQueue.java:625)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:636)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
|
162 KB
![]() |
1 B
This problem has nothing to do with \csv2excel. The root cause is a binary content with control characters embedded is passed to \source, when \source tries to execute each line in the input and echo it back to terminal, the embedded control characters crashed the Terminal. You can reproduce the same problem using the following commands:
> \csv2excel tar.csv ## this will generate a file named tar.xlsx
> \source tar.xlsx ## this should produce the same error as your test case
I made change so that control characters are replaced with '?' characters before \source writes it to Terminal.
The reason you cannot quit after the problem happened is because Terminal code is running inside Swing thread (see stack trace below); the crash killed the Swing thread and nothing would work after that.
<2012-10-12 20:08:04,218> ERROR [AWT-EventQueue-0] <sun.reflect.GeneratedMethodAccessor48>
java.lang.NullPointerException
at org.netbeans.lib.terminalemulator.InterpDumb.processChar(InterpDumb.java:248)
at com.common.terminal.impl.InterpVt100.processChar(InterpVt100.java:439)
at com.common.terminal.impl.InterpXterm.processChar(InterpXterm.java:266)
at org.netbeans.lib.terminalemulator.Term.putc_work(Term.java:5102)
at org.netbeans.lib.terminalemulator.Term.access$5(Term.java:5101)
at org.netbeans.lib.terminalemulator.Term$BaseTermStream.putChars(Term.java:423)
at com.aquafold.datastudio.tools.shell.FluidTerminalLineDiscipline.putChars(FluidTerminalLineDiscipline.java:30)
at org.netbeans.lib.terminalemulator.Term$12.run(Term.java:3507)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:646)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:607)
at java.awt.EventQueue$1.run(EventQueue.java:605)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:616)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Issue #7792 |
Closed |
Fixed |
Resolved |
Completion |
No due date |
Fixed Build trunk/29726 |
No time estimate |
This problem has nothing to do with \csv2excel. The root cause is a binary content with control characters embedded is passed to \source, when \source tries to execute each line in the input and echo it back to terminal, the embedded control characters crashed the Terminal. You can reproduce the same problem using the following commands:
> \csv2excel tar.csv ## this will generate a file named tar.xlsx
> \source tar.xlsx ## this should produce the same error as your test case
I made change so that control characters are replaced with '?' characters before \source writes it to Terminal.
The reason you cannot quit after the problem happened is because Terminal code is running inside Swing thread (see stack trace below); the crash killed the Swing thread and nothing would work after that.
<2012-10-12 20:08:04,218> ERROR [AWT-EventQueue-0] <sun.reflect.GeneratedMethodAccessor48>
java.lang.NullPointerException
at org.netbeans.lib.terminalemulator.InterpDumb.processChar(InterpDumb.java:248)
at com.common.terminal.impl.InterpVt100.processChar(InterpVt100.java:439)
at com.common.terminal.impl.InterpXterm.processChar(InterpXterm.java:266)
at org.netbeans.lib.terminalemulator.Term.putc_work(Term.java:5102)
at org.netbeans.lib.terminalemulator.Term.access$5(Term.java:5101)
at org.netbeans.lib.terminalemulator.Term$BaseTermStream.putChars(Term.java:423)
at com.aquafold.datastudio.tools.shell.FluidTerminalLineDiscipline.putChars(FluidTerminalLineDiscipline.java:30)
at org.netbeans.lib.terminalemulator.Term$12.run(Term.java:3507)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:646)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:607)
at java.awt.EventQueue$1.run(EventQueue.java:605)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:616)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)