• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag
 

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: ExistsInRelationshipQualifier
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ExistsInRelationshipQualifier


  • Subject: Re: ExistsInRelationshipQualifier
  • From: Pierre Bernard <email@hidden>
  • Date: Wed, 5 Dec 2007 18:24:29 +0100

Hi Daniele,

First off: somehow the line numbers don't match up. Your stack trace shows a call to _aliasForRelatedAttributeRelationshipPath at line 100 of ExistsInRelationshipQualifierSupport. I find 2 such calls. One at line 119 and one at 123. Which one is it?
How come the lines don't match?


What do the joins between the tables look like? Single or compound foreign keys? Any flattened relationships?

Could you tell me what expression, subExpression, sourceAttribute and destinationAttribute look like at the moment of the crash?

Pierre

On Dec 5, 2007, at 5:54 PM, Daniele Corti wrote:

Hi Pierre,

this is what I'm going to do:

first: what I need to do. I need to obtain the rows of GWS_STOCK table (entity name GWSStock) that have a configuration (instance of GWSConfiguration) passed by argument at the method, and that have no one related valid GWSLicense

my model is:

(the objects I'm fetching) GWSStock
  GWSStock --->> licenses -->> GWSLicense
  GWSStock --> configuration --> GWSConfiguration

GWSLicense ha a field isvalid as Integer (don't blame me I did it before I discover EOPrototype...)


the piece of code is:

EOKeyValueQualifier keyValueQualifier;
NSMutableArray mutableArray;

mutableArray = new NSMutableArray();
keyValueQualifier = new EOKeyValueQualifier( "configuration", EOQualifier.QualifierOperatorEqual, configuration);
mutableArray.addObject(keyValueQualifier);

keyValueQualifier = new EOKeyValueQualifier( "isvalid", EOQualifier.QualifierOperatorEqual, new Integer(1));

ExistsInRelationshipQualifier existsInRelationshipQualifier = new ExistsInRelationshipQualifier("licenses", keyValueQualifier);

EONotQualifier not = new EONotQualifier(existsInRelationshipQualifier);

mutableArray.addObject(not);

EOFetchSpecification fetchSpecification = new EOFetchSpecification(GWSStock. ENTITY_NAME, new EOAndQualifier(mutableArray), null);
fetchSpecification.setRefreshesRefetchedObjects(true);
NSArray array = ec.objectsWithFetchSpecification(fetchSpecification);


the StackTrace Error is:

dic 05 17:23:07 GWSupportV2[55338] ( ERXNSLogLog4jBridge.java:44) DEBUG NSLog - Using JDBCPlugIn 'com.webobjects.jdbcadaptor.FrontbasePlugIn' for JDBCAdaptor@12892567
dic 05 17:23:07 GWSupportV2[55338] (ERXNSLogLog4jBridge.java:41) WARN NSLog - <com.webobjects.appserver._private.WOComponentRequestHandler >: Exception occurred while handling request:
java.lang.NullPointerException
[2007-12-05 17:23:07 CET] <WorkerThread3> java.lang.NullPointerException
at com .webobjects .eoaccess .EOSQLExpression._aliasForRelationshipPath( EOSQLExpression.java:324)
at com .webobjects .eoaccess .EOSQLExpression ._aliasForRelatedAttributeRelationshipPath( EOSQLExpression.java:259)
at com .houdah .webobjects .eoaccess .qualifiers .ExistsInRelationshipQualifierSupport.sqlStringForSQLExpression (ExistsInRelationshipQualifierSupport.java:100)
at com.webobjects.eoaccess.EOQualifierSQLGeneration $Support._sqlStringForSQLExpression( EOQualifierSQLGeneration.java: 151)
at com .webobjects .eoaccess .EOSQLExpression.sqlStringForNegatedQualifier( EOSQLExpression.java: 1637)
at com.webobjects.eoaccess.EOQualifierSQLGeneration $_NotQualifierSupport.sqlStringForSQLExpression (EOQualifierSQLGeneration.java:569)
at com.webobjects.eoaccess.EOQualifierSQLGeneration $Support._sqlStringForSQLExpression( EOQualifierSQLGeneration.java: 151)
at com .webobjects .eoaccess .EOSQLExpression.sqlStringForArrayOfQualifiers( EOSQLExpression.java: 1562)
at com .webobjects .eoaccess .EOSQLExpression .sqlStringForConjoinedQualifiers( EOSQLExpression.java:1597)
at com.webobjects.eoaccess.EOQualifierSQLGeneration $_AndQualifierSupport.sqlStringForSQLExpression (EOQualifierSQLGeneration.java:512)
at com.webobjects.eoaccess.EOQualifierSQLGeneration $Support._sqlStringForSQLExpression( EOQualifierSQLGeneration.java: 151)
at com .webobjects .eoaccess .EOSQLExpression .prepareSelectExpressionWithAttributes( EOSQLExpression.java:1024)
at com .webobjects .jdbcadaptor .JDBCExpression .prepareSelectExpressionWithAttributes( JDBCExpression.java:273)
at com .webobjects .eoaccess .EOSQLExpressionFactory .selectStatementForAttributes( EOSQLExpressionFactory.java:226)
at com .webobjects .jdbcadaptor.JDBCChannel.selectAttributes( JDBCChannel.java:178)
at com .webobjects .eoaccess .EODatabaseChannel ._selectWithFetchSpecificationEditingContext( EODatabaseChannel.java: 878)
at com .webobjects .eoaccess .EODatabaseChannel .selectObjectsWithFetchSpecification( EODatabaseChannel.java:215)
at com .webobjects .eoaccess .EODatabaseContext ._objectsWithFetchSpecificationEditingContext ( EODatabaseContext.java:3205)
at com .webobjects .eoaccess .EODatabaseContext .objectsWithFetchSpecification( EODatabaseContext.java:3346)
at com .webobjects .eocontrol .EOObjectStoreCoordinator .objectsWithFetchSpecification( EOObjectStoreCoordinator.java:539)
at com .webobjects .eocontrol .EOEditingContext .objectsWithFetchSpecification( EOEditingContext.java:4114)
at er.extensions.ERXEC.objectsWithFetchSpecification( ERXEC.java: 1075)
at com .webobjects .eocontrol .EOEditingContext .objectsWithFetchSpecification( EOEditingContext.java:4500)
at supportv2 .gestweb .model.GWSStock.stocksAvviableForConfiguration( GWSStock.java:133)
at supportv2 .gestweb.model.GWSStock.stocksAvviableForLicense( GWSStock.java:107)
at supportv2 .gestweb .component .manage.GWSManageLicense.stocksAvviable( GWSManageLicense.java:161)
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 :324)
at com.webobjects.foundation.NSKeyValueCoding$ValueAccessor $1.methodValue( NSKeyValueCoding.java:684)
at com.webobjects.foundation.NSKeyValueCoding $_MethodBinding.valueInObject( NSKeyValueCoding.java:1160)
at com.webobjects.foundation.NSKeyValueCoding $DefaultImplementation.valueForKey( NSKeyValueCoding.java:1268)
at com.webobjects.appserver.WOComponent.valueForKey( WOComponent.java: 1539)
at com.webobjects.foundation.NSKeyValueCoding $Utility.valueForKey( NSKeyValueCoding.java:498)
at com.webobjects.foundation.NSKeyValueCodingAdditions $ DefaultImplementation .valueForKeyPath( NSKeyValueCodingAdditions.java:212)
at com .webobjects.appserver.WOComponent.valueForKeyPath( WOComponent.java: 1600)
at com .webobjects .appserver ._private .WOKeyValueAssociation.valueInComponent( WOKeyValueAssociation.java: 46)
at com .webobjects .appserver ._private.WOPopUpButton.appendChildrenToResponse( WOPopUpButton.java: 181)
at com .webobjects .appserver ._private .WOHTMLDynamicElement.appendToResponse( WOHTMLDynamicElement.java:424)
at er.extensions.ERXPatcher$DynamicElementsPatches $PopUpButton.appendToResponse( ERXPatcher.java:366)
at com .webobjects .appserver ._private .WODynamicGroup.appendChildrenToResponse( WODynamicGroup.java:121)
at er .ajax.AjaxUpdateContainer.appendToResponse( AjaxUpdateContainer.java: 152)
at com .webobjects .appserver ._private .WODynamicGroup.appendChildrenToResponse( WODynamicGroup.java:121)
at er .extensions .ERXWOConditional.appendChildrenToResponse( ERXWOConditional.java:115)
at er .extensions.ERXWOConditional.appendToResponse( ERXWOConditional.java: 109)
at com .webobjects .appserver ._private .WODynamicGroup.appendChildrenToResponse( WODynamicGroup.java:121)
at com .webobjects .appserver ._private.WODynamicGroup.appendToResponse( WODynamicGroup.java:130)
at com .webobjects .appserver ._private .WOComponentContent.appendToResponse( WOComponentContent.java:43)
at com .webobjects .appserver ._private .WODynamicGroup.appendChildrenToResponse( WODynamicGroup.java:121)
at com .webobjects .appserver ._private.WODynamicGroup.appendToResponse( WODynamicGroup.java:130)
at com .webobjects.appserver.WOComponent.appendToResponse( WOComponent.java: 992)
at com .webobjects .appserver ._private .WOComponentReference.appendToResponse( WOComponentReference.java:111)
at com .webobjects .appserver ._private .WODynamicGroup.appendChildrenToResponse( WODynamicGroup.java:121)
at com .webobjects .appserver ._private.WODynamicGroup.appendToResponse( WODynamicGroup.java:130)
at com .webobjects.appserver.WOComponent.appendToResponse( WOComponent.java: 992)
at com.webobjects.appserver.WOSession.appendToResponse( WOSession.java: 1200)
at er.extensions.ERXSession.appendToResponse( ERXSession.java:529)
at com .webobjects .appserver.WOApplication.appendToResponse( WOApplication.java:1418)
at er.extensions.ERXApplication.appendToResponse( ERXApplication.java: 1008)
at com .webobjects .appserver ._private .WOComponentRequestHandler ._dispatchWithPreparedPage( WOComponentRequestHandler.java:230)
at com .webobjects .appserver ._private .WOComponentRequestHandler ._dispatchWithPreparedSession( WOComponentRequestHandler.java:287)
at com .webobjects .appserver ._private.WOComponentRequestHandler._dispatchWithPreparedApplication (WOComponentRequestHandler.java:322)
at com .webobjects .appserver ._private .WOComponentRequestHandler ._handleRequest( WOComponentRequestHandler.java:358)
at com .webobjects .appserver ._private .WOComponentRequestHandler .handleRequest( WOComponentRequestHandler.java:432)
at com .webobjects .appserver.WOApplication.dispatchRequest( WOApplication.java:1306)
at er.extensions.ERXApplication.dispatchRequest( ERXApplication.java: 1041)
at com .webobjects .appserver._private.WOWorkerThread.runOnce( WOWorkerThread.java:173)
at com .webobjects .appserver._private.WOWorkerThread.run( WOWorkerThread.java:254)
at java.lang.Thread.run(Thread.java:552 )


dic 05 17:23:07 GWSupportV2[55338] (ERXApplication.java:843) ERROR er.extensions.ERXApplication - Exception caught: null
Extra info: {
"CurrentPage" = "supportv2.gestweb.component.manage.GWSManageLicense";
"Bundles" = {
"Ajax" = "3.0";
"ERExtensions" = "3.0";
"JavaWebObjects" = "5.3.3";
"JavaXML" = "5.3";
"ERJars" = "3.0";
"ERJavaMail" = "3.0";
"JavaEOAccess" = "5.3.2";
"JavaJDBCAdaptor" = "5.3.2";
"HoudahEOAccess" = "";
"FrontBasePlugIn" = "";
"JavaWOExtensions" = "3.0";
"GWSupportV2" = "";
"HoudahFoundation" = "";
"JavaEOControl" = "5.3.2";
"QualifierAdditions" = "";
"WOOgnl" = "3.0";
"HoudahEOControl" = "";
"JavaFoundation" = "5.3.3";
"Validity" = "3.0";
"ERPrototypes" = "3.0";
};
"uri" = "/cgi-bin/WebObjects/GWSupportV2.woa/wo/ BqhchvXtY9bKEJMhiBwqJ0/8.0.43.3.69.7.23";
"CurrentComponent" = "supportv2.gestweb.component.manage.GWSManageLicense";
"PreviousPageList" = (
"supportv2.gestweb.component.Main",
"supportv2.gestweb.component.GWSActions",
"supportv2.gestweb.component.search.GWSSearchOrder",
"supportv2.gestweb.component.manage.GWSInsertOrder"
);
}


Some other info: I'm working with WO 5.3 on tiger, with Java 1.4.2.

2007/12/5, Pierre Bernard <email@hidden>:
Hi!


Could you please send me the relevant bit of your source as well as a complete stack trace using the newest version of the code (so line numbers match up)?



Chances are there are still bugs in the qualifiers. I have used them on a couple projects. So did other people. Don't know how many though. E.g. Chuck has found bugs and suggested fixes. The version committed with Houdah Frameworks includes all fixes I am aware of.



Yet in all likeliness not all possible setups have been tested or thought of. Qualifier SQL generation is a very complex subject.



Best, Pierre Bernard Houdah Software s.à r.l.




On Dec 5, 2007, at 5:26 PM, Daniele Corti wrote:

Hi,


Same error of David, and I've just up-to-date the houdah frameworks with the svn checkout http://houdah- webobjects- frameworks.googlecode.com/svn/trunk/ houdah-webobjects-frameworks- read-only Command.



Can it be a source error?

2007/12/5, Pierre Bernard < email@hidden>: The latest version is at : http://code.google.com/p/houdah-webobjects-frameworks/

Pierre


On Dec 5, 2007, at 2:58 AM, Chuck Hill wrote:

> That looks familiar. Pierre and I fixed a bug in this a while
> back. Are you using the current ( i.e. up to date) ones from Houdah
> frameworks?
>
> Chuck
>
>
> On Dec 4, 2007, at 5:51 PM, David Holt wrote:
>
>> Hello All,
>>
>> I am finally getting the chance to use the QualifierAdditions from
>> Pierre Bernard (thanks Pierre!). I am using the following code that
>> generates a NullPointerException. Can anyone see what I have done
>> wrong?
>>
>> I am trying to show all Artifacts that have not been specified as
>> "favourites".
>>
>>
>>
>> public EOFetchSpecification getPubliclyDisplayed() {
>>
>> EOQualifier q1 = new EOKeyValueQualifier( "userName",
>> EOQualifier.QualifierOperatorEqual, applicationUser.userName());
>> ExistsInRelationshipQualifier q2 = new
>> ExistsInRelationshipQualifier("applicationUsers", q1);
>> // the inverse
>> EONotQualifier notq2 = new EONotQualifier(q2);
>>
>> // EOQualifier q3 = new EOAndQualifier( new NSArray( new Object[]
>> { q1, notq2 } ) );
>> EOFetchSpecification fs = new EOFetchSpecification( "Artifact",
>> notq2, null );
>>
>> return fs;
>> }
>>
>>
>> Stack trace:
>>
>> java.lang.NullPointerException
>> File
>> Line#
>> Method
>> Package
>>
>>
>> EOSQLExpression.java
>> 324
>> _aliasForRelationshipPath
>> com.webobjects.eoaccess
>> EOSQLExpression.java
>> 259
>> _aliasForRelatedAttributeRelationshipPath
>> com.webobjects.eoaccess
>> ExistsInRelationshipQualifierSupport.java
>> 99
>> sqlStringForSQLExpression
>> com.houdah.webobjects.eoaccess.qualifiers
>> EOQualifierSQLGeneration.java
>> 151
>> _sqlStringForSQLExpression
>> com.webobjects.eoaccess
>> EOSQLExpression.java
>> 1024
>> prepareSelectExpressionWithAttributes
>> com.webobjects.eoaccess
>> JDBCExpression.java
>> 273
>> prepareSelectExpressionWithAttributes
>> com.webobjects.jdbcadaptor
>> EOSQLExpressionFactory.java
>> 226
>> selectStatementForAttributes
>> com.webobjects.eoaccess
>> ERXSQLHelper.java
>> 461
>> sqlExpressionForFetchSpecification
>> er.extensions
>> ERXSQLHelper.java
>> 513
>> rowCountForFetchSpecification
>> er.extensions
>> ERXEOAccessUtilities.java
>> 284
>> rowCountForFetchSpecification
>> er.extensions
>> ERXBatchingDisplayGroup.java
>> 189
>> rowCount
>> er.extensions
>> ERXBatchingDisplayGroup.java
>> 216
>> refetch
>> er.extensions
>> ERXBatchingDisplayGroup.java
>> 276
>> fetch
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list ( email@hidden)
>> Help/Unsubscribe/Update your Subscription:
>>
>> This email sent to email@hidden
>
> --
>
> 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
>
>
>
>
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list ( email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden


- - -
Houdah Software s. à r. l.
http://www.houdah.com

HoudahGeo: One-stop photo geocoding
HoudahSpot: Powerful Spotlight frontend




_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list ( email@hidden) Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden



--
Daniele Corti
AIM: S0CR4TE5
Messenger: email@hidden

--
Computers are like air conditioners -- they stop working properly if you open
WINDOWS


--
What about the four lusers of the apocalypse? I nominate:
"advertising", "can't log in", "power switch" and "what backup?"
--Alistair Young

- - - Houdah Software s. à r. l. http://www.houdah.com


HoudahGeo: One-stop photo geocoding HoudahSpot: Powerful Spotlight frontend









--
Daniele Corti
AIM: S0CR4TE5
Messenger: email@hidden

--
Computers are like air conditioners -- they stop working properly if you open
WINDOWS


--
What about the four lusers of the apocalypse? I nominate:
"advertising", "can't log in", "power switch" and "what backup?"
--Alistair Young

- - - Houdah Software s. à r. l. http://www.houdah.com

HoudahGeo: One-stop photo geocoding
HoudahSpot: Powerful Spotlight frontend




_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
References: 
 >ExistsInRelationshipQualifier (From: David Holt <email@hidden>)
 >Re: ExistsInRelationshipQualifier (From: Chuck Hill <email@hidden>)
 >Re: ExistsInRelationshipQualifier (From: Pierre Bernard <email@hidden>)
 >Re: ExistsInRelationshipQualifier (From: "Daniele Corti" <email@hidden>)
 >Re: ExistsInRelationshipQualifier (From: Pierre Bernard <email@hidden>)
 >Re: ExistsInRelationshipQualifier (From: "Daniele Corti" <email@hidden>)

  • Prev by Date: Fat relationships: i.e. user <--->> transactions
  • Next by Date: Re: ExistsInRelationshipQualifier
  • Previous by thread: Re: ExistsInRelationshipQualifier
  • Next by thread: Re: ExistsInRelationshipQualifier
  • Index(es):
    • Date
    • Thread