@@ -57,6 +57,7 @@ import oracle.dbtools.raptor.controls.grid.DefaultDrillLink
57
57
import oracle.dbtools.raptor.utils.Connections
58
58
import oracle.ide.config.Preferences
59
59
import oracle.javatools.ui.table.ToolbarButton
60
+ import org.springframework.web.util.HtmlUtils
60
61
import org.utplsql.sqldev.dal.UtplsqlDao
61
62
import org.utplsql.sqldev.model.LimitedLinkedHashMap
62
63
import org.utplsql.sqldev.model.preference.PreferenceModel
@@ -539,8 +540,8 @@ class RunnerPanel implements ActionListener, MouseListener, HyperlinkListener {
539
540
// Patterns (primarily Asserts, Errors, ServerOutput):
540
541
// at "OWNER.PACKAGE.PROCEDURE", line 42
541
542
// at "OWNER.PROCEDURE", line 42
542
- val p1 = Pattern . compile(' ' ' \s +("([^ \. ]+ )\. ([^ \. "]+ )(?:\. ([^ \" ]+ ))?" ,\s +line\s +([0-9]+))' ' ' )
543
- var localText = text
543
+ val p1 = Pattern . compile(' ' ' \s +("( \S +? )\. (\S +? )(?:\. (\S +? ))?" ,\s +line\s +([0-9]+))' ' ' )
544
+ var localText = HtmlUtils . htmlEscape( text)
544
545
var m = p1. matcher(localText)
545
546
while (m. find) {
546
547
val link = ' ' ' <a href="«m.group(2)»/«m.group(3)»/«m.group(5)»">«m.group(1)»</a>' ' '
@@ -549,7 +550,7 @@ class RunnerPanel implements ActionListener, MouseListener, HyperlinkListener {
549
550
}
550
551
// Patterns (primarily Warnings, without line reference, calculate when opening link):
551
552
// owner.package.procedure
552
- val p2 = Pattern . compile(' ' ' ^\s {2}(\S +)\. (\S +)\. (\S +)$' ' ' , Pattern . MULTILINE )
553
+ val p2 = Pattern . compile(' ' ' ^\s {2}(( \S +? )\. (\S +? )\. (\S +?) )$' ' ' , Pattern . MULTILINE )
553
554
m = p2. matcher(localText)
554
555
while (m. find) {
555
556
val link = ' ' ' <a href="«m.group(2).toUpperCase»/«m.group(3).toUpperCase»/1/«m.group(4).toUpperCase»">«m.group(1)»</a>' ' '
0 commit comments