Le 2012-11-14 à 21:16, Chuck Hill <[email protected]> a écrit :

> I have had this happen to me before, but I don't recall why.  Logging out a 
> stack trace (or setting a breakpoint if you are feeling modern) when 
> setQtyForSynthManifestTransaction is called with a null value is the quickest 
> way to solve this.

It's the exact same stack trace:

BuildManifest.setQtyForSynthManifestTransaction(Integer) line: 112      
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available 
[native method]  
NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39      
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25  
Method.invoke(Object, Object...) line: 597      
NSKeyValueCoding$ValueAccessor$1.setMethodValue(Object, Method, Object) line: 
643       
NSKeyValueCoding$_NumberMethodBinding(NSKeyValueCoding$_MethodBinding).setValueInObject(Object,
 Object) line: 1150      
NSKeyValueCoding$_NumberMethodBinding.setValueInObject(Object, Object) line: 
1183       
NSKeyValueCoding$DefaultImplementation.takeValueForKey(Object, Object, String) 
line: 1354       
BuildManifest(WOComponent).takeValueForKey(Object, String) line: 1748   
NSKeyValueCoding$Utility.takeValueForKey(Object, Object, String) line: 469      
NSValidation$DefaultImplementation.validateTakeValueForKeyPath(Object, Object, 
String) line: 679        
BuildManifest(WOComponent).validateTakeValueForKeyPath(Object, String) line: 
1424       
WOHelperFunctionKeyValueAssociation(WOKeyValueAssociation).setValue(Object, 
WOComponent) line: 76       
WOHelperFunctionKeyValueAssociation.setValue(Object, WOComponent) line: 21      
ERXWOTextField.takeValuesFromRequest(WORequest, WOContext) line: 166    
ERXWORepetition(WODynamicGroup).takeChildrenValuesFromRequest(WORequest, 
WOContext) line: 84    
ERXWORepetition(WODynamicGroup).takeValuesFromRequest(WORequest, WOContext) 
line: 93    
ERXWORepetition.takeValuesFromRequest(WORequest, WOContext) line: 451   
ERXWOConditional(WODynamicGroup).takeChildrenValuesFromRequest(WORequest, 
WOContext) line: 84   
ERXWOConditional.takeChildrenValuesFromRequest(WORequest, WOContext) line: 97   
ERXWOConditional(WODynamicGroup).takeValuesFromRequest(WORequest, WOContext) 
line: 93   
ERXWOConditional.takeValuesFromRequest(WORequest, WOContext) line: 91   
ERXElse(WODynamicGroup).takeChildrenValuesFromRequest(WORequest, WOContext) 
line: 84    
ERXElse(WODynamicGroup).takeValuesFromRequest(WORequest, WOContext) line: 93    
ERXElse.takeValuesFromRequest(WORequest, WOContext) line: 35    
WODynamicGroup.takeChildrenValuesFromRequest(WORequest, WOContext) line: 84     
WODynamicGroup.takeValuesFromRequest(WORequest, WOContext) line: 93     
BuildManifest(WOComponent).takeValuesFromRequest(WORequest, WOContext) line: 
1051       
BuildManifest(ERXComponent).takeValuesFromRequest(WORequest, WOContext) line: 
143       
BuildManifest(ERXNonSynchronizingComponent).takeValuesFromRequest(WORequest, 
WOContext) line: 51        
WOComponentReference.takeValuesFromRequest(WORequest, WOContext) line: 119      
ERXElse(WODynamicGroup).takeChildrenValuesFromRequest(WORequest, WOContext) 
line: 84    
ERXElse(WODynamicGroup).takeValuesFromRequest(WORequest, WOContext) line: 93    
ERXElse.takeValuesFromRequest(WORequest, WOContext) line: 35    
AjaxUpdateContainer(WODynamicGroup).takeChildrenValuesFromRequest(WORequest, 
WOContext) line: 84        
AjaxUpdateContainer(WODynamicGroup).takeValuesFromRequest(WORequest, WOContext) 
line: 93        
AjaxUpdateContainer.takeValuesFromRequest(WORequest, WOContext) line: 63        
ERXWORepetition(WODynamicGroup).takeChildrenValuesFromRequest(WORequest, 
WOContext) line: 84    
ERXWORepetition(WODynamicGroup).takeValuesFromRequest(WORequest, WOContext) 
line: 93    
ERXWORepetition.takeValuesFromRequest(WORequest, WOContext) line: 451   
WODynamicGroup.takeChildrenValuesFromRequest(WORequest, WOContext) line: 84     
WODynamicGroup.takeValuesFromRequest(WORequest, WOContext) line: 93     
AvailableParts(WOComponent).takeValuesFromRequest(WORequest, WOContext) line: 
1051      
AvailableParts(ERXComponent).takeValuesFromRequest(WORequest, WOContext) line: 
143      
WOComponentReference.takeValuesFromRequest(WORequest, WOContext) line: 119      
AjaxUpdateContainer(WODynamicGroup).takeChildrenValuesFromRequest(WORequest, 
WOContext) line: 84        
AjaxUpdateContainer(WODynamicGroup).takeValuesFromRequest(WORequest, WOContext) 
line: 93        
AjaxUpdateContainer.takeValuesFromRequest(WORequest, WOContext) line: 63        
ERXWOForm(WODynamicGroup).takeChildrenValuesFromRequest(WORequest, WOContext) 
line: 84  
ERXWOForm(WODynamicGroup).takeValuesFromRequest(WORequest, WOContext) line: 93  
ERXWOForm.takeValuesFromRequest(WORequest, WOContext) line: 281 
WODynamicGroup.takeChildrenValuesFromRequest(WORequest, WOContext) line: 84     
WODynamicGroup.takeValuesFromRequest(WORequest, WOContext) line: 93     
WOComponentContent.takeValuesFromRequest(WORequest, WOContext) line: 26 
ERXWOConditional(WODynamicGroup).takeChildrenValuesFromRequest(WORequest, 
WOContext) line: 84   
ERXWOConditional.takeChildrenValuesFromRequest(WORequest, WOContext) line: 97   
ERXWOConditional(WODynamicGroup).takeValuesFromRequest(WORequest, WOContext) 
line: 93   
ERXWOConditional.takeValuesFromRequest(WORequest, WOContext) line: 91   
WODynamicGroup.takeChildrenValuesFromRequest(WORequest, WOContext) line: 84     
WODynamicGroup.takeValuesFromRequest(WORequest, WOContext) line: 93     
PageWrapper(WOComponent).takeValuesFromRequest(WORequest, WOContext) line: 1051 
PageWrapper(ERXComponent).takeValuesFromRequest(WORequest, WOContext) line: 143 
WOComponentReference.takeValuesFromRequest(WORequest, WOContext) line: 119      
WODynamicGroup.takeChildrenValuesFromRequest(WORequest, WOContext) line: 84     
WODynamicGroup.takeValuesFromRequest(WORequest, WOContext) line: 93     
PartBuilder(WOComponent).takeValuesFromRequest(WORequest, WOContext) line: 1051 
PartBuilder(ERXComponent).takeValuesFromRequest(WORequest, WOContext) line: 143 
Session(WOSession).takeValuesFromRequest(WORequest, WOContext) line: 1331       
Session(ERXSession).takeValuesFromRequest(WORequest, WOContext) line: 554       
Application(WOApplication).takeValuesFromRequest(WORequest, WOContext) line: 
1724       
Application(ERXAjaxApplication).takeValuesFromRequest(WORequest, WOContext) 
line: 95    
AjaxRequestHandler(WOComponentRequestHandler)._dispatchWithPreparedPage(WOComponent,
 WOSession, WOContext, NSDictionary) line: 199      
AjaxRequestHandler(WOComponentRequestHandler)._dispatchWithPreparedSession(WOSession,
 WOContext, NSDictionary) line: 298        
AjaxRequestHandler(WOComponentRequestHandler)._dispatchWithPreparedApplication(WOApplication,
 WOContext, NSDictionary) line: 332        
AjaxRequestHandler(WOComponentRequestHandler)._handleRequest(WORequest) line: 
369       
AjaxRequestHandler(WOComponentRequestHandler).handleRequest(WORequest) line: 
442        
AjaxRequestHandler.handleRequest(WORequest) line: 17    
Application(WOApplication).dispatchRequest(WORequest) line: 1687        
Application(ERXApplication).dispatchRequestImmediately(WORequest) line: 2139    
Application(ERXApplication).dispatchRequest(WORequest) line: 2104       
WOWorkerThread.runOnce() line: 144      
WOWorkerThread.run() line: 226  
Thread.run() line: 680  


> Chuck
> 
> 
> On 2012-11-14, at 6:14 PM, [email protected] wrote:
> 
>> 
>> 
>> Envoyé de mon iPhone
>> 
>> Le 2012-11-14 à 21:00, "Chuck Hill" <[email protected]> a écrit :
>> 
>>> Does BuildManifest have a reset() method.
>> 
>> Yes, I reset the variables that holds the values from the bindings in 
>> reset() but I don't do anything for QtyForSynthManifestTransaction in reset()
>> 
>>> What is the stack trace when setQtyForSynthManifestTransaction is called 
>>> with a null value?
>>> 
>>> 
>>> On 2012-11-14, at 5:51 PM, Pascal Robert wrote:
>>> 
>>>> I think I still have to understand a couple of things about components. So 
>>>> I have a component that display a table where each row is coming from a 
>>>> WORepetition. Inside each row, I have a column that calls a stateless 
>>>> sub-component:
>>>> 
>>>> <td class="manifest_column">
>>>>   <wo:BuildManifest selectedProject="$selectedProject" 
>>>> spec="$childSpec.spec" 
>>>> transactions="$~transactionsForSpec(childSpec.spec)" employee="$~employee" 
>>>> rootTransaction="$rootTransaction" />
>>>> </td>
>>>> 
>>>> In BuildManifest, I have the following code:
>>>> 
>>>> <wo:loop list="$spec.parts" item="$partItem">
>>>>  <wo:if condition="$spec.isLotInventory">
>>>>      <wo:str value="$partItem.serialNumber" />  
>>>>  </wo:if>
>>>>  <wo:textfield value="$qtyForSynthManifestTransaction" size="4" 
>>>> numberformat="#" style="padding: 0px; margin: 0px;" />
>>>>  <wo:if condition="$spec.isLotInventory">
>>>>      <wo:AjaxSubmitButton updateContainerID="$spec.inventoryNumber" 
>>>> value="SM" action="$~createSyntheticTransactionFromPart(partItem)" /> <br 
>>>> />
>>>>  </wo:if>
>>>>  <wo:else>
>>>>      <wo:AjaxSubmitButton updateContainerID="$spec.inventoryNumber" 
>>>> value="SM" action="$~createSyntheticTransactionFromSpec()" />        
>>>> </wo:else>
>>>> </wo:loop>
>>>> 
>>>> qtyForSynthManifestTransaction is a Integer, with a setter and a getter in 
>>>> BuildManifest.java. Now, if I submit the form, 
>>>> setQtyForSynthManifestTransaction is called with the value that I 
>>>> submitted, that's fine, but the setter is called a second time, and it 
>>>> sets the value to null, so when createSyntheticTransactionFromSpec or 
>>>> createSyntheticTransactionFromPart are finally called, the quantity is set 
>>>> to null!
>>>> 
>>>> I have put a breakpoint on the awake method in BuildManifest, and awake() 
>>>> is called as many time as I have rows in my table. So for example, if I 
>>>> had 10 rows, BuildManifest is called 10 times. After the first awake, 
>>>> setQtyForSynthManifestTransaction is called to the correct value, after 
>>>> than awake() is called a couple of times and boum! 
>>>> setQtyForSynthManifestTransaction is called with a null value!
>>>> 
>>>> So what's the trick?
>>>> 
>>>> 
>>>> _______________________________________________
>>>> Do not post admin requests to the list. They will be ignored.
>>>> Webobjects-dev mailing list      ([email protected])
>>>> Help/Unsubscribe/Update your Subscription:
>>>> https://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net
>>>> 
>>>> This email sent to [email protected]
>>> 
>>> -- 
>>> 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/gvc/practical_webobjects
>>> 
>>> Global Village Consulting ranks 13th in 2012 in BIV's Top 100 Fastest 
>>> Growing Companies in B.C! 
>>> Global Village Consulting ranks 76th in 24th annual PROFIT 200 ranking of 
>>> Canada’s Fastest-Growing Companies by PROFIT Magazine!
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
> 
> -- 
> 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/gvc/practical_webobjects
> 
> Global Village Consulting ranks 13th in 2012 in BIV's Top 100 Fastest Growing 
> Companies in B.C! 
> Global Village Consulting ranks 76th in 24th annual PROFIT 200 ranking of 
> Canada’s Fastest-Growing Companies by PROFIT Magazine!
> 
> 
> 
> 
> 
> 
> 
> 


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to