[OS-JIRA] Created: (WOL-1144) JRebel Cause An Exception When The Model Changes

From: Ted Archibald (JIRA) ("Ted)
Date: Tue Feb 09 2010 - 03:05:10 EST

  • Next message: Andri vonAllmen: "WOLips Ant Tools -> Install... Order"

    JRebel Cause An Exception When The Model Changes
    ------------------------------------------------

                     Key: WOL-1144
                     URL: http://issues.objectstyle.org/jira/browse/WOL-1144
                 Project: WOProject/WOLips
              Issue Type: Bug
              Components: WOLips General
        Affects Versions: WOLips 3.5.x
             Environment: OS X 10.5.8
    WebObjects 5.4.3
    Eclips 3.5
    Wolips 3.5
    Latest Wonder for 5.4
    The Wonder EOGenerator Templates
                Reporter: Ted Archibald
                Priority: Minor

    JRebel cause an exception when the model is changed (or added). But non-model changes are getting picked up by JRebel.

    JRebel fails under both run mode and debug mode, it fails using the Memory Adaptor and the Mysql adaptor.

    Here's a video of me creating the Test App and how JRebel fails:
    http://www.youtube.com/watch?v=b5nPA7dmmsM

    This is the Test App where I'm getting these problems:
    http://s3.amazonaws.com/atlted/JRebelTest.tar.gz

    Here's the console output after the attribute "value" is added to the entity "EO":

    JRebel: Reloading class 'your.app.components.Main'.
    JRebel: Reloading class 'your.app.entities._EO'.
    JRebel: Resetting KeyValueCoding caches
    JRebel: Resetting NSValidation cache
    JRebel: Resetting KeyValueCoding caches
    JRebel: Resetting Component Definition cache
    JRebel: Resetting NSValidation cache
    JRebel: reloading EOModel MyEOModel (3571937)
    JRebel: Class 'your.app.entities._EO has a new static field 'VALUE_KEY' of type 'java.lang.String' and it will not be initialized!
    Feb 09 01:59:13 JRebelTest[49305] WARN NSLog - <com.webobjects.appserver._private.WOComponentRequestHandler>: Exception occurred while handling request:
    <com.webobjects.foundation.NSKeyValueCoding$UnknownKeyException message '<your.app.entities.EO 0x5e975c> takeValueForKey(): attempt to assign value to unknown key: 'value'.
    This class does not have an instance variable of the name value or _value, nor a method of the name setValue or _setValue' object '{values = {name = "Test"; }; this = "<your.app.entities.EO 5e975c <EOTemporaryGlobalID: 0 0 -64 -88 4 3 -1 -1 -1 -1 2 0 0 0 1 38 -79 -68 59 -17 -23 20 9 21>>"; }' key 'value'>
    [2010-2-9 1:59:13 CST] <WorkerThread2> <com.webobjects.foundation.NSKeyValueCoding$UnknownKeyException message '<your.app.entities.EO 0x5e975c> takeValueForKey(): attempt to assign value to unknown key: 'value'.
    This class does not have an instance variable of the name value or _value, nor a method of the name setValue or _setValue' object '{values = {name = "Test"; }; this = "<your.app.entities.EO 5e975c <EOTemporaryGlobalID: 0 0 -64 -88 4 3 -1 -1 -1 -1 2 0 0 0 1 38 -79 -68 59 -17 -23 20 9 21>>"; }' key 'value'>
            at com.webobjects.foundation.NSKeyValueCoding$DefaultImplementation.handleTakeValueForUnboundKey(NSKeyValueCoding.java:1399)
            at com.webobjects.eocontrol.EOCustomObject.handleTakeValueForUnboundKey(EOCustomObject.java:1562)
            at your.app.entities._EO.handleTakeValueForUnboundKey(_EO.java:50001)
            at your.app.entities.EO.handleTakeValueForUnboundKey(EO.java:50001)
            at com.webobjects.foundation.NSKeyValueCoding$Utility.handleTakeValueForUnboundKey(NSKeyValueCoding.java:519)
            at com.webobjects.foundation.NSKeyValueCoding$_KeyBinding.setValueInObject(NSKeyValueCoding.java:899)
            at com.webobjects.eocontrol.EOCustomObject.takeStoredValueForKey(EOCustomObject.java:1663)
            at your.app.entities._EO.takeStoredValueForKey(_EO.java:50001)
            at your.app.entities.EO.takeStoredValueForKey(EO.java:50001)
            at your.app.entities._EO$$M$6d87fa5b.setValue(_EO.java:50)
            at your.app.entities._EO$$M$6d87fa5b.__jr_selector__(_EO.java:50001)
            at your.app.entities._EO$$A$6d87fa5b.__jr_selector__(<generated>)
            at your.app.entities._EO.__jr_selector__(_EO.java:50001)
            at your.app.entities.EO.__jr_selector__(EO.java:50001)
            at your.app.entities._EO$$M$6d87fa5b.createEO__RS__(_EO.java:59)
            at your.app.entities._EO$$M$6d87fa5b.__jr_static_selector__(_EO.java:50001)
            at your.app.entities._EO$$A$6d87fa5b.__jr_static_selector__(<generated>)
            at your.app.entities._EO.__jr_static_selector__(_EO.java:50001)
            at your.app.entities.EO.__jr_static_selector__(EO.java:50001)
            at your.app.components.Main$$M$8c16a081.eos(Main.java:28)
            at your.app.components.Main$$A$8c16a081.eos(<generated>)
            at your.app.components.Main.eos(Main.java:31)
            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 com.webobjects.foundation.NSKeyValueCoding$ValueAccessor$1.methodValue(NSKeyValueCoding.java:636)
            at com.webobjects.foundation.NSKeyValueCoding$_MethodBinding.valueInObject(NSKeyValueCoding.java:1134)
            at com.webobjects.foundation.NSKeyValueCoding$DefaultImplementation.valueForKey(NSKeyValueCoding.java:1324)
            at com.webobjects.appserver.WOComponent.valueForKey(WOComponent.java:1736)
            at your.app.components.Main.valueForKey(Main.java:50001)
            at com.webobjects.foundation.NSKeyValueCoding$Utility.valueForKey(NSKeyValueCoding.java:447)
            at com.webobjects.foundation.NSKeyValueCodingAdditions$DefaultImplementation.valueForKeyPath(NSKeyValueCodingAdditions.java:212)
            at com.webobjects.appserver.WOComponent.valueForKeyPath(WOComponent.java:1804)
            at your.app.components.Main.valueForKeyPath(Main.java:50001)
            at com.webobjects.appserver._private.WOKeyValueAssociation.valueInComponent(WOKeyValueAssociation.java:50)
            at er.extensions.components._private.ERXWORepetition.createContext(ERXWORepetition.java:348)
            at er.extensions.components._private.ERXWORepetition.appendToResponse(ERXWORepetition.java:491)
            at com.webobjects.appserver._private.WODynamicGroup.appendChildrenToResponse(WODynamicGroup.java:126)
            at com.webobjects.appserver._private.WODynamicGroup.appendToResponse(WODynamicGroup.java:136)
            at com.webobjects.appserver.WOComponent.appendToResponse(WOComponent.java:1122)
            at er.extensions.components.ERXComponent.appendToResponse(ERXComponent.java:107)
            at your.app.components.Main.appendToResponse(Main.java:50001)
            at com.webobjects.appserver.WOSession.appendToResponse(WOSession.java:1385)
            at er.extensions.appserver.ERXSession.appendToResponse(ERXSession.java:540)
            at your.app.Session.appendToResponse(Session.java:50001)
            at com.webobjects.appserver.WOApplication.appendToResponse(WOApplication.java:1794)
            at er.extensions.appserver.ERXApplication.appendToResponse(ERXApplication.java:1704)
            at your.app.Application.appendToResponse(Application.java:50001)
            at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedPage(WOComponentRequestHandler.java:242)
            at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedSession(WOComponentRequestHandler.java:298)
            at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedApplication(WOComponentRequestHandler.java:332)
            at com.webobjects.appserver._private.WOComponentRequestHandler._handleRequest(WOComponentRequestHandler.java:369)
            at com.webobjects.appserver._private.WOComponentRequestHandler.handleRequest(WOComponentRequestHandler.java:442)
            at com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:1687)
            at er.extensions.appserver.ERXApplication.dispatchRequestImmediately(ERXApplication.java:1802)
            at your.app.Application.dispatchRequestImmediately(Application.java:50001)
            at er.extensions.appserver.ERXApplication.dispatchRequest(ERXApplication.java:1767)
            at your.app.Application.dispatchRequest(Application.java:50001)
            at com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread.java:144)
            at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:226)
            at java.lang.Thread.run(Thread.java:613)

    Feb 09 01:59:13 JRebelTest[49305] ERROR er.extensions.appserver.ERXApplication - Exception caught: <your.app.entities.EO 0x5e975c> takeValueForKey(): attempt to assign value to unknown key: 'value'.
    This class does not have an instance variable of the name value or _value, nor a method of the name setValue or _setValue
    Extra info: {
            "Session" = "<your.app.Session sessionID=lJUywuQKJw9RFQ3Tbt8NmM timeOut(sec)=3600.0 terminating=false _wasTimedOut=false contextArray=null contextPageInfos=null languages=(\"English_US\", \"English\", \"Nonlocalized\") componentState=null currentContextID=0 distributionEnabled=false cookieRendezVousEnabled=false URLRendezVousEnabled=tru localizer=<er.extensions.localization.ERXLocalizer English> messageEncoding=<er.extensions.appserver.ERXMessageEncoding encoding: ISO8859_1> browser=<er.extensions.appserver.ERXBasicBrowser browserName: Safari, version: 531.9, mozillaVersion: 5.0, platform: MacOS>>";
            "CurrentComponent" = "your.app.components.Main";
            "PreviousPageList" = ();
            "Headers" = {
                    "cache-control" = "max-age=0";
                    "accept-encoding" = "gzip, deflate";
                    "user-agent" = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9";
                    "accept" = "application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
                    "host" = "192.168.4.3:49305";
                    "accept-language" = "en-us";
                    "connection" = "keep-alive";
            };
            "CurrentPage" = "your.app.components.Main";
            "Bundles" = {
                    "ERExtensions" = "5.0";
                    "JavaMemoryAdaptor" = "5.0";
                    "JavaWebObjects" = "5.4.3";
                    "WOJRebel" = "5.0";
                    "ERJars" = "5.0";
                    "JavaXML" = "5.4.2";
                    "JavaJDBCAdaptor" = "5.4.3";
                    "WOOgnl" = "5.0";
                    "JavaEOAccess" = "5.4.3";
                    "JavaEOControl" = "5.4.2";
                    "JavaFoundation" = "5.4.3";
                    "JavaWOExtensions" = "5.0";
                    "JRebelTest" = "";
                    "ERPrototypes" = "5.0";
            };
            "URL" = "/cgi-bin/WebObjects/JRebelTest.woa";
    }

    UnknownKeyException: <your.app.entities.EO 0x5e975c> takeValueForKey(): attempt to assign value to unknown key: 'value'.
    This class does not have an instance variable of the name value or _value, nor a method of the name setValue or _setValue
      at com.webobjects.foundation.NSKeyValueCoding$DefaultImplementation.handleTakeValueForUnboundKey(NSKeyValueCoding.java:1399)
      at com.webobjects.eocontrol.EOCustomObject.handleTakeValueForUnboundKey(EOCustomObject.java:1562)
      at your.app.entities._EO.handleTakeValueForUnboundKey(_EO.java:50001)
      at your.app.entities.EO.handleTakeValueForUnboundKey(EO.java:50001)
         ... skipped 2 stack elements
      at com.webobjects.eocontrol.EOCustomObject.takeStoredValueForKey(EOCustomObject.java:1663)
      at your.app.entities._EO.takeStoredValueForKey(_EO.java:50001)
      at your.app.entities.EO.takeStoredValueForKey(EO.java:50001)
      at your.app.entities._EO$$M$6d87fa5b.setValue(_EO.java:50)
      at your.app.entities._EO$$M$6d87fa5b.__jr_selector__(_EO.java:50001)
      at your.app.entities._EO$$A$6d87fa5b.__jr_selector__(<generated>:Unknown)
      at your.app.entities._EO.__jr_selector__(_EO.java:50001)
      at your.app.entities.EO.__jr_selector__(EO.java:50001)
      at your.app.entities._EO$$M$6d87fa5b.createEO__RS__(_EO.java:59)
      at your.app.entities._EO$$M$6d87fa5b.__jr_static_selector__(_EO.java:50001)
      at your.app.entities._EO$$A$6d87fa5b.__jr_static_selector__(<generated>:Unknown)
      at your.app.entities._EO.__jr_static_selector__(_EO.java:50001)
      at your.app.entities.EO.__jr_static_selector__(EO.java:50001)
      at your.app.components.Main$$M$8c16a081.eos(Main.java:28)
      at your.app.components.Main$$A$8c16a081.eos(<generated>:Unknown)
      at your.app.components.Main.eos(Main.java:31)
         ... skipped 34 stack elements
      at your.app.Application.dispatchRequestImmediately(Application.java:50001)
         ... skipped 1 stack elements
      at your.app.Application.dispatchRequest(Application.java:50001)
      ... skipped 3 stack elements

    -- 
    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 : Tue Feb 09 2010 - 03:06:12 EST