Skip to content

Commit f27712f

Browse files
committed
8354084: Streamline XPath API's extension function control
1 parent d14e84c commit f27712f

19 files changed

+215
-331
lines changed

src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncExtFunction.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2017, 2025, Oracle and/or its affiliates. All rights reserved.
33
*/
44
/*
55
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -41,7 +41,7 @@
4141
* the expression executes, it calls ExtensionsTable#extFunction, and then
4242
* converts the result to the appropriate XObject.
4343
* @xsl.usage advanced
44-
* @LastModified: May 2022
44+
* @LastModified: Apr 2025
4545
*/
4646
public class FuncExtFunction extends Function
4747
{
@@ -186,12 +186,6 @@ public FuncExtFunction(java.lang.String namespace,
186186
*/
187187
public XObject execute(XPathContext xctxt) throws TransformerException
188188
{
189-
if (xctxt.isSecureProcessing())
190-
throw new javax.xml.transform.TransformerException(
191-
XPATHMessages.createXPATHMessage(
192-
XPATHErrorResources.ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED,
193-
new Object[] {toString()}));
194-
195189
XObject result;
196190
List<XObject> argVec = new ArrayList<>();
197191
int nArgs = m_argVec.size();

src/java.xml/share/classes/com/sun/org/apache/xpath/internal/jaxp/JAXPExtensionsProvider.java

Lines changed: 2 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2013, 2025, Oracle and/or its affiliates. All rights reserved.
33
*/
44
/*
55
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -37,26 +37,16 @@
3737
/**
3838
*
3939
* @author Ramesh Mandava
40-
* @LastModified: Nov 2017
40+
* @LastModified: Apr 2025
4141
*/
4242
public class JAXPExtensionsProvider implements ExtensionsProvider {
4343

4444
private final XPathFunctionResolver resolver;
45-
private boolean extensionInvocationDisabled = false;
4645

4746
public JAXPExtensionsProvider(XPathFunctionResolver resolver) {
4847
this.resolver = resolver;
49-
this.extensionInvocationDisabled = false;
5048
}
5149

52-
public JAXPExtensionsProvider(XPathFunctionResolver resolver,
53-
boolean featureSecureProcessing, JdkXmlFeatures featureManager ) {
54-
this.resolver = resolver;
55-
if (featureSecureProcessing &&
56-
!featureManager.getFeature(JdkXmlFeatures.XmlFeature.ENABLE_EXTENSION_FUNCTION)) {
57-
this.extensionInvocationDisabled = true;
58-
}
59-
}
6050

6151
/**
6252
* Is the extension function available?
@@ -111,16 +101,6 @@ public Object extFunction(String ns, String funcName, List<XObject> argVec,
111101
//Find the XPathFunction corresponding to namespace and funcName
112102
javax.xml.namespace.QName myQName = new QName( ns, funcName );
113103

114-
// JAXP 1.3 spec says When XMLConstants.FEATURE_SECURE_PROCESSING
115-
// feature is set then invocation of extension functions need to
116-
// throw XPathFunctionException
117-
if ( extensionInvocationDisabled ) {
118-
String fmsg = XSLMessages.createXPATHMessage(
119-
XPATHErrorResources.ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED,
120-
new Object[] { myQName.toString() } );
121-
throw new XPathFunctionException ( fmsg );
122-
}
123-
124104
// Assuming user is passing all the needed parameters ( including
125105
// default values )
126106
int arity = argVec.size();
@@ -167,16 +147,6 @@ public Object extFunction(FuncExtFunction extFunction, List<XObject> argVec)
167147
javax.xml.namespace.QName myQName =
168148
new javax.xml.namespace.QName( namespace, functionName );
169149

170-
// JAXP 1.3 spec says When XMLConstants.FEATURE_SECURE_PROCESSING
171-
// feature is set then invocation of extension functions need to
172-
// throw XPathFunctionException
173-
if ( extensionInvocationDisabled ) {
174-
String fmsg = XSLMessages.createXPATHMessage(
175-
XPATHErrorResources.ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED,
176-
new Object[] { myQName.toString() } );
177-
throw new XPathFunctionException ( fmsg );
178-
}
179-
180150
XPathFunction xpathFunction =
181151
resolver.resolveFunction( myQName, arity );
182152

src/java.xml/share/classes/com/sun/org/apache/xpath/internal/jaxp/XPathImplUtil.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2015, 2025, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -54,7 +54,7 @@
5454
* This class contains several utility methods used by XPathImpl and
5555
* XPathExpressionImpl
5656
*
57-
* @LastModified: Jan 2022
57+
* @LastModified: Apr 2025
5858
*/
5959
class XPathImplUtil {
6060
XPathFunctionResolver functionResolver;
@@ -85,8 +85,7 @@ XObject eval(Object contextItem, com.sun.org.apache.xpath.internal.XPath xpath)
8585
new Object[] {}));
8686
}
8787
if (functionResolver != null) {
88-
JAXPExtensionsProvider jep = new JAXPExtensionsProvider(
89-
functionResolver, featureSecureProcessing, featureManager);
88+
JAXPExtensionsProvider jep = new JAXPExtensionsProvider(functionResolver);
9089
xpathSupport = new com.sun.org.apache.xpath.internal.XPathContext(jep);
9190
} else {
9291
xpathSupport = new com.sun.org.apache.xpath.internal.XPathContext();

src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2019, 2025, Oracle and/or its affiliates. All rights reserved.
33
*/
44
/*
55
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -31,7 +31,7 @@
3131
* Also you need to update the count of messages(MAX_CODE)or
3232
* the count of warnings(MAX_WARNING) [ Information purpose only]
3333
* @xsl.usage advanced
34-
* @LastModified: Nov 2024
34+
* @LastModified: Apr 2025
3535
*/
3636
public class XPATHErrorResources extends ListResourceBundle
3737
{
@@ -305,7 +305,6 @@ public class XPATHErrorResources extends ListResourceBundle
305305
public static final String ER_XPATH_ERROR = "ER_XPATH_ERROR";
306306

307307
//BEGIN: Keys needed for exception messages of JAXP 1.3 XPath API implementation
308-
public static final String ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED = "ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED";
309308
public static final String ER_RESOLVE_VARIABLE_RETURNS_NULL = "ER_RESOLVE_VARIABLE_RETURNS_NULL";
310309
public static final String ER_NO_XPATH_VARIABLE_RESOLVER = "ER_NO_XPATH_VARIABLE_RESOLVER";
311310
public static final String ER_NO_XPATH_FUNCTION_PROVIDER = "ER_NO_XPATH_FUNCTION_PROVIDER";
@@ -766,11 +765,6 @@ public class XPATHErrorResources extends ListResourceBundle
766765

767766
//BEGIN: Definitions of error keys used in exception messages of JAXP 1.3 XPath API implementation
768767

769-
/** Field ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED */
770-
771-
{ ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED,
772-
"Extension function: ''{0}'' can not be invoked when the XMLConstants.FEATURE_SECURE_PROCESSING feature is set to true."},
773-
774768
/** Field ER_RESOLVE_VARIABLE_RETURNS_NULL */
775769

776770
{ ER_RESOLVE_VARIABLE_RETURNS_NULL,

src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_de.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2019, 2025, Oracle and/or its affiliates. All rights reserved.
33
*/
44
/*
55
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -31,7 +31,7 @@
3131
* Also you need to update the count of messages(MAX_CODE)or
3232
* the count of warnings(MAX_WARNING) [ Information purpose only]
3333
* @xsl.usage advanced
34-
* @LastModified: Nov 2024
34+
* @LastModified: Apr 2025
3535
*/
3636
public class XPATHErrorResources_de extends ListResourceBundle
3737
{
@@ -305,7 +305,6 @@ public class XPATHErrorResources_de extends ListResourceBundle
305305
public static final String ER_XPATH_ERROR = "ER_XPATH_ERROR";
306306

307307
//BEGIN: Keys needed for exception messages of JAXP 1.3 XPath API implementation
308-
public static final String ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED = "ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED";
309308
public static final String ER_RESOLVE_VARIABLE_RETURNS_NULL = "ER_RESOLVE_VARIABLE_RETURNS_NULL";
310309
public static final String ER_NO_XPATH_VARIABLE_RESOLVER = "ER_NO_XPATH_VARIABLE_RESOLVER";
311310
public static final String ER_NO_XPATH_FUNCTION_PROVIDER = "ER_NO_XPATH_FUNCTION_PROVIDER";
@@ -766,11 +765,6 @@ public class XPATHErrorResources_de extends ListResourceBundle
766765

767766
//BEGIN: Definitions of error keys used in exception messages of JAXP 1.3 XPath API implementation
768767

769-
/** Field ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED */
770-
771-
{ ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED,
772-
"Erweiterungsfunktion \"{0}\" kann nicht aufgerufen werden, wenn das Feature \"XMLConstants.FEATURE_SECURE_PROCESSING\" auf \"true\" gesetzt ist."},
773-
774768
/** Field ER_RESOLVE_VARIABLE_RETURNS_NULL */
775769

776770
{ ER_RESOLVE_VARIABLE_RETURNS_NULL,

src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_es.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2024, 2025, Oracle and/or its affiliates. All rights reserved.
33
*/
44
/*
55
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -31,7 +31,7 @@
3131
* Also you need to update the count of messages(MAX_CODE)or
3232
* the count of warnings(MAX_WARNING) [ Information purpose only]
3333
* @xsl.usage advanced
34-
* @LastModified: Nov 2024
34+
* @LastModified: Apr 2025
3535
*/
3636
public class XPATHErrorResources_es extends ListResourceBundle
3737
{
@@ -303,7 +303,6 @@ public class XPATHErrorResources_es extends ListResourceBundle
303303
public static final String ER_XPATH_ERROR = "ER_XPATH_ERROR";
304304

305305
//BEGIN: Keys needed for exception messages of JAXP 1.3 XPath API implementation
306-
public static final String ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED = "ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED";
307306
public static final String ER_RESOLVE_VARIABLE_RETURNS_NULL = "ER_RESOLVE_VARIABLE_RETURNS_NULL";
308307
public static final String ER_UNSUPPORTED_RETURN_TYPE = "ER_UNSUPPORTED_RETURN_TYPE";
309308
public static final String ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL = "ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL";
@@ -752,11 +751,6 @@ public class XPATHErrorResources_es extends ListResourceBundle
752751

753752
//BEGIN: Definitions of error keys used in exception messages of JAXP 1.3 XPath API implementation
754753

755-
/** Field ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED */
756-
757-
{ ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED,
758-
"Funci\u00F3n de extensi\u00F3n: no se puede llamar a ''{0}'' cuando la funci\u00F3n XMLConstants.FEATURE_SECURE_PROCESSING est\u00E1 definida en true."},
759-
760754
/** Field ER_RESOLVE_VARIABLE_RETURNS_NULL */
761755

762756
{ ER_RESOLVE_VARIABLE_RETURNS_NULL,

src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_fr.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2022, 2025, Oracle and/or its affiliates. All rights reserved.
33
*/
44
/*
55
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -31,7 +31,7 @@
3131
* Also you need to update the count of messages(MAX_CODE)or
3232
* the count of warnings(MAX_WARNING) [ Information purpose only]
3333
* @xsl.usage advanced
34-
* @LastModified: Nov 2024
34+
* @LastModified: Apr 2025
3535
*/
3636
public class XPATHErrorResources_fr extends ListResourceBundle
3737
{
@@ -303,7 +303,6 @@ public class XPATHErrorResources_fr extends ListResourceBundle
303303
public static final String ER_XPATH_ERROR = "ER_XPATH_ERROR";
304304

305305
//BEGIN: Keys needed for exception messages of JAXP 1.3 XPath API implementation
306-
public static final String ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED = "ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED";
307306
public static final String ER_RESOLVE_VARIABLE_RETURNS_NULL = "ER_RESOLVE_VARIABLE_RETURNS_NULL";
308307
public static final String ER_UNSUPPORTED_RETURN_TYPE = "ER_UNSUPPORTED_RETURN_TYPE";
309308
public static final String ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL = "ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL";
@@ -752,11 +751,6 @@ public class XPATHErrorResources_fr extends ListResourceBundle
752751

753752
//BEGIN: Definitions of error keys used in exception messages of JAXP 1.3 XPath API implementation
754753

755-
/** Field ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED */
756-
757-
{ ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED,
758-
"La fonction d''extension ''{0}'' ne peut pas \u00EAtre appel\u00E9e lorsque la fonctionnalit\u00E9 XMLConstants.FEATURE_SECURE_PROCESSING est d\u00E9finie sur True."},
759-
760754
/** Field ER_RESOLVE_VARIABLE_RETURNS_NULL */
761755

762756
{ ER_RESOLVE_VARIABLE_RETURNS_NULL,

src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_it.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2022, 2025, Oracle and/or its affiliates. All rights reserved.
33
*/
44
/*
55
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -31,7 +31,7 @@
3131
* Also you need to update the count of messages(MAX_CODE)or
3232
* the count of warnings(MAX_WARNING) [ Information purpose only]
3333
* @xsl.usage advanced
34-
* @LastModified: Nov 2024
34+
* @LastModified: Apr 2025
3535
*/
3636
public class XPATHErrorResources_it extends ListResourceBundle
3737
{
@@ -303,7 +303,6 @@ public class XPATHErrorResources_it extends ListResourceBundle
303303
public static final String ER_XPATH_ERROR = "ER_XPATH_ERROR";
304304

305305
//BEGIN: Keys needed for exception messages of JAXP 1.3 XPath API implementation
306-
public static final String ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED = "ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED";
307306
public static final String ER_RESOLVE_VARIABLE_RETURNS_NULL = "ER_RESOLVE_VARIABLE_RETURNS_NULL";
308307
public static final String ER_UNSUPPORTED_RETURN_TYPE = "ER_UNSUPPORTED_RETURN_TYPE";
309308
public static final String ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL = "ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL";
@@ -752,11 +751,6 @@ public class XPATHErrorResources_it extends ListResourceBundle
752751

753752
//BEGIN: Definitions of error keys used in exception messages of JAXP 1.3 XPath API implementation
754753

755-
/** Field ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED */
756-
757-
{ ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED,
758-
"Impossibile richiamare la funzione di estensione ''{0}'' se la funzione XMLConstants.FEATURE_SECURE_PROCESSING \u00E8 impostata su true."},
759-
760754
/** Field ER_RESOLVE_VARIABLE_RETURNS_NULL */
761755

762756
{ ER_RESOLVE_VARIABLE_RETURNS_NULL,

src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ja.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2019, 2025, Oracle and/or its affiliates. All rights reserved.
33
*/
44
/*
55
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -31,7 +31,7 @@
3131
* Also you need to update the count of messages(MAX_CODE)or
3232
* the count of warnings(MAX_WARNING) [ Information purpose only]
3333
* @xsl.usage advanced
34-
* @LastModified: Nov 2024
34+
* @LastModified: Apr 2025
3535
*/
3636
public class XPATHErrorResources_ja extends ListResourceBundle
3737
{
@@ -305,7 +305,6 @@ public class XPATHErrorResources_ja extends ListResourceBundle
305305
public static final String ER_XPATH_ERROR = "ER_XPATH_ERROR";
306306

307307
//BEGIN: Keys needed for exception messages of JAXP 1.3 XPath API implementation
308-
public static final String ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED = "ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED";
309308
public static final String ER_RESOLVE_VARIABLE_RETURNS_NULL = "ER_RESOLVE_VARIABLE_RETURNS_NULL";
310309
public static final String ER_NO_XPATH_VARIABLE_RESOLVER = "ER_NO_XPATH_VARIABLE_RESOLVER";
311310
public static final String ER_NO_XPATH_FUNCTION_PROVIDER = "ER_NO_XPATH_FUNCTION_PROVIDER";
@@ -766,11 +765,6 @@ public class XPATHErrorResources_ja extends ListResourceBundle
766765

767766
//BEGIN: Definitions of error keys used in exception messages of JAXP 1.3 XPath API implementation
768767

769-
/** Field ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED */
770-
771-
{ ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED,
772-
"\u62E1\u5F35\u95A2\u6570: XMLConstants.FEATURE_SECURE_PROCESSING\u6A5F\u80FD\u304Ctrue\u306B\u8A2D\u5B9A\u3055\u308C\u308B\u3068''{0}''\u3092\u8D77\u52D5\u3067\u304D\u307E\u305B\u3093\u3002"},
773-
774768
/** Field ER_RESOLVE_VARIABLE_RETURNS_NULL */
775769

776770
{ ER_RESOLVE_VARIABLE_RETURNS_NULL,

src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ko.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2022, 2025, Oracle and/or its affiliates. All rights reserved.
33
*/
44
/*
55
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -31,7 +31,7 @@
3131
* Also you need to update the count of messages(MAX_CODE)or
3232
* the count of warnings(MAX_WARNING) [ Information purpose only]
3333
* @xsl.usage advanced
34-
* @LastModified: Nov 2024
34+
* @LastModified: Apr 2025
3535
*/
3636
public class XPATHErrorResources_ko extends ListResourceBundle
3737
{
@@ -303,7 +303,6 @@ public class XPATHErrorResources_ko extends ListResourceBundle
303303
public static final String ER_XPATH_ERROR = "ER_XPATH_ERROR";
304304

305305
//BEGIN: Keys needed for exception messages of JAXP 1.3 XPath API implementation
306-
public static final String ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED = "ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED";
307306
public static final String ER_RESOLVE_VARIABLE_RETURNS_NULL = "ER_RESOLVE_VARIABLE_RETURNS_NULL";
308307
public static final String ER_UNSUPPORTED_RETURN_TYPE = "ER_UNSUPPORTED_RETURN_TYPE";
309308
public static final String ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL = "ER_SOURCE_RETURN_TYPE_CANNOT_BE_NULL";
@@ -752,11 +751,6 @@ public class XPATHErrorResources_ko extends ListResourceBundle
752751

753752
//BEGIN: Definitions of error keys used in exception messages of JAXP 1.3 XPath API implementation
754753

755-
/** Field ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED */
756-
757-
{ ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED,
758-
"XMLConstants.FEATURE_SECURE_PROCESSING \uAE30\uB2A5\uC774 true\uB85C \uC124\uC815\uB41C \uACBD\uC6B0 \uD655\uC7A5 \uD568\uC218 ''{0}''\uC744(\uB97C) \uD638\uCD9C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},
759-
760754
/** Field ER_RESOLVE_VARIABLE_RETURNS_NULL */
761755

762756
{ ER_RESOLVE_VARIABLE_RETURNS_NULL,

0 commit comments

Comments
 (0)