• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 271
  • Last Modified:

Servlet Error

I have a quick question.
What is the difference between the following:
   String test = req.getParameter("Something").trim();
and
   String test = "";
   test = req.getParameter("Something").trim();

If Something is not in the querystring I get an error.
For some reason when i use the first example I get a nullpointer exception. If I use the second example it works with out a problem. I am using JRun 2.3.

Thank You in advance.
Kent
0
kmurphy7
Asked:
kmurphy7
  • 6
  • 3
  • 3
  • +4
2 Solutions
 
CEHJCommented:
listening...
0
 
jamovilleCommented:
When you run the second example and "Something" is not in the querystring (the one you indicate works ok) what is the value of test?
0
 
kmurphy7Author Commented:
test = ""

 If I am not mistaking there is a difference between "" and null. Is this correct.
0
The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

 
CEHJCommented:
You're correct
0
 
jamovilleCommented:
I'm not using JRun but I get a null pointer for both which is what you would expect to get.  There is a difference between "" and null. The line req.getParameter("Something") should be returning null.  When the trim() is applied to the null value returned you should get a null pointer exception.  This is what I'm seeing, but maybe JRun behaves differently.
0
 
Jan LouwerensSoftware EngineerCommented:
both are wrong. You want to use:

   String test = req.getParameter("Something");
   if (test != null)
      test = test.trim();
// else
//    test = "";  // maybe you want a default value if it's not specified
0
 
jamovilleCommented:
jlouwere :

The code you wrote would work but why kmurphy7 is not getting a null pointer exception with the second example is the real question that should be answered.
0
 
jerelwCommented:
I don't believe that the code posted is the actual sequence of events.

please post the actual block of code with the issue, and we can see when and where values are being set and if the code is in a try - catch.
0
 
bobbit31Commented:
> why kmurphy7 is not getting a null pointer exception with the second
example

b/c it is not a null object... it is a String object of zero length (like an empty vector for example)
0
 
CEHJCommented:
>>b/c it is not a null object...

It *should* be after it has been assigned null (which is the case in the second example). Otherwise the assignment has not worked.
0
 
bobbit31Commented:
is this the second example?
  String test = "";
  test = req.getParameter("Something").trim();

if so, it is not being assigned null, it is being assigned to a zero length string
0
 
CEHJCommented:
Ah. It's becoming clear. Both I and bobbit31 are right:

>> it is not being assigned null, it is being assigned to a zero length string

>>Otherwise
the assignment has not worked.

The assignment never gets made, as req.getParameter("Something").trim(); throws an exception. Therefore 'test' holds its original value, i.e. a zero length string! Thanks for the prompt bobbit31
0
 
bobbit31Commented:
no prob ;)
0
 
CEHJCommented:
kmurphy7 - we've solved the mystery I think!
0
 
girionisCommented:
No comment has been added lately, so it's time to clean up this TA.

I will leave a recommendation in the Cleanup topic area that this question is:

- points to bobbit31

Please leave any comments here within the
next seven days.

PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER !

girionis
Cleanup Volunteer
0
 
CEHJCommented:
hmmmmmmm.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 6
  • 3
  • 3
  • +4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now