Environment
Novell Identity Manager 4.5
GoogleApps Driver 4.1.0.0
Situation
When attempting to start the Google Apps Driver the following exception is received.
<status level="fatal" type="driver-status">
<description>com.google.gdata.util.ParseException: Feature: http://xml.org/sax/features/external-general-entities</description>
<exception class-name="com.google.gdata.util.ParseException">
<message>Feature: http://xml.org/sax/features/external-general-entities</message>
<stack-trace>com.google.gdata.util.ParseException: Feature: http://xml.org/sax/features/external-general-entities
at com.google.gdata.util.XmlParser.parse(XmlParser.java:712)
at com.google.gdata.util.XmlParser.parse(XmlParser.java:585)
[07/06/2015 9:04:02.801] at com.google.gdata.data.BaseFeed.parseAtom(BaseFeed.java:867)
at com.google.gdata.wireformats.input.AtomDataParser.parse(AtomDataParser.java:68)
at com.google.gdata.wireformats.input.AtomDataParser.parse(AtomDataParser.java:39)
at com.google.gdata.wireformats.input.CharacterParser.parse(CharacterParser.java:100)
at com.google.gdata.wireformats.input.XmlInputParser.parse(XmlInputParser.java:52)
at com.google.gdata.wireformats.input.AtomDualParser.parse(AtomDualParser.java:66)
at com.google.gdata.wireformats.input.AtomDualParser.parse(AtomDualParser.java:34)
at com.google.gdata.client.Service.parseResponseData(Service.java:2165)
at com.google.gdata.client.Service.parseResponseData(Service.java:2098)
at com.google.gdata.client.Service.getFeed(Service.java:1136)
at com.google.gdata.client.Service.getFeed(Service.java:998)
at com.google.gdata.client.GoogleService.getFeed(GoogleService.java:645)
at com.novell.nds.dirxml.driver.gmailshim.DirectoryAppClient.retrieveAllContacts(DirectoryAppClient.java:2919)
at com.novell.nds.dirxml.driver.gmailshim.GMailDriverShim.init(GMailDriverShim.java:684)
at com.novell.nds.dirxml.engine.Driver.startShim(Driver.java:1465)
at com.novell.nds.dirxml.engine.Driver.initialize(Driver.java:283)
at com.novell.nds.dirxml.engine.Driver.<init>(Driver.java:249)
at com.novell.nds.dirxml.engine.DriverEntry.run(DriverEntry.java:586)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.xml.sax.SAXNotSupportedException: Feature: http://xml.org/sax/features/external-general-entities
at org.apache.crimson.parser.XMLReaderImpl.setFeature(XMLReaderImpl.java:202)
at org.apache.crimson.jaxp.SAXParserImpl.setFeatures(SAXParserImpl.java:143)
[07/06/2015 9:04:02.801] at org.apache.crimson.jaxp.SAXParserImpl.<init>(SAXParserImpl.java:126)
at org.apache.crimson.jaxp.SAXParserFactoryImpl.newSAXParserImpl(SAXParserFactoryImpl.java:113)
at org.apache.crimson.jaxp.SAXParserFactoryImpl.setFeature(SAXParserFactoryImpl.java:141)
at com.google.gdata.util.common.xml.parsing.SecureGenericXMLFactory$SecureSAXParserFactory.<init>(SecureGenericXMLFactory.java:106)
at com.google.gdata.util.common.xml.parsing.SecureGenericXMLFactory.getSAXParserFactory(SecureGenericXMLFactory.java:51)
at com.google.gdata.util.XmlParser.getSAXParserFactory(XmlParser.java:90)
at com.google.gdata.util.XmlParser.parse(XmlParser.java:688)
... 20 more
</stack-trace>
</exception>
<exception class-name="org.xml.sax.SAXNotSupportedException">
<message>Feature: http://xml.org/sax/features/external-general-entities</message>
<stack-trace>org.xml.sax.SAXNotSupportedException: Feature: http://xml.org/sax/features/external-general-entities
at org.apache.crimson.parser.XMLReaderImpl.setFeature(XMLReaderImpl.java:202)
at org.apache.crimson.jaxp.SAXParserImpl.setFeatures(SAXParserImpl.java:143)
at org.apache.crimson.jaxp.SAXParserImpl.<init>(SAXParserImpl.java:126)
at org.apache.crimson.jaxp.SAXParserFactoryImpl.newSAXParserImpl(SAXParserFactoryImpl.java:113)
at org.apache.crimson.jaxp.SAXParserFactoryImpl.setFeature(SAXParserFactoryImpl.java:141)
at com.google.gdata.util.common.xml.parsing.SecureGenericXMLFactory$SecureSAXParserFactory.<init>(SecureGenericXMLFactory.java:106)
at com.google.gdata.util.common.xml.parsing.SecureGenericXMLFactory.getSAXParserFactory(SecureGenericXMLFactory.java:51)
[07/06/2015 9:04:02.801] at com.google.gdata.util.XmlParser.getSAXParserFactory(XmlParser.java:90)
at com.google.gdata.util.XmlParser.parse(XmlParser.java:688)
at com.google.gdata.util.XmlParser.parse(XmlParser.java:585)
at com.google.gdata.data.BaseFeed.parseAtom(BaseFeed.java:867)
at com.google.gdata.wireformats.input.AtomDataParser.parse(AtomDataParser.java:68)
at com.google.gdata.wireformats.input.AtomDataParser.parse(AtomDataParser.java:39)
at com.google.gdata.wireformats.input.CharacterParser.parse(CharacterParser.java:100)
at com.google.gdata.wireformats.input.XmlInputParser.parse(XmlInputParser.java:52)
at com.google.gdata.wireformats.input.AtomDualParser.parse(AtomDualParser.java:66)
at com.google.gdata.wireformats.input.AtomDualParser.parse(AtomDualParser.java:34)
at com.google.gdata.client.Service.parseResponseData(Service.java:2165)
at com.google.gdata.client.Service.parseResponseData(Service.java:2098)
at com.google.gdata.client.Service.getFeed(Service.java:1136)
at com.google.gdata.client.Service.getFeed(Service.java:998)
at com.google.gdata.client.GoogleService.getFeed(GoogleService.java:645)
at com.novell.nds.dirxml.driver.gmailshim.DirectoryAppClient.retrieveAllContacts(DirectoryAppClient.java:2919)
at com.novell.nds.dirxml.driver.gmailshim.GMailDriverShim.init(GMailDriverShim.java:684)
at com.novell.nds.dirxml.engine.Driver.startShim(Driver.java:1465)
at com.novell.nds.dirxml.engine.Driver.initialize(Driver.java:283)
at com.novell.nds.dirxml.engine.Driver.<init>(Driver.java:249)
at com.novell.nds.dirxml.engine.DriverEntry.run(DriverEntry.java:586)
at java.lang.Thread.run(Thread.java:745)
</stack-trace>
</exception>
<status level="fatal" type="driver-status">
<description>com.google.gdata.util.ParseException: Feature: http://xml.org/sax/features/external-general-entities</description>
<exception class-name="com.google.gdata.util.ParseException">
<message>Feature: http://xml.org/sax/features/external-general-entities</message>
<stack-trace>com.google.gdata.util.ParseException: Feature: http://xml.org/sax/features/external-general-entities
at com.google.gdata.util.XmlParser.parse(XmlParser.java:712)
at com.google.gdata.util.XmlParser.parse(XmlParser.java:585)
[07/06/2015 9:04:02.801] at com.google.gdata.data.BaseFeed.parseAtom(BaseFeed.java:867)
at com.google.gdata.wireformats.input.AtomDataParser.parse(AtomDataParser.java:68)
at com.google.gdata.wireformats.input.AtomDataParser.parse(AtomDataParser.java:39)
at com.google.gdata.wireformats.input.CharacterParser.parse(CharacterParser.java:100)
at com.google.gdata.wireformats.input.XmlInputParser.parse(XmlInputParser.java:52)
at com.google.gdata.wireformats.input.AtomDualParser.parse(AtomDualParser.java:66)
at com.google.gdata.wireformats.input.AtomDualParser.parse(AtomDualParser.java:34)
at com.google.gdata.client.Service.parseResponseData(Service.java:2165)
at com.google.gdata.client.Service.parseResponseData(Service.java:2098)
at com.google.gdata.client.Service.getFeed(Service.java:1136)
at com.google.gdata.client.Service.getFeed(Service.java:998)
at com.google.gdata.client.GoogleService.getFeed(GoogleService.java:645)
at com.novell.nds.dirxml.driver.gmailshim.DirectoryAppClient.retrieveAllContacts(DirectoryAppClient.java:2919)
at com.novell.nds.dirxml.driver.gmailshim.GMailDriverShim.init(GMailDriverShim.java:684)
at com.novell.nds.dirxml.engine.Driver.startShim(Driver.java:1465)
at com.novell.nds.dirxml.engine.Driver.initialize(Driver.java:283)
at com.novell.nds.dirxml.engine.Driver.<init>(Driver.java:249)
at com.novell.nds.dirxml.engine.DriverEntry.run(DriverEntry.java:586)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.xml.sax.SAXNotSupportedException: Feature: http://xml.org/sax/features/external-general-entities
at org.apache.crimson.parser.XMLReaderImpl.setFeature(XMLReaderImpl.java:202)
at org.apache.crimson.jaxp.SAXParserImpl.setFeatures(SAXParserImpl.java:143)
[07/06/2015 9:04:02.801] at org.apache.crimson.jaxp.SAXParserImpl.<init>(SAXParserImpl.java:126)
at org.apache.crimson.jaxp.SAXParserFactoryImpl.newSAXParserImpl(SAXParserFactoryImpl.java:113)
at org.apache.crimson.jaxp.SAXParserFactoryImpl.setFeature(SAXParserFactoryImpl.java:141)
at com.google.gdata.util.common.xml.parsing.SecureGenericXMLFactory$SecureSAXParserFactory.<init>(SecureGenericXMLFactory.java:106)
at com.google.gdata.util.common.xml.parsing.SecureGenericXMLFactory.getSAXParserFactory(SecureGenericXMLFactory.java:51)
at com.google.gdata.util.XmlParser.getSAXParserFactory(XmlParser.java:90)
at com.google.gdata.util.XmlParser.parse(XmlParser.java:688)
... 20 more
</stack-trace>
</exception>
<exception class-name="org.xml.sax.SAXNotSupportedException">
<message>Feature: http://xml.org/sax/features/external-general-entities</message>
<stack-trace>org.xml.sax.SAXNotSupportedException: Feature: http://xml.org/sax/features/external-general-entities
at org.apache.crimson.parser.XMLReaderImpl.setFeature(XMLReaderImpl.java:202)
at org.apache.crimson.jaxp.SAXParserImpl.setFeatures(SAXParserImpl.java:143)
at org.apache.crimson.jaxp.SAXParserImpl.<init>(SAXParserImpl.java:126)
at org.apache.crimson.jaxp.SAXParserFactoryImpl.newSAXParserImpl(SAXParserFactoryImpl.java:113)
at org.apache.crimson.jaxp.SAXParserFactoryImpl.setFeature(SAXParserFactoryImpl.java:141)
at com.google.gdata.util.common.xml.parsing.SecureGenericXMLFactory$SecureSAXParserFactory.<init>(SecureGenericXMLFactory.java:106)
at com.google.gdata.util.common.xml.parsing.SecureGenericXMLFactory.getSAXParserFactory(SecureGenericXMLFactory.java:51)
[07/06/2015 9:04:02.801] at com.google.gdata.util.XmlParser.getSAXParserFactory(XmlParser.java:90)
at com.google.gdata.util.XmlParser.parse(XmlParser.java:688)
at com.google.gdata.util.XmlParser.parse(XmlParser.java:585)
at com.google.gdata.data.BaseFeed.parseAtom(BaseFeed.java:867)
at com.google.gdata.wireformats.input.AtomDataParser.parse(AtomDataParser.java:68)
at com.google.gdata.wireformats.input.AtomDataParser.parse(AtomDataParser.java:39)
at com.google.gdata.wireformats.input.CharacterParser.parse(CharacterParser.java:100)
at com.google.gdata.wireformats.input.XmlInputParser.parse(XmlInputParser.java:52)
at com.google.gdata.wireformats.input.AtomDualParser.parse(AtomDualParser.java:66)
at com.google.gdata.wireformats.input.AtomDualParser.parse(AtomDualParser.java:34)
at com.google.gdata.client.Service.parseResponseData(Service.java:2165)
at com.google.gdata.client.Service.parseResponseData(Service.java:2098)
at com.google.gdata.client.Service.getFeed(Service.java:1136)
at com.google.gdata.client.Service.getFeed(Service.java:998)
at com.google.gdata.client.GoogleService.getFeed(GoogleService.java:645)
at com.novell.nds.dirxml.driver.gmailshim.DirectoryAppClient.retrieveAllContacts(DirectoryAppClient.java:2919)
at com.novell.nds.dirxml.driver.gmailshim.GMailDriverShim.init(GMailDriverShim.java:684)
at com.novell.nds.dirxml.engine.Driver.startShim(Driver.java:1465)
at com.novell.nds.dirxml.engine.Driver.initialize(Driver.java:283)
at com.novell.nds.dirxml.engine.Driver.<init>(Driver.java:249)
at com.novell.nds.dirxml.engine.DriverEntry.run(DriverEntry.java:586)
at java.lang.Thread.run(Thread.java:745)
</stack-trace>
</exception>
Resolution
The Google driver has a built in XML parser which will correct the problem. To solve the issue, it is necessary to enable the driver configuration parameter called "Override JAXP Factory?" also known as drvOverrideFactorySettings. This parameter should be changed to the value "true" to use the corrected XML parser, which will resolve the issue. This parameter has been present for many years in the driver configuration, but has only just recently been needed. As a result, it may be hidden on your driver.
Once you make the change, save and deploy the driver then attempt to start the driver.
Here is the setting in Designer

Here is the setting in iManager

If you cannot see this setting, then you may need to unhide it. Edit the XML and change the hide true to false, then save and try to edit the setting again.

Once you make the change, save and deploy the driver then attempt to start the driver.
Here is the setting in Designer

Here is the setting in iManager

If you cannot see this setting, then you may need to unhide it. Edit the XML and change the hide true to false, then save and try to edit the setting again.
