Solved

Servlet Error

Posted on 2002-04-30
17
256 Views
Last Modified: 2013-11-24
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
Comment
Question by:kmurphy7
  • 6
  • 3
  • 3
  • +4
17 Comments
 
LVL 86

Expert Comment

by:CEHJ
ID: 6981593
listening...
0
 
LVL 5

Expert Comment

by:jamoville
ID: 6981652
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
 

Author Comment

by:kmurphy7
ID: 6981663
test = ""

 If I am not mistaking there is a difference between "" and null. Is this correct.
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 6981669
You're correct
0
 
LVL 5

Expert Comment

by:jamoville
ID: 6981676
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
 
LVL 5

Expert Comment

by:Jan Louwerens
ID: 6981733
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
 
LVL 5

Expert Comment

by:jamoville
ID: 6981869
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
 
LVL 3

Expert Comment

by:jerelw
ID: 6982034
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
DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

 
LVL 18

Expert Comment

by:bobbit31
ID: 6982119
> 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
 
LVL 86

Expert Comment

by:CEHJ
ID: 6982129
>>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
 
LVL 18

Accepted Solution

by:
bobbit31 earned 50 total points
ID: 6982134
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
 
LVL 86

Assisted Solution

by:CEHJ
CEHJ earned 50 total points
ID: 6982154
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
 
LVL 18

Expert Comment

by:bobbit31
ID: 6982158
no prob ;)
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 6982168
kmurphy7 - we've solved the mystery I think!
0
 
LVL 35

Expert Comment

by:girionis
ID: 8682739
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
 
LVL 86

Expert Comment

by:CEHJ
ID: 8683207
hmmmmmmm.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Impossible to extract MSI from new JAVA releases 2 47
Java / Linux and Regular Expressions 11 70
mockito example issue 8 62
arguments to jar 5 14
For beginner Java programmers or at least those new to the Eclipse IDE, the following tutorial will show some (four) ways in which you can import your Java projects to your Eclipse workbench. Introduction While learning Java can be done with…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Viewers will learn about the different types of variables in Java and how to declare them. Decide the type of variable desired: Put the keyword corresponding to the type of variable in front of the variable name: Use the equal sign to assign a v…
Viewers will learn one way to get user input in Java. Introduce the Scanner object: Declare the variable that stores the user input: An example prompting the user for input: Methods you need to invoke in order to properly get  user input:

910 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now