You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Albert Lee (JIRA)" <ji...@apache.org> on 2008/11/04 19:02:44 UTC
[jira] Created: (OPENJPA-761) SchemaTool failed with a NPE in
ForeignKey.join
SchemaTool failed with a NPE in ForeignKey.join
-----------------------------------------------
Key: OPENJPA-761
URL: https://issues.apache.org/jira/browse/OPENJPA-761
Project: OpenJPA
Issue Type: Bug
Components: jdbc
Affects Versions: 1.0.4, 1.1.1, 1.2.1, 1.3.0, 2.0.0
Reporter: Albert Lee
Assignee: Albert Lee
Priority: Minor
Fix For: 1.3.0, 2.0.0
A test used the SchemaTool to reflect "all" schema in a Oracle DB but run in a NPE as observed below:
[exec] 131 INFO [main] openjpa.jdbc.JDBC - Using dictionary class "com.ibm.ws.persistence.jdbc.sql.OracleDictionary".
[exec] 1127 INFO [main] openjpa.Tool - Reflecting on schemas "all". This process may take some time. Enable the org.apache.openjpa.jdbc.Schema logging category to see messages about the collection of schema data.
[exec] Exception in thread "main" java.lang.NullPointerException
[exec] at org.apache.openjpa.jdbc.schema.ForeignKey.join(ForeignKey.java:521)
[exec] at org.apache.openjpa.jdbc.schema.SchemaGenerator.generateForeignKeys(SchemaGenerator.java:794)
[exec] at org.apache.openjpa.jdbc.schema.SchemaGenerator.generateForeignKeys(SchemaGenerator.java:431)
[exec] at org.apache.openjpa.jdbc.schema.SchemaGenerator.generateSchemas(SchemaGenerator.java:278)
[exec] at org.apache.openjpa.jdbc.schema.SchemaGenerator.generateSchemas(SchemaGenerator.java:243)
[exec] at org.apache.openjpa.jdbc.schema.SchemaTool.run(SchemaTool.java:1433)
[exec] at org.apache.openjpa.jdbc.schema.SchemaTool.run(SchemaTool.java:1403)
[exec] at org.apache.openjpa.jdbc.schema.SchemaTool$1.run(SchemaTool.java:1348)
[exec] at org.apache.openjpa.lib.conf.Configurations.launchRunnable(Configurations.java:708)
[exec] at org.apache.openjpa.lib.conf.Configurations.runAgainstAllAnchors(Configurations.java:693)
[exec] at org.apache.openjpa.jdbc.schema.SchemaTool.main(SchemaTool.java:1343)
Albert Lee
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Resolved: (OPENJPA-761) SchemaTool failed with a NPE in
ForeignKey.join
Posted by "Albert Lee (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OPENJPA-761?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Albert Lee resolved OPENJPA-761.
--------------------------------
Resolution: Fixed
> SchemaTool failed with a NPE in ForeignKey.join
> -----------------------------------------------
>
> Key: OPENJPA-761
> URL: https://issues.apache.org/jira/browse/OPENJPA-761
> Project: OpenJPA
> Issue Type: Bug
> Components: jdbc
> Affects Versions: 1.0.4, 1.1.1, 1.2.1, 1.3.0, 2.0.0
> Reporter: Albert Lee
> Assignee: Albert Lee
> Priority: Minor
> Fix For: 1.3.0, 2.0.0
>
>
> A test used the SchemaTool to reflect "all" schema in a Oracle DB but run in a NPE as observed below:
> [exec] 131 INFO [main] openjpa.jdbc.JDBC - Using dictionary class "com.ibm.ws.persistence.jdbc.sql.OracleDictionary".
> [exec] 1127 INFO [main] openjpa.Tool - Reflecting on schemas "all". This process may take some time. Enable the org.apache.openjpa.jdbc.Schema logging category to see messages about the collection of schema data.
> [exec] Exception in thread "main" java.lang.NullPointerException
> [exec] at org.apache.openjpa.jdbc.schema.ForeignKey.join(ForeignKey.java:521)
> [exec] at org.apache.openjpa.jdbc.schema.SchemaGenerator.generateForeignKeys(SchemaGenerator.java:794)
> [exec] at org.apache.openjpa.jdbc.schema.SchemaGenerator.generateForeignKeys(SchemaGenerator.java:431)
> [exec] at org.apache.openjpa.jdbc.schema.SchemaGenerator.generateSchemas(SchemaGenerator.java:278)
> [exec] at org.apache.openjpa.jdbc.schema.SchemaGenerator.generateSchemas(SchemaGenerator.java:243)
> [exec] at org.apache.openjpa.jdbc.schema.SchemaTool.run(SchemaTool.java:1433)
> [exec] at org.apache.openjpa.jdbc.schema.SchemaTool.run(SchemaTool.java:1403)
> [exec] at org.apache.openjpa.jdbc.schema.SchemaTool$1.run(SchemaTool.java:1348)
> [exec] at org.apache.openjpa.lib.conf.Configurations.launchRunnable(Configurations.java:708)
> [exec] at org.apache.openjpa.lib.conf.Configurations.runAgainstAllAnchors(Configurations.java:693)
> [exec] at org.apache.openjpa.jdbc.schema.SchemaTool.main(SchemaTool.java:1343)
> Albert Lee
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Closed: (OPENJPA-761) SchemaTool failed with a NPE in
ForeignKey.join
Posted by "Albert Lee (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OPENJPA-761?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Albert Lee closed OPENJPA-761.
------------------------------
> SchemaTool failed with a NPE in ForeignKey.join
> -----------------------------------------------
>
> Key: OPENJPA-761
> URL: https://issues.apache.org/jira/browse/OPENJPA-761
> Project: OpenJPA
> Issue Type: Bug
> Components: jdbc
> Affects Versions: 1.0.4, 1.1.1, 1.2.1, 1.3.0, 2.0.0
> Reporter: Albert Lee
> Assignee: Albert Lee
> Priority: Minor
> Fix For: 1.3.0, 2.0.0
>
>
> A test used the SchemaTool to reflect "all" schema in a Oracle DB but run in a NPE as observed below:
> [exec] 131 INFO [main] openjpa.jdbc.JDBC - Using dictionary class "com.ibm.ws.persistence.jdbc.sql.OracleDictionary".
> [exec] 1127 INFO [main] openjpa.Tool - Reflecting on schemas "all". This process may take some time. Enable the org.apache.openjpa.jdbc.Schema logging category to see messages about the collection of schema data.
> [exec] Exception in thread "main" java.lang.NullPointerException
> [exec] at org.apache.openjpa.jdbc.schema.ForeignKey.join(ForeignKey.java:521)
> [exec] at org.apache.openjpa.jdbc.schema.SchemaGenerator.generateForeignKeys(SchemaGenerator.java:794)
> [exec] at org.apache.openjpa.jdbc.schema.SchemaGenerator.generateForeignKeys(SchemaGenerator.java:431)
> [exec] at org.apache.openjpa.jdbc.schema.SchemaGenerator.generateSchemas(SchemaGenerator.java:278)
> [exec] at org.apache.openjpa.jdbc.schema.SchemaGenerator.generateSchemas(SchemaGenerator.java:243)
> [exec] at org.apache.openjpa.jdbc.schema.SchemaTool.run(SchemaTool.java:1433)
> [exec] at org.apache.openjpa.jdbc.schema.SchemaTool.run(SchemaTool.java:1403)
> [exec] at org.apache.openjpa.jdbc.schema.SchemaTool$1.run(SchemaTool.java:1348)
> [exec] at org.apache.openjpa.lib.conf.Configurations.launchRunnable(Configurations.java:708)
> [exec] at org.apache.openjpa.lib.conf.Configurations.runAgainstAllAnchors(Configurations.java:693)
> [exec] at org.apache.openjpa.jdbc.schema.SchemaTool.main(SchemaTool.java:1343)
> Albert Lee
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (OPENJPA-761) SchemaTool failed with a NPE in
ForeignKey.join
Posted by "Albert Lee (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OPENJPA-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12645028#action_12645028 ]
Albert Lee commented on OPENJPA-761:
------------------------------------
- I run the SchemaTool against each individual schema in the Oracle db and all works except 2 schema, OM and PM, There are total of 37 schema in the database.
- The problems exhibited for these 2 schema looks like below which is different from the NPE. At least it posted a meaningful message.
4641 TRACE [main] openjpa.jdbc.JDBC - <t 1183336072, conn 1139688430> [0 ms] close
Exception in thread "main" java.lang.RuntimeException: java.sql.SQLException: Table "OE.CUSTOMERS" has a foreign key to table "HR.EMPLOYEES"
that has not been generated. You must run the schema generator on all inter-related tables at once.
at org.apache.openjpa.lib.conf.Configurations.launchRunnable(Configurations.java:711)
at org.apache.openjpa.lib.conf.Configurations.runAgainstAllAnchors(Configurations.java:693)
at org.apache.openjpa.jdbc.schema.SchemaTool.main(SchemaTool.java:1343)
Caused by: java.sql.SQLException: Table "OE.CUSTOMERS" has a foreign key to table "HR.EMPLOYEES" that has not been generated. You must run
the schema generator on all inter-related tables at once.
at org.apache.openjpa.jdbc.schema.SchemaGenerator.generateForeignKeys(SchemaGenerator.java:772)
at org.apache.openjpa.jdbc.schema.SchemaGenerator.generateForeignKeys(SchemaGenerator.java:431)
I re-run and debug the schemaTool against all the schema and I was able to reproduce the exception (NPE) condition. The table that is in question is OE.PURCHASERS.
- Then I generated the DDL for the OE schema and I found that
CREATE TABLE OE.PURCHASEORDERS (
SYS_NC_ROWINFO$ null
);
ALTER TABLE OE.PURCHASEORDERS ADD CONSTRAINT USER_IS_VALID FOREIGN KEY (null)
REFERENCES HR.EMPLOYEES (EMPLOYEE_ID)
ON DELETE RESTRICT
ON UPDATE CASCADE;
- Notice the funny "SYS_NC_ROWINFO$ null" column definition in OE.PURCHASEORDERS and null in the FOREIGN KEY constraint definition.
- I try to re-create the table using the same syntax and was rejected by the db.
I believe this table is abnormal and was create/modified in some ways that I don't know how it gets to this configuration.
To improve serviceability, a null check of of the fk table column and a more meaningful would be appropriate.
Albert Lee.
> SchemaTool failed with a NPE in ForeignKey.join
> -----------------------------------------------
>
> Key: OPENJPA-761
> URL: https://issues.apache.org/jira/browse/OPENJPA-761
> Project: OpenJPA
> Issue Type: Bug
> Components: jdbc
> Affects Versions: 1.0.4, 1.1.1, 1.2.1, 1.3.0, 2.0.0
> Reporter: Albert Lee
> Assignee: Albert Lee
> Priority: Minor
> Fix For: 1.3.0, 2.0.0
>
>
> A test used the SchemaTool to reflect "all" schema in a Oracle DB but run in a NPE as observed below:
> [exec] 131 INFO [main] openjpa.jdbc.JDBC - Using dictionary class "com.ibm.ws.persistence.jdbc.sql.OracleDictionary".
> [exec] 1127 INFO [main] openjpa.Tool - Reflecting on schemas "all". This process may take some time. Enable the org.apache.openjpa.jdbc.Schema logging category to see messages about the collection of schema data.
> [exec] Exception in thread "main" java.lang.NullPointerException
> [exec] at org.apache.openjpa.jdbc.schema.ForeignKey.join(ForeignKey.java:521)
> [exec] at org.apache.openjpa.jdbc.schema.SchemaGenerator.generateForeignKeys(SchemaGenerator.java:794)
> [exec] at org.apache.openjpa.jdbc.schema.SchemaGenerator.generateForeignKeys(SchemaGenerator.java:431)
> [exec] at org.apache.openjpa.jdbc.schema.SchemaGenerator.generateSchemas(SchemaGenerator.java:278)
> [exec] at org.apache.openjpa.jdbc.schema.SchemaGenerator.generateSchemas(SchemaGenerator.java:243)
> [exec] at org.apache.openjpa.jdbc.schema.SchemaTool.run(SchemaTool.java:1433)
> [exec] at org.apache.openjpa.jdbc.schema.SchemaTool.run(SchemaTool.java:1403)
> [exec] at org.apache.openjpa.jdbc.schema.SchemaTool$1.run(SchemaTool.java:1348)
> [exec] at org.apache.openjpa.lib.conf.Configurations.launchRunnable(Configurations.java:708)
> [exec] at org.apache.openjpa.lib.conf.Configurations.runAgainstAllAnchors(Configurations.java:693)
> [exec] at org.apache.openjpa.jdbc.schema.SchemaTool.main(SchemaTool.java:1343)
> Albert Lee
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.