You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by al...@apache.org on 2012/11/19 12:37:40 UTC
svn commit: r1411132 -
/jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/repository/RmiRepositoryFactory.java
Author: alexparvulescu
Date: Mon Nov 19 11:37:39 2012
New Revision: 1411132
URL: http://svn.apache.org/viewvc?rev=1411132&view=rev
Log:
JCR-3459 RmiRepositoryFactory regression, invalid stream header
Modified:
jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/repository/RmiRepositoryFactory.java
Modified: jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/repository/RmiRepositoryFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/repository/RmiRepositoryFactory.java?rev=1411132&r1=1411131&r2=1411132&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/repository/RmiRepositoryFactory.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/repository/RmiRepositoryFactory.java Mon Nov 19 11:37:39 2012
@@ -36,6 +36,7 @@ import javax.naming.InitialContext;
import javax.naming.NamingException;
import org.apache.jackrabbit.rmi.client.ClientAdapterFactory;
+import org.apache.jackrabbit.rmi.client.LocalAdapterFactory;
import org.apache.jackrabbit.rmi.client.SafeClientRepository;
import org.apache.jackrabbit.rmi.remote.RemoteRepository;
@@ -74,36 +75,43 @@ public class RmiRepositoryFactory implem
}
}
- private Repository getUrlRepository(final URL url) throws RepositoryException {
- return new SafeClientRepository(new ClientAdapterFactory()) {
-
- @Override
- protected RemoteRepository getRemoteRepository() throws RemoteException {
- try {
- InputStream stream = url.openStream();
- try {
- Object remote = new ObjectInputStream(stream).readObject();
- if (remote instanceof RemoteRepository) {
- return (RemoteRepository) remote;
- } else {
- throw new RemoteException(
- "The resource at URL " + url
- + " is not a remote repository stub: "
- + remote);
- }
- } finally {
- stream.close();
- }
- } catch (ClassNotFoundException e) {
- throw new RemoteException(
- "The resource at URL " + url
- + " requires a class that is not available", e);
- } catch (IOException e) {
- throw new RemoteException(
- "Failed to read the resource at URL " + url, e);
- }
- }
- };
+ private Repository getUrlRepository(final URL url)
+ throws RepositoryException {
+ return new SafeClientRepositoryUrl(url, new ClientAdapterFactory());
+ }
+
+ private static class SafeClientRepositoryUrl extends SafeClientRepository {
+
+ private final URL url;
+
+ public SafeClientRepositoryUrl(URL url, LocalAdapterFactory factory) {
+ super(factory);
+ this.url = url;
+ }
+
+ @Override
+ protected RemoteRepository getRemoteRepository() throws RemoteException {
+ try {
+ InputStream stream = url.openStream();
+ try {
+ Object remote = new ObjectInputStream(stream).readObject();
+ if (remote instanceof RemoteRepository) {
+ return (RemoteRepository) remote;
+ } else {
+ throw new RemoteException("The resource at URL " + url
+ + " is not a remote repository stub: " + remote);
+ }
+ } finally {
+ stream.close();
+ }
+ } catch (ClassNotFoundException e) {
+ throw new RemoteException("The resource at URL " + url
+ + " requires a class that is not available", e);
+ } catch (IOException e) {
+ throw new RemoteException("Failed to read the resource at URL "
+ + url, e);
+ }
+ }
}
@SuppressWarnings("rawtypes")