[JBoss JIRA] (WFLY-9603) Wildfly constantly logs out warning message when using picketbox to encrypt user credentials
by Darran Lofthouse (JIRA)
[ https://issues.jboss.org/browse/WFLY-9603?page=com.atlassian.jira.plugin.... ]
Darran Lofthouse updated WFLY-9603:
-----------------------------------
Component/s: JCA
> Wildfly constantly logs out warning message when using picketbox to encrypt user credentials
> --------------------------------------------------------------------------------------------
>
> Key: WFLY-9603
> URL: https://issues.jboss.org/browse/WFLY-9603
> Project: WildFly
> Issue Type: Bug
> Components: JCA
> Affects Versions: 11.0.0.Final
> Reporter: Eirikur Ari Petursson
> Assignee: Jason Greene
> Priority: Minor
>
> h5. The problem
> While trying out Wildfly 11 with defined security domain that uses picketbox SecureIdentityLoginModule to encrypt the user access for a jdbc connection, we noticed that Wildfly is a constantly logging out the following warning:
> {code}
> WARN [org.jboss.jca.core.tx.jbossts.XAResourceRecoveryImpl] (Periodic Recovery) IJ000904: No security domain defined for crash recovery: java:jboss/jdbc/exampleDS
> WARN [org.jboss.jca.core.tx.jbossts.XAResourceRecoveryImpl] (Periodic Recovery) IJ000905: Subject for crash recovery was null: java:jboss/jdbc/exampleDS
> {code}
> *Note:* the username and password is not empty e.g. the password has an encrypted string produced using picketbox.
>
> The thing is that this is working e.g. we are able to connect to a database providing the user credential that is defined in the security domain and in has been working i.e. in Wildfly 9 without the warning messages.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years, 7 months
[JBoss JIRA] (WFLY-9603) Wildfly constantly logs out warning message when using picketbox to encrypt user credentials
by Darran Lofthouse (JIRA)
[ https://issues.jboss.org/browse/WFLY-9603?page=com.atlassian.jira.plugin.... ]
Darran Lofthouse reassigned WFLY-9603:
--------------------------------------
Assignee: Stefano Maestri (was: Jason Greene)
> Wildfly constantly logs out warning message when using picketbox to encrypt user credentials
> --------------------------------------------------------------------------------------------
>
> Key: WFLY-9603
> URL: https://issues.jboss.org/browse/WFLY-9603
> Project: WildFly
> Issue Type: Bug
> Components: JCA
> Affects Versions: 11.0.0.Final
> Reporter: Eirikur Ari Petursson
> Assignee: Stefano Maestri
> Priority: Minor
>
> h5. The problem
> While trying out Wildfly 11 with defined security domain that uses picketbox SecureIdentityLoginModule to encrypt the user access for a jdbc connection, we noticed that Wildfly is a constantly logging out the following warning:
> {code}
> WARN [org.jboss.jca.core.tx.jbossts.XAResourceRecoveryImpl] (Periodic Recovery) IJ000904: No security domain defined for crash recovery: java:jboss/jdbc/exampleDS
> WARN [org.jboss.jca.core.tx.jbossts.XAResourceRecoveryImpl] (Periodic Recovery) IJ000905: Subject for crash recovery was null: java:jboss/jdbc/exampleDS
> {code}
> *Note:* the username and password is not empty e.g. the password has an encrypted string produced using picketbox.
>
> The thing is that this is working e.g. we are able to connect to a database providing the user credential that is defined in the security domain and in has been working i.e. in Wildfly 9 without the warning messages.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years, 7 months
[JBoss JIRA] (WFLY-9603) Wildfly constantly logs out warning message when using picketbox to encrypt user credentials
by Eirikur Ari Petursson (JIRA)
[ https://issues.jboss.org/browse/WFLY-9603?page=com.atlassian.jira.plugin.... ]
Eirikur Ari Petursson updated WFLY-9603:
----------------------------------------
Summary: Wildfly constantly logs out warning message when using picketbox to encrypt user credentials (was: Wildfly constantly loges out warning message when using picketbox to encrypt user credentials)
> Wildfly constantly logs out warning message when using picketbox to encrypt user credentials
> --------------------------------------------------------------------------------------------
>
> Key: WFLY-9603
> URL: https://issues.jboss.org/browse/WFLY-9603
> Project: WildFly
> Issue Type: Bug
> Affects Versions: 11.0.0.Final
> Reporter: Eirikur Ari Petursson
> Assignee: Jason Greene
> Priority: Minor
>
> h5. The problem
> While trying out Wildfly 11 with defined security domain that uses picketbox SecureIdentityLoginModule to encrypt the user access for a jdbc connection, we noticed that Wildfly is a constantly logging out the following warning:
> {code}
> WARN [org.jboss.jca.core.tx.jbossts.XAResourceRecoveryImpl] (Periodic Recovery) IJ000904: No security domain defined for crash recovery: java:jboss/jdbc/exampleDS
> WARN [org.jboss.jca.core.tx.jbossts.XAResourceRecoveryImpl] (Periodic Recovery) IJ000905: Subject for crash recovery was null: java:jboss/jdbc/exampleDS
> {code}
> *Note:* the username and password is not empty e.g. the password has an encrypted string produced using picketbox.
>
> The thing is that this is working e.g. we are able to connect to a database providing the user credential that is defined in the security domain and in has been working i.e. in Wildfly 9 without the warning messages.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years, 7 months
[JBoss JIRA] (WFLY-9603) Wildfly constantly loges out warning message when using picketbox to encrypt user credentials
by Eirikur Ari Petursson (JIRA)
[ https://issues.jboss.org/browse/WFLY-9603?page=com.atlassian.jira.plugin.... ]
Eirikur Ari Petursson updated WFLY-9603:
----------------------------------------
Description:
h5. The problem
While trying out Wildfly 11 with defined security domain that uses picketbox SecureIdentityLoginModule to encrypt the user access for a jdbc connection, we noticed that Wildfly is a constantly logging out the following warning:
{code}
WARN [org.jboss.jca.core.tx.jbossts.XAResourceRecoveryImpl] (Periodic Recovery) IJ000904: No security domain defined for crash recovery: java:jboss/jdbc/exampleDS
WARN [org.jboss.jca.core.tx.jbossts.XAResourceRecoveryImpl] (Periodic Recovery) IJ000905: Subject for crash recovery was null: java:jboss/jdbc/exampleDS
{code}
*Note:* the username and password is not empty e.g. the password has an encrypted string produced using picketbox.
The thing is that this is working e.g. we are able to connect to a database providing the user credential that is defined in the security domain and in has been working i.e. in Wildfly 9 without the warning messages.
was:
h5. The problem
While trying out Wildfly 11 with defined security domain that uses picketbox SecureIdentityLoginModule to encrypt the user access for a jdbc connection, we noticed that Wildfly is a constantly logging out the following warning:
{code}
WARN [org.jboss.jca.core.tx.jbossts.XAResourceRecoveryImpl] (Periodic Recovery) IJ000904: No security domain defined for crash recovery: java:jboss/jdbc/exampleDS
WARN [org.jboss.jca.core.tx.jbossts.XAResourceRecoveryImpl] (Periodic Recovery) IJ000905: Subject for crash recovery was null: java:jboss/jdbc/exampleDS
{code}
*Note: * the username and password is not empty e.g. the password has an encrypted string produced using picketbox.
The thing is that this is working e.g. we are able to connect to a database providing the user credential that is defined in the security domain and in has been working i.e. in Wildfly 9 without the warning messages.
> Wildfly constantly loges out warning message when using picketbox to encrypt user credentials
> ---------------------------------------------------------------------------------------------
>
> Key: WFLY-9603
> URL: https://issues.jboss.org/browse/WFLY-9603
> Project: WildFly
> Issue Type: Bug
> Affects Versions: 11.0.0.Final
> Reporter: Eirikur Ari Petursson
> Assignee: Jason Greene
> Priority: Minor
>
> h5. The problem
> While trying out Wildfly 11 with defined security domain that uses picketbox SecureIdentityLoginModule to encrypt the user access for a jdbc connection, we noticed that Wildfly is a constantly logging out the following warning:
> {code}
> WARN [org.jboss.jca.core.tx.jbossts.XAResourceRecoveryImpl] (Periodic Recovery) IJ000904: No security domain defined for crash recovery: java:jboss/jdbc/exampleDS
> WARN [org.jboss.jca.core.tx.jbossts.XAResourceRecoveryImpl] (Periodic Recovery) IJ000905: Subject for crash recovery was null: java:jboss/jdbc/exampleDS
> {code}
> *Note:* the username and password is not empty e.g. the password has an encrypted string produced using picketbox.
>
> The thing is that this is working e.g. we are able to connect to a database providing the user credential that is defined in the security domain and in has been working i.e. in Wildfly 9 without the warning messages.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years, 7 months
[JBoss JIRA] (WFLY-9603) Wildfly constantly loges out warning message when using picketbox to encrypt user credentials
by Eirikur Ari Petursson (JIRA)
Eirikur Ari Petursson created WFLY-9603:
-------------------------------------------
Summary: Wildfly constantly loges out warning message when using picketbox to encrypt user credentials
Key: WFLY-9603
URL: https://issues.jboss.org/browse/WFLY-9603
Project: WildFly
Issue Type: Bug
Affects Versions: 11.0.0.Final
Reporter: Eirikur Ari Petursson
Assignee: Jason Greene
Priority: Minor
h5. The problem
While trying out Wildfly 11 with defined security domain that uses picketbox SecureIdentityLoginModule to encrypt the user access for a jdbc connection, we noticed that Wildfly is a constantly logging out the following warning:
{code}
WARN [org.jboss.jca.core.tx.jbossts.XAResourceRecoveryImpl] (Periodic Recovery) IJ000904: No security domain defined for crash recovery: java:jboss/jdbc/exampleDS
WARN [org.jboss.jca.core.tx.jbossts.XAResourceRecoveryImpl] (Periodic Recovery) IJ000905: Subject for crash recovery was null: java:jboss/jdbc/exampleDS
{code}
*Note: * the username and password is not empty e.g. the password has an encrypted string produced using picketbox.
The thing is that this is working e.g. we are able to connect to a database providing the user credential that is defined in the security domain and in has been working i.e. in Wildfly 9 without the warning messages.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years, 7 months
[JBoss JIRA] (JBJCA-1362) NPE from SemaphoreConcurrentLinkedDequeManagedConnectionPool.returnForFrequencyCheck
by Osamu Nagano (JIRA)
Osamu Nagano created JBJCA-1362:
-----------------------------------
Summary: NPE from SemaphoreConcurrentLinkedDequeManagedConnectionPool.returnForFrequencyCheck
Key: JBJCA-1362
URL: https://issues.jboss.org/browse/JBJCA-1362
Project: IronJacamar
Issue Type: Bug
Components: Core
Reporter: Osamu Nagano
NPE happens in the ConnectionValidator thread, about once a week on EAP 7.0.7 (IronJacamar 1.3.7.Final-redhat-1).
{code}
2017-11-23 14:02:49,527 WARN [org.jboss.jca.core.connectionmanager.pool.validator.ConnectionValidator] (ConnectionValidator) IJ000602: ConnectionValidator ignored unexpected runtime exception: java.lang.NullPointerException
at java.util.concurrent.ConcurrentLinkedDeque.checkNotNull(ConcurrentLinkedDeque.java:798)
at java.util.concurrent.ConcurrentLinkedDeque.linkLast(ConcurrentLinkedDeque.java:386)
at java.util.concurrent.ConcurrentLinkedDeque.addLast(ConcurrentLinkedDeque.java:903)
at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.returnForFrequencyCheck(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:1597)
at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.validateConnections(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:1523)
at org.jboss.jca.core.connectionmanager.pool.validator.ConnectionValidator$ConnectionValidatorRunner.run(ConnectionValidator.java:277)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
{code}
Configuration:
{code}
<datasource jndi-name="java:/DB1" pool-name="DB1" statistics-enabled="true">
<connection-url>jdbc:oracle:thin:@ServerA:1521:DB1</connection-url>
<driver-class>oracle.jdbc.OracleDriver</driver-class>
<connection-property name="v$session.program">
ServerA
</connection-property>
<driver>oracle</driver>
<pool>
<min-pool-size>490</min-pool-size>
<initial-pool-size>490</initial-pool-size>
<max-pool-size>490</max-pool-size>
<prefill>true</prefill>
<allow-multiple-users>false</allow-multiple-users>
</pool>
<security>
<user-name>username</user-name>
<password>password</password>
</security>
<validation>
<check-valid-connection-sql>SELECT 1 FROM DUAL</check-valid-connection-sql>
<validate-on-match>false</validate-on-match>
<background-validation>true</background-validation>
<background-validation-millis>120000</background-validation-millis>
</validation>
<timeout>
<blocking-timeout-millis>3000</blocking-timeout-millis>
<allocation-retry>10</allocation-retry>
<allocation-retry-wait-millis>60000</allocation-retry-wait-millis>
</timeout>
<statement>
<prepared-statement-cache-size>10</prepared-statement-cache-size>
</statement>
</datasource>
{code}
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years, 7 months
[JBoss JIRA] (DROOLS-2169) IBM JDK: KeyStoreHelperTest.testLoadPassword fails on IBM JDK
by Tibor Zimányi (JIRA)
Tibor Zimányi created DROOLS-2169:
-------------------------------------
Summary: IBM JDK: KeyStoreHelperTest.testLoadPassword fails on IBM JDK
Key: DROOLS-2169
URL: https://issues.jboss.org/browse/DROOLS-2169
Project: Drools
Issue Type: Bug
Components: core engine
Affects Versions: 7.5.0.Final
Reporter: Tibor Zimányi
Assignee: Tibor Zimányi
When running the test on IBM JDK, it fails with this stack [2]. A keystore that is not created by IBM JDK is used in the test, which can be a cause for this problem. See this example [1].
[1] http://www-01.ibm.com/support/docview.wss?uid=swg21692970
[1] java.lang.RuntimeException: Error initialising KeyStore: com.sun.crypto.provider.SealedObjectForKeyProtector
at com.ibm.crypto.provider.JceKeyStore.engineLoad(Unknown Source)
at java.security.KeyStore.load(KeyStore.java:1456)
at org.drools.core.util.KeyStoreHelper.loadKeystore(KeyStoreHelper.java:144)
at org.drools.core.util.KeyStoreHelper.initKeyStore(KeyStoreHelper.java:138)
at org.drools.core.util.KeyStoreHelper.<init>(KeyStoreHelper.java:96)
at org.drools.core.util.KeyStoreHelperTest.testLoadPassword(KeyStoreHelperTest.java:91)
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years, 7 months
[JBoss JIRA] (LOGMGR-186) Rotation at other than midnight without changing time zone
by Osamu Nagano (JIRA)
[ https://issues.jboss.org/browse/LOGMGR-186?page=com.atlassian.jira.plugin... ]
Osamu Nagano edited comment on LOGMGR-186 at 12/8/17 2:48 AM:
--------------------------------------------------------------
This is personally tested and worked on EAP using a {{<custom-handler>}}. {{logging.properties}} should be edited to choose a proper constructor (using a setter doesn't work).
{code}
handler.CUSTOM.constructorProperties=fileName,append,hourOfDay
{code}
I had changed {{PeriodicRotatingFileHandler}} directly rather than subclassing it because the rotation logic is mostly in the class as a private method.
was (Author: osamu.nagano):
This is personally tested and worked on EAP using a {{<custom-handler>}}. {{logging.properties}} should be edited to choose a proper constructor.
{code}
handler.CUSTOM.properties=enabled,append,fileName,suffix,hourOfDay
{code}
I had changed {{PeriodicRotatingFileHandler}} directly rather than subclassing it because the rotation logic is mostly in the class as a private method.
> Rotation at other than midnight without changing time zone
> ----------------------------------------------------------
>
> Key: LOGMGR-186
> URL: https://issues.jboss.org/browse/LOGMGR-186
> Project: JBoss Log Manager
> Issue Type: Enhancement
> Components: core
> Reporter: Osamu Nagano
>
> Add ability to rotate at other than midnight without changing time zone.
> Background: a global company distributes hosts around the world and all hosts configure the same time zone, UTC. In some zone, it's the peak time at midnight and the log file is divided by the rotation. They want to make the rotation time be configurable.
> WebLogic has such a configuration, "Begin Rotation Time":
> https://docs.oracle.com/cd/E21764_01/apirefs.1111/e13952/taskhelp/logging...
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years, 7 months
[JBoss JIRA] (JBEE-183) NullPointerException happens at ELEvaluator.parseExpressionString() due to a concurrency issue
by Masafumi Miura (JIRA)
[ https://issues.jboss.org/browse/JBEE-183?page=com.atlassian.jira.plugin.s... ]
Masafumi Miura updated JBEE-183:
--------------------------------
Description:
The following NullPointerException happens at ELEvaluator.parseExpressionString() due to a concurrency issue.
Once this NPE happens, you will see same NPE every time when accessing the failed JSP. (If development="true" is configured in <jsp-config>, recompile can happen in the next access, so NPE can disappear after successful compilation in the next access.)
{code}
ERROR [io.undertow.request] (default task-4) UT005023: Exception handling request to /example/index.jsp: org.apache.jasper.JasperException: JBWEB004001: Unable to compile class for JSP
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:667) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:402) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:346) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [jboss-servlet-api_3.1_spec-1.0.0.Final-redhat-1.jar:1.0.0.Final-redhat-1]
...(snip)...
...
Caused by: java.lang.NullPointerException
at org.apache.taglibs.standard.lang.jstl.ELEvaluator.parseExpressionString(ELEvaluator.java:276) [jboss-jstl-api_1.2_spec-1.1.3.Final-redhat-1.jar:1.1.3.Final-redhat-1]
at org.apache.taglibs.standard.lang.jstl.Evaluator.validate(Evaluator.java:71) [jboss-jstl-api_1.2_spec-1.1.3.Final-redhat-1.jar:1.1.3.Final-redhat-1]
at org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager.validate(ExpressionEvaluatorManager.java:131) [jboss-jstl-api_1.2_spec-1.1.3.Final-redhat-1.jar:1.1.3.Final-redhat-1]
at org.apache.taglibs.standard.tlv.el.ValidationUtil.validateExpression(ValidationUtil.java:26) [jboss-jstl-api_1.2_spec-1.1.3.Final-redhat-1.jar:1.1.3.Final-redhat-1]
at org.apache.taglibs.standard.tlv.el.JstlELCoreTLV.validateExpression(JstlELCoreTLV.java:26) [jboss-jstl-api_1.2_spec-1.1.3.Final-redhat-1.jar:1.1.3.Final-redhat-1]
at org.apache.taglibs.standard.tlv.JstlCoreTLV$Handler.startElement(JstlCoreTLV.java:158) [jboss-jstl-api_1.2_spec-1.1.3.Final-redhat-1.jar:1.1.3.Final-redhat-1]
at org.apache.xerces.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:498)
at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:180)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:275)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1653)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:324)
at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:875)
at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:798)
at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:108)
at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1198)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:564)
at org.apache.taglibs.standard.tlv.JstlBaseTLV.validate(JstlBaseTLV.java:158) [jboss-jstl-api_1.2_spec-1.1.3.Final-redhat-1.jar:1.1.3.Final-redhat-1]
at org.apache.taglibs.standard.tlv.JstlCoreTLV.validate(JstlCoreTLV.java:97) [jboss-jstl-api_1.2_spec-1.1.3.Final-redhat-1.jar:1.1.3.Final-redhat-1]
at org.apache.jasper.compiler.TagLibraryInfoImpl.validate(TagLibraryInfoImpl.java:552) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
at org.apache.jasper.compiler.Validator.validateXmlView(Validator.java:1856) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
at org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1825) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:218) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:354) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:334) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:321) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:652) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
... 61 more
{code}
- https://github.com/jboss/jboss-jstl-api_spec/blob/jboss-jstl-api_1.2_spec...
{code}
252 public Object parseExpressionString(String pExpressionString)
253 throws ELException {
254 // See if it's an empty String
255 if (pExpressionString.length() == 0) {
256 return "";
257 }
258
259 if (!(mBypassCache) && (sCachedExpressionStrings == null)) {
260 createExpressionStringMap();
261 }
262
263 // See if it's in the cache
264 Object ret =
265 mBypassCache ?
266 null :
267 sCachedExpressionStrings.get(pExpressionString);
268
269 if (ret == null) {
270 // Parse the expression
271 Reader r = new StringReader(pExpressionString);
272 ELParser parser = new ELParser(r);
273 try {
274 ret = parser.ExpressionString();
275 if (!mBypassCache) {
276 sCachedExpressionStrings.put(pExpressionString, ret); // <- NPE occurred at here
277 }
278 }
279 catch (ParseException exc) {
280 throw new ELException
281 (formatParseException(pExpressionString,
282 exc));
283 }
284 catch (TokenMgrError exc) {
285 // Note - this should never be reached, since the parser is
286 // constructed to tokenize any input (illegal inputs get
287 // parsed to <BADLY_ESCAPED_STRING_LITERAL> or
288 // <ILLEGAL_CHARACTER>
289 throw new ELException(exc.getMessage());
290 }
291 }
292 return ret;
293 }
{code}
- https://github.com/jboss/jboss-jstl-api_spec/blob/jboss-jstl-api_1.2_spec...
{code}
~~~
51 /**
52 * The singleton instance of the evaluator *
53 */
54 static ELEvaluator sEvaluator =
55 new ELEvaluator
56 (new JSTLVariableResolver());
:
62 /**
63 * Translation time validation of an attribute value. This method
64 * will return a null String if the attribute value is valid;
65 * otherwise an error message.
66 */
67 public String validate(String pAttributeName,
68 String pAttributeValue) {
69 try {
70 sEvaluator.setBypassCache(true); // <-- mBypassCache is set to true before invoking parseExpressionString()
71 sEvaluator.parseExpressionString(pAttributeValue);
72 sEvaluator.setBypassCache(false);
73 return null;
74 }
75 catch (ELException exc) {
{code}
was:
The following NullPointerException happens at ELEvaluator.parseExpressionString() due to a concurrency issue.
Once this NPE happens, you will see same NPE every time when accessing the failed JSP. (If development="true" is configured in <jsp-config>, recompile can happen in the next access, so NPE can disappear after successful compilation in the next access.)
{code}
ERROR [io.undertow.request] (default task-4) UT005023: Exception handling request to /dsl/g/clsys/cl/nop-constind/CNC001.jsp: org.apache.jasper.JasperException: JBWEB004001: Unable to compile class for JSP
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:667) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:402) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:346) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [jboss-servlet-api_3.1_spec-1.0.0.Final-redhat-1.jar:1.0.0.Final-redhat-1]
...(snip)...
...
Caused by: java.lang.NullPointerException
at org.apache.taglibs.standard.lang.jstl.ELEvaluator.parseExpressionString(ELEvaluator.java:276) [jboss-jstl-api_1.2_spec-1.1.3.Final-redhat-1.jar:1.1.3.Final-redhat-1]
at org.apache.taglibs.standard.lang.jstl.Evaluator.validate(Evaluator.java:71) [jboss-jstl-api_1.2_spec-1.1.3.Final-redhat-1.jar:1.1.3.Final-redhat-1]
at org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager.validate(ExpressionEvaluatorManager.java:131) [jboss-jstl-api_1.2_spec-1.1.3.Final-redhat-1.jar:1.1.3.Final-redhat-1]
at org.apache.taglibs.standard.tlv.el.ValidationUtil.validateExpression(ValidationUtil.java:26) [jboss-jstl-api_1.2_spec-1.1.3.Final-redhat-1.jar:1.1.3.Final-redhat-1]
at org.apache.taglibs.standard.tlv.el.JstlELCoreTLV.validateExpression(JstlELCoreTLV.java:26) [jboss-jstl-api_1.2_spec-1.1.3.Final-redhat-1.jar:1.1.3.Final-redhat-1]
at org.apache.taglibs.standard.tlv.JstlCoreTLV$Handler.startElement(JstlCoreTLV.java:158) [jboss-jstl-api_1.2_spec-1.1.3.Final-redhat-1.jar:1.1.3.Final-redhat-1]
at org.apache.xerces.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:498)
at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:180)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:275)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1653)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:324)
at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:875)
at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:798)
at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:108)
at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1198)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:564)
at org.apache.taglibs.standard.tlv.JstlBaseTLV.validate(JstlBaseTLV.java:158) [jboss-jstl-api_1.2_spec-1.1.3.Final-redhat-1.jar:1.1.3.Final-redhat-1]
at org.apache.taglibs.standard.tlv.JstlCoreTLV.validate(JstlCoreTLV.java:97) [jboss-jstl-api_1.2_spec-1.1.3.Final-redhat-1.jar:1.1.3.Final-redhat-1]
at org.apache.jasper.compiler.TagLibraryInfoImpl.validate(TagLibraryInfoImpl.java:552) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
at org.apache.jasper.compiler.Validator.validateXmlView(Validator.java:1856) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
at org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1825) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:218) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:354) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:334) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:321) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:652) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
... 61 more
{code}
- https://github.com/jboss/jboss-jstl-api_spec/blob/jboss-jstl-api_1.2_spec...
{code}
252 public Object parseExpressionString(String pExpressionString)
253 throws ELException {
254 // See if it's an empty String
255 if (pExpressionString.length() == 0) {
256 return "";
257 }
258
259 if (!(mBypassCache) && (sCachedExpressionStrings == null)) {
260 createExpressionStringMap();
261 }
262
263 // See if it's in the cache
264 Object ret =
265 mBypassCache ?
266 null :
267 sCachedExpressionStrings.get(pExpressionString);
268
269 if (ret == null) {
270 // Parse the expression
271 Reader r = new StringReader(pExpressionString);
272 ELParser parser = new ELParser(r);
273 try {
274 ret = parser.ExpressionString();
275 if (!mBypassCache) {
276 sCachedExpressionStrings.put(pExpressionString, ret); // <- NPE occurred at here
277 }
278 }
279 catch (ParseException exc) {
280 throw new ELException
281 (formatParseException(pExpressionString,
282 exc));
283 }
284 catch (TokenMgrError exc) {
285 // Note - this should never be reached, since the parser is
286 // constructed to tokenize any input (illegal inputs get
287 // parsed to <BADLY_ESCAPED_STRING_LITERAL> or
288 // <ILLEGAL_CHARACTER>
289 throw new ELException(exc.getMessage());
290 }
291 }
292 return ret;
293 }
{code}
- https://github.com/jboss/jboss-jstl-api_spec/blob/jboss-jstl-api_1.2_spec...
{code}
~~~
51 /**
52 * The singleton instance of the evaluator *
53 */
54 static ELEvaluator sEvaluator =
55 new ELEvaluator
56 (new JSTLVariableResolver());
:
62 /**
63 * Translation time validation of an attribute value. This method
64 * will return a null String if the attribute value is valid;
65 * otherwise an error message.
66 */
67 public String validate(String pAttributeName,
68 String pAttributeValue) {
69 try {
70 sEvaluator.setBypassCache(true); // <-- mBypassCache is set to true before invoking parseExpressionString()
71 sEvaluator.parseExpressionString(pAttributeValue);
72 sEvaluator.setBypassCache(false);
73 return null;
74 }
75 catch (ELException exc) {
{code}
> NullPointerException happens at ELEvaluator.parseExpressionString() due to a concurrency issue
> ----------------------------------------------------------------------------------------------
>
> Key: JBEE-183
> URL: https://issues.jboss.org/browse/JBEE-183
> Project: JBoss JavaEE Spec APIs
> Issue Type: Bug
> Components: jboss-jstl-api
> Environment: - JBoss EAP 7.0.8
> - jboss-jstl-api_1.2_spec-1.1.3.Final
> Reporter: Masafumi Miura
> Assignee: Tomas Hofman
> Attachments: byteman-script.btm, example.zip
>
>
> The following NullPointerException happens at ELEvaluator.parseExpressionString() due to a concurrency issue.
> Once this NPE happens, you will see same NPE every time when accessing the failed JSP. (If development="true" is configured in <jsp-config>, recompile can happen in the next access, so NPE can disappear after successful compilation in the next access.)
> {code}
> ERROR [io.undertow.request] (default task-4) UT005023: Exception handling request to /example/index.jsp: org.apache.jasper.JasperException: JBWEB004001: Unable to compile class for JSP
> at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:667) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
> at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:402) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:346) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [jboss-servlet-api_3.1_spec-1.0.0.Final-redhat-1.jar:1.0.0.Final-redhat-1]
> ...(snip)...
> ...
> Caused by: java.lang.NullPointerException
> at org.apache.taglibs.standard.lang.jstl.ELEvaluator.parseExpressionString(ELEvaluator.java:276) [jboss-jstl-api_1.2_spec-1.1.3.Final-redhat-1.jar:1.1.3.Final-redhat-1]
> at org.apache.taglibs.standard.lang.jstl.Evaluator.validate(Evaluator.java:71) [jboss-jstl-api_1.2_spec-1.1.3.Final-redhat-1.jar:1.1.3.Final-redhat-1]
> at org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager.validate(ExpressionEvaluatorManager.java:131) [jboss-jstl-api_1.2_spec-1.1.3.Final-redhat-1.jar:1.1.3.Final-redhat-1]
> at org.apache.taglibs.standard.tlv.el.ValidationUtil.validateExpression(ValidationUtil.java:26) [jboss-jstl-api_1.2_spec-1.1.3.Final-redhat-1.jar:1.1.3.Final-redhat-1]
> at org.apache.taglibs.standard.tlv.el.JstlELCoreTLV.validateExpression(JstlELCoreTLV.java:26) [jboss-jstl-api_1.2_spec-1.1.3.Final-redhat-1.jar:1.1.3.Final-redhat-1]
> at org.apache.taglibs.standard.tlv.JstlCoreTLV$Handler.startElement(JstlCoreTLV.java:158) [jboss-jstl-api_1.2_spec-1.1.3.Final-redhat-1.jar:1.1.3.Final-redhat-1]
> at org.apache.xerces.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:498)
> at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:180)
> at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:275)
> at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1653)
> at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:324)
> at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:875)
> at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:798)
> at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:108)
> at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1198)
> at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:564)
> at org.apache.taglibs.standard.tlv.JstlBaseTLV.validate(JstlBaseTLV.java:158) [jboss-jstl-api_1.2_spec-1.1.3.Final-redhat-1.jar:1.1.3.Final-redhat-1]
> at org.apache.taglibs.standard.tlv.JstlCoreTLV.validate(JstlCoreTLV.java:97) [jboss-jstl-api_1.2_spec-1.1.3.Final-redhat-1.jar:1.1.3.Final-redhat-1]
> at org.apache.jasper.compiler.TagLibraryInfoImpl.validate(TagLibraryInfoImpl.java:552) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
> at org.apache.jasper.compiler.Validator.validateXmlView(Validator.java:1856) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
> at org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1825) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
> at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:218) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
> at org.apache.jasper.compiler.Compiler.compile(Compiler.java:354) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
> at org.apache.jasper.compiler.Compiler.compile(Compiler.java:334) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
> at org.apache.jasper.compiler.Compiler.compile(Compiler.java:321) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
> at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:652) [jastow-2.0.0.Final-redhat-1.jar:2.0.0.Final-redhat-1]
> ... 61 more
> {code}
> - https://github.com/jboss/jboss-jstl-api_spec/blob/jboss-jstl-api_1.2_spec...
> {code}
> 252 public Object parseExpressionString(String pExpressionString)
> 253 throws ELException {
> 254 // See if it's an empty String
> 255 if (pExpressionString.length() == 0) {
> 256 return "";
> 257 }
> 258
> 259 if (!(mBypassCache) && (sCachedExpressionStrings == null)) {
> 260 createExpressionStringMap();
> 261 }
> 262
> 263 // See if it's in the cache
> 264 Object ret =
> 265 mBypassCache ?
> 266 null :
> 267 sCachedExpressionStrings.get(pExpressionString);
> 268
> 269 if (ret == null) {
> 270 // Parse the expression
> 271 Reader r = new StringReader(pExpressionString);
> 272 ELParser parser = new ELParser(r);
> 273 try {
> 274 ret = parser.ExpressionString();
> 275 if (!mBypassCache) {
> 276 sCachedExpressionStrings.put(pExpressionString, ret); // <- NPE occurred at here
> 277 }
> 278 }
> 279 catch (ParseException exc) {
> 280 throw new ELException
> 281 (formatParseException(pExpressionString,
> 282 exc));
> 283 }
> 284 catch (TokenMgrError exc) {
> 285 // Note - this should never be reached, since the parser is
> 286 // constructed to tokenize any input (illegal inputs get
> 287 // parsed to <BADLY_ESCAPED_STRING_LITERAL> or
> 288 // <ILLEGAL_CHARACTER>
> 289 throw new ELException(exc.getMessage());
> 290 }
> 291 }
> 292 return ret;
> 293 }
> {code}
> - https://github.com/jboss/jboss-jstl-api_spec/blob/jboss-jstl-api_1.2_spec...
> {code}
> ~~~
> 51 /**
> 52 * The singleton instance of the evaluator *
> 53 */
> 54 static ELEvaluator sEvaluator =
> 55 new ELEvaluator
> 56 (new JSTLVariableResolver());
> :
> 62 /**
> 63 * Translation time validation of an attribute value. This method
> 64 * will return a null String if the attribute value is valid;
> 65 * otherwise an error message.
> 66 */
> 67 public String validate(String pAttributeName,
> 68 String pAttributeValue) {
> 69 try {
> 70 sEvaluator.setBypassCache(true); // <-- mBypassCache is set to true before invoking parseExpressionString()
> 71 sEvaluator.parseExpressionString(pAttributeValue);
> 72 sEvaluator.setBypassCache(false);
> 73 return null;
> 74 }
> 75 catch (ELException exc) {
> {code}
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years, 7 months