tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher Schultz <ch...@christopherschultz.net>
Subject Re: Intermittent "ServletException - Unable to compile class for JSP" for a struts-1.3.10 web-app with Tomcat 7.0.26/7.0.27
Date Thu, 12 Apr 2012 16:44:54 GMT
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Konstantin,

On 4/12/12 10:03 AM, Konstantin Kolinko wrote:
> What is the type and value of  _jspx_dependants field?

Ashima has sent the original JSP and the translated .java file to me.
The interesting parts are here:

  // Starting at line 21 (filenames redacted):
  private static java.util.Map<java.lang.String,java.lang.Long>
_jspx_dependants;


  static {
    _jspx_dependants = new
java.util.HashMap<java.lang.String,java.lang.Long>(12);
    _jspx_dependants.put("/WEB-INF/tld/a.tld",
Long.valueOf(1333128256000L));
    _jspx_dependants.put("/WEB-INF/pages/b.jsp",
Long.valueOf(1333128256000L));
    _jspx_dependants.put("/WEB-INF/tags/c.tag",
Long.valueOf(1333128256000L));
    _jspx_dependants.put("/WEB-INF/tld/d.tld",
Long.valueOf(1333128256000L));
    _jspx_dependants.put("/WEB-INF/tld/e.tld",
Long.valueOf(1333128256000L));
    _jspx_dependants.put("/WEB-INF/tags/f.tag",
Long.valueOf(1333128256000L));
    _jspx_dependants.put("/WEB-INF/tld/g.tld",
Long.valueOf(1333128256000L));
    _jspx_dependants.put("/WEB-INF/tld/h.tld", Long.valueOf(-1L));
    _jspx_dependants.put("/WEB-INF/tld/i.tld",
Long.valueOf(1333128256000L));
    _jspx_dependants.put("/WEB-INF/tld/j.tld",
Long.valueOf(1333128256000L));
    _jspx_dependants.put("/WEB-INF/tld/k.tld",
Long.valueOf(1333128256000L));
    _jspx_dependants.put("/WEB-INF/tld/l.tld",
Long.valueOf(1333128256000L));
  }

  // ...

  // Line 49:
  public java.util.Map<java.lang.String,java.lang.Long> getDependants() {
    return _jspx_dependants;
  }

That looks perfectly legit to me.

> It seems that it complaints that that field returned by the method
> is not Map<String,Long>.
> 
>> Can you confirm that after you try to access the .jsp from the 
>> browser, the timestamp on the .java file changes?
> 
> Timestamp does not matter, because in latest Tomcat 7 it is set to 
> match the original file.
> 
> There is a comment at the top of generated java file that mentions 
> this fact and the actual time of generation.

/*
 * Generated by the Jasper component of Apache Tomcat
 * Version: Apache Tomcat/7.0.26
 * Generated at: 2012-04-12 14:47:59 UTC
 * Note: The last modified time of this file was set to
 *       the last modified time of the source file after
 *       generation to assist with modification tracking.
 */

> 3. Deletion of recently created files on Windows can be impeded by 
> antivirus scanners. (Subversion client users on Windows are
> sometimes complaining about that. It depends on a/v product being
> used.).

It's weird that the .classtmp file does not appear to exist, either.

> Maybe Tomcat can rename the old file before deleting it. IIRC
> Windows allows renaming files that are open for reading, but has 
> problems with deleting them.

The code definitely creates the new file, then deletes, then renames.
Since the delete fails, the rename can't occur. Strange thing is that
the file that should be re-named (.classtmp) does not exist according
to OP.

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk+HBoYACgkQ9CaO5/Lv0PBQJQCeN1XqxMEBjKh+QtTKDEb9Wi01
DIUAoKauJOoOj4+KW3ATIJioAJLhp7N7
=sHS8
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message