Skip to content

Commit 205f9eb

Browse files
escaping HTML, adapting regex and making them reluctant
1 parent dcc719f commit 205f9eb

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

sqldev/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,11 @@
172172
<artifactId>spring-jdbc</artifactId>
173173
<version>5.1.0.RELEASE</version>
174174
</dependency>
175+
<dependency>
176+
<groupId>org.springframework</groupId>
177+
<artifactId>spring-web</artifactId>
178+
<version>5.1.0.RELEASE</version>
179+
</dependency>
175180
<dependency>
176181
<groupId>org.oddgen</groupId>
177182
<artifactId>org.oddgen.sqldev</artifactId>

sqldev/src/main/java/org/utplsql/sqldev/ui/runner/RunnerPanel.xtend

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ import oracle.dbtools.raptor.controls.grid.DefaultDrillLink
5757
import oracle.dbtools.raptor.utils.Connections
5858
import oracle.ide.config.Preferences
5959
import oracle.javatools.ui.table.ToolbarButton
60+
import org.springframework.web.util.HtmlUtils
6061
import org.utplsql.sqldev.dal.UtplsqlDao
6162
import org.utplsql.sqldev.model.LimitedLinkedHashMap
6263
import org.utplsql.sqldev.model.preference.PreferenceModel
@@ -539,8 +540,8 @@ class RunnerPanel implements ActionListener, MouseListener, HyperlinkListener {
539540
// Patterns (primarily Asserts, Errors, ServerOutput):
540541
// at "OWNER.PACKAGE.PROCEDURE", line 42
541542
// 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+(&quot;(\S+?)\.(\S+?)(?:\.(\S+?))?&quot;,\s+line\s+([0-9]+))''')
544+
var localText = HtmlUtils.htmlEscape(text)
544545
var m = p1.matcher(localText)
545546
while(m.find) {
546547
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 {
549550
}
550551
// Patterns (primarily Warnings, without line reference, calculate when opening link):
551552
// 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)
553554
m = p2.matcher(localText)
554555
while(m.find) {
555556
val link = '''&nbsp;&nbsp;<a href="«m.group(2).toUpperCase»/«m.group(3).toUpperCase»/1/«m.group(4).toUpperCase»">«m.group(1)»</a>'''

0 commit comments

Comments
 (0)