\csv2html -s binary.mp3
) freezes the current FS tab and produces NullPointerException errors in View Log.
This has something to do with sending control characters to Term, see stack trace below for more info.
We switched from jackson CsvMapper to AquaCsvReader per issue #7808. Commands now need to filter out control characters if output to be written to FS terminal. I modified \csv2html and \csv2xml and added control character filter; did not change \csv2json which seems to be able to deal with binary input without any problem. SVN r30016.
Note that even control character filter is added, there is no guarantee that Term would never crash in this test case. Passing an Excel file to 'csv2xml -s' might kill Term sometimes.
<2012-11-02 14:32:12,390> ERROR [AWT-EventQueue-0] <sun.reflect.GeneratedMethodAccessor45>
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)
I did the same test case with the mp3 file and it still gives NPE and freezes
I did the same test case with the mp3 file and it still gives NPE and freezes
> I did the same test case with the mp3 file and it still gives NPE and freezes
Can you email me your mp3 file so that I can try it out on my desktop?
> I did the same test case with the mp3 file and it still gives NPE and freezes
Can you email me your mp3 file so that I can try it out on my desktop?
I tried you mp3 file several times on my desktop, they all went through. Please note the 'Fixed Build' field says the fix is made in trunk, not the 12.0 branch.
I tried you mp3 file several times on my desktop, they all went through. Please note the 'Fixed Build' field says the fix is made in trunk, not the 12.0 branch.
I get this for v12.0.5-1
11/5 15:27:57.342 Bᛮꌪꃥꀋ float.uncaughtException Uncaught Exception
java.lang.NullPointerException
at org.netbeans.lib.terminalemulator.InterpDumb.processChar(Unknown Source)
at \\...\\ .\\हिñçêČάй語简�?한\\.iꄥꅌ⣧ꉫ final interface.processChar(Unknown Source)
at \\...\\ .\\हिñçêČάй語简�?한\\.p5̨ꍗꀃ this implements.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ꉤꊡᠮꑾ float.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)
11/5 15:27:57.342 Bᛮꌪꃥꀋ float.uncaughtException Uncaught Exception
I get this for v12.0.5-1
11/5 15:27:57.342 Bᛮꌪꃥꀋ float.uncaughtException Uncaught Exception
java.lang.NullPointerException
at org.netbeans.lib.terminalemulator.InterpDumb.processChar(Unknown Source)
at \\...\\ .\\हिñçêČάй語简�?한\\.iꄥꅌ⣧ꉫ final interface.processChar(Unknown Source)
at \\...\\ .\\हिñçêČάй語简�?한\\.p5̨ꍗꀃ this implements.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ꉤꊡᠮꑾ float.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)
11/5 15:27:57.342 Bᛮꌪꃥꀋ float.uncaughtException Uncaught Exception
Verified using ADStudio 12.0.5 on Ubuntu 12.10 with the initial mp3 file that was tiggering the issue and now the problem no longer occurs. Also tried with other different random binary files and the mentioned Exception no longer shows up.
Verified using ADStudio 12.0.5 on Ubuntu 12.10 with the initial mp3 file that was tiggering the issue and now the problem no longer occurs. Also tried with other different random binary files and the mentioned Exception no longer shows up.
Verified using ADStudio 12.0.6, the bug still no longer shows up, therefor I'll be Closing this issue.
Tariq, if it still occurs for you, please Reopen the issue and give some more details on how could we also reproduce it.
Verified using ADStudio 12.0.6, the bug still no longer shows up, therefor I'll be Closing this issue.
Tariq, if it still occurs for you, please Reopen the issue and give some more details on how could we also reproduce it.
Issue #7909 |
Closed |
Fixed |
Resolved |
Completion |
No due date |
Fixed Build trunk/30016 |
No time estimate |
3 issue links |
relates to #7910
Issue #7910Make each FS tab independent from the others |
relates to #7808
Issue #7808Apply the CsvReader.java API to the commands csv2html, csv2json, csv2xml in Transformer.java |
relates to #7845
Issue #7845\csv2* behavior on binary files |
This has something to do with sending control characters to Term, see stack trace below for more info.
We switched from jackson CsvMapper to AquaCsvReader per issue #7808. Commands now need to filter out control characters if output to be written to FS terminal. I modified \csv2html and \csv2xml and added control character filter; did not change \csv2json which seems to be able to deal with binary input without any problem. SVN r30016.
Note that even control character filter is added, there is no guarantee that Term would never crash in this test case. Passing an Excel file to 'csv2xml -s' might kill Term sometimes.
<2012-11-02 14:32:12,390> ERROR [AWT-EventQueue-0] <sun.reflect.GeneratedMethodAccessor45>
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)