Bug 1119927 - When using JVM 1.7.0_40 or later, server logs SAXParserImpl parsing errors indicating property is not recognized.
Summary: When using JVM 1.7.0_40 or later, server logs SAXParserImpl parsing errors in...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: JBoss Operations Network
Classification: JBoss
Component: Core Server
Version: JON 3.1.2
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: DR01
: JON 3.3.0
Assignee: Jay Shaughnessy
QA Contact: Mike Foley
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-07-15 21:13 UTC by Larry O'Leary
Modified: 2018-12-06 17:20 UTC (History)
1 user (show)

Doc Type: Bug Fix
Doc Text:
The Xerces library included in the JON enterprise container did not support the accessExternalDTD or entityExpansionLimit properties, which caused ERROR messages to appear on server start and in server.log. The Xerces library has been removed from the product and replaced with a version where the bug was patched upstream, fixing the originally-reported issue.
Clone Of:
Environment:
Last Closed: 2014-12-11 14:02:35 UTC
Type: Bug


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
openjdk bug system JDK-8016153 None None None Never
Red Hat Knowledge Base (Solution) 1124603 None None None Never

Description Larry O'Leary 2014-07-15 21:13:45 UTC
Description of problem:
After installing Java 1.7.0_40 or later (Oracle or OpenJDK), the JBoss ON server displays the following error on startup:

    ERROR [STDERR] Warning:  org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser: Property 'http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit' is not recognized.
    ERROR [STDERR] Compiler warnings:
    ERROR [STDERR]   WARNING:  'org.apache.xerces.jaxp.SAXParserImpl: Property 'http://javax.xml.XMLConstants/property/accessExternalDTD' is not recognized.'

This has been reported in http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8016153 but it does not appear that it is being fixed in JVM 7.

Version-Release number of selected component (if applicable):
3.1.2.GA

How reproducible:
Always

Steps to Reproduce:
1. Install JBoss ON 3.1.2 system
2. Start JBoss ON server using Oracle or OpenJDK JVM 1.7.0_40, 1.7.0_55, or even 1.7.0_60.

Actual results:
Server log will contain the following message at startup:

    INFO  [com.arjuna.ats.jbossatx.jta.TransactionManagerService] Recovery manager started
    INFO  [com.arjuna.ats.jbossatx.jta.TransactionManagerService] Binding TransactionManager JNDI Reference
    INFO  [org.jboss.ejb3.EJB3Deployer] Starting java:comp multiplexer
    ERROR [STDERR] Warning:  org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser: Property 'http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit' is not recognized.
    ERROR [STDERR] Compiler warnings:
    ERROR [STDERR]   WARNING:  'org.apache.xerces.jaxp.SAXParserImpl: Property 'http://javax.xml.XMLConstants/property/accessExternalDTD' is not recognized.'
    INFO  [org.apache.catalina.core.AprLifecycleListener] The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/lib64:/lib64:/lib:/usr/lib
    INFO  [org.apache.coyote.http11.Http11Protocol] Initializing Coyote HTTP/1.1 on http-192.168.1.1-7080
    INFO  [org.apache.coyote.http11.Http11Protocol] Initializing Coyote HTTP/1.1 on http-192.168.1.1-7443


Expected results:
No ERROR messages on start.

Comment 2 Jay Shaughnessy 2014-07-21 14:49:07 UTC
It seems the warnings are due to the 3rd party Xerces lib we use for parsing, which is unaware of the newer properties attempting to be set on the parser.

We can see in this Java code snippet that the accessExternalDTD property should not be an issue. The parser code protects things and the unrecognized property generates only a log message:  See Lines 480:487,

http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7u40-b43/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java?av=f


Looking to see about the other property...

Comment 3 Jay Shaughnessy 2014-07-21 16:21:49 UTC
I can't definitively locate the call generating the SAXNotRecognizedException for ENTITY_EXPANSION_LIMIT.  But it's most likely generated when the limit is trying to be set.  It is likely tryng to be set to the default of 64000, but since this version of xerces does not know about the property it throws the exception, which is very likely just logged by the caller.

Overall, I'd suggest these messages be ignored unless this second message can be linked to some errant behavior (the other is safe, as described above), which is unlikely.

The workaround, I believe, would be to back up to Java7 u25.

Comment 4 Jay Shaughnessy 2014-07-28 18:21:22 UTC
This should not be an issue in 3.3.0 because we no longer use the problematic xerces lib.

Comment 5 Simeon Pinder 2014-07-31 15:51:51 UTC
Moving to ON_QA as available to test with brew build of DR01: https://brewweb.devel.redhat.com//buildinfo?buildID=373993


Note You need to log in before you can comment on or make changes to this bug.