[OS-JIRA] Created: (WOL-537) WOGen can not generate java classes from EOModel with defined prototypes

From: JIRA (Łukasz)
Date: Wed Jul 11 2007 - 12:09:52 EDT

  • Next message: Chuck Hill: "Components in Jira"

    WOGen can not generate java classes from EOModel with defined prototypes
    ------------------------------------------------------------------------

                     Key: WOL-537
                     URL: http://issues.objectstyle.org/jira/browse/WOL-537
                 Project: WOProject/WOLips
              Issue Type: Bug
              Components: woproject
        Affects Versions: 3.3.* (nightly build please specify)
             Environment: Gentoo Linux 2.6, Eclipse 3.3
                Reporter: Łukasz Szydło
                Priority: Blocker

    I have EOModel with prototypes defined. When I try to generate java classes by WOGen an exception ocures :

    BUILD FAILED
    /local/home/szydler/workspace/IFirmaFoundation/build.xml:111: Error generating classes: java.lang.NullPointerException
            at org.objectstyle.cayenne.tools.CayenneGenerator.execute(CayenneGenerator.java:128)
            at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
            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.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
            at org.apache.tools.ant.Task.perform(Task.java:348)
            at org.apache.tools.ant.Target.execute(Target.java:357)
            at org.apache.tools.ant.Target.performTasks(Target.java:385)
            at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
            at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
            at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
            at org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
            at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
            at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423)
            at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137)
    Caused by: java.lang.NullPointerException
            at org.objectstyle.woproject.ant.EOModelReader$WOFriendlyHelper.javaTypeForEOModelerType(Unknown Source)
            at org.objectstyle.cayenne.wocompat.EOModelProcessor.makeAttributes(EOModelProcessor.java:444)
            at org.objectstyle.cayenne.wocompat.EOModelProcessor.loadEOModel(EOModelProcessor.java:194)
            at org.objectstyle.cayenne.wocompat.EOModelProcessor.loadEOModel(EOModelProcessor.java:154)
            at org.objectstyle.woproject.ant.WOGenerator.loadDataMap(Unknown Source)
            at org.objectstyle.cayenne.tools.CayenneGenerator.processMap(CayenneGenerator.java:134)
            at org.objectstyle.cayenne.tools.CayenneGenerator.execute(CayenneGenerator.java:116)
            ... 16 more
    --- Nested Exception ---
    java.lang.NullPointerException
            at org.objectstyle.woproject.ant.EOModelReader$WOFriendlyHelper.javaTypeForEOModelerType(Unknown Source)
            at org.objectstyle.cayenne.wocompat.EOModelProcessor.makeAttributes(EOModelProcessor.java:444)
            at org.objectstyle.cayenne.wocompat.EOModelProcessor.loadEOModel(EOModelProcessor.java:194)
            at org.objectstyle.cayenne.wocompat.EOModelProcessor.loadEOModel(EOModelProcessor.java:154)
            at org.objectstyle.woproject.ant.WOGenerator.loadDataMap(Unknown Source)
            at org.objectstyle.cayenne.tools.CayenneGenerator.processMap(CayenneGenerator.java:134)
            at org.objectstyle.cayenne.tools.CayenneGenerator.execute(CayenneGenerator.java:116)
            at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
            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.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
            at org.apache.tools.ant.Task.perform(Task.java:348)
            at org.apache.tools.ant.Target.execute(Target.java:357)
            at org.apache.tools.ant.Target.performTasks(Target.java:385)
            at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
            at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
            at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
            at org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
            at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
            at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423)
            at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137)

    Problem seems to be in class org.objectstyle.woproject.ant.EOModelReader$WOFriendlyHelper.java .
    Method 'javaTypeForEOModelerType' takes two parameters : valueClassName, valueType.
    If there are no prototypes used, <entity>.plist looks like this:
    {
               allowsNull = Y;
               columnName = ABON_EMAIL;
               externalType = VARCHAR2;
               name = abonEmail;
               valueClassName = NSString;
               width = 50;
     },

    and everything is ok. But when I have prototype that looks like below:
     {
               columnName = ABONENT_ID;
               name = abonentId;
               prototypeName = keyPrototype;
     },

    then both parameters of method 'javaTypeForEOModelerType are 'null'. Inside the method there is no null checking, and nullPointerException is thrown.
     

    -- 
    This message is automatically generated by JIRA.
    -
    If you think it was sent incorrectly contact one of the administrators: http://issues.objectstyle.org/jira/secure/Administrators.jspa
    -
    For more information on JIRA, see: http://www.atlassian.com/software/jira
    



    This archive was generated by hypermail 2.0.0 : Wed Jul 11 2007 - 12:10:55 EDT