Re: Stumped on "Attempt to insert null object...." when connecting to DB

Lachlan Deck <[email protected]> Sat, 21 Mar 2009 11:34:11 +1100
Newsgroups gmane.comp.web.webobjects.devel
Message-ID <[email protected]>
On 21/03/2009, at 11:00 AM, Lon Varscsak wrote:

> I've never done anything special with erprototypes, but it is in my  
> other
> projects and not causing any issues.  However, I did just remove it  
> (the
> ERPrototypes framework) from my project and the error goes away!  So  
> you did
> solve the issue...I just don't get what's different...but I'm not  
> sure that
> I care now. :)
> Thanks for your time,

I was under the impression that erprototypes (and any prototypes for  
that matter) shouldn't have a connection dict.

Have you set this property?
er.extensions.ERXModelGroup.prototypeModelNames=foo,bar,erprototypes


> On Fri, Mar 20, 2009 at 4:49 PM, Chuck Hill <chill@global- 
> village.net>wrote:
>
>>
>> On Mar 20, 2009, at 4:47 PM, Lon Varscsak wrote:
>>
>> It seems reasonable (I removed passwords and server/port):
>>>
>>> Mar 20 16:45:40 DataBuilder[2500] INFO  NSLog  - erprototypes
>>> Mar 20 16:45:40 DataBuilder[2500] INFO  NSLog  - {driver =
>>> "com.sybase.jdbc3.jdbc.SybDriver"; password = "<password>"; plugin =
>>> "com.webobjects.jdbcadaptor.SybasePlugIn"; username = "varscsak"; }
>>>
>>
>> Me, I see no URL in that.  And it is complaining about there being  
>> no URL.
>> Seems unlikely that is a co-inkydink.  I don't use that part of  
>> Wonder so
>> you are alone in the wilderness.
>>
>>
>> Chuck
>>
>>
>>
>>
>> Mar 20 16:45:40 DataBuilder[2500] INFO  NSLog  - product
>>> Mar 20 16:45:40 DataBuilder[2500] INFO  NSLog  - {plugin =
>>> "com.webobjects.jdbcadaptor.SybasePlugIn"; username = "varscsak";  
>>> driver =
>>> "com.sybase.jdbc3.jdbc.SybDriver"; password = "<password>"; URL =
>>> "jdbc:sybase:Tds:<servername>:<port>"; }
>>>
>>> -Lon
>>>
>>> On Fri, Mar 20, 2009 at 4:27 PM, Chuck Hill <[email protected] 
>>> >
>>> wrote:
>>>
>>> On Mar 20, 2009, at 4:17 PM, Lon Varscsak wrote:
>>>
>>> I dug up the docs on what you were talking about and I set it all  
>>> and I
>>> still get an exception (although it is using the SybasePlugIn now):
>>>
>>> Mar 20 16:16:01 DataBuilder[2500] WARN   
>>> er.extensions.eof.ERXModelGroup  -
>>> Clearing previous class descriptions
>>> Mar 20 16:16:04 DataBuilder[2500] DEBUG NSLog  - Using JDBCPlugIn
>>> 'com.webobjects.jdbcadaptor.SybasePlugIn' for  
>>> ERXJDBCAdaptor@10651400
>>> java.lang.IllegalArgumentException: Attempt to insert null object  
>>> into an
>>> com.webobjects.foundation.NSMutableDictionary.
>>>      at
>>> com 
>>> .webobjects 
>>> .foundation 
>>> .NSMutableDictionary.setObjectForKey(NSMutableDictionary.java:68)
>>>      at
>>> com.webobjects.jdbcadaptor.JDBCContext.connect(JDBCContext.java:230)
>>>      at
>>> er.extensions.jdbc.ERXJDBCAdaptor 
>>> $Context.connect(ERXJDBCAdaptor.java:248)
>>>      at
>>> com 
>>> .webobjects.jdbcadaptor.JDBCContext._tryConnect(JDBCContext.java: 
>>> 362)
>>>      at
>>> com 
>>> .webobjects 
>>> .jdbcadaptor.JDBCContext._channelWillOpen(JDBCContext.java:505)
>>>      at
>>> com 
>>> .webobjects.jdbcadaptor.JDBCChannel.openChannel(JDBCChannel.java: 
>>> 111)
>>>      at
>>> com 
>>> .webobjects 
>>> .eoaccess.EODatabaseChannel._openChannel(EODatabaseChannel.java:713)
>>>      at
>>> com 
>>> .webobjects 
>>> .eoaccess 
>>> .EODatabaseContext.availableChannel(EODatabaseContext.java:1324)
>>>
>>>
>>> Before your first database access (but after Wonder has done it's  
>>> thing),
>>> get EOModelGroup.defaultModelGroup().models() and iterate over it  
>>> printing
>>> out the model name and connection dictionary.  The answer is in  
>>> there
>>> somewhere.
>>>
>>>
>>>
>>> Chuck
>>>
>>>
>>>
>>>
>>> On Fri, Mar 20, 2009 at 3:46 PM, Lon Varscsak <[email protected] 
>>> >
>>> wrote:
>>> URL:  jdbc:sybase:Tds:<server>:<port>
>>>
>>> Hmm...well, I'm not doing anything specific to make that work (or  
>>> not
>>> work)...but my Postgres projects seem okay with the same  
>>> configuration.
>>>
>>> -Lon
>>>
>>>
>>> On Fri, Mar 20, 2009 at 3:37 PM, Chuck Hill <[email protected] 
>>> >
>>> wrote:
>>>
>>> On Mar 20, 2009, at 3:27 PM, Lon Varscsak wrote:
>>>
>>> lol, Chuck...you should get that cough looked at....although I did  
>>> like
>>> what came out. :)
>>>
>>> I'm still missing something...hopefully you still have some
>>> informational-phlegm left.
>>>
>>> I specified com.webobjects.jdbcadaptor.SybasePlugIn in the model,  
>>> but I
>>> still see this in the log:
>>>
>>> Mar 20 15:20:55 DataBuilder[2500] DEBUG NSLog  - Using JDBCPlugIn
>>> 'com.webobjects.jdbcadaptor.JDBCPlugIn' for ERXJDBCAdaptor@2610469
>>>
>>> and I still get my error.
>>>
>>> How are you specifying it?  What is the URL?  Are you using Wonder  
>>> to set
>>> the connection dictionary into all of the models?   I am guessing  
>>> that you
>>> don't have this configured, but I could be wrong.
>>>
>>>
>>> Chuck
>>>
>>>
>>>
>>>
>>> On Fri, Mar 20, 2009 at 3:20 PM, Chuck Hill <[email protected] 
>>> >
>>> wrote:
>>>
>>> On Mar 20, 2009, at 3:14 PM, Lon Varscsak wrote:
>>>
>>> I have a new project I'm working on that connects to Sybase (I've  
>>> been
>>> working with Postgres lately...and haven't done a sybase wo  
>>> project in
>>> years).  I created a new model, I can connect to the database  
>>> through Entity
>>> Modeler in Eclipse just fine.  Whenever I ask for an  
>>> "availableChannel" on
>>> the EODatabaseContext I get this exception:
>>>
>>> Mar 20 15:07:02 DataBuilder[2500] WARN   
>>> er.extensions.eof.ERXModelGroup  -
>>> The EOModel 'erprototypes' has an empty connection dictionary.
>>> java.lang.IllegalArgumentException: Attempt to insert null object  
>>> into an
>>> com.webobjects.foundation.NSMutableDictionary.
>>>    at
>>> com 
>>> .webobjects 
>>> .foundation 
>>> .NSMutableDictionary.setObjectForKey(NSMutableDictionary.java:68)
>>>    at
>>> com.webobjects.jdbcadaptor.JDBCContext.connect(JDBCContext.java:230)
>>>    at
>>> er.extensions.jdbc.ERXJDBCAdaptor 
>>> $Context.connect(ERXJDBCAdaptor.java:248)
>>>    at
>>> com 
>>> .webobjects.jdbcadaptor.JDBCContext._tryConnect(JDBCContext.java: 
>>> 362)
>>>    at
>>> com 
>>> .webobjects 
>>> .jdbcadaptor.JDBCContext._channelWillOpen(JDBCContext.java:505)
>>>    at
>>> com 
>>> .webobjects.jdbcadaptor.JDBCChannel.openChannel(JDBCChannel.java: 
>>> 111)
>>>    at
>>> com 
>>> .webobjects 
>>> .eoaccess.EODatabaseChannel._openChannel(EODatabaseChannel.java:713)
>>>    at
>>> com 
>>> .webobjects 
>>> .eoaccess 
>>> .EODatabaseContext.availableChannel(EODatabaseContext.java:1324)
>>>    at
>>> com 
>>> .smarthealth 
>>> .database.util.SPEOUtilities._connection(SPEOUtilities.java:38)
>>>
>>> I have no idea what I'm doing wrong here...I'm sure I'm missing  
>>> something
>>> obvious, although I can do the same thing with a Postgres project  
>>> and not
>>> get the error.  Of note, I don't think a plugin for sybase exists,  
>>> so I'm
>>> just using the JDBCPlugin.
>>>
>>> <cough>
>>>
>>> http://developer.apple.com/documentation/MacOSXServer/Reference/WO54_Reference/com/webobjects/jdbcadaptor/SybasePlugIn.html
>>> <cough>
>>>
>>>
>>>
>>> Any thoughts would be appreciated.
>>>
>>> Thanks,
>>>
>>> Lon
>>>
>>> P.S. -- Using WO 5.4.3 with Wonder nightly from a couple of weeks  
>>> ago.
>>> _______________________________________________
>>> WebObjects-dev mailing list
>>> [email protected]
>>> http://www.omnigroup.com/mailman/listinfo/webobjects-dev
>>>
>>> --
>>> Chuck Hill             Senior Consultant / VP Development
>>>
>>> Practical WebObjects - for developers who want to increase their  
>>> overall
>>> knowledge of WebObjects or who are trying to solve specific  
>>> problems.
>>> http://www.global-village.net/products/practical_webobjects
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> --
>>> Chuck Hill             Senior Consultant / VP Development
>>>
>>> Practical WebObjects - for developers who want to increase their  
>>> overall
>>> knowledge of WebObjects or who are trying to solve specific  
>>> problems.
>>> http://www.global-village.net/products/practical_webobjects
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> --
>>> Chuck Hill             Senior Consultant / VP Development
>>>
>>> Practical WebObjects - for developers who want to increase their  
>>> overall
>>> knowledge of WebObjects or who are trying to solve specific  
>>> problems.
>>> http://www.global-village.net/products/practical_webobjects
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>> --
>> Chuck Hill             Senior Consultant / VP Development
>>
>> Practical WebObjects - for developers who want to increase their  
>> overall
>> knowledge of WebObjects or who are trying to solve specific problems.
>> http://www.global-village.net/products/practical_webobjects
>>
>>
>>
>>
>>
>>
>>
> _______________________________________________
> WebObjects-dev mailing list
> [email protected]
> http://www.omnigroup.com/mailman/listinfo/webobjects-dev

with regards,
--

Lachlan Deck