NullPointer exception when generating SQL and using multiple prototype model/entities

From: Kieran Kelleher (kieran_list..ac.com)
Date: Mon Apr 07 2008 - 17:38:48 EDT

  • Next message: Ray Kiddy (JIRA): "[OS-JIRA] Created: (WOL-777) set Preference to open EOModel in new window, does not have affect 1st time opening any model"

    I am getting NPE with stack trace as follows:

    java.lang.RuntimeException: Failed to generate SQL.
            at org.objectstyle.wolips.eomodeler.core.sql.EOFSQLGeneratorFactory
    $
    ReflectionSQLGenerator
    .generateSchemaCreationScript(EOFSQLGeneratorFactory.java:57)
            at
    org
    .objectstyle
    .wolips
    .eomodeler
    .actions.GenerateSQLDialog.generateSql(GenerateSQLDialog.java:295)
            at org.objectstyle.wolips.eomodeler.actions.GenerateSQLDialog
    $1.run(GenerateSQLDialog.java:276)
            at java.lang.Thread.run(Thread.java:613)
    Caused by: java.lang.reflect.InvocationTargetException
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at
    sun
    .reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
    39)
            at
    sun
    .reflect
    .DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
    25)
            at java.lang.reflect.Method.invoke(Method.java:585)
            at org.objectstyle.wolips.eomodeler.core.sql.EOFSQLGeneratorFactory
    $
    ReflectionSQLGenerator
    .generateSchemaCreationScript(EOFSQLGeneratorFactory.java:55)
            ... 3 more
    Caused by: java.lang.NullPointerException
            at
    com
    .webobjects
    .jdbcadaptor
    .JDBCExpression.columnTypeStringForAttribute(JDBCExpression.java:286)
            at
    com
    .webobjects
    .eoaccess
    .EOSQLExpression.addCreateClauseForAttribute(EOSQLExpression.java:2498)
            at
    com
    .webobjects
    .eoaccess
    .EOSynchronizationFactory
    .createTableStatementsForEntityGroup(EOSynchronizationFactory.java:318)
            at
    com
    .webobjects
    .eoaccess
    .EOSynchronizationFactory
    .createTableStatementsForEntityGroups(EOSynchronizationFactory.java:487)
            at
    com
    .webobjects
    .eoaccess
    .EOSynchronizationFactory
    .schemaCreationStatementsForEntities(EOSynchronizationFactory.java:951)
            at
    com
    .webobjects
    .eoaccess
    .EOSynchronizationFactory
    .schemaCreationScriptForEntities(EOSynchronizationFactory.java:747)
            at
    org
    .objectstyle
    .wolips
    .eomodeler
    .core
    .sql.EOFSQLGenerator.generateSchemaCreationScript(EOFSQLGenerator.java:
    423)
            ... 8 more

    It appears to be because the attributes use a prototype from another
    framework (so there are two prototype models in use ... Wonder Mysql
    protos and custom inhouse). Both specified in Wonder Properties too of
    course. The Default dictionary only allows one prototype entity
    selection .....The wonder one is selected there ....... so would that
    be the root cause? Anyway to tell WOLips SQL generation about the
    second prototypes entity if that is the case?

    This only affects the entity having the prototype not from the
    standard wonder protos. Other entities SQL generates fine.

    meanwhile, I'll just generate the SQL for that entity by hand ... but
    still curious as to how SQL generation can be done if the project
    EOModel references more than one prototype entity.

    Regards, Kieran



    This archive was generated by hypermail 2.0.0 : Mon Apr 07 2008 - 17:39:48 EDT