Bug #1914
database conversion requires Internet connectivity
100%
History
#1 Updated by Eric Faulhaber over 11 years ago
While converting a project without being connected to the Internet, I hit an exception when the JVM tried to resolve a URI reference in the Hibernate DTD (hibernate.sourceforge.net, I think it was). I no longer have the log, but I believe this was during the DDL generation phase, when we use Hibernate to load the DMOs. The XML parser apparently was trying to resolve the sourceforge site referenced in the DTD, and it threw an exception (UnknownHostException IIRC).
I saw this using OpenJDK 7 on Ubuntu, not sure if it happens with other versions of the JVM. To recreate, run full conversion of a project (e.g., Majic) while disconnected from the Internet.
#2 Updated by Eric Faulhaber over 11 years ago
- Target version set to 24
#3 Updated by Constantin Asofiei over 11 years ago
The stacktrace for this error is:
Generating INDEX DDL for table ... Reading merge DMO definitions... EXPRESSION EXECUTION ERROR: --------------------------- hbmRoot = xml.parse(hbmFile, false, null) ^ { hibernate.sourceforge.net } --------------------------- EXPRESSION EXECUTION ERROR: --------------------------- dmoDef = execLib('readMergeDMODefinition', dmoClass, classElem) ^ { Expression execution error @1:15 } --------------------------- EXPRESSION EXECUTION ERROR: --------------------------- allMergeDMOs = execLib("readAllMergeDMODefinition", dbName) ^ { Expression execution error @1:10 } --------------------------- EXPRESSION EXECUTION ERROR: --------------------------- execLib('registerMergeDMOs', pkgPath, handler) ^ { Expression execution error @1:16 } --------------------------- ERROR: java.lang.RuntimeException: ERROR! Active Rule: ----------------------- RULE REPORT ----------------------- Rule Type : WALK Source AST: [ majic ] DATA_MODEL/ @0:0 {30064771073} Copy AST : [ majic ] DATA_MODEL/ @0:0 {30064771073} Condition : hbmRoot = xml.parse(hbmFile, false, null) Loop : false --- END RULE REPORT --- at com.goldencode.p2j.pattern.PatternEngine.run(PatternEngine.java:718) at com.goldencode.p2j.convert.ConversionDriver.processTrees(ConversionDriver.java:993) at com.goldencode.p2j.convert.ConversionDriver.generateDDL(ConversionDriver.java:699) at com.goldencode.p2j.convert.ConversionDriver.middle(ConversionDriver.java:651) at com.goldencode.p2j.convert.ConversionDriver.main(ConversionDriver.java:1723) Caused by: com.goldencode.expr.ExpressionException: Expression execution error @1:1 at com.goldencode.expr.Expression.execute(Expression.java:430) at com.goldencode.p2j.pattern.Rule.apply(Rule.java:401) at com.goldencode.p2j.pattern.RuleContainer.apply(RuleContainer.java:488) at com.goldencode.p2j.pattern.RuleSet.apply(RuleSet.java:1) at com.goldencode.p2j.pattern.PatternEngine.apply(PatternEngine.java:1084) at com.goldencode.p2j.pattern.PatternEngine.processAst(PatternEngine.java:1003) at com.goldencode.p2j.pattern.PatternEngine.run(PatternEngine.java:690) ... 4 more Caused by: com.goldencode.expr.ExpressionException: Expression execution error @1:16 at com.goldencode.expr.Expression.execute(Expression.java:430) at com.goldencode.p2j.pattern.Rule.apply(Rule.java:401) at com.goldencode.p2j.pattern.NamedFunction.execute(NamedFunction.java:396) at com.goldencode.p2j.pattern.AstSymbolResolver.execute(AstSymbolResolver.java:667) at com.goldencode.p2j.pattern.CommonAstSupport$Library.execLib(CommonAstSupport.java:1056) at com.goldencode.expr.CE1530.execute(Unknown Source) at com.goldencode.expr.Expression.execute(Expression.java:336) ... 10 more Caused by: com.goldencode.expr.ExpressionException: Expression execution error @1:10 at com.goldencode.expr.Expression.execute(Expression.java:430) at com.goldencode.p2j.pattern.Rule.apply(Rule.java:401) at com.goldencode.p2j.pattern.Rule.executeActions(Rule.java:640) at com.goldencode.p2j.pattern.Rule.coreProcessing(Rule.java:609) at com.goldencode.p2j.pattern.Rule.apply(Rule.java:413) at com.goldencode.p2j.pattern.Rule.executeActions(Rule.java:640) at com.goldencode.p2j.pattern.Rule.coreProcessing(Rule.java:609) at com.goldencode.p2j.pattern.Rule.apply(Rule.java:440) at com.goldencode.p2j.pattern.Rule.executeActions(Rule.java:640) at com.goldencode.p2j.pattern.Rule.coreProcessing(Rule.java:609) at com.goldencode.p2j.pattern.Rule.apply(Rule.java:440) at com.goldencode.p2j.pattern.Rule.executeActions(Rule.java:640) at com.goldencode.p2j.pattern.Rule.coreProcessing(Rule.java:609) at com.goldencode.p2j.pattern.Rule.apply(Rule.java:413) at com.goldencode.p2j.pattern.Rule.executeActions(Rule.java:640) at com.goldencode.p2j.pattern.Rule.coreProcessing(Rule.java:609) at com.goldencode.p2j.pattern.Rule.apply(Rule.java:440) at com.goldencode.p2j.pattern.NamedFunction.execute(NamedFunction.java:396) at com.goldencode.p2j.pattern.AstSymbolResolver.execute(AstSymbolResolver.java:667) at com.goldencode.p2j.pattern.CommonAstSupport$Library.execLib(CommonAstSupport.java:1056) at com.goldencode.expr.CE1531.execute(Unknown Source) at com.goldencode.expr.Expression.execute(Expression.java:336) ... 16 more Caused by: com.goldencode.expr.ExpressionException: Expression execution error @1:15 at com.goldencode.expr.Expression.execute(Expression.java:430) at com.goldencode.p2j.pattern.Rule.apply(Rule.java:401) at com.goldencode.p2j.pattern.NamedFunction.execute(NamedFunction.java:396) at com.goldencode.p2j.pattern.AstSymbolResolver.execute(AstSymbolResolver.java:667) at com.goldencode.p2j.pattern.CommonAstSupport$Library.execLib(CommonAstSupport.java:1056) at com.goldencode.expr.CE1548.execute(Unknown Source) at com.goldencode.expr.Expression.execute(Expression.java:336) ... 37 more Caused by: java.net.UnknownHostException: hibernate.sourceforge.net at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:195) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:529) at java.net.Socket.connect(Socket.java:478) at sun.net.NetworkClient.doConnect(NetworkClient.java:163) at sun.net.www.http.HttpClient.openServer(HttpClient.java:395) at sun.net.www.http.HttpClient.openServer(HttpClient.java:530) at sun.net.www.http.HttpClient.<init>(HttpClient.java:234) at sun.net.www.http.HttpClient.New(HttpClient.java:307) at sun.net.www.http.HttpClient.New(HttpClient.java:324) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:970) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911) at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1172) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:677) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1315) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:1282) at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:283) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1194) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1090) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:1003) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119) at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:235) at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284) at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:153) at com.goldencode.util.XmlHelper.parse(XmlHelper.java:423) at com.goldencode.util.XmlHelper.parse(XmlHelper.java:296) at com.goldencode.p2j.xml.XmlPatternWorker$Library.parse(XmlPatternWorker.java:234) at com.goldencode.expr.CE1565.execute(Unknown Source) at com.goldencode.expr.Expression.execute(Expression.java:336) ... 43 more
#4 Updated by Stanislav Lomany over 10 years ago
Unlike the previous MAJIC conversion error this one occurs at runtime at test server startup when it is offline. The server tries to connect to www.hibernate.org.
com.goldencode.p2j.cfg.ConfigurationException: Initialization failure at com.goldencode.p2j.main.StandardServer.hookInitialize(StandardServer.java:1446) at com.goldencode.p2j.main.StandardServer.bootstrap(StandardServer.java:697) at com.goldencode.p2j.main.ServerDriver.start(ServerDriver.java:366) at com.goldencode.p2j.main.CommonDriver.process(CommonDriver.java:423) at com.goldencode.p2j.main.ServerDriver.process(ServerDriver.java:141) at com.goldencode.p2j.main.ServerDriver.main(ServerDriver.java:648) Caused by: java.lang.RuntimeException: com.goldencode.p2j.persist.PersistenceException: Couldn't read MetaDbImpl.hbm.xml document at com.goldencode.p2j.main.StandardServer$5.initialize(StandardServer.java:870) at com.goldencode.p2j.main.StandardServer.hookInitialize(StandardServer.java:1442) ... 5 more Caused by: com.goldencode.p2j.persist.PersistenceException: Couldn't read MetaDbImpl.hbm.xml document at com.goldencode.p2j.persist.DatabaseManager.getBackingTableName(DatabaseManager.java:607) at com.goldencode.p2j.persist.ORMHandler.mapClass(ORMHandler.java:211) at com.goldencode.p2j.persist.DatabaseManager.registerDatabase(DatabaseManager.java:2087) at com.goldencode.p2j.persist.DatabaseManager.initialize(DatabaseManager.java:1154) at com.goldencode.p2j.persist.Persistence.initialize(Persistence.java:1069) at com.goldencode.p2j.main.StandardServer$5.initialize(StandardServer.java:866) ... 6 more Caused by: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391) at java.net.Socket.connect(Socket.java:579) at java.net.Socket.connect(Socket.java:528) at sun.net.NetworkClient.doConnect(NetworkClient.java:180) at sun.net.www.http.HttpClient.openServer(HttpClient.java:378) at sun.net.www.http.HttpClient.openServer(HttpClient.java:473) at sun.net.www.http.HttpClient.<init>(HttpClient.java:203) at sun.net.www.http.HttpClient.New(HttpClient.java:290) at sun.net.www.http.HttpClient.New(HttpClient.java:306) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:995) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:931) at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:849) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1299) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:632) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1270) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:1237) at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:260) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1153) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1049) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:962) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123) at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:237) at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:300) at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:150) at com.goldencode.util.XmlHelper.parse(XmlHelper.java:493) at com.goldencode.util.XmlHelper.parse(XmlHelper.java:416) at com.goldencode.p2j.persist.DatabaseManager.getBackingTableName(DatabaseManager.java:587) ... 11 more
#5 Updated by Constantin Asofiei over 10 years ago
The root cause is the same: the Hibernate's DTD is needed to parse the .hbm.xml
files, but is not reachable. An initial solution would be to place hibernate DTD file in the server startup directory (i.e. testcases/simple/server
) and change the DOCTYPE
in the .hbm.xml
file to this:
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "hibernate-mapping-3.0.dtd">
This will allow an offline server startup.
For conversion, change the hbm_dtd_node
template in the schema/hibernate_templates.tpl
to this:
<ast-root name="hbm_dtd_node" terse="true" ast_class="com.goldencode.p2j.xml.XmlAst" > <ast id="0" type="DOCUMENT_TYPE_NODE" text="hibernate-mapping"> <ast id="0" type="PUBLIC_ID" text="-//Hibernate/Hibernate Mapping DTD 3.0//EN" /> <ast id="0" type="SYSTEM_ID" text="hibernate-mapping-3.0.dtd" /> </ast> </ast-root>
The
hibernate-mapping-3.0.dtd
needs to be placed in the conversion startup folder (i.e. testcases/uast
). This will allow DDL to be generated and the .hbm.xml
files will target an offline DTD.
LE: hbm_dtd_node
targets an offline file.
#6 Updated by Greg Shah over 10 years ago
- Priority changed from Low to Normal
- Subject changed from database conversion requires Internet connectivity to database conversion (and also server startup) requires Internet connectivity
#7 Updated by Stanislav Lomany over 10 years ago
- Assignee set to Stanislav Lomany
Today hibernate site has gone to maintenance, so I did like Constantin suggested. Luckily I found hibernate-mapping-3.0.dtd in the hibernate distribution.
Caused by: java.io.IOException: Server returned HTTP response code: 503 for URL: http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1615) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:632) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1270) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:1237) at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:260) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1153) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1049) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:962) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123) at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:237) at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:300) at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:150) at com.goldencode.util.XmlHelper.parse(XmlHelper.java:493) at com.goldencode.util.XmlHelper.parse(XmlHelper.java:416) at com.goldencode.p2j.persist.DatabaseManager.getBackingTableName(DatabaseManager.java:587)
#8 Updated by Constantin Asofiei over 10 years ago
- File hibernate-mapping-3.0.dtd added
Added the hibernate-mapping-3.0.dtd
file (in case hibernate.org site is inaccessible).
#9 Updated by Eric Faulhaber over 10 years ago
I have a fix for this that does not require copying the DTD anywhere. The DTD already is in the Hibernate jar file, we just needed to emit the proper DOCTYPE into the hbm.xml files. We omit the PUBLIC ID, and Hibernate is smart enough to resolve the SYSTEM ID from the classpath. We just have to be sure to use Hibernate's specialized entity resolver when we parse the files ourselves (which we already were doing in some places, but we missed one). I'll include the fix with my next update.
I'm not going to post the fix separately here, because I have unrelated changes in one of the files, and since this is not a critical issue, I don't want to separate everything out and go through the extra regression test effort, when I'm going to do it anyway for my other update. If you have offline problems before this fix is available, use the workaround mentioned above, but please remember to clean up your project once this fix is available. I'll update this issue when the fix is ready.
#10 Updated by Eric Faulhaber over 10 years ago
Actually, it is not even necessary to omit the PUBLIC ID. Only the code changes to use the entity resolver are needed.
#11 Updated by Eugenie Lyzenko over 10 years ago
Conversion on Windows virtual machine mode without networking causes the error:
... Generating INDEX DDL for table xt_image... Generating INDEX DDL for table xt_key... Generating INDEX DDL for table xt_notes... Generating INDEX DDL for table xt_print... Generating INDEX DDL for table zone... Reading merge DMO definitions... ERROR: java.lang.RuntimeException: ERROR! Active Rule: ----------------------- RULE REPORT ----------------------- Rule Type : WALK Source AST: [ majic ] DATA_MODEL/ @0:0 {11600706666497} Copy AST : [ majic ] DATA_MODEL/ @0:0 {11600706666497} Condition : hbmRoot = xml.parse(hbmFile, false, null) Loop : false --- END RULE REPORT --- at com.goldencode.p2j.pattern.PatternEngine.run(PatternEngine.java:864) at com.goldencode.p2j.convert.ConversionDriver.processTrees(ConversionDriver.java:976) at com.goldencode.p2j.convert.ConversionDriver.generateDDL(ConversionDriver.java:739) at com.goldencode.p2j.convert.ConversionDriver.middle(ConversionDriver.java:660) at com.goldencode.p2j.convert.ConversionDriver.main(ConversionDriver.java:1750) Caused by: java.net.UnknownHostException: hibernate.sourceforge.net at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:579) at java.net.Socket.connect(Socket.java:528) at sun.net.NetworkClient.doConnect(NetworkClient.java:180) at sun.net.www.http.HttpClient.openServer(HttpClient.java:432) at sun.net.www.http.HttpClient.openServer(HttpClient.java:527) at sun.net.www.http.HttpClient.<init>(HttpClient.java:211) at sun.net.www.http.HttpClient.New(HttpClient.java:308) at sun.net.www.http.HttpClient.New(HttpClient.java:326) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:996) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:932) at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:850) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1300) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:637) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1290) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:1257) at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:262) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1162) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1050) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:964) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243) at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:347) at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:150) at com.goldencode.util.XmlHelper.parse(XmlHelper.java:494) at com.goldencode.util.XmlHelper.parse(XmlHelper.java:332) at com.goldencode.p2j.xml.XmlPatternWorker$Library.parse(XmlPatternWorker.java:244) at com.goldencode.expr.CE3146.execute(Unknown Source) at com.goldencode.expr.Expression.execute(Expression.java:323) at com.goldencode.p2j.pattern.Rule.apply(Rule.java:401) at com.goldencode.p2j.pattern.NamedFunction.execute(NamedFunction.java:393) at com.goldencode.p2j.pattern.AstSymbolResolver.execute(AstSymbolResolver.java:646) at com.goldencode.p2j.pattern.CommonAstSupport$Library.execLib(CommonAstSupport.java:1097) at com.goldencode.expr.CE3129.execute(Unknown Source) at com.goldencode.expr.Expression.execute(Expression.java:323) at com.goldencode.p2j.pattern.Rule.apply(Rule.java:401) at com.goldencode.p2j.pattern.Rule.executeActions(Rule.java:640) at com.goldencode.p2j.pattern.Rule.coreProcessing(Rule.java:609) at com.goldencode.p2j.pattern.Rule.apply(Rule.java:413) at com.goldencode.p2j.pattern.Rule.executeActions(Rule.java:640) at com.goldencode.p2j.pattern.Rule.coreProcessing(Rule.java:609) at com.goldencode.p2j.pattern.Rule.apply(Rule.java:440) at com.goldencode.p2j.pattern.Rule.executeActions(Rule.java:640) at com.goldencode.p2j.pattern.Rule.coreProcessing(Rule.java:609) at com.goldencode.p2j.pattern.Rule.apply(Rule.java:440) at com.goldencode.p2j.pattern.Rule.executeActions(Rule.java:640) at com.goldencode.p2j.pattern.Rule.coreProcessing(Rule.java:609) at com.goldencode.p2j.pattern.Rule.apply(Rule.java:413) at com.goldencode.p2j.pattern.Rule.executeActions(Rule.java:640) at com.goldencode.p2j.pattern.Rule.coreProcessing(Rule.java:609) at com.goldencode.p2j.pattern.Rule.apply(Rule.java:440) at com.goldencode.p2j.pattern.NamedFunction.execute(NamedFunction.java:393) at com.goldencode.p2j.pattern.AstSymbolResolver.execute(AstSymbolResolver.java:646) at com.goldencode.p2j.pattern.CommonAstSupport$Library.execLib(CommonAstSupport.java:1097) at com.goldencode.expr.CE3112.execute(Unknown Source) at com.goldencode.expr.Expression.execute(Expression.java:323) at com.goldencode.p2j.pattern.Rule.apply(Rule.java:401) at com.goldencode.p2j.pattern.NamedFunction.execute(NamedFunction.java:393) at com.goldencode.p2j.pattern.AstSymbolResolver.execute(AstSymbolResolver.java:646) at com.goldencode.p2j.pattern.CommonAstSupport$Library.execLib(CommonAstSupport.java:1097) at com.goldencode.expr.CE3111.execute(Unknown Source) at com.goldencode.expr.Expression.execute(Expression.java:323) at com.goldencode.p2j.pattern.Rule.apply(Rule.java:401) at com.goldencode.p2j.pattern.RuleContainer.apply(RuleContainer.java:531) at com.goldencode.p2j.pattern.RuleSet.apply(RuleSet.java:50) at com.goldencode.p2j.pattern.PatternEngine.apply(PatternEngine.java:1325) at com.goldencode.p2j.pattern.PatternEngine.processAst(PatternEngine.java:1244) at com.goldencode.p2j.pattern.PatternEngine.processAst(PatternEngine.java:1192) at com.goldencode.p2j.pattern.PatternEngine.run(PatternEngine.java:830) ... 4 more C:\work64\majic>
#12 Updated by Eugenie Lyzenko almost 9 years ago
- File evl_upd20150718a.zip added
Majic changes for review to fix build failure from sourceforge down.
I have found 3 files:
srcnew/java/aero/timco/majic/dmo/majic/impl/EdiInvoiceImpl.hbm.xml srcnew/java/aero/timco/majic/dmo/majic/impl/EdiVoucherImpl.hbm.xml srcnew/java/aero/timco/majic/dmo/_temp/impl/LmsTempRmployeeImpl.hbm.xml
Testing the changes.
#13 Updated by Eric Faulhaber almost 9 years ago
- Assignee deleted (
Stanislav Lomany)
Currently, this is what http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd returns:
"The sourceforge.net website is temporarily in static offline mode.
Only a very limited set of project pages are available until the main website returns to service."
As a result, we see this during conversion:
... [java] Generating INDEX DDL for table work_unit_code... [java] Generating INDEX DDL for table xt_function... [java] Generating INDEX DDL for table xt_image... [java] Generating INDEX DDL for table xt_key... [java] Generating INDEX DDL for table xt_notes... [java] Generating INDEX DDL for table xt_print... [java] Generating INDEX DDL for table zone... [java] Reading merge DMO definitions... [java] EXPRESSION EXECUTION ERROR: [java] --------------------------- [java] hbmRoot = xml.parse(hbmFile, false, null) [java] ^ { Server returned HTTP response code: 503 for URL: http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd } [java] --------------------------- [java] EXPRESSION EXECUTION ERROR: [java] --------------------------- [java] dmoDef = execLib('readMergeDMODefinition', dmoClass, classElem) [java] ^ { Expression execution error @1:15 } [java] --------------------------- [java] EXPRESSION EXECUTION ERROR: [java] --------------------------- [java] allMergeDMOs = execLib("readAllMergeDMODefinition", dbName) [java] ^ { Expression execution error @1:10 } [java] --------------------------- [java] EXPRESSION EXECUTION ERROR: [java] --------------------------- [java] execLib('registerMergeDMOs', pkgPath, handler) [java] ^ { Expression execution error @1:16 } [java] --------------------------- [java] Elapsed job time: 00:00:00.900 [java] ERROR: [java] java.lang.RuntimeException: ERROR! Active Rule: [java] ----------------------- [java] RULE REPORT [java] ----------------------- [java] Rule Type : WALK [java] Source AST: [ majic ] DATA_MODEL/ @0:0 {11596411699201} [java] Copy AST : [ majic ] DATA_MODEL/ @0:0 {11596411699201} [java] Condition : hbmRoot = xml.parse(hbmFile, false, null) [java] Loop : false [java] --- END RULE REPORT --- [java] [java] [java] [java] at com.goldencode.p2j.pattern.PatternEngine.run(PatternEngine.java:1007) [java] at com.goldencode.p2j.convert.ConversionDriver.processTrees(ConversionDriver.java:1018) [java] at com.goldencode.p2j.convert.ConversionDriver.generateDDL(ConversionDriver.java:754) [java] at com.goldencode.p2j.convert.ConversionDriver.middle(ConversionDriver.java:672) [java] at com.goldencode.p2j.convert.ConversionDriver.main(ConversionDriver.java:1793) [java] Caused by: com.goldencode.expr.ExpressionException: Expression execution error @1:1 [java] at com.goldencode.expr.Expression.execute(Expression.java:434) [java] at com.goldencode.p2j.pattern.Rule.apply(Rule.java:401) [java] at com.goldencode.p2j.pattern.RuleContainer.apply(RuleContainer.java:530) [java] at com.goldencode.p2j.pattern.RuleSet.apply(RuleSet.java:50) [java] at com.goldencode.p2j.pattern.PatternEngine.apply(PatternEngine.java:1495) [java] at com.goldencode.p2j.pattern.PatternEngine.processAst(PatternEngine.java:1414) [java] at com.goldencode.p2j.pattern.PatternEngine.processAst(PatternEngine.java:1362) [java] at com.goldencode.p2j.pattern.PatternEngine.run(PatternEngine.java:975) [java] ... 4 more [java] Caused by: com.goldencode.expr.ExpressionException: Expression execution error @1:16 [java] at com.goldencode.expr.Expression.execute(Expression.java:434) [java] at com.goldencode.p2j.pattern.Rule.apply(Rule.java:401) [java] at com.goldencode.p2j.pattern.NamedFunction.execute(NamedFunction.java:395) [java] at com.goldencode.p2j.pattern.AstSymbolResolver.execute(AstSymbolResolver.java:661) [java] at com.goldencode.p2j.pattern.CommonAstSupport$Library.execLib(CommonAstSupport.java:1147) [java] at com.goldencode.expr.CE3780.execute(Unknown Source) [java] at com.goldencode.expr.Expression.execute(Expression.java:341) [java] ... 11 more [java] Caused by: com.goldencode.expr.ExpressionException: Expression execution error @1:10 [java] at com.goldencode.expr.Expression.execute(Expression.java:434) [java] at com.goldencode.p2j.pattern.Rule.apply(Rule.java:401) [java] at com.goldencode.p2j.pattern.Rule.executeActions(Rule.java:640) [java] at com.goldencode.p2j.pattern.Rule.coreProcessing(Rule.java:609) [java] at com.goldencode.p2j.pattern.Rule.apply(Rule.java:413) [java] at com.goldencode.p2j.pattern.Rule.executeActions(Rule.java:640) [java] at com.goldencode.p2j.pattern.Rule.coreProcessing(Rule.java:609) [java] at com.goldencode.p2j.pattern.Rule.apply(Rule.java:440) [java] at com.goldencode.p2j.pattern.Rule.executeActions(Rule.java:640) [java] at com.goldencode.p2j.pattern.Rule.coreProcessing(Rule.java:609) [java] at com.goldencode.p2j.pattern.Rule.apply(Rule.java:440) [java] at com.goldencode.p2j.pattern.Rule.executeActions(Rule.java:640) [java] at com.goldencode.p2j.pattern.Rule.coreProcessing(Rule.java:609) [java] at com.goldencode.p2j.pattern.Rule.apply(Rule.java:413) [java] at com.goldencode.p2j.pattern.Rule.executeActions(Rule.java:640) [java] at com.goldencode.p2j.pattern.Rule.coreProcessing(Rule.java:609) [java] at com.goldencode.p2j.pattern.Rule.apply(Rule.java:440) [java] at com.goldencode.p2j.pattern.NamedFunction.execute(NamedFunction.java:395) [java] at com.goldencode.p2j.pattern.AstSymbolResolver.execute(AstSymbolResolver.java:661) [java] at com.goldencode.p2j.pattern.CommonAstSupport$Library.execLib(CommonAstSupport.java:1147) [java] at com.goldencode.expr.CE3781.execute(Unknown Source) [java] at com.goldencode.expr.Expression.execute(Expression.java:341) [java] ... 17 more [java] Caused by: com.goldencode.expr.ExpressionException: Expression execution error @1:15 [java] at com.goldencode.expr.Expression.execute(Expression.java:434) [java] at com.goldencode.p2j.pattern.Rule.apply(Rule.java:401) [java] at com.goldencode.p2j.pattern.NamedFunction.execute(NamedFunction.java:395) [java] at com.goldencode.p2j.pattern.AstSymbolResolver.execute(AstSymbolResolver.java:661) [java] at com.goldencode.p2j.pattern.CommonAstSupport$Library.execLib(CommonAstSupport.java:1147) [java] at com.goldencode.expr.CE3798.execute(Unknown Source) [java] at com.goldencode.expr.Expression.execute(Expression.java:341) [java] ... 38 more [java] Caused by: java.io.IOException: Server returned HTTP response code: 503 for URL: http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd [java] at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1626) [java] at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:637) [java] at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1290) [java] at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:1257) [java] at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:263) [java] at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1164) [java] at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1050) [java] at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:964) [java] at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606) [java] at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510) [java] at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848) [java] at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777) [java] at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) [java] at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243) [java] at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:347) [java] at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:150) [java] at com.goldencode.util.XmlHelper.parse(XmlHelper.java:495) [java] at com.goldencode.util.XmlHelper.parse(XmlHelper.java:332) [java] at com.goldencode.p2j.xml.XmlPatternWorker$Library.parse(XmlPatternWorker.java:307) [java] at com.goldencode.expr.CE3815.execute(Unknown Source) [java] at com.goldencode.expr.Expression.execute(Expression.java:341) [java] ... 44 more
There are a few problems here...
First, some hand-written .hbm.xml
files reference an obsolete DTD URI (http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd). The correct reference is http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd. We fixed this in the schema conversion some time ago, but we missed editing these hand-written documents.
Fixing that (as detailed in note 12) is the quickest way to resolve this, however, it is just a workaround. The hibernate.org site is more reliable, but we don't want to have to go out over the Internet at all to pull in the DTD for these XML documents. We already have it in the classpath.
I think the best way to do that is to add an API to XMLPatternWorker$Library
which exposes XmlHelper.parse(InputStream in, boolean validate, EntityResolver resolver, ErrorHandler handler)
. Then, find all the places where we parse these .hbm.xml
files in the conversion and use this API, passing an instance of org.hibernate.internal.util.xml.DTDEntityResolver
for the third parameter. This will allow the XML parser to resolve the DTD from the classpath instead of the Internet. We do this at runtime already (see note 9), during server startup.
#14 Updated by Eric Faulhaber almost 8 years ago
- Subject changed from database conversion (and also server startup) requires Internet connectivity to database conversion requires Internet connectivity
The server startup issue was addressed per notes 9-10, so I'm changing the subject back to reflect that this is only a conversion issue now.
#15 Updated by Eric Faulhaber almost 8 years ago
My last conversion of the customer's server project was done offline. There were no errors. I don't think this is a problem anymore.
Has anyone watching had a problem with this lately? If not, I'm planning on closing this issue.
#16 Updated by Paul E almost 8 years ago
Fine by me.
I was only concerned about this when it seemed it was a runtime issue too. Conversion can require internet connectivity from our perspective.
#17 Updated by Greg Shah over 7 years ago
- Target version deleted (
24) - Status changed from New to Closed
- % Done changed from 0 to 100