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/28 17:15:06 UTC
svn commit: r1414782 -
/jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/repository/RmiRepositoryFactory.java
Author: alexparvulescu
Date: Wed Nov 28 16:15:05 2012
New Revision: 1414782
URL: http://svn.apache.org/viewvc?rev=1414782&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=1414782&r1=1414781&r2=1414782&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 Wed Nov 28 16:15:05 2012
@@ -80,6 +80,18 @@ public class RmiRepositoryFactory implem
return new SafeClientRepositoryUrl(url, new ClientAdapterFactory());
}
+ @SuppressWarnings("rawtypes")
+ private Repository getJndiRepository(final String name,
+ final Hashtable environment) throws RepositoryException {
+ return new SafeClientRepositoryJndi(name, environment,
+ new ClientAdapterFactory());
+ }
+
+ private Repository getRmiRepository(final String name)
+ throws RepositoryException {
+ return new SafeClientRepositoryName(name, new ClientAdapterFactory());
+ }
+
private static class SafeClientRepositoryUrl extends SafeClientRepository {
private final URL url;
@@ -115,55 +127,63 @@ public class RmiRepositoryFactory implem
}
@SuppressWarnings("rawtypes")
- private Repository getJndiRepository(final String name, final Hashtable environment)
- throws RepositoryException {
- return new SafeClientRepository(new ClientAdapterFactory()) {
-
- @Override
- protected RemoteRepository getRemoteRepository() throws RemoteException {
- try {
- Object value = new InitialContext(environment).lookup(name);
- if (value instanceof RemoteRepository) {
- return (RemoteRepository) value;
- } else {
- throw new RemoteException(
- "The JNDI resource " + name
- + " is not a remote repository stub: " + value);
- }
- } catch (NamingException e) {
- throw new RemoteException(
- "Failed to look up the JNDI resource " + name, e);
- }
- }
- };
+ private static class SafeClientRepositoryJndi extends SafeClientRepository {
+
+ private final String name;
+ private final Hashtable environment;
+
+ public SafeClientRepositoryJndi(String name, Hashtable environment,
+ LocalAdapterFactory factory) {
+ super(factory);
+ this.name = name;
+ this.environment = environment;
+ }
+
+ @Override
+ protected RemoteRepository getRemoteRepository() throws RemoteException {
+ try {
+ Object value = new InitialContext(environment).lookup(name);
+ if (value instanceof RemoteRepository) {
+ return (RemoteRepository) value;
+ } else {
+ throw new RemoteException("The JNDI resource " + name
+ + " is not a remote repository stub: " + value);
+ }
+ } catch (NamingException e) {
+ throw new RemoteException(
+ "Failed to look up the JNDI resource " + name, e);
+ }
+ }
}
- private Repository getRmiRepository(final String name)
- throws RepositoryException {
- return new SafeClientRepository(new ClientAdapterFactory()) {
-
- @Override
- protected RemoteRepository getRemoteRepository() throws RemoteException {
- try {
- Object value = Naming.lookup(name);
- if (value instanceof RemoteRepository) {
- return (RemoteRepository) value;
- } else {
- throw new RemoteException(
- "The RMI resource " + name
- + " is not a remote repository stub: " + value);
- }
- } catch (NotBoundException e) {
- throw new RemoteException(
- "RMI resource " + name + " not found", e);
- } catch (MalformedURLException e) {
- throw new RemoteException(
- "Invalid RMI name: " + name, e);
- } catch (RemoteException e) {
- throw new RemoteException(
- "Failed to look up the RMI resource " + name, e);
- }
- }
- };
+ private static class SafeClientRepositoryName extends SafeClientRepository {
+
+ private final String name;
+
+ public SafeClientRepositoryName(String name, LocalAdapterFactory factory) {
+ super(factory);
+ this.name = name;
+ }
+
+ @Override
+ protected RemoteRepository getRemoteRepository() throws RemoteException {
+ try {
+ Object value = Naming.lookup(name);
+ if (value instanceof RemoteRepository) {
+ return (RemoteRepository) value;
+ } else {
+ throw new RemoteException("The RMI resource " + name
+ + " is not a remote repository stub: " + value);
+ }
+ } catch (NotBoundException e) {
+ throw new RemoteException(
+ "RMI resource " + name + " not found", e);
+ } catch (MalformedURLException e) {
+ throw new RemoteException("Invalid RMI name: " + name, e);
+ } catch (RemoteException e) {
+ throw new RemoteException("Failed to look up the RMI resource "
+ + name, e);
+ }
+ }
}
}