[GeoNetwork-devel] [GeoNetwork opensource Developer website] #107: could not perform search, create new metadata, upload thumbnail in ipv6 network

#107: could not perform search, create new metadata, upload thumbnail in ipv6
network
---------------------+------------------------------------------------------
Reporter: wlx | Owner: geonetwork-devel@lists.sourceforge.net
     Type: defect | Status: new
Priority: major | Milestone:
Component: General | Version: v2.2.0 Final
Keywords: ipv6 |
---------------------+------------------------------------------------------
Geonetwork version is 2.2.0.

The server and the client both have ipv6 address. When the client visit
the geonetwork server, these functions could not perform: search, create
new metadata, upload thumbnail.

In the log file:
{{{
2009-05-14 11:14:58,155 INFO [jeeves.webapp.main.home] - Creating default
search data
2009-05-14 11:14:58,156 INFO [jeeves.webapp.main.home] - Returning search
data
2009-05-14 11:14:58,206 ERROR [jeeves.service] - Exception executing gui
service : java.lang.NumberFormatException: For input string:
"2001:cc0:f006:0:221:9bff:fe6c:7168"
2009-05-14 11:14:58,207 ERROR [jeeves.service] - (C) Stack trace is :
java.lang.NumberFormatException: For input string:
"2001:cc0:f006:0:221:9bff:fe6c:7168"
         at
java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
         at java.lang.Integer.parseInt(Integer.java:456)
         at java.lang.Integer.parseInt(Integer.java:497)
         at
org.fao.geonet.kernel.AccessManager.getAddress(AccessManager.java:341)
         at
org.fao.geonet.kernel.AccessManager.isIntranet(AccessManager.java:327)
         at
org.fao.geonet.kernel.AccessManager.getUserGroups(AccessManager.java:170)
         at
org.fao.geonet.guiservices.metadata.GetLatestUpdated.exec(GetLatestUpdated.java:80)
         at jeeves.server.dispatchers.guiservices.Call.exec(Call.java:75)
         at
jeeves.server.dispatchers.AbstractPage.invokeGuiService(AbstractPage.java:119)
         at
jeeves.server.dispatchers.AbstractPage.invokeGuiServices(AbstractPage.java:104)
         at
jeeves.server.dispatchers.ServiceManager.dispatchOutput(ServiceManager.java:588)
         at
jeeves.server.dispatchers.ServiceManager.dispatch(ServiceManager.java:382)
         at jeeves.server.JeevesEngine.dispatch(JeevesEngine.java:616)
         at
jeeves.server.sources.http.JeevesServlet.execute(JeevesServlet.java:163)
         at
jeeves.server.sources.http.JeevesServlet.doGet(JeevesServlet.java:88)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
         at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
         at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
         at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
         at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
         at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
         at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
         at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
         at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
         at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
         at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
         at java.lang.Thread.run(Thread.java:619)

}}}

So, to use these functions, I make a temp solution:

{{{
wlx@...553...:~/Projects/geonetwork-2.2.0/src/org/fao/geonet/kernel$ svn diff
Index: AccessManager.java

--- AccessManager.java (版本 3883)
+++ AccessManager.java (工作副本)
@@ -322,11 +322,13 @@
                 String network =
settMan.getValue("system/intranet/network");
                 String netmask =
settMan.getValue("system/intranet/netmask");

- long lIntranetNet = getAddress(network);
- long lIntranetMask = getAddress(netmask);
- long lAddress = getAddress(ip);
+ // to avoid ipv6 problem
+ //long lIntranetNet = getAddress(network);
+ //long lIntranetMask = getAddress(netmask);
+ //long lAddress = getAddress(ip);

- return (lAddress & lIntranetMask) == lIntranetNet ;
+ //return (lAddress & lIntranetMask) == lIntranetNet ;
+ return false;
         }

//--------------------------------------------------------------------------

}}}

--
Ticket URL: <http://trac.osgeo.org/geonetwork/ticket/107&gt;
GeoNetwork opensource Developer website <http://trac.osgeo.org/geonetwork&gt;
GeoNetwork opensource is a standards based, Free and Open Source catalog application to manage spatially referenced resources through the web. It provides powerful metadata editing and search functions as well as an embedded interactive web map viewer. This website contains information related to the development of the software.