When debugging java code, the functionality of stepping in, over and out is
When debugging a JSP, it is certainly not so.
If I am debugging a JSP and I set a breakpoint at a line that includes another
JSP, I think step in should go into that JSP, step over should continue on to
the next line in the JSP that I am looking at. If I'm in the included JSP,
step out should take me back to the including JSP.
I understand that this might be very difficult to implement, if not impossible,
but it would make a lot more sense.
Current behavior of "step out" on a typical JSP is that it reports "unavailable
source file." at org.apache.jasper.servlet.JspServlet.service line 385
I discussed about this bug with Jan Jancura (jj97931) (debugger core).
We agree, that the corection is difficult, but possible (about 14 days) and
that this not bug, but rfe.
Transferred from BugTraq 4389763.
Discussed this with Jeff Hoffman today. We think that the
desirable behaviour here would be:
- If you are on a request dispatcher statement
<jsp:forward> or <jsp:include>, then this should
cause the debugger to stop on the first line of
code in the included file
- If you are on a line that indicates a static include,
go to the first line in the included file
- If you are on a custom action, try to step into the
relevant tag handler method.
- If you are in a scriptlet or similar with a java method
invocation on another object, same as a java class.
If we can't implement the first two, it might be better
to disable the step into action?
- If in a JSP that was dispatched to (included or
forwarded) run to the end of the JSP and stop on the
servlet or JSP that forwarded to it and stop on the next
line of code in that file (or run to end if this object
handled the incoming request.
- If in a JSP that was statically included (includes
prelude or coda), go to the first line of code in the
including file after the include statement. For a coda,
this means to the same as for a dynamic include since there
are no more lines in the JSP itself.
- If you're in a tag handler or other java object invoked
from a JSP, you should end up in the JSP.
Step over should go to the next line in the current source,
that one should be trivial with JSR-45.
Almost all of these work now.
The only remaining problems are static includes - Step Over and Step
Out does not work as expected. Status is:
Step In - steps into include
Step Over - steps into include
Step Out - steps out of the whole jsp itself
This will need to be fixed by some hidden breakpoints, or some
advanced stepping filtering. Will see whether we'll have time to fix
these to promo-D.
*** Issue 40428 has been marked as a duplicate of this issue. ***
Previously targeted for 4.0, so hopefully will be fixed in 4.1.
Not as easy as it looks.
JSR-45 solved many things but on the other hand it cannot solve the remaining.
Generally, the problem is that the actins like step over/into are in fact
performed on Java source, not on JSP. JSR-45 then translates the Java lines into
JSP lines and we cannot easily decide whether to continue or not.
e.g., JSP parser should be involved in solving this issue. It will be done
hopefully in the next version.
This old bug may not be relevant anymore. If you can still reproduce it in 8.2 development builds please reopen this issue.
Thanks for your cooperation,
NetBeans IDE 8.2 Release Boss