PL/SQL Developer hangs forever after typing a period

juanian

Member²
If a parameter in a function's parameter list accidentally doesn't have a type, typing a period (within a package function body) after the parameter name causes PL/SQL Developer to hang forever.

Sample code:

Code:
CREATE OR REPLACE PACKAGE BODY TEST_BOOM IS

  FUNCTION boomer(p_param) RETURN BOOLEAN IS
  BEGIN
  	p_param; <-- over here
  END;

BEGIN
  NULL;
END TEST_BOOM;
Putting the cursor between the word p_param and the semicolon, then typing a period will cause the hang to occur.

PL/SQL version: 7.1.4.1390
 
Can you modify the shortcut and add the noqueryhints parameter? For example:

"C:\Program Files\PLSQL Developer\plsqldev.exe" noqueryhints

Let me know if this affects the problem.
 
I have NoQueryHints already. There is no active Oracle query when it hangs; PSD is stuck in a deep CPU-bound loop.

debug.txt shows:
1/29/2008 4:01:01 PM UpdateContents
1/29/2008 4:01:01 PM Source = CREATE OR REPLACE PACKAGE BODY TEST_BOOM IS
1/29/2008 4:01:01 PM UpdatingContents: Thread Started
1/29/2008 4:01:01 PM ContentsThread: Resume
1/29/2008 4:01:01 PM ContentsThread: Analyze
1/29/2008 4:01:01 PM ContentsThread: Valid
1/29/2008 4:01:01 PM ContentsThread: Suspend started
 
One note: You do need to be logged into Oracle for this to occur.

I have confirmed that this bug existed in versions back to 7.0.3. (I haven't found anyone (yet) with an earlier version.)
 
If this is reproducible, can you send me the program code by e-mail and the exact steps required to reproduce this?
 
Uh, the program code is in the first posting of this thread, along with the exact steps to reproduce it. What other information would you like? (You will need to be connected to Oracle for this to hang PL/SQL Developer.)
 
Uh, the program code is in the first posting of this thread, along with the exact steps to reproduce it. What other information would you like?
Sorry, I must have had a black-out :( . I can reproduce it, and we'll fix it of course.
 
Hello,

Well yes can re create the problem, no doubt about it it hangs and its bug. But I would like to know where such kind of code fragment applicable, becuse can we give function parameter with out datatype? And could any one please post practical example where we have to code such PL SQL statement.

Thanx in advance
./amfelk
 
The 'real world' example of how this occurred was when I was writing some new code. I had updated an existing procedure, and I added a call to a new function that I hadn't written yet.

When I was ready to write the new function, I copied the line (which had the call to the function) to the location I was putting the new function, and I proceeded to write the code for the function. Accidentally, I had forgotten to assign the types to the parameters.

When I was trying to access a field from a record parameter, I wasn't surprised when PL/SQL Developer took a while to react after typing the period (I'm used to having to wait while the hint list is built). I was surprised when it never came back (and I lost only about 15 minutes of coding).

Oddly, the code I had last saved seemed to be more current than the code that was recovered when I restarted PL/SQL Developer.

So, I would never intentionally write code like that, but no IDE should react that badly to such a simple omission.
 
Back
Top