You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Michael Dick (JIRA)" <ji...@apache.org> on 2008/02/20 16:01:44 UTC
[jira] Assigned: (OPENJPA-518) openJpa jar is being locked causing
future deployments on an app server to fail
[ https://issues.apache.org/jira/browse/OPENJPA-518?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Dick reassigned OPENJPA-518:
------------------------------------
Assignee: Michael Dick
> openJpa jar is being locked causing future deployments on an app server to fail
> -------------------------------------------------------------------------------
>
> Key: OPENJPA-518
> URL: https://issues.apache.org/jira/browse/OPENJPA-518
> Project: OpenJPA
> Issue Type: Bug
> Components: lib
> Affects Versions: 1.0.1
> Environment: Windows XP, Sun PE Application Server 8.1, JDK 1.5.0_14-b03, Spring 2.5
> Reporter: Adam Toback
> Assignee: Michael Dick
> Priority: Minor
> Original Estimate: 0.17h
> Remaining Estimate: 0.17h
>
> So when I deploy my war file on the application server the first time, everything works fine. However, if I then try to undeploy or redeploy over the existing version the deployment will fail because the openjpa.jar in the WEB-INF/lib directory of my war file is locked.
> I did track down the bug to:
> org.apache.openjpa.lib.util.Services
> The addResources method is opening a URL Connection and not performing a setUseCaches(false). I made the following changes, implemented the new jar in my webapp and it fixed the problem.
> private static void addResources(URL url, Set set) throws IOException {
> InputStream in = null;
> BufferedReader reader = null;
> try {
> java.net.URLConnection ucon = url.openConnection();
> ucon.setUseCaches(false);
> in = ucon.getInputStream();
> reader = new BufferedReader(new InputStreamReader(in));
> String line;
> while ((line = reader.readLine()) != null) {
> if (line.trim().startsWith("#")
> || line.trim().length() == 0)
> continue;
> StringTokenizer tok = new StringTokenizer(line, "# \t");
> if (tok.hasMoreTokens()) {
> String next = tok.nextToken();
> if (next != null) {
> next = next.trim();
> if (next.length() > 0 && !next.startsWith("#"))
> set.add(next);
> }
> }
> }
> }
> catch (Exception e) {
> throw new IOException(e.toString());
> }
> finally {
> try { reader.close(); } catch (IOException re) {}
> try { in.close(); } catch (IOException ioe) {}
> }
> }
> Only the setUseCaches(false) should be necessary, but I was just making sure that anything that was opened was closed.
> Thanks,
> Adam
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.