Product: Aqua Data Studio
Version: 12.0.0-beta-50
Build #: 29331
Build Date: 2012-Sep-19 01:25:57 PM
Operating Environment: Linux (3.2.0-29-generic, amd64) / UTF-8 / en / US / Sun Microsystems Inc. 1.6.0_35-b10
Memory: Max=3,819,634,688; Total=426,639,360; Free=317,402,720; CPUs=8
NPE on using the reconnect command and pipelining with session -c
To reproduce
1. Open a fluidshell terminal to Oracle 9i database
2. enter below command
reconnect | session -c default
You get NPE
Note : execute the command 1-2 times if you dont get it the first time
java.lang.NullPointerException
at \\...\\ .\\हिñçêČάй語简�?한\\.R᠁ᝋ⠭̜.e(Unknown Source)
at \\...\\ .\\हिñçêČάй語简�?한\\.R᠁ᝋ⠭̜.jO(Unknown Source)
at \\...\\ .\\हिñçêČάй語简�?한\\.R᠁ᝋ⠭̜.De(Unknown Source)
at \\...\\ .\\हिñçêČάй語简�?한\\.L̆ꁍꉽꈮ.f(Unknown Source)
at \\...\\ .\\हिñçêČάй語简�?한\\.L̆ꁍꉽꈮ.a(Unknown Source)
at \\...\\ .\\हिñçêČάй語简�?한\\.Uᜨᠼ3ꊢ super break.execute(Unknown Source)
at \\...\\ .\\हिñçêČάй語简�?한\\.Gꄗꈨ8ᡤ switch int.run(Unknown Source)
at java.lang.Thread.run(Thread.java:662)
at \\...\\ .\\हिñçêČάй語简�?한\\.vꍛꃄᡄꄐ 8 6.run(Unknown Source)
|
19 KB
You also could easily reproduce this problem by executing:
prompt$ reconnect | reconnect | reconnect | reconnect
Both \reconnect and '\session -c' will perform a 'close connection' operation. Since commands are executed in a pipeline, hence they are executed concurrently. Unfortunately, the current implementation of fluid shell (cli) is not capable of supporting concurrent access (most of its code is not 'synchronized'). For the time being, I made change to throw a 'Connection is already closed.' exception in this test case when conflict is detected.
Issue #7618 |
Closed |
Fixed |
Resolved |
Completion |
No due date |
Fixed Build trunk/29388 |
No time estimate |
1 issue link |
relates to #8191
Issue #8191FS: disconnect command seems to work async. Is this by design? |
You also could easily reproduce this problem by executing:
prompt$ reconnect | reconnect | reconnect | reconnect
Both \reconnect and '\session -c' will perform a 'close connection' operation. Since commands are executed in a pipeline, hence they are executed concurrently. Unfortunately, the current implementation of fluid shell (cli) is not capable of supporting concurrent access (most of its code is not 'synchronized'). For the time being, I made change to throw a 'Connection is already closed.' exception in this test case when conflict is detected.