Re: Weird NullPointerException

2011-03-28 Thread Markus Ruggiero
Thanks Chuck, you made my day.

Cheers
---markus---

On 25.03.2011, at 18:47, Chuck Hill wrote:

 Hi Markus,
 
 
 On Mar 25, 2011, at 3:41 AM, Markus Ruggiero wrote:
 
 I have an EO that has business logic for creating an PDF file. There is a 
 WOComponent that generates an XML which is then fed to ApacheFOP. Following 
 code is in the EO:
 
 GeneratedDocument.java
 
  public void generatePDF(WOComponent sender) {
  if (sender == null) {
  return;
  }
  
  String generatorName = xmlGeneratorClassName();
  if (generatorName != null) {
  XmlGeneratorComponent xmlGenerator = 
 (XmlGeneratorComponent)sender.pageWithName(generatorName);
 
 That might be a problem there.  Try this instead:
 XmlGeneratorComponent xmlGenerator = 
 (XmlGeneratorComponent)WOApplication.application().pageWithName(generatorName,
  new WOContent(sender.context().request()));
 
 It is usually safer to create a new context for things like this.
 
 
 Chuck
 
 
  PDFGenerator pdfGenerator = 
 PDFGenerator.sharedInstance();
  pdfGenerator.generatePdfFile( this, xmlGenerator );
  }
  else {
  log.error( *** No xmlGeneratorClassName available );
  }
  }
 
 
 Depending on the context I call this I get a NullPointerException or not. 
 This is the NPE, context info follows below:
 
 Mar 25 11:13:49 ec_admin[13000] WARN  NSLog  - 
 com.webobjects.appserver._private.WOComponentRequestHandler: Exception 
 occurred while handling request:
 java.lang.NullPointerException
 [2011-3-25 11:13:49 CET] WorkerThread14 java.lang.NullPointerException
  at 
 com.webobjects.appserver._private.WOComponentReference._popComponentFromContext(WOComponentReference.java:108)
  at 
 com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:128)
  at 
 er.extensions.components._private.ERXSwitchComponent.invokeAction(ERXSwitchComponent.java:117)
  at 
 com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
  at 
 com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
  at 
 er.extensions.components._private.ERXWORepetition.invokeAction(ERXWORepetition.java:496)
  at 
 com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
  at 
 er.extensions.components.conditionals.ERXWOConditional.invokeChildrenAction(ERXWOConditional.java:113)
  at 
 com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
  at 
 er.extensions.components.conditionals.ERXWOConditional.invokeAction(ERXWOConditional.java:104)
  at 
 com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
  at 
 com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
  at 
 com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
  at 
 com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
  at 
 com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComponentContent.java:38)
  at 
 com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
  at 
 com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
  at 
 com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
  at 
 com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
  at 
 er.extensions.components._private.ERXSwitchComponent.invokeAction(ERXSwitchComponent.java:117)
  at 
 com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
  at 
 com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
  at 
 com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
  at er.directtoweb.pages.ERD2WPage.invokeAction(ERD2WPage.java:619)
  at 
 er.directtoweb.pages.ERD2WListPage.invokeAction(ERD2WListPage.java:479)
  at com.webobjects.appserver.WOSession.invokeAction(WOSession.java:1357)
  at 
 com.webobjects.appserver.WOApplication.invokeAction(WOApplication.java:1745)
  at 
 er.extensions.appserver.ajax.ERXAjaxApplication.invokeAction(ERXAjaxApplication.java:93)
  at 
 er.extensions.appserver.ERXApplication.invokeAction(ERXApplication.java:1863)
  at 
 com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedPage(WOComponentRequestHandler.java:206)
  at 
 com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedSession(WOComponentRequestHandler.java:298)
  at 
 

Weird NullPointerException

2011-03-25 Thread Markus Ruggiero
I have an EO that has business logic for creating an PDF file. There is a 
WOComponent that generates an XML which is then fed to ApacheFOP. Following 
code is in the EO:

GeneratedDocument.java

public void generatePDF(WOComponent sender) {
if (sender == null) {
return;
}

String generatorName = xmlGeneratorClassName();
if (generatorName != null) {
XmlGeneratorComponent xmlGenerator = 
(XmlGeneratorComponent)sender.pageWithName(generatorName);
PDFGenerator pdfGenerator = 
PDFGenerator.sharedInstance();
pdfGenerator.generatePdfFile( this, xmlGenerator );
}
else {
log.error( *** No xmlGeneratorClassName available );
}
}


Depending on the context I call this I get a NullPointerException or not. This 
is the NPE, context info follows below:

Mar 25 11:13:49 ec_admin[13000] WARN  NSLog  - 
com.webobjects.appserver._private.WOComponentRequestHandler: Exception 
occurred while handling request:
java.lang.NullPointerException
[2011-3-25 11:13:49 CET] WorkerThread14 java.lang.NullPointerException
at 
com.webobjects.appserver._private.WOComponentReference._popComponentFromContext(WOComponentReference.java:108)
at 
com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:128)
at 
er.extensions.components._private.ERXSwitchComponent.invokeAction(ERXSwitchComponent.java:117)
at 
com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at 
com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
at 
er.extensions.components._private.ERXWORepetition.invokeAction(ERXWORepetition.java:496)
at 
com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at 
er.extensions.components.conditionals.ERXWOConditional.invokeChildrenAction(ERXWOConditional.java:113)
at 
com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
at 
er.extensions.components.conditionals.ERXWOConditional.invokeAction(ERXWOConditional.java:104)
at 
com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
at 
com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
at 
com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at 
com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
at 
com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComponentContent.java:38)
at 
com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at 
com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
at 
com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
at 
com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
at 
er.extensions.components._private.ERXSwitchComponent.invokeAction(ERXSwitchComponent.java:117)
at 
com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
at 
com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
at 
com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
at er.directtoweb.pages.ERD2WPage.invokeAction(ERD2WPage.java:619)
at 
er.directtoweb.pages.ERD2WListPage.invokeAction(ERD2WListPage.java:479)
at com.webobjects.appserver.WOSession.invokeAction(WOSession.java:1357)
at 
com.webobjects.appserver.WOApplication.invokeAction(WOApplication.java:1745)
at 
er.extensions.appserver.ajax.ERXAjaxApplication.invokeAction(ERXAjaxApplication.java:93)
at 
er.extensions.appserver.ERXApplication.invokeAction(ERXApplication.java:1863)
at 
com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedPage(WOComponentRequestHandler.java:206)
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 

Re: Weird NullPointerException

2011-03-25 Thread Chuck Hill
Hi Markus,


On Mar 25, 2011, at 3:41 AM, Markus Ruggiero wrote:

 I have an EO that has business logic for creating an PDF file. There is a 
 WOComponent that generates an XML which is then fed to ApacheFOP. Following 
 code is in the EO:
 
 GeneratedDocument.java
 
   public void generatePDF(WOComponent sender) {
   if (sender == null) {
   return;
   }
   
   String generatorName = xmlGeneratorClassName();
   if (generatorName != null) {
   XmlGeneratorComponent xmlGenerator = 
 (XmlGeneratorComponent)sender.pageWithName(generatorName);

That might be a problem there.  Try this instead:
XmlGeneratorComponent xmlGenerator = 
(XmlGeneratorComponent)WOApplication.application().pageWithName(generatorName, 
new WOContent(sender.context().request()));

It is usually safer to create a new context for things like this.


Chuck


   PDFGenerator pdfGenerator = 
 PDFGenerator.sharedInstance();
   pdfGenerator.generatePdfFile( this, xmlGenerator );
   }
   else {
   log.error( *** No xmlGeneratorClassName available );
   }
   }
 
 
 Depending on the context I call this I get a NullPointerException or not. 
 This is the NPE, context info follows below:
 
 Mar 25 11:13:49 ec_admin[13000] WARN  NSLog  - 
 com.webobjects.appserver._private.WOComponentRequestHandler: Exception 
 occurred while handling request:
 java.lang.NullPointerException
 [2011-3-25 11:13:49 CET] WorkerThread14 java.lang.NullPointerException
   at 
 com.webobjects.appserver._private.WOComponentReference._popComponentFromContext(WOComponentReference.java:108)
   at 
 com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:128)
   at 
 er.extensions.components._private.ERXSwitchComponent.invokeAction(ERXSwitchComponent.java:117)
   at 
 com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
   at 
 com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
   at 
 er.extensions.components._private.ERXWORepetition.invokeAction(ERXWORepetition.java:496)
   at 
 com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
   at 
 er.extensions.components.conditionals.ERXWOConditional.invokeChildrenAction(ERXWOConditional.java:113)
   at 
 com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
   at 
 er.extensions.components.conditionals.ERXWOConditional.invokeAction(ERXWOConditional.java:104)
   at 
 com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
   at 
 com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
   at 
 com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
   at 
 com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
   at 
 com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComponentContent.java:38)
   at 
 com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
   at 
 com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
   at 
 com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
   at 
 com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
   at 
 er.extensions.components._private.ERXSwitchComponent.invokeAction(ERXSwitchComponent.java:117)
   at 
 com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
   at 
 com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
   at 
 com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
   at er.directtoweb.pages.ERD2WPage.invokeAction(ERD2WPage.java:619)
   at 
 er.directtoweb.pages.ERD2WListPage.invokeAction(ERD2WListPage.java:479)
   at com.webobjects.appserver.WOSession.invokeAction(WOSession.java:1357)
   at 
 com.webobjects.appserver.WOApplication.invokeAction(WOApplication.java:1745)
   at 
 er.extensions.appserver.ajax.ERXAjaxApplication.invokeAction(ERXAjaxApplication.java:93)
   at 
 er.extensions.appserver.ERXApplication.invokeAction(ERXApplication.java:1863)
   at 
 com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedPage(WOComponentRequestHandler.java:206)
   at 
 com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedSession(WOComponentRequestHandler.java:298)
   at 
 com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedApplication(WOComponentRequestHandler.java:332)
   at