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 [EMAIL PROTECTED]
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 PROTECTED]>:
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 PROTECTED]>: 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 protected])
>> Help/Unsubscribe/Update your Subscription:
>>
http://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net
>>
>> This email sent to [EMAIL PROTECTED]
>
> --
>
> 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 protected])
> Help/Unsubscribe/Update your Subscription:
>
http://lists.apple.com/mailman/options/webobjects-dev/webobjects-lists%40houdah.com
>
> This email sent to [EMAIL PROTECTED]
- - -
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 protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/ildenae%40gmail.com
This email sent to [EMAIL PROTECTED]
--
Daniele Corti
AIM: S0CR4TE5
Messenger: [EMAIL PROTECTED]
--
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 PROTECTED]
--
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